Einzelnen Beitrag anzeigen
  #14 (permalink)  
Alt 04.03.16
TraderBG TraderBG ist offline
Neues Mitglied
 
Registriert seit: Mar 2016
Beiträge: 6
TraderBG befindet sich auf einem aufstrebenden Ast
Standard

Ok teste ich mal, sorry für den Doppelpost.


Code:
//Longsignal ermitteln
  
   if(StrongSignalOnly ==true)  
      {
      if((iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_KIJUNSEN,2)>iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_TENKANSEN,2)) && 
         (iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_KIJUNSEN,1)<iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_TENKANSEN,1)) &&
         (iADX(NULL,0,ADXPeriod,PRICE_CLOSE,MODE_MAIN,1)>25)                                                                                &&
         (iClose(NULL,0,1) > iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_SENKOUSPANA,1))                                                   &&
         (iClose(NULL,0,1) > iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_SENKOUSPANB,1))                                                   &&
         (iClose(NULL,0,1)>iClose(NULL,0,Kijun)))
        {  
         LongSignal = true;
        }  
      else LongSignal = false;
      }  
    else if(WeakSignalOnly == true)
           {
           if((iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_KIJUNSEN,2)>iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_TENKANSEN,2)) && 
         (iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_KIJUNSEN,1)<iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_TENKANSEN,1)) &&
         (iADX(NULL,0,ADXPeriod,PRICE_CLOSE,MODE_MAIN,1)>25)                                                                                &&
         (iClose(NULL,0,1) < iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_SENKOUSPANA,1))                                                   &&
         (iClose(NULL,0,1) < iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_SENKOUSPANB,1))                                                   &&
         (iClose(NULL,0,1)>iClose(NULL,0,Kijun)))
        {  
         LongSignal = true;
        }  
         else LongSignal = false;
           }
        else if(StrongSignalOnly == false && WeakSignalOnly ==false)
               {
               if((iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_KIJUNSEN,2)>iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_TENKANSEN,2)) && 
                  (iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_KIJUNSEN,1)<iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_TENKANSEN,1)) &&
                  (iADX(NULL,0,ADXPeriod,PRICE_CLOSE,MODE_MAIN,1)>25)                                                                                &&
                  (iClose(NULL,0,1)>iClose(NULL,0,Kijun)))
                 {  
                  LongSignal = true;
                 }  
               else LongSignal = false;
               }
              
          
   
   //Shortsignal ermitteln
    if(StrongSignalOnly ==true)
      {     
      if((iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_KIJUNSEN,2)<iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_TENKANSEN,2)) && 
         (iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_KIJUNSEN,1)>iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_TENKANSEN,1)) &&
         (iADX(NULL,0,ADXPeriod,PRICE_CLOSE,MODE_MAIN,1)>25)                                                                                   &&
         (iClose(NULL,0,1) < iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_SENKOUSPANA,1))                                                   &&
         (iClose(NULL,0,1) < iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_SENKOUSPANB,1))                                                   &&
         (iClose(NULL,0,1)<iClose(NULL,0,Kijun)))
        {
         ShortSignal = true;
        }
      else ShortSignal = false;
      }
    else if(WeakSignalOnly ==true)
           {
           if((iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_KIJUNSEN,2)<iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_TENKANSEN,2)) && 
              (iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_KIJUNSEN,1)>iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_TENKANSEN,1)) &&
              (iADX(NULL,0,ADXPeriod,PRICE_CLOSE,MODE_MAIN,1)>25)                                                                                   &&
              (iClose(NULL,0,1) > iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_SENKOUSPANA,1))                                                   &&
              (iClose(NULL,0,1) > iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_SENKOUSPANB,1))                                                   &&
              (iClose(NULL,0,1)<iClose(NULL,0,Kijun)))
             {
               ShortSignal = true;
             }
           else ShortSignal = false;
           } 
           else if(StrongSignalOnly == false && WeakSignalOnly ==false)
                  {
                  if((iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_KIJUNSEN,2)<iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_TENKANSEN,2)) && 
                     (iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_KIJUNSEN,1)>iIchimoku(Symbol(),0,Tenkan,Kijun,SenkouSpan_B,MODE_TENKANSEN,1)) &&
                     (iADX(NULL,0,Kijun,PRICE_CLOSE,MODE_MAIN,1)>25)                                                                                   &&                    
                     (iClose(NULL,0,1)<iClose(NULL,0,Kijun)))
                    {
                      ShortSignal = true;
                    }
                   else ShortSignal = false;
                  }   
      
//Ordermanagement
    //Überprüfen,ob offene Order vorhanden sind
      int OpenOrders = 0;
      int AnzahlOrders = OrdersTotal();
      int i;
    
      for(i=0;i<AnzahlOrders;i++)
         {
          OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
            if(OrderSymbol() == Symbol())
               {
                  if(OrderMagicNumber()== MagicNumber)
                     {OpenOrders++;
                     }
               }
          }
       
   //Order aufgeben
   int ExpirationTime = TimeCurrent()+ ((Period()*60)*3);
   
      //Longorder aufgeben
      double LongEntry = iHigh(NULL,0,1) + (SlippageFaktor);
     
      
      if(OpenOrders == 0 && LongSignal == true && IsNewBar == true && TradingTime ==true)
         {
           LongTicket = OrderSend(Symbol(),OP_BUYSTOP,Lots,LongEntry,5,0,0,"Tenkan Kijun Cross Buy Order opened ",MagicNumber,0,Green);
            if(LongTicket<0)
               {
                  Alert("Tenkan Kijun Cross Placing Buy Order failed",Underlying, MagicNumber);
               }
            else Alert(OrderTicket());   
         }
       // ShortOrder aufgeben
       double ShortEntry = iLow(NULL,0,1) - (SlippageFaktor);
       
       if(OpenOrders == 0 && ShortSignal == true && IsNewBar == true && TradingTime == true)
         {
           ShortTicket = OrderSend(Symbol(),OP_SELLSTOP,Lots,ShortEntry,5,0,0,"Tenkan Kijun Cross Sell Order opened ",MagicNumber,0,Red);
            if(ShortTicket<0)
               {
                  Alert("Tenkan Kijun Cross Placing Sell Order failed", Underlying, MagicNumber);
               }
            else Alert(OrderTicket());   
         }
 //SL und TP hinzufügen
      
      double SL = iATR(NULL,0,ADXPeriod,0)*SLFaktor;
      double TP =iATR(NULL,0,ADXPeriod,0)*TPFaktor;
      double SLShort = NormalizeDouble(OrderOpenPrice() + SL,Digits);
      double TPShort = NormalizeDouble(OrderOpenPrice() - TP,Digits);
      double SLLong = NormalizeDouble(OrderOpenPrice() - SL,Digits);
      double TPLong = NormalizeDouble(OrderOpenPrice() + TP,Digits);
         
      if(OrderSelect(ShortTicket,SELECT_BY_TICKET)== true)  
        {
         if(OrderCloseTime()== 0 && OrderStopLoss()== 0 && OrderTakeProfit()== 0)
            {
         
            ShortOrderModified = OrderModify(OrderTicket(),OrderOpenPrice(),SLShort,TPShort,ExpirationTime);
            if(ShortOrderModified ==true)
              {
              Alert(OrderTicket(),"Short Order modified", "IKH Tenkan Kijun Cross");
              }
            else Alert("Short Order modification failed","IKH Tenkan Kijun Cross", Underlying, GetLastError());  
            }
         }
     
      if(OrderSelect(LongTicket,SELECT_BY_TICKET)== true)  
        {
         if(OrderCloseTime == 0 && OrderStopLoss() == 0 && OrderTakeProfit() ==0)
            {
         
            LongOrderModified = OrderModify(OrderTicket(),OrderOpenPrice(),SLLong,TPLong,ExpirationTime);
            if(LongOrderModified ==true)
              {
              Alert(OrderTicket(),"Long Order modified", "IKH Tenkan Kijun Cross");
              }
            else Alert("Long Order modification failed", "IKH Tenkan Kijun Cross", Underlying, GetLastError());  
            } 
         }
         
//Tagesgültigkeit der Order
     // Scahuen ob Order ausgeführt wurde
          for(i=0;i<AnzahlOrders;i++)
         {    
            if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
            {
               if(Symbol()==OrderSymbol() && OrderMagicNumber()==MagicNumber) 
               {
                  if(OrderType()== OP_BUY || OrderType()== OP_SELL)
                     {
                        ausgefuehrt=True;
                     }
                  else ausgefuehrt=False;
               }
            }   
         }
      
       //Pending Order am Tagesende löschen
       
     
        for(i=0;i<AnzahlOrders;i++)
        { 
       
         if(OpenOrders >0 && TimeHour(TimeCurrent())==EndTradingHour && TimeMinute(TimeCurrent())==EndTradingMinute  && ausgefuehrt==False)
         {    
            if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
            {
               if(Symbol()==OrderSymbol() && OrderMagicNumber()==MagicNumber) 
               {
                  OrderDelete(OrderTicket(),0);
                  
               }
            }
          }
         }   
      //Ausgeführte Long Order am Tagesende schließen
       for(i=0;i<AnzahlOrders;i++)
        { 
       
         if(OpenOrders >0 && TimeHour(TimeCurrent())==EndTradingHour && TimeMinute(TimeCurrent())==EndTradingMinute  && ausgefuehrt==True)
         {    
            if(OrderSelect(LongTicket,SELECT_BY_TICKET,MODE_TRADES))
            {
               if(Symbol()==OrderSymbol() && OrderMagicNumber()==MagicNumber) 
               {
                  OrderClose(LongTicket,OrderLots(),Bid,5);
                 
               }
            }
          }
         }   
      //Ausgeführte Short Order am Tagesende schließen
       for(i=0;i<AnzahlOrders;i++)
        { 
       
         if(OpenOrders >0 && TimeHour(TimeCurrent())==EndTradingHour && TimeMinute(TimeCurrent())==EndTradingMinute  && ausgefuehrt==True)
         {    
            if(OrderSelect(ShortTicket,SELECT_BY_TICKET,MODE_TRADES))
            {
               if(Symbol()==OrderSymbol() && OrderMagicNumber()==MagicNumber) 
               {
                  OrderClose(ShortTicket,OrderLots(),Ask,5);
                 
               }
            }
          }
         }              
                    
    //Ticketnummern auf 0 zurücksetzen
    if(OrderSelect(LongTicket,SELECT_BY_TICKET)==true)
      {
         if(OrderTicket()>0 && OrderCloseTime()>0) LongTicket =0;
      } 
      
    if(OrderSelect(ShortTicket,SELECT_BY_TICKET)==true)
      {
         if(OrderTicket()>0 && OrderCloseTime()>0) ShortTicket =0;
      }            
   
  }