Chiến lược mở phạm vi với mục tiêu lợi nhuận động là một chiến lược giao dịch kỹ thuật sử dụng phạm vi mở của thị trường để xác định các cơ hội giao dịch tiềm năng.
Chiến lược này hoạt động bằng cách đầu tiên tính toán phạm vi mở cửa của thị trường. Phạm vi mở cửa là sự khác biệt giữa giá cao và giá thấp của thanh đầu tiên trong ngày giao dịch. Chiến lược sau đó xác định các cơ hội giao dịch tiềm năng bằng cách tìm kiếm một sự phá vỡ trên hoặc dưới phạm vi mở cửa.
Nếu giá vượt quá phạm vi mở, chiến lược sẽ vào vị trí dài. Nếu giá vượt dưới phạm vi mở, chiến lược sẽ vào vị trí ngắn. Chiến lược sẽ thoát khỏi vị trí khi giá đạt được mục tiêu lợi nhuận hoặc dừng lỗ đã xác định trước.
Mục tiêu lợi nhuận cho chiến lược là năng động, có nghĩa là nó thay đổi khi giá di chuyển. Mục tiêu lợi nhuận được tính dựa trên phạm vi mở và giá hiện tại của thị trường. Chiến lược sẽ thoát khỏi vị trí khi giá đạt một tỷ lệ phần trăm được xác định trước của phạm vi mở.
Stop loss cho chiến lược cũng là năng động, có nghĩa là nó thay đổi khi giá di chuyển. Stop loss được tính dựa trên giá hiện tại của thị trường và tỷ lệ phần trăm được xác định trước của phạm vi mở. Chiến lược sẽ thoát khỏi vị trí nếu giá đạt đến stop loss.
Chiến lược mở phạm vi với mục tiêu lợi nhuận động là một chiến lược tương đối đơn giản để thực hiện, nhưng nó có thể có hiệu quả trong việc xác định các cơ hội giao dịch ngắn hạn. Tuy nhiên, điều quan trọng cần nhớ là không có chiến lược giao dịch nào được đảm bảo là có lợi.
Dưới đây là một lời giải thích chi tiết hơn về các thành phần khác nhau của chiến lược:
Dưới đây là một số mẹo để sử dụng Chiến lược phạm vi mở với mục tiêu lợi nhuận động:
Tôi hy vọng bài viết này sẽ giúp ích.
/*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())