Stratégie de suivi de l'inversion quantitative à deux facteurs

Auteur:ChaoZhang est là., Date: 2023-12-20 17:26:38 Je suis désolé
Les étiquettes:

img

Résumé

Cette stratégie combine le modèle d'inversion 123 et l'indicateur Awesome Oscillator pour mettre en œuvre le trading de suivi de l'inversion quantitative à deux facteurs.

La stratégie est principalement adaptée pour les transactions à contre-courant à moyen et court terme.

Principe de stratégie

  1. 123 Modèle d'inversion

    Les prix de clôture des deux jours précédents et le prix de clôture actuel sont jugés en fonction d'un schéma haut-haut-faible ou faible-faible-haut, indiquant un éventuel signal d'inversion.

    Dans le même temps, l'indicateur stochastique doit être situé dans la zone de surachat ou de survente pour confirmer davantage le signal de renversement et filtrer les faux retours.

  2. Un oscillateur génial.

    L'oscillateur impressionnant est un indicateur de dynamique construit sur la base de la différence entre la moyenne mobile à moyen terme et la moyenne mobile à court terme.

    Cette stratégie adopte le jugement de l'indicateur sur l'état haussier ou baissier pour déterminer les points d'achat et de vente.

  3. Confirmation à deux facteurs

    Grâce à la double confirmation du modèle de renversement 123 et de l'oscillateur Awesome, les faux renversements peuvent être filtrés efficacement et la précision du timing d'entrée peut être améliorée.

Les avantages de la stratégie

  1. L'utilisation de facteurs doubles pour déterminer les points d'inversion peut filtrer efficacement les faux signaux d'inversion.

  2. En tant qu'indicateur de dynamique, l'oscillateur Awesome peut améliorer la précision du timing d'entrée.

  3. L'ajout de l'indicateur stochastique permet d'éviter le risque d'achat au sommet et de vente au bas.

  4. Les stratégies d'inversion elles-mêmes présentent des avantages en termes de taux de gain et de rapport risque/rendement plus élevés.

Risques liés à la stratégie

  1. Le risque d'échec de l'inversion existe toujours. L'utilisation de facteurs doubles peut réduire la probabilité, mais ne peut pas éviter complètement ce risque.

  2. Risque d'optimisation excessive: les paramètres des indicateurs doivent être testés et optimisés pour différents marchés afin d'éviter une optimisation excessive.

  3. Risque de négociation contre la tendance du marché. Dans un marché à forte tendance, les stratégies d'inversion sont sujettes à des pertes contraires. Le stop loss peut être réglé pour contrôler les risques.

Directions d'optimisation

  1. Tester et optimiser des combinaisons de paramètres d'indicateur pour améliorer la robustesse.

  2. Ajoutez une stratégie de stop loss pour contrôler une seule perte.

  3. Combiner les sélections des secteurs et des industries pour éviter une sélection inappropriée des stocks.

  4. Optimiser la période de rétention pour éviter une tendance aveugle.

  5. Testez différents systèmes de moyennes mobiles à des conditions auxiliaires.

Conclusion

En résumé, tout en assurant une certaine probabilité de profit et un certain rapport risque-rendement, cette stratégie de suivi quantitatif de l'inversion à deux facteurs utilise Awesome Oscillator comme outil de synchronisation d'entrée et évite d'acheter au pic grâce à l'indicateur stochastique, qui peut contrôler efficacement les risques du trading d'inversion et présente une grande praticité.

Cependant, les risques inhérents aux stratégies d'inversion ne peuvent pas être ignorés. Il est toujours nécessaire d'optimiser les paramètres des indicateurs, de définir des conditions de stop loss, etc. pour contrôler les risques. Si elle est utilisée correctement, cette stratégie peut apporter aux investisseurs des rendements stables en excès.


/*backtest
start: 2023-12-12 00:00:00
end: 2023-12-14 05:00:00
period: 20m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 12/08/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
//    This indicator is based on Bill Williams` recommendations from his book 
//    "New Trading Dimensions". We recommend this book to you as most useful reading.
//    The wisdom, technical expertise, and skillful teaching style of Williams make 
//    it a truly revolutionary-level source. A must-have new book for stock and 
//    commodity traders.
//    The 1st 2 chapters are somewhat of ramble where the author describes the 
//    "metaphysics" of trading. Still some good ideas are offered. The book references 
//    chaos theory, and leaves it up to the reader to believe whether "supercomputers" 
//    were used in formulating the various trading methods (the author wants to come across 
//    as an applied mathemetician, but he sure looks like a stock trader). There isn't any 
//    obvious connection with Chaos Theory - despite of the weak link between the title and 
//    content, the trading methodologies do work. Most readers think the author's systems to 
//    be a perfect filter and trigger for a short term trading system. He states a goal of 
//    10%/month, but when these filters & axioms are correctly combined with a good momentum 
//    system, much more is a probable result.
//    There's better written & more informative books out there for less money, but this author 
//    does have the "Holy Grail" of stock trading. A set of filters, axioms, and methods which are 
//    the "missing link" for any trading system which is based upon conventional indicators.
//    This indicator plots the oscillator as a histogram where periods fit for buying are marked 
//    as blue, and periods fit for selling as red. If the current value of AC (Awesome Oscillator) 
//    is over the previous, the period is deemed fit for buying and the indicator is marked blue. 
//    If the AC values is not over the previous, the period is deemed fir for selling and the indicator 
//    is marked red.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


BWAO(nLengthSlow,nLengthFast) =>
    pos = 0.0
    xSMA1_hl2 = sma(hl2, nLengthFast)
    xSMA2_hl2 = sma(hl2, nLengthSlow)
    xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2
    pos := iff(xSMA1_SMA2 > xSMA1_SMA2[1], 1,
    	      iff(xSMA1_SMA2 < xSMA1_SMA2[1], -1, nz(pos[1], 0)))   
    pos

strategy(title="Combo Backtest 123 Reversal & Awesome Oscillator (AO)", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Awesome Oscillator (AO) ----")
nLengthSlow = input(34, minval=1, title="Length Slow")
nLengthFast = input(5, minval=1, title="Length Fast")
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posBWAO = BWAO(nLengthSlow,nLengthFast)
pos = iff(posReversal123 == 1 and posBWAO == 1 , 1,
	   iff(posReversal123 == -1 and posBWAO == -1, -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)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Plus de