Einzelnen Beitrag anzeigen
  #18 (permalink)  
Alt 24.02.12
naranjoe naranjoe ist offline
Elite Mitglied
 
Registriert seit: Jun 2010
Ort: Trier
Beiträge: 116
naranjoe befindet sich auf einem aufstrebenden Ast
Standard

Sorry,

aber ich kann das nicht mehr mit ansehen wie diese doch relativ einfach Sache verkompliziert wird.
Dein EA wird immer unübersichtlicher.
Ich habe hier mal deinen Ansatz etwas kompakter verwirklicht:
Code:
extern int TradeHour0=0;
extern int TradeHour1=1;
extern int TradeHour2=2;
extern int TradeHour3=3;
extern int TradeHour4=4;
extern int TradeHour5=5;
extern int TradeHour6=6;
extern int TradeHour7=7;
extern int TradeHour8=8;
extern int TradeHour9=9;
extern int TradeHour10=10;
extern int TradeHour11=11;
extern int TradeHour12=12;
extern int TradeHour13=13;
extern int TradeHour14=14;
extern int TradeHour15=15;
extern int TradeHour16=16;
extern int TradeHour17=17;
extern int TradeHour18=18;
extern int TradeHour19=19;
extern int TradeHour20=20;
extern int TradeHour21=21;
extern int TradeHour22=22;
extern int TradeHour23=23;
extern int StopLoss = 20;
extern int TakeProfit = 20;
int ActiveLongHour = 25;
int ActiveShortHour = 25;
int Slippage = 3;
double Lot = 0.1;
int MagicNumber = 12345;


void init()
{
}

void start()
{
 if ((TradeHour1==Hour())||(TradeHour2==Hour())||(TradeHour3==Hour())||(TradeHour4==Hour())||(TradeHour5==Hour())||(TradeHour6==Hour())||(TradeHour7==Hour())||(TradeHour8==Hour())||(TradeHour9==Hour())||(TradeHour10==Hour())||(TradeHour11==Hour())||(TradeHour12==Hour())||(TradeHour13==Hour())||(TradeHour14==Hour())||(TradeHour15==Hour())||(TradeHour16==Hour())||(TradeHour17==Hour())||(TradeHour18==Hour())||(TradeHour19==Hour())||(TradeHour20==Hour())||(TradeHour21==Hour())||(TradeHour22==Hour())||(TradeHour23==Hour())||(TradeHour0==Hour()) && ActiveLongHour != Hour()){
      int ticket=OrderSend(Symbol(),OP_BUY,Lot,Ask,Slippage ,Ask - StopLoss * Point,Bid + TakeProfit * Point,"Kompensation buy",MagicNumber,0,Green); 
      if (ticket < 0) {
        Print("OrderSend OP_BUY failed, error: ", GetLastError());
        }
      else {
        ActiveLongHour = Hour();
        }    
 }

 if ((TradeHour1==Hour())||(TradeHour2==Hour())||(TradeHour3==Hour())||(TradeHour4==Hour())||(TradeHour5==Hour())||(TradeHour6==Hour())||(TradeHour7==Hour())||(TradeHour8==Hour())||(TradeHour9==Hour())||(TradeHour10==Hour())||(TradeHour11==Hour())||(TradeHour12==Hour())||(TradeHour13==Hour())||(TradeHour14==Hour())||(TradeHour15==Hour())||(TradeHour16==Hour())||(TradeHour17==Hour())||(TradeHour18==Hour())||(TradeHour19==Hour())||(TradeHour20==Hour())||(TradeHour21==Hour())||(TradeHour22==Hour())||(TradeHour23==Hour())||(TradeHour0==Hour()) && ActiveShortHour!=Hour()){
      ticket=OrderSend(Symbol(),OP_SELL,Lot,Bid,Slippage,Bid + StopLoss * Point,Ask - TakeProfit * Point,"Kompensation sell",MagicNumber,0,Red);
      if (ticket < 0) {
        Print("OrderSend OP_SELL failed, error: ", GetLastError() );
        }
      else {
        ActiveShortHour = Hour();
      }
 } 

 for(int i = OrdersTotal() - 1; i >= 0; i--)
    {
    if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))  
       {
       if((OrderOpenTime()+3600) < TimeCurrent() && OrderMagicNumber()== MagicNumber && OrderSymbol()== Symbol())
         { 
          OrderClose(OrderTicket() ,OrderLots(), OrderClosePrice(), Slippage);                         
         }
       }
    }
 

}
Ich hoffe das läuft jetzt so wie es soll.
Musst nur noch deinen Code drumherum schreiben.

Gruß
naranjoe