Einzelnen Beitrag anzeigen
  #4 (permalink)  
Alt 07.09.14
traderdoc traderdoc ist offline
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Code:
ACCOUNT_PROFIT = 0;
for(int i = 0; i < OrdersTotal(); i++) {
   if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol() == Symbol()) {   //falls der Profit für den gesamten Account berechent werden soll, muß diese Zeile entfernt werden
         ACCOUNT_PROFIT += OrderProfit() + OrderSwap() + OrderCommission();
      }
   }
}
Lots = Irgendetwas;        //für die Fälle, dass ACCOUNT_PROFIT >= -100 und <= 100 ist
if (ACCOUNT_PROFIT < -100) Lots=1;
if (ACCOUNT_PROFIT > 100) Lots=4;
if (Kauf>0 && offeneOrders == 0) {   //Kauf > 0???
   if (Signal == "LONG") {
      ticket=OrderSend(Symbol(),OP_BUY,Lots,Kauf,30,Stopkurs,Kursziel,"MA Cross",Magicnummer,Green);
   }
   if (Signal == "SHORT") {     
      ticket=OrderSend(Symbol(),OP_SELL,Lots,Kauf,30,Stopkurs,Kursziel,"MA Cross",Magicnummer,Red);
   }
}
Die Variable Kauf mit dessen Wert, der dem aktuellen Kaufpreis entspricht, ist immer > 0!, weil es keinen Preis gibt, der <= 0 ist.

An Deinem hier vorliegenden Codesschipsel kann es nicht liegen, dass er nur Buy-Orders öffnet. Entweder daran: if (Signal == "SHORT"), oder an ungültigen Übergaben von Lots, StopKurs bzw. Kursziel.

Und in Zukunft den Code immer über die oben stehende Auswahl: # eingeben.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.