
Chiến lược này là một hệ thống giao dịch tự động dựa trên tín hiệu chéo của đường trung bình di chuyển chỉ số (EMA). Nó sử dụng mối quan hệ chéo của hai đường EMA vào ngày 12 và 25 để tạo ra tín hiệu mua và bán và tự động tối ưu hóa vị trí chuyển đổi tùy theo tình trạng giữ vị trí hiện tại. Đây là phiên bản cải tiến của chiến lược đường hai chiều truyền thống, thêm tính năng quản lý vị trí động.
Logic cốt lõi của chiến lược này dựa trên các yếu tố chính sau:
Đây là một chiến lược giao dịch tự động được thiết kế hợp lý, logic rõ ràng. Bằng cách kết hợp các tín hiệu giao dịch EMA và quản lý vị trí thông minh, chiến lược có thể nắm bắt được xu hướng thị trường một cách hiệu quả và điều chỉnh vị trí kịp thời. Mặc dù có một số rủi ro vốn có, chiến lược có giá trị thực tế tốt và không gian mở rộng thông qua các biện pháp tối ưu hóa và kiểm soát rủi ro hợp lý.
/*backtest
start: 2024-07-01 00:00:00
end: 2025-01-01 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
// 本 Pine Script™ 代码遵循 Mozilla Public License 2.0 条款 https://mozilla.org/MPL/2.0/
// © pyoungil0842
//@version=6
strategy("EMA黄金/死亡交叉带优化持仓切换", overlay=true, calc_on_every_tick=true)
// EMA设置
ema12 = ta.ema(close, 12)
ema25 = ta.ema(close, 25)
// 黄金交叉和死亡交叉条件
goldenCross = ta.crossover(ema12, ema25) // 当EMA12向上穿过EMA25时
deathCross = ta.crossunder(ema12, ema25) // 当EMA12向下穿过EMA25时
// 检查当前持仓状态
isLong = strategy.position_size > 0 // 是否持有多头仓位
isShort = strategy.position_size < 0 // 是否持有空头仓位
// 黄金交叉发生时的处理
if (goldenCross)
if (isShort) // 如果持有空头仓位,则平空并开多
strategy.close("Short") // 平掉空头仓位
strategy.entry("Long", strategy.long) // 进入多头仓位
else if (not isLong) // 如果没有多头仓位,则开新多头
strategy.entry("Long", strategy.long)
// 死亡交叉发生时的处理
if (deathCross)
if (isLong) // 如果持有多头仓位,则平多并开空
strategy.close("Long") // 平掉多头仓位
strategy.entry("Short", strategy.short) // 进入空头仓位
else if (not isShort) // 如果没有空头仓位,则开新空头
strategy.entry("Short", strategy.short)
// 在图表上显示EMA线
plot(ema12, title="EMA 12", color=color.blue)
plot(ema25, title="EMA 25", color=color.orange)
// 在图表上显示信号
plotshape(series=goldenCross, title="黄金交叉", location=location.belowbar, color=color.green, style=shape.labelup, text="买入")
plotshape(series=deathCross, title="死亡交叉", location=location.abovebar, color=color.red, style=shape.labeldown, text="卖出")