Ichimoku и стратегия торговли с изменением тренда MACD

Автор:Чао Чжан, Дата: 2023-09-20 15:44:13
Тэги:

Обзор

Эта стратегия сочетает в себе индикаторы Ichimoku и MACD, вступая в сделки после подтверждения обратного тренда.

Логика стратегии

  1. Вычислить линию Ичимоку Тенкан для измерения направления тренда. Цена выше нее указывает на восходящий тренд, а ниже - нисходящий.

  2. Смертный крест MACD генерирует сигнал продажи в восходящем тренде; золотой крест - сигнал покупки в нисходящем тренде.

  3. Объедините тенденционный уклон Ichimoku и сигналы MACD для обмена обратными тенденциями.

  4. Возможность установить контроль за часами торговли, например, без торговли в ночное время или в выходные дни, чтобы избежать рисков, связанных с определенными часами.

  5. Используйте правильную стоп-лосс и получение прибыли для блокировки прибыли и контроля рисков.

Преимущества

  1. Ичимоку интуитивно отображает тренды и уровни поддержки/сопротивления.

  2. MACD чувствительно фиксирует изменение тренда.

  3. Сочетание тенденционного уклонения и обратного движения улучшает качество сигнала.

  4. Настраиваемые торговые часы позволяют избежать рисков, связанных с крупными новостями.

  5. Стоп-лосс и прибыль эффективно управляют капитальными рисками.

Риски

  1. Ichimoku и MACD могут генерировать ложные сигналы.

  2. Сила обратного движения неизвестна, риски преследования сверху и снизу.

  3. Контроль времени торговли может упустить некоторые возможности.

  4. Неправильные параметры стоп-лосса и прибыли приводят к преждевременному выходу.

  5. Оптимизация параметров может привести к перенастройке.

Улучшение

  1. Проверьте параметры Ичимоку и MACD для оптимальных комбинаций.

  2. Добавить другие индикаторы для подтверждения торговых сигналов.

  3. Оптимизируйте остановки и прибыль, чтобы сбалансировать риски и прибыль.

  4. Оцените необходимость контроля времени торговли и расслабьтесь, если это необходимо.

  5. Включить фильтр тренда, чтобы избежать потерь от реверсионных сделок.

  6. Исследуйте способы измерения силы переворота и потенциальной высоты отступления.

Заключение

Эта стратегия сочетает в себе тенденционное уклонение Ичимоку и сигналы обратного движения 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)
// }



Больше