Strategi perdagangan purata bergerak isyarat ke bunyi bising berdasarkan perdagangan kuantitatif

Penulis:ChaoZhang, Tarikh: 2024-01-02 12:24:35
Tag:

img

I. Nama Strategi

Strategi Perdagangan Purata Bergerak Isyarat-ke-Suara

II. Ringkasan Strategi

Strategi ini merealisasikan perdagangan kuantitatif dengan mengira nisbah isyarat ke bunyi dalam tempoh tertentu dan menggabungkannya dengan isyarat perdagangan purata bergerak.

  1. Mengira nisbah isyarat ke bising dalam tempoh tertentu (boleh disesuaikan)
  2. Mempakai purata bergerak untuk meluruskan nisbah isyarat ke bunyi
  3. Bandingkan nisbah isyarat ke bising semasa dengan nilai purata bergerak untuk menjana isyarat perdagangan
  4. Panjang atau pendek berdasarkan isyarat dagangan

III. Prinsip Strategi

  1. Rumus untuk mengira nisbah isyarat ke bunyi (StN) adalah: StN = -10*log ((Σ(1/dekat) /n), di mana n adalah panjang tempoh
  2. Mempakai purata bergerak mudah (SMA) kepada nisbah isyarat ke bunyi untuk mendapatkan StN yang halus
  3. Bandingkan StN semasa dengan SMAStN yang halus: (1) Jika SMAStN > StN, pergi pendek (2) Jika SMAStN < StN, pergi panjang (3) Jika tidak, kedudukan dekat

IV. Analisis Kelebihan

Kelebihan utama strategi ini ialah:

  1. StN boleh menilai turun naik pasaran dan risiko, SMA mempunyai keupayaan pengurangan bunyi bising
  2. Menggabungkan StN untuk menilai risiko pasaran dan SMA untuk menjana isyarat perdagangan menggunakan kelebihan penunjuk yang berbeza
  3. Parameter yang boleh diselaraskan untuk menyesuaikan diri dengan keadaan pasaran yang berbeza
  4. Isyarat stdout secara langsung menunjukkan jangka panjang atau pendek, penilaian intuitif ciri pasaran

V. Analisis Risiko

Terdapat juga beberapa risiko dengan strategi ini:

  1. Terdapat risiko penyimpangan pertimbangan antara StN dan MA
  2. Tetapan tempoh yang tidak betul boleh menyebabkan isyarat palsu
  3. Peluang jangka pendek yang agak sedikit, boleh dioptimumkan melalui penyesuaian parameter
  4. Fluktuasi melampau yang disebabkan oleh peristiwa black swan boleh mencetuskan stop loss

Penyelesaian:

  1. Sesuaikan parameter MA untuk mengelakkan terlalu licin
  2. Mengoptimumkan parameter tempoh dan kesesuaian ujian di pasaran yang berbeza
  3. Sesuaikan syarat pendek untuk menyediakan lebih banyak peluang pendek
  4. Tetapkan stop loss untuk mengawal kerugian maksimum

VI. Arah Pengoptimuman

Strategi ini boleh dioptimumkan dengan cara berikut:

  1. Kombinasi ujian lebih banyak jenis purata bergerak
  2. Tambah mekanisme stop loss untuk mengawal risiko
  3. Tambah pengurusan kedudukan, menyesuaikan kedudukan berdasarkan turun naik
  4. Menggabungkan lebih banyak faktor untuk meningkatkan kestabilan
  5. Gunakan kaedah pembelajaran mesin untuk mengoptimumkan parameter secara automatik

VII. Ringkasan

Strategi ini merealisasikan perdagangan kuantitatif dengan menilai risiko pasaran melalui nisbah isyarat ke bunyi bising dan menjana isyarat perdagangan dari purata bergerak. Berbanding dengan satu petunjuk teknikal, strategi ini mengintegrasikan kelebihan kedua-dua StN dan SMA untuk meningkatkan kestabilan sambil mengawal risiko. Dengan pengoptimuman parameter dan pembelajaran mesin, strategi ini mempunyai potensi peningkatan yang besar dan merupakan strategi perdagangan kuantitatif yang boleh dipercayai dan berkesan.


/*backtest
start: 2023-12-25 00:00:00
end: 2023-12-29 10:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © HPotter 05/01/2021
// The signal-to-noise (S/N) ratio. 
// And Simple Moving Average.
// Thank you for idea BlockchainYahoo
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors. 
////////////////////////////////////////////////////////////
SignalToNoise(length) =>
    StN = 0.0
    for i = 1 to length-1
        StN := StN + (1/close[i])/length
    StN := -10*log(StN)

strategy(title="Backtest Signal To Noise ", shorttitle="StoN", overlay=false)
length = input(title="Days", type=input.integer, defval=21, minval=2)
Smooth =  input(title="Smooth", type=input.integer, defval=7, minval=2)
reverse = input(false, title="Trade reverse")
StN = SignalToNoise(length)
SMAStN = sma(StN, Smooth)
pos = iff(SMAStN[1] > StN[1] , -1,
	   iff(SMAStN[1] < StN[1], 1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )
plot(StN, title='StN' )
plot(SMAStN, title='Smooth', color=#00ff00)

Lebih lanjut