Stratégie à deux stochastiques

Auteur:ChaoZhang est là., Date: 2023-11-07 15h25 et 19h
Les étiquettes:

img

Résumé

La stratégie du double stochastique évalue les zones haussières et baissières en calculant les indicateurs stochastiques de la période en cours et de plusieurs délais, visant à acheter bas et à vendre haut.

La logique de la stratégie

La stratégie calcule deux ensembles d'indicateurs stochastiques simultanément. Le premier ensemble est l'indicateur stochastique de la période en cours, à savoir les valeurs K et D. Le deuxième ensemble est l'indicateur stochastique de 3 fois la période en cours, à savoir MTFK et MTFD.

Lorsque le MTFK dépasse 50 et que le K actuel est supérieur à D, un signal d'achat est généré, indiquant une zone haussière pour aller long. Lorsque le MTFD dépasse 50 et que le K actuel est inférieur à D, un signal de vente est généré, indiquant une zone baissière pour aller court.

Par conséquent, la stratégie utilise deux indicateurs stochastiques pour juger des zones haussières et baissières et suivre les tendances des prix.

Plus précisément, la logique d'entrée longue est:

longCondition = crossover(mtfK, 50) and k>50 and k>d and mtfK>mtfD  

La logique courte de l'entrée est:

shortCondition = crossunder(mtfD, 50) and k<50 and k<d and mtfK<mtfD

où mtfK est la valeur K de la période 3x, et mtfD est la valeur D de la période 3x. Les signaux longs sont générés lorsque mtfK dépasse 50 et k>d. Les signaux courts sont générés lorsque mtfD dépasse 50 et k

La stratégie définit également une logique de stop loss. Lorsqu'elle est longue, si mtfD traverse sous la bande supérieure, un signal de fermeture est généré. Lorsqu'elle est courte, si mtfK traverse au-dessus de la bande inférieure, un signal de fermeture est déclenché.

Analyse des avantages

Les avantages de cette stratégie sont les suivants:

  1. L'utilisation de la double stochastique permet un jugement plus précis des zones haussières et baissières. L'indicateur de la période courante juge les tendances à court terme tandis que l'indicateur de la période plus large juge les tendances à long terme.

  2. Les transactions basées sur des croisements d'indicateurs de différents délais peuvent suivre efficacement les tendances et atteindre des prix bas d'achat et des prix élevés de vente.

  3. La logique de stop loss aide à contrôler les risques et à limiter les pertes dans une certaine mesure.

  4. La logique de la stratégie est simple et claire, facile à comprendre et à mettre en œuvre pour le trading en direct.

Analyse des risques

La stratégie comporte également certains risques:

  1. Les stochastiques doubles peuvent générer de faux signaux, provoquant des transactions inutiles, par exemple des divergences entre les tendances à court et à long terme causées par des événements soudains.

  2. Les paramètres d'arrêt de perte incorrects peuvent entraîner une augmentation des pertes.

  3. La fréquence des transactions générées par la stratégie peut avoir une incidence négative sur les bénéfices dus aux commissions.

  4. La stratégie repose uniquement sur des indicateurs techniques sans tenir compte des fondamentaux, qui devraient être surveillés dans une certaine mesure.

Les solutions:

  1. Ajustez les paramètres de la double stochastique pour réduire les faux signaux.

  2. Optimiser la logique de stop loss et définir des distances de stop loss raisonnables.

  3. Ajustez les paramètres pour réduire la fréquence des échanges.

  4. Faites attention aux événements fondamentaux importants pour éviter les transactions subjectives.

Directions d'optimisation

La stratégie peut être optimisée dans les aspects suivants:

  1. Optimiser les paramètres de la double stochastique pour réduire les faux signaux. Tester les effets de différentes valeurs K et D.

  2. Incorporer d'autres indicateurs pour filtrer les signaux, tels que le MACD, les moyennes mobiles, etc., en évitant les faux signaux.

  3. Optimiser la stratégie d'arrêt des pertes en testant différents points et ratios d'arrêt des pertes afin de contrôler efficacement les risques.

  4. Incorporer des indicateurs du volume des transactions, tels que les écarts de volume, afin d'éviter des transactions inefficaces lors de la consolidation des prix.

  5. Testez différentes périodes de détention: des périodes de détention trop courtes entraînent des commissions qui mangent les bénéfices, trop longs ne parviennent pas à arrêter les pertes à temps.

  6. Incorporer des facteurs fondamentaux, fermer des positions autour d'événements importants pour éviter d'être choqué.

Résumé

La stratégie du double stochastique évalue les zones haussières et baissières en fonction des indicateurs stochastiques de la période en cours et de plusieurs périodes, atteignant l'objectif d'acheter à bas prix et de vendre à haut prix. Elle présente des avantages tels qu'une forte capacité de suivi des tendances, une logique simple et un trading en direct facile. Mais des risques existent, nécessitant un ajustement des paramètres, une optimisation des stop-loss et l'incorporation d'autres techniques ou fondamentaux pour s'améliorer. Si elle est optimisée de manière complète et strictement testée, cette stratégie peut devenir un système de suivi des tendances très pratique.


/*backtest
start: 2023-10-07 00:00:00
end: 2023-11-06 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("stoch startegy", overlay=false,default_qty_type=strategy.percent_of_equity,default_qty_value=100,currency=currency.USD)

len = input(54, minval=1, title="Length for Main Stochastic") 
smoothK = input(12, minval=1, title="SmoothK for Main Stochastic")
smoothD = input(3, minval=1, title="SmoothD for Main Stochastic")
upLine = input(80, minval=50, maxval=90, title="Upper Line Value?")
lowLine = input(30, minval=10, maxval=50, title="Lower Line Value?")
trailStep=input(100,minval=10,title="Trialing step value")

// current stochastic calculation
k = sma(stoch(close, high, low, len), smoothK)
d = sma(k, smoothD)

//mtf stochastic calculation smoothed with period

mtfK= sma(stoch(close, high, low, len), smoothK*3)
mtfD= sma(k, smoothD*3)

plot(k,"current TF k",blue,style=line, linewidth=2)
plot(d,"current TF d",red,style=line, linewidth=2)
plot(mtfK,"MTF TF k",black,style=line)
plot(mtfD,"Multi TF d",green,style=line, linewidth=2)
hline(upLine)
hline(50)
hline(lowLine)

longCondition = crossover(mtfK, 50) and k>50 and  k>d and mtfK>mtfD
if (longCondition)
    strategy.entry("Lungo", strategy.long)

shortCondition = crossunder(mtfD, 50) and k<50 and  k<d and mtfK<mtfD
if (shortCondition)
    strategy.entry("Corto", strategy.short)
    
exitlong=crossunder(mtfD, upLine)
exitshort=crossover(mtfK, lowLine)

if (exitlong)
    strategy.exit("Esci lungo","Lungo",trail_points=trailStep)
if (exitshort)
    strategy.exit("Esci corto","Corto",trail_points=trailStep)
    
showZones   = input(true, title="Show Bullish/Bearish Zones")
// bullish signal rule: 
bullishRule = k >= mtfD
// bearish signal rule: 
bearishRule = k <= mtfD
// current trading State
ruleState = 0
ruleState := bullishRule ? 1 : bearishRule ? -1 : nz(ruleState[1])
bgcolor(showZones ? ( ruleState==1 ? green : ruleState==-1 ? red : gray ) : na , title="supertrend Bullish/Bearish Zones", transp=90)



Plus de