Strategi ini menghasilkan isyarat perdagangan berdasarkan salib emas purata bergerak jangka pendek dan jangka panjang untuk menentukan titik masuk, dan menetapkan titik stop loss untuk kedudukan keluar.
Strategi ini terutamanya menggunakan persilangan purata bergerak jangka pendek dan jangka panjang untuk menentukan trend pasaran.
Mengira purata bergerak mudah 3 hari short_ma sebagai purata bergerak jangka pendek.
Mengira purata bergerak mudah 19 hari long_ma sebagai purata bergerak jangka panjang.
Apabila short_ma melintasi di atas long_ma, isyarat panjang dihasilkan.
Apabila harga meningkat di atas harga kemasukan * (1 + stop loss %), tutup semua kedudukan.
Apabila short_ma melintasi di bawah long_ma, isyarat pendek dihasilkan.
Ujian belakang dalam julat tarikh tertentu untuk mengehadkan tempoh operasi strategi.
Perdagangan hanya apabila trend_ma purata bergerak 100 hari menunjukkan trend menaik.
Strategi ini menggunakan salib emas purata bergerak. Semasa trend menaik yang berterusan, isyarat panjang yang dihasilkan apabila short_ma melintasi di atas long_ma membolehkan ia menangkap peluang. Isyarat pendek apabila short_ma melintasi di bawah long_ma membantu menguruskan risiko.
Kelebihan strategi ini:
Logik yang mudah dan mudah difahami berdasarkan persilangan purata bergerak.
Peraturan kemasukan dan keluar yang jelas yang mengikuti trend dan menguruskan risiko.
Hentikan kerugian untuk mengunci keuntungan apabila trend berbalik.
Hanya berdagang apabila trend keseluruhan naik untuk mengelakkan isyarat palsu.
Tempoh purata bergerak yang boleh disesuaikan dengan pasaran yang berbeza.
Ujian belakang dalam tempoh tertentu membolehkan pengesahan.
Risiko strategi ini:
Sensitif terhadap penyusunan parameter, tetapan yang berbeza mempengaruhi prestasi.
Kurva yang disesuaikan dengan data sejarah, tidak berkesan dalam anomali.
Tidak dapat mengendalikan jurang harga, risiko melebihi stop loss.
Rendah untuk dipukul di pasaran yang berbeza.
Hanya berfungsi dalam pasaran yang jelas, bukan untuk sisi.
Pilihan tempoh backtest mempengaruhi hasil.
Strategi ini boleh ditingkatkan dalam aspek berikut:
Uji set parameter yang berbeza untuk mencari nilai optimum.
Masukkan penunjuk lain seperti MACD, Bollinger Bands untuk meningkatkan keputusan.
Gunakan stop loss yang dinamik untuk mengawal risiko dengan lebih baik.
Optimumkan masuk, logik keluar, seperti masuk melarikan diri.
Uji ketahanan dalam keadaan pasaran yang berbeza.
Meneroka pembelajaran mesin untuk penyesuaian parameter dan penjanaan isyarat.
Tambah pengendalian jurang harga dan senario stop loss whipsaw.
Strategi yang mudah dan berkesan ini menangkap trend menaik menggunakan persilangan purata bergerak dan menguruskan risiko melalui stop loss. Ia berfungsi dengan baik di pasaran trend yang kuat tetapi mempunyai batasan. Pengoptimuman dan pengujian lanjut diperlukan untuk meningkatkan ketahanan. Secara keseluruhan ia mempunyai logika yang jelas, mudah difahami dan dilaksanakan, sesuai untuk pemula untuk belajar.
/*backtest start: 2023-10-01 00:00:00 end: 2023-10-31 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Ta3MooChi //@version=5 strategy("전략", overlay=true,process_orders_on_close = true, pyramiding = 100) short_ma = ta.sma(close,input.int(3, "단기 이평", minval = 1)) long_ma = ta.sma(close, input.int(19,"장기 이평", minval = 1)) trend_ma = ta.sma(close, input.int(100," 추세 이평", minval = 20, group = "추세 이평")) up_trend = (trend_ma > trend_ma[1]) use_trend_ma = input.bool(true, title = "추세용 이평 사용", group = "추세 이평" ) inTrendMa = not use_trend_ma or up_trend useDateFilter = input.bool(true, title = "특정 기간 백테스트", group = "기간 백테스트") backtestStartDate = input(timestamp("1 Jan 2021"), title = "시작날짜", group = "기간 백테스트") backtestEndDate = input(timestamp("1 Jan 2022"), title = "종료날짜", group = "기간 백테스트") inTradeWindow = true longStopPerc = 1 + input.float(3, "최소수익률%", minval = 1)*0.01 longcondition = ta.crossover(short_ma, long_ma) shortcondition = ta.crossunder(short_ma, long_ma) if (longcondition) and inTradeWindow and inTrendMa strategy.entry("long", strategy.long) if (shortcondition) and (close > strategy.position_avg_price*longStopPerc) and inTradeWindow strategy.close_all() if not inTradeWindow and inTradeWindow[1] strategy.cancel_all() strategy.close_all(comment = "매매 종료") plot(short_ma,color = color.yellow) plot(long_ma,color = color.blue) plot(trend_ma,color = color.gray)