Combinaison de stratégie de retournement quantitatif et de volume


Date de création: 2023-09-21 21:07:09 Dernière modification: 2023-09-21 21:07:09
Copier: 0 Nombre de clics: 676
1
Suivre
1617
Abonnés

Aperçu

Cette stratégie est une combinaison de deux stratégies de trading quantitatif, visant à produire des signaux de trading plus précis et plus fiables. La première stratégie est basée sur le revirement des prix, la seconde sur l’analyse du volume de transactions. La combinaison des signaux peut améliorer efficacement la probabilité de profit.

Principe de stratégie

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

  1. Stratégie de retournement

Utilisez l’indicateur STO pour juger des signaux de renversement. Faites plus lorsque le cours de clôture de deux jours augmente et que la ligne lente STO est inférieure à 50; Faites vide lorsque le cours de clôture de deux jours baisse et que la ligne rapide STO est supérieure à 50.

  1. Stratégie de livraison

Calculer la relation entre le prix et la quantité de transaction sur une période donnée, déterminer la direction de la polyvalence et procéder à un traitement linéaire uniforme.

Les deux stratégies sont les mêmes: plus c’est plus, moins c’est moins.

Les signaux combinés améliorent la qualité des signaux, et la probabilité d’un faux signal dans l’une ou l’autre des stratégies est considérablement réduite.

Avantages stratégiques

  • Combinaison de deux stratégies indépendantes pour améliorer la précision du signal
  • La stratégie inverse: saisir les opportunités de changement, la stratégie de volume de transaction: déterminer la voie à suivre
  • Les deux types de stratégies sont mutuellement vérifiées pour réduire les faux signaux.
  • La combinaison est simple, directe et facile à mettre en œuvre
  • Paramètres pouvant être optimisés indépendamment pour chaque partie de la stratégie

Risque stratégique

  • Les stratégies de retournement sont faciles à manipuler et nécessitent une sortie stricte.
  • Les analyses de livraison pourraient être retardées
  • Les statistiques sont basées uniquement sur des indicateurs quantitatifs, mais doivent être accompagnées d’une analyse technique.
  • Les séries plus longues de données trainées1 pour calculer la moyenne
  • Les paramètres des différentes variétés ne sont pas nécessairement universels et doivent être optimisés individuellement.

Les mesures suivantes peuvent réduire le risque:

  • Optimisation des paramètres STO pour améliorer la reconnaissance de retournement
  • Dépassement de chiffre d’affaires confirmé par d’autres indicateurs
  • Optimiser le paramètre de périodicité moyenne
  • Détermination de la forme par la technologie graphique
  • Paramètres de test par variété

Direction d’optimisation

Cette stratégie peut être optimisée dans les domaines suivants:

  1. Les meilleurs paramètres pour tester le STO

Ajustez les paramètres K, D, etc. pour trouver la meilleure combinaison

  1. Deuxième vérification de la rupture de trafic

Ajout d’une aide au jugement avec des indicateurs tels que MACD, BOLL

  1. Optimiser le paramètre de périodicité moyenne

Test de paramètres à différentes périodes pour obtenir un jugement plus stable

  1. Introduction d’une forme graphique basée sur un signal combiné

Par exemple, lorsque la déformation se produit, on rentre dans le jeu.

  1. Combinaison des paramètres de test selon les variétés

Différentes variétés ne possèdent pas forcément les mêmes paramètres et doivent être testées séparément.

Résumer

Cette stratégie permet d’améliorer efficacement la qualité et l’exactitude du signal en combinant deux types différents de stratégies, l’inversion et la conversion. Cependant, il faut également prêter attention à l’optimisation des paramètres, aux indicateurs techniques auxiliaires, etc., pour améliorer l’efficacité de la stratégie.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 21/10/2020
// 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 is another version of FVE indicator that we have posted earlier 
// in this forum.
// This version has an important enhancement to the previous one that`s 
// especially useful with intraday minute charts.
// Due to the volatility had not been taken into account to avoid the extra 
// complication in the formula, the previous formula has some drawbacks:
// The main drawback is that the constant cutoff coefficient will overestimate 
// price changes in minute charts and underestimate corresponding changes in 
// weekly or monthly charts.
// And now the indicator uses adaptive cutoff coefficient which will adjust to 
// all time frames automatically.
//
// 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


FVI(Samples,Perma,Cintra,Cinter) =>
    pos = 0
    xhl2 = hl2
    xhlc3 = hlc3
    xClose = close
    xIntra = log(high) - log(low)
    xInter = log(xhlc3) - log(xhlc3[1])
    xStDevIntra = stdev(sma(xIntra, Samples) , Samples)
    xStDevInter = stdev(sma(xInter, Samples) , Samples)
    xVolume = volume
    TP = xhlc3
    TP1 = xhlc3[1]
    Intra = xIntra
    Vintra = xStDevIntra
    Inter = xInter
    Vinter = xStDevInter
    CutOff = Cintra * Vintra + Cinter * Vinter
    MF = xClose - xhl2 + TP - TP1
    FveFactor =  iff(MF > CutOff * xClose, 1, 
                  iff(MF < -1 * CutOff * xClose, -1,  0))
    xVolumePlusMinus = xVolume * FveFactor
    Fvesum = sum(xVolumePlusMinus, Samples)
    VolSum = sum(xVolume, Samples)
    xFVE = (Fvesum / VolSum) * 100
    xEMAFVE = ema(xFVE, Perma)
    pos :=iff(xFVE > xEMAFVE, 1,
    	   iff(xFVE < xEMAFVE, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Volatility Finite Volume Elements", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Samples = input(22, minval=1)
Perma = input(40, minval=1)
Cintra = input(0.1)
Cinter = input(0.1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posFVI = FVI(Samples,Perma,Cintra,Cinter)
pos = iff(posReversal123 == 1 and posFVI == 1 , 1,
	   iff(posReversal123 == -1 and posFVI == -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 )