La stratégie de scalping de Ichimoku

Auteur:ChaoZhang est là., Date: 21-12-2023 à 11h13
Les étiquettes:

img

Résumé

La stratégie de scalping quantique Ichimoku Cloud est une stratégie quantitative à court terme intégrant Ichimoku Cloud et l'indice directionnel moyen (ADX).

La logique de la stratégie

La stratégie est composée de deux éléments principaux:

  1. Ichimoku Cloud pour juger de la direction de la tendance

    • Ligne de conversion: prix moyen des 7 dernières périodes
    • Ligne de base: prix moyen des 26 dernières périodes
    • L'étendue principale A: point médian de la ligne de conversion et de la ligne de base
    • Leading Span B: prix moyen des 52 dernières périodes

    Le prix au-dessus du nuage indique une tendance haussière tandis qu'en dessous signifie une tendance à la baisse.

  2. ADX pour filtrer le marché non tendance

    Ne prenez des signaux que lorsque l'ADX est supérieur à 20, ce qui suggère une tendance du marché.

Règles commerciales:

  • Entrée longue: ruptures de prix au-dessus de la ligne de conversion et de l'ADX>20
  • Entrée courte: les écarts de prix au-dessous de la ligne de conversion et de l'ADX>20
  • Arrêt de perte: 150 ticks
  • Prenez du profit: 200 tiques

Analyse des avantages

Les avantages de cette stratégie:

  1. Le Cloud Ichimoku peut déterminer avec précision la direction de la tendance et les points tournants.

  2. Contrôle de retrait. 150 tics de stop loss, effectivement des limites par perte de transaction.

  3. Facteur de profit élevé. 200 ticks profit contre 150 ticks stop loss donne un facteur de profit de 1,33, facile à obtenir des bénéfices.

  4. Une fréquence de négociation appropriée.

Analyse des risques

Les risques sont les suivants:

  1. Risque d'échec de la détermination de la tendance. Signal incorrect lorsque Ichimoku Cloud ne détecte pas l'inversion de tendance. Peut optimiser les paramètres pour améliorer la précision.

  2. Le risque de perte d'arrêt peut être pénétré pendant le marché rapide.

  3. Risque de négociation de nuit et de pré-marché. L'option par défaut permet uniquement la négociation de jour. Le jugement peut échouer pendant les heures prolongées. Peut activer la négociation 24H ou personnaliser les stratégies pour les sessions prolongées.

Directions d'optimisation

Les directions d'optimisation potentielles:

  1. Paramètre de réglage du nuage Ichimoku pour trouver le réglage optimal.

  2. Optimisation des paramètres ADX et des seuils pour déterminer les meilleures valeurs.

  3. L'objectif de profit et l'optimisation du stop loss basés sur des données historiques.

  4. Arrêtez la perte pour mieux suivre la tendance.

  5. Des indicateurs supplémentaires tels que le MACD et le KD pour faciliter la détermination de la tendance.

  6. Optimisation adaptative pour différents produits.

Conclusion

La stratégie de scalping quantique Ichimoku Cloud intègre les avantages de Ichimoku Cloud et ADX pour déterminer avec précision les points d'inversion de tendance et filtrer les marchés en marge.


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


Plus de