Strategi Kuantitatif Indikator Ganda

Penulis:ChaoZhang, Tanggal: 2023-12-21 10:59:16
Tag:

img

Gambaran umum

Strategi ini menghasilkan sinyal perdagangan dengan menggabungkan indikator 123 Reversal dan indikator RAVI. Reversal 123 termasuk dalam jenis strategi reversal, menggunakan pergerakan harga dalam dua hari terakhir untuk menentukan tren harga di masa depan. Indikator RAVI menentukan apakah harga telah memasuki zona overbought atau oversold. Strategi memutuskan untuk pergi panjang atau pendek berdasarkan sinyal gabungan dari kedua indikator.

Logika Strategi

123 Pembalikan

Indikator ini didasarkan pada nilai K dari indikator Stochastic. Secara khusus, itu pergi panjang ketika harga penutupan hari ini lebih rendah dari dua hari sebelumnya dan garis stochastic lambat 9 hari lebih rendah dari 50. Ini pergi pendek ketika harga penutupan hari ini lebih tinggi dari dua hari sebelumnya dan garis stochastic cepat 9 hari lebih tinggi dari 50. Jadi masuk berdasarkan konfirmasi titik pembalikan.

Indikator RAVI

Indikator ini menghasilkan sinyal dengan menghitung perbedaan antara rata-rata bergerak cepat dan lambat. Secara khusus, perbedaan antara MA 7 hari dan MA 65 hari. Ini panjang ketika perbedaan lebih besar dari ambang batas dan pendek ketika lebih rendah dari ambang batas. Jadi area overbought dan oversold dapat diidentifikasi ketika MAs cepat dan lambat bersilang.

Sinyal Strategi

Sinyal dihasilkan ketika 123 Reversal dan RAVI setuju pada arah. Sinyal panjang dipicu ketika kedua indikator menunjukkan 1 dan sinyal pendek dipicu ketika keduanya menunjukkan -1. Konfirmasi ganda ini menghindari sinyal yang salah dari satu indikator.

Analisis Pro

  • Menggabungkan dua indikator meningkatkan akurasi sinyal dan menghindari sinyal palsu
  • 123 Reversal menggunakan data harga dan RAVI menggunakan data rata-rata bergerak untuk menentukan tren dari berbagai perspektif
  • Parameter RAVI dapat disesuaikan dan dapat dioptimalkan untuk produk dan lingkungan pasar yang berbeda
  • Kombinasi pembalikan dan tren memungkinkan menangkap pembalikan dan tren

Risiko dan Optimalisasi

  • Kombinasi indikator ganda kadang-kadang dapat menyebabkan sinyal yang bertentangan. parameter deviasi harga dapat diperkenalkan untuk memicu sinyal ketika deviasi harga antara dua indikator berada dalam ambang batas
  • 123 Reversal adalah strategi frekuensi tinggi. harus dikombinasikan dengan strategi frekuensi rendah lainnya untuk menurunkan frekuensi perdagangan
  • RAVI baik dalam menangkap tren jangka menengah hingga panjang.

Kesimpulan

Strategi ini mempertimbangkan faktor pembalikan dan tren. Konfirmasi ganda membantu menghindari sinyal palsu. Langkah selanjutnya bisa memperkenalkan algoritma pembelajaran mesin untuk optimasi parameter adaptif. Atau menggabungkan strategi ini dengan jenis strategi lain untuk mencapai diversifikasi portofolio sambil mempertahankan keuntungan dan mengurangi penarikan maksimum.


/*backtest
start: 2023-11-20 00:00:00
end: 2023-12-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 31/05/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 indicator represents the relative convergence/divergence of the moving 
// averages of the financial asset, increased a hundred times. It is based on 
// a different principle than the ADX. Chande suggests a 13-week SMA as the 
// basis for the indicator. It represents the quarterly (3 months = 65 working days) 
// sentiments of the market participants concerning prices. The short moving average 
// comprises 10% of the one and is rounded to seven.
//
// 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


RAVI(LengthMAFast, LengthMASlow, TradeLine) =>
    pos = 0.0
    xMAF = sma(close, LengthMAFast)
    xMAS = sma(close, LengthMASlow)
    xRAVI = ((xMAF - xMAS) / xMAS) * 100
    pos:= iff(xRAVI > TradeLine, 1,
    	   iff(xRAVI < TradeLine, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Range Action Verification Index (RAVI)", 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, "---- Range Action Verification Index (RAVI) ----")
LengthMAFast = input(title="Length MA Fast", defval=7)
LengthMASlow = input(title="Length MA Slow", defval=65)
TradeLine = input(0.14, step=0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRAVI = RAVI(LengthMAFast, LengthMASlow, TradeLine)
pos = iff(posReversal123 == 1 and posRAVI == 1 , 1,
	   iff(posReversal123 == -1 and posRAVI == -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