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