Die Open Range Strategie mit Dynamic Profit Target ist eine technische Handelsstrategie, die den Öffnungsbereich des Marktes verwendet, um potenzielle Handelsmöglichkeiten zu identifizieren.
Die Strategie funktioniert, indem sie zunächst den Öffnungsbereich des Marktes berechnet. Der Öffnungsbereich ist die Differenz zwischen dem hohen Preis und dem niedrigen Preis der ersten Bar des Handelstages. Die Strategie identifiziert dann potenzielle Handelsmöglichkeiten, indem sie nach einem Bruch über oder unter dem Öffnungsbereich sucht.
Wenn der Preis über den Eröffnungsbereich bricht, tritt die Strategie in eine Long-Position ein. Wenn der Preis unter den Eröffnungsbereich bricht, tritt die Strategie in eine Short-Position ein. Die Strategie tritt aus der Position aus, wenn der Preis ein vorgegebenes Gewinnziel oder einen Stop-Loss erreicht.
Das Gewinnziel für die Strategie ist dynamisch, was bedeutet, dass es sich mit der Preisbewegung ändert. Das Gewinnziel wird auf der Grundlage der Eröffnungsbreite und des aktuellen Marktpreises berechnet. Die Strategie tritt aus der Position aus, wenn der Preis einen vorgegebenen Prozentsatz der Eröffnungsbreite erreicht.
Der Stop-Loss für die Strategie ist ebenfalls dynamisch, was bedeutet, dass er sich mit der Preisbewegung ändert. Der Stop-Loss wird anhand des aktuellen Marktpreises und des vorgegebenen Prozentsatzes der Eröffnungsbreite berechnet. Die Strategie tritt aus der Position aus, wenn der Preis den Stop-Loss erreicht.
Die Open Range Strategie mit Dynamic Profit Target ist eine relativ einfache Strategie zur Umsetzung, aber sie kann bei der Identifizierung von kurzfristigen Handelsmöglichkeiten wirksam sein.
Die verschiedenen Komponenten der Strategie werden im Folgenden ausführlicher erläutert:
Hier sind einige Tipps für die Verwendung der Open Range Strategie mit dynamischem Gewinnziel:
Ich hoffe, dieser Artikel hat Ihnen geholfen.
/*backtest start: 2023-08-09 00:00:00 end: 2023-09-08 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] args: [["v_input_10",true]] */ //@version=2 //Created by Frenchy/lisfse/Francois Seguin on 2019-01-22" strategy(title="Open_Range_Strategy_with_dynamic_PT_by_frenchy", shorttitle="O/R Strategy Dynamic PT ", overlay=true) // === INPUT BACKTEST RANGE === FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2017, title = "From Year", minval = 2010) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 2016) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => time >= start and time <= finish ? true : false // create function "within window of time" // === INPUT SESSION RANGE === SessionLenght = input('0930-1100', title="Session Lenght") res = input('30', title="Length Of Opening Range?") Notradetime= time('30', '0930-1000') Tradetime= time('1', '1000-1100') // === LONG/SHORT STRATEGY AND ALERT SELECTION === Select_long = input(true, title="Long Strategy and alert ?") Select_short = input(false, title="Short Strategy and alert ?") //Session Rules sessToUse = SessionLenght bartimeSess = time('D', sessToUse) fr2to17 = time(timeframe.period, sessToUse) newbarSess = bartimeSess != bartimeSess[1] high_range = valuewhen(newbarSess,high,0) low_range = valuewhen(newbarSess,low,0) adopt(r, s) => security(syminfo.tickerid, r, s) //Formula For Opening Range highRes = adopt(res, high_range) lowRes = adopt(res, low_range) range = highRes - lowRes //Highlighting Line Rules For Opening Range highColor = Notradetime ? red : green lowColor = Notradetime ? red : green //Plot Statements For Opening Range Lines openRangeHigh = plot(fr2to17 > 0 ? highRes : na, color=highColor, style=linebr, linewidth=4,title="OR High") openRangeLow = plot(fr2to17 > 0 ? lowRes : na, color=lowColor, style=linebr, linewidth=4,title="OR Low") //Price definition price = security(syminfo.tickerid, timeframe.period, close) haclose = ((open + high + low + close)/4) //aopen = na(haopen[1]) ? (open + close)/2 : (haopen[1] + haclose[1]) / 2 MA20= sma(price,20) //Plots For Profit Targe 2 bgcolor(Notradetime? red:na) ///////////////////////////////////////Strategy Definition /////////////////////////////////////////////////////////////// /////////////////////////////////////////Long Strategy//////////////////////////////////////////////////////////////////// //Enter Strategy Long criteria Enterlong = (crossover(price,highRes) and Select_long and Tradetime ? 1:0 ) and (Notradetime ? 0:1) plotarrow(Enterlong, color=black, style=shape.triangleup, text="Enter", location=location.belowbar, minheight = 80, maxheight=80, offset=0) //Exit Strategy Long criteria Exitlong = crossunder(price,highRes) or crossunder(price,MA20) //plotshape(Exitlong, color=black, style=shape.triangledown, text="Exit", location=location.abovebar) /////////////////////////////////////////Long Strategy Excution//////////////////////////////////////////////////////// strategy.entry ("Call", strategy.long, when=Enterlong and window()) strategy.close("Call", when=Exitlong and window()) //////////////////////////////////////////Short Strategy//////////////////////////////////////////////////////////////// //Enter Strategy Short criteria Entershort = crossunder(price,lowRes) and time(res, SessionLenght) and Select_short ? 1:0 // Exit Strategy short criteria Exitshort = crossover(price,lowRes) or crossover(haclose,MA20) ///////////////////////////////////////Strategy execution Short/////////////////////////////////////////////////////// strategy.entry ("put", strategy.short, when=Entershort and window()) strategy.close("put", when=Exitshort and window())