Stratégie quantitative à double indicateur


Date de création: 2023-12-21 10:59:16 Dernière modification: 2023-12-21 10:59:16
Copier: 1 Nombre de clics: 658
1
Suivre
1623
Abonnés

Stratégie quantitative à double indicateur

Aperçu

La stratégie produit un signal de négociation en combinant 123 indicateurs de revers et RAVI. Parmi ceux-ci, 123 revers appartiennent à la stratégie de revers, qui utilise le mouvement du prix des actions pendant deux jours consécutifs pour déterminer le mouvement futur du prix. L’indicateur RAVI, quant à lui, détermine si le prix est entré dans la zone de survente.

Principe de stratégie

123 retour en arrière

L’indicateur est basé sur la valeur aléatoire de l’indicateur K. Plus précisément, le prix de clôture du jour est inférieur à celui des deux jours précédents, et le 9e jour de clôture aléatoire est supérieur à 50.

Indicateur RAVI

L’indicateur détermine les ventes par l’écart entre la ligne rapide et la ligne lente. Plus précisément, l’écart entre la ligne moyenne de 7 jours et la ligne moyenne de 65 jours est plus grand que certains paramètres et plus petit que certains paramètres.

Signaux stratégiques

Lorsque 123 inverse et RAVI synchronise le multiple, le signal est généré. Le multiple est égal à 1 pour les deux indicateurs et le blanc est égal à -1 pour les deux indicateurs. Ainsi, la confirmation est effectuée par un double indicateur, ce qui évite le signal erroné d’un seul indicateur.

Analyse des avantages

  • La combinaison des deux indicateurs permet d’améliorer l’exactitude du signal et d’éviter les erreurs.
  • 123 utilise l’information de la ligne K à l’envers, RAVI utilise l’information de la ligne uniforme, juge le marché de plusieurs angles
  • Les paramètres RAVI sont réglables et peuvent être optimisés pour différentes variétés et conditions de marché
  • Les tendances inversées peuvent être capturées ou suivies.

Risque et optimisation

  • La combinaison de deux indicateurs peut générer des signaux incohérents. Les paramètres de différence de prix peuvent être pris en compte, et des signaux peuvent également être émis lorsque les deux indicateurs ont une différence de prix dans un paramètre.
  • Le 123 inverse est une stratégie à haute fréquence qui nécessite une combinaison avec d’autres stratégies à basse fréquence pour réduire la fréquence des transactions
  • Le RAVI est un excellent outil pour capturer les tendances de la ligne moyenne et longue, tandis que les indicateurs de la ligne courte du Combine permettent d’améliorer la résistance des stratégies au risque.

Résumer

La stratégie prend en compte les facteurs de retournement et les facteurs de tendance, confirme la probabilité d’émettre un mauvais signal par une confirmation de deux indicateurs. La prochaine étape peut être l’introduction d’algorithmes d’apprentissage automatique, permettant l’optimisation des paramètres d’adaptation.

Code source de la stratégie
/*backtest
start: 2023-11-20 00:00:00
end: 2023-12-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 31/05/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 indicator represents the relative convergence/divergence of the moving 
// averages of the financial asset, increased a hundred times. It is based on 
// a different principle than the ADX. Chande suggests a 13-week SMA as the 
// basis for the indicator. It represents the quarterly (3 months = 65 working days) 
// sentiments of the market participants concerning prices. The short moving average 
// comprises 10% of the one and is rounded to seven.
//
// 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


RAVI(LengthMAFast, LengthMASlow, TradeLine) =>
    pos = 0.0
    xMAF = sma(close, LengthMAFast)
    xMAS = sma(close, LengthMASlow)
    xRAVI = ((xMAF - xMAS) / xMAS) * 100
    pos:= iff(xRAVI > TradeLine, 1,
    	   iff(xRAVI < TradeLine, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Range Action Verification Index (RAVI)", 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, "---- Range Action Verification Index (RAVI) ----")
LengthMAFast = input(title="Length MA Fast", defval=7)
LengthMASlow = input(title="Length MA Slow", defval=65)
TradeLine = input(0.14, step=0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRAVI = RAVI(LengthMAFast, LengthMASlow, TradeLine)
pos = iff(posReversal123 == 1 and posRAVI == 1 , 1,
	   iff(posReversal123 == -1 and posRAVI == -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 )