void OpenPosition(void) { static datetime time_bar = 0; datetime _time_bar = iTime(_Symbol, PERIOD_CURRENT, 0); if(time_bar == _time_bar) return; time_bar = _time_bar; //--- }
только time_bar не статик и не внутри метода, вообще лучше брать прикладную библиотеку,привыкать к хорошему :-)
приведённый код правильный, но исключительно для тестера, по быстрому проверить идею.
В реальности он даёт баг который потом фик поймаешь, про рестарты советника и терминала.
только time_bar не статик и не внутри метода, вообще лучше брать прикладную библиотеку,привыкать к хорошему :-)
приведённый код правильный, но исключительно для тестера, по быстрому проверить идею.
В реальности он даёт баг который потом фик поймаешь, про рестарты советника и терминала.
Вообще проще писать отдельный класс открывашки и все. в нем и делать приватные переменные. Это так чисто эскиз на коленке написанный =)))
class COpenPosition { private: datetime time_bar; void Open_position(void) { /* открываем позицию */ } public: COpenPosition(void) : time_bar(0) { } void work(void) { datetime _time_bar = iTime(_Symbol, PERIOD_CURRENT, 0); if(time_bar == _time_bar) return; time_bar = _time_bar; Open_position(); } };И проблем намного меньше конечно. Правда тем кто только входит в программирование, конечно проще просто функцию написать


- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования