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