Strategi EMA golden cross breakthrough yang cepat dan perlahan adalah strategi yang mudah dan berkesan untuk mengesan trend pasaran. Ia menggunakan persilangan EMA dari kitaran yang berbeza untuk menjana isyarat beli dan jual. Idea asasnya adalah: apabila EMA kitaran pendek melintasi di atas EMA kitaran yang lebih lama, isyarat beli dihasilkan; apabila EMA kitaran pendek melintasi di bawah EMA kitaran yang lebih lama, isyarat jual dihasilkan.
Strategi ini terutamanya bergantung pada perbandingan EMA 5-siklus, 8-siklus dan 13-siklus untuk menjana isyarat perdagangan.
Ini merealisasikan kesan mengesan trend jangka sederhana dan jangka panjang. Apabila purata bergerak kitaran pendek melintasi di atas purata bergerak kitaran panjang, ini bermakna bahawa trend jangka pendek telah menjadi bullish dan boleh dibeli; apabila purata bergerak kitaran pendek melintasi di bawah purata bergerak kitaran panjang, ini bermakna bahawa trend jangka pendek telah menjadi bearish dan harus dijual.
Kelebihan utama strategi ini ialah:
Terdapat juga beberapa risiko dalam strategi ini:
Strategi ini boleh dioptimumkan dalam aspek berikut:
Ringkasnya, operasi strategi EMA golden cross yang cepat dan perlahan adalah lancar, isyarat lebih boleh dipercayai, penarikan tidak tinggi, dan sesuai untuk mengesan trend jangka menengah dan panjang.
/*backtest start: 2023-11-23 00:00:00 end: 2023-11-30 00:00:00 period: 2h 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 by TTS", 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") rsi_period = input(type=input.integer,defval=14,minval=1,title="Length") longOnly = input(type=input.bool,defval=false,title="Long Only") shortEma = ema(close,short_period) midEma = ema(close,mid_period) longEma = ema(close,long_period) rsi = rsi(close, rsi_period) [diplus, diminus, adx] = dmi(short_period, short_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 = crossover(shortEma,midEma) and crossover(shortEma,longEma) //or ((shortEma > longEma) and crossover(shortEma,midEma)))and (adx > 25) 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 and time > timestamp(start_year, 1, 1, 01, 01) exitLong() => crossunder(shortEma,longEma) or crossunder(close, 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 and time > timestamp(start_year, 1, 1, 01, 01) exitShort() => crossover(shortEma,longEma) strategy.entry(id="Short", long=strategy.short, when=enterShort()) strategy.close(id="Short", when=exitShort())