Мы не рекомендуем(многократно об этом говорили) использовать данные рыночного окружения в init(), так как они могут отсутствовать на момент инициализации эксперта.
Хотя в тестере по идее должно быть все нормально. Мы проверим.
"могут отсуствовать" - а что нужно сделать, что бы они присуствовали наверняка? Каким нибудь рефреш или...?
RefreshRates не помогает :(
//+------------------------------------------------------------------+ //| Expert start function | //+------------------------------------------------------------------+ int start() { static bool run_once = false; // Run Once Trigger - to avoid indefinite behavior when getting started // other variables // ... // ---- if (run_once == false) { // do what we ought to - initial checks, market info etc. run_once = true; // to prevent future faux-passes } // ... // main part of calculations - expert's body // ... // ---- return(0); }
int start() { //---- static bool FirstStart=true; if (FirstStart) { FirstStart=false; //Init part } //..................
Перед началом тестирования эксперту доступно 0 баров. Соответственно Bid тоже неизвестен. История формируется постепенно по мере прокрутки файла fxt.
Решением проблемы было бы иметь заранее 100 баров (или сколько там было заказано с использованием даты начала тестирования), но это повлечёт за собой изменение алгоритма прокрутки данных. Так что не знаю...
Оказалось возможным сделать правильную инициализацию эксперта без вмешательства в алгоритм прокрутки данных.
<<Оказалось возможным сделать правильную инициализацию эксперта
без вмешательства в алгоритм прокрутки данных.>>
Очень хорошо, спасибо. Эта мелочь слегка отравляла жизнь.
<<Оказалось возможным сделать правильную инициализацию эксперта
без вмешательства в алгоритм прокрутки данных.>>
Очень хорошо, спасибо. Эта мелочь слегка отравляла жизнь.
Скачайте обновленный билд 195 (выложили вчера) по ссылке http://www.metatrader4.com/files/mt4setup.exe , пожалуйста.
Теперь init при тестировании имеет нормальное рыночное окружение.
Спасибо! И отдельное спасибо за функцию IsTradeContextBusy(), сильно облегчающую нашу нелегкую жизнь!
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Потом, в start() все нормально, но...