Strategi perdagangan kuantitatif pengesahan berganda


Tarikh penciptaan: 2024-01-15 15:21:39 Akhirnya diubah suai: 2024-01-15 15:21:39
Salin: 0 Bilangan klik: 628
1
fokus pada
1617
Pengikut

Strategi perdagangan kuantitatif pengesahan berganda

Gambaran keseluruhan

Strategi perdagangan kuantitatif pengesahan ganda mengurangkan risiko perdagangan dengan menggabungkan strategi 123 reversal dan dua sub-strategi PVO, yang membolehkan pengesahan ganda terhadap isyarat perdagangan. Strategi ini digunakan terutamanya untuk perdagangan memegang posisi panjang dan sederhana.

Prinsip Strategi

123 Strategi berbalik

123 strategi pembalikan berdasarkan K-garis acak. Secara khusus, apabila harga penutupan 2 hari berturut-turut lebih rendah daripada harga penutupan hari sebelumnya, dan 9 hari lebih rendah daripada 50 pada acak perlahan; apabila harga penutupan 2 hari berturut-turut lebih tinggi daripada harga penutupan hari sebelumnya, dan 9 hari lebih tinggi daripada 50 pada acak perlahan.

Peratusan Indeks Vokasi Perdagangan (PVO)

PVO adalah penunjuk pergerakan kuantiti yang berdasarkan jumlah transaksi. Ia mengukur perbezaan antara purata bergerak indeks jumlah transaksi untuk dua tempoh yang berbeza dengan peratusan purata jangka masa yang lebih lama, dalam bentuk peratusan. Apabila purata jangka masa pendek lebih tinggi daripada purata jangka masa panjang, ia adalah positif, sebaliknya negatif.

Analisis kelebihan

Strategi ini menggabungkan indikator harga dan indikator jumlah transaksi, yang dapat menyaring penembusan palsu dengan berkesan. Selain itu, dengan mekanisme pengesahan dua kali, frekuensi perdagangan dapat dikurangkan dan risiko perdagangan dapat dikurangkan.

Analisis risiko

Strategi ini bergantung pada tempoh pegangan yang panjang dan terdapat risiko penarikan balik. Selain itu, parameter yang tidak betul juga boleh menyebabkan frekuensi perdagangan yang terlalu tinggi atau isyarat yang salah.

Arah pengoptimuman

Prestasi sub-strategi boleh dioptimumkan dengan menyesuaikan parameter penunjuk rawak dan PVO. Juga, mekanisme hentian kerugian boleh diperkenalkan untuk mengawal risiko. Selain itu, gabungan dengan isyarat penapis penunjuk lain dapat meningkatkan kestabilan strategi.

ringkaskan

Strategi perdagangan kuantitatif pengesahan ganda menyeluruh mempertimbangkan faktor harga dan jumlah transaksi, dan pengukuran semula adalah ideal. Dengan penapisan isyarat yang disesuaikan dan dioptimumkan dengan parameter, strategi ini dijangka meningkatkan kestabilan lebih lanjut dan menjadi alat yang kuat untuk perdagangan kuantitatif.

Kod sumber strategi
/*backtest
start: 2024-01-07 00:00:00
end: 2024-01-14 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 14/04/2021
// 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 Percentage Volume Oscillator (PVO) is a momentum oscillator for volume. 
// PVO measures the difference between two volume-based moving averages as a 
// percentage of the larger moving average. As with MACD and the Percentage Price 
// Oscillator (PPO), it is shown with a signal line, a histogram and a centerline. 
// PVO is positive when the shorter volume EMA is above the longer volume EMA and 
// negative when the shorter volume EMA is below. This indicator can be used to define 
// the ups and downs for volume, which can then be use to confirm or refute other signals. 
// Typically, a breakout or support break is validated when PVO is rising or positive. 
//
// 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


PVO(LengthShortEMA,LengthLongEMA,LengthSignalEMA) =>
    pos = 0.0
    xShortEMA = ema(volume , LengthShortEMA)
    xLongEMA = ema(volume , LengthLongEMA)
    xPVO = ((xShortEMA - xLongEMA) / xLongEMA) * 100
    xSignalEMA = ema(xPVO , LengthSignalEMA)
    xPVOHisto = xPVO - xSignalEMA
    pos := iff(xSignalEMA < xPVO, -1,
    	      iff(xSignalEMA > xPVO, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Percentage Volume Oscillator (PVO)", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Percentage Volume OscillatorA ----")
LengthShortEMA = input(12, minval=1)
LengthLongEMA = input(26, minval=1)
LengthSignalEMA = input(9, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posPVO = PVO(LengthShortEMA,LengthLongEMA,LengthSignalEMA)
pos = iff(posReversal123 == 1 and posPVO == 1 , 1,
	   iff(posReversal123 == -1 and posPVO == -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 )