Strategi ini menggabungkan dua indikator teknis: Hull Moving Average (HMA) yang dimodifikasi dan Ichimoku Kinko Hyo (IKHS), yang bertujuan untuk menangkap tren pasar jangka menengah hingga panjang.
Dengan menggabungkan Hull Moving Average yang dimodifikasi dan Ichimoku Kinko Hyo, strategi ini membangun sistem perdagangan yang mengikuti tren yang relatif stabil. Logika strategi jelas dan mudah diterapkan, sementara juga memiliki keuntungan tertentu. Namun, kinerja strategi masih dipengaruhi oleh kondisi pasar dan pengaturan parameter, yang membutuhkan optimasi dan perbaikan lebih lanjut. Dalam aplikasi praktis, perlu melakukan penyesuaian dan manajemen yang sesuai berdasarkan karakteristik pasar tertentu dan preferensi risiko untuk mendapatkan hasil perdagangan yang lebih baik.
/*backtest start: 2024-04-20 00:00:00 end: 2024-04-27 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Hull MA_X + Ichimoku Kinko Hyo Strategy", shorttitle="HMX+IKHS", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=0) // Hull Moving Average Parameters keh = input(12, title="Double HullMA") n2ma = 2 * wma(close, round(keh/2)) - wma(close, keh) sqn = round(sqrt(keh)) hullMA = wma(n2ma, sqn) // Ichimoku Kinko Hyo Parameters tenkanSenPeriods = input(9, title="Tenkan Sen Periods") kijunSenPeriods = input(26, title="Kijun Sen Periods") senkouSpanBPeriods = input(52, title="Senkou Span B Periods") displacement = input(26, title="Displacement") // Ichimoku Calculations highestHigh = highest(high, max(tenkanSenPeriods, kijunSenPeriods)) lowestLow = lowest(low, max(tenkanSenPeriods, kijunSenPeriods)) tenkanSen = (highest(high, tenkanSenPeriods) + lowest(low, tenkanSenPeriods)) / 2 kijunSen = (highestHigh + lowestLow) / 2 senkouSpanA = ((tenkanSen + kijunSen) / 2) senkouSpanB = (highest(high, senkouSpanBPeriods) + lowest(low, senkouSpanBPeriods)) / 2 // Plot Ichimoku p1 = plot(tenkanSen, color=color.blue, title="Tenkan Sen") p2 = plot(kijunSen, color=color.red, title="Kijun Sen") p3 = plot(senkouSpanA, color=color.green, title="Senkou Span A", offset=displacement) p4 = plot(senkouSpanB, color=color.orange, title="Senkou Span B", offset=displacement) fill(p3, p4, color=color.gray, title="Kumo Shadow") // Trading Logic longCondition = crossover(hullMA, kijunSen) and close > senkouSpanA[displacement] and close > senkouSpanB[displacement] shortCondition = crossunder(hullMA, kijunSen) and close < senkouSpanA[displacement] and close < senkouSpanB[displacement] // Strategy Execution if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // Exit Logic - Exit if HullMA crosses KijunSen in the opposite direction exitLongCondition = crossunder(hullMA, kijunSen) exitShortCondition = crossover(hullMA, kijunSen) if (exitLongCondition) strategy.close("Long") if (exitShortCondition) strategy.close("Short")