
Strategi ini adalah sistem pengesanan trend berdasarkan dua persimpangan rata-rata, yang menggunakan persimpangan dua purata bergerak sederhana (SMA) dalam jangka pendek dan jangka panjang untuk menghasilkan isyarat perdagangan multi-posisi yang jelas. Strategi ini direka dengan ringkas, jelas, mudah difahami dan dilaksanakan, terutama sesuai untuk peniaga yang ingin menguasai asas-asas persimpangan rata-rata bergerak.
Strategi ini adalah berdasarkan kepada interaksi antara dua purata bergerak sederhana (SMA):
Logik penjanaan isyarat dagangan:
Proses pelaksanaan transaksi:
Strategi ini juga membolehkan pengguna untuk menyesuaikan sumber harga (harga bukaan lalai) dan panjang kitaran garis rata-rata untuk menyesuaikan diri dengan keadaan pasaran atau gaya perdagangan yang berbeza.
Dari analisis yang mendalam mengenai kod strategi, kami dapat menyimpulkan beberapa kelebihan yang jelas:
Walaupun strategi ini direka dengan ringkas dan berkesan, terdapat risiko yang berpotensi:
Perdagangan yang kerap dalam pasaran goyah: Dalam pasaran yang bergolak atau goyah, garis rata-rata jangka pendek dan jangka panjang mungkin sering bercampur, menyebabkan terlalu banyak isyarat perdagangan dan kos perdagangan yang tidak perlu
Masalah keterbelakangan: Rata-rata bergerak pada dasarnya adalah penunjuk keterbelakangan, dan isyarat mungkin hanya dihasilkan apabila trend telah berkembang atau hampir berakhir
Risiko penembusan palsu: harga mungkin akan kembali ke arah trend asal selepas melepasi garis purata untuk seketika, menyebabkan isyarat yang salah
Kekurangan mekanisme penangguhan kerugian: Strategi semasa tidak mempunyai tetapan penangguhan kerugian yang jelas, yang boleh menyebabkan kerugian yang lebih besar dalam keadaan berbalik kuat
Sensitiviti parameter: prestasi strategi lebih sensitif terhadap pilihan panjang kitaran garis rata-rata, parameter yang tidak betul boleh menyebabkan kesan strategi berubah secara besar-besaran
Berdasarkan analisis yang mendalam mengenai kod ini, saya mencadangkan beberapa arah pengoptimuman:
Tambah penapis trend: memperkenalkan ADX, penunjuk kekuatan trend atau penilaian kedudukan harga berbanding garis purata, menghasilkan isyarat hanya dalam persekitaran trend yang disahkan, mengelakkan perdagangan yang kerap di pasaran yang bergolak
Pemasangan mekanisme hentian dinamik: menetapkan tahap hentian dinamik berdasarkan ATR atau petunjuk turun naik lain, melindungi keuntungan dan mengehadkan risiko maksimum dalam satu perdagangan
Optimumkan masa masuk: pertimbangkan untuk menggunakan pengesahan kitaran kecil atau menunggu panggilan balik untuk masuk semula setelah isyarat dihasilkan untuk mendapatkan harga pelaksanaan yang lebih baik
Meningkatkan penapisan jumlah transaksi: Meningkatkan pengesahan jumlah transaksi berdasarkan isyarat silang, dan transaksi dijalankan hanya jika jumlah transaksi juga menyokong perubahan arah
Mempunyai kitaran garis rata yang menyesuaikan diri: menyesuaikan panjang kitaran garis rata secara automatik mengikut turun naik pasaran, menggunakan kitaran yang lebih lama dalam persekitaran yang bergelombang tinggi, menggunakan kitaran yang lebih pendek dalam persekitaran yang bergelombang rendah
Menambah mekanisme pembukaan dan simpanan simpanan secara berturut-turut: bukannya membina semua simpanan sekaligus, tetapi membangunkan simpanan dan simpanan secara beransur-ansur, untuk mengurangkan risiko pilihan masa
Strategi penjejaki trend silang dua garis adalah sistem perdagangan kuantitatif yang ringkas dan kuat yang menghasilkan isyarat perdagangan yang jelas melalui persilangan purata bergerak jangka pendek dan jangka panjang. Kelebihan utamanya adalah operasi yang mudah, intuisi visual dan mekanisme pembalikan automatik yang membolehkan pedagang mengikuti trend pasaran secara objektif. Walau bagaimanapun, strategi ini juga mempunyai risiko yang melekat seperti perdagangan yang kerap di pasaran goyah dan kelewatan isyarat.
Strategi asas ini dapat dipertingkatkan dengan cara menambah penapis trend, melaksanakan mekanisme berhenti kehilangan dinamik, mengoptimumkan masa masuk dan meningkatkan pengesahan jumlah perdagangan. Ia akan membantu meningkatkan prestasi strategi dalam pelbagai keadaan pasaran, terutamanya dengan menggabungkan indikator teknikal lain untuk menapis isyarat dan mengoptimumkan pengurusan risiko.
Ini adalah titik permulaan yang ideal untuk pemula yang ingin memulakan perdagangan kuantitatif; bagi peniaga yang berpengalaman, ia memberikan asas yang kukuh untuk penyesuaian dan pengoptimuman lebih lanjut. Yang penting, apa sahaja penambahbaikan yang digunakan harus dinilai melalui pengesanan dan pengesahan ke hadapan yang ketat untuk memastikan bahawa penambahbaikan strategi benar-benar menambah nilai jangka panjang.
/*backtest
start: 2025-01-01 00:00:00
end: 2025-03-24 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//@version=6
//
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// @author = Da_mENIZ
// © denis_zvegelj
// last change 20.Mar.2025
//
// Simple MA Crossover strategy that shows on the chart with Long/Short indicators. Feel free to use it to suit
// your needs
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
strategy("DZ Simple MA Crossover Strategy", shorttitle="DZ_MACross", overlay=true, calc_on_every_tick=true)
// Define the moving average lengths
i_src_price = input.source (open, "Price source", group="Main Settings")
i_shMA_len = input.int (9, "Short MA Length", minval=1, group="Main Settings")
i_loMA_len = input.int (21, "Long MA Length", minval=6, group="Main Settings")
// Calculate the moving averages
short_MA = ta.sma(i_src_price, i_shMA_len)
long_MA = ta.sma(i_src_price, i_loMA_len)
// Plot the moving averages on the chart
plot(short_MA, color=color.red, linewidth=2, title="Short MA")
plot(long_MA, color=color.blue, linewidth=2, title="Long MA")
// Generate the buy and sell signals
long_Cond = ta.crossover(short_MA, long_MA)
short_Cond = ta.crossunder(short_MA, long_MA)
// Place the orders based on conditions
if (long_Cond)
strategy.close("Short", immediately = true, comment = "Close")
strategy.entry("Long", strategy.long, comment = "Enter")
label.new(bar_index+1, open, "Long\n" + str.tostring(open), style=label.style_label_down, color=color.blue, textcolor=color.white, yloc=yloc.abovebar)
if (short_Cond)
strategy.close("Long", immediately = true, comment = "Close")
// strategy.entry("Short", strategy.short, comment = "Short\n" + str.tostring(open))
strategy.entry("Short", strategy.short, comment = "Enter")
label.new(bar_index+1, open, "Short\n" + str.tostring(open), style=label.style_label_up, color=color.red, textcolor=color.white, yloc=yloc.belowbar)