
Chiến lược này là một hệ thống giao dịch định lượng cao kết hợp với CMO và Bollinger Bands. Nó phân tích biến động giá và các chỉ số động lực để xác định tình trạng quá mua quá bán của thị trường, từ đó tạo ra tín hiệu giao dịch chính xác. Chiến lược này sử dụng cơ chế xác minh kép của sự đảo ngược động lực và phá vỡ kênh giá, làm tăng hiệu quả độ tin cậy của giao dịch.
Logic cốt lõi của chiến lược này dựa trên các thành phần chính sau:
Chiến lược này xây dựng một hệ thống giao dịch hoàn chỉnh thông qua sự phối hợp của Brinbelt và CMO. Chiến lược này tăng độ tin cậy của giao dịch thông qua cơ chế xác nhận đa dạng, trong khi vẫn duy trì tính khách quan của hoạt động. Chiến lược này thể hiện tính thực tế và khả năng mở rộng tốt thông qua thiết lập tham số hợp lý và kiểm soát rủi ro.
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Chande Momentum Oscillator + Bollinger Bands Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Bollinger Bands Parameters
bbLength = input.int(20, title="Bollinger Bands Length")
bbStdDev = input.float(2.0, title="Bollinger Bands Std Dev")
basis = ta.sma(close, bbLength)
upper = basis + bbStdDev * ta.stdev(close, bbLength)
lower = basis - bbStdDev * ta.stdev(close, bbLength)
// Chande Momentum Oscillator Parameters
cmoLength = input.int(14, title="CMO Length")
cmoOverbought = input.float(50, title="CMO Overbought Level")
cmoOversold = input.float(-50, title="CMO Oversold Level")
cmo = ta.cmo(close, cmoLength)
// Plot Bollinger Bands
plot(basis, color=color.orange, title="Bollinger Basis")
p1 = plot(upper, color=color.blue, title="Bollinger Upper")
p2 = plot(lower, color=color.blue, title="Bollinger Lower")
fill(p1, p2, color=color.blue, transp=90, title="Bollinger Fill")
// Plot CMO
hline(cmoOverbought, "Overbought", color=color.red)
hline(cmoOversold, "Oversold", color=color.green)
plot(cmo, color=color.purple, title="CMO")
// Buy Condition: Price crosses below lower Bollinger Band and CMO is oversold
longCondition = ta.crossunder(close, lower) and cmo < cmoOversold
if (longCondition)
strategy.entry("Long", strategy.long)
// Sell Condition: Price crosses above upper Bollinger Band and CMO is overbought
shortCondition = ta.crossover(close, upper) and cmo > cmoOverbought
if (shortCondition)
strategy.entry("Short", strategy.short)
// Exit Long: Price crosses above basis or CMO is overbought
exitLong = ta.crossover(close, basis) or cmo > cmoOverbought
if (exitLong)
strategy.close("Long")
// Exit Short: Price crosses below basis or CMO is oversold
exitShort = ta.crossunder(close, basis) or cmo < cmoOversold
if (exitShort)
strategy.close("Short")