Stratégie de suivi de l'inversion de plusieurs facteurs

Auteur:ChaoZhang est là., Date: 15 septembre 2023 à 14h31h15
Les étiquettes:

Vue d'ensemble de la stratégie

La stratégie de suivi de l'inversion multifactorielle génère des signaux de négociation en incorporant des modèles d'inversion des prix et des indicateurs de surachat-survente.

La logique de la stratégie

La stratégie est composée de deux modules:

  1. 123 Module de modèle d'inversion
  • Passez à court lorsque vous voyez un nouveau sommet de 2 jours, mais reculez le 3ème jour, indiquant un potentiel de sommet à court terme.

  • Allez long quand vous voyez un nouveau bas de 2 jours mais rebondissez le 3ème jour, indiquant un potentiel bas à court terme.

  1. Module RSI à ingénierie inverse
  • Identifier les points d'inversion en ajustant dynamiquement le RSI des lignes de surachat et de survente.

  • Allez court lorsque le RSI est au-dessus de la ligne de surachat ajustée, allez long lorsque le RSI est en dessous de la ligne de survente ajustée.

Les signaux de trading ne sont générés que lorsque les deux modules sont alignés.

Le plus grand avantage est d'incorporer plusieurs facteurs pour déterminer les hauts et les bas structurels, filtrer certains faux signaux à partir de facteurs individuels et améliorer le taux de gain réel des transactions.

Les avantages de la stratégie

  • Synthèse multifactorielle pour une identification complète de la valeur élevée/faible

  • Combine les modèles de renversement et les indicateurs de surachat/survente

  • Filtre les faux retours, améliore la précision

  • Paramètres de backtest optimisés et adaptables à différents marchés

  • Facile à mettre en œuvre pour une réplication rapide

Alertes au risque

  • Les signaux d'inversion peuvent être retardés, une mise à jour des paramètres est nécessaire

  • Prévenir le suréchange pour éviter plus de commissions

  • Les fondamentaux des stocks individuels doivent encore être considérés

  • Stratégies d'inversion plus adaptées aux indices et aux stocks chauds

Conclusion

La stratégie de suivi de l'inversion multi-facteur combine parfaitement les forces des outils quantiques et de l'expérience d'analyse manuelle en considérant plusieurs perspectives pour les signaux de trading.


/*backtest
start: 2023-08-15 00:00:00
end: 2023-09-14 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 15/06/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
// The related article is copyrighted material from
// Stocks & Commodities.
//
// 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


RE_RSI(Value,WildPer) =>
    pos = 0.0
    AUC = 0.0
    ADC = 0.0
    ExpPer = 2 * WildPer - 1
    K = 2 / (ExpPer + 1)
    AUC := iff(close > close[1], K * (close - close[1]) + (1 - K) * nz(AUC[1], 1), (1-K) * nz(AUC[1], 1))
    ADC := iff(close > close[1], (1-K) * nz(ADC[1], 1), K * (close[1] - close) + (1 - K) * nz(ADC[1], 1))
    nVal = (WildPer - 1) * (ADC * Value / (100 - Value) - AUC)
    nRes = iff(nVal >= 0, close + nVal, close + nVal * (100 - Value) / Value)
    pos:= iff(nRes > close, -1,
    	   iff(nRes < close, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Reverse Engineering RSI, by Giorgos Siligardos", 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, "---- Reverse Engineering RSI ----")
Value = input(50, minval=1)
WildPer = input(14,minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRE_RSI = RE_RSI(Value,WildPer)
pos = iff(posReversal123 == 1 and posRE_RSI == 1 , 1,
	   iff(posReversal123 == -1 and posRE_RSI == -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