Вопрос к знатокам mql4 и mql5

 

Всем привет. Использую постоянно для написания стрелочников шаблон на mql4. Нужно перенести шаблон на mql5, но трудности с изучением. Но очень много трудностей. Пожалуйста помогите перенести шаблон c mql4 на mql5. Там всегда по закрытию свечи сигнал, то есть на новую.

 

#property version   "1.00"
#property strict
#property indicator_chart_window   
#property indicator_buffers 2     
#property indicator_color1 Red    
#property indicator_color2 Blue    

double Buffer[];
double Buffer2[];
int j=0;
int a=0;

int init()
{
   
   SetIndexStyle(0, DRAW_ARROW,0,3);
   SetIndexBuffer(0, Buffer);
   SetIndexStyle(1, DRAW_ARROW,0,3);
   SetIndexBuffer(1, Buffer2);
   SetIndexArrow(1,241);
   SetIndexArrow(0,242);
   return(0);
}



int start()                      
  {

   int i,                          
       Counted_bars;              
   
   Counted_bars=IndicatorCounted(); 
   i=Bars-Counted_bars-1;           
   
   while(i>=0)                
     {
      a=0;
      if(iRSI(NULL, 0,12, PRICE_CLOSE, i+1)>70 &&j!=1)
      {
      Buffer[i] = High[i]+5*Point;
      j=1; 
      a=1;     
      }    
      else
      if(iRSI(NULL, 0,12, PRICE_CLOSE, i+1)<30&&j!=2)
      {
      Buffer2[i] = Low[i]-5*Point;
      j=2;
      a=2;
      } 
       
      i--;                          
     }
     

     if (a==1)
     {
     Alert(Symbol()," ","DOWN");
     a=0;
     }
     
     if (a==2)
     {
     Alert(Symbol()," ","UP");
     a=0;
     }

   return(0);                        
  }
 
Думаю, поможет.
MQL's OOP notes: Converting MetaTrader 4 indicators to MetaTrader 5
MQL's OOP notes: Converting MetaTrader 4 indicators to MetaTrader 5
  • 2016.09.28
  • //www.mql5.com/en/users/marketeer">
  • www.mql5.com
It has been a long time since MetaTrader 5 was released, but MQL products for MetaTrader 4 do still prevail on mql5.com site (both in the codebase, and in the market), and in the Internet in general....
 
fxsaber:
Думаю, поможет.
Понял примерно, что к чему но на практике не получилось. 
 
Igor Kryuchkov:
Понял примерно, что к чему но на практике не получилось. 
Пишите про проблемы подробнее.
 
Stanislav Korotky:
Пишите про проблемы подробнее.

На примере моего шаблона, как его перенести на мкл 5. Библиотеку я качал

 
Igor Kryuchkov:

На примере моего шаблона, как его перенести на мкл 5. Библиотеку я качал

Вы же не пишете, какие именно проблемы.
 
Stanislav Korotky:
Вы же не пишете, какие именно проблемы.

Беру данный шаблон и вставляю в код mql5 и в они инит прописываю 

#define MT4_NEW_EVENT_HANDLERS 

#include <ind4to5.mqh> 


Только одни ошибки. Что не так делаю?

 
Igor Kryuchkov:

Беру данный шаблон и вставляю в код mql5 и в они инит прописываю 

#include <ind4to5.mqh> 


Только одни ошибки. Что не так делаю?

Может я неразборчиво написал ;-), но MT4_NEW_EVENT_HANDLERS нужно использовать, если у вас в исходнике используются новые обработчики (OnInit и пр.), а у вас старые. Так что нужен другой дифайн MT4_OLD_EVENT_HANDLERS.

Кроме того, там написано, что одним инклудником нельзя обойтись, нужно еще кое-что ручками поправить и дописать. Может вам стоит перечитать блогпост? И следующий, кстати, тоже пригодится.

 
Stanislav Korotky:

Может я неразборчиво написал ;-), но MT4_NEW_EVENT_HANDLERS нужно использовать, если у вас в исходнике используются новые обработчики (OnInit и пр.), а у вас старые. Так что нужен другой дифайн MT4_OLD_EVENT_HANDLERS.

Кроме того, там написано, что одним инклудником нельзя обойтись, нужно еще кое-что ручками поправить и дописать. Может вам стоит перечитать блогпост? И следующий, кстати, тоже пригодится.

int init()
{
   
   SetIndexStyle(0, DRAW_ARROW,0,3);
   SetIndexBuffer(0, Buffer);
   SetIndexStyle(1, DRAW_ARROW,0,3);
   SetIndexBuffer(1, Buffer2);
   SetIndexArrow(1,241);
   SetIndexArrow(0,242);
   
   #define MT4_OLD_EVENT_HANDLERS 
   #include <ind4to5.mqh> 
   
   return(0);

}

 

 

Так вставил. Ошибок куча, даже не понимаю, что править.  


 
Igor Kryuchkov:
int init()
{
   
   SetIndexStyle(0, DRAW_ARROW,0,3);
   SetIndexBuffer(0, Buffer);
   SetIndexStyle(1, DRAW_ARROW,0,3);
   SetIndexBuffer(1, Buffer2);
   SetIndexArrow(1,241);
   SetIndexArrow(0,242);
   
   #define MT4_OLD_EVENT_HANDLERS 
   #include <ind4to5.mqh> 
   
   return(0);

}

 

 

Так вставил. Ошибок куча, даже не понимаю, что править.  


Гы. Дифайны и инклуды нужно в начале на глобальном уровне вставлять, после property. Сейчас покажу.
 
Igor Kryuchkov:
int init()
{
   
   SetIndexStyle(0, DRAW_ARROW,0,3);
   SetIndexBuffer(0, Buffer);
   SetIndexStyle(1, DRAW_ARROW,0,3);
   SetIndexBuffer(1, Buffer2);
   SetIndexArrow(1,241);
   SetIndexArrow(0,242);
   
   #define MT4_OLD_EVENT_HANDLERS 
   #include <ind4to5.mqh> 
   
   return(0);

}

 

 

Так вставил. Ошибок куча, даже не понимаю, что править.  


остальные тоже не поймут,пока вы наконец не скопируете ошибки сюда, или пока не дождетесь, что вам переделают индикатор,если вы этого добиваетесь))
Причина обращения: