EA Automate

 

good afternoon for everyone...

I dont kno nothing about MQL4 I learn but it's hard to entry in my mind.

I have two indicators and I want create a automate EA with simple idea I have two indicators. and the EA its simple when indicator "A" give me the buy signal the system put the order and when the indicator "B" give the selling signal the EA close the buy order and vice versa. But the problem is, I read and read and keeping don'tr understanding. the language. Somebody could help there is videos tutorials to create a EA. Or give me some universal recipe to made it.

the indicators mql4 code is:

INDICATOR "1" IS:

//+------------------------------------------------------------------+

//|                                                     INDICATOR 1 |

//|                             Copyright © 2005 dwt5 and adoleh2000 |

//|                                        http://www.metaquotes.net |

//+------------------------------------------------------------------+

#property  copyright "Copyright © 2005 dwt5 and adoleh2000 "

#property  link      "http://www.metaquotes.net/"


//---- indicator settings

#property  indicator_chart_window

#property  indicator_buffers 4            

#property indicator_color1 Red      

#property indicator_color2 Yellow

#property indicator_color3 HotPink

#property indicator_color4 Aqua


//---- buffers

double ExtMapBuffer1[];

double ExtMapBuffer2[];

double ExtMapBuffer3[];

double ExtMapBuffer4[];


int width;


extern int Rperiod = 50;

extern int LSMA_Period = 50;

int Draw4HowLong;

int shift;

int i;

int j;

int loopbegin;

int length;

int lsma_length;


double lengthvar;

double tmp ;

double tmp2 ;

double wt[];

double sum[];

double lsma_sum[];

double lsma_ma[];

double middle[];

int c;


//+------------------------------------------------------------------+

//| Custom indicator initialization function                         |

//+------------------------------------------------------------------+

int init()

  {

//---- 7 additional buffers are used for counting.

   IndicatorBuffers(7);   

   

//---- drawing settings

   

   SetIndexBuffer(0,ExtMapBuffer1);

   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);

   

   SetIndexBuffer(1,ExtMapBuffer2);

   SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);

   

   SetIndexBuffer(2,ExtMapBuffer3);

   SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,1);

   

   SetIndexBuffer(3,ExtMapBuffer4);

   SetIndexStyle(3,DRAW_LINE,STYLE_SOLID,1);

   

   

   

   SetIndexBuffer(4,sum);        

   SetIndexBuffer(5,wt);         

   SetIndexBuffer(6,lsma_ma);

   

//---- initialization done

   return(0);

  }


int start()


  {   Draw4HowLong = Bars-Rperiod - 5;                            //Rperiod = 20

      length = Rperiod;                                           //length now = 20  

      lsma_length = LSMA_Period;

      loopbegin = Draw4HowLong - length - 1;   

      


      for(shift = loopbegin; shift >= 0; shift--)  //  MAIN For Loop

      { 

         sum[1] = 0;                                              

         for(i = length; i >= 1  ; i--)             //LSMA loop

         {

         lengthvar = length + 1;                               //lengthvar = 21  

         lengthvar /= 3;                                       //lengthvar = 7

         tmp = 0;

         tmp = ( i - lengthvar)*Close[length-i+shift];         //tmp = 20 - 7 * close[20-i+shift]

         sum[1]+=tmp;

         }

         wt[shift] = sum[1]*6/(length*(length+1));  

         j = shift;

         lsma_ma[shift] = wt[j+1] + (wt[j]-wt[j+1])* 2/(lsma_length+1);

  

                          

//========== COLOR CODING ===========================================                       

        

        

            ExtMapBuffer1[shift] = wt[shift]; 

            ExtMapBuffer2[shift] = lsma_ma[shift]; 

            ExtMapBuffer3[shift] = wt[shift]; 

            ExtMapBuffer4[shift] = lsma_ma[shift]; 

            

            

            

            if (wt[shift]  < lsma_ma[shift])

            {

                ExtMapBuffer4[shift] = EMPTY_VALUE;

                ExtMapBuffer3[shift] = EMPTY_VALUE;

           }          

        

        }

  }

//+------------------------------------------------------------------+




INDICATOR "2"  IS:

 

//+------------------------------------------------------------------+

//|                                               INDICATOR 2 |

//|                Copyright © 2006, Nick Bilak, beluck[AT]gmail.com |

//+------------------------------------------------------------------+

#property copyright "Copyright © 2006, Nick Bilak"

#property link      "https://www.forex-tsd.com/"


#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 Red

#property indicator_width1 2

#property indicator_color2 Lime

#property indicator_width2 2


extern int SignalGap = 4;


int dist=24;

double b1[];

double b2[];


int init()  {

   SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,1);

   SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,1);

   SetIndexArrow(1,233);

   SetIndexArrow(0,234);

   SetIndexBuffer(0,b1);

   SetIndexBuffer(1,b2);

   return(0);

}

int start() {

   int counted_bars=IndicatorCounted();

   int k,i,j,limit,hhb,llb;

   

   if (counted_bars<0) return(-1);

   if (counted_bars>0) counted_bars--;

   limit=Bars-1;

   if(counted_bars>=1) limit=Bars-counted_bars-1;

   if (limit<0) limit=0;


   for (i=limit;i>=0;i--)   {

      b1[i]=EMPTY_VALUE;

      b2[i]=EMPTY_VALUE;

      hhb = iHighest(NULL,0,MODE_HIGH,dist,i-dist/2);

      llb = iLowest(NULL,0,MODE_LOW,dist,i-dist/2);


      if (i==hhb)

         b1[i]=High[hhb]+SignalGap*Point;

      if (i==llb)

         b2[i]=Low[llb]-SignalGap*Point;

   }

   return(0);

}

 

use iCustom

here you have an Alphabetic Index of MQL4 Functions (600+)

very helpful

 
daciolimasantos: I dont kno nothing about MQL4 I learn but it's hard to entry in my mind.
  1. Don't paste code
    Play video
    Please edit your post.
    For large amounts of code, attach it.

  2. learn to code
Reason: