
Strategi ini menggunakan mekanisme pengesanan dua hala, menggabungkan isyarat pulangan harga dan petunjuk jumlah transaksi, untuk mencapai perdagangan kuantitatif automatik. Kelebihannya yang terbesar adalah kawalan risiko yang boleh dipercayai, dengan mengesan henti kerugian untuk mengunci keuntungan, dan mengelakkan kerugian berkembang. Pada masa yang sama, isyarat perdagangan pulangan meningkatkan kemenangan strategi.
Strategi ini terdiri daripada dua substrategi. Substrategi pertama menggunakan indikator rawak untuk menentukan isyarat pembalikan harga, dengan logik khusus:
Jika harga penutupan meningkat dua hari berturut-turut dan pada hari ke-9 garis Slow K adalah di bawah 50, buat lebih banyak; jika harga penutupan jatuh dua hari berturut-turut dan pada hari ke-9 garis Fast K adalah di atas 50, buat kosong.
Substrategi kedua adalah menggabungkan penunjuk kuantiti urus niaga, kelemahan penghakiman. Secara khusus, adalah membandingkan jumlah urus niaga semasa dengan nilai purata jumlah urus niaga 40 hari. Jika jumlah urus niaga semasa lebih besar daripada nilai purata, dianggap sebagai jumlah yang boleh menyerang, termasuk isyarat pembalikan, kosong; Jika jumlah urus niaga semasa kurang dari nilai purata, dianggap sebagai jumlah yang boleh turun, termasuk isyarat pembalikan, lakukan lebih banyak.
Isyarat perdagangan akhir, adalah persimpangan dua isyarat substrategi di atas. Iaitu, apabila kedua-dua strategi mengeluarkan isyarat pada masa yang sama, maka ia akan membuka kedudukan. Dengan kaedah penyaringan Intersection Targets ini, anda boleh menyaring sebahagian daripada bising perdagangan dan meningkatkan kualiti isyarat.
Ia boleh dioptimumkan dengan cara berikut:
Secara keseluruhan, strategi ini menggunakan pengesanan dua arah dan pembalikan harga sebagai logik perdagangan utama, dan penilaian kuantitatif untuk meningkatkan kualiti isyarat melalui pengesahan ganda. Dalam aplikasi praktikal, masih memerlukan ujian dan pengoptimuman lanjut, terutama untuk melindungi risiko dalam halangan kerugian dan pengurusan wang, untuk mencegah penarikan balik yang menyebabkan kebangkrutan. Tetapi secara keseluruhannya, strategi ini menggunakan pelbagai teknik perdagangan kuantitatif, pemikiran yang jelas, dan patut dikaji 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 )