Strategi osilasi acak

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

img

Gambaran umum

Strategi osilasi acak mengintegrasikan beberapa indikator teknis, termasuk Ichimoku Kinko Hyo, MACD dan Hull Moving Average, untuk membentuk sistem keputusan perdagangan yang sistematis.

Logika Strategi

Pertama, Tenkan-sen dan Kijun-sen dari Ichimoku Kinko Hyo diadopsi. Tenkan-Sen dihitung sebagai rata-rata tertinggi tertinggi dan terendah terendah selama 9 periode terakhir. Kijun-Sen adalah rata-rata tertinggi tertinggi dan terendah terendah selama 24 periode terakhir.

Kedua, indikator MACD dimasukkan sebagai indikator momentum tren-mengikuti penting. Ini menunjukkan hubungan antara dua EMA harga. Crossover dari MACD dan garis sinyalnya menghasilkan sinyal perdagangan.

Ketiga, Hull Moving Average diperkenalkan untuk memperbaiki masalah keterlambatan rata-rata bergerak dan meningkatkan sensitivitas untuk menangkap pembalikan harga.

Akhirnya, strategi menggabungkan semua indikator di atas untuk membentuk sistem perdagangan yang kuat.

Keuntungan

  • Diversifikasi melalui beberapa indikator mengurangi kegagalan titik tunggal.

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

  • Menurunkan sinyal palsu karena setiap sinyal diverifikasi oleh yang lain.

  • Meningkatkan efisiensi hanya dengan bertindak pada sinyal keyakinan tinggi.

  • Parameter yang dapat disesuaikan untuk menyesuaikan strategi dengan perubahan pasar.

  • Pengurangan keterlambatan dan respon lebih cepat dari Hull Moving Average.

Risiko

  • Risiko yang lebih tinggi di pasar bergelombang, bergelombang dengan peningkatan sinyal palsu.

  • Tidak efektif jika parameter indikator tidak dioptimalkan dengan benar.

  • Potensi kehilangan gerakan tren dengan fokus pada pembalikan.

  • Hull MA relatif baru dan belum terbukti dalam jangka panjang.

  • Perdagangan yang jarang dapat kehilangan beberapa kesempatan.

Peningkatan

  • Menambahkan lebih banyak indikator seperti Bollinger Bands bisa lebih mengoptimalkan sistem.

  • Pengaturan parameter untuk menemukan kombinasi optimal untuk aset dan kerangka waktu yang berbeda.

  • Memperkenalkan berhenti dinamis untuk mengendalikan kerugian perdagangan tunggal.

  • Masukkan filter tren untuk menghindari kehilangan tren.

  • Mengoptimalkan ukuran posisi dengan menyesuaikan frekuensi dan ukuran berdasarkan kondisi pasar.

Kesimpulan

Strategi osilasi acak menggabungkan beberapa teknik analisis teknis untuk menangkap peluang di pasar yang terikat kisaran. Ini menawarkan keuntungan dari integrasi indikator, mengurangi sinyal palsu dan meningkatkan efisiensi. Tapi juga membawa risiko yang melekat yang membutuhkan optimalisasi dan adaptasi lebih lanjut. Secara keseluruhan, ini merupakan pendekatan yang kuat dan praktis untuk perdagangan pasar osilasi.


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