Strategi perdagangan kuantitas konfirmasi ganda

Penulis:ChaoZhang, Tanggal: 2024-01-15 15:21:39
Tag:

img

Gambaran umum

Strategi perdagangan kuantitas konfirmasi ganda mewujudkan konfirmasi ganda sinyal perdagangan dengan menggabungkan strategi pembalikan 123 dan sub-strategi Perosilan Volume Persentase (PVO) untuk mengurangi risiko perdagangan.

Prinsip Perdagangan

123 Strategi Pembalikan

Strategi pembalikan 123 didasarkan pada pola K-line yang diimplementasikan oleh indikator Stochastic. Secara khusus, strategi ini berjalan panjang ketika harga penutupan lebih rendah dari harga penutupan hari sebelumnya selama dua hari berturut-turut dan Stochastic lambat 9 hari di bawah 50; strategi ini berjalan pendek ketika harga penutupan lebih tinggi dari harga penutupan hari sebelumnya selama dua hari berturut-turut dan Stochastic cepat 9 hari di atas 50.

Osilator Volume Persentase (PVO)

PVO adalah osilator momentum berdasarkan volume. Ini mengukur perbedaan antara dua rata-rata bergerak eksponensial volume selama periode yang berbeda sebagai persentase dari rata-rata periode yang lebih lama. Ini positif ketika EMA periode yang lebih pendek berada di atas EMA periode yang lebih lama dan negatif ketika EMA periode yang lebih pendek berada di bawah. Indikator ini mencerminkan naik turunnya volume perdagangan.

Analisis Keuntungan

Strategi ini menggabungkan indikator harga dan volume untuk secara efektif menyaring pemutusan palsu. Pada saat yang sama, dengan menggunakan mekanisme konfirmasi ganda, dapat mengurangi frekuensi transaksi dan mengurangi risiko perdagangan.

Analisis Risiko

Strategi ini bergantung pada periode pemegang yang lebih lama, dengan risiko penarikan. Selain itu, pengaturan parameter yang tidak tepat juga dapat menyebabkan overselling atau sinyal yang hilang.

Arahan Optimasi

Kinerja sub-strategi dapat dioptimalkan dengan menyesuaikan parameter Stochastic dan PVO. Mekanisme stop loss juga dapat diperkenalkan untuk mengendalikan risiko. Selain itu, penyaringan sinyal dengan indikator lain dapat lebih meningkatkan stabilitas strategi.

Kesimpulan

Strategi perdagangan kuantum konfirmasi ganda memperhitungkan faktor harga dan volume dengan hasil backtest yang baik.


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

Lebih banyak