Ichimoku Cloud dan MACD Momentum Riding adalah strategi mengikuti tren yang menggabungkan indikator Ichimoku Cloud dan indikator momentum MACD. Strategi ini menggunakan Ichimoku Cloud untuk menentukan arah tren dan level support/resistance, serta indikator MACD untuk mendeteksi pembalikan momentum, dan memasuki pasar dengan waktu selama tren. Sementara itu, strategi mengadopsi stop loss trailing untuk mengunci keuntungan dan mengurangi penarikan.
Awan Ichimoku terdiri dari Jalur Putar (Tenkan-Sen), Jalur Dasar (Kijun-Sen), Leading Span A (Senkou-Span A), Leading Span B (Senkou-Span B) dan Jalur Konfirmasi (Chikou-Span).
Divergensi Konvergensi Moving Average, atau MACD, adalah indikator momentum. Dalam strategi ini, ketika garis cepat MACD melintasi di atas garis lambat, itu adalah sinyal beli, dan ketika garis cepat melintasi di bawah garis lambat, itu adalah sinyal jual.
Ketika Turning Line melintasi di atas Base Line, Confirmation Line melintasi di atas harga penutupan 26 bar yang lalu, harga penutupan pecah di atas band atas Cloud, dan garis cepat MACD
Ketika harga naik 3%, strategi akan memindahkan stop loss ke 97% dari harga saat ini untuk mengunci keuntungan dan melacak pergerakan naik.
Ketika Turning Line melintasi di bawah Base Line, Confirmation Line melintasi di bawah harga penutupan 26 bar yang lalu, harga penutupan melintasi di bawah band bawah Cloud, dan garis cepat MACD
Ketika harga turun 3%, strategi akan memindahkan stop loss ke 103% dari harga saat ini untuk mengunci keuntungan dan mengikuti pergerakan ke bawah.
Strategi ini menggabungkan identifikasi tren dan waktu masuk, yang dapat mencapai pengembalian yang baik selama pasar tren.
Ichimoku Cloud dapat dengan jelas mengidentifikasi arah tren. Strategi hanya masuk sejajar dengan arah Cloud, menghindari perdagangan kontra-tren.
MACD efektif dalam mendeteksi pembalikan momentum jangka pendek.
Trailing stop loss memungkinkan strategi untuk terus berjalan selama tren. ukuran posisi yang tepat memastikan risiko terkontrol per perdagangan.
Ada juga risiko tertentu dengan strategi ini:
Awan membutuhkan periode pencarian yang relatif panjang dan dapat memberikan sinyal yang tidak akurat dalam jangka pendek.
MACD berosilasi dengan harga dan dapat menghasilkan sinyal palsu. Lebih banyak filter diperlukan untuk mengkonfirmasi sinyal.
Stop loss trailing hanya cocok untuk pasar tren. persentase stop loss perlu disesuaikan, jika tidak, whipsaws mungkin berhenti terlalu sering selama pasar range.
Strategi itu sendiri tidak mengelola risiko. Pengguna perlu menerapkan teknik manajemen risiko eksternal untuk mengendalikan kerugian.
Strategi Ichimoku Cloud dan MACD Momentum Riding dapat dioptimalkan dengan cara berikut:
Penyesuaian parameter - Sesuaikan garis belokan, periode pencarian garis dasar, optimalkan parameter MACD untuk sinyal yang lebih jelas.
Tambahkan penyaringan - Gunakan indikator lain seperti RSI, Bollinger Bands untuk menyaring sinyal buruk, mengurangi sinyal palsu.
Hal ini berarti bahwa nilai tukar rupiah yang dapat diukur dengan metode ini adalah nilai tukar rupiah.
Menggabungkan ukuran posisi - Batas kerugian maksimum per perdagangan untuk mengontrol penarikan keseluruhan.
Otomatis memilih kontrak & rebalancing - Memperluas kemampuan beradaptasi ke lebih banyak pasar.
Strategi Ichimoku Cloud dan MACD Momentum Riding mempertimbangkan tren dan waktu, yang dapat mencapai pengembalian yang baik ketika parameter disetel dengan benar dan kontrol risiko ada.
/*backtest start: 2022-11-21 00:00:00 end: 2023-11-03 05:20:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('Ichimoku Cloud with MACD and Trailing Stop Loss', overlay=true, initial_capital=1000, process_orders_on_close=true, default_qty_type=strategy.percent_of_equity, default_qty_value=30, commission_type=strategy.commission.percent, commission_value=0.1) showDate = input(defval=true, title='Show Date Range') timePeriod = time >= timestamp(syminfo.timezone, 2022, 6, 1, 0, 0) // Inputs ts_bars = input.int(9, minval=1, title='Tenkan-Sen Bars') ks_bars = input.int(26, minval=1, title='Kijun-Sen Bars') ssb_bars = input.int(52, minval=1, title='Senkou-Span B Bars') cs_offset = input.int(26, minval=1, title='Chikou-Span Offset') ss_offset = input.int(26, minval=1, title='Senkou-Span Offset') long_entry = input(true, title='Long Entry') short_entry = input(true, title='Short Entry') middle(len) => math.avg(ta.lowest(len), ta.highest(len)) // Ichimoku Components tenkan = middle(ts_bars) kijun = middle(ks_bars) senkouA = math.avg(tenkan, kijun) senkouB = middle(ssb_bars) // Plot Ichimoku Kinko Hyo plot(tenkan, color=color.new(#0496ff, 0), title='Tenkan-Sen') plot(kijun, color=color.new(#991515, 0), title='Kijun-Sen') plot(close, offset=-cs_offset + 1, color=color.new(#459915, 0), title='Chikou-Span') sa = plot(senkouA, offset=ss_offset - 1, color=color.new(color.green, 0), title='Senkou-Span A') sb = plot(senkouB, offset=ss_offset - 1, color=color.new(color.red, 0), title='Senkou-Span B') fill(sa, sb, color=senkouA > senkouB ? color.green : color.red, title='Cloud color', transp=90) ss_high = math.max(senkouA[ss_offset - 1], senkouB[ss_offset - 1]) ss_low = math.min(senkouA[ss_offset - 1], senkouB[ss_offset - 1]) // MACD [macd, macd_signal, macd_histogram] = ta.macd(close, 12, 26, 9) // Entry/Exit Signals tk_cross_bull = tenkan > kijun tk_cross_bear = tenkan < kijun cs_cross_bull = ta.mom(close, cs_offset - 1) > 0 cs_cross_bear = ta.mom(close, cs_offset - 1) < 0 price_above_kumo = close > ss_high price_below_kumo = close < ss_low bullish = tk_cross_bull and cs_cross_bull and price_above_kumo and ta.crossover(macd, macd_signal) bearish = tk_cross_bear and cs_cross_bear and price_below_kumo and ta.crossunder(macd, macd_signal) // Configure trail stop level with input options longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01 shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01 // Determine trail stop loss prices longStopPrice = 0.0 shortStopPrice = 0.0 longStopPrice := if strategy.position_size > 0 stopValue = close * (1 - longTrailPerc) math.max(stopValue, longStopPrice[1]) else 0 shortStopPrice := if strategy.position_size < 0 stopValue = close * (1 + shortTrailPerc) math.min(stopValue, shortStopPrice[1]) else 999999 strategy.entry('Long', strategy.long, when=bullish and long_entry and timePeriod) strategy.exit('Exit', stop = longStopPrice, limit = shortStopPrice) //strategy.close('Long', when=bearish and not short_entry) //strategy.entry('Short', strategy.short, when=bearish and short_entry and timePeriod) //strategy.close('Short', when=bullish and not long_entry)