CrossMA: De Slimme Trading Tool voor MetaTrader 5

Mike 2017.01.26 18:05 36 0 0
Bijlage

Idee Auteur: George F.Peskov, ontwikkelaar van de MQL5 code: barabashkakvn.

De CrossMA is een trading systeem dat gebaseerd is op de kruising van twee iMA (Moving Averages). De stop loss wordt automatisch ingesteld op basis van de waarde van de ATR (Average True Range). Daarnaast ontvang je een e-mail elke keer wanneer een positie wordt geopend of gesloten. Je kunt de parameters selecteren door middel van backtesting.

Hieronder vind je hoe je de waarden van de indicatoren op de eerste en tweede bars kunt ophalen:

//--- verkrijg de Moving Average
   mas=iMAGet(handle_iMA1,1);       // lange moving average 12
   maf=iMAGet(handle_iMA2,1);       // korte moving average 4
   mas_p=iMAGet(handle_iMA1,2);     // lange moving average 12
   maf_p=iMAGet(handle_iMA2,2);     // korte moving average 4
   Atr=iATRGet(0);

Voor het controleren van de verkoopvoorwaarden:

//--- Voorwaarde voor verkoop
   if(maf<mas && maf_p>=mas_p)
     {
      double lots=LotsOptimized();
      double stop_loss=NormalizeDouble(m_symbol.Ask()+Atr,Digits());
      res=m_trade.Sell(lots,Symbol(),m_symbol.Bid(),stop_loss,0);
      if(SndMl==true && res)
        {
         sHeaderLetter="Verkoop Operatie door"+Symbol()+"";
         sBodyLetter="Deal Verkoop door"+Symbol()+" op "+DoubleToString(m_symbol.Bid(),Digits())+
                     ", en stop/loss ingesteld op "+DoubleToString(stop_loss,Digits())+"";
         sndMessage(sHeaderLetter,sBodyLetter);
        }
      return;
     }

Voor het controleren van de aankoopvoorwaarden:

//--- Voorwaarde voor aankoop
   if(maf>mas && maf_p<=mas_p)
     {
      double lots=LotsOptimized();
      double stop_loss=NormalizeDouble(m_symbol.Bid()-Atr,Digits());
      res=m_trade.Buy(lots,Symbol(),m_symbol.Ask(),stop_loss,0);
      if(SndMl==true && res)
        {
         sHeaderLetter="Aankoop Operatie op"+Symbol()+"";
         sBodyLetter="Deal Aankoop op"+Symbol()+" voor "+DoubleToString(m_symbol.Ask(),Digits())+
                     ", en stop/loss ingesteld op "+DoubleToString(stop_loss,Digits())+"";
         sndMessage(sHeaderLetter,sBodyLetter);
        }
      return;
     }
Lijst
Reactie 0