Stratégie quantitative à court terme du nuage Ichimoku


Date de création: 2023-12-21 11:13:15 Dernière modification: 2023-12-21 11:13:15
Copier: 1 Nombre de clics: 1010
1
Suivre
1623
Abonnés

Stratégie quantitative à court terme du nuage Ichimoku

Aperçu

La stratégie Ichimoku Cloud Quant Scalping Strategy est une stratégie de scalping de courte ligne combinant un tableau d’équilibre et un indice de direction moyen. Elle utilise l’indicateur Ichimoku Cloud pour déterminer la direction de la tendance, en collaboration avec l’indicateur ADX pour filtrer les marchés non tendance et effectuer des opérations de courte ligne dans des conditions de tendance.

Principe de stratégie

La stratégie est principalement composée de deux volets:

  1. Les nuages d’Ichimoku permettent de juger de la tendance

    • Ligne de conversion: moyenne des 7 périodes les plus récentes
    • Ligne de base: la ligne médiane des 26 dernières cycles
    • Leading Span A: la ligne de conversion au milieu de la ligne de base
    • Leading Span B: moyenne des 52 derniers cycles

Lorsque le prix est en haut de la nuée, c’est une tendance à plusieurs têtes, et en bas, c’est une tendance à la tête vide. La stratégie juge le renversement de la tendance en faisant une percée de la ligne de conversion.

  1. Indicateur ADX filtrant les marchés non tendanciels

ADX plus de 20 indique une tendance, à ce moment la stratégie ne génère que des signaux de négociation. Moins de 20 indique un rapprochement, à ce moment la stratégie n’est pas négociée.

Règles de négociation:

  • Entrée multiple: le prix dépasse la ligne de conversion et l’ADX est supérieur à 20
  • Entrée à vide: le cours dépasse la ligne de conversion et l’ADX est supérieur à 20
  • Stop-loss: 150 points
  • - 200 points pour l’arrêt

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. L’indicateur de l’Ichimoku Cloud permet de déterminer avec précision la direction de la tendance et les points de basculement, en combinaison avec l’indicateur de l’ADX pour filtrer le marché et éviter les fausses percées.

  2. Contrôle de rétractation. Le paramètre de stop loss est de 150 points, ce qui permet de contrôler efficacement les pertes individuelles.

  3. Le ratio de gain/perte est élevé. Le stop loss est de 200 points, le stop loss est de 150 points, le ratio de gain/perte est élevé à 1,33, facile à gagner.

  4. La fréquence de négociation est modérée.

Analyse des risques

La stratégie présente également les risques suivants:

  1. Le risque d’échec de la tendance. L’indicateur de la nuée d’Ichimoku génère un signal erroné lorsque la tendance se déplace vers l’échec.

  2. Le stop risque d’être dépassé. Le stop risque d’être dépassé. Le stop mobile peut être défini ou la portée du stop peut être augmentée.

  3. Risque de négociation de nuit et avant la clôture. La stratégie par défaut est de négocier uniquement pendant la journée. Le jugement de la tendance de la nuit et avant la clôture peut être invalidé.

Direction d’optimisation

Cette stratégie peut être optimisée dans les directions suivantes:

  1. Optimisation des paramètres de l’indicateur Ichimoku. Vous pouvez tester différents paramètres de ligne de conversion, de ligne de référence et de ligne de sélection pour trouver la combinaison optimale de paramètres.

  2. Optimisation des paramètres ADX et des seuils. Vous pouvez tester les paramètres périodiques et les seuils de filtrage de l’ADX pour trouver des paramètres optimaux.

  3. Optimisation de l’arrêt de la perte de freinage. Le point d’arrêt optimal peut être déterminé en fonction de la rétroaction des données historiques.

  4. Stratégie de stop-loss mobile. Configurer un stop-loss flottant pour mieux suivre la tendance et tirer profit.

  5. Indicateur auxiliaire de jugement de tendance. Ajout d’indicateurs auxiliaires de jugement de tendance tels que MACD, KD, etc. pour améliorer la précision du signal.

  6. Optimisation de l’adaptabilité. Définition de paramètres de stratégie de négociation séparément pour les variétés de grande différence.

Résumer

La stratégie Ichimoku Cloud Quantitative Short Line intègre les avantages de l’indicateur Ichimoku Cloud et de l’indicateur ADX pour déterminer avec précision le point de basculement de la tendance et éliminer efficacement le marché de la correction pour éviter les faux signaux. La stratégie a un taux de profit élevé et une rétraction contrôlable, adaptée à l’opération de la courte ligne de suivi de la tendance.

Code source de la stratégie
/*backtest
start: 2023-12-13 00:00:00
end: 2023-12-20 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title='[STRATEGY][RS]Spot/Binary Scalper V0', shorttitle='IC', overlay=true, initial_capital=100000, currency=currency.USD)
//  ||  Adapted from:
//  ||      http://www.binaryoptionsedge.com/topic/1414-ta-spot-scalping-it-works-damn-good/?hl=singh

//  ||  Ichimoku cloud:
conversionPeriods = input(title='Conversion Periods:',  defval=7, minval=1),
basePeriods = 26//input(title='Base Periods',  defval=26, minval=1)
laggingSpan2Periods = 52//input(title='Lagging Span:',  defval=52, minval=1),
displacement = 26//input(title='Displacement:',  defval=26, minval=1)

f_donchian(_len) => avg(lowest(_len), highest(_len))

f_ichimoku_cloud(_conversion_periods, _base_periods, _lagging_span)=>
    _conversion_line = f_donchian(_conversion_periods)
    _base_line = f_donchian(_base_periods)
    _lead_line1 = avg(_conversion_line, _base_line)
    _lead_line2 = f_donchian(_lagging_span)
    [_conversion_line, _base_line, _lead_line1, _lead_line2]

[conversionLine, baseLine, leadLine1, leadLine2] = f_ichimoku_cloud(conversionPeriods, basePeriods, laggingSpan2Periods)

//ps0 = plot(title='A', series=leadLine1, color=green, linewidth=2)
//ps1 = plot(title='B', series=leadLine2, color=red, linewidth=2)
//fill(title='AB', plot1=ps0, plot2=ps1, color=blue, transp=80)
//plot(title='Base', series=baseLine, color=blue, linewidth=1, offset=displacement)
plot(title='Conversion', series=conversionLine, color=blue, linewidth=1)
//  ||----------------------------------------------------------------------------------------------------------------------------------------------||
//  ||  ADX
len = input(title="Length",  defval=14)
th = input(title="threshold",  defval=20)

TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1])))
DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0
DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0


SmoothedTrueRange = nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/len) + TrueRange
SmoothedDirectionalMovementPlus = nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/len) + DirectionalMovementPlus
SmoothedDirectionalMovementMinus = nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/len) + DirectionalMovementMinus

DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100
DX = abs(DIPlus-DIMinus) / (DIPlus+DIMinus)*100
ADX = sma(DX, len)
//  ||----------------------------------------------------------------------------------------------------------------------------------------------||
//  ||  Trade session:
USE_TRADESESSION = input(title='Use Trading Session?', type=bool, defval=true)
trade_session = input(title='Trade Session:', defval='0400-1500', confirm=false)
istradingsession = not USE_TRADESESSION ? false : not na(time('1', trade_session))
bgcolor(istradingsession?gray:na)
//  ||----------------------------------------------------------------------------------------------------------------------------------------------||
//  ||  Strategy:
trade_size = input(title='Trade Size:',  defval=1)
stop_loss_in_ticks = input(title='Stop Loss in ticks:',  defval=150)
take_profit_in_ticks = input(title='Take Profit in ticks:',  defval=200)

buy_icloud_signal = open < conversionLine and close > conversionLine
buy_adx_signal = DIPlus > 20
buy_signal = istradingsession and buy_icloud_signal and buy_adx_signal

sel_icloud_signal = open > conversionLine and close < conversionLine
sel_adx_signal = DIMinus > 20
sel_signal = istradingsession and sel_icloud_signal and sel_adx_signal


strategy.order('buy', long=true, qty=trade_size, comment='buy', when=buy_signal)
strategy.order('sel', long=false, qty=trade_size, comment='sel', when=sel_signal)

strategy.exit('exit buy', from_entry='buy', profit=take_profit_in_ticks, loss=stop_loss_in_ticks)
strategy.exit('exit sel', from_entry='sel', profit=take_profit_in_ticks, loss=stop_loss_in_ticks)