Thema: Hedge EA
Einzelnen Beitrag anzeigen
  #23 (permalink)  
Alt 04.01.21
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

Moin.

Der EA scheint Gewinn machen zu können, allerdings schließt er nie eine Order wie er soll. Fehlermeldungen oder Warnungen gibts Keine. Und der Code ist doch eigentlich richtig. Trotzdem schließt er ne irgendwelche Orders, wie er eigentlich müsste.
Code:
//=============================================================================================================
// C L O S E   A L L   O R D E R S   B Y   S E L L   D I S T
//=============================================================================================================
//Prüfen, ob letzter NextSell ONO-Dist erreicht hat.
if(OrderSelect(TI_NeSel,SELECT_BY_TICKET)){
  NeSelOOP_DONO=NormalizeDouble( OrderOpenPrice() - Dist_ONO *_Point,_Digits);
  if( Bid <= NeSelOOP_DONO ){

//  Wenn letzter NextSell ONO-Dist erreicht hat, FirstSell raus suchen.
    if(OrderSelect(TI_FiSel,SELECT_BY_TICKET)){

//    Wenn FirstSell Gewinn-Dist erreicht hat...
      FiSelOOP_DCAO = NormalizeDouble( OrderOpenPrice() - Dist_CAO *_Point,_Digits);
      if( Ask < FiSelOOP_DCAO ){

//      ...CloseAll_"by_Short" auf true setzen...
        caSH=true;

//      ...Lots erhöhen...
        Lots = OrderLots() + LotsPlus; // ? 
} } } } 

//...und alle Orders schließen.
if(caSH==true){
for(u=OrdersTotal()-1;u>=0;u--){
if(OrderSelect(u,SELECT_BY_POS)){
if(OrderSymbol()==Symbol()){
if(OrderMagicNumber()==MN_FiBuy){
if(IsTradeAllowed()==true)OCsel=OrderClose(OrderTicket(),OrderLots(),NULL,Slippage,clrRed);
if(IsTradeContextBusy()==true)Sleep(slMS);}
if(OrderMagicNumber()==MN_NeBuy){
if(IsTradeAllowed()==true)OCsel=OrderClose(OrderTicket(),OrderLots(),NULL,Slippage,clrRed);
if(IsTradeContextBusy()==true)Sleep(slMS);}
if(OrderMagicNumber()==MN_NeSel){
if(IsTradeAllowed()==true)OCsel=OrderClose(OrderTicket(),OrderLots(),NULL,Slippage,clrRed);
if(IsTradeContextBusy()==true)Sleep(slMS);}
if(OrderMagicNumber()==MN_FiSel){
if(IsTradeAllowed()==true)OCsel=OrderClose(OrderTicket(),OrderLots(),NULL,Slippage,clrRed);
if(IsTradeContextBusy()==true)Sleep(slMS);}
} } } }
//=============================================================================================================
// C L O S E   A L L   O R D E R S   B Y   B U Y   D I S T
//=============================================================================================================
//Prüfen, ob letzter NextBuy OpenNextOrder-Dist erreicht hat:
if(OrderSelect(TI_NeBuy,SELECT_BY_TICKET)){

  NeBuyOOP_DONO=NormalizeDouble( OrderOpenPrice() + Dist_ONO *_Point,_Digits);
  if( Ask >= NeBuyOOP_DONO ){

//  Wenn ja, FirstBuy raus suchen.
    if(OrderSelect(TI_FiBuy,SELECT_BY_TICKET)){

//    Wenn FirstBuy Gewinn-Dist erreicht hat...
      FiBuyOOP_DCAO = NormalizeDouble( OrderOpenPrice() + Dist_CAO *_Point,_Digits);
      if( Bid > FiBuyOOP_DCAO ){

        caLO=true;

//      ...Lots erhöhen...
        Lots = OrderLots() + LotsPlus; // ?
} } } }

//...und alle Orders schließen.
if(caLO==true){
for(w=OrdersTotal()-1;w>=0;w--){
if(OrderSelect(w,SELECT_BY_POS)){
if(OrderSymbol()==Symbol()){
if(OrderMagicNumber()==MN_FiSel){
if(IsTradeAllowed()==true)OCbuy=OrderClose(OrderTicket(),OrderLots(),NULL,Slippage,clrRed);
if(IsTradeContextBusy()==true)Sleep(slMS);}
if(OrderMagicNumber()==MN_NeSel){
if(IsTradeAllowed()==true)OCbuy=OrderClose(OrderTicket(),OrderLots(),NULL,Slippage,clrRed);
if(IsTradeContextBusy()==true)Sleep(slMS);}
if(OrderMagicNumber()==MN_FiBuy){
if(IsTradeAllowed()==true)OCbuy=OrderClose(OrderTicket(),OrderLots(),NULL,Slippage,clrRed);
if(IsTradeContextBusy()==true)Sleep(slMS);}
if(OrderMagicNumber()==MN_NeBuy){
if(IsTradeAllowed()==true)OCbuy=OrderClose(OrderTicket(),OrderLots(),NULL,Slippage,clrRed);
if(IsTradeContextBusy()==true)Sleep(slMS);}
} } } }
Angehängte Grafiken
Dateityp: gif LoSh_2020-01-04.gif (6,3 KB, 4x aufgerufen)
Angehängte Dateien
Dateityp: mq4 LoShDistV3.mq4 (32,0 KB, 1x aufgerufen)