also, meine lösung sieht so aus, dass ich nach erreichen von trailingstop 1 einen engeren trailingstop setze, ist nämlich nicht so toll, wenn der kurs die 45 pips erreicht hat und dann wieder um 44 zurückfällt.
im programmkopf steht folgendes:
extern int TrailingStop =45;
extern int T2Stop = 5;//enger trailingstop bei erreichen trailingstop 1
die berechnung des TS erfolgt wie unten.
// trailingstop berechnen im beispiel wird bei erreichen von 45 punkten TS1 auf T2Stop gesetzt, d.h., bei rückfall um mehr als 5 pips wird verkauft:
for(cnt=0;cnt<ordermax+20;cnt++)
{OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
// long position geöffnet????????????
{if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)==true)
// trailingstop für long
{if(OrderType()==OP_BUY)
if(Bid-OrderOpenPrice()>Point*TrailingStop)
if((OrderStopLoss()<Bid-Point*T2Stop) &&(OrderStopLoss()>1))
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*T2Stop,OrderTakeProfit(),0,Red);
//trailingstop für short
if(OrderType()==OP_SELL)
if((OrderOpenPrice()-Ask)>Point*TrailingStop)
if(OrderStopLoss()>(Ask+Point*T2Stop) &&(OrderStopLoss()>1))
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Poi nt*T2Stop,OrderTakeProfit(),0,Red);
}}}
/**/
hoffe, dass es geholfen hat
|