Стратегия открытого диапазона с динамической целью прибыли - это техническая стратегия торговли, которая использует открытый диапазон рынка для выявления потенциальных торговых возможностей.
Стратегия работает, сначала рассчитывая диапазон открытия рынка. Диапазон открытия - это разница между высокой ценой и низкой ценой первой панели торгового дня. Затем стратегия определяет потенциальные торговые возможности, ищет разрыв выше или ниже диапазона открытия.
Если цена превышает диапазон открытия, стратегия входит в длинную позицию. Если цена превышает диапазон открытия, стратегия входит в короткую позицию. Стратегия выходит из позиции, когда цена достигает заранее определенной цели прибыли или стоп-лосса.
Цель прибыли для стратегии является динамической, что означает, что она меняется по мере движения цены. Цель прибыли рассчитывается на основе диапазона открытия и текущей цены на рынке. Стратегия выйдет из позиции, когда цена достигнет заранее определенного процента от диапазона открытия.
Стоп-лосс для стратегии также динамичен, что означает, что он меняется по мере движения цены. Стоп-лосс рассчитывается на основе текущей цены рынка и заранее определенного процента от диапазона открытия. Стратегия выйдет из позиции, если цена достигнет стоп-лосса.
Стратегия открытого диапазона с динамической целью прибыли является относительно простой стратегией для реализации, но она может быть эффективной при выявлении краткосрочных торговых возможностей.
Ниже приведено более подробное объяснение различных компонентов стратегии:
Вот несколько советов по использованию стратегии открытого диапазона с динамической целью прибыли:
Надеюсь, эта статья вам поможет.
/*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())