Indeks Dwi Momentum dan Strategi Komposit Pembalikan


Tarikh penciptaan: 2024-02-06 12:22:32 Akhirnya diubah suai: 2024-02-06 12:22:32
Salin: 0 Bilangan klik: 658
1
fokus pada
1617
Pengikut

Indeks Dwi Momentum dan Strategi Komposit Pembalikan

Gambaran keseluruhan

Strategi gabungan indeks dinamik dua kali ganda dengan strategi reversal adalah strategi gabungan gabungan strategi reversal dan strategi dinamik. Ia menggunakan strategi gabungan 123 strategi reversal dan dua sub-strategi CSI untuk menentukan masa masuk berdasarkan isyarat ganda. Strategi ini bertujuan meningkatkan ketepatan isyarat perdagangan.

Prinsip Strategi

Strategi ini terdiri daripada dua sub-strategi:

  1. 123 Strategi pembalikan. Ia melakukan lebih banyak apabila harga penutupan meningkat dua hari berturut-turut dan penunjuk stoch di bawah 50; Kosong apabila harga penutupan jatuh dua hari berturut-turut dan penunjuk stoch di atas 50. Ia adalah strategi pembalikan.

  2. Indeks pilihan komoditi (CSI) strategi. Ia menggabungkan purata harga sebenar (ATR) dengan purata arah pergerakan (ADX). ATR mencerminkan turun naik pasaran, ADX mencerminkan kekuatan trend.

Strategi keseluruhan menggunakan strategi 123 berbalik sebagai badan, strategi CSI sebagai pengesahan tambahan. Isyarat perdagangan dikeluarkan hanya apabila kedua-dua isyarat sesuai. Apabila dilakukan secara berlebihan, harga penutupan naik dua hari berturut-turut dan stoch di bawah 50, sementara di CSI menembusi purata bergeraknya. Apabila dilakukan secara kosong, harga penutupan turun dua hari berturut-turut dan stoch lebih tinggi daripada 50, sementara di CSI menembusi purata bergeraknya.

Ini memastikan sifat pembalikan isyarat perdagangan, dan penapisan indikator CSI dapat mengurangkan isyarat palsu.

Analisis kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Gabungan pembalikan dengan momentum, meningkatkan ketepatan isyarat. Strategi pembalikan 123 sebagai isyarat utama, dapat menangkap pembalikan keadaan yang mendadak. Penunjuk CSI sebagai pengesahan sampingan, dapat menyaring sebahagian daripada kebisingan.

  2. Penggunaan penapis komposit dapat mengurangkan kedudukan bersih secara besar-besaran. Walaupun terdapat peratusan isyarat palsu dalam substrategi itu sendiri, isyarat akhir mestilah konsisten dua kali, dan dapat menapis sebahagian besar isyarat palsu, sehingga dapat meminimumkan pembukaan kedudukan yang tidak perlu berulang.

  3. Parameter strategi anak boleh dioptimumkan secara berasingan. Parameter masing-masing strategi 123 dan CSI boleh diuji dan dioptimumkan secara berasingan tanpa mengganggu satu sama lain. Ini memudahkan mencari kombinasi parameter terbaik.

  4. Strategi anak boleh diaktifkan secara berasingan. Strategi ini menyokong perdagangan hanya menggunakan strategi 123 reverse atau strategi CSI secara berasingan. Ini memberikan fleksibiliti kepada strategi.

Analisis risiko

Walaupun strategi ini telah mengurangkan banyak isyarat palsu melalui penapisan komposit, risiko utama yang masih wujud ialah:

  1. Isyarat strategi menghasilkan frekuensi yang agak rendah. Menggunakan kaedah pengesahan berganda, pasti akan menyaring peratusan peluang perdagangan. Ini adalah pembayaran yang mesti dilakukan untuk mencapai kadar kemenangan yang tinggi.

  2. Jika kedua-dua parameter strategi anak tidak betul, ia boleh menyebabkan isyarat jarang atau tidak ada isyarat. Ia memerlukan ujian dan pengoptimuman yang ketat untuk parameter untuk mencari kombinasi parameter yang terbaik.

  3. 123 berbalik adalah operasi berlawanan pasaran. Strategi ini akan menghadapi risiko yang lebih besar jika berlaku penembusan harga unilateral yang berterusan dan teruk.

Arah pengoptimuman

Terdapat ruang untuk pengoptimuman utama dalam strategi ini dalam beberapa aspek:

  1. Mengoptimumkan parameter dalam setiap substrategi untuk mencari kombinasi parameter terbaik.

  2. Uji penapis keadaan pasaran yang berbeza. Contohnya, gunakan strategi CSI hanya apabila tren berlaku, gunakan strategi 123 pembalikan hanya apabila pasaran bergolak. Ini dapat mengatasi kelemahan substrategi.

  3. Modul penyesuaian parameter dan pengoptimuman dinamik. Ia membolehkan strategi menyesuaikan parameter secara automatik berdasarkan keadaan pasaran dan statistik masa nyata, dan mengesan kombinasi parameter yang optimum dalam masa nyata.

  4. Uji mekanisme penutupan yang berbeza. Penutupan yang sesuai dapat mengawal risiko dengan berkesan dan mengurangkan kedudukan yang tidak perlu.

ringkaskan

Indeks dinamik dua kali dengan strategi perpaduan reverse menggunakan pengesahan dan kombinasi pelbagai isyarat, memanfaatkan kelebihan strategi reverse dan strategi dinamik masing-masing, sambil meringankan kelemahan kedua-duanya dengan saling menyaring, mencapai kecekapan yang tinggi dan kestabilan yang tinggi. Ia adalah salah satu strategi kuantiti khas yang boleh dipilih.

Kod sumber strategi
/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/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 Commodity Selection Index ("CSI") is a momentum indicator. It was 
// developed by Welles Wilder and is presented in his book New Concepts in 
// Technical Trading Systems. The name of the index reflects its primary purpose. 
// That is, to help select commodities suitable for short-term trading.
// A high CSI rating indicates that the commodity has strong trending and volatility 
// characteristics. The trending characteristics are brought out by the Directional 
// Movement factor in the calculation--the volatility characteristic by the Average 
// True Range factor.
// Wilder's approach is to trade commodities with high CSI values (relative to other 
// commodities). Because these commodities are highly volatile, they have the potential 
// to make the "most money in the shortest period of time." High CSI values imply 
// trending characteristics which make it easier to trade the security.
// The Commodity Selection Index is designed for short-term traders who can handle 
// the risks associated with highly volatile markets.
//
// 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

fADX(Len) =>
    up = change(high)
    down = -change(low)
    trur = rma(tr, Len)
    plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, Len) / trur)
    minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, Len) / trur)
    sum = plus + minus 
    100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), Len)

CSI(Length, Commission, Margin, PointValue) =>
    pos = 0.0
    K = 100 * ((PointValue / sqrt(Margin) / (150 + Commission)))
    xATR = atr(Length)
    xADX = fADX(Length)
    nADXR = (xADX + xADX[Length]) * 0.5
    xCSI = K * xATR * nADXR
    xMACSI = sma(xCSI, Length)
    pos := iff(xCSI < xMACSI, 1,
    	     iff(xCSI > xMACSI, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Strategy 123 Reversal & Commodity Selection Index", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
PointValue = input(50)
Margin = input(3000)
Commission = input(10)
LengthCSI = input(14)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posCSI = CSI(LengthCSI, Commission, Margin, PointValue)
pos = iff(posReversal123 == 1 and posCSI == 1 , 1,
	   iff(posReversal123 == -1 and posCSI == -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 )