Thema: Hedge EA
Einzelnen Beitrag anzeigen
  #19 (permalink)  
Alt 02.05.20
MA-EA MA-EA ist offline
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Erst mal nicht, Danke.

Im Anhang sozusagen die Version 2.0. Hab versucht, Alles kompakter und eindeutiger zu schreiben. Bloß noch ein bool drin, der im Durchlauf nicht verändert wird. Mit bools hab ich so meine Geschichten erlebt.

Nicht mehr void OnTick. Wenn der gesamte Code bei jedem Tick gestartet wird, dann weiß ich nicht, ob er so optimal läuft...

Es wird immer gewarnt, weil ausser bei Start / return(NULL) keine return Werte zurück geliefert, bzw. erst gar keine deklariert werden. Sind doch aber eigentlich unnötig oder nicht?

Hoffe mal, das ist nicht zu viel Zeugs im OrderSend Bereich...
Code:
//=============================================================================================================
// O P E N   O R D E R S
//=============================================================================================================


if(Hour()>=Open_From_Hour&&Minute()>=Open_From_Min&&Hour()<=Open_Till_Hour&&Minute()<=Open_Till_Min){




  if( open_Buy==true ){
  
    for(int i=OrdersTotal()-1;i>=0;i--)
    
      if(OrderSelect(i,SELECT_BY_POS))
      
        if(OrderType()==OP_BUY&&OrderMagicNumber()==Buy_MN&&OrderSymbol()==Symbol())Print( "buy" , i );


        else if(IsTradeAllowed())OrderSend(Symbol(),OP_BUY,LotsBuy,Ask,Slippage,Buy_SL,Buy_TP,NULL,Buy_MN,NULL,Blue);

        if(IsTradeContextBusy())Sleep(Sl_MS);}




  if( open_Sell==true ){

    for(int j=OrdersTotal()-1;j>=0;j--)

      if(OrderSelect(j,SELECT_BY_POS))

        if(OrderType()==OP_SELL&&OrderMagicNumber()==Sell_MN&&OrderSymbol()==Symbol())Print( "sell" , i );

      
        else if(IsTradeAllowed())OrderSend(Symbol(),OP_SELL,LotsSel,Bid,Slippage,Sel_SL,Sel_TP,NULL,Sell_MN,NULL,Blue);

        if(IsTradeContextBusy())Sleep(Sl_MS);}

}
Und auch nicht im OrderClose Bereich...
Code:
//=============================================================================================================
// C L O S E   O R D E R S
//=============================================================================================================


for(int k=OrdersTotal()-1;k>=0;k--){
  if(OrderSelect(k,SELECT_BY_POS)){
    if(OrderType()==OP_BUY&&OrderMagicNumber()==Buy_MN&&OrderSymbol()==Symbol()){
      
      if( ( CLbuy_D > OrderOpenPrice() ) ||(Close_all_Orders_after==true&&Hour()>=Close_after_Hour&&Minute()>=Close_after_Min) ){
      
        if(IsTradeAllowed())OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Red);
          
        if(IsTradeContextBusy())Sleep(Sl_MS);
          
        LotsBuy = OrderLots() + LotsPlus;

} } } }




for(int l=OrdersTotal()-1;l>=0;l--){
  if(OrderSelect(l,SELECT_BY_POS)){
    if(OrderType()==OP_SELL&&OrderMagicNumber()==Sell_MN&&OrderSymbol()==Symbol()){
      
      if( ( CLsel_D < OrderOpenPrice() ) ||(Close_all_Orders_after==true&&Hour()>=Close_after_Hour&&Minute()>=Close_after_Min) ){

        if(IsTradeAllowed())OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Red);
        
        if(IsTradeContextBusy())Sleep(Sl_MS);
        
        LotsSel = OrderLots() + LotsPlus;

} } } }
Angehängte Dateien
Dateityp: mq4 LoSh_AlwInv_Dist_LP_v2.mq4 (20,0 KB, 0x aufgerufen)