Один из моих брокеров изменил название одного символа с EURRUR на EURRUB и всё - эксперт подвис.
Если в эксперте реализован анализ чартов с использованием ChartSymbol() и этой функции встречается чарт, в котором сидит неизвестный символ, то:
эксперт начинает вести себя непредсказуемо. По крайней мере, функция не отдаёт название символа чарта. Со всеми вытекающими.
Кроме того, у разных брокеров значительная часть названий символов не совпадает. Если терминал настроен под одного брокера, а потом происходит переключение на другого брокера, то снова мы в трубе.
Может быть, есть способ обойти этот момент программно? Подскажите, пожалуйста.
Один из моих брокеров изменил название одного символа с EURRUR на EURRUB и всё - эксперт подвис.
...........Может быть, есть способ обойти этот момент программно? Подскажите, пожалуйста.
Название первых шести букв символа всегда одинаково, это международно(поправьте меня если не прав). По ним и работайте.
Если терминал настроен под одного брокера, а потом происходит переключение на другого брокера, то снова мы в трубе.
Может быть, есть способ обойти этот момент программно? Подскажите, пожалуйста.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Особенности языка mql5, тонкости и приёмы работы
fxsaber, 2017.11.30 09:48
Памятка
Действие/тип программы | Смена ТФ или символа | Смена счета |
---|---|---|
Индикатор | Запуск OnDeinit и OnInit, объект глобального класса меняется (полная перезагрузка). | Ничего не происходит, кроме обнуления prev_calculated. |
Советник | Запуск OnDeinit и OnInit, объект глобального класса не меняется. | Запуск OnDeinit и OnInit, объект глобального класса меняется (полная перезагрузка). |
Воспользуйтесь выделенным.
Опишите словами решение - можно будет решить программно
Хотите чтобы я описал словами решение, которого у меня нет? и для поиска которого затеяна эта ветка?
Название первых шести букв символа всегда одинаково, это международно(поправьте меня если не прав). По ним и работайте.
Поправляю.
1. По моим наблюдениям каждый брокер лепит символы какие ему взбредёт в голову. Никакой системы тут не видно, разве что на основных валютных парах.
2. Даже если бы система существовала, это ничего не решает. Ведь у каждого брокера свой набор символов. Например, брокер АА предлагает возможность работы с WTI. А у брокера ВВ в списке символов такого нет. Теперь представьте, что Вы работали с АА в окне этого символа. Т.е. в МТ5 есть живое окно с этим символом. Потом Вы переключаетесь на счёт брокера ВВ. И Ваш эксперт начинает исследовать окна на предмет символов (в которых нужно будет что-то отображать). В процессе перебора он натыкается на неизвестный ему символ и.. впадает в ступор. Если бы функция ChartSymbol() отдавала какую-нибудь -1 в случае неудачи, то было бы ясно - чужой символ. Тогда просто - переступил и пошёл дальше. Но она зависает.
Воспользуйтесь выделенным.
нужно проверять наличие символа и/или выбирать символ для работы,
если не получилось, значит нет такого инструмента
SymbolInfoInteger(sym,SYMBOL_SELECT); SymbolSelect(sym,true);
нужно проверять наличие символа и/или выбирать символ для работы,
если не получилось, значит нет такого инструмента
Наверное, я плохо излагаю.
Эксперт мультивалютный. Сидит в одном окне, но торгует по всем доступным символам. При этом по ходу дела ещё что-то отображает в окнах, какую-то графику.
Всего символов, например, 100. В текущий момент задействовано, например, 12 окон с какими-то конкретными символами. Зная всё про окна эксперт легко нарисует свою графику в имеющихся 12-и окнах. А по символам, для которых окон нет, пытаться рисовать не будет, хотя и торгует по ним. И чтобы знать что рисовать в конкретном окне нужно знать символ этого окна.
Вопрос простой: как это узнать? И ответ простой: использовать ChartSymbol(). Беда в том, что эта функцццыя не работает по символам, которых нет в списке этого брокера (хотя окно есть, оно просто осталось после работы с другим брокером в этом же терминале).
Вот сейчас терминал обновился, я провёл небольшой эксперимент. Функция возвращает "" = ничего. Пожалуй, это решение. Правда, думает она неоправданно долго, но опрос окон делается нечасто, можно и потерпеть.
Хотя ещё нужно проверить персонально и все другие функции, обращающиеся в такое окно.
Всем спасибо.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Один из моих брокеров изменил название одного символа с EURRUR на EURRUB и всё - эксперт подвис.
Если в эксперте реализован анализ чартов с использованием ChartSymbol() и этой функции встречается чарт, в котором сидит неизвестный символ, то:
эксперт начинает вести себя непредсказуемо. По крайней мере, функция не отдаёт название символа чарта. Со всеми вытекающими.
Кроме того, у разных брокеров значительная часть названий символов не совпадает. Если терминал настроен под одного брокера, а потом происходит переключение на другого брокера, то снова мы в трубе.
Может быть, есть способ обойти этот момент программно? Подскажите, пожалуйста.