Ichimoku et la stratégie de négociation d'inversion de tendance MACD

Auteur:ChaoZhang est là., Date: 2023-09-20 à 15h44
Les étiquettes:

Résumé

Cette stratégie combine les indicateurs Ichimoku et MACD, entrant dans les transactions après avoir confirmé l'inversion de tendance.

La logique de la stratégie

  1. Calculer la ligne Ichimoku Tenkan pour mesurer la direction de la tendance. Le prix au-dessus indique une tendance haussière, et en dessous une tendance baissière.

  2. La croix de la mort MACD génère un signal de vente en tendance haussière; la croix dorée génère un signal d'achat en tendance baissière.

  3. Combinez le biais de tendance Ichimoku et les signaux d'inversion du MACD pour négocier des inversions de tendance.

  4. Option permettant de régler les heures de négociation, par exemple pas de négociation la nuit ou le week-end, afin d'éviter les risques associés à certaines heures.

  5. Utilisez un stop-loss et un profit appropriés pour bloquer les bénéfices et contrôler les risques.

Les avantages

  1. Ichimoku affiche intuitivement les tendances et les niveaux de support/résistance.

  2. Le MACD capte de façon sensible les renversements de tendance.

  3. La combinaison du biais de tendance et de l'inversion améliore la qualité du signal.

  4. Des horaires de négociation personnalisables permettent d'éviter les risques liés aux événements majeurs.

  5. Stop loss et take profit gère efficacement les risques en capital.

Les risques

  1. Ichimoku et MACD peuvent générer de faux signaux.

  2. La force d'inversion est inconnue, risque de courir vers le haut et le bas.

  3. Le contrôle des heures de négociation peut manquer certaines opportunités.

  4. Les paramètres de stop loss et de prise de bénéfices incorrects entraînent une sortie prématurée.

  5. L'optimisation des paramètres peut entraîner un surajustement.

Amélioration

  1. Testez les paramètres Ichimoku et MACD pour les combinaisons optimales.

  2. Ajouter d'autres indicateurs pour confirmer les signaux de négociation.

  3. Optimiser les arrêts et les bénéfices pour équilibrer les risques et les rendements.

  4. Évaluer la nécessité de contrôler les heures de négociation et, le cas échéant, se détendre.

  5. Incorporer un filtre de tendance pour éviter les pertes liées aux transactions de renversement.

  6. Cherchez des moyens de mesurer la force d'inversion et la hauteur potentielle de retrait.

Conclusion

Cette stratégie combine le biais de tendance d'Ichimoku et les signaux d'inversion du MACD pour négocier après les inversions de tendance.


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



Plus de