Chiến lược Long Breakthrough Callback

Tác giả:ChaoZhang, Ngày: 2024-02-22 15:41:53
Tags:

img

Tổng quan

Ý 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 đó.

Chiến lược logic

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.

Phân tích lợi thế

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.

Phân tích rủi ro

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.

Hướng tối ưu hóa

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

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)







Thêm nữa