Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
17.02.2025, 21:14:17
Начало Помощь Поиск Войти Регистрация
Новости: ООО «Скрин маркет системз», правообладатель программы «Система брокерского обслуживания «TRANSAQ» официально заявляет, что не ведет никакой деятельности в мессенджерах или социальных сетях. 
Подробности на нашем сайте  WWW.TRANSAQ.RU.

Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: Как в примерной ATF добавить сигнал « предыдущая тема следующая тема »
Страниц: [1] Печать
Автор Тема: Как в примерной ATF добавить сигнал  (Прочитано 22392 раз)
Makin
Newbie
*
Сообщений: 14


Просмотр профиля Email
« : 08.10.2019, 11:49:37 »

Добрый день! Взял отсюда: http://www.transaq.ru/dokuwiki/atf:примеры#максимум_минимум_в_конкретный_интервал_времени. Из списка примеров ATF (макс/мин за конкретный интервал времени.
Помогите, пожалуйста, докрутить ATF-ку, чтобы при пересечении уровней мин/макс подавался сигнал. Спасибо заранее!

// Функции getHigh и getLow вычисляют значения
// high и low в заданный промежуток времени

// В качестве примера сам скрипт вычисляет значения
// high и low за время с 9 до 11 и отрисовывает две
// две линии, соответствующие этим уровням

static H;
static L;

function getHigh(var from, var to)
{
   var n = getCandleByTime(from);
   setCurrentPosition(n);
   if (getCandleTime() != from) {
     from = n + 1;
   }
   else {
     from = n;
   }
   setCurrentPosition(0);
   to = getCandleByTime(to);
   var h = high[from, to];
   restoreCurrentPosition();
   return h;
}

function getLow(var from, var to)
{
   var n = getCandleByTime(from);
   setCurrentPosition(n);
   if (getCandleTime() != from) {
     from = n + 1;
   }
   else {
     from = n;
   }
   setCurrentPosition(0);
   to = getCandleByTime(to);
   var h = low[from, to];
   restoreCurrentPosition();
   return h;
}

function init()
{
  var from = getTimeObject(9, 0);
  var to = getTimeObject(11, 0);
  H = getHigh(from, to);
  L = getLow(from, to);
}

function calc()
{
  line[0] = H;
  line[1] = L;
}
Записан
andreyvv
Jr. Member
**
Сообщений: 89


Просмотр профиля Email
« Ответ #1 : 08.10.2019, 15:02:07 »

Попробуйте так:

static H;
static L;

function getHigh(var from, var to)
{
   var n = getCandleByTime(from);
   setCurrentPosition(n);
   if (getCandleTime() != from) {
     from = n + 1;
   }
   else {
     from = n;
   }
   setCurrentPosition(0);
   to = getCandleByTime(to);
   var h = high[from, to];
   restoreCurrentPosition();
   return h;
}

function getLow(var from, var to)
{
   var n = getCandleByTime(from);
   setCurrentPosition(n);
   if (getCandleTime() != from) {
     from = n + 1;
   }
   else {
     from = n;
   }
   setCurrentPosition(0);
   to = getCandleByTime(to);
   var h = low[from, to];
   restoreCurrentPosition();
   return h;
}

function init()
{
  var from = getTimeObject(9, 0);
  var to = getTimeObject(11, 0);
  H = getHigh(from, to);
  L = getLow(from, to);
}

function calc()
{
  line[0] = H;
  line[1] = L;

if (close > line[0]) {
      signal::alert("High пробит вверх!");}

if (close < line[1]) {
      signal::alert("Low пробит вниз!");}
}
Записан
Makin
Newbie
*
Сообщений: 14


Просмотр профиля Email
« Ответ #2 : 08.10.2019, 17:29:19 »

Работает! Спасибо большое!
Записан
Страниц: [1] Печать 
Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: Как в примерной ATF добавить сигнал « предыдущая тема следующая тема »
Перейти в:  


Войти

Powered by MySQL Powered by PHP Powered by SMF 2.0.10 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS!