Strategi ini menggunakan persilangan MA 5 hari dan 78 hari untuk menjana isyarat mengejar momentum, bertujuan untuk menangkap pecah harga jangka pendek.
Mengira purata bergerak bertingkat 3 hari, 78 hari dan 195 hari.
3 hari crossover di atas 195 hari pemicu membeli isyarat.
Apabila 3 hari duduk di atas 78 hari, dan 78 hari di atas 195 hari, pertimbangkan saluran uptrend terbentuk, juga mencetuskan beli.
Tetapkan garis pengambilan keuntungan dinamik 6ATR, jual apabila harga jatuh di bawah garis.
Jual isyarat apabila 3 hari melintasi bawah 195 hari.
Pelbagai MA cross menyaring breakout palsu dengan berkesan.
Mengambil keuntungan dinamik mengelakkan whipsaws.
Backtest menunjukkan purata 2 jam memegang masa setiap perdagangan, sesuai dengan jangka pendek momentum perdagangan.
Pengeluaran maksimum terkawal sekitar 20%.
Parameter MA tetap gagal menyesuaikan diri dengan pasaran yang berubah.
Tempoh sampel 1 tahun terhad, memerlukan data yang lebih besar untuk mengesahkan strategi.
Parameter mengambil keuntungan dan menghentikan kerugian perlu dioptimumkan untuk kawalan risiko.
Tidak dapat menyesuaikan diri dengan jurang harga.
Kos transaksi yang tinggi mungkin.
Uji kombinasi MA yang berbeza untuk pengoptimuman.
Mengoptimumkan keuntungan mengambil dan menghentikan kerugian untuk keseimbangan risiko-mengembalikan.
Tetapkan penapis masuk untuk mengurangkan kemungkinan terperangkap.
Optimumkan saiz kedudukan, piramid pada kekuatan.
Uji di pelbagai produk dan jangka masa yang lebih lama.
Simulasi Monte Carlo untuk menilai pengeluaran maksimum.
Strategi ini mengenal pasti trend menaik dengan persimpangan MA dan menetapkan peraturan berhenti keuntungan dinamik dengan hasil backtest yang baik. Tetapi tempoh sampel yang terhad, kestabilan param tetap disahkan dan gagal pada jurang. Menghendaki pengujian kembali lebih lanjut ke atas set data yang lebih besar, lebih banyak penapis untuk mengurangkan isyarat palsu, parameter berhenti keuntungan yang dioptimumkan, penilaian pada kos transaksi. Jika lulus ujian pengoptimuman dan pengesahan yang komprehensif, boleh menjadi sistem mengejar momentum jangka pendek yang mantap.
/*backtest start: 2022-09-14 00:00:00 end: 2023-09-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // © FinTasticTrading 2021/2/14 // This is a 5 day moving average crossing long strategy, used in short term momentum trading strategy. // Momentum trading Strategy: When S&P 500 index is at up trend (or above 60 sma), buy 10+ stocks in top 20% stock RS ranking at equal weight using this MA5X_L strategy. Change stocks when any stock exited by algorithm. // Back test start since 2020/7/1, each long entry for condition 1 is $30000, condition 2 is $20000, with max of 2 long positions. // Setup: 10 minutes chart // Buy condition 1) 3 wma cross up 180 wma (5day) 2) 3wma > 60wma > 180wma UP Trend Arrangement (UTA) // Exit condition 1) 3 wma cross under 180 wma 2) position profit > 20% and 3 wma cross under 6 ATRs line (green) //@version=4 strategy("MA5X_L", overlay=true, pyramiding=2,default_qty_type=strategy.cash, default_qty_value=100000) s_len = input( 3 ) m_len = input( 78 ) // 2 day moving average l_len = input( 195) // equal to 5 Day moving average xl_len = input(390) // 10 day moving average //Draw WMAs s_ma = wma(close,s_len) m_ma = wma(close,m_len) l_ma = wma(close,l_len) xl_ma = sma(close,xl_len) plot(s_ma, color=color.yellow, linewidth=2) plot(m_ma, color=color.fuchsia, linewidth=2) plot(l_ma, color=color.blue, linewidth=2) plot(xl_ma, color = color.gray, linewidth=2) //ATR Stop Profit , length = 40 or 1 day Periods = input(title="ATR Period", type=input.integer, defval=40) Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=6.0) sl=hl2-(Multiplier*atr(Periods)) sl1 = nz(sl[1], sl) sl := s_ma[1] > sl1 ? max(sl, sl1) : sl plot(strategy.position_size > 0 ? sl:na, title="Stop Loss", style=plot.style_linebr, linewidth=2, color=color.green) //Backtest since condition100 = time>=timestamp(2020, 07, 01, 00, 00) //Long Entry Condition 1 : s_ma Cross UP l_ma if crossover(s_ma, l_ma) and condition100 strategy.entry("X Up", strategy.long, qty = 30000/close, comment="X Up") //Long Entry Condition 2 : s_ma > m_ma > l_ma condition31 = s_ma>m_ma and m_ma>l_ma condition32 = condition31[1]==false and condition31 == true and condition100 strategy.entry("UTA", strategy.long, qty = 20000/close, when = condition32, comment="UTA") //Long Exit Condition 1 : 3 wma cross under 180 wma condition50 = crossunder(s_ma, l_ma) strategy.close_all(when = condition50, comment="X Dn") //Long Exit Condition 2 : position profit > 20% and 3 wma cross under 6 ATRs line (green) strategy.close_all(when = crossunder(close,sl) and strategy.openprofit>30000*0.2, comment="Stop")