Эта стратегия сочетает в себе индикаторы Ichimoku и MACD, вступая в сделки после подтверждения обратного тренда.
Вычислить линию Ичимоку Тенкан для измерения направления тренда. Цена выше нее указывает на восходящий тренд, а ниже - нисходящий.
Смертный крест MACD генерирует сигнал продажи в восходящем тренде; золотой крест - сигнал покупки в нисходящем тренде.
Объедините тенденционный уклон Ichimoku и сигналы MACD для обмена обратными тенденциями.
Возможность установить контроль за часами торговли, например, без торговли в ночное время или в выходные дни, чтобы избежать рисков, связанных с определенными часами.
Используйте правильную стоп-лосс и получение прибыли для блокировки прибыли и контроля рисков.
Ичимоку интуитивно отображает тренды и уровни поддержки/сопротивления.
MACD чувствительно фиксирует изменение тренда.
Сочетание тенденционного уклонения и обратного движения улучшает качество сигнала.
Настраиваемые торговые часы позволяют избежать рисков, связанных с крупными новостями.
Стоп-лосс и прибыль эффективно управляют капитальными рисками.
Ichimoku и MACD могут генерировать ложные сигналы.
Сила обратного движения неизвестна, риски преследования сверху и снизу.
Контроль времени торговли может упустить некоторые возможности.
Неправильные параметры стоп-лосса и прибыли приводят к преждевременному выходу.
Оптимизация параметров может привести к перенастройке.
Проверьте параметры Ичимоку и MACD для оптимальных комбинаций.
Добавить другие индикаторы для подтверждения торговых сигналов.
Оптимизируйте остановки и прибыль, чтобы сбалансировать риски и прибыль.
Оцените необходимость контроля времени торговли и расслабьтесь, если это необходимо.
Включить фильтр тренда, чтобы избежать потерь от реверсионных сделок.
Исследуйте способы измерения силы переворота и потенциальной высоты отступления.
Эта стратегия сочетает в себе тенденционное уклонение Ичимоку и сигналы обратного движения MACD для торговли после обратного движения тренда.
/*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) // }