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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Igor Kryuchkov
27048
Igor Kryuchkov  

Всем привет. Использую постоянно для написания стрелочников шаблон на 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);                        
  }
fxsaber
14314
fxsaber  
Думаю, поможет.
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....
Igor Kryuchkov
27048
Igor Kryuchkov  
fxsaber:
Думаю, поможет.
Понял примерно, что к чему но на практике не получилось. 
Stanislav Korotky
31239
Stanislav Korotky  
Igor Kryuchkov:
Понял примерно, что к чему но на практике не получилось. 
Пишите про проблемы подробнее.
Igor Kryuchkov
27048
Igor Kryuchkov  
Stanislav Korotky:
Пишите про проблемы подробнее.

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

Stanislav Korotky
31239
Stanislav Korotky  
Igor Kryuchkov:

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

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

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

#define MT4_NEW_EVENT_HANDLERS 

#include <ind4to5.mqh> 


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

Stanislav Korotky
31239
Stanislav Korotky  
Igor Kryuchkov:

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

#include <ind4to5.mqh> 


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

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

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

Igor Kryuchkov
27048
Igor Kryuchkov  
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);

}

 

 

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


Stanislav Korotky
31239
Stanislav Korotky  
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. Сейчас покажу.
ivanivan_11
648
ivanivan_11  
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);

}

 

 

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


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