Strategi perdagangan rata-rata bergerak sinyal ke kebisingan berdasarkan perdagangan kuantitatif

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

img

I. Nama Strategi

Strategi perdagangan rata-rata bergerak sinyal ke kebisingan

II. Ringkasan Strategi

Strategi ini mewujudkan perdagangan kuantitatif dengan menghitung rasio sinyal ke kebisingan selama periode tertentu dan menggabungkannya dengan sinyal perdagangan rata-rata bergerak.

  1. Menghitung rasio sinyal ke kebisingan selama periode tertentu (bisa disesuaikan)
  2. Menerapkan rata-rata bergerak untuk meratakan rasio sinyal ke kebisingan
  3. Bandingkan rasio sinyal ke kebisingan saat ini dengan nilai rata-rata bergerak untuk menghasilkan sinyal perdagangan
  4. Long atau short berdasarkan sinyal perdagangan

III. Prinsip Strategi

  1. Rumus untuk menghitung rasio sinyal ke kebisingan (StN) adalah: StN = -10*log ((Σ(1/dekat) /n), di mana n adalah panjang periode
  2. Menerapkan Simple Moving Average (SMA) pada rasio sinyal ke kebisingan untuk mendapatkan StN yang halus
  3. Bandingkan StN saat ini dengan SMAStN halus: (1) Jika SMAStN > StN, pergi pendek (2) Jika SMAStN < StN, pergi panjang (3) Jika tidak, posisi dekat

IV. Analisis Keuntungan

Keuntungan utama dari strategi ini adalah:

  1. StN dapat menilai fluktuasi pasar dan risiko, SMA memiliki kemampuan pengurangan kebisingan
  2. Menggabungkan StN untuk menilai risiko pasar dan SMA untuk menghasilkan sinyal perdagangan memanfaatkan keuntungan dari indikator yang berbeda
  3. Parameter yang dapat disesuaikan untuk menyesuaikan diri dengan kondisi pasar yang berbeda
  4. Sinyal stdout secara langsung menunjukkan jangka panjang atau pendek, penilaian intuitif dari karakteristik pasar

V. Analisis Risiko

Ada juga beberapa risiko dengan strategi ini:

  1. Ada risiko penyimpangan dari penilaian silang antara StN dan MA
  2. Pengaturan periode yang salah dapat menyebabkan sinyal palsu
  3. Relatif lebih sedikit peluang pendek, dapat dioptimalkan melalui penyesuaian parameter
  4. Fluktuasi ekstrim yang disebabkan oleh peristiwa angsa hitam dapat memicu stop loss

Solusi:

  1. Sesuaikan parameter MA untuk menghindari over-smoothing
  2. Mengoptimalkan parameter periode dan kemampuan beradaptasi uji di pasar yang berbeda
  3. Sesuaikan kondisi jangka pendek untuk memberikan lebih banyak kesempatan jangka pendek
  4. Atur stop loss untuk mengendalikan kerugian maksimum

VI. Arah Optimasi

Strategi dapat dioptimalkan dengan cara berikut:

  1. Kombinasi uji dari lebih banyak jenis rata-rata bergerak
  2. Menambahkan mekanisme stop loss untuk mengendalikan risiko
  3. Tambahkan manajemen posisi, menyesuaikan posisi berdasarkan fluktuasi
  4. Masukkan lebih banyak faktor untuk meningkatkan stabilitas
  5. Menggunakan metode pembelajaran mesin untuk mengoptimalkan parameter secara otomatis

VII. Ringkasan

Strategi ini mewujudkan perdagangan kuantitatif dengan menilai risiko pasar melalui rasio sinyal ke kebisingan dan menghasilkan sinyal perdagangan dari moving average. Dibandingkan dengan indikator teknis tunggal, strategi ini mengintegrasikan keuntungan dari StN dan SMA untuk meningkatkan stabilitas sambil mengendalikan risiko. Dengan optimasi parameter dan pembelajaran mesin, strategi ini memiliki potensi peningkatan yang besar dan merupakan strategi perdagangan kuantitatif yang andal dan efektif.


/*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 banyak