Strategi ini dinamakan
Dalam strategi ini, kami mengira garis purata bergerak mudah (SMA) 50 tempoh dan 200 tempoh. Secara tradisinya, apabila SMA 50 hari melintasi di bawah SMA 200 hari, ia dipanggil
Logik dagangan adalah hanya untuk mengambil kedudukan berdasarkan isyarat ini - shorting pada death cross dan pergi panjang pada golden cross.
Di samping itu, strategi menyediakan julat tarikh yang boleh disesuaikan untuk backtest. jadi kita boleh memeriksa keberkesanan sebenar isyarat silang ini dalam tempoh yang berbeza.
Untuk menangani risiko, kita boleh mengoptimumkan parameter, menambah penapis, menguruskan risiko, perdagangan kertas strategi dan lain-lain untuk meminimumkan risiko.
Cara utama untuk mengoptimumkan strategi ini termasuk:
Dengan memeriksa kesan parameter, kita boleh menemui sistem silang purata bergerak yang lebih baik.
Strategi ini memanfaatkan penunjuk teknikal klasik silang purata bergerak untuk menangkap titik perubahan utama di pasaran. Dengan logik mudah dan ciri backtest yang mudah, ia dapat membantu dalam mengesan trend sebagai sebahagian daripada sistem yang lebih luas. Tetapi perdagangan dunia nyata masih memerlukan mempertimbangkan pelbagai faktor luaran, bukan hanya bergantung kepada isyarat secara buta.
/*backtest start: 2024-01-14 00:00:00 end: 2024-01-21 00:00:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("[S_R__9] - Death and Golden Cross", overlay=true) // Specific Time Date Range For Backtest startDate = input.int(title='Start Date', defval=1, minval=1, maxval=31, group='DATE CONFIG') startMonth = input.int(title='Start Month', defval=1, minval=1, maxval=12, group='DATE CONFIG') startYear = input.int(title='Start Year', defval=2023, minval=1800, maxval=2100, group='DATE CONFIG') endDate = input.int(title='End Date', defval=31, minval=1, maxval=31, group='DATE CONFIG') endMonth = input.int(title='End Month', defval=12, minval=1, maxval=12, group='DATE CONFIG') endYear = input.int(title='End Year', defval=2023, minval=1800, maxval=2100, group='DATE CONFIG') SPECIFIC_DATE = input.bool(title='USE SPECIFIC DATE ?', defval=false, group='DATE CONFIG') inDateRange = SPECIFIC_DATE ? time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0) and time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0) : true // Calculate 50 SMA and 200 SMA sma50 = ta.sma(close, 50) sma200 = ta.sma(close, 200) // Detect a Death Cross (50 SMA crossing below 200 SMA) deathCross = ta.crossunder(sma50, sma200) // Detect a Golden Cross (50 SMA crossing above 200 SMA) goldenCross = ta.crossover(sma50, sma200) // Strategy Execution if (inDateRange) if (deathCross) strategy.entry("Death Cross long", strategy.short) if (goldenCross) strategy.entry("Golden Cross short", strategy.long) // Plot SMAs plot(sma50, color=color.red, title="50 SMA") plot(sma200, color=color.blue, title="200 SMA") // Plotting Death Cross signal plotshape(series=deathCross and inDateRange, title="Death Cross Signal", location=location.belowbar, color=color.red, style=shape.labeldown, text="DEATH CROSS") // Plotting Golden Cross signal plotshape(series=goldenCross and inDateRange, title="Golden Cross Signal", location=location.abovebar, color=color.green, style=shape.labelup, text="GOLDEN CROSS")