Hallo, ich habe da eine kleine Programmierungsfrage:
Ich habe mir einen EA gebastelt. Ein EA der häufig mehrere Order zur gleichen Zeit schließt. Mal werden alle Order geschlossen, weil alle Order zusammengerechnet einen gewünschten TakeProfit erreicht haben und mal werden alle Order geschlossen, weil einer oder mehrere der laufenden Order in den StopLoss gelaufen sind. Und dieser Teil vom Code überwacht nach dem Schließen den Profit:
Code:
bool checkforlosses()
{
int losses=0;
int i;
for(i=0; i<OrdersHistoryTotal(); i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber) continue;
if(OrderProfit()<0) losses++;
else losses=0;
}
if(losses>0) return(true);
return(false);
}
Jetzt habe ich das Problem, dass mit diesem Code nur der Profit vom letzten geschlossenen Order überwacht wird, doch ich brauche das Ergebnis von dem Order-Haufen, der eben geschlossen wurde. Doch ich brauche das korrekte Ergebnis, denn anhand "if(checkforlosses())" kann ich dann wunderbar weitere Befehle ausführen oder eben nicht ausführen lassen. Z.B.:
Code:
if(checkforlosses())
{
if (lots < 2.20) lots += 0.10;
}
else
{
if (lots > 0.05) lots -= 0.05;
}
Was kann man denn da machen?