Strategi Guncangan Rawak

Penulis:ChaoZhang, Tarikh: 2023-11-06 09:30:27
Tag:

img

Ringkasan

Strategi Osilasi Rawak mengintegrasikan pelbagai penunjuk teknikal, termasuk Ichimoku Kinko Hyo, MACD dan Purata Bergerak Hull, untuk membentuk sistem keputusan perdagangan yang sistematik.

Logika Strategi

Pertama, Tenkan-sen dan Kijun-sen Ichimoku Kinko Hyo diadopsi. Tenkan-Sen dikira sebagai purata tertinggi tertinggi dan terendah terendah selama 9 tempoh yang lalu. Kijun-Sen adalah purata tertinggi tertinggi dan terendah terendah selama 24 tempoh yang lalu. persilangan harga dan Kijun-sen bertindak sebagai isyarat perdagangan.

Kedua, penunjuk MACD dimasukkan sebagai penunjuk momentum trend yang penting. Ia menunjukkan hubungan antara dua EMA harga. Persalinan MACD dan garis isyaratnya menghasilkan isyarat perdagangan.

Ketiga, Hull Moving Average diperkenalkan untuk memperbaiki isu yang tertinggal dari purata bergerak dan meningkatkan kepekaan untuk menangkap pembalikan harga. Ia dikira menggunakan WMA separuh, penuh dan akar persegi. Persalinan antara Hull MA yang cepat dan perlahan juga bertindak sebagai isyarat tambahan.

Akhirnya, strategi menggabungkan semua penunjuk di atas untuk membentuk sistem dagangan yang kukuh.

Kelebihan

  • Diversifikasi melalui pelbagai penunjuk mengurangkan kegagalan titik tunggal.

  • Integrasi memberikan kuasa keputusan yang lebih kuat melalui model holistik.

  • Menurunkan isyarat palsu kerana setiap isyarat disahkan oleh yang lain.

  • Meningkatkan kecekapan dengan hanya bertindak pada isyarat keyakinan yang tinggi.

  • Parameter yang boleh disesuaikan untuk menyesuaikan strategi dengan pasaran yang berubah.

  • Pengurangan kelewatan dan tindak balas yang lebih cepat dari Hull Moving Average.

Risiko

  • Risiko yang lebih tinggi dalam pasaran yang bergelora dengan peningkatan isyarat palsu.

  • Tidak berkesan jika parameter penunjuk tidak dioptimumkan dengan betul.

  • Mampu terlepas pergerakan trend dengan memberi tumpuan kepada pembalikan.

  • Hull MA agak baru dan tidak terbukti dalam jangka panjang.

  • Perdagangan yang jarang berlaku boleh kehilangan beberapa peluang.

Peningkatan

  • Menambah lebih banyak penunjuk seperti Bollinger Bands boleh mengoptimumkan sistem lebih lanjut.

  • Penyesuaian parameter untuk mencari kombinasi optimum untuk aset dan jangka masa yang berbeza.

  • Memperkenalkan berhenti dinamik untuk mengawal kerugian perdagangan tunggal.

  • Masukkan penapis trend untuk mengelakkan kehilangan perjalanan trend.

  • Mengoptimumkan saiz kedudukan dengan menyesuaikan kekerapan dan saiz berdasarkan keadaan pasaran.

Kesimpulan

Strategy Osilasi Random menggabungkan pelbagai teknik analisis teknikal untuk menangkap peluang di pasaran terhad julat. Ia menawarkan kelebihan integrasi penunjuk, mengurangkan isyarat palsu dan meningkatkan kecekapan. Tetapi ia juga membawa risiko yang melekat yang memerlukan pengoptimuman dan penyesuaian lebih lanjut. Secara keseluruhan, ia mewakili pendekatan yang kukuh dan praktikal untuk berdagang pasaran berayun.


/*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)

Lebih lanjut