Страница 1 из 2
Один раз
Добавлено: 05 июл 2017, 16:39
Владимир Валерьевич
Кто знает как, задать условие в индикаторе, чтобы выполнялось один раз?
Код ниже не работает:
Код: Выделить всё
function Initialize()
{...
AddGlobalVariable("LastBarIndex", Types.Int, 0);
}
function Evaluate()
{
if ((CurrentIndex != LastBarIndex) && (CurrentIndex == MaxIndex) )
{ ...
LastBarIndex = CurrentIndex;
}
}
Re: Один раз
Добавлено: 05 июл 2017, 17:02
Alexey
Код: Выделить всё
function Initialize()
{...
AddGlobalVariable("OnInitialize", Types.Boolean, false);
}
function Evaluate()
{
if (!OnInitialize)
{ ...
OnInitialize = true;
}
}
Re: Один раз
Добавлено: 05 июл 2017, 17:05
evge
Код: Выделить всё
function Initialize()
{...
AddGlobalVariable("First", Types.Boolean, true);
}
function Evaluate()
{
if ( First )
{ ...
First = false;
}
}
Re: Один раз
Добавлено: 05 июл 2017, 17:06
evge
Alexey, почти сошлись мысли
Re: Один раз
Добавлено: 05 июл 2017, 17:19
Alexey
evge писал(а):Alexey, почти сошлись мысли
Re: Один раз
Добавлено: 05 июл 2017, 23:01
Владимир Валерьевич
Некорректно задал вопрос.
Нужно, чтобы условие выполнилось один раз на свечке.
Проверка if (Input.Open==Input.Close) тоже не срабатывает
Re: Один раз
Добавлено: 06 июл 2017, 04:13
Den
а если нужное условие будет уже после однократного срабатывания Evaluate() на свече , вы его пропустите ?
Re: Один раз
Добавлено: 06 июл 2017, 14:26
Владимир Валерьевич
Den писал(а):а если нужное условие будет уже после однократного срабатывания Evaluate() на свече , вы его пропустите ?
function Initialize()
{...}
function Evaluate()
{...}
срабатывают каждый раз при изменении цены. А мне необходимо, чтобы часть расчета в индикаторе срабатывала один раз на свечке (можно два-три
- не критично). Это как в роботе, только не в конце, а вначале формирования свечи.
Проверка if (Input.Open==Input.Close), почему-то не срабатывает, даже если цена стоит на месте.
Re: Один раз
Добавлено: 06 июл 2017, 14:47
Alexey
Владимир Валерьевич писал(а):Некорректно задал вопрос.
Нужно, чтобы условие выполнилось один раз на свечке.
Проверка if (Input.Open==Input.Close) тоже не срабатывает
Код: Выделить всё
function Initialize()
{...
AddGlobalVariable("PrevIndex", Types.Int, -1);
}
function Evaluate()
{
if (PrevIndex != CurrentIndex)
{ ...
PrevIndex = CurrentIndex;
}
}
Re: Один раз
Добавлено: 06 июл 2017, 14:57
Владимир Валерьевич
Alexey писал(а):Код: Выделить всё
function Initialize()
{...
AddGlobalVariable("PrevIndex", Types.Int, -1);
}
function Evaluate()
{
if (PrevIndex != CurrentIndex)
{ ...
PrevIndex = CurrentIndex;
}
}
Увы. Цена изменилась, "PrevIndex" сбросился на -1.