Strategi ini menghasilkan sinyal perdagangan berdasarkan tiga garis rata-rata bergerak eksponensial (EMA) dengan periode yang berbeda: EMA jangka pendek dengan periode 5 hari, EMA jangka menengah dengan periode 8 hari dan EMA jangka panjang dengan periode 13 hari.
Strategi ini menilai tren pasar dengan menghitung EMA dari periode yang berbeda. EMA jangka pendek mencerminkan harga rata-rata beberapa hari terakhir sementara EMA jangka menengah dan panjang mencerminkan harga rata-rata dalam jangka waktu yang lebih lama. Perpindahan EMA jangka pendek dari EMA jangka menengah dan panjang menandakan harga akan naik, sehingga posisi panjang diambil. Sebaliknya, ketika EMA jangka pendek melintasi di bawah dua lainnya, itu menandakan harga akan turun sehingga posisi pendek diambil.
Secara khusus, strategi ini secara bersamaan menghitung EMA 5 hari, 8 hari dan 13 hari. Ini menghasilkan sinyal panjang ketika EMA 5 hari melintasi EMA 8 hari dan 13 hari; ini menghasilkan sinyal pendek ketika EMA 5 hari melintasi di bawah dua lainnya. Setelah pergi panjang, posisi ditutup setelah EMA 5 hari melintasi kembali di bawah EMA 13 hari. Begitu juga untuk posisi pendek.
Ide perbaikan:
Ini adalah sistem breakout khas yang menilai pembalikan tren dengan membandingkan crossover antara EMA jangka pendek, menengah dan panjang. Kesederhanaan sinyalnya memfasilitasi kemudahan perdagangan, tetapi juga menderita keterlambatan inheren EMA dan ketidakmampuan untuk menyaring tren nyata dari koreksi sementara. Peningkatan di masa depan dapat mengintegrasikan indikator teknis lain atau penyesuaian parameter adaptif untuk mengoptimalkannya.
/*backtest start: 2023-11-16 00:00:00 end: 2023-11-23 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © gregoirejohnb // @It is modified by ttsaadet. // Moving average crossover systems measure drift in the market. They are great strategies for time-limited people. // So, why don't more people use them? // // strategy(title="EMA Crossover Strategy", shorttitle="EMA-5-8-13 COS by TTS", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, currency=currency.TRY,commission_type=strategy.commission.percent,commission_value=0.04, process_orders_on_close = true, initial_capital = 100000) // === GENERAL INPUTS === //strategy start date start_year = input(defval=2020, title="Backtest Start Year") // === LOGIC === short_period = input(type=input.integer,defval=5,minval=1,title="Length") mid_period = input(type=input.integer,defval=8,minval=1,title="Length") long_period = input(type=input.integer,defval=13,minval=1,title="Length") longOnly = input(type=input.bool,defval=false,title="Long Only") shortEma = ema(hl2,short_period) midEma = ema(hl2,mid_period) longEma = ema(hl2,long_period) plot(shortEma,linewidth=2,color=color.red,title="Fast") plot(midEma,linewidth=2,color=color.orange,title="Fast") plot(longEma,linewidth=2,color=color.blue,title="Slow") longEntry = ((shortEma > midEma) and crossover(shortEma,longEma)) or ((shortEma > longEma) and crossover(shortEma,midEma)) shortEntry =((shortEma < midEma) and crossunder(shortEma,longEma)) or ((shortEma < longEma) and crossunder(shortEma,midEma)) plotshape(longEntry ? close : na,style=shape.triangleup,color=color.green,location=location.belowbar,size=size.small,title="Long Triangle") plotshape(shortEntry and not longOnly ? close : na,style=shape.triangledown,color=color.red,location=location.abovebar,size=size.small,title="Short Triangle") plotshape(shortEntry and longOnly ? close : na,style=shape.xcross,color=color.black,location=location.abovebar,size=size.small,title="Exit Sign") // === STRATEGY - LONG POSITION EXECUTION === enterLong() => longEntry exitLong() => crossunder(shortEma,longEma) strategy.entry(id="Long", long=strategy.long, when=enterLong()) strategy.close(id="Long", when=exitLong()) // === STRATEGY - SHORT POSITION EXECUTION === enterShort() => not longOnly and shortEntry exitShort() => crossover(shortEma,longEma) strategy.entry(id="Short", long=strategy.short, when=enterShort()) strategy.close(id="Short", when=exitShort())