Ringkasan
Strategi ini menggunakan pelbagai purata bergerak harmonik untuk membina isyarat perdagangan. Ia mula-mula mengira purata bergerak harmonik dari urutan 1 hingga 6, dan kemudian menggabungkan purata bergerak ini untuk membina isyarat perdagangan panjang / pendek berganda.
Logika Strategi
Strategi pertama menentukan fungsi harm_average untuk mengira purata bergerak harmonik n-periode. Kemudian ia mengira purata bergerak harmonik dari urutan 1 hingga 6, iaitu T1 hingga T6. Di antara mereka, T1 adalah purata bergerak harmonik 3-periode, T2 adalah purata bergerak harmonik 3-periode T1, dan sebagainya.
Selepas itu, ia membina lengkung imbangan, yang secara sintetik menganggap kebalikan daripada purata bergerak harmonik kubik dari T1 ke T6. Ini boleh mencerminkan faktor jangka pendek dan jangka panjang pada masa yang sama.
Akhirnya, mengikut T1 ke T6, ia membina isyarat silang panjang / pendek berganda, di mana X1 mengambil minimum T1, T2 dan T3, dan X2 mengambil maksimum T4, T5 dan T6. Ia pergi lama apabila X1 melintasi di atas X2, dan pergi pendek apabila X1 melintasi di bawah X2. Di sini X1 mencerminkan faktor jangka pendek dan X2 mencerminkan faktor jangka panjang.
Analisis Kelebihan
Menggunakan pelbagai purata bergerak harmonik dapat menapis bunyi pasaran dengan berkesan dan meningkatkan kualiti isyarat
Membina isyarat perdagangan panjang / pendek berganda boleh menangkap titik perubahan trend tepat pada masanya
Lintasan Saldo secara sintetik mengambil kira pelbagai jangka masa yang dapat menilai arah trend dengan tepat
Menggunakan purata kiub boleh lebih menonjolkan peranan pembolehubah pertengahan dan meningkatkan kestabilan strategi
Analisis Risiko
Purata harmonik sendiri mempunyai kelewatan yang tinggi, yang mungkin terlepas peluang pembalikan jangka pendek
Pengoptimuman berlebihan dengan purata berganda boleh mengurangkan kekuatan strategi
Pengiraan kiub boleh memperkuat bunyi perantara ke tahap tertentu, mengakibatkan isyarat palsu tertentu
Salib berganda mempunyai beberapa tahap ketinggalan, tidak dapat menangkap titik giliran tepat pada masanya
Arahan pengoptimuman
Lebih banyak jenis atau perintah yang lebih tinggi dari purata harmonik boleh diuji
Memperkenalkan penyesuaian dinamik hari purata untuk mengoptimumkan sistem purata
Uji parameter kuasa yang berbeza seperti persegi dan log
Masukkan lebih banyak penunjuk tambahan untuk mengesahkan kualiti isyarat
Ringkasan
Strategi ini menggunakan sistem purata harmonik berganda untuk membina isyarat perdagangan panjang / pendek berganda. Berbanding dengan sistem purata tunggal, strategi ini dapat mengenal pasti trend dan menapis bunyi bising dengan lebih baik. Sementara itu, silang berganda juga dapat menangkap titik perubahan pasaran tepat pada masanya. Walau bagaimanapun, pengiraan purata dan kiub berganda juga memperkenalkan beberapa kelewatan dan penguat bunyi bising. Pada masa akan datang, pengenalan penyesuaian parameter dinamik dan lebih banyak penunjuk tambahan dapat meningkatkan kestabilan dan ketepatan masa strategi.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Harmonic System Strategy", overlay=true) harm_average(x,y,z) =>3 / (1 / x + 1 / y + 1 / z) T1 = harm_average(close[1], close[2], close[3]) T2 = harm_average(T1, T1[1], T1[2]) T3 = harm_average(T2, T2[1], T2[2]) T4 = harm_average(T3, T3[1], T3[2]) T5 = harm_average(T4, T4[1], T4[2]) T6 = harm_average(T5, T5[1], T5[2]) Balance = 18 / (1 / T1 * 3 + 1 / T2 * 3 + 1 / T3 * 3 + 1 / T4 * 3 + 1 / T5 * 3 + 1 / T6 * 3) plot(T1,linewidth=2, color=color.green,title="T1") plot(T2,linewidth=1, color=color.blue,title="T2") plot(T3,linewidth=1, color=color.blue,title="T3") plot(Balance,linewidth=2, color=color.black,title="Balance") plot(T4,linewidth=1, color=color.blue,title="T4") plot(T5,linewidth=1, color=color.blue,title="T5") plot(T6,linewidth=2, color=color.red,title="T6") X1 = min(min(T1,T2),T3) X2 = max(max(T4,T5),T6) X3 = min(T1,T2) X4 = max(T3,T4) Buy=crossover(X1,X2) Sell=crossunder(X3,X4) if crossover(X1,X2) strategy.entry("Long", strategy.long, comment="Long") if crossunder(X3,X4) strategy.entry("Short", strategy.short, comment="Short")