Честно говоря не совсем понял проблему. При написании мультивалютника не сталкивался с такими проблемами, видимо, не использовал то, что вам нужно. Может, стоит поискать иные варианты решений на MT4 для мультивалютника?
Да я сам 3 года торговал мультивалютником без этой фигни.
вот здесь коротенько описано в чем дело 'Проблема 4066'
Да я сам 3 года торговал мультивалютником без этой фигни.
вот здесь коротенько описано в чем дело 'Проблема 4066'
Прочел ветку. Клоню к тому, чтобы не пытаться найти решение проблем, а просто не создавать их: не использовать i-функции.
Еще символ должен быть в списке MarketWatch. проверить это можно так
if( MarketInfo( UpdateSymbols[s], MODE_TICKVALUE) == 0) ...
вот еще нашел, https://www.mql5.com/ru/forum/105566
попробую воспроизвести :)
Особо выпендриваться не буду. Добавлю просто функцию
void UpdateTestMarketWatch() { if( IsTesting()) return; double tv; for( int s=0; s<UPDATE_SYMBOLS_SIZE; s++) { tv = MarketInfo( UpdateSymbols[s], MODE_TICKVALUE); Print( " symbol= ", UpdateSymbols[s], "; TICKVALUE=", tv); if( (tv < 0.5) || (tv>2.0)) Alert( " UpdateTestMarketWatch(): Error ", UpdateSymbols[s], "; TICKVALUE=", tv); } }
Чтобы понять зачем она, удалите USDCHF из окошка MArketWatch и запустите скрипт
Получим в логе
2009.04.07 23:47:20 Update_01 EURUSD,H1: Alert: UpdateTestMarketWatch(): Error NZDCHF; TICKVALUE=1.#INF
и пи-пи алерта
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Написание мультивалютного советника, имеет несколько подводных камней.
Первая проблемма с которой я столкнулся - ошибка 4066. Борьба с 4066 привела мну к такому коду.
Чесно говря, я его еще не тестировал особо. Но очень надеюсь....
Хотелось бы решить все проблеммы прям в этой ветке. :) Или хотя бы обозначить их.
пока что выкладываю скрипт, демонстрирующий первую версию моего решения.