
Strategi goyah rawak menggunakan pelbagai petunjuk teknikal seperti persilangan garis rata-rata, penunjuk MACD dan purata bergerak Hull untuk membentuk sistem keputusan perdagangan yang lebih saintifik dan sistematik. Strategi ini berusaha untuk menangkap titik peralihan trend dalam keadaan goyah untuk mencari dan menangkap peluang berpotensi dalam keadaan.
Pertama, strategi ini menggunakan indikator garis belokan dan garis rujukan yang dihantar secara serentak. Di mana garis belokan adalah purata harga tertinggi dan terendah dalam tempoh 9 kitaran, dan garis rujukan adalah purata harga tertinggi dan terendah dalam tempoh 24 kitaran. Apabila harga melintasi dari bawah garis rujukan, ia adalah isyarat membeli; apabila ia melintasi dari atas garis rujukan, ia adalah isyarat menjual.
Kedua, MACD sebagai satu petunjuk trend yang penting, juga digunakan oleh strategi tersebut. MACD dikira dengan mengira perbezaan antara jangka pendek (12 hari) dan jangka panjang (24 hari) dan kemudian mengira garis isyarat (9 hari). Apabila MACD melintasi garis isyarat dari bawah ke atas, ia memberi isyarat membeli; apabila ia melintasi garis isyarat dari atas ke bawah, ia memberi isyarat menjual.
Selain itu, Hull Moving Average telah diperkenalkan dalam strategi ini untuk mengurangkan keterlambatan purata bergerak dan meningkatkan kepekaan kepada isyarat perubahan harga. Kaedah pengiraan adalah: dengan WMA separuh kitaran kalikan dengan 2, tolak WMA kitaran penuh, dan kemudian mengira WMA kitaran terbuka.
Akhirnya, strategi ini mengintegrasikan hasil daripada pelbagai petunjuk di atas, membentuk sistem keputusan perdagangan yang lebih dipercayai. Operasi membeli dan menjual yang sebenarnya akan berlaku apabila beberapa petunjuk seperti MACD dan Hull MA menghantar isyarat yang sama.
Kombinasi pelbagai indikator, penggunaan gabungan satu senter, MACD dan tiga indikator Hull MA, membentuk kekuatan keputusan yang lebih kuat.
Mengurangkan isyarat palsu, pengesahan antara pelbagai petunjuk dapat dilakukan, mengurangkan kebarangkalian salah penilaian satu petunjuk.
Meningkatkan kecekapan operasi, hanya berniaga apabila beberapa petunjuk adalah sama, dan mengelakkan perdagangan yang kerap.
Parameter yang boleh disesuaikan, parameter penunjuk boleh disesuaikan mengikut pasaran, meningkatkan fleksibiliti strategi.
Hull MA meningkatkan pengiraan purata bergerak untuk menangkap perubahan harga lebih awal.
Dalam kes ini, terdapat risiko besar untuk berlaku peperangan bercampur-campur di udara, yang boleh menyebabkan isyarat yang salah.
Penetapan parameter penunjuk yang tidak betul juga boleh menjejaskan prestasi strategi.
Jika anda terlalu banyak memberi perhatian kepada isyarat penukaran, anda mungkin akan terlepas trend.
Hull MA adalah penunjuk baru, dan keberkesanan jangka panjangnya masih belum disahkan.
Ia mungkin kurang kerap dan tidak dapat memanfaatkan peluang yang ada.
Anda boleh menguji penambahan indikator lain, seperti Bollinger Bands, untuk mengoptimumkan lagi sistem keputusan.
Anda boleh menyesuaikan parameter penunjuk untuk mencari kombinasi parameter terbaik.
Pelanggaran boleh diperkenalkan untuk mengawal kerugian tunggal.
Anda boleh menggunakan indikator untuk menilai trend dan mengelakkan kehilangan peluang trend.
Mengoptimumkan pengurusan kedudukan, menyesuaikan frekuensi perdagangan dan kedudukan di pasaran yang berbeza.
Strategi goyah rawak menggunakan pelbagai indikator dan kaedah analisis teknikal untuk mencari peluang perdagangan dalam keadaan goyah. Ia mempunyai kelebihan kombinasi indikator, mengurangkan isyarat palsu, meningkatkan kecekapan operasi, dan lain-lain. Tetapi terdapat juga risiko tertentu, yang memerlukan ujian dan pengoptimuman lanjut untuk menyesuaikan diri dengan keadaan pasaran yang lebih luas, untuk mencari keseimbangan terbaik antara risiko dan keuntungan.
/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Ichimoku Kinko Hyo + HULL-MA_X + MacD", shorttitle="@m", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=1000, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)
keh=input(title="Double HullMA",defval=12, minval=1)
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(close[1],round(keh/2))
nma1=wma(close[1],keh)
diff1=n2ma1-nma1
sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
b=n1>n2?lime:red
c=n1>n2?green:red
d=n1>n2?red:green
TenkanSenPeriods = input(9, minval=1, title="Tenkan Sen Periods")
KijunSenPeriods = input(24, minval=1, title="Kijun Sen Periods")
SenkouSpanBPeriods = input(51, minval=1, title="Senkou Span B Periods")
displacement = input(24, minval=1, title="Displacement")
donchian(len) => avg(lowest(len), highest(len))
TenkanSen = donchian(TenkanSenPeriods)
KijunSen = donchian(KijunSenPeriods)
SenkouSpanA = avg(TenkanSen, KijunSen)
SenkouSpanB = donchian(SenkouSpanBPeriods)
LS=close, offset = -displacement
MACD_Length = input(9)
MACD_fastLength = input(12)
MACD_slowLength = input(24)
MACD = ema(close, MACD_fastLength) - ema(close, MACD_slowLength)
aMACD = ema(MACD, MACD_Length)
a1=plot(n1,color=c)
a2=plot(n2,color=c)
plot(cross(n1, n2) ? n1 : na, style = circles, color=b, linewidth = 4)
plot(cross(n1, n2) ? n1 : na, style = line, color=d, linewidth = 3)
plot(TenkanSen, color=blue, title="Tenkan Sen", linewidth = 2)
plot(KijunSen, color=maroon, title="Kijun Sen", linewidth = 3)
plot(close, offset = -displacement, color=orange, title="Chikou Span", linewidth = 2)
p1=plot (SenkouSpanA, offset = displacement, color=green, title="Senkou Span A", linewidth = 2)
p2=plot (SenkouSpanB, offset = displacement, color=red, title="Senkou Span B", linewidth = 3)
fill(p1, p2, color = SenkouSpanA > SenkouSpanB ? green : red)
closelong = n1<n2 and close<n2 and (MACD<aMACD or TenkanSen<KijunSen or close<KijunSen)
if (closelong)
strategy.close("Long")
closeshort = n1>n2 and close>n2 and (MACD>aMACD or TenkanSen>KijunSen or close>KijunSen)
if (closeshort)
strategy.close("Short")
longCondition = n1>n2 and close>n2 and MACD>aMACD and (TenkanSen>KijunSen or close>KijunSen)
if (longCondition)
strategy.entry("Long",strategy.long)
shortCondition = n1<n2 and close<n2 and MACD<aMACD and (TenkanSen<KijunSen or close<KijunSen)
if (shortCondition)
strategy.entry("Short",strategy.short)