Ichimoku e estratégia de negociação de reversão de tendência do MACD

Autora:ChaoZhang, Data: 2023-09-20 15:44:13
Tags:

Resumo

Esta estratégia combina os indicadores Ichimoku e MACD, entrando em negociações depois de confirmar a reversão da tendência.

Estratégia lógica

  1. Calcule a linha Ichimoku Tenkan para medir a direção da tendência.

  2. A cruz de morte do MACD gera sinal de venda em tendência de alta; a cruz de ouro gera sinal de compra em tendência de baixa.

  3. Combine o viés de tendência de Ichimoku e os sinais de reversão do MACD para negociar reversões de tendência.

  4. Opção para definir o controlo das horas de negociação, como não negociar à noite ou nos fins de semana, para evitar os riscos associados a determinadas horas.

  5. Empregar stop loss adequado e tirar lucro para bloqueio de lucro e controle de risco.

Vantagens

  1. Ichimoku mostra de forma intuitiva tendências e níveis de suporte/resistência.

  2. O MACD capta de forma sensível as inversões de tendência.

  3. A combinação de distorção de tendência e inversão melhora a qualidade do sinal.

  4. Horários de negociação personalizáveis evitar riscos em torno de grandes eventos de notícias.

  5. Stop loss e take profit gerem eficazmente os riscos de capital.

Riscos

  1. Ichimoku e MACD podem gerar sinais falsos.

  2. Força de reversão desconhecida, riscos de perseguir de cima para baixo.

  3. O controlo das horas de negociação pode perder algumas oportunidades.

  4. As configurações inadequadas de stop loss e take profit levam a uma saída prematura.

  5. A otimização dos parâmetros pode conduzir a um sobreajuste.

Reforço

  1. Teste os parâmetros de Ichimoku e MACD para combinações ideais.

  2. Adicionar outros indicadores para confirmar os sinais de negociação.

  3. Otimizar paradas e lucros para equilibrar riscos e retornos.

  4. Avaliar a necessidade do controlo das horas de negociação e relaxar, se for caso disso.

  5. Incorporar um filtro de tendência para evitar perdas de operações de reversão.

  6. Pesquise formas de avaliar a força de reversão e a altura potencial de retração.

Conclusão

Esta estratégia combina o viés de tendência de Ichimoku e os sinais de reversão do MACD para negociar após reversões de tendência.


/*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)
// }



Mais.