Ý tưởng chính của chiến lược này là mở một vị trí dài sau khi một mô hình nến cụ thể xuất hiện, cụ thể là mở một vị trí dài tại thanh tiếp theo mở sau một khoảng cách giảm (colorbar) tiếp theo là pullback đến mức thấp của thanh trước đó.
Các điều kiện cụ thể cho chiến lược này là: thanh trước có mức thấp hơn và cao hơn so với hai thanh trước, cho thấy một khoảng cách giảm; và thanh hiện tại thấp hơn hoặc bằng với thanh trước thấp, báo hiệu một pullback đã xảy ra.
Sau khi mở vị trí dài, lệnh dừng lỗ được đặt ở mức thấp pullback, là mức thấp của thanh trước, và lấy lợi nhuận được đặt ở mức hơn 2% trên giá nhập cảnh.
Lợi thế lớn nhất của chiến lược này là nắm bắt cơ hội hồi phục có khả năng cao sau mô hình nến cụ thể. Khoảng cách giảm tiếp theo là pullback đại diện cho một mô hình kỹ thuật cực kỳ mạnh mẽ cho thấy áp lực bán hàng có thể đã cạn kiệt ở mức này và có khả năng hồi phục có khả năng cao sẽ xảy ra. Do đó, chiến lược này phù hợp hơn cho giao dịch ngắn hạn.
Rủi ro chính là sự sụt giảm liên tục sau khi chấm dứt pullback. Vì chúng ta đang nắm giữ các vị trí dài xung quanh mức thấp pullback, chúng ta có thể phải chịu tổn thất đáng kể nếu không thể cắt giảm lỗ kịp thời. Ngoài ra, nếu phạm vi pullback nhỏ, mức dừng lỗ được đặt quá chặt có thể gây ra việc dừng lại. Do đó, chiến lược này được ưa thích hơn cho giao dịch ngắn hạn, đòi hỏi sự chú ý chặt chẽ của thị trường và dừng lỗ kịp thời.
Các chỉ số kỹ thuật khác có thể được kết hợp để cải thiện độ chính xác tín hiệu và sự ổn định chiến lược, chẳng hạn như nhập vào đường chéo vàng MACD, hoặc kiểm tra giá điển hình ở mức hỗ trợ trước khi nhập. Ngoài ra, tối ưu hóa bước đi trước có thể được thực hiện trên các sản phẩm và khung thời gian khác nhau để tìm thấy bộ tham số tối ưu. Các kỹ thuật học máy cũng có thể được tận dụng để điều chỉnh tham số tự động.
Tóm lại, đây là một chiến lược rút lui ngắn hạn điển hình. Nó nắm bắt cơ hội phục hồi sau mô hình mạnh mẽ của khoảng cách giảm đi theo sau đó là rút lui. Nhưng nó cũng có nguy cơ mất mát lớn nếu không cắt giảm lỗ kịp thời. Việc theo dõi thị trường thường xuyên là cần thiết để có kết quả thuận lợi.
/*backtest start: 2024-01-22 00:00:00 end: 2024-02-21 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // Created by Leon Ross //study(title="OutsideDownOpenLower", shorttitle="ODOL", overlay=true) strategy(title = "Outside", shorttitle = "OB", overlay = true ) //Window of time //start = timestamp(2018, 01, 01, 00, 00) // backtest start window //finish = timestamp(2018, 12, 31, 23, 59) // backtest finish window //window() => time >= start and time <= finish ? true : false // create function "within window of time" //Conditions outsideBar = low < low[1] and high > high[1] and close < open allConditions = outsideBar //Stop and Take Profit as percentages //inpTakeProfit = input(2, title='Take Profit %', type=float)/100 //takeProfitValue = strategy.position_avg_price * (1 + inpTakeProfit) //useTakeProfit = inpTakeProfit > 0 ? takeProfitValue : na //inpStopLoss = input(1, title='Stop Loss %', type=float)/100 //stopLossValue = strategy.position_avg_price * (1 - inpStopLoss) //useStopLoss = inpStopLoss > 0 ? stopLossValue : na //entry = strategy.position_avg_price //Stop as last bars low and profit as percentage entry = strategy.position_avg_price inpTakeProfit = input(2.0, title='Take Profit %', type=float)/100 takeProfitValue = strategy.position_avg_price * (1 + inpTakeProfit) useTakeProfit = inpTakeProfit > 0 ? takeProfitValue : na inpStopLoss = valuewhen(allConditions, low, 0) stopLossValue = inpStopLoss useStopLoss = inpStopLoss > 0 ? stopLossValue : na //Plots bgcolor(allConditions ==1 ? aqua : na, transp=70) plot(entry, color=blue, style=linebr, linewidth=2) plot(useStopLoss, color=red, style=linebr, linewidth=2) plot(useTakeProfit, color=green, style=linebr, linewidth=2) //Entires strategy.entry(id = "Long", long = true, when = allConditions) // use function or simple condition to decide when to get in //Exits //if (barssince(allConditions) == 2) //strategy.close("Long") //else strategy.exit("Exit Long", from_entry = "Long", stop = useStopLoss)