Strategi ini menjana isyarat dagangan berdasarkan tiga garis purata bergerak eksponensial (EMA) dengan tempoh yang berbeza: EMA jangka pendek dengan tempoh 5 hari, EMA jangka sederhana dengan tempoh 8 hari dan EMA jangka panjang dengan tempoh 13 hari.
Strategi ini menilai trend pasaran dengan mengira EMA dari tempoh yang berbeza. EMA jangka pendek mencerminkan harga purata beberapa hari kebelakangan ini manakala EMA jangka sederhana dan jangka panjang mencerminkan harga purata dalam jangka masa yang lebih lama. Penyambungan EMA jangka pendek ke atas EMA jangka sederhana dan jangka panjang menandakan kenaikan harga, jadi kedudukan panjang diambil. Sebaliknya, apabila EMA jangka pendek melintasi di bawah dua yang lain, ia menandakan penurunan harga sehingga kedudukan pendek diambil.
Secara khusus, strategi ini secara serentak mengira EMA 5 hari, 8 hari dan 13 hari. Ia menjana isyarat panjang apabila EMA 5 hari melintasi di atas EMA 8 hari dan 13 hari; ia menjana isyarat pendek apabila EMA 5 hari melintasi di bawah dua yang lain. Selepas pergi lama, kedudukan ditutup sebaik sahaja EMA 5 hari melintasi kembali di bawah EMA 13 hari. Begitu juga untuk kedudukan pendek.
Idea peningkatan:
Ini adalah sistem penembusan biasa yang menilai pembalikan trend dengan membandingkan persilangan antara EMA jangka pendek, sederhana dan panjang. Kesederhanaan isyaratnya memudahkan perdagangan, tetapi juga menderita ketinggalan yang melekat pada EMA dan ketidakupayaan untuk menapis trend sebenar dari pembetulan sementara. Peningkatan masa depan mungkin mengintegrasikan penunjuk teknikal lain atau penyesuaian parameter adaptif untuk mengoptimumkannya.
/*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())