
Chiến lược này là một chiến lược giao dịch dựa trên hai đường trung bình di chuyển. Nó sẽ hoạt động theo hai đường trung bình di chuyển dài và dài mà người dùng đặt, tức là phát ra tín hiệu giao dịch khi đường di chuyển nhanh vượt qua đường trung bình di chuyển hoặc đi xuống đường trung bình di chuyển chậm.
Lập luận cốt lõi của chiến lược này dựa trên nguyên tắc giao chéo của hai đường trung bình di chuyển. Điểm trung bình di chuyển là giá trung bình thu được khi tính trung bình giá đóng cửa trong một khoảng thời gian nhất định.
Trong chiến lược này, MA ngắn hạn đại diện cho xu hướng ngắn hạn của giá, MA dài hạn đại diện cho xu hướng dài hạn của giá. MA ngắn hạn nhạy cảm hơn với sự thay đổi giá so với MA dài hạn và có thể nắm bắt được sự đảo ngược giá nhanh hơn.
Cụ thể, chiến lược sử dụng ta.sma để tính toán trung bình di chuyển đơn giản cho một chu kỳ được chỉ định và sử dụng nó như một tín hiệu giao dịch. Người dùng có thể tùy chỉnh hai tham số MA, tức là chu kỳ đường dài long_period và chu kỳ đường ngắn short_period. Chiến lược sử dụng ta.crossover và ta.crossunder để đánh giá chéo vàng và chéo chết của MA.
Chiến lược này có một số ưu điểm:
Chiến lược này cũng có một số rủi ro:
Đối với các rủi ro trên, có thể được tối ưu hóa bằng cách điều chỉnh tham số MA, thiết lập trạm dừng lỗ hoặc kết hợp với các chỉ số khác.
Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Chiến lược này nói chung rất phù hợp với chiến lược nhập cảnh của giao dịch định lượng. Nó chỉ cần tham số MA đôi đơn giản để hoạt động, hoạt động đơn giản, dễ hiểu, có thể phản ánh trực quan thời gian biến đổi của thị trường. Trong khi đó, chiến lược vẫn có nhiều không gian tối ưu hóa, có thể điều chỉnh tham số hoặc thêm logic khác để cải thiện theo nhu cầu thực tế.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Cross 2 Moving Average Strategy", shorttitle="2MA Cross", overlay=true)
// User-defined input for moving averages
long_period = input(20, title="Long Period")
short_period = input(5, title="Short Period")
type_ma = input.string("SMA", title = "MA type", options = ["SMA", "EMA"])
// Calculating moving averages
long_ma = ta.sma(close, long_period)
short_ma = ta.sma(close, short_period)
// Plot moving averages
plot(long_ma, title="Long Moving Average", color=color.red)
plot(short_ma, title="Short Moving Average", color=color.green)
// Strategy logic for crossing of moving averages
longCondition = ta.crossover(short_ma, long_ma)
shortCondition = ta.crossunder(short_ma, long_ma)
// Entry orders
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Optional: Add stop loss and take profit
stop_loss_perc = input(1, title="Stop Loss (%)") / 100
take_profit_perc = input(2, title="Take Profit (%)") / 100
strategy.exit("Exit Long", from_entry="Long", stop=close*(1-stop_loss_perc), limit=close*(1+take_profit_perc))
strategy.exit("Exit Short", from_entry="Short", stop=close*(1+stop_loss_perc), limit=close*(1-take_profit_perc))