Strategi ini mengenal pasti arah trend pasaran melalui persilangan garis EMA yang cepat dan perlahan, dan berdagang mengikut trend. Ia pergi lama apabila EMA cepat melintasi di atas EMA perlahan, dan menutup kedudukan apabila harga melanggar di bawah EMA cepat.
Strategi ini mengira EMA cepat (i_shortTerm) dan EMA perlahan (i_longTerm) berdasarkan parameter input. Apabila EMA jangka pendek melintasi di atas EMA jangka panjang (goLongCondition1) dan harga di atas EMA jangka pendek (goLongCondition2), ia memasuki kedudukan panjang. Apabila harga memecahkan di bawah EMA jangka pendek (exitCondition2), ia menutup kedudukan.
Strategi ini adalah berdasarkan salib emas garis EMA untuk menentukan trend pasaran utama, dan perdagangan di sepanjang trend. Apabila EMA jangka pendek melintasi di atas EMA jangka panjang, ia menandakan trend menaik; apabila harga di atas EMA jangka pendek, ia menunjukkan trend menaik sedang berlangsung, jadi pergi panjang. Apabila harga turun di bawah EMA jangka pendek, ia menandakan pembalikan trend, jadi tutup kedudukan dengan segera.
Kelebihan utama strategi ini ialah:
Menggunakan silang EMA untuk mengenal pasti trend pasaran utama, mengelakkan turun naik jangka pendek.
Sensitiviti yang boleh diselaraskan dalam pengesanan trend melalui parameter EMA cepat dan perlahan.
Logik yang mudah dan jelas, mudah difahami dan dilaksanakan, sesuai untuk pemula perdagangan kuant.
Parameter tempoh EMA yang boleh disesuaikan untuk produk dan pasaran yang berbeza.
Kawalan risiko yang berkesan dengan menghentikan kerugian apabila harga melanggar garis EMA.
Terdapat juga beberapa risiko:
Isyarat silang EMA yang tertunda boleh menyebabkan kerugian semasa pembalikan trend.
Penembusan palsu di atas EMA jangka pendek boleh menyebabkan entri gagal.
Tetapan parameter paramedik yang tidak betul boleh menjejaskan prestasi strategi.
Prestasi sangat bergantung kepada keadaan pasaran, tidak sesuai untuk semua produk dan tempoh.
Pengukuran pengurusan risiko yang sepadan:
Mengoptimumkan parameter EMA untuk kepekaan yang lebih baik pada pembalikan.
Tambah penunjuk teknikal lain untuk menapis isyarat masuk.
Terus debug dan mengoptimumkan parameter untuk pasaran yang berbeza.
Memahami sepenuhnya keadaan pasaran yang berkenaan sebelum menggunakan strategi.
Strategi ini boleh dioptimumkan lagi dalam aspek berikut:
Tambah penunjuk lain seperti MACD dan KD untuk menapis isyarat kemasukan.
Melaksanakan stop loss untuk mengunci keuntungan dan kawalan risiko yang lebih baik.
Mengoptimumkan penempatan stop loss dengan penunjuk turun naik ATR.
Uji dan cari kaedah saintifik yang lebih baik untuk penyesuaian parameter EMA.
Memvalidasi isyarat pada pelbagai jangka masa untuk meningkatkan ketepatan.
Cuba perubahan BREAKOUT untuk menangkap pergerakan yang lebih besar semasa peringkat percepatan trend.
Strategi ini berkesan mengesan trend pasaran dengan berdagang pada isyarat silang EMA. Dengan logik yang jelas dan risiko yang boleh dikawal, ia sesuai untuk pemula perdagangan kuant untuk berlatih. Pengoptimuman lanjut pada penyesuaian parameter, penapisan kemasukan, penempatan stop loss dapat meningkatkan prestasi strategi. Tetapi semua strategi mempunyai batasan, pengguna harus menggunakan dengan berhati-hati berdasarkan keadaan pasaran semasa berdagang secara langsung.
/*backtest start: 2023-02-15 00:00:00 end: 2024-02-21 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © pradhan_abhishek //@version=5 strategy('EMA cross-over strategy by AP', overlay=true, shorttitle='EMACS-AP', initial_capital=100000, default_qty_value=100, default_qty_type=strategy.percent_of_equity, commission_value=0.025) // inputs i_shortTerm = input(title='Fast EMA', defval=21) i_longTerm = input(title='Slow EMA', defval=55) // select backtest range: if this is not given, then tradingview goes back since inception / whereever it finds data i_from = input(defval = timestamp("01 Jan 2023 00:00"), title = "From") i_to = input(defval = timestamp("31 Dec 2033 23:59"), title = "To") i_showBg = input(defval = true, title = "Show In-trade / Out-trade background") // create date function "within window of time" date() => true // exponential moving average (EMA) variables, derived from input parameters shortTermEMA = ta.ema(close, i_shortTerm) longTermEMA = ta.ema(close, i_longTerm) atr = ta.atr(14) // ### Trade strategy: begins ### inTrade = strategy.position_size > 0 notInTrade = strategy.position_size <= 0 goLongCondition1 = shortTermEMA > longTermEMA goLongCondition2 = close > shortTermEMA // exitCondition1 = shortTermEMA < midTermEMA exitCondition2 = close < shortTermEMA // enter if not in trade and long conditions are met if date() and goLongCondition1 and goLongCondition2 and notInTrade strategy.entry('long', strategy.long) // exit on stop-Loss hit stopLoss = close - atr * 3 strategy.exit('exit', 'long', stop=stopLoss) // exit if already in trade and take profit conditions are met if date() and exitCondition2 and inTrade strategy.close(id='long') // ###Trade strategy: ends ### // plot emas & background color for trade status plot(shortTermEMA, color=color.new(color.blue, 0)) plot(longTermEMA, color=color.new(color.green, 0)) trade_bgcolor = notInTrade ? color.new(color.red, 75) : color.new(color.green, 75) bgcolor(i_showBg ? trade_bgcolor : color.new(color.white, 75))