
Strategi ini menggabungkan dua petunjuk teknikal Hull Moving Average ((HMA) yang diubahsuai dan Keseimbangan Pertama ((Ichimoku Kinko Hyo) untuk menangkap trend jangka menengah dan panjang di pasaran. Idea utama strategi ini adalah menggunakan isyarat silang HMA dengan garis asas dalam Keseimbangan Pertama ((Kijun Sen), sambil menggabungkan awan Keseimbangan Pertama ((Kumo) sebagai syarat penapis, untuk menilai arah trend pasaran dan melakukan perdagangan.
Strategi ini, dengan menggabungkan Hull Moving Average yang disesuaikan dan keseimbangan pertama, membina sistem perdagangan trend yang agak stabil. Logik strategi jelas, mudah dilaksanakan, tetapi juga mempunyai kelebihan tertentu. Namun, prestasi strategi masih dipengaruhi oleh keadaan pasaran dan parameter yang ditetapkan, yang memerlukan pengoptimuman dan penambahbaikan lebih lanjut.
/*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")