Stratégie de négociation quantitative basée sur l'éclatement du cloud Ichimoku et l'indice ADX

Auteur:ChaoZhang est là., Date: 2024-02-02 17h50
Les étiquettes:

img

Résumé

Le nom de cette stratégie est Quantitative Trading Strategy Based on Ichimoku Cloud Breakout and ADX Index. Elle combine le graphique du nuage Ichimoku avec l'indice de mouvement directionnel moyen (ADX) pour déterminer quand prendre des positions longues ou courtes. Plus précisément, elle entre en position lorsque le prix traverse des zones clés du graphique du nuage et que l'ADX montre une forte tendance.

La logique de la stratégie

La stratégie utilise Ichimoku Cloud des indicateurs Ichimoku Kinko Hyo pour identifier les principales zones de support et de résistance.

Signaux d'entrée longs:

  • La ligne de conversion traverse la ligne de base
  • La ligne de retard traverse l'axe 0
  • Prix au-dessus du sommet des nuages
  • ADX inférieur à 45 (indiquant que la tendance n'est pas dépassée)
  • +DI au-dessus de -DI (indiquant une tendance à la hausse)

Signal d'entrée court:

  • La ligne de conversion traverse la ligne de base
  • Les lignes de retard se croisent sous l'axe 0
  • Prix inférieur au bas des nuages
  • ADX supérieur à 45 (indiquant un éventuel renversement de tendance)
  • +DI inférieur à -DI (indiquant une tendance à la baisse)

Analyse des avantages

La stratégie combine l'analyse des schémas graphiques et les indicateurs d'analyse des tendances, qui permettent de déterminer efficacement les tendances et les points forts du marché.

  1. Utilisation du nuage Ichimoku pour déterminer les niveaux de support/résistance clés afin de détecter les fortes tendances
  2. Incorporation de l'indice ADX pour mesurer la force réelle de la tendance, évitant de fausses transactions
  3. Des règles claires et faciles à suivre pour le trading en direct

Risques et solutions

Cette stratégie comporte certains risques, principalement liés à l'instabilité dans la détermination de la tendance de l'ADX.

  1. L'ADX a un effet retardé, peut manquer des renversements rapides.
  2. ADX ne fonctionne pas bien sur les marchés de gamme. peut ajouter des filtres comme le canal BOLL
  3. Le nuage Ichimoku peut également échouer.

Suggestions d'optimisation

La stratégie peut être encore optimisée de la manière suivante:

  1. Ajustez les paramètres Ichimoku pour s'adapter à plus d'instruments
  2. Ajouter un stop loss pour contrôler les pertes de transaction unique
  3. Incorporer plus d'indicateurs pour filtrer les signaux
  4. Ajouter la prédiction d'apprentissage automatique pour déterminer davantage les signaux de tendance

Conclusion

Cette stratégie combine le graphique de nuage Ichimoku et l'indice de tendance ADX pour former un système de trading quantitatif complet. Elle identifie les niveaux de support/résistance clés tout en jugeant la tendance. Elle peut capturer efficacement les opportunités du marché.


/*backtest
start: 2023-01-26 00:00:00
end: 2024-02-01 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/
// © Coinrule

//@version=5
strategy('Ichimoku Cloud with ADX (By Coinrule)',
         overlay=true,
         initial_capital=1000,
         process_orders_on_close=true,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=30,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2022, 1, 1, 0, 0)


// Stop Loss and Take Profit for Shorting
Stop_loss = input(1) / 100
Take_profit = input(5) / 100
longStopPrice = strategy.position_avg_price * (1 - Stop_loss)
longTakeProfit = strategy.position_avg_price * (1 + Take_profit)


// Inputs
ts_bars = input.int(9, minval=1, title='Tenkan-Sen Bars')
ks_bars = input.int(26, minval=1, title='Kijun-Sen Bars')
ssb_bars = input.int(52, minval=1, title='Senkou-Span B Bars')
cs_offset = input.int(26, minval=1, title='Chikou-Span Offset')
ss_offset = input.int(26, minval=1, title='Senkou-Span Offset')
long_entry = input(true, title='Long Entry')
short_entry = input(true, title='Short Entry')

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

// Ichimoku Components
tenkan = middle(ts_bars)
kijun = middle(ks_bars)
senkouA = math.avg(tenkan, kijun)
senkouB = middle(ssb_bars)

// Plot Ichimoku Kinko Hyo
plot(tenkan, color=color.new(#0496ff, 0), title='Tenkan-Sen')
plot(kijun, color=color.new(#991515, 0), title='Kijun-Sen')
plot(close, offset=-cs_offset + 1, color=color.new(#459915, 0), title='Chikou-Span')
sa = plot(senkouA, offset=ss_offset - 1, color=color.new(color.green, 0), title='Senkou-Span A')
sb = plot(senkouB, offset=ss_offset - 1, color=color.new(color.red, 0), title='Senkou-Span B')
fill(sa, sb, color=senkouA > senkouB ? color.green : color.red, title='Cloud color', transp=90)

ss_high = math.max(senkouA[ss_offset - 1], senkouB[ss_offset - 1])
ss_low = math.min(senkouA[ss_offset - 1], senkouB[ss_offset - 1])


// ADX
[pos_dm, neg_dm, avg_dm] = ta.dmi(14, 14)


// Entry/Exit Signals
tk_cross_bull = tenkan > kijun
tk_cross_bear = tenkan < kijun
cs_cross_bull = ta.mom(close, cs_offset - 1) > 0
cs_cross_bear = ta.mom(close, cs_offset - 1) < 0
price_above_kumo = close > ss_high
price_below_kumo = close < ss_low

bullish = tk_cross_bull and cs_cross_bull and price_above_kumo and avg_dm < 45 and pos_dm > neg_dm
bearish = tk_cross_bear and cs_cross_bear and price_below_kumo and avg_dm > 45 and pos_dm < neg_dm

strategy.entry('Long', strategy.long, when=bullish and long_entry and timePeriod)
strategy.close('Long', when=bearish and not short_entry)

strategy.entry('Short', strategy.short, when=bearish and short_entry and timePeriod)
strategy.close('Short', when=bullish and not long_entry)




Plus de