
Strategi ini menggabungkan strategi perdagangan pembalikan bentuk 123 yang dikemukakan oleh Wolf Jansen dalam bukunya dengan pendayung rata-rata bergerak bertimbangan (KST) yang dikemukakan oleh Martin Prink untuk membina strategi kuantitatif yang menghasilkan isyarat perdagangan yang menggunakan pembalikan bentuk dan indikator goyah trend.
Logik utama bagi bahagian strategi ini adalah untuk memantau sama ada harga penutupan saham telah berubah dalam tempoh 2 hari yang lalu, iaitu:
Jika harga penutupan 2 hari terakhir berada dalam trend menurun, iaitu harga penutupan hari sebelumnya lebih tinggi daripada harga penutupan 2 hari sebelumnya; dan harga penutupan hari ini berbalik naik berbanding hari sebelumnya, iaitu lebih tinggi daripada harga penutupan hari sebelumnya, maka bolehlah dipastikan terbalik bawah, menghasilkan isyarat beli.
Sebaliknya, jika harga penutupan dalam 2 hari kebelakangan ini berada dalam trend menaik, iaitu harga penutupan hari sebelumnya adalah lebih rendah daripada 2 hari sebelumnya; dan hari ini harga penutupan berbalik turun berbanding hari sebelumnya, iaitu lebih rendah daripada harga penutupan hari sebelumnya, maka ia boleh dinilai sebagai terbalik teratas, menghasilkan isyarat menjual.
Bahagian strategi ini juga menggabungkan indikator Stochastic untuk menentukan sama ada terlalu banyak membeli atau terlalu banyak menjual, menapis isyarat perdagangan pada titik waktu yang tidak berbalik.
ROC dalam penunjuk KST mewakili kadar perubahan harga, yang dikira ROC 6 hari, 10 hari, 15 hari dan 20 hari, dan setelah rata-rata bergerak yang dihaluskan dengan parameter yang berbeza, penjumlahan berat, membentuk penunjuk KST.
Di sini, garis pantas adalah nilai KST asal, dan garis perlahan adalah purata bergerak KST.
Strategi ini menggunakan KST>0 untuk penilaian bullish dan KST untuk penilaian bearish.
Gabungkan strategi pembalikan bentuk 123 dengan isyarat Judgment untuk indikator KST:
Seperti yang dapat dilihat, strategi ini menggunakan gabungan reversal dan indikator untuk menilai dua jenis indikator teknikal yang berbeza, dan menggabungkan kekuatan isyarat mereka untuk merancang strategi perdagangan kuantitatif yang lebih maju.
Risiko boleh dikawal dengan cara seperti menyesuaikan parameter, mengoptimumkan logik penghakiman terbalik, memperkenalkan mekanisme hentikan kerugian.
Strategi ini mengintegrasikan penggunaan pelbagai jenis penunjuk teknikal, dengan pengesahan ganda dan pengoptimuman kombinasi, dirancang secara saintifik untuk menghasilkan strategi perdagangan kuantitatif yang lebih kuat, yang boleh dikatakan sebagai contoh strategi gabungan. Kinerja nyata masih perlu disahkan lebih lanjut, tetapi dari segi teori, ia mempertimbangkan pelbagai senario secara menyeluruh, menyelesaikan batasan satu penunjuk, dan layak untuk penyelidikan dan aplikasi lebih lanjut.
/*backtest
start: 2023-10-22 00:00:00
end: 2023-11-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 23/03/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
// This indicator really is the KST indicator presented by Martin Pring.
// the KST indicator is a weighted summed rate of change oscillator that
// is designed to identify meaningful turns. Various smoothed rate of change
// indicators can be combined to form different measurements of cycles.
//
// 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
MROC() =>
pos = 0.0
xROC6 = sma(roc(close, 6), 10)
xROC10 = sma(roc(close, 10), 10)
xROC15 = sma(roc(close, 15), 9)
xROC20 = sma(roc(close, 20), 15)
nRes = xROC6 + (2 * xROC10) + (3 * xROC15) + (4 * xROC20)
pos := iff(nRes > 0, 1,
iff(nRes < 0, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & MovROC (KST indicator)", 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)
//-------------------------
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMROC = MROC()
pos = iff(posReversal123 == 1 and posMROC == 1 , 1,
iff(posReversal123 == -1 and posMROC == -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 )