Strategi ini adalah untuk menggabungkan 123 bentuk reversal dan MACD indikator untuk mencapai sinyal perdagangan yang lebih kuat filtrasi. Di mana 123 bentuk reversal menangkap kesempatan reversal jangka pendek, dan MACD memberikan penilaian tren jangka panjang. Kombinasi sinyal dapat secara efektif menemukan titik perdagangan probabilitas tinggi.
Strategi pembalikan bentuk 123, menilai penurunan dua hari sebelumnya dan kenaikan harga penutupan hari ini, dan membeli saat indikator Stochastic di bawah penurunan; kenaikan dua hari hari ini turun, Stochastic di atas penurunan harga dijual.
Strategi indikator MACD, lakukan lebih banyak ketika garis cepat lebih tinggi dari garis lambat, dan kosongkan ketika garis cepat lebih rendah dari garis lambat.
Perdagangan dilakukan hanya jika dua sinyal strategi sesuai, atau tidak diperdagangkan. Perdagangan dapat beralih ke posisi terbalik.
Strategi ini memiliki beberapa keuntungan utama:
Sinyal kombinasi dapat memfilter penembusan palsu secara efektif, meningkatkan tingkat kemenangan.
Bentuk 123 dapat menangkap peluang pembalikan jangka pendek, MACD menilai arah tren garis tengah-panjang.
Indikator Stochastic yang digabungkan dengan bentuk 123 dapat menghindari perdagangan berlebihan setelah pembalikan tren.
Kedua strategi berbagi tugas perdagangan yang berbeda dan dapat saling diverifikasi, mengurangi risiko strategi tunggal yang terlalu dioptimalkan.
Dapat beralih ke berbagai arah, dapat disesuaikan dengan berbagai lingkungan pasar.
Risiko utama dari strategi ini adalah:
Sinyal kombinasi terlalu konservatif, dan bisa saja melewatkan peluang yang lebih baik.
Reversal mode rentan terhadap kejadian tak terduga, yang menyebabkan kegagalan.
Tidak mempertimbangkan mekanisme penghentian kerugian, ada risiko kerugian besar.
Sinyal filter ganda mungkin melewatkan peluang tren.
Parameter tidak dioptimalkan, parameter default tidak selalu cocok untuk semua varietas.
Hal ini dapat dioptimalkan dengan:
Uji kombinasi parameter yang berbeda untuk mencari parameter yang optimal.
Meningkatkan strategi stop loss dan mengendalikan kerugian tunggal.
Menambahkan lebih banyak filter untuk meningkatkan kualitas sinyal.
Menambahkan model pembelajaran mesin untuk mengoptimalkan parameter secara otomatis.
Untuk mengevaluasi stabilitas strategi, uji coba dilakukan pada lebih banyak varietas perdagangan.
Kombinasi parameter switching berdasarkan kondisi pasar.
Secara keseluruhan, strategi ini dapat menghindari masalah overoptimisasi strategi tunggal dengan menggabungkan sinyal ganda. Dengan menambahkan lebih banyak indikator penyaringan, mekanisme penghentian kerugian, dan perbaikan lainnya, dapat menjadi strategi perdagangan kuantitatif yang lebih kuat dan praktis.
/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-14 02:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 24/07/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
// This is one of the techniques described by William Blau in his book
// "Momentum, Direction and Divergence" (1995). If you like to learn more,
// we advise you to read this book. His book focuses on three key aspects
// of trading: momentum, direction and divergence. Blau, who was an electrical
// engineer before becoming a trader, thoroughly examines the relationship
// between price and momentum in step-by-step examples. From this grounding,
// he then looks at the deficiencies in other oscillators and introduces some
// innovative techniques, including a fresh twist on Stochastics. On directional
// issues, he analyzes the intricacies of ADX and offers a unique approach to help
// define trending and non-trending periods.
// Blau`s indicator is like usual MACD, but it plots opposite of meaningof
// stndard MACD indicator.
//
// 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
fADX(Len) =>
up = change(high)
down = -change(low)
trur = rma(tr, Len)
plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, Len) / trur)
minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, Len) / trur)
sum = plus + minus
100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), Len)
EMACD(r,SmthLen,LengthMACD) =>
pos = 0
source = close
fastMA = ema(source, r)
slowMA = ema(source, LengthMACD)
xmacd = fastMA - slowMA
xMA_MACD = ema(xmacd, SmthLen)
pos := iff(xmacd < xMA_MACD, -1,
iff(xmacd > xMA_MACD, 1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Ergodic MACD", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
r = input(14, minval=1)
LengthMACD = input(21, minval=1)
SmthLen = input(5, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posEMACD = EMACD(r,SmthLen,LengthMACD)
pos = iff(posReversal123 == 1 and posEMACD == 1 , 1,
iff(posReversal123 == -1 and posEMACD == -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 )