Strategi ini menggunakan mekanisme pelacakan dua arah, dikombinasikan dengan sinyal pembalikan harga dan indikator volume, untuk mewujudkan perdagangan kuantitatif otomatis. Keuntungannya terbesar terletak pada pengendalian risiko yang dapat diandalkan dengan melacak stop loss untuk mengunci keuntungan dan menghindari ekspansi kerugian. Sementara itu, sinyal perdagangan pembalikan meningkatkan tingkat kemenangan strategi. Artikel ini akan menganalisis secara rinci prinsip, kekuatan, risiko dan arah pengoptimalan strategi ini.
Strategi ini terdiri dari dua sub-strategi. sub-strategi pertama menggunakan indikator stokastik untuk menentukan sinyal pembalikan harga. logika spesifik adalah:
Jika harga penutupan naik selama dua hari berturut-turut, dan garis Slow K 9 hari lebih rendah dari 50, pergi panjang; Jika harga penutupan turun selama dua hari berturut-turut, dan garis Fast K 9 hari lebih tinggi dari 50, pergi pendek.
Sub-strategi kedua menggabungkan indikator volume perdagangan untuk menilai kekuatan momentum. Secara khusus, volume perdagangan saat ini dibandingkan dengan volume perdagangan rata-rata 40 hari. Jika volume perdagangan saat ini lebih besar dari rata-rata, itu dianggap sebagai volume agresif naik, yang termasuk sinyal pembalikan untuk pergi pendek. Jika volume perdagangan saat ini kurang dari rata-rata, itu dianggap sebagai volume turun, yang termasuk sinyal pembalikan untuk pergi panjang.
Sinyal perdagangan akhir adalah persimpangan sinyal dari dua sub-strategi. Artinya, posisi hanya akan dibuka ketika kedua sub-strategi memberikan sinyal secara bersamaan. Dengan menggunakan metode
Strategi ini dapat dioptimalkan lebih lanjut dalam aspek berikut:
Secara singkat, strategi ini didasarkan terutama pada pelacakan dua arah dan pembalikan harga, ditambah analisis momentum volume untuk meningkatkan kualitas sinyal dengan konfirmasi ganda. Dalam aplikasi aktual, pengujian dan optimalisasi lebih lanjut masih diperlukan, terutama untuk menjaga terhadap risiko stop loss dan manajemen modal, untuk mencegah penarikan yang berlebihan yang mengarah pada penghapusan.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 16/11/2020 // 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 // Volume and SMA // // 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 VSAVol(Length) => pos = 0.0 xSMA_vol = sma(volume, Length) pos := iff(volume > xSMA_vol, -1, iff(volume < xSMA_vol, 1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Volume SMA", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- Length_MAVol = input(40, minval=1) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posVSAVol = VSAVol(Length_MAVol) pos = iff(posReversal123 == 1 and posVSAVol == 1 , 1, iff(posReversal123 == -1 and posVSAVol == -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 )