Особенности языка mql5, тонкости и приёмы работы - страница 177

 
Andrey Barinov:

я так понял что тут надо выгружаться в инит(или лучше в онтик) после смены. Т.е. запоминать в глобальных переменных номера счетов и если произошла смена, то выгружаться. Еще можно попробовать анализировать _DeInitReason в инит() и выгружаться.

Такое решение показывал. Оно работает только в том случае, если существует такой же символ после смены счета.

 
fxsaber:

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

А мне оно надо? Вы здесь говорите о проблеме разного имени символов.

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

Особенности языка mql5, тонкости и приёмы работы

fxsaber, 2020.05.20 23:09

Не всегда получается удалить советник при смене счета.

Допустим, советним запущен на символе EURUSD. Идет переключение на сервер, где символы с префиксом. Например, EURUSD.abc.

В этом случае советник остается висеть, и он не может себя удалить. У кого-нибудь есть решение это задачи?


Именно на это и был мой ответ. Если имена инструментов отличаются на разных счетах, используйте функции обработки строк и вычлените нужную часть этой строки.
 
Igor Zakharov:

в этом случае OnInit() не запускается?

Ничего не запускается.

может на уровне OnDeinit() пробовать удалить?

ExpertRemove() - точно не помощник. Можно попробовать через шаблоны. Но в OnDeinit не получается определить, что произошла смена счета.

 
Alexey Viktorov:

А мне оно надо? Вы здесь говорите о проблеме разного имени символов.

Именно на это и был мой ответ. Если имена инструментов отличаются на разных счетах, используйте функции обработки строк и вычлените нужную часть этой строки.

Не с новичком разговариваете. Нерабочие гипотезы предлагать не надо.

 
fxsaber:

Ничего не запускается.

ExpertRemove() - точно не помощник. Можно попробовать через шаблоны. Но в OnDeinit не получается определить, что произошла смена счета.

Там где не работает ExpertRemove - еще есть ChartClose(). Я не понимаю в чем проблема. Что происходит после смены счета? Появляется доп чарт с советником? Или просто символ текущего чарта меняется? Может меняется ChartID и поэтому Ваше предыдущее решение не работает? Тики то полюбому обрабатываются, значит нужно выгружаться в ОнТик, если ОнИнит не происходит.

 
fxsaber:

Не с новичком разговариваете. Нерабочие гипотезы предлагать не надо.

Точно так-же не надо публиковать нерабочие коды. И не надо обсуждать в теме об особенностях языка проблемы встретившиеся на тернистом пути программиста.

 
Alexey Viktorov:

Точно так-же не надо публиковать нерабочие коды. И не надо обсуждать в теме об особенностях языка проблемы встретившиеся на тернистом пути программиста.

По данной проблеме вы некомпетентны.

 

только сервисы не имеют привязки к графику. не тестил, но вероятнее всего он сможет перезапуститься после смены счёта. а уже из него менять шаблоны остальных графиков. но вообще странно, что REASON_ACCOUNT не отлавливается.

но вообще, тема скорее бага, чем особенности.

 
fxsaber:

По данной проблеме вы некомпетентны.

Если вы настолько компетентны, тогда скажите пожалуйста почему не работает это

REASON_ACCOUNT

6

Активирован другой счет либо произошло переподключение к торговому серверу вследствие изменения настроек счета

 
Alexey Viktorov:

Если вы настолько компетентны, тогда скажите пожалуйста почему не работает это

REASON_ACCOUNT

6

Активирован другой счет либо произошло переподключение к торговому серверу вследствие изменения настроек счета

  1. Документация врет. Проверить можно ручным релогином.
  2. Выгрузить себя простым способом не получится.