Déviation des prix par rapport à la stratégie de négociation moyenne journalière

Auteur:ChaoZhang est là., Date: le 15 décembre 2023 à 15h44
Les étiquettes:

img

Résumé

Cette stratégie de trading génère des signaux de trading basés sur un indicateur appelé Ichimoku Kinko Hyo.

La stratégie utilise les lignes composantes d'Ichimoku pour déterminer la direction et la force de la tendance. Les signaux de trading sont générés lorsque le prix franchit le haut ou le bas du Cloud.

La logique de la stratégie

La stratégie utilise cinq lignes du système Ichimoku Kinko Hyo:

  1. Tenkan Line: moyenne de 9 périodes du plus haut plus haut et du plus bas plus bas
  2. Ligne Kijun: moyenne sur 26 périodes du plus haut plus haut et du plus bas plus bas
  3. Senkou Span A: moyenne des lignes Tenkan et Kijun
  4. Senkou Span B: moyenne sur 52 périodes du plus haut plus haut et du plus bas plus bas
  5. Ligne de Chikou: moyenne mobile à 26 périodes en retard de clôture

Le nuage est la zone située entre Senkou Span A et Senkou Span B, représentant la fourchette de tendance actuelle en général.

Les signaux de négociation sont générés sur la base des scénarios suivants:

  1. Le prix dépasse le sommet du nuage: signal long
  2. Le prix dépasse le bas du nuage: signal court
  3. Prix entrant dans le Cloud depuis le bas: opportunité longue de bout en bout
  4. Prix entrant dans le Cloud depuis le haut: opportunité courte de bord à bord

En outre, la stratégie utilise le croisement Tenkan/Kijun pour déterminer les niveaux de prise de profit et de stop-loss.

Les avantages

La plus grande force de cette stratégie réside dans la capacité d'Ichimoku à déterminer la direction de la tendance et les niveaux de support/résistance.

  1. Le nuage identifie la direction de la tendance principale, évitant de négocier contre la tendance.
  2. Les lignes composantes repèrent les niveaux de support/résistance pour localiser les opportunités de rupture.
  3. L'entrée de bord à bord offre un potentiel de profit plus élevé.

En outre, la stratégie intègre un croisement Tenkan/Kijun pour une prise partielle de bénéfices et un contrôle des risques.

Risques et gestion

Le principal risque provient de failles potentielles dans les lignes Ichimoku provoquant une fausse rupture.

Les solutions comprennent l'optimisation des paramètres pour réduire les intervalles de la ligne descendante ou l'ajout de filtres pour éviter de négocier dans des zones variables.

Optimisation

Plusieurs aspects de la stratégie peuvent être améliorés:

  1. Optimisez les paramètres Ichimoku et ajustez les périodes moyennes mobiles pour s'adapter à plus de symboles et de délais.

  2. Incorporer une confirmation de volume pour éviter les lacunes provoquant de faux signaux.

  3. Ajouter d'autres indicateurs tels que le MACD, le RSI pour les tendances supplémentaires et les filtres d'oscillateur.

  4. Améliorer les règles d'arrêt des pertes et de prise de bénéfices, par exemple arrêt de suivi, dimensionnement des positions, etc.

Résumé

En résumé, ce système Ichimoku identifie la direction de la tendance et les chances de trading avec le Cloud et les lignes composantes.


/*backtest
start: 2022-12-08 00:00:00
end: 2023-12-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Ichimoku Cloud", shorttitle="Ichimoku", overlay=true)

previous_close = close[1]

conversionPeriods = input.int(20, minval=1, title="Conversion Line Periods"),
basePeriods = input.int(60, minval=1, title="Base Line Periods")
laggingSpan2Periods = input.int(120, minval=1, title="Lagging Span 2 Periods"),
displacement = input.int(30, minval=1, title="Displacement")

long_entry = input.bool(true, title="Long Entry")
short_entry = input.bool(true, title="Short Entry")
e2e_entry = input.bool(true, title="E2E Entry")

donchian(len) => math.avg(ta.lowest(len), ta.highest(len))

tenkan = donchian(conversionPeriods)
kijun = donchian(basePeriods)
spanA = math.avg(tenkan, kijun)
spanB = donchian(laggingSpan2Periods)

plot(tenkan, color=#0496ff, title="Conversion Line")
plot(kijun, color=#991515, title="Base Line")
plot(close, offset = -displacement, color=#459915, title="Lagging Span")

p1 = plot(spanA, offset = displacement, color=#459915, title="Lead 1")
p2 = plot(spanB, offset = displacement, color=#991515, title="Lead 2")
fill(p1, p2, color = spanA > spanB ? #459915 : #991515)

ss_high = math.max(spanA[displacement - 1], spanB[displacement - 1])
ss_low = math.min(spanA[displacement - 1], spanB[displacement - 1])

// Entry/Exit Signals
tk_cross_bull = tenkan > kijun
tk_cross_bear = tenkan < kijun
kumo_twist_bull = ta.mom(close, displacement) > 0
kumo_twist_bear = ta.mom(close, displacement) < 0

price_above_kumo = close > ss_high
price_below_kumo = close < ss_low

price_enters_kumo_top = previous_close > ss_high[1] and close < ss_high
price_enters_kumo_bottom = previous_close < ss_low[1] and close > ss_low

bullish = tk_cross_bull and kumo_twist_bull and price_above_kumo
bearish = tk_cross_bear and kumo_twist_bear and price_below_kumo

bullishe2e = price_enters_kumo_bottom // and tk_cross_bull
bearishe2e = price_enters_kumo_top // and tk_cross_bear

price_touches_kumo_top = ta.cross(close, ss_high)
price_touches_kumo_bottom = ta.cross(close, ss_low)

strategy.entry("Long", strategy.long, when=bullish and long_entry)
strategy.close("Long", when=tk_cross_bear)
strategy.close("Long", when=price_enters_kumo_top)

strategy.entry("Long e2e", strategy.long, when=bullishe2e and e2e_entry)
strategy.close("Long e2e", when=price_touches_kumo_top)
strategy.close("Long e2e", when=price_below_kumo, qty_percent = 100)
// strategy.close("Long e2e", when=ta.cross(close, kijun), qty_percent = 50)

strategy.entry("Short", strategy.short, when=bearish and short_entry)
strategy.close("Short", when=tk_cross_bull)
strategy.close("Short", when=price_enters_kumo_bottom)

strategy.entry("Short e2e", strategy.short, when=bearishe2e and e2e_entry)
strategy.close("Short e2e", when=price_touches_kumo_bottom)
strategy.close("Short e2e", when=price_above_kumo, qty_percent = 100)
// strategy.close("Long e2e", when=ta.cross(close, kijun), qty_percent = 50)


Plus de