Stratégie de couplage à double voie de renversement de dynamique


Date de création: 2023-11-24 10:17:15 Dernière modification: 2023-11-24 10:17:15
Copier: 0 Nombre de clics: 613
1
Suivre
1617
Abonnés

Stratégie de couplage à double voie de renversement de dynamique

Aperçu

Cette stratégie utilise un ensemble d’indicateurs techniques pour réaliser un renversement de dynamique associé à une double voie, formant un signal de transaction. La stratégie utilise un point de renversement de jugement de forme 123, formant un signal d’appariement avec un indicateur CSI ergodique, permettant un suivi de la tendance. La stratégie vise à capturer la tendance de la courte ligne moyenne et à obtenir un profit plus élevé.

Principe de stratégie

Cette stratégie comporte deux volets:

  1. 123 Un tournant dans le jugement formel
  2. les indicateurs ergodic CSI génèrent des signaux de paire

Le jugement de la forme 123 est un jugement de l’inversion de prix par rapport aux 3 lignes K les plus récentes. La logique de jugement spécifique est: Si le prix de clôture de la première ligne K est supérieur à celui de la deuxième ligne K et que les stochs rapides et lents sont inférieurs à 50, il s’agit d’un signal d’achat. Si le prix de clôture des deux premières lignes K est inférieur au prix de clôture de la dernière ligne K et que les indices actuels de Stoch sont supérieurs à 50, un signal de vente est donné.

L’indicateur ergodic CSI prend en compte plusieurs facteurs, tels que le prix, l’amplitude réelle et l’indicateur de tendance, afin de juger de manière globale de l’évolution du marché et de générer des zones d’achat et de vente. Un signal d’achat est généré lorsque l’indicateur est au-dessus de la zone d’achat et un signal de vente lorsque l’indicateur est au-dessous de la zone de vente.

Finalement, le signal de retour de la forme 123 est calculé en fonction du signal orbital de l’ergodic CSI pour obtenir le signal de stratégie final.

Avantages stratégiques

  1. Capturer les tendances à courte portée, plus de potentiel de profit
  2. Le jugement de la forme inverse, pour saisir efficacement le point de basculement
  3. Le couplage à deux voies réduit le nombre de faux signaux

Risque stratégique

  1. Les actions peuvent être déviées et entraîner des pertes
  2. Le rétrogradé est vulnérable aux chocs de marché
  3. L’espace d’optimisation des paramètres est limité et les effets sont fluctuants

Direction d’optimisation

  1. Optimiser les paramètres pour améliorer la rentabilité des stratégies
  2. Augmentation de la logique de stop-loss et réduction des pertes individuelles
  3. Une approche multifonctionnelle pour améliorer la qualité de la sélection

Résumer

Cette stratégie permet de suivre efficacement les tendances de la courte et moyenne ligne par rapport à un seul indicateur technique. La prochaine étape consiste à optimiser davantage les paramètres et à ajouter des modules de stop-loss et de stock-option pour réduire les retraits et améliorer l’efficacité globale.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 22/07/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 one of the techniques described by William Blau in his book 
// "Momentum, Direction and Divergence" (1995). If you like to learn more, 
// we advise you to read this book. His book focuses on three key aspects 
// of trading: momentum, direction and divergence. Blau, who was an electrical 
// engineer before becoming a trader, thoroughly examines the relationship between 
// price and momentum in step-by-step examples. From this grounding, he then looks 
// at the deficiencies in other oscillators and introduces some innovative techniques, 
// including a fresh twist on Stochastics. On directional issues, he analyzes the 
// intricacies of ADX and offers a unique approach to help define trending and 
// non-trending periods.
// This indicator plots Ergotic CSI and smoothed Ergotic CSI to filter out noise. 
//
// 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)

ECSI(r,Length,BigPointValue,SmthLen,SellZone,BuyZone) =>
    pos = 0
    source = close
    K = 100 * (BigPointValue / sqrt(r) / (150 + 5))
    xTrueRange = atr(1) 
    xADX = fADX(Length)
    xADXR = (xADX + xADX[1]) * 0.5
    nRes = iff(Length + xTrueRange > 0, K * xADXR * xTrueRange / Length,0)
    xCSI = iff(close > 0,  nRes / close, 0)
    xSMA_CSI = sma(xCSI, SmthLen)
    pos := iff(xSMA_CSI > BuyZone, 1,
             iff(xSMA_CSI <= SellZone, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Ergodic CSI", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
r = input(32, minval=1)
LengthECSI = input(1, minval=1)
BigPointValue = input(1.0, minval=0.00001)
SmthLen = input(5, minval=1)
SellZone = input(0.06, minval=0.00001)
BuyZone = input(0.02, minval=0.001)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posECSI = ECSI(r,LengthECSI,BigPointValue,SmthLen,SellZone,BuyZone)
pos = iff(posReversal123 == 1 and posECSI == 1 , 1,
	   iff(posReversal123 == -1 and posECSI == -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 )