Zitat:
Zitat von traderdoc
Code:
int ticket;
double closedProfit = 0;
int hstTotal = OrdersHistoryTotal();
for(int i = 0; i < hstTotal; i++) {
if (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) { //was soll total sein???
for(i = 0; i < hstTotal; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) {
if (OrderType() == OP_BUY && OrderMagicNumber() == mymagicnumber){
ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, 2, StopLoss, TakeProfit, NULL, mymagicnumber);
}
if (OrderType() == OP_SELL && OrderMagicNumber() == mymagicnumber{
ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 2, StopLoss, TakeProfit, NULL, mymagicnumber);
}
}
}
}
}
So, habe mal den Code etwas geordnet. Das solltest Du Dir von vorn herein angewöhnen.
Die Logik im unteren Teil erschließt sich mir zwar nicht, aber Du wirst schon Deine Gründe haben.
Ansonsten solltest Du nochmals ganz knapp darlegen, was genau!! gemacht werden soll.
traderdoc
|
Vielen Dank, für die Antwort. Also im Allgemeinen möchte ich, dass der EA checken soll, ob der letzte Trade ein Profit oder ein Loss ist.
Wenn der Trade ein Loss ist (wie unten), dann soll er eine Position sofort in Gegenrichtung eröffnen. Mit total ist gemeint, dass er zudem checken soll, ob sich schon eine Order im Markt befindet. Wenn dies der Fall ist, soll er keine neue eröffnen. Also immer nur eine Positition im Markt.
Gruß Aron