Ich möchte einen volatilitäsabhängigen Intraday-Trailingstop realisieren.
Dazu habe ich eine globale Variable definiert und diese in den Intraday-Trailingstop eingesetzt als prozentualen maximal Verlust.
Soweit funktioniert das auch.
|
Quellcode
|
1
2
3
|
global calc tradingrange:(MAX(LastDP(close),Ref(DailyPrice(high),-1))-MIN(LastDP(close),Ref(DailyPrice(low),-1)))/open*100;
global const atr_stop:[atr_stop:56,1,300,10,300,1,1,I];
global calc itdvl_long:tradingrange*atr_stop/100;
|
Mit obiger Konstruktion kann es aber passieren, dass bei steigender Vola der Stop sogar wieder weiter weggezogen wird und dass war nicht mein Plan.
Eigentlich möchte ich die Vola beim Tradeentry abgreifen und damit den Stop durchhandeln.
meine Versuche mit
|
Quellcode
|
1
|
valuewhen(itdvl_long,(enter_long+enter_short)>0,1,V)
|
sind leider gescheitert, da die Enterbedingungen auch mehrmals am Tag eintreten können und ich damit nicht den echten Tradeentry Zeitpunkt erhalte.
Dass man im Anwenderstop via "TradePeriods" und ref(itdvl_long,-TradePeriods) an den Wert kommen sollte ist mir bewusst.
Leider sind Anwenderstops "sau" langsam.
Schön wäre, wenn man TradePeriods auch im normalen Code benutzen könnte, dem ist aber bekanntlich nicht so.
Ich suche daher nach einer alternativen Lösung für mein Problem.
If you think it´s expensive to hire a professional, wait until you hire an amateur.