Функиця AccountBalance возвращает 0 при запуске терминала - страница 2

 
Ivan Ovchinnikov:

тоже не вариант

Создай глобальную булевскую переменную. И в OnTimer() запхни функцию проверки баланса. Если баланс больше нуля бульевскую ставь труе. Весь код в в ОнКалькулейте оформи в if(булевскаяПеременная){

код

}

 
Yevhenii Levchenko:

Создай глобальную булевскую переменную. И в OnTimer() запхни функцию проверки баланса. Если баланс больше нуля бульевскую ставь труе. Весь код в в ОнКалькулейте оформи в if(булевскаяПеременная){

код

}

И если реальный баланс нулевой, то ...

 
Artyom Trishkin:

И если реальный баланс нулевой, то ...

Проверять историю счета. Если пустая, то не стартуем.

 
может получать другую информацию, а не значение баланса, например, плечо или валюту депозита? по идее одновременно с балансом должны быть подгружены, но не могут быть пустыми.
 
Artyom Trishkin:

И если реальный баланс нулевой, то ...

Булевскую в фалсе... кроме того, не обязательно нулевой. Может там плечо маленькое... тут уже Иван пусть сам думает. Бесплатно продумать весь индикатор нет мотивации :)
 

Я думаю, проблема не в OnCalculate вовсе, а в инициализации индикатора, которая происходит исключительно в момент его прикрепления к окну. 

При первом запуске терминала индикатор инициализируется до полной загрузки истории, после чего повторной инициализации не происходит, если только не перезагрузить индикатор. 

 
Ihor Herasko:

Проверять историю счета. Если пустая, то не стартуем.

Вообще до AccountBalance в индикаторе стоит вызывать OrdersHistoryTotal. Конечно "закат солнца в руками", но будет уверенность что история подгружена
 
Ivan Ovchinnikov:

а как сделать, чтобы индюк инициализировался только после подключения?

Написать функцию ReInit и вызывать ее из OnCalculate при выполнении определенных условий. 

Я так делал вполне успешно. 

 
Ihor Herasko:

Проверять историю счета. Если пустая, то не стартуем.

... и индикатор не запускается... Равнозначно выходу из OnCalculate() при получении нулевого баланса. Тогда для чего замуты с таймером? Одинаково же:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Функиця AccountBalance возвращает 0 при запуске терминала

Artyom Trishkin, 2019.11.14 08:28

В OnCalculate() в самом его начале выполняйте return 0; если баланс нулевой. Но тогда при реально нулевом балансе индикатор никогда не запустится.


Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Функиця AccountBalance возвращает 0 при запуске терминала

Yevhenii Levchenko, 2019.11.14 08:42

Создай глобальную булевскую переменную. И в OnTimer() запхни функцию проверки баланса. Если баланс больше нуля бульевскую ставь труе. Весь код в в ОнКалькулейте оформи в if(булевскаяПеременная){

код

}


 
Artyom Trishkin:

... и индикатор не запускается... Равнозначно выходу из OnCalculate() при получении нулевого баланса. Тогда для чего замуты с таймером? Одинаково же

М-да, не учел, что на пустом счете нет балансовых операций. Тогда правильный ответ вот - ждать заполнения другого свойства счета, которое не должно быть равно нулю. Пока оно равно нулю - ничего не делаем.

Функиця AccountBalance возвращает 0 при запуске терминала
Функиця AccountBalance возвращает 0 при запуске терминала
  • 2019.11.14
  • www.mql5.com
Всем привет! Подскажите пожалуйста в чем может быть проблема...