
Sistem strategi kuantitatif bersalin bersalin adalah strategi perdagangan berasaskan analisis teknikal, idea utamanya adalah untuk mengenal pasti perubahan trend pasaran dengan memantau hubungan silang antara purata bergerak berkala yang berbeza, dan dengan itu menghasilkan isyarat beli dan jual. Strategi ini menghasilkan isyarat beli ketika melintasi garis perlahan di atas garis cepat, dan isyarat jual ketika melintasi garis perlahan di bawah garis cepat, dengan membandingkan kedudukan relatif purata bergerak cepat (default 9 kitaran) dan rata-rata bergerak perlahan (default 21 kitaran).
Prinsip-prinsip utama strategi ini adalah berdasarkan pada fungsi penunjuk trend purata bergerak. Purata bergerak dapat melonggarkan data harga, menyaring kebisingan dari turun naik harga jangka pendek, dan mencerminkan arah trend keseluruhan pasaran.
Pengiraan rata-rata: strategi melalui fungsi tersuaif_maMenghitung pelbagai jenis purata bergerak, menyokong empat jenis SMA, EMA, WMA dan VWMA, pengguna boleh memilih jenis rata-rata yang paling sesuai dengan keadaan pasaran semasa.
Sinyal dagangan dihasilkan:
ta.crossoverPemeriksaan fungsi menunjukkan bahawa pergerakan harga jangka pendek melebihi trend jangka panjang, dan pasaran mungkin memasuki trend menaik.ta.crossunderPemeriksaan fungsi menunjukkan bahawa pergerakan harga jangka pendek lebih rendah daripada trend jangka panjang, dan pasaran mungkin memasuki trend menurun.Pelaksanaan urus niaga: penggunaan strategistrategy.entrydanstrategy.closeFungsi untuk melakukan pembelian dan penjualan, mewujudkan perdagangan automatik sepenuhnya.
Visual: Strategi telah diluluskanplotFungsi untuk memetakan purata bergerak dan menggunakanlabel.newTanda-tanda tanda beli dan jual di carta membolehkan peniaga memahami logik strategi dan masa perdagangan secara intuitif.
Keupayaan untuk mengesan trend: Strategi ini berdasarkan pada pergerakan rata-rata crossover, mampu menangkap perubahan trend pasaran dengan berkesan, sesuai untuk perdagangan trend jangka menengah dan panjang. Isyarat crossover rata-rata biasanya tertinggal pada titik perubahan harga, tetapi dapat menyaring banyak perdagangan bising, meningkatkan kualiti perdagangan.
Penyesuaian parameter yang fleksibel: Strategi ini membolehkan pengguna menyesuaikan panjang kitaran purata bergerak cepat dan perlahan, serta memilih pelbagai jenis kaedah pengiraan rata-rata, yang dapat dioptimumkan mengikut kitaran pasaran dan ciri-ciri turun naik yang berbeza.
Sokongan pelbagai jenis purata bergerak: Strategi menyokong empat jenis purata bergerak yang berbeza, masing-masing mempunyai ciri-ciri yang berbeza:
Maklum balas visual yang jelas: Strategi menandai isyarat jual beli secara intuitif pada carta, membantu peniaga memahami dan mengesahkan keputusan perdagangan dengan cepat.
Kode ringkas dan cekap: Pengekodan strategi ringkas dan jelas, menggunakan pemikiran pengaturcaraan fungsi, dan beralih fleksibel untuk pengiraan linear melalui fungsi tersuai, meningkatkan kemampuan pemeliharaan dan keluasan kod.
Sinyal palsu di pasaran goyah: Dalam pasaran goyah, purata bergerak mungkin sering berselisih, menghasilkan banyak isyarat palsu, yang menyebabkan terlalu banyak perdagangan dan perbelanjaan bayaran yang tidak perlu. Penyelesaian boleh mempertimbangkan untuk menambah syarat penapis tambahan, seperti indikator kekuatan trend atau menetapkan ambang batas minimum.
Masalah keterbelakangan: Rata-rata bergerak pada dasarnya adalah penunjuk keterbelakangan, yang mungkin tidak dapat menangkap titik-titik perubahan dalam masa yang tepat dalam pasaran yang berubah-ubah, menyebabkan kelewatan masa masuk atau keluar. Penyelesaian boleh dipertimbangkan dengan menggabungkan penunjuk teknikal yang lebih sensitif, seperti RSI atau MACD, atau mengoptimumkan parameter garis rata untuk mengurangkan keterbelakangan.
Kepercayaan satu indikator: Strategi ini hanya bergantung pada penyambungan purata bergerak untuk membuat keputusan, kurang analisis pelbagai dimensi, mudah dipengaruhi oleh bunyi pasaran. Penyelesaian boleh mempertimbangkan untuk mengintegrasikan petunjuk teknikal lain, seperti jumlah transaksi, indikator kadar turun naik atau sokongan rintangan, dan sebagainya, untuk membina sistem perdagangan yang lebih komprehensif.
Kurangnya mekanisme pengurusan risiko: Strategi semasa tidak mempunyai mekanisme berhenti dan berhenti yang terbina dalam, yang boleh menyebabkan penarikan balik yang lebih besar jika trend berbalik tetapi belum mencetuskan isyarat persilangan. Penyelesaian boleh mempertimbangkan untuk memasukkan berhenti dinamik, seperti berhenti yang dijejaki atau tetapan berhenti berdasarkan ATR.
Sensitiviti parameter: Prestasi strategi lebih sensitif terhadap pilihan parameter rata-rata, dan kombinasi parameter yang berbeza mungkin diperlukan dalam keadaan pasaran yang berbeza. Penyelesaian boleh mempertimbangkan untuk melakukan ujian pengoptimuman parameter, atau melaksanakan mekanisme penyesuaian parameter yang sesuai.
Gabungan pelbagai petunjuk: Gabungan petunjuk teknikal lain untuk mengesahkan isyarat perdagangan, seperti:
Meningkatkan pengurusan risiko:
Penapis isyarat:
Parameter menyesuaikan diri:
Logik transaksi diperluaskan:
Sistem strategi kuantitatif persilangan garis rata-rata membina sistem perdagangan yang ringkas dan berkesan untuk mengesan trend dengan memantau hubungan silang antara purata bergerak berkala yang berbeza. Kelebihan utama strategi ini adalah logiknya yang mudah difahami, kemampuan menyesuaikan parameter yang fleksibel, dan kesesuaian dengan keadaan pasaran yang berbeza. Walau bagaimanapun, sebagai strategi yang berdasarkan indikator ketinggalan, ia juga menghadapi risiko pasaran goyang, banyak isyarat palsu, ketinggalan isyarat, dan ketergantungan pada satu indikator.
Untuk meningkatkan kestabilan dan keuntungan strategi, ia boleh dioptimumkan dari arah penggabungan pelbagai petunjuk, meningkatkan pengurusan risiko, mengoptimumkan mekanisme penapisan isyarat, mewujudkan parameter penyesuaian diri dan mengembangkan logik perdagangan. Khususnya, menggabungkan petunjuk teknikal dengan jumlah transaksi, struktur pasaran dan prinsip pengurusan risiko, dapat membina sistem perdagangan yang lebih komprehensif dan mantap.
Secara keseluruhannya, strategi yang berasaskan persilangan garis rata ini memberikan permulaan yang baik untuk perdagangan kuantitatif, sesuai untuk pemula untuk memahami dan mengamalkan prinsip-prinsip asas perdagangan kuantitatif. Dengan pengoptimuman dan penyempurnaan yang berterusan, ia boleh berkembang menjadi satu set sistem perdagangan yang lebih matang dan boleh dipercayai, menyediakan sinyal perdagangan yang stabil dan mekanisme kawalan risiko untuk pelabur.
/*backtest
start: 2024-03-26 00:00:00
end: 2024-12-12 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
// @version=5
strategy("Moving Average Crossover Strategy", shorttitle="MA Crossover", overlay=true)
// ——— INPUTS ———
fastLength = input.int(9, title="Fast MA Length", minval=1)
slowLength = input.int(21, title="Slow MA Length", minval=1)
maType = input.string(title="MA Type", defval="SMA", options=["SMA", "EMA", "WMA", "VWMA"])
// ——— FUNCTION TO RETURN SELECTED MA ———
f_ma(_source, _length, _type) => switch _type
"SMA" => ta.sma(_source, _length)
"EMA" => ta.ema(_source, _length)
"WMA" => ta.wma(_source, _length)
"VWMA" => ta.vwma(_source, _length)
// ——— CALCULATE FAST AND SLOW MAs ———
fastMA = f_ma(close, fastLength, maType)
slowMA = f_ma(close, slowLength, maType)
// ——— PLOT THE MOVING AVERAGES ———
plot(fastMA, color=color.blue, linewidth=2, title="Fast MA")
plot(slowMA, color=color.red, linewidth=2, title="Slow MA")
// ——— TRADING CONDITIONS ———
longCondition = ta.crossover(fastMA, slowMA)
exitCondition = ta.crossunder(fastMA, slowMA)
// ——— EXECUTE TRADES ———
if longCondition
strategy.entry("Long Entry", strategy.long)
if exitCondition
strategy.close("Long Entry")
// ——— PLOT BUY/SELL LABELS ———
if longCondition
label.new(bar_index, low, style=label.style_label_up, color=color.new(color.green, 0), textcolor=color.white, text="Buy")
if exitCondition
label.new(bar_index, high, style=label.style_label_down, color=color.new(color.red, 0), textcolor=color.white, text="Sell")