Comb Reverse EMA Volume Weighting Optimization Strategi perdagangan

Penulis:ChaoZhang, Tanggal: 2023-12-07 16:39:50
Tag:

img

Gambaran umum

Strategi ini adalah kombinasi ganda dioptimalkan strategi perdagangan tertimbang EMA terbalik. Ini menggabungkan strategi terbalik dan strategi tertimbang EMA, dua jenis strategi yang berbeda, dan menghasilkan sinyal perdagangan yang lebih dapat diandalkan dengan menilai apakah sinyal dari kedua strategi konsisten.

Prinsip Strategi

Bagian pembalikan menggunakan strategi pembalikan 123. strategi ini menggabungkan hubungan antara harga penutupan dua hari sebelumnya dan osilator stokastik untuk menghasilkan sinyal. aturan spesifik adalah:

  • Ketika harga penutupan hari ini lebih tinggi dari harga kemarin, dan harga penutupan kemarin lebih rendah dari hari sebelum kemarin; pada saat yang sama, garis lambat stokastik 9 hari lebih rendah dari 50, pergi panjang;
  • Ketika harga penutupan hari ini lebih rendah dari harga kemarin, dan harga penutupan kemarin lebih tinggi dari hari sebelumnya; pada saat yang sama, garis cepat stokastik 9 hari lebih tinggi dari 50, pergi pendek.

Bagian tertimbang EMA menggunakan perhitungan rata-rata bergerak eksponensial dan perhitungan tertimbang volume.

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

Aturan perdagangan khusus adalah: ketika indikator nRes lebih rendah/lebih tinggi dari harga penutupan kemarin, pergi panjang/pendek.

Akhirnya, strategi menilai apakah sinyal dari kedua bagian konsisten sebelum menghasilkan sinyal perdagangan yang sebenarnya.

Analisis Keuntungan

Strategi ini menggabungkan dua jenis strategi yang berbeda untuk memverifikasi satu sama lain dan meningkatkan keandalan sinyal dan mengurangi sinyal palsu. Pada saat yang sama, bagian pembalikan dapat menangkap titik balik, dan bagian EMA yang tertimbang dapat melacak tren untuk mencapai keuntungan pelengkap.

Analisis Risiko

Strategi ini memiliki keterlambatan waktu tertentu dan cenderung melewatkan peluang perdagangan jangka pendek. Juga, EMA tertimbang tidak efektif untuk pasar yang berosilasi. Selain itu, keandalan sinyal pembalikan juga perlu diverifikasi.

Singkatkan parameter dengan tepat untuk mempercepat reaksi Tambahkan stop loss untuk mengendalikan risiko Memperkenalkan lebih banyak faktor untuk memverifikasi sinyal pembalikan

Optimalisasi

  1. Uji lebih banyak kombinasi faktor pembalikan untuk menemukan parameter optimal.
  2. Cobalah berbagai jenis metode pembobotan EMA.
  3. Tambahkan stop loss, trailing stop loss.
  4. Mengoptimalkan parameter untuk respons yang lebih cepat.

Ringkasan

Strategi ini mengintegrasikan keuntungan dari dua jenis strategi yang berbeda, yang dapat meningkatkan kualitas sinyal dan mengatasi kekurangan dari satu strategi sampai batas tertentu. Tapi ada juga keterlambatan tertentu yang perlu dioptimalkan lebih lanjut. Secara keseluruhan, strategi ini memberikan ide-ide baru untuk perdagangan kuantitatif dan layak penelitian lebih lanjut dan pengoptimalan untuk merebut peluang pasar.


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

Lebih banyak