Stratégie de transformation de l'indice d'oscillateur

Auteur:ChaoZhang est là., Date: 2023-12-22 14h21 et 28h
Les étiquettes:

img

Résumé

La stratégie de transformation d'indice d'oscillateur utilise les croisements entre l'indice d'oscillateur 3-10 de Bressert et sa moyenne mobile simple de 16 jours pour générer des signaux de trading.

La logique de la stratégie

La stratégie est basée sur l'indice de l'oscillateur 3-10 de Bressert, qui est la différence entre les moyennes mobiles exponentielles de 3 jours et 10 jours.

Plus précisément, la stratégie calcule d'abord l'EMA à 3 jours, l'EMA à 10 jours et leur différence sous forme d'indice d'oscillateur. Elle calcule ensuite la moyenne mobile simple à 16 jours de l'indice d'oscillateur sous forme de ligne de signal.

Analyse des avantages

  1. Utilise l'indice classique de l'oscillateur de Bressert qui est assez efficace
  2. Forme des signaux de négociation clairs avec des croisements de lignes rapides et lents
  3. Permet aux opérations d'inversion de s'adapter à différents régimes de marché
  4. Peut être utilisé à la fois pour les opérations intradiennes et les opérations overnight

Analyse des risques

  1. Les performances de l'oscillateur de Bressert sont instables avec des fluctuations de bénéfices/pertes
  2. Les croisements rapides et lents peuvent générer de faux signaux.
  3. Les opérations de renversement comportent des risques plus élevés et doivent être utilisées avec prudence
  4. Exigent un stop loss pour les opérations intraday et une dimensionnement des positions pour les opérations overnight

Directions d'optimisation

  1. Optimiser les paramètres en ajustant les périodes de moyenne mobile
  2. Ajouter des filtres à l'aide d'autres indicateurs ou d'une action de prix
  3. Ajouter une stratégie de stop loss pour limiter la taille des pertes d'une seule transaction
  4. Optimiser la gestion des capitaux afin de réduire l'impact global du prélèvement

Conclusion

La stratégie de transformation d'indice d'oscillateur est une stratégie de trading à court terme générant des signaux à partir de 3-10 oscillateurs et croisements de lignes de signal. Elle est simple et pratique pour une utilisation intraday et overnight, mais présente des fluctuations PnL inhérentes et des risques de faux signaux. Des filtres supplémentaires, un stop loss et une dimensionnement de position sont nécessaires pour affiner la stratégie.


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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 27/03/2017
// TradeStation does not allow the user to make a Multi Data Chart with 
// a Tick Bar Chart and any other type a chart. This indicator allows the 
// user to plot a daily 3-10 Oscillator on a Tick Bar Chart or any intraday interval.
// Walter Bressert's 3-10 Oscillator is a detrending oscillator derived 
// from subtracting a 10 day moving average from a 3 day moving average. 
// The second plot is an 16 day simple moving average of the 3-10 Oscillator. 
// The 16 period moving average is the slow line and the 3/10 oscillator is 
// the fast line.
// For more information on the 3-10 Oscillator see Walter Bressert's book 
// "The Power of Oscillator/Cycle Combinations" 
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="D_Three Ten Osc", shorttitle="D_Three Ten Osc")
Length1 = input(3, minval=1)
Length2 = input(10, minval=1)
Length3 = input(16, minval=1)
reverse = input(false, title="Trade reverse")
hline(0, color=green, linestyle=line)
xPrice =  request.security(syminfo.tickerid,"D", hl2)
xfastMA = ema(xPrice, Length1)
xslowMA = ema(xPrice, Length2)
xMACD = xfastMA - xslowMA
xSignal = sma(xMACD, Length3)
pos = iff(xSignal > xMACD, -1,
	     iff(xSignal < xMACD, 1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(request.security(syminfo.tickerid, "D", xMACD), color=blue, title="D_Three Ten Osc")
plot(request.security(syminfo.tickerid, "D", xSignal), color=red, title="D_Three Ave")

Plus de