Общие вопросы по разработке > Один раз

Общие вопросы по разработке в Альфа-Директ 4. Обсуждение разработки пользовательских индикаторов, стратегий.
Владимир Валерьевич
Сообщения: 36
Зарегистрирован: 27 мар 2016, 22:16
Благодарил (а): 9 раз

Один раз

Непрочитанное сообщение Владимир Валерьевич » 05 июл 2017, 16:39

Кто знает как, задать условие в индикаторе, чтобы выполнялось один раз?
Код ниже не работает:

Код: Выделить всё

function Initialize()
{...
AddGlobalVariable("LastBarIndex", Types.Int, 0);
}

function Evaluate()
{
if ((CurrentIndex != LastBarIndex)  && (CurrentIndex == MaxIndex) )
   { ...
   LastBarIndex = CurrentIndex;
   }

}

Alexey
Сообщения: 19
Зарегистрирован: 16 апр 2017, 16:02
Благодарил (а): 1 раз
Поблагодарили: 6 раз

Re: Один раз

Непрочитанное сообщение Alexey » 05 июл 2017, 17:02

Код: Выделить всё

function Initialize()
{...
AddGlobalVariable("OnInitialize", Types.Boolean, false);
}

function Evaluate()
{
if (!OnInitialize)
   { ...
   OnInitialize = true;
   }

}

Аватара пользователя
evge
Администратор
Сообщения: 1807
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 361 раз
Контактная информация:

Re: Один раз

Непрочитанное сообщение evge » 05 июл 2017, 17:05

Код: Выделить всё

function Initialize()
{...
AddGlobalVariable("First", Types.Boolean, true);
}

function Evaluate()
{
if ( First )
   { ...
   First = false;
   }

}
никогда такого не было и вот опять

Аватара пользователя
evge
Администратор
Сообщения: 1807
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 361 раз
Контактная информация:

Re: Один раз

Непрочитанное сообщение evge » 05 июл 2017, 17:06

Alexey, почти сошлись мысли :)
никогда такого не было и вот опять

Alexey
Сообщения: 19
Зарегистрирован: 16 апр 2017, 16:02
Благодарил (а): 1 раз
Поблагодарили: 6 раз

Re: Один раз

Непрочитанное сообщение Alexey » 05 июл 2017, 17:19

evge писал(а):Alexey, почти сошлись мысли :)

:)

Владимир Валерьевич
Сообщения: 36
Зарегистрирован: 27 мар 2016, 22:16
Благодарил (а): 9 раз

Re: Один раз

Непрочитанное сообщение Владимир Валерьевич » 05 июл 2017, 23:01

Некорректно задал вопрос.
Нужно, чтобы условие выполнилось один раз на свечке.
Проверка if (Input.Open==Input.Close) тоже не срабатывает

Аватара пользователя
Den
Сообщения: 352
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

Re: Один раз

Непрочитанное сообщение Den » 06 июл 2017, 04:13

а если нужное условие будет уже после однократного срабатывания Evaluate() на свече , вы его пропустите ?

Владимир Валерьевич
Сообщения: 36
Зарегистрирован: 27 мар 2016, 22:16
Благодарил (а): 9 раз

Re: Один раз

Непрочитанное сообщение Владимир Валерьевич » 06 июл 2017, 14:26

Den писал(а):а если нужное условие будет уже после однократного срабатывания Evaluate() на свече , вы его пропустите ?

function Initialize()
{...}
function Evaluate()
{...}
срабатывают каждый раз при изменении цены. А мне необходимо, чтобы часть расчета в индикаторе срабатывала один раз на свечке (можно два-три :) - не критично). Это как в роботе, только не в конце, а вначале формирования свечи.
Проверка if (Input.Open==Input.Close), почему-то не срабатывает, даже если цена стоит на месте.

Alexey
Сообщения: 19
Зарегистрирован: 16 апр 2017, 16:02
Благодарил (а): 1 раз
Поблагодарили: 6 раз

Re: Один раз

Непрочитанное сообщение Alexey » 06 июл 2017, 14:47

Владимир Валерьевич писал(а):Некорректно задал вопрос.
Нужно, чтобы условие выполнилось один раз на свечке.
Проверка if (Input.Open==Input.Close) тоже не срабатывает


Код: Выделить всё

function Initialize()
{...
AddGlobalVariable("PrevIndex", Types.Int, -1);
}

function Evaluate()
{
if (PrevIndex != CurrentIndex)
   { ...
   PrevIndex = CurrentIndex;
   }

}

Владимир Валерьевич
Сообщения: 36
Зарегистрирован: 27 мар 2016, 22:16
Благодарил (а): 9 раз

Re: Один раз

Непрочитанное сообщение Владимир Валерьевич » 06 июл 2017, 14:57

Alexey писал(а):

Код: Выделить всё

function Initialize()
{...
AddGlobalVariable("PrevIndex", Types.Int, -1);
}

function Evaluate()
{
if (PrevIndex != CurrentIndex)
   { ...
   PrevIndex = CurrentIndex;
   }

}


Увы. Цена изменилась, "PrevIndex" сбросился на -1.


Вернуться в «Общие вопросы по разработке»

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и 20 гостей