Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1314

 
ponochka:
чтобы понять что там
bool VerifityToSchet()
  {
        Print((string)AccountNumber()+" = "+(string)account);
   if(AccountNumber() != account)
     {
      Print("На данном счете индикатор работать не будет, вы его приобрели незаконным путем!!!");   
     }else
     {
     Print("На данном счете индикатор авторизован");
     }
   return(false);
  } 
 
Pavel Kolchin:
чтобы понять что там

при перезапуске терминала, в консоль AccountNumber() приходит 0, но сам терминал загружается под счетом и работает

 
ponochka:

при перезапуске терминала, в консоль AccountNumber() приходит 0, но сам терминал загружается под счетом и работает

куколка ты не там пишешь

 
ponochka:

при перезапуске терминала, в консоль AccountNumber() приходит 0, но сам терминал загружается под счетом и работает

Данные по счёту, баланс и прочее не успевают получать актуальную информацию с сервера - init() отрабатывает раньше, чем терминал получает значения с сервера.

 
Vitaly Muzichenko:

Данные по счёту, баланс и прочее не успевают получать актуальную информацию с сервера - init() отрабатывает раньше, чем терминал получает значения с сервера.

Хорошо! Исправила! Работает! А вот еще актуальный вопрос:

На индикаторе стоит проверка на счет! Он стоит и работает в терминале, но в определенный момент пользователь вручную меняет счет, по правилам проверки индикатор должен возразить, что счет не тот, но он ничего не делает и может продолжать работать пока не изменить его настройки, даже после перезагрузки терминала! Как с этим бороться?

 
ponochka:

Хорошо! Исправила! Работает! А вот еще актуальный вопрос:

На индикаторе стоит проверка на счет! Он стоит и работает в терминале, но в определенный момент пользователь вручную меняет счет, по правилам проверки индикатор должен возразить, что счет не тот, но он ничего не делает и может продолжать работать пока не изменить его настройки, даже после перезагрузки терминала! Как с этим бороться?

Что-то не правильно записано

P.S. Попробуйте распринтовать Print( AccountNumber() ); что покажет при изменении счёта? Но не в ините понятно
 

Всем Привет!

В книге по МТ4 в одной из задач написано: что для определения факта появления нового бара используйте сравнение цены открытия нулевого бара с баром №1 (т.е. если цена открытия изменилась то и бар новый появился) Пользовался этим методом, но столкнулся с пропуском сообщений в тестере, начал разбираться, и вспомнил что - несколько баров может иметь одинаковую цену открытия и по этому этот способ может приводить не только к ошибкам но и убыткам соответственно. Будьте внимательны и используйте не цену открытия, а время или другие способы!!!

 
Roni Iron:

Всем Привет!

В книге по МТ4 в одной из задач написано: что для определения факта появления нового бара используйте сравнение цены открытия нулевого бара с баром №1 (т.е. если цена открытия изменилась то и бар новый появился) Пользовался этим методом, но столкнулся с пропуском сообщений в тестере, начал разбираться, и вспомнил что - несколько баров может иметь одинаковую цену открытия и по этому этот способ может приводить не только к ошибкам но и убыткам соответственно. Будьте внимательны и используйте не цену открытия, а время или другие способы!!!

iTime

 
Vitaly Muzichenko:

Что-то не правильно записано

P.S. Попробуйте распринтовать Print( AccountNumber() ); что покажет при изменении счёта? Но не в ините понятно

показывает новый(измененный) счет, но больше нричего не происходит

 
ponochka:

Хорошо! Исправила! Работает! А вот еще актуальный вопрос:

На индикаторе стоит проверка на счет! Он стоит и работает в терминале, но в определенный момент пользователь вручную меняет счет, по правилам проверки индикатор должен возразить, что счет не тот, но он ничего не делает и может продолжать работать пока не изменить его настройки, даже после перезагрузки терминала! Как с этим бороться?

есть такая хрень в МТ4, не знаю толи когда  ОнИнит срабатывает после смены счёта, то в окружении ещё не успевает номер счета обновиться, то ли ещё какой косяк, я решил таймером

void  OnTimer()

       {

        static long account=AccountNumber();

        if(AccountNumber()!=account)

         {
                
            Print(account," was");
            account=AccountNumber();
            Print(account," now");
		Полундра и т.п. }}
        
Причина обращения: