Zitat:
Zitat von Bayreuther
@ traderdoc
so in etwa?
Code:
OrderSend (Symbol(), OP_BUY, Lots, Ask + SpreadPlus, Slippage, SL, TP + SpreadPlus, NULL, MagicNumber, 0, clrNONE);
aktueller Spread = Ask + SpreadPlus - Bid
|
Nein, so würde das nicht gehen, weil eine MarketOrder Buy vom Broker nur mit dem Ask ausgeführt werden würde und nicht mit Ask+SpreadPlus.
Beim TP der BuyOrder wird auch kein SpreadPlus benötigt, weil die BuyOrder immer mit dem Bid geschlossen wird.
Aber das würde gehen:
Code:
OrderSend (Symbol(), OP_BUYSTOP, Lots, Ask + SpreadPlus, Slippage, SL, TP , NULL, MagicNumber, 0, clrNONE);
SpreadPlus müsste dann jedoch größer sein als das STOPLEVEL.
Der SL und der TP müssten vom Abstand her jedoch so gelegt werden, als wäre die BuyOrder tatsächlich am Ask geöffnet worden!! Oder man geht tatsächlich vom Openprice Ask+SpreadPlus oder wie unten vom Buy_Open_Price und zieht dann vom SL und TP den Wert SpreadPlus ab!!
oder besser und sicherer so:
Code:
Buy_Open_Price = gemerkter_ask + SpreadPlus;
OrderSend (Symbol(), OP_BUY, Lots, Buy_Open_Price, Slippage, SL, TP , NULL, MagicNumber, 0, clrNONE);
gemerkter_ask - wäre der Preis zu dem sonst die BuyOrder geöffnet worden wäre.
SpreadPlus darf aber hier nicht als Pips angegeben werden, sondern muss vorher mit POINT multipliziert werden. Sofern ein 5-Digitbroker verwendet wird, dann auch noch mit den Faktor 10 multipliziert, wenn SpreadPlus in realen Pips benutzt wird.
Bei einer SellOrder ist das etwas einfacher, dann kann das benutzt werden:
Code:
OrderSend (Symbol(), OP_SELL, Lots, Bid, Slippage, SL+SpreadPlus, TP+SpreadPlus, NULL, MagicNumber, 0, clrNONE);
traderdoc