Stratégie de suivi des tendances de la ligne de balance Ichimoku

Auteur:ChaoZhang est là., Date: 2023-10-12 17:29:46 Je vous en prie.
Les étiquettes:

Résumé

Cette stratégie utilise la ligne de conversion, la ligne de base et les limites des nuages de l'indicateur Ichimoku Kinko Hyo pour identifier la direction de la tendance et mettre en œuvre des transactions de suivi de tendance.

La logique de la stratégie

La stratégie utilise principalement les lignes d'indicateur Ichimoku suivantes:

  • Ligne de conversion (Tenkan-sen): représente une tendance à court terme, calculée en moyenne entre le plus haut et le plus bas des 9 dernières périodes.
  • Ligne de base (Kijun-sen): représente l'évolution à moyen terme, calculée en moyenne du plus haut plus haut et du plus bas plus bas au cours des 26 dernières périodes
  • Département A (département A de Senkou): moyenne des lignes de conversion et de base
  • Leading Span B (Senkou Span B): la moyenne du plus haut plus haut et du plus bas plus bas au cours des 52 dernières périodes.

Il va long lorsque le prix dépasse le nuage et court lorsque le prix dépasse le nuage. Les raisons d'entrée et de sortie sont déclenchées lorsque le prix dépasse respectivement le sommet et le bas du nuage. Les sorties sont déclenchées lorsque les ratios de profit ou de perte sont atteints.

Analyse des avantages

  • Utilise Ichimoku pour identifier la direction de la tendance, en évitant les faux signaux du bruit du marché
  • La rupture de nuage haut/bas identifie efficacement les points d'inversion de tendance
  • Les points de prise de bénéfices et de stop-loss aident à verrouiller les bénéfices et à contrôler les risques

Analyse des risques

  • Ichimoku a un retard et peut manquer ses meilleurs points d'entrée.
  • Un mauvais réglage des paramètres des lignes comme la ligne de conversion pourrait causer de faux signaux
  • Résultats de l'évaluation des risques

Directions d'optimisation

  • Considérez de combiner d'autres indicateurs pour améliorer la précision
  • Optimiser dynamiquement les paramètres pour différentes périodes et marchés
  • Utiliser le stop loss de suivi pour ajuster les stops en fonction de l'action des prix et éviter une sortie anticipée
  • Développer une stratégie automatisée de profit/perte pour ajuster intelligemment les points en fonction de la volatilité

Résumé

Cette stratégie utilise le nuage Ichimoku pour identifier les tendances et mettre en œuvre un suivi de tendance simple. Malgré un certain retard et de faux signaux, l'optimisation des paramètres, des arrêts et l'utilisation d'autres indicateurs peuvent l'améliorer. Facile à comprendre et à mettre en œuvre, il est bon pour les débutants d'apprendre et de se référer lors du développement d'autres stratégies. Des tests et des optimisations continus amélioreront les paramètres et les règles pour une meilleure performance en direct.


/*backtest
start: 2023-10-04 00:00:00
end: 2023-10-08 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Estratégia com Ichimoku" , pyramiding=0, calc_on_every_tick = true, initial_capital = 20000, commission_type = strategy.commission.cash_per_order, commission_value = 10.00)

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////Ichimoku Clouds////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////(VERSÃO 40.0)//////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

periodoLinhaDeConversao = input(defval=9, title="Tenkan-sen (Linha de Conversão)",  minval=1)
periodoLinhaBase = input(defval=26, title="Kijun-sen (Linha Base)",  minval=1)
periodoNivelAdiantadoB = input(defval=52, title="Senkou Span B (Nível adiantado B)",  minval=1)
deslocamento = input(defval=26, title="Deslocamento",  minval=1)

linhaDeConversao = (highest(high,periodoLinhaDeConversao)+lowest(low,periodoLinhaDeConversao))/2
linhaBase = (highest(high,periodoLinhaBase)+lowest(low,periodoLinhaBase))/2
nivelAdiantadoA = (linhaDeConversao + linhaBase)/2
nivelAdiantadoB = (highest(high,periodoNivelAdiantadoB)+lowest(low,periodoNivelAdiantadoB))/2

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
strategy.initial_capital = 50000
//Hardcoded quantity - strategy.entry(qty=)
capitalInicial = strategy.initial_capital
lotes = (strategy.initial_capital - (strategy.initial_capital % (open*100)))/open

//Percentage input goal - strategy.exit(profit=)
percentGoal = input (defval = 5.0, title = "Goal (%)", type = float, minval=0.0, step=0.1)
longGoal = (strategy.position_avg_price * (percentGoal/100)) * 100
shortGoal = (strategy.position_avg_price - (strategy.position_avg_price / (1+(percentGoal/100)))) * 100

//Percentage input stop - strategy.exit(loss=)
percentStop = input (defval = 0.5, title = "Stop (%)", type = float, minval=0.0, step=0.1)
longStop = (strategy.position_avg_price * (percentStop/100)) * 100
shortStop = (strategy.position_avg_price * (percentStop/100)) * 100

strategy.entry('entryLong', strategy.long, lotes, when = strategy.position_size == 0 and crossover(close,max(nivelAdiantadoA[deslocamento], nivelAdiantadoB[deslocamento])))
strategy.entry('entryShort', strategy.short, lotes, when = strategy.position_size == 0 and crossunder(close,min(nivelAdiantadoA[deslocamento], nivelAdiantadoB[deslocamento])))
strategy.exit('exitLong', 'entryLong', profit = longGoal, loss = longStop)
strategy.exit('exitShort', 'entryShort', profit = shortGoal, loss = shortStop)

plot(strategy.equity, title="Variação de capital", color=white)
//plot(strategy.position_size, color=red)

Plus de