
Strategi ini menggunakan mekanisme pelacakan dua arah, yang menggabungkan sinyal reversal harga dan indikator volume transaksi, untuk mencapai perdagangan kuantitatif otomatis. Keuntungan terbesarnya adalah kontrol risiko yang andal, dengan melacak stop loss untuk mengunci keuntungan, menghindari perluasan kerugian.
Strategi ini terdiri dari dua substrategi. Substrategi pertama menggunakan indikator acak untuk menentukan sinyal reversal harga. Logika spesifiknya adalah:
Jika harga close-out naik dua hari berturut-turut, dan pada hari ke-9 garis Slow K di bawah 50, Anda akan melakukan lebih banyak; jika harga close-out turun dua hari berturut-turut, dan pada hari ke-9 garis Fast K di atas 50, Anda akan melakukan kosong.
Sub-strategi kedua adalah menggabungkan indikator volume transaksi, kekuatan penilaian. Secara khusus, adalah membandingkan volume transaksi saat ini dengan rata-rata volume transaksi 40 hari. Jika volume transaksi saat ini lebih besar dari rata-rata, dianggap sebagai jumlah yang dapat menyerang, termasuk sinyal pembalikan, kosong; Jika volume transaksi saat ini lebih kecil dari rata-rata, dianggap sebagai jumlah yang dapat turun, termasuk sinyal pembalikan, lakukan lebih banyak.
Sinyal transaksi akhir, adalah persimpangan dari dua sinyal substrategi di atas. Dengan metode penyaringan Intersection Targets ini, dapat disaring sebagian dari transaksi bising dan meningkatkan kualitas sinyal.
Ada beberapa hal yang bisa dioptimalkan:
Secara keseluruhan, strategi ini menggunakan pelacakan dua arah dan pembalikan harga sebagai logika perdagangan utama, ditambah dengan penilaian kuantitatif, untuk meningkatkan kualitas sinyal melalui double confirmation. Dalam aplikasi praktis, masih perlu pengujian dan optimalisasi lebih lanjut, terutama untuk mencegah risiko dalam hal penghentian kerugian dan manajemen dana, untuk mencegah penarikan balik yang menyebabkan kebangkrutan. Namun, secara keseluruhan, strategi ini menggunakan berbagai teknik perdagangan kuantitatif, ide yang jelas, dan layak untuk diteliti secara mendalam.
/*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 )