
Chiến lược này là một chiến lược theo dõi xu hướng dựa trên hệ thống nhiều đường trung bình, kết hợp với cơ chế xác nhận cường độ xu hướng và nắm bắt biến động. Chiến lược sử dụng hệ thống ba đường trung bình 5 chu kỳ, 25 chu kỳ và 75 chu kỳ làm trung tâm, lọc xu hướng mạnh thông qua chỉ số ADX, đồng thời tích hợp hệ thống giám sát biến động nhanh để đạt được lợi nhuận kịp thời.
Chiến lược hoạt động dựa trên ba cơ chế cốt lõi:
Các quy tắc giao dịch cụ thể:
Ghi các tham số thích ứng:
Tăng cường cơ chế xác nhận xu hướng:
Tối ưu hóa Stop Loss:
Phân loại môi trường:
Chiến lược này xây dựng một hệ thống giao dịch hoàn chỉnh bằng cách sử dụng hệ thống đường trung bình nhiều chiều, xác nhận cường độ xu hướng và giám sát biến động. Điểm mạnh cốt lõi của chiến lược là cơ chế xác nhận nhiều cấp và hệ thống kiểm soát rủi ro linh hoạt. Bằng cách cung cấp các khuyến nghị tối ưu hóa, chiến lược có thể nâng cao tính thích ứng và ổn định hơn nữa. Trong ứng dụng thực tế, người giao dịch được khuyến cáo tối ưu hóa các tham số theo đặc điểm thị trường cụ thể và sử dụng chiến lược quản lý tiền hợp lý.
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("5SMA-25SMA Crossover Strategy with ADX Filter and Sudden Move Profit Taking", overlay=true)
// パラメータの設定
sma5 = ta.sma(close, 5)
sma25 = ta.sma(close, 25)
sma75 = ta.sma(close, 75)
// ADXの計算
length = 14
tr = ta.tr(true)
plus_dm = ta.rma(math.max(ta.change(high), 0), length)
minus_dm = ta.rma(math.max(-ta.change(low), 0), length)
tr_sum = ta.rma(tr, length)
plus_di = 100 * plus_dm / tr_sum
minus_di = 100 * minus_dm / tr_sum
dx = 100 * math.abs(plus_di - minus_di) / (plus_di + minus_di)
adx = ta.rma(dx, length)
// ロングとショートのエントリー条件
longCondition = ta.crossover(sma5, sma25) and close > sma75 and adx > 20
shortCondition = ta.crossunder(sma5, sma25) and close < sma75 and adx > 20
// 急激な変動を検知する条件(ここでは、前のローソク足に比べて0.6%以上の値動きがあった場合)
suddenMove = math.abs(ta.change(close)) > close[1] * 0.006
// ポジション管理
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// 急激な変動があった場合、ポジションを利益確定(クローズ)する
if (strategy.position_size > 0 and suddenMove)
strategy.close("Long")
if (strategy.position_size < 0 and suddenMove)
strategy.close("Short")
// エグジット条件
if (strategy.position_size > 0 and shortCondition)
strategy.close("Long")
if (strategy.position_size < 0 and longCondition)
strategy.close("Short")
// SMAとADXのプロット
plot(sma5, color=color.blue, title="5SMA")
plot(sma25, color=color.red, title="25SMA")
plot(sma75, color=color.green, title="75SMA")
plot(adx, color=color.orange, title="ADX")
hline(20, "ADX Threshold", color=color.gray, linestyle=hline.style_dotted)