Ошибки, баги, вопросы - страница 676

 

costy_,

пытаться заново инициализировать после неудачной инициализации и попасть на бесконечный цикл? 

Я в Oninite инициализирую переменные (присваиваю значения переменным), относящиеся к глобальному уровню программы. Возможность использования ненулевого кода возврата позволяет вывести на печать причину неудачи и остановить приличным способом программу (т.е. остановить через OnDeinit). Вполне устраивает. 

 

Не вечный, до удачного завершения иниц. потиково (т.к. индикатор) предупредив в справке.

Вы проверяете после инициализации глоб. переменные на соответствие инициализации?

Желаете ли попробовать еще несколько раз попытаться проинициализировать их при не удачной иниц? 

 

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

Новые подробности: падение происходит только 7-8 марта 2011 года, только на Альфа форексе

 

costy_

 Не вечный, до удачного завершения иниц. потиково (т.к. индикатор) предупредив в справке.

 Видимо, я не понимаю Ваш замысел, а именно: не понимаю, что такое "инициализация в Oninit() потиково", и что такое "удачная инициализация  в Oninit() потиково".

Вы проверяете после инициализации глоб. переменные на соответствие инициализации?

 Ещё одно новое для меня понятие: "проверка глобальных переменных программы после инициализации на соответствие инициализации".

Но на вопрос ответить могу. Проверка на удачность присвоения значений глобальным переменным программы (например, хендлов) происходит внутри самой функции Oninit(). В случае неудачи запускаю там же (в Oninit) конечный цикл при необходимости. При итоговой неудаче с присвоением значений переменной внутри Oninit() отправляю сообщение на печать. Далее либо нахожу свою ошибку в коде, либо сообщаю о проблеме на форуме.

Проверку типа "на соответствие инициализации" после окончания работы функции  Oninit() не провожу, ибо бессмысленно при удачном завершении работы функции Oninit().

Что касается Вашего примера. Там объявлена локальная переменная bool err. Вы что, планируете локальную переменную функции  Oninit() каким-то образом потиково инициализировать?

Желаете ли попробовать еще несколько раз попытаться проинициализировать их при не удачной иниц? 

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

Дополню. Под "инициализацией" в рамках темы подразумеваю присвоение значений глобальным переменным в рамках функции Oninit (т.е. использую сленг). Дополняю потому, что перед отправкой события Init клиентский терминал запускает свой процесс инициализации глобальных переменных.

 

ilunga

Действительно, лучше код и условия тестирования - в сервисдеск. 

 

В функ. трали_вали_для_индикатора() синхронизируя несколько MqlRates EURUSD[],AUDUSD[],GBPUSD[],NZDUSD[],USDCAD[],USDCHF[],USDJPY[]; 

с первой попытки никак не получится, по идее один раз синхронизировал и есть образцовые структуры с  xxxxxx[0].time == yyyyyy[0].time == ..... zzzzzz[0] далее синхронизация по time > xxxxxx[0].time.

Я то создал свою функцию init(), но речь о OnInit()! 

Если OnInit() не удачен тогда старта не произойдет (если не заводится со стартера >> крутани коленвал ручками), тогда юзеру необходимо либо 

  • список индикаторов >> перезапуск инд.
  • удалить  инд.  >>  подключить  инд.
  • звонить в поддержку >>
  • прочее

По тиково это >> "при не удачном завершении ф. OnInit() генерируется событие Deinit с кодом причины деинициализации REASON_INITFAILED" + с последующей переинициализацией на следующем тике до успешной иниц. +

(зачем тогда делать прерывание - деиницацию если индикатор и так будет показывать ежиков).

Это вопрос скорее к разработчикам... 

 
abolk:
А что с проблемой невозможности работать с кнопкой "Ответить" на форуме? Собираются исправлять? Какой-то молчок от поддержки. Хотя бы обнадёжили типа "делаем/неделаем".
Исправлено, спасибо всем обратившим внимание.
 

costy_:

Примерно понятно, о чём речь.  Сам проблему синхронизации обхожу стороной, поэтому посоветовать ничего не смогу. Но сама по себе проблема неоднократно обсуждалась на форуме. Посмотрите поиском по ключевому слову.

 
Yedelkin:

Примерно понятно, о чём речь.  Сам проблему синхронизации обхожу стороной, поэтому посоветовать ничего не смогу. Но сама по себе проблема неоднократно обсуждалась на форуме. Посмотрите поиском по ключевому слову.

Спасибо, еще полистаю. 

 

Здравствуйте, подскажите пожалуйста,

 Я пытаюсь для модуля торговли добавить ADX индикатор. Я пытаюсь сделать сигнал двух скользящих средних с подтверждением от ADX. Я скопировал этот код из другого модуля,  в изначальном варианте все естественно работает, я скачал его с этого сайта и код по идее сам по себе не должен выдавать ошибок.

//+------------------------------------------------------------------+
//| Create ADX indicator.                                            |
//| INPUT:  indicators -pointer of indicator collection.             |
//| OUTPUT: true-if successful, false otherwise.                     |
//| REMARK: no.                                                      |
//+------------------------------------------------------------------+
bool CSignalMY_MA_ADX::InitADX(CIndicators* indicators)
  {
//--- create ADX indicator
   if(m_ADX==NULL)
      if((m_ADX=new CiADX)==NULL)
        {
         printf(__FUNCTION__+": error creating object of the ADX");
         return(false);
        }
//--- add ADX indicator to collection
   if(!indicators.Add(m_ADX))
     {
      printf(__FUNCTION__+": error adding object of the ADX");
      delete m_ADX;
      return(false);
     }
//--- initialize ADX indicator
   if(!m_ADX.Create(m_symbol.Name(),m_period,m_period_ADX))
     {
      printf(__FUNCTION__+": error initializing object of the ADX");
      return(false);
     }
//--- ok
   return(true);
  }

 Но видно я наделал чтото не то и мне выдает такие вот ошибки:

 '==' - illegal operation use SignalADX-MA.mqh 183 12

'CiADX' - type mismatch SignalADX-MA.mqh 184 21

'=' - illegal operation use SignalADX-MA.mqh 184 16

'm_ADX' - parameter conversion not allowed SignalADX-MA.mqh 190 23

'm_ADX' - object pointer expected SignalADX-MA.mqh 193 14

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

 

 


Причина обращения: