Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Октября 15, 2019, 02:26:24 am
Начало Помощь Поиск Войти Регистрация
Новости:

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


Просмотр профиля Email
« : Октября 08, 2019, 11:49:37 am »

Добрый день! Взял отсюда: 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
**
Сообщений: 73


Просмотр профиля Email
« Ответ #1 : Октября 08, 2019, 03:02:07 pm »

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

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
*
Сообщений: 9


Просмотр профиля Email
« Ответ #2 : Октября 08, 2019, 05:29:19 pm »

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


Войти

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