Indice de double dynamique et stratégie hybride d'inversion

Auteur:ChaoZhang est là., Date: 2024-02-06 12:22:32
Les étiquettes:

img

Résumé

L'indice de double dynamique et la stratégie hybride de renversement est une stratégie composite combinant les stratégies de renversement et de dynamique.

La logique de la stratégie

La stratégie est composée de deux sous-stratégies:

  1. 123 Stratégie d'inversion. Elle va long lorsque le prix de clôture augmente pendant deux jours consécutifs et que le Stoch est inférieur à 50; elle va court lorsque le prix de clôture chute pendant deux jours consécutifs et que le Stoch est supérieur à 50.

  2. Stratégie de l'indice de sélection des matières premières (CSI). Il combine la plage moyenne réelle (ATR) et l'indice de mouvement directionnel moyen (ADX). ATR reflète la volatilité du marché et ADX reflète la force de la tendance. Plus la valeur du CSI est élevée, plus la tendance et la volatilité du marché sont fortes. C'est une stratégie de suivi de l'élan.

L'ensemble de la stratégie prend la stratégie 123 Reversal comme corps principal et le CSI comme confirmation assistante. Les signaux de trading ne sont générés que lorsque les signaux des deux stratégies sont cohérents. Il va long lorsque le prix de clôture augmente pendant deux jours consécutifs et que le Stoch est inférieur à 50, et en même temps lorsque le CSI dépasse sa moyenne mobile; il va court lorsque le prix de clôture tombe pendant deux jours consécutifs et que le Stoch est supérieur à 50, et en même temps lorsque le CSI dépasse sa moyenne mobile.

Cela garantit l'attribut d'inversion des signaux de trading, tandis que l'ajout de CSI au filtre peut réduire les faux signaux.

Les avantages

La stratégie présente les avantages suivants:

  1. La combinaison d'inversion et de momentum améliore la précision du signal. Le 123 Reversal comme signal principal peut capturer des inversions soudaines et violentes. CSI comme confirmation peut filtrer un peu de bruit.

  2. Même si les sous-stratégies elles-mêmes présentent des signaux erronés, le signal final doit être confirmé deux fois, ce qui peut filtrer la plupart des faux signaux et minimiser l'ouverture et la fermeture inutiles des positions.

  3. Les paramètres des sous-stratégies peuvent être optimisés séparément sans interférence entre eux.

  4. Les sous-stratégies peuvent être activées séparément. La stratégie prend en charge l'utilisation de 123 Reversal ou CSI uniquement pour le trading.

Analyse des risques

Bien que la stratégie réduise considérablement les faux signaux grâce au filtrage composite, les principaux risques restent les suivants:

  1. La fréquence de génération de signaux de stratégie est relativement faible. En adoptant la double confirmation, une certaine proportion des opportunités de trading sera inévitablement filtrée.

  2. Si les paramètres des deux sous-stratégies sont inappropriés, cela peut entraîner des signaux rares ou même inexistants.

  3. 123 L'inversion appartient aux opérations de contre-trend. En cas de ruptures de prix unidirectionnelles consécutives et violentes, la stratégie sera confrontée à des risques plus importants. Il est conseillé d'ajouter un stop loss pour contrôler le risque.

Direction de l'optimisation

Les principales possibilités d'optimisation de cette stratégie se situent dans les domaines suivants:

  1. Optimiser les paramètres intrinsèques de chaque sous-stratégie pour trouver les combinaisons optimales de paramètres, y compris les paramètres de Stoch, CSI, etc.

  2. L'ajout de tests dans différents filtres de conditions de marché, comme l'utilisation du CSI uniquement lorsque la tendance prévaut, l'utilisation de 123 Reversal uniquement sur les marchés à fourchette, etc. Cela peut surmonter les inconvénients des sous-stratégies dans une certaine mesure.

  3. Développer des modules d'auto-adaptation des paramètres et d'optimisation dynamique, permettant à la stratégie d'ajuster automatiquement les paramètres et de suivre en temps réel les combinaisons optimales de paramètres en fonction des conditions du marché et des statistiques.

  4. Testez différents mécanismes d'arrêt de perte. Un arrêt de perte approprié peut à la fois contrôler efficacement les risques et réduire l'ouverture et la fermeture inutiles des positions.

Résumé

L'indice de double dynamique et la stratégie hybride d'inversion utilisent les idées de confirmation et de combinaison de signaux multiples, en faisant bon usage des forces respectives des stratégies d'inversion et de dynamique, tout en surmontant leurs lacunes en se filtrant mutuellement, pour atteindre une efficacité et une stabilité élevées.


/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/10/2019
// 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 Commodity Selection Index ("CSI") is a momentum indicator. It was 
// developed by Welles Wilder and is presented in his book New Concepts in 
// Technical Trading Systems. The name of the index reflects its primary purpose. 
// That is, to help select commodities suitable for short-term trading.
// A high CSI rating indicates that the commodity has strong trending and volatility 
// characteristics. The trending characteristics are brought out by the Directional 
// Movement factor in the calculation--the volatility characteristic by the Average 
// True Range factor.
// Wilder's approach is to trade commodities with high CSI values (relative to other 
// commodities). Because these commodities are highly volatile, they have the potential 
// to make the "most money in the shortest period of time." High CSI values imply 
// trending characteristics which make it easier to trade the security.
// The Commodity Selection Index is designed for short-term traders who can handle 
// the risks associated with highly volatile markets.
//
// 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

fADX(Len) =>
    up = change(high)
    down = -change(low)
    trur = rma(tr, Len)
    plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, Len) / trur)
    minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, Len) / trur)
    sum = plus + minus 
    100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), Len)

CSI(Length, Commission, Margin, PointValue) =>
    pos = 0.0
    K = 100 * ((PointValue / sqrt(Margin) / (150 + Commission)))
    xATR = atr(Length)
    xADX = fADX(Length)
    nADXR = (xADX + xADX[Length]) * 0.5
    xCSI = K * xATR * nADXR
    xMACSI = sma(xCSI, Length)
    pos := iff(xCSI < xMACSI, 1,
    	     iff(xCSI > xMACSI, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Strategy 123 Reversal & Commodity Selection Index", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
PointValue = input(50)
Margin = input(3000)
Commission = input(10)
LengthCSI = input(14)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posCSI = CSI(LengthCSI, Commission, Margin, PointValue)
pos = iff(posReversal123 == 1 and posCSI == 1 , 1,
	   iff(posReversal123 == -1 and posCSI == -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