Strategi ini menggabungkan indikator Ichimoku dan MACD, memasuki perdagangan setelah mengkonfirmasi pembalikan tren.
Menghitung Ichimoku Tenkan garis untuk mengukur arah tren. Harga di atasnya menunjukkan uptrend, dan di bawah downtrend.
MACD death cross menghasilkan sinyal jual dalam tren naik; golden cross sinyal beli dalam tren turun.
Gabungkan bias tren Ichimoku dan sinyal pembalikan MACD untuk membalikkan tren perdagangan.
Pilihan untuk mengatur kontrol waktu perdagangan, seperti tidak ada perdagangan di malam hari atau akhir pekan, untuk menghindari risiko yang terkait dengan waktu tertentu.
Menggunakan stop loss yang tepat dan mengambil keuntungan untuk kunci keuntungan dan pengendalian risiko.
Ichimoku secara intuitif menampilkan tren dan level support/resistance.
MACD secara sensitif menangkap pembalikan tren.
Menggabungkan bias tren dan pembalikan meningkatkan kualitas sinyal.
Jam perdagangan yang dapat disesuaikan menghindari risiko seputar peristiwa berita utama.
Stop loss and take profit secara efektif mengelola risiko modal.
Ichimoku dan MACD mungkin menghasilkan sinyal palsu.
Kekuatan pembalikan tidak diketahui, risiko mengejar atas dan bawah.
Kontrol jam perdagangan mungkin kehilangan beberapa kesempatan.
Pengaturan stop loss dan take profit yang tidak tepat menyebabkan keluarnya sebelum waktunya.
Optimasi parameter dapat menyebabkan overfit.
Uji parameter Ichimoku dan MACD untuk kombinasi optimal.
Tambahkan indikator lain untuk mengkonfirmasi sinyal perdagangan.
Mengoptimalkan berhenti dan keuntungan untuk menyeimbangkan risiko dan pengembalian.
Evaluasi perlunya kontrol jam perdagangan dan rileks jika perlu.
Masukkan filter tren untuk menghindari kerugian dari perdagangan pembalikan.
Penelitian cara untuk mengukur kekuatan pembalikan dan potensi tinggi pullback.
Strategi ini menggabungkan bias tren Ichimoku dan sinyal pembalikan MACD untuk perdagangan setelah pembalikan tren. Optimasi dan peningkatan lebih lanjut dapat mengurangi kesalahan sinyal dan meningkatkan stabilitas dan efisiensi sebagai sistem pembalikan tren yang kuat.
/*backtest start: 2022-09-13 00:00:00 end: 2023-09-19 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Revazi //@version=5 strategy("The Impeccable by zyberal", overlay = true) // Inputs { // Strategy variables IchimokuTenkanPeriod = input(9) IchimokuKijunPeriod = input(190) IchimokuSenkouPeriod = input(52) MACDMainFast = input(3) MACDMainSlow = input(10) MACDMainSmooth = input(9) ExitAfterBars = input(2) ProfitTarget = input(135) StopLoss = input(70) // Trading Options DontTradeOnWeekends = input(true) ExitAtEndOfDay = input(true) DayExitTimeHour = input(23) DayExitTimeMinute = input(04) ExitOnFriday = input(true) FridayExitTimeHour = input(20) FridayExitTimeMinute = input(40) // } // TRADING OPTIONS LOGIC { OpenOrdersAllowed = true // Dont trade on weekends { if DontTradeOnWeekends if dayofweek == dayofweek.saturday or dayofweek == dayofweek.sunday OpenOrdersAllowed := false // } // Exit on close (end of day) { if ExitAtEndOfDay if timeframe.isintraday and time >= timestamp(year(timenow), month(timenow), dayofmonth(timenow), DayExitTimeHour, DayExitTimeMinute) OpenOrdersAllowed := false // } // Exit on Friday { if ExitOnFriday if timeframe.isintraday and time >= timestamp(year(timenow), month(timenow), dayofmonth(timenow), FridayExitTimeHour, FridayExitTimeMinute) OpenOrdersAllowed := false // } // Rule: Trading signals { openW3 = request.security(syminfo.tickerid, "W", open)[3] middleDonchian(Length) => math.avg(ta.highest(Length), ta.lowest(Length)) Tenkan = middleDonchian(IchimokuTenkanPeriod)[2] [macdLine, signalLine, _] = ta.macd(close, MACDMainFast, MACDMainSlow, MACDMainSmooth) LongEntrySignal = openW3 > Tenkan and ta.crossunder(macdLine, signalLine)[3] //macdLine[3] < signalLine[3] ShortEntrySignal = openW3 < Tenkan and ta.crossover(macdLine, signalLine)[3] //macdLine[3] > signalLine[3] // } // Calculate conditions { IsFlat() => strategy.position_size == 0 IsLong() => strategy.position_size > 0 IsShort() => strategy.position_size < 0 longCondition = OpenOrdersAllowed and not IsLong() and LongEntrySignal shortCondition = OpenOrdersAllowed and not IsShort() and ShortEntrySignal // } // Open positions based on conditions { strategy.order(id = "buy", direction = strategy.long, qty = 1, when = longCondition) strategy.order(id = "sell", direction = strategy.short, qty = 1, when = shortCondition) // }