Einzelnen Beitrag anzeigen
  #15 (permalink)  
Alt 22.06.15
saro2018 saro2018 ist offline
Neues Mitglied
 
Registriert seit: Mar 2015
Ort: Berlin
Beiträge: 28
saro2018 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
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