Einzelnen Beitrag anzeigen
  #4 (permalink)  
Alt 19.11.19
edition87 edition87 ist offline
Neues Mitglied
 
Registriert seit: Nov 2019
Beiträge: 5
edition87 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Max2018 Beitrag anzeigen
mmmh scheint der ganze EA irgendwie nicht richtig aufgesetzt zu sein (Eine Meinung eines Mittelanfängers wie mir )
#
Will ich definitiv nicht abstreiten. Wie bereits erwähnt, bin ich noch nicht sehr lange in der Materie und auf jeden Fall noch in der Lernphase - aber wer ist das nicht.

Hier mal der Code:

Code:
extern int MagicNummer = 12345;
extern int StartHour = 10;
extern int EndHour = 12;
extern double HandelsLots= 0.1, SL_Punkte = 2.5, TP_Punkte = 0.0;

datetime NeueKerze;
bool NeuePeriodeBegonnen, ZeitfensterOffen, ZeitfensterGeschlossen, LongSignal, LastTradeLose;
int CurrentTime, Ticket, ShortOrder;

int openbuy = 0;
int opensell = 0;


//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
   {
      //Überprüfen ob neue Kerze vorliegt:
         if(NeueKerze != Time[0])
            {
               NeuePeriodeBegonnen = true; 
               NeueKerze = Time[0];
               Print("Neue Kerze Vorhanden");
            }
               else NeuePeriodeBegonnen = false;
               Print("Keine Neue Kerze Vorhanden");
               
      //Überprüfen ob wir uns im Zeitfenster befinden:
         CurrentTime = TimeHour(TimeCurrent());
            {
               if((CurrentTime >= StartHour) && (CurrentTime < EndHour))
                  {  
                     ZeitfensterOffen = true; 
                     Print("Zeitfenster geöffnet");
                  }
                     else ZeitfensterOffen = false;
                     Print("Zeitfenster geschlossen");
            }      
       
      //Bedingungen prüfen und Short-Order platzieren:
         if((NeuePeriodeBegonnen == true) && (ZeitfensterOffen == true))
            {
               ShortOrder=OrderSend(Symbol(),OP_SELL,HandelsLots,Bid,100,0.0,0.0,"Trade offen",MagicNummer,0,Blue);
            }  
            
      //SL Short Deals setzen:
         if(OrderSelect(ShortOrder,SELECT_BY_TICKET)==true)
            {
               if(OrderCloseTime()==0 && OrderStopLoss()==0)
                  {
                     double StoppLoss = NormalizeDouble(OrderOpenPrice()+(SL_Punkte/10000),Digits);
                     bool OrderAngepasst = OrderModify(OrderTicket(),OrderOpenPrice(),StoppLoss,OrderTakeProfit(),0,Yellow);          
                  }
            }
                              
      //TP Short Deals setzen:
         if(OrderSelect(ShortOrder,SELECT_BY_TICKET)==true)
            {
               if(OrderCloseTime()==0 && OrderTakeProfit()==0)
                  {
                     double TakeProfit = NormalizeDouble(OrderOpenPrice()-(TP_Punkte/10000),Digits);
                     bool OrderAngepasst = OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),TakeProfit,0,Orange);
                  }
            }
         
      //Neuer Befehl Order max. 1 Stunde geöffnet lassen!
         for(int i = OrdersTotal() - 1; i >= 0; i--)                            
         if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
            {
               if((OrderOpenTime()+3600) < TimeCurrent())
                  { 
                     if (OrderType() == OP_SELL)          
                        {
                           bool Closed = OrderClose(OrderTicket() ,OrderLots(), Bid, 10, Red);  
                           opensell = 0;         
                        }              
                  }
            }
       
   //Wenn letzter Trade nicht in den TP gelaufen ist, beim nächsten Trade 4 Positionen eröffnen
      for (int i = 0; i < 1; i++)                         
         if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
            {
               if(OrderProfit()<0.0)
               {
                  ShortOrder=OrderSend(Symbol(),OP_SELL,HandelsLots,Bid,100,0.0,0.0,"Trade offen",MagicNummer,0,Blue);
                  ShortOrder=OrderSend(Symbol(),OP_SELL,HandelsLots,Bid,100,0.0,0.0,"Trade offen",MagicNummer,0,Blue); 
               }              
            }       


      //Ticketnummern nach Closing auf 0 zurücksetzen:
         if(OrderSelect(ShortOrder,SELECT_BY_TICKET)==true)
            {
               if(OrderTicket()>0 && OrderCloseTime()>0) ShortOrder=0;
            }       
   }
Ich bin für jeden Kommentar, von totaler Schrott bis hin zu erste erkennbare Ansätze, dankbar.