Strategi Perdagangan Tertimbang EMA Pembalikan Kombinasi yang Dioptimalkan Ganda


Tanggal Pembuatan: 2023-12-07 16:39:50 Akhirnya memodifikasi: 2023-12-07 16:39:50
menyalin: 0 Jumlah klik: 579
1
fokus pada
1619
Pengikut

Strategi Perdagangan Tertimbang EMA Pembalikan Kombinasi yang Dioptimalkan Ganda

Ringkasan

Strategi ini merupakan kombinasi dari strategi perdagangan reverse EMA weighted yang dioptimalkan secara ganda. Strategi ini menggabungkan dua jenis strategi yang berbeda, yaitu strategi reverse dan strategi EMA weighted, untuk menghasilkan sinyal perdagangan yang lebih andal dengan menilai apakah sinyal dari kedua strategi tersebut konsisten.

Prinsip Strategi

Bagian berbalik menggunakan 123 strategi berbalik. Strategi ini menilai hubungan harga penutupan dua hari sebelumnya, dengan kombinasi indikator acak untuk menghasilkan sinyal. Aturan spesifiknya adalah:

  • Harga penutupan hari ini lebih tinggi dari kemarin, dan harga penutupan kemarin lebih rendah dari hari sebelumnya; sementara pada hari ke-9 garis lambat acak lebih rendah dari 50, lakukan lebih banyak;
  • Harga penutupan hari ini lebih rendah dari kemarin, dan harga penutupan kemarin lebih tinggi dari hari sebelumnya; sementara pada tanggal 9 garis cepat acak lebih tinggi dari 50, kosong.

EMA menggunakan indeks moving average dan volume transaksi.

xMAVolPrice = ema(volume * close, Length)
xMAVol = ema(volume, Length)  
nRes = xMAVolPrice / xMAVol

Aturan perdagangan spesifik adalah: melakukan over/under ketika nRes berada di bawah/di atas harga penutupan kemarin.

Akhirnya, strategi ini menilai apakah sinyal dari dua bagian tersebut konsisten, dan konsistensi menghasilkan sinyal perdagangan yang sebenarnya.

Analisis Keunggulan

Strategi ini menggabungkan dua jenis strategi yang berbeda, yang dapat saling diverifikasi, meningkatkan keandalan sinyal, dan mengurangi sinyal palsu. Pada saat yang sama, bagian reversal dapat menangkap titik balik, dan bagian EMA berat dapat melacak tren, keduanya dapat mencapai keuntungan yang saling melengkapi.

Analisis risiko

Strategi ini memiliki keterlambatan waktu tertentu, mudah untuk melewatkan peluang perdagangan di garis pendek. Dan EMA bertimbang pada pasar yang bergejolak harga tidak efektif. Selain itu, keandalan sinyal reversal juga perlu diperiksa.

Parameter dapat disingkat sesuai, mempercepat reaksi. Penambahan stop loss untuk mengendalikan risiko. Pengenalan lebih banyak faktor untuk memverifikasi sinyal pembalikan.

Arah optimasi

  1. Uji lebih banyak kombinasi reversal untuk menemukan parameter optimal.
  2. Cobalah berbagai jenis metode EMA.
  3. Masukkan Stop Loss, Lacak Stop Loss.
  4. Optimalkan parameter agar reaksi lebih cepat.

Meringkaskan

Strategi ini mengintegrasikan keunggulan dari dua jenis strategi yang berbeda, dapat meningkatkan kualitas sinyal, dan sampai batas tertentu mengatasi kelemahan dari strategi tunggal. Namun, ada juga keterbelakangan tertentu yang perlu dioptimalkan lebih lanjut. Secara keseluruhan, strategi ini memberikan ide baru untuk perdagangan kuantitatif, layak untuk dipelajari lebih lanjut dan dioptimalkan untuk menangkap peluang pasar.

Kode Sumber Strategi
/*backtest
start: 2023-11-06 00:00:00
end: 2023-12-06 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 18/10/2019
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// The related article is copyrighted material from Stocks & Commodities 2009 Oct 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

fFilter(xSeriesSum, xSeriesV, Filter) =>
    iff(xSeriesV > Filter, xSeriesSum, 0)

EMA_VW(Length) =>
    pos = 0.0
    xMAVolPrice = ema(volume * close, Length)
    xMAVol = ema(volume, Length)
    nRes = xMAVolPrice / xMAVol
    pos := iff(nRes < close[1], 1,
             iff(nRes > close[1], -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & EMA & Volume Weighting", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthEMA_VM = input(22, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posEMA_VW = EMA_VW(LengthEMA_VM)
pos = iff(posReversal123 == 1 and posEMA_VW == 1 , 1,
	   iff(posReversal123 == -1 and posEMA_VW == -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 )