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

 
fxsaber:

ExpertRemove не вызывал.

Ясно. А что мешает обрабатывать коды деинициализации? В них есть как раз смена счёта.

 
Artyom Trishkin:

Ясно. А что мешает обрабатывать коды деинициализации? В них есть как раз смена счёта.

ExpertRemove в OnDeinit - почти бессмысленная конструкция.
 
fxsaber:
ExpertRemove в OnDeinit - почти бессмысленная конструкция.

Как всё запутанно :)

Коды деинициализации глядеть в OnInit() пробовали?

Документация по MQL5: Предопределенные переменные / _UninitReason
Документация по MQL5: Предопределенные переменные / _UninitReason
  • www.mql5.com
_UninitReason - Предопределенные переменные - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Artyom Trishkin:

Коды деинициализации глядеть в OnInit() пробовали?

Изучал вопрос серьезно. Если хотите разобраться, как работает архитектурно, то без проб не получится.

 
fxsaber:

Попробуйте. По ссылке выше длинное обсуждение этой темы.

Не вижу проблемы. Момент смены счета выделен желтым.

long prev_account = 0;

int OnInit(void)
{
        prev_account = AccountInfoInteger( ACCOUNT_LOGIN );
        EventSetTimer(1);

        Print( "Initialization on account #", AccountInfoInteger( ACCOUNT_LOGIN ) );
        return(INIT_SUCCEEDED);
}

void OnDeinit(const int reason)
{
        Print( "Deinitialization on account #", prev_account );
        prev_account = 0;
        EventKillTimer();
}

void OnTick(void)
{
        if ( AccountInfoInteger( ACCOUNT_LOGIN ) != prev_account ) return;

        Print( "New tick on account #", AccountInfoInteger( ACCOUNT_LOGIN ) );
}

void OnTimer(void)
{
        if ( AccountInfoInteger( ACCOUNT_LOGIN ) != prev_account ) return;

        Print( "Timer on account #", AccountInfoInteger( ACCOUNT_LOGIN ) );
}
2021.07.01 11:53:13.404 test (USDCHF,M5)        Initialization on account #30966228
2021.07.01 11:53:14.404 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:15.404 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:16.404 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:17.405 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:18.405 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:19.405 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:20.405 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:21.405 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:22.405 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:23.405 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:24.405 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:25.405 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:25.904 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:26.419 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:27.097 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:27.214 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:27.338 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:27.416 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:27.470 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:27.574 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:27.682 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:28.282 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:28.407 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:28.408 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:29.099 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:29.411 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:29.507 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:29.644 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:29.873 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:30.234 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:30.405 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:30.449 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:31.238 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:31.410 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:31.720 test (USDCHF,M5)        Deinitialization on account #30966228
2021.07.01 11:53:32.226 test (USDCHF,M5)        Initialization on account #42821331
2021.07.01 11:53:33.225 test (USDCHF,M5)        Timer on account #42821331
2021.07.01 11:53:33.338 test (USDCHF,M5)        New tick on account #42821331
2021.07.01 11:53:33.689 test (USDCHF,M5)        New tick on account #42821331
2021.07.01 11:53:34.220 test (USDCHF,M5)        Timer on account #42821331
2021.07.01 11:53:35.220 test (USDCHF,M5)        Timer on account #42821331
2021.07.01 11:53:36.220 test (USDCHF,M5)        Timer on account #42821331
2021.07.01 11:53:36.511 test (USDCHF,M5)        New tick on account #42821331
2021.07.01 11:53:36.624 test (USDCHF,M5)        New tick on account #42821331
2021.07.01 11:53:36.728 test (USDCHF,M5)        New tick on account #42821331
2021.07.01 11:53:37.157 test (USDCHF,M5)        New tick on account #42821331
2021.07.01 11:53:37.220 test (USDCHF,M5)        Timer on account #42821331
2021.07.01 11:53:37.391 test (USDCHF,M5)        New tick on account #42821331
2021.07.01 11:53:37.862 test (USDCHF,M5)        New tick on account #42821331
2021.07.01 11:53:37.960 test (USDCHF,M5)        New tick on account #42821331
2021.07.01 11:53:38.210 test (USDCHF,M5)        New tick on account #42821331
2021.07.01 11:53:38.225 test (USDCHF,M5)        Timer on account #42821331
2021.07.01 11:53:38.340 test (USDCHF,M5)        New tick on account #42821331
2021.07.01 11:53:38.571 test (USDCHF,M5)        New tick on account #42821331
2021.07.01 11:53:39.227 test (USDCHF,M5)        Timer on account #42821331
2021.07.01 11:53:40.227 test (USDCHF,M5)        Timer on account #42821331
2021.07.01 11:53:40.689 test (USDCHF,M5)        Deinitialization on account #42821331
 
Andrey Khatimlianskii:

Не вижу проблемы. Момент смены счета выделен желтым.

Так удалось выгрузить советник при смене счета?

 
fxsaber:

Так удалось выгрузить советник при смене счета?

Не решал задачу выгрузки, решал задачу с ненужными алертами (работой не на том счету):

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

fxsaber, 2021.06.30 14:01

Этот советник алертит при переключении между счетами. Казалось бы, он не должен этого делать, согласно правилу

Однако, это происходит из-за таймера.

 
Andrey Khatimlianskii:

Не решал задачу выгрузки, решал задачу с ненужными алертами (работой не на том счету):

Алерт нужный - чтобы показать, что происходит. Демонстрирует особенность.

 

Чарты, открытые Тестером.

<chart>
tester=1
 
Как узнать тейк профит и стоп лосс у позиции в истории?
Причина обращения: