
Chiến lược này sử dụng đường trung bình di chuyển ((MA) của hai chu kỳ khác nhau để tạo ra tín hiệu giao dịch. Khi MA ngắn hạn đi từ dưới lên qua MA dài, nó tạo ra tín hiệu mua; Khi MA ngắn hạn đi từ trên xuống qua MA dài, nó tạo ra tín hiệu bán. Ý tưởng chính của chiến lược này là sử dụng tính năng theo dõi xu hướng của MA để bắt được sự chuyển đổi xu hướng bằng cách giao dịch MA.
Chiến lược giao chéo hai đường bằng nhau là một chiến lược theo dõi xu hướng đơn giản và dễ sử dụng để nắm bắt xu hướng chuyển đổi bằng cách giao chéo hai MA khác nhau. Chiến lược này có lợi thế là logic rõ ràng, tín hiệu rõ ràng và phù hợp với thị trường xu hướng. Tuy nhiên, trong thị trường bất ổn, chiến lược này có thể tạo ra nhiều tín hiệu giả và giao dịch thua lỗ. Do đó, trong ứng dụng thực tế, có thể cải thiện hiệu suất của chiến lược, tăng khả năng thích ứng và ổn định bằng cách thêm lọc xu hướng, tối ưu hóa dừng lỗ, tối ưu hóa tham số động và kết hợp với các tín hiệu khác.
/*backtest
start: 2023-05-22 00:00:00
end: 2024-05-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Combined Strategy", overlay=true)
// Moving Averages Length Inputs
short_length = input.int(20, "Short MA Length")
long_length = input.int(50, "Long MA Length")
// Moving Averages
ma_short = ta.sma(close, short_length)
ma_long = ta.sma(close, long_length)
// Buy Condition (Moving Average Crossover)
buy_condition = ta.crossover(ma_short, ma_long)
plotshape(series=buy_condition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
// Sell Condition (Moving Average Crossover)
sell_condition = ta.crossunder(ma_short, ma_long)
plotshape(series=sell_condition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
// Strategy Entry and Exit
if (buy_condition)
strategy.entry("Buy", strategy.long)
if (sell_condition)
strategy.entry("Sell", strategy.short)
// Debug statements
if (buy_condition)
label.new(x=bar_index, y=low, text="Buy Signal", color=color.green, style=label.style_label_up)
if (sell_condition)
label.new(x=bar_index, y=high, text="Sell Signal", color=color.red, style=label.style_label_down)