Strategi ini menggabungkan indikator Ichimoku dan MACD, memasuki perdagangan selepas mengesahkan pembalikan trend.
Mengira garisan Ichimoku Tenkan untuk mengukur arah trend. Harga di atasnya menunjukkan trend menaik, dan di bawah trend menurun.
MACD death cross menghasilkan isyarat jual dalam trend menaik; golden cross isyarat beli dalam trend menurun.
Gabungkan bias trend Ichimoku dan isyarat pembalikan MACD untuk menukar pembalikan trend.
Pilihan untuk menetapkan kawalan waktu dagangan, seperti tidak ada dagangan pada waktu malam atau hujung minggu, untuk mengelakkan risiko yang berkaitan dengan masa tertentu.
Menggunakan stop loss yang betul dan mengambil keuntungan untuk kunci keuntungan dan kawalan risiko.
Ichimoku secara intuitif memaparkan trend dan tahap sokongan / rintangan.
MACD secara sensitif menangkap pembalikan trend.
Menggabungkan bias trend dan pembalikan meningkatkan kualiti isyarat.
Waktu dagangan yang boleh disesuaikan mengelakkan risiko mengenai peristiwa berita utama.
Hentikan kerugian dan ambil keuntungan secara berkesan menguruskan risiko modal.
Ichimoku dan MACD mungkin menghasilkan isyarat palsu.
Kekuatan pembalikan tidak diketahui, risiko mengejar atas dan bawah.
Kawalan jam dagangan mungkin terlepas beberapa peluang.
Tetapan stop loss dan mengambil keuntungan yang tidak betul membawa kepada keluar awal.
Pengoptimuman parameter boleh membawa kepada pemasangan berlebihan.
Uji parameter Ichimoku dan MACD untuk kombinasi yang optimum.
Tambah penunjuk lain untuk mengesahkan isyarat perdagangan.
Mengoptimumkan berhenti dan keuntungan untuk mengimbangi risiko dan pulangan.
Menilai keperluan kawalan waktu dagangan dan santai jika perlu.
Masukkan penapis trend untuk mengelakkan kerugian daripada perdagangan pembalikan.
Penyelidikan cara untuk mengukur kekuatan pembalikan dan potensi ketinggian tarik balik.
Strategi ini menggabungkan bias trend Ichimoku dan isyarat pembalikan trend MACD untuk berdagang selepas pembalikan trend. pengoptimuman dan penambahbaikan lanjut dapat mengurangkan kesilapan isyarat dan meningkatkan kestabilan dan kecekapan sebagai sistem pembalikan trend yang kukuh.
/*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) // }