
Pengoptimum strategi silang purata bergerak dua indeks adalah strategi kuantitatif untuk berdagang berdasarkan dua isyarat silang purata bergerak dua indeks yang berbeza. Strategi ini menggunakan hubungan silang antara EMA cepat dan EMA perlahan untuk menentukan arah trend pasaran, dan melakukan perdagangan dua hala multi-saluran apabila syarat tertentu dipenuhi. Inti strategi ini adalah dengan pengaturan EMA berparameter, pengguna dapat menyesuaikan parameter strategi secara fleksibel mengikut keadaan pasaran yang berbeza, sambil memaksimumkan keuntungan dengan fungsi henti.
Prinsip-prinsip utama strategi ini adalah berdasarkan kepada teori persilangan linear klasik dalam analisis teknikal, dan terdiri daripada beberapa komponen utama:
Sinyal silang EMA ganda: strategi menggunakan dua purata bergerak indeks yang berbeza tempoh ((EMA), iaitu EMA pantas dengan parameter lalai 6 dan EMA perlahan dengan parameter lalai 16. Apabila EMA pantas melintasi EMA perlahan dari bawah, ia menghasilkan sinyal ganda; apabila EMA pantas melintasi EMA perlahan dari atas, ia menghasilkan sinyal kosong
Penapisan arah: Strategi membolehkan pengguna memilih arah perdagangan dengan memasukkan parameter ((multihead, kosong atau dua arah), meningkatkan fleksibiliti strategi.longOKdanshortOKPengendalian pembolehubah sama ada menjalankan urus niaga yang sesuai.
Pengesahan bentuk K-Line: Strategi ini memperkenalkan mekanisme pengesahan harga tambahan, yang memerlukan harga penutupan K-Line semasa lebih tinggi daripada harga pembukaan apabila terdapat banyak isyarat ((yang); apabila terdapat isyarat K-Line, harga penutupan K-Line semasa lebih rendah daripada harga pembukaan ((yang)). Reka bentuk ini berkesan menapis beberapa isyarat palsu.
Mekanisme hentian: Strategi ini menetapkan peratusan hentian untuk multihead dan hentian kosong (masing-masing 4% secara lalai) dan secara automatik melonggarkan kedudukan dan mengunci keuntungan apabila harga mencapai sasaran keuntungan yang telah ditetapkan.
Cross reverse close position: Apabila terdapat isyarat kosong apabila memegang kedudukan bermulut, atau apabila terdapat isyarat kosong apabila memegang kedudukan bermulut, strategi ini akan mencetuskan operasi close position, yang berkesan mengawal kerugian yang berkembang.
Dengan mengkaji kod strategi ini secara mendalam, beberapa kelebihan dapat diringkaskan:
Fleksibiliti parameter: Strategi membolehkan pengguna menyesuaikan kitaran EMA cepat dan lambat, arah perdagangan, dan peratusan hentian, membolehkan strategi menyesuaikan diri dengan keadaan pasaran yang berbeza dan pilihan risiko peribadi.
Mekanisme pengesahan ganda: Strategi ini bukan sahaja bergantung pada isyarat silang EMA, tetapi juga menggabungkan bentuk garis K ((sinar / negatif) sebagai pengesahan tambahan, meningkatkan kebolehpercayaan isyarat dan mengurangkan kerugian yang disebabkan oleh pelanggaran palsu.
Perdagangan Seluruh Arah: Mendukung perdagangan dua hala yang pelbagai, dapat menangkap peluang dalam pelbagai trend pasaran, tidak hanya terhad kepada keadaan pasaran di satu arah.
Pengoptimuman hentian: Dengan peratusan hentian yang ditetapkan, strategi dapat mengunci keuntungan secara automatik apabila harga mencapai sasaran yang diharapkan, dan mengelakkan pulangan keuntungan yang telah ada akibat dari perubahan pasaran.
Tanda-tanda penutupan yang berbalik: apabila trend pasaran mungkin berbalik ((terdapat tanda-tanda silang yang berbalik), strategi akan menetap tepat pada masanya untuk mengawal risiko secara berkesan.
Kecekapan pengiraan: menggunakan strategi terbina dalamta.ema、ta.crossoverdanta.crossunderFungsi pengiraan isyarat, pengiraan yang cekap, mudah untuk melaksanakan dalam masa nyata.
Sokongan visual: Strategi memetakan garis EMA cepat dan lambat, dan tahap hentian, di carta untuk memudahkan pengguna memahami pelaksanaan strategi secara intuitif.
Walaupun strategi ini direka dengan baik, terdapat beberapa risiko yang berpotensi:
Kelemahan garis purata: EMA pada dasarnya adalah penunjuk kelemahan, yang boleh menghasilkan isyarat kelewatan dalam pasaran yang berubah dengan cepat, yang menyebabkan waktu masuk dan keluar yang tidak baik.
Risiko pasaran goyah: Dalam keadaan goyah dalam tempoh, isyarat silang EMA sering berlaku tetapi tidak berkekalan, yang boleh menyebabkan perdagangan yang kerap dan kerugian berterusan.
Kurangnya mekanisme penangguhan kerugian: Strategi semasa hanya menetapkan penangguhan, tanpa mekanisme penangguhan kerugian yang jelas, dan mungkin menghadapi kerugian yang lebih besar dalam keadaan pasaran yang melampau.
K-line pengesahan had: Memerlukan pengesahan bentuk K-line mungkin menyebabkan beberapa isyarat yang sah terlepas, terutamanya apabila perubahan trend cepat.
Risiko nisbah penangguhan tetap: Nisbah penangguhan tetap yang ditetapkan mungkin tidak sesuai untuk semua keadaan pasaran, dan keuntungan yang terlalu awal mungkin berakhir di pasaran yang kuat, kehilangan keuntungan yang lebih besar.
Kekurangan mekanisme penyesuaian turun naik: Strategi tidak mempunyai fungsi untuk menyesuaikan parameter mengikut dinamik turun naik pasaran, dan mungkin tidak berfungsi dengan baik dalam persekitaran yang bergelombang tinggi atau rendah.
Strategi yang boleh dioptimumkan untuk menangani risiko-risiko di atas adalah seperti berikut:
Memperkenalkan parameter penyesuaian diri: parameter EMA boleh disesuaikan secara dinamik berdasarkan ATR (amplitud turun naik sebenar) atau kadar turun naik sejarah, supaya strategi dapat menyesuaikan diri dengan lebih baik dengan keadaan turun naik pasaran yang berbeza. Ini dilakukan kerana parameter tetap menunjukkan perbezaan yang besar dalam pasaran turun naik yang berbeza.
Peningkatan mekanisme hentian kerugian: Pendahuluan mekanisme hentian kerugian berdasarkan ATR atau peratusan tetap disyorkan, untuk menutup kedudukan secara automatik apabila harga sangat tidak menguntungkan, untuk mengawal kerugian perdagangan tunggal dengan berkesan.
Tambah penapis trend: Tambah indikator penghakiman trend untuk tempoh yang lebih lama (seperti EMA 50 hari), lakukan perdagangan hanya ke arah trend utama, dan elakkan perdagangan yang kerap dalam pasaran yang bergolak.
Optimumkan masa masuk: boleh digabungkan dengan RSI, MACD dan lain-lain petunjuk teknikal sebagai pengesahan tambahan, meningkatkan kualiti isyarat.
Hentian dinamik: Hentian dinamik boleh dilaksanakan berdasarkan turun naik pasaran, atau menggunakan mekanisme hentian bergerak (tracking stop loss) yang membolehkan pertumbuhan keuntungan sambil melindungi keuntungan.
Menambah penapis jumlah transaksi: Faktor jumlah transaksi dipertimbangkan semasa penjanaan isyarat, dan transaksi dijalankan hanya jika jumlah transaksi disokong, meningkatkan kebolehpercayaan isyarat.
Penapisan masa: Tambah tetapan tetingkap masa dagangan untuk mengelakkan dagangan pada masa pasaran yang kurang turun naik atau tidak teratur.
Pengurusan wang yang dioptimumkan: Memperkenalkan mekanisme pengurusan kedudukan dinamik, yang menyesuaikan peratusan wang untuk setiap perdagangan mengikut kekuatan isyarat, turun naik pasaran dan kadar kemenangan sejarah.
Pengoptimum strategi silang purata bergerak indeks dua kali adalah sistem perdagangan kuantitatif yang direka dengan munasabah yang mewujudkan fungsi perdagangan dua arah yang banyak ruang melalui hubungan silang EMA cepat dan lambat, digabungkan dengan mekanisme pengesahan dan penghentian bentuk K-line. Kelebihan strategi adalah fleksibiliti parameter, mekanisme pengesahan dua kali dan keupayaan perdagangan serba boleh, tetapi juga terdapat masalah seperti ketinggalan garis rata, risiko pasaran yang bergolak dan kekurangan mekanisme penghentian kerugian.
Dengan memperkenalkan parameter penyesuaian diri, meningkatkan mekanisme berhenti kerugian, menambah penapis trend dan mengoptimumkan pengurusan wang, dan lain-lain, anda dapat meningkatkan kestabilan dan kebolehan keuntungan strategi dengan ketara. Terutama, penyesuaian parameter dinamik yang digabungkan dengan mekanisme pengurusan risiko dapat membuat strategi tetap stabil dalam keadaan pasaran yang berbeza.
Bagi peniaga, apabila menggunakan strategi ini secara praktikal, disarankan untuk menggabungkan analisis makro pasaran, memilih keadaan pasaran yang jelas dengan trend, sambil melakukan pengesanan sejarah dan pengoptimuman parameter yang mencukupi untuk mencari kombinasi parameter terbaik yang sesuai dengan varieti perdagangan tertentu. Di samping itu, pemantauan berterusan terhadap prestasi strategi, menyesuaikan parameter tepat pada masanya mengikut perubahan pasaran, adalah kunci untuk mengekalkan keberkesanan strategi dalam jangka panjang.
/*backtest
start: 2025-01-01 00:00:00
end: 2025-03-31 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// This strategy has been created for illustration purposes only and should not be relied upon as a basis for buying, selling, or holding any asset or security.
// © kirilov
//@version=6
strategy(
"gosho bot Strategy",
overlay=true,
calc_on_every_tick=true,
currency=currency.USD
)
// INPUT:
// Options to enter fast and slow Exponential Moving Average (EMA) values
emaFast = input.int(title="Fast EMA", defval=6, minval=1, maxval=9999)
emaSlow = input.int(title="Slow EMA", defval=16, minval=1, maxval=9999)
// Option to select trade directions
tradeDirection = input.string(title="Trade Direction", defval="Both", options=["Long", "Short", "Both"])
// CALCULATIONS:
// Use the built-in function to calculate two EMA lines
fastEMA = ta.ema(close, emaFast)
slowEMA = ta.ema(close, emaSlow)
// PLOT:
// Draw the EMA lines on the chart
plot(series=fastEMA, color=color.orange, linewidth=2)
plot(series=slowEMA, color=color.blue, linewidth=2)
percentageDiff = (fastEMA - slowEMA) / slowEMA * 100
// Translate input into trading conditions
longOK = (tradeDirection == "Long") or (tradeDirection == "Both")
shortOK = (tradeDirection == "Short") or (tradeDirection == "Both")
// Decide if we should go long or short using the built-in functions
longCondition = ta.crossover(fastEMA, slowEMA)
shortCondition = ta.crossunder(fastEMA, slowEMA)
profit_long = input.float(4, "Profit_long %", minval=0.0, step=0.1) * 0.01
profit_short = input.float(4, "Profit_short %", minval=0.0, step=0.1) * 0.01
short_stop_profit = strategy.position_avg_price * (1 - profit_short)
long_stop_profit = strategy.position_avg_price * (1 + profit_long)
// ORDERS:
// Submit entry (or reverse) orders
if (longCondition and close > open )
strategy.entry(" Long ", strategy.long)
if (shortCondition and close < open )
strategy.entry(" Short ", strategy.short)
// Submit exit orders in the cases where we trade only long or only short
if (strategy.position_size > 0 and shortCondition )
strategy.exit(id="exit long", stop=close)
if (strategy.position_size < 0 and longCondition )
strategy.exit(id="exit short", stop=close)
plot(short_stop_profit)