Strategi ini terutama didasarkan pada rata-rata bergerak dari garis bulanan dan kuartal untuk operasi. Secara khusus, garis 20 hari digunakan sebagai garis bulanan dan garis 60 hari sebagai garis kuartal. Sinyal strategi berasal dari salib emas dan salib kematian dari dua rata-rata bergerak. Ketika garis bulanan melintasi di atas garis kuartal, pergi panjang; ketika garis bulanan jatuh di bawah garis kuartal, tutup posisi. Strategi ini cocok untuk operasi jangka menengah dan panjang untuk menangkap peluang konsolidasi dan divergensi.
Strategi ini menggunakan rata-rata bergerak sederhana 20 hari sebagai indikator garis bulanan dan rata-rata bergerak sederhana 60 hari sebagai indikator garis triwulanan.
Menggunakan crossover rata-rata bergerak dari garis bulanan dan triwulanan untuk menentukan tren jangka menengah dan panjang. Salib emas untuk pergi panjang menunjukkan awal pasar banteng jangka menengah dan panjang, sementara salib kematian untuk pergi pendek menunjukkan awal pasar beruang jangka menengah dan panjang. Pada saat yang sama, gunakan strategi stop profit dan stop loss untuk mengendalikan risiko.
Solusi:
Strategi ini secara sistematis memanfaatkan keunggulan rata-rata bergerak bulanan dan triwulanan dengan menilai arah tren jangka menengah dan panjang melalui salib emas dan salib kematian rata-rata bergerak. Pada saat yang sama, mekanisme stop loss dan take profit yang wajar dikonfigurasi untuk mengendalikan risiko. Masih ada banyak ruang untuk mengoptimalkan strategi ini, layak untuk pengujian dan pengoptimalan lebih lanjut.
/*backtest start: 2022-12-08 00:00:00 end: 2023-12-14 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("均線操作-月季", overlay=true, initial_capital = 100000, default_qty_type = strategy.percent_of_equity, default_qty_value = 30) sma20 = sma(close, 20) sma60 = sma(close, 60) plot(sma20, title="月線", color=color.purple,linewidth=2) plot(sma60, title="季線", color=color.yellow,linewidth=2) backtest_year = input(title="backtest_year",type=input.integer,defval=2020) backtest_month = input(title="backtest_month",type=input.integer,defval=10) backtest_date = input(title="backtest_date",type=input.integer,defval=1) backtest_start_time = timestamp(backtest_year,backtest_month,backtest_date,0,0,0) to_long = sma20 > sma60 and close > highest(10)*0.9 // 黃金交叉 to_close = sma20 < sma60 // 死亡交叉 to_exit = close < highest(10)*0.9 //股價嚴重回檔 to_stop = close < 0.9*strategy.position_avg_price // to_long = crossover(sma20, sma60) // 黃金交叉 // to_close = crossunder(sma20, sma60) // 死亡交叉 //plotchar(to_long, char="B", text="買", color=color.red, location=location.belowbar) //plotchar(to_close, char="S", text="賣", color=color.green, location=location.abovebar) //strategy.close("open long",when = tslide, comment="多單滑價7%出場") if true strategy.entry("golden", strategy.long, when=to_long,comment="多單入場") strategy.close("golden", when=to_exit,comment="多單滑價7%出場") strategy.close("golden", when=to_close,comment="月線季線死亡交叉") strategy.close("golden", when=to_stop,comment="虧損10%強迫停損")