La stratégie de rupture intelligente à double coude est une combinaison de la stratégie de 123 inversion et de la stratégie d’oscillateur de détection d’axe. La stratégie utilise principalement la forme de la double coude pour déterminer les points de rupture de tendance potentiels, en combinaison avec la détection d’axe pour filtrer les fausses ruptures, permettant de capturer des ruptures de tendance dans des positions techniques importantes.
La stratégie est composée de deux volets:
123 La stratégie de retournement est tirée du livre de Ulf Jensen Comment je peux doubler ma valeur sur le marché à terme page 183. Cette stratégie appartient à la stratégie de retournement.
La logique est la suivante: lorsque le prix de clôture est supérieur au prix de clôture du jour précédent pendant 2 jours consécutifs et que la ligne de ralentissement aléatoire est inférieure à 50 le 9e jour, faites plus; lorsque le prix de clôture est inférieur au prix de clôture du jour précédent pendant 2 jours consécutifs et que la ligne de ralentissement aléatoire est supérieure à 50 le 9e jour, faites moins.
La stratégie de l’oscillateur de détection d’axe central a été proposée par Giorgos E. Siligardos et publiée dans le numéro de septembre 2009 du magazine Stocks & Commodities.
Cette stratégie utilise la moyenne et l’indicateur RSI en combinaison pour déterminer la volatilité des prix à l’approche d’une trajectoire ascendante ou descendante, générant un signal de transaction. La formule de calcul est la suivante:
当价格 > 移动均线时:
指标值 = (RSI值 - 35) / (85 - 35)
当价格 <= 移动均线时:
指标值 = (RSI值 - 20) / (70 - 20)
如果指标值 > 50, 做多
如果指标值 < 50, 做空
La combinaison des deux stratégies permet de réaliser des opérations de rupture si l’indicateur émet des signaux dans la même direction que la forme de la double couche. Ainsi, il est possible de détecter de nouvelles tendances à des endroits techniques importants tout en évitant les fausses ruptures dans la zone oscillante.
Les méthodes de contrôle et d’optimisation des risques:
Cette stratégie peut être optimisée dans les domaines suivants:
Tester différents systèmes homogènes pour trouver la meilleure combinaison de paramètres
Optimisation des paramètres du RSI pour réduire le taux de fausses déclarations
Augmentation du filtrage du trafic pour assurer une percée efficace
Les indicateurs de tendance combinés pour éviter une rupture de tendance
Optimisation automatique des paramètres par apprentissage automatique
Augmenter les stratégies de prévention des pertes et contrôler les risques
Évaluer la pérennité de la percée et fixer des objectifs de profit
Analyser les caractéristiques des différentes variétés et ajuster les paramètres
L’optimisation des paramètres, l’évaluation de l’effet de rupture, l’adaptation de la stratégie de stop loss, etc., permettent d’améliorer continuellement la stratégie et d’obtenir des rendements stables dans différents environnements de marché.
La stratégie de rupture intelligente à double enchevêtrement utilise un mécanisme intégré de reconnaissance de la forme inverse et du filtre de l’indicateur pour capturer les points de conversion de tendance potentiels à des endroits techniques importants. Par rapport à la stratégie de simple suivi des ruptures, le moment de la mise en œuvre des opérations de rupture est plus précis, évitant ainsi la gêne des pertes répétées dans les zones de choc.
/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-03 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 20/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 Pivot Detector Oscillator, by Giorgos E. Siligardos
// The related article is copyrighted material from Stocks & Commodities 2009 Sep
//
// 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
PDO(Length_MA,Length_RSI,UpBand,DownBand,MidlleBand) =>
pos = 0.0
xMA = sma(close, Length_MA)
xRSI = rsi(close, Length_RSI)
nRes = iff(close > xMA, (xRSI - 35) / (85-35),
iff(close <= xMA, (xRSI - 20) / (70 - 20), 0))
pos:= iff(nRes * 100 > 50, 1,
iff(nRes * 100 < 50, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Pivot Detector Oscillator)", 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, "---- Pivot Detector Oscillator ----")
Length_MA = input(200, minval=1)
Length_RSI = input(14, minval=1)
UpBand = input(100, minval=1)
DownBand = input(0)
MidlleBand = input(50)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posPDO = PDO(Length_MA,Length_RSI,UpBand,DownBand,MidlleBand)
pos = iff(posReversal123 == 1 and posPDO == 1 , 1,
iff(posReversal123 == -1 and posPDO == -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 )