Добрый день!
Как из метода OnUpdate отличить причину его вызова:
1. Перезапуск робота
2. Новый расчетный бар
Общие вопросы по разработке > Как выяснить причину вызова метода OnUpdate
- evge
- Администратор
- Сообщения: 1807
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 360 раз
- Контактная информация:
Re: Как выяснить причину вызова метода OnUpdate
Добрый день!
Через глобальную переменную, где можно сохранить дату и время предыдущего бара.
Пример
Здесь только первый запуск робота сработает сразу, последующие перезапуски робота не будут вызывать ShowMessage("123"). Сработает он только при появлении нового бара (с другим дата + время) или при повторном запуске робота, но уже на другом баре.
Проверено на роботе-советнике
Через глобальную переменную, где можно сохранить дату и время предыдущего бара.
Пример
Код: Выделить всё
function Initialize()
{
StrategyName = "test";
AddParameter("P1", 0, "", 1);
AddInput("Input1", Inputs.Candle, 1, true, "GAZP=МБ ЦК");
LongLimit = 10;
ShortLimit = -10;
AddGlobalVariable("BT", Types.DateTime, DateTime.Now);
}
function OnUpdate()
{
if (BT != BarDate(0) + BarTime(0))
{
ShowMessage("Это уже другой (новый) бар!");
}
BT = BarDate(0) + BarTime(0);
}
Здесь только первый запуск робота сработает сразу, последующие перезапуски робота не будут вызывать ShowMessage("123"). Сработает он только при появлении нового бара (с другим дата + время) или при повторном запуске робота, но уже на другом баре.
Проверено на роботе-советнике
никогда такого не было и вот опять
Вернуться в «Общие вопросы по разработке»
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей