CrossMA – Der Trading-Assistent für MetaTrader 5

Mike 2017.01.26 18:05 32 0 0
Anhang

IdeengeberGeorge F.Peskov, Programmierung des MQL5-Codesbarabashkakvn.

Das Trading-System basiert auf dem Schnittpunkt von zwei gleitenden Durchschnitten (iMA). Der Stop-Loss wird automatisch anhand des ATR-Wertes festgelegt. Bei jeder Öffnung oder Schließung einer Position wird eine E-Mail-Benachrichtigung versendet. Die Parameter können durch Backtesting ausgewählt werden.

Werte der Indikatoren abrufen

Hier erfährst du, wie du die Werte der Indikatoren für die erste und zweite Kerze abruft:

//--- Gleitenden Durchschnitt abrufen
   mas=iMAGet(handle_iMA1,1);       // langer gleitender Durchschnitt 12
   maf=iMAGet(handle_iMA2,1);       // kurzer gleitender Durchschnitt 4
   mas_p=iMAGet(handle_iMA1,2);     // langer gleitender Durchschnitt 12
   maf_p=iMAGet(handle_iMA2,2);     // kurzer gleitender Durchschnitt 4
   Atr=iATRGet(0);

Verkaufskriterien überprüfen

Hier sind die Bedingungen, um einen Verkauf auszulösen:

//--- Bedingung für den Verkauf
   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="Operation SELL by "+Symbol()+"";
         sBodyLetter="Deal Sell by "+Symbol()+" at "+DoubleToString(m_symbol.Bid(),Digits())+
                     ", und setze stop/loss auf "+DoubleToString(stop_loss,Digits())+"";
         sndMessage(sHeaderLetter,sBodyLetter);
        }
      return;
     }

Kaufkriterien überprüfen

Hier sind die Bedingungen, um einen Kauf auszulösen:

//--- Bedingung für den Kauf
   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="Operation BUY at "+Symbol()+"";
         sBodyLetter="Deal Buy at "+Symbol()+" for "+DoubleToString(m_symbol.Ask(),Digits())+
                     ", und setze stop/loss auf "+DoubleToString(stop_loss,Digits())+"";
         sndMessage(sHeaderLetter,sBodyLetter);
        }
      return;
     }


 

Liste
Kommentar 0