Strategi ini adalah sistem trend berikut dinamis berdasarkan sinyal crossover EMA ganda, yang mengidentifikasi perubahan tren pasar melalui crossover jangka pendek 20-hari Eksponensial Moving Average (EMA) dan jangka panjang 50-hari EMA, mengeksekusi pembelian dan penjualan operasi secara otomatis. Strategi ini menggunakan metode analisis teknis matang, menggabungkan tren berikut dengan manajemen posisi dinamis, cocok untuk pasar dengan volatilitas yang signifikan.
Logika inti dari strategi ini didasarkan pada elemen kunci berikut:
Strategi ini adalah implementasi modern dari sistem trend berikut klasik, menyistematisasi dan menstandarisasi strategi crossover EMA ganda tradisional melalui perdagangan programatik. Sementara risiko yang melekat ada, strategi ini memiliki prospek aplikasi yang baik melalui optimasi dan perbaikan terus-menerus.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-04 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover Buy/Sell Signals", overlay=true) // Input parameters for EMAs emaShortLength = input.int(20, title="Short EMA Length") emaLongLength = input.int(50, title="Long EMA Length") // Calculating EMAs emaShort = ta.ema(close, emaShortLength) emaLong = ta.ema(close, emaLongLength) // Plotting EMA crossover lines plot(emaShort, color=color.green, title="20 EMA") plot(emaLong, color=color.red, title="50 EMA") // Buy and Sell signal logic longCondition = ta.crossover(emaShort, emaLong) exitLongCondition = ta.crossunder(emaShort, emaLong) shortCondition = ta.crossunder(emaShort, emaLong) exitShortCondition = ta.crossover(emaShort, emaLong) // Plot buy and sell signals on the chart plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal") plotshape(series=exitLongCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Exit") plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal") plotshape(series=exitShortCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Exit") // Backtesting strategy logic var float entryPrice = na var int position = 0 // 1 for long, -1 for short, 0 for no position if (longCondition and position == 0) entryPrice := close position := 1 if (shortCondition and position == 0) entryPrice := close position := -1 if (exitLongCondition and position == 1) strategy.exit("Exit Long", from_entry="Long", limit=close) position := 0 if (exitShortCondition and position == -1) strategy.exit("Exit Short", from_entry="Short", limit=close) position := 0 if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short)