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

 
Vitaly Muzichenko #:

Спасибо. Буду работать с этим. В справочнике прям ппц

 
Sergey Dymov #:

Спасибо. Буду работать с этим. В справочнике прям ппц

Вроде получилось адаптировать...

Все говорят что mql5 быстрее значительнее чем mql4. Тогда вопрос. Почему на mql4 тот же советник выполняется за 164мсек, а на mql5 за 527мсек. В чем может быть проблема?

 
Sergey Dymov #:

Вроде получилось адаптировать...

Все говорят что mql5 быстрее значительнее чем mql4. Тогда вопрос. Почему на mql4 тот же советник выполняется за 164мсек, а на mql5 за 527мсек. В чем может быть проблема?

Чем и как замеряли производительность работы? 

 
Sergey Dymov #:

Друзья, прошу помощи.

Есть написанный мной мультивалютный советник на mql4. В тестере разумеется не работает. Решил что нужно переходить на mql5.

Все адаптировал все ошибки компилятора поправил. КРОМЕ использования технических индикаторов. Голова кипит не могу понять. В документации непонятная фигня на две страницы. Может я куда не туда смотрю.

Одна строка кода в mql4 типа 

 double MA1EURGBP_TF = iMA("EURGBP",15,MA1_Period,0,MODE_EMA,PRICE_OPEN,0);

или 

double Stoch_M_GBPUSD=iStochastic("GBPUSD", Stoch_Period, K_Period, D_Period, Slowing, MODE_EMA, 0, MODE_MAIN, 0);

судя по документации меняется целой страницей кода в mql5. Хендлы, буфера, массивы с параметрами, это в инит, это в калькулейт, обработка ошибок при создании хендла... дичь какая-то... может я чет не туда смотрю куда???

А если я использую несколько пар и несколько таймфреймов, так вообще там получается "Война и Мир".

в 4ке информационная часть с других символов работает, ордерная нет. Но предварительно надо загрузить нужные символы в архив котировок. Раньше не работало. Будет работать на глубину загрузки архива по символу. В архиве видно дату.

 

Помогите еще советом, пожалуйста.

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

Индикатор адаптировал, вроде тоже работает, но не совсем корректно. 

1) не работает удаление объектов с графика при деинсталяции. Вроде ошибиться негде было.

int OnInit()

  {

ObjectCreate(0,"GBP_S0",OBJ_LABEL,0,0,0,0,0);

return(INIT_SUCCEEDED);

}

void OnDeinit(const int reason);

  {

  ObjectDelete(0,"GBP_S0");

}

2) 

Если сделать так:

      ExtGBPBuffer[i]=GBPTP;

ObjectSetString(0,"GBP_S101",OBJPROP_TEXT,ExtGBPBuffer[i]);

То значение GBP_S101 как раз искомое. А линия нулевая. Как так? Т.е. Линия рисуется, все четко и цвет и толщина, все кроме значений


Даже если так делаю   ExtGBPBuffer[i]=2; все равно линия на 0

 
Sergey Dymov #:

1) не работает удаление объектов с графика при деинсталяции. Вроде ошибиться негде было.

Работает

 
for(int cycle=1; cycle<=6; cycle++) { int period = per+(CountBuy()+CountSell()); vgran = iCustom(NULL,TF,"Канал_1",period,1,0);      }
Подскажите. Я добавляю индикатор через iCustom, и перебираю в цикле этот индикатор, при этом меняя 1 инпут параметр-period. В итоге выбираю какойто вариант и с ним работаю. Беру только последний бар. Но при остановке советника я заметил что отображается десяток индикаторов с разными параметрами, при чем на всю длину истории. При переделке индикатора в гистограмму(отдельное окно) соответственно появляется десяток окон гистограммы. Как убрать (не отображение линий), а чтобы не использовался весь индикатор во время перебора цикла, а только последнее значение. 
 
Aleksandr Kononov #:
Подскажите. Я добавляю индикатор через iCustom, и перебираю в цикле этот индикатор, при этом меняя 1 инпут параметр-period. В итоге выбираю какойто вариант и с ним работаю. Беру только последний бар. Но при остановке советника я заметил что отображается десяток индикаторов с разными параметрами, при чем на всю длину истории. При переделке индикатора в гистограмму(отдельное окно) соответственно появляется десяток окон гистограммы. Как убрать (не отображение линий), а чтобы не использовался весь индикатор во время перебора цикла, а только последнее значение. 
   HideTestIndicators(true); 
   MaCurrent=iMA(NULL,0,56,0,MODE_EMA,PRICE_CLOSE,0); 
   MaPrevious=iMA(NULL,0,56,0,MODE_EMA,PRICE_CLOSE,1); 
   HideTestIndicators(false);
 

Ребят, подскажите на mql4 пользовательский индикатор построенный на МА по ценам открытия, не меняет свои показания с приходом новых тиков по этому он и по ценам открытия.

На mql5 адаптированный индикатор меняет показания в зоне границы перехода с каждым тиком... тоже по ценам открия, сделал даже так   


copy=CopyBuffer(MA2EURJPY,0,1,CountBars,MA2EURJPY_TF);

   if(copy<0)

      Print("Неудачная попытка копирования MA2EURJPY_MAS");


чтобы второе показание снимать, а он все равно тикает туда сюда


Andrey Sokolov #:

Работает

Как то через раз, такое ощущение что язык глюченный шо ппц. mql4 четко отрабатывает, что написал то и работает, в mql5 вообще не связанный участок редактирую, перестает всё нафиг работать...



 
Sergey Dymov #:

Как то через раз, такое ощущение что язык глюченный шо ппц. mql4 четко отрабатывает, что написал то и работает, в mql5 вообще не связанный участок редактирую, перестает всё нафиг работать...

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

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