Stratégie de suivi de l'inversion avec deux mécanismes

Auteur:ChaoZhang est là., Date: 2024-01-05 15:09:19
Les étiquettes:

img

Résumé

Cette stratégie combine les atouts des indicateurs à double mécanisme en utilisant le modèle 123 pour déterminer les signaux d'inversion, et aidé par l'indice de volume des prix pour déterminer les signaux de dynamique, afin de capturer les tendances d'inversion à court terme.

La logique de la stratégie

  1. Modèle 123 pour le signal de renversement

    • Construit avec une ligne rapide et lente de 9 jours.

    • Lorsque le prix de clôture tombe pendant 2 jours consécutifs et augmente le 3ème jour, et la ligne rapide de Stoch est inférieure à 50, un signal d'achat est généré

    • Lorsque le prix de clôture augmente pendant 2 jours consécutifs et tombe le 3ème jour, et la ligne rapide de Stoch est supérieure à 50, un signal de vente est généré

  2. Indice de volume de prix pour le signal de dynamique

    • L'indice PVI évalue la dynamique en comparant la variation de volume entre la journée précédente et la journée en cours

    • Lorsque le PVI dépasse sa moyenne mobile de N jours, l'élan s'amplifie et un signal d'achat est généré

    • Lorsque le PVI dépasse sa moyenne mobile de N jours, l'élan diminue et un signal de vente est généré.

  3. Combinaison de deux signaux

    • Les signaux de négociation ne sont générés que lorsque les signaux d'inversion et les signaux de dynamique PVI s'accordent

En résumé, cette stratégie tire parti de l'avantage des indicateurs à double mécanisme pour identifier efficacement les opportunités d'inversion de prix-volume à court terme.

Analyse des avantages

  1. La tendance à la baisse des prix à court terme

  2. L'impulsion du PVI juge une action coordonnée prix-volume pour éviter de fausses ruptures

  3. Paramètre optimisé Stoch filtre la plupart des signaux sonores dans les zones turbulentes

  4. La fiabilité du signal double est supérieure à celle des signaux simples

  5. La conception intraday évite les risques du jour au lendemain, adaptés aux transactions à court terme.

Analyse des risques

  1. Risque d'échec du renversement

    • Les signaux d'inversion de modèle ne réussissent pas toujours avec des risques de défaillance de modèle
  2. Risques de défaillance des indicateurs

    • Les stocks, l'IPV et d'autres indicateurs peuvent échouer sur certains marchés anormaux
  3. Risque de manquement à deux signaux

    • Des critères de double signal relativement stricts peuvent faire défaut à certaines opportunités de signal unique
  4. Risques liés à une fréquence de négociation élevée

    • Une surveillance étroite du dimensionnement des positions et du contrôle des risques est nécessaire pour la stratégie de haute fréquence

Direction de l'optimisation

  1. Grand espace d'optimisation des paramètres

    • Les fenêtres, les cycles de Stoch, PVI, etc. ont un espace d'optimisation
  2. Peut intégrer des stratégies de stop loss

    • Le stop-loss mobile peut assurer le taux de gain
  3. Envisager d'ajouter des conditions de filtrage

    • Les tests peuvent ajouter des moyennes mobiles, des filtres de volatilité, etc.
  4. Optimiser le portefeuille de signaux doubles

    • Combinaisons d'essais de stratégies plus doubles

Résumé

Cette stratégie forme un système d'inversion de prix-volume à court terme de haute fiabilité grâce à la combinaison des indicateurs Stoch et PVI. Par rapport aux indicateurs uniques, il a un taux de gain et une attente positive plus élevés. Le ratio Sharpe peut être encore amélioré grâce à l'optimisation et au contrôle des risques. En conclusion, cette stratégie tire parti des forces des indicateurs à double mécanisme pour capturer efficacement les opportunités d'inversion à court terme sur le marché, et vaut la peine d'être testé et optimisé en direct.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 22/04/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 theory behind the indexes is as follows: On days of increasing volume, 
// you can expect prices to increase, and on days of decreasing volume, you can 
// expect prices to decrease. This goes with the idea of the market being in-gear 
// and out-of-gear. Both PVI and NVI work in similar fashions: Both are a running 
// cumulative of values, which means you either keep adding or subtracting price 
// rate of change each day to the previous day`s sum. In the case of PVI, if today`s 
// volume is less than yesterday`s, don`t add anything; if today`s volume is greater, 
// then add today`s price rate of change. For NVI, add today`s price rate of change 
// only if today`s volume is less than yesterday`s.
//
// 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


PVI(EMA_Len) =>
    pos = 0.0
    xROC = roc(close, 1)
    nRes = 0.0
    nResEMA = 0.0
    nRes := iff(volume > volume[1], nz(nRes[1], 0) + xROC, nz(nRes[1], 0))
    nResEMA := ema(nRes, EMA_Len)
    pos := iff(nRes > nResEMA, 1,
        	 iff(nRes < nResEMA, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Positive Volume Index", 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, "---- Positive Volume Index ----")
EMA_Len = input(255, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posPVI = PVI(EMA_Len)
pos = iff(posReversal123 == 1 and posPVI == 1 , 1,
	   iff(posReversal123 == -1 and posPVI == -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