
Chiến lược này nhằm mục đích sử dụng các chỉ số di chuyển trung bình và các trạm dừng di chuyển dựa trên trung bình phân tán động của Chande để phát hiện xu hướng biến đổi hoặc tiếp tục tiềm năng. Chiến lược này kết hợp nhiều chỉ số để đánh giá thời gian vào và đặt mức dừng và dừng dựa trên biến động của thị trường, nhằm kiểm soát rủi ro trong khi phát hiện xu hướng mới.
Chiến lược này sử dụng hai EMA 60 chu kỳ và 90 chu kỳ để xác định hướng xu hướng. Một EMA ngắn có thể được coi là một tín hiệu bullish khi nó đi qua một EMA dài. Đồng thời, một MACD ngắn có thể được coi là một đường đi qua một đường đi chậm.
Quy tắc chiến lược là: Giá chạm vào điểm dừng dựa trên ATR hoặc phá vỡ CDC và rời khỏi điểm dừng.
Chiến lược này kết hợp hai EMA để xác định hướng xu hướng chính và thời gian xác nhận MACD để tránh phá vỡ giả. Các điểm dừng và điểm dừng đều dựa trên tính toán biến động của thị trường, có thể quản lý rủi ro tốt.
Ngoài ra, các tham số đầu vào của chiến lược có thể được tùy chỉnh, người dùng có thể điều chỉnh chu kỳ EMA, chu kỳ ATR và hệ số CDC theo nhu cầu của họ, để làm cho chiến lược phù hợp hơn với cách giao dịch của họ.
Rủi ro lớn nhất của chiến lược này là đánh giá xu hướng sai. Khi thị trường đang cân bằng, EMA dễ phát tín hiệu sai. Trong trường hợp này, vai trò xác nhận của chỉ số MACD đặc biệt quan trọng. Ngoài ra, hệ số dừng CDC nên được tăng lên thích hợp để đối phó với sự nhảy vọt lớn do sự kiện bất ngờ.
Chiến lược này tận dụng tối đa lợi thế của các chỉ số định xu hướng và biến động để xác định các cơ hội tiềm năng trong các chứng khoán được đặt mục tiêu. Bằng cách tối ưu hóa các tham số và cải tiến cơ chế, chiến lược này có khả năng tăng cường sự ổn định và khả năng sinh lợi hơn nữa.
/*backtest
start: 2023-01-17 00:00:00
end: 2024-01-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Improved EMA & CDC Trailing Stop Strategy", overlay=true)
// Define the inputs
ema60Period = input(60, title="EMA 60 Period")
ema90Period = input(90, title="EMA 90 Period")
atrPeriod = input(24, title="CDC ATR Period")
multiplier = input(4.0, title="CDC Multiplier")
profitTargetMultiplier = input(2.0, title="Profit Target Multiplier (ATR)")
// Calculate EMAs
ema60 = ta.ema(close, ema60Period)
ema90 = ta.ema(close, ema90Period)
// Calculate ATR
atr = ta.atr(atrPeriod)
// MACD calculation
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
// Define the trailing stop and profit target
longStop = close - multiplier * atr
shortStop = close + multiplier * atr
longProfitTarget = close + profitTargetMultiplier * atr
shortProfitTarget = close - profitTargetMultiplier * atr
// Entry conditions
longCondition = close > ema60 and ema60 > ema90 and macdLine > signalLine and close > longStop
shortCondition = close < ema60 and ema60 < ema90 and macdLine < signalLine and close < shortStop
// Exit conditions based on profit target
longProfitCondition = close >= longProfitTarget
shortProfitCondition = close <= shortProfitTarget
// Plot the EMAs, Stops, and MACD for visualization
plot(ema60, color=color.blue, title="60 EMA")
plot(ema90, color=color.red, title="90 EMA")
plot(longStop, color=color.green, title="Long Stop", style=plot.style_linebr)
plot(shortStop, color=color.red, title="Short Stop", style=plot.style_linebr)
hline(0, "Zero Line", color=color.gray)
plot(macdLine - signalLine, color=color.blue, title="MACD Histogram")
// Strategy execution using conditional blocks
if longCondition
strategy.entry("Long", strategy.long)
if shortCondition
strategy.entry("Short", strategy.short)
// Exit based on profit target and trailing stop
if longProfitCondition or close < longStop
strategy.close("Long")
if shortProfitCondition or close > shortStop
strategy.close("Short")