Strategi perdagangan kuant pengesahan berganda mewujudkan pengesahan dua kali ganda isyarat perdagangan dengan menggabungkan strategi pembalikan 123 dan sub-strategi Peratusan Volume Oscillator (PVO) untuk mengurangkan risiko perdagangan.
Strategi pembalikan 123 adalah berdasarkan corak K-line yang dilaksanakan oleh penunjuk Stochastic. Khususnya, ia pergi lama apabila harga penutupan lebih rendah daripada harga penutupan hari sebelumnya selama dua hari berturut-turut dan Stochastic perlahan 9 hari di bawah 50; ia pergi pendek apabila harga penutupan lebih tinggi daripada harga penutupan hari sebelumnya selama dua hari berturut-turut dan Stochastic cepat 9 hari di atas 50.
PVO adalah pengayun momentum berdasarkan jumlah. Ia mengukur perbezaan antara dua purata bergerak eksponen jumlah dalam tempoh yang berbeza sebagai peratusan purata tempoh yang lebih lama. Ia positif apabila EMA tempoh yang lebih pendek berada di atas EMA tempoh yang lebih lama dan negatif apabila EMA tempoh yang lebih pendek berada di bawah. Penunjuk ini mencerminkan kenaikan dan penurunan jumlah dagangan.
Strategi ini menggabungkan penunjuk harga dan jumlah untuk menapis secara berkesan pemutusan palsu. Pada masa yang sama, dengan menggunakan mekanisme pengesahan berganda, ia dapat mengurangkan kekerapan transaksi dan mengurangkan risiko perdagangan.
Strategi ini bergantung pada tempoh memegang yang lebih lama, dengan risiko penarikan. Di samping itu, tetapan parameter yang tidak betul juga boleh menyebabkan perdagangan berlebihan atau isyarat yang hilang.
Prestasi sub-strategi boleh dioptimumkan dengan menyesuaikan parameter Stochastic dan PVO. Mekanisme stop loss juga boleh diperkenalkan untuk mengawal risiko. Di samping itu, penapisan isyarat dengan penunjuk lain dapat meningkatkan kestabilan strategi.
Strategi perdagangan kuant pengesahan berganda mengambil kira kedua-dua faktor harga dan jumlah dengan hasil backtest yang baik. Melalui penyesuaian parameter dan pengoptimuman penapisan isyarat, strategi ini berpotensi untuk meningkatkan kestabilan 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 )