Okay ich habe mal eine Sache programmiert. Sie soll checken ob die letzte Order ein Profit war oder nicht. Falls das der Fall ist, soll sie in die Condition Loop wieder rein, falls sie ein Loss war soll sie unten den Befehl ausführen (eine Order eröffnen, Gegenposition)
Der Code sieht die wie folgt aus:
Code:
double mymagicnumber = 123456;
double closedProfit = 0;
int hstTotal = OrdersHistoryTotal();
for(int i=0;i<hstTotal;i++)
{ OrderSelect(i, SELECT_BY_POS, MODE_HISTORY );
if ( OrderSymbol()==Symbol() && ( (OrderMagicNumber() == mymagicnumber)))
{closedProfit = closedProfit + OrderProfit();
}
} if (closedProfit>=0)
//[...my conditions]
//[am ende der Loop]
if (closedProfit<0)
{
if(total<1)
for(i=0;i<hstTotal;i++)
{ OrderSelect(i, SELECT_BY_POS, MODE_HISTORY );
if ( OrderType()==OP_BUY && ( (OrderMagicNumber() == mymagicnumber)))
{OrderSend(Symbol(),OP_SELL,Lots,Bid,2,StopLoss,TakeProfit,NULL,mymagicnumber);
}
if ( OrderType()==OP_SELL && ( (OrderMagicNumber() == mymagicnumber)))
{OrderSend(Symbol(),OP_BUY,Lots,Ask,2,StopLoss,TakeProfit,NULL,mymagicnumber);
}
} }
return(0);
}
Da müsste ein kleiner Logikfehler drin sein.
Gruß Aron