
この戦略は,複数の指数移動平均 ((EMA) の交差信号に基づくトレンド追跡システムである. 20,50,150周期のEMAを組み合わせることで,トレンド認識と取引実行の完全な枠組みを構築する. 戦略は,異なる周期のEMA間の交差関係を利用して,市場のトレンドの変化と特定の取引のタイミングを決定する.
戦略は,3つの異なる周期の指数移動平均を使用します:EMA20は短期トレンド,EMA50は中期トレンド,EMA150は長期トレンドに使用されます.EMA50の上部でEMA150を突破すると金十字が形成され,長期上向きトレンドが形成され,EMA50の下部でEMA150を突破すると死十字が形成され,長期下向きトレンドが形成されます.特定の取引シグナルはEMA20とEMA50の交差によって生成されます.EMA20の上部でEMA50を突破すると買取シグナルが生み出され,EMA20の下部でEMA50を突破すると売り出シグナルが生み出されます.
この戦略は,複数の指数移動平均の配合使用によって,完全なトレンド追跡取引システムを構築している.戦略の論理は明確で,実装は簡単で,優れた拡張性がある.提案された最適化方向によって,戦略の安定性と適応性をさらに向上させることができる.戦略は中長期のトレンドを追跡するのに適しているが,使用する際は,市場環境の選択とリスクの管理に注意する必要がある.
/*backtest
start: 2024-02-20 00:00:00
end: 2025-01-20 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("EMA2050150 Crossover Strategy#ganges", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_value=0.1, slippage=3)
// EMAs
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
ema150 = ta.ema(close, 150)
// Cross conditions
longCondition = ta.crossover(ema20, ema50)
flatCondition = ta.crossunder(ema20, ema50)
deathCross = ta.crossunder(ema50, ema150)
goldenCross = ta.crossover(ema50, ema150)
// // Trade execution
// if longCondition and time >= startDate and time <= endDate and strategy.position_size == 0
// strategy.entry("Long", strategy.long)
// if flatCondition and time >= startDate and time <= endDate and strategy.position_size > 0
// strategy.close("Long")
// Plot EMAs
plot(ema20, title="EMA 20", color=color.blue)
plot(ema50, title="EMA 50", color=color.orange)
plot(ema150, title="EMA 150", color=color.red)
// Plot cross signals
plotshape(series=goldenCross, location=location.belowbar, color=color.green, style=shape.labelup, title="Golden Cross", size=size.small, text="Golden Cross")
plotshape(series=deathCross, location=location.abovebar, color=color.red, style=shape.labeldown, title="Death Cross", size=size.small, text="Death Cross")
// Plot buy and sell signals
plotshape(series=longCondition, location=location.belowbar, color=color.blue, style=shape.triangleup, title="Buy Signal", size=size.small, text="Buy")
plotshape(series=flatCondition, location=location.abovebar, color=color.orange, style=shape.triangledown, title="Sell Signal", size=size.small, text="Sell")
// Trade execution
if longCondition and strategy.position_size == 0
strategy.entry("Long", strategy.long)
if flatCondition and strategy.position_size > 0
strategy.close("Long")