
Chiến lược này là một chiến lược giao dịch phá vỡ dựa trên chỉ số kênh. Nó sử dụng các đặc điểm biến động của kênh lên và xuống đường, làm nhiều khi giá vượt qua kênh lên đường và làm trống khi phá vỡ kênh xuống đường, thuộc loại chiến lược theo dõi xu hướng.
Chiến lược này đầu tiên sử dụng đường trung tâm của kênh tính toán SMA, thêm một giá trị tham số lên đường và trừ một giá trị tham số xuống đường trung tâm để tạo ra một đường dẫn giá. Sau đó, đánh giá xem giá có phá vỡ đường dẫn lên xuống hay không, và kết hợp với sự gia tăng khối lượng giao dịch làm tín hiệu mở vị trí.
Cụ thể, chiến lược giao dịch của chúng tôi là như sau:
Tính toán đường trung tâm: SMA ((giá đóng cửa, N)
Đường trên đường dẫn: trục trung tâm + giá trị tham số
Đường di chuyển dưới đường: trục trung tâm - giá trị tham số
Khi phá vỡ đường lên đường, nếu đáp ứng điều kiện khối lượng giao dịch lớn hơn 2 lần so với chu kỳ trước, hãy nhập thêm
Phía sau, các vị trí khác nhau.
Khi phá vỡ đường quỹ đạo, nếu đáp ứng điều kiện khối lượng giao dịch lớn hơn 2 lần so với chu kỳ trước, hãy mở cửa.
Khi quay trở lại, các vị trí đầu trống.
Chiến lược này có một số ưu điểm:
Sử dụng chỉ số kênh để theo dõi xu hướng giá một cách hiệu quả.
Trong khi đó, các nhà đầu tư khác cũng đang tìm kiếm các giải pháp để ngăn chặn các vụ phá vỡ giả mạo.
Lối quay trở lại như là một cơ chế thoát lỗ, có thể hạn chế tổn thất của một giao dịch.
Tính năng chấn động phù hợp với xu hướng đường ngắn.
Logic thực hiện đơn giản, dễ hiểu và dễ thực hiện.
Chiến lược này cũng có một số rủi ro:
Khi giá ở bên cạnh kênh trong một thời gian dài, nó sẽ liên tục kích hoạt các vị trí mở cùng chiều và có nguy cơ mất mát.
Thiết lập tham số đường dẫn không đúng có thể dẫn đến quá nhiều tín hiệu sai.
Một số nhà đầu tư đã đưa ra những tiêu chuẩn không đúng đắn để đánh giá mức độ tăng giao dịch và có thể đã bỏ lỡ một dấu hiệu đột phá thực sự.
Các cơ chế rút lui có thể quá bảo thủ và bỏ lỡ một sự kiện lớn.
Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Tối ưu hóa các thông số kênh để phù hợp hơn với các đặc điểm của thị trường khác nhau.
Tối ưu hóa hoặc tăng điều kiện mở vị trí, chẳng hạn như xem xét đường trung bình trống rỗng hoặc hình thức Kline, để tránh phá vỡ giả.
Tối ưu hóa các cơ chế thoát lỗ, nới lỏng mức độ dừng lỗ thích hợp, tránh ra đi sớm.
Tăng cơ chế quản lý vị trí, điều chỉnh vị trí và tỷ lệ sử dụng vốn theo thị trường.
Kết hợp nhiều chỉ số để đánh giá xu hướng cấp độ lớn, tránh đối đầu với xu hướng lớn.
Chiến lược này nói chung là một chiến lược theo dõi xu hướng đơn giản và thực tế hơn. Nó sử dụng tính năng biến động của kênh giá, có thể nắm bắt hiệu quả xu hướng đường ngắn. Nhưng cũng cần chú ý đến việc thiết lập tham số tối ưu hóa và phòng ngừa rủi ro trong đó, để có được hiệu quả chiến lược tốt hơn.
/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Copyright, 2022, Cache_that_pass. You are free to use this script however you see fit and reproduce it in any manner.
//@version=5
////// Name the strategy between the 2 quotation marks. Consider setting commission type and value in strategy header to match exchanges rates. //////
strategy("Oscillating SSL Channel Strategy", "O-SSL Strat", overlay=true, pyramiding=1, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 100, calc_on_order_fills=true)
////// Inputs and calculations used by script //////
period = input(title='Period', defval=25)
len = input(title='Period', defval=25)
smaHigh = ta.sma(high, len)
smaLow = ta.sma(low, len)
Hlv = int(na)
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1]
sslDown = Hlv < 0 ? smaHigh : smaLow
sslUp = Hlv < 0 ? smaLow : smaHigh
////// Show me the money //////
plot(sslDown, linewidth=2, color=color.new(color.red, 0))
plot(sslUp, linewidth=2, color=color.new(color.lime, 0))
////// Trade execution logic //////
//pseudo-code//
//Go long when high (or maybe close) breaks above the sslUp and volume is 2x or > Volume[1] and sslUp > sslDown
//Close the above longs when sslUp crosses under sslDown (or set takeprofit and stop loss exits)
//
//Go short when low is lower than the sslUp and volume is 2x or > Volume[1] and sslDown > sslUp
//Close shorts when sslDown crosses under sslUp
longCondition1 = (sslUp > sslDown)
longCondition2 = ta.crossover(high, sslUp)
//longCondition3 = (volume >= (volume[1]*1.89))
longCondition = ((longCondition1) and (longCondition2))// and (longCondition3))
longExit = ta.crossunder(sslUp, sslDown)
////// Bring It //////
if (longCondition)
strategy.entry("Bring It", strategy.long)
////// Sling It //////
if (longExit)
strategy.close("Bring It", comment="Sling It")
shortCondition1 = (sslDown) > (sslUp)
shortCondition2 = ta.crossunder(low, sslUp)
//shortCondition3 = (volume >= (volume[1]*1.89))
shortCondition = ((shortCondition1) and (shortCondition2))// and (shortCondition3))
shortExit = ta.crossunder(sslDown, sslUp)
////// Bring It //////
if (shortCondition)
strategy.entry("Bring It", strategy.long)
////// Sling It //////
if (shortExit)
strategy.close("Bring It", comment="Sling It")
////// Sling It //////
if (shortCondition)
strategy.entry("Sling It", strategy.short)
////// Bling It //////
if (shortExit)
strategy.close("Sling It", comment="Bring It")