Strategi ini adalah sistem trend berikut dinamik berdasarkan isyarat silang EMA berganda, yang mengenal pasti perubahan trend pasaran melalui persilangan purata bergerak eksponen jangka pendek 20 hari (EMA) dan EMA jangka panjang 50 hari, melaksanakan operasi beli dan jual secara automatik. Strategi ini menggunakan kaedah analisis teknikal yang matang, menggabungkan trend berikut dengan pengurusan kedudukan dinamik, sesuai untuk pasaran dengan turun naik yang ketara.
Logik teras strategi ini adalah berdasarkan unsur-unsur utama berikut:
Strategi ini adalah pelaksanaan moden sistem trend berikut klasik, sistematis dan standardkan strategi silang EMA berganda tradisional melalui perdagangan programatik. Walaupun terdapat risiko yang melekat, strategi ini mempunyai prospek aplikasi yang baik melalui pengoptimuman dan penambahbaikan berterusan.
/*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)