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);}
} } } }