
Cette stratégie est une stratégie de négociation de rupture basée sur les indicateurs de la chaîne. Elle utilise les caractéristiques de choc de la descente et de la montée de la chaîne, en faisant plus lorsque le prix franchit la montée de la chaîne et en faisant moins quand il franchit la descente de la chaîne. C’est une stratégie de type suivi de tendance.
La stratégie utilise d’abord l’axe médian de la chaîne calculée par le SMA pour former une chaîne de prix en ajoutant une valeur paramétrique pour la trajectoire ascendante et en soustrayant une valeur paramétrique pour la trajectoire descendante. Ensuite, elle détermine si le prix a franchi la trajectoire ascendante et descendante et, combinée à une augmentation du volume des transactions, elle sert de signal d’ouverture de position.
La logique de négociation de la stratégie est la suivante:
Calculer l’axe médian du canal: SMA ((prix de clôture, N)
L’orbite du tunnel: axe central + valeur de paramètre
Orbitrage du tunnel: axe central - valeur de paramètre
Lors d’une rupture de la ligne de mise en orbite, une entrée supplémentaire est effectuée si le volume de transactions est supérieur au double du cycle précédent.
Le retour à l’entrée de la voie ferrée
Lors de la rupture de la trajectoire descendante, une entrée en bourse est effectuée si la condition de volume de transactions est supérieure à 2 fois celle du cycle précédent.
La position de tête vide lors de l’entrée dans le passage
Cette stratégie présente les avantages suivants:
L’indicateur de canal permet de suivre efficacement les tendances des prix.
Les conditions d’une forte augmentation du volume des transactions permettent de filtrer efficacement les fausses percées.
Le back-in-channel est un mécanisme d’arrêt de perte et de sortie qui permet de limiter les pertes d’une seule transaction.
Les caractéristiques de la secousse sont adaptées pour capturer les courts courants.
La logique de mise en œuvre est simple, facile à comprendre et à mettre en œuvre.
Cette stratégie comporte aussi des risques:
Lorsque le prix est du côté du canal pendant une longue période, il déclenche une série d’ouvertures de position de gré à gré, ce qui entraîne un risque de perte.
Une mauvaise configuration des paramètres du canal peut entraîner une surabondance de signaux erronés.
Le critère de jugement de l’explosion des transactions est inapproprié et peut aussi manquer le véritable signal de rupture.
Le mécanisme d’arrêt des pertes peut être trop conservateur et manquer de grandes occasions.
Cette stratégie peut être optimisée dans les domaines suivants:
Optimiser les paramètres de la chaîne afin de mieux l’adapter aux caractéristiques des différents marchés.
Optimiser ou augmenter les conditions d’ouverture de position, par exemple en tenant compte de la marge de manœuvre ou de la forme de Kline, afin d’éviter les fausses percées.
Optimiser le mécanisme d’arrêt des pertes et de sortie, en assouplissant la marge d’arrêt appropriée et en évitant les sorties prématurées.
Augmentation des mécanismes de gestion des positions, adaptation des positions et des taux d’utilisation des fonds en fonction des conditions du marché.
Il est important d’utiliser plus d’indicateurs pour déterminer la direction de la tendance générale et d’éviter de faire face à la tendance générale.
La stratégie est une stratégie de suivi de tendance simple et pratique. Elle utilise les caractéristiques de la volatilité des canaux de prix pour capturer efficacement les tendances de courte ligne. Cependant, il faut également faire attention à l’optimisation des paramètres et à la prévention des risques qui en découlent, afin d’obtenir de meilleurs résultats.
/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Copyright, 2022, Cache_that_pass. You are free to use this script however you see fit and reproduce it in any manner.
//@version=5
////// Name the strategy between the 2 quotation marks. Consider setting commission type and value in strategy header to match exchanges rates. //////
strategy("Oscillating SSL Channel Strategy", "O-SSL Strat", overlay=true, pyramiding=1, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 100, calc_on_order_fills=true)
////// Inputs and calculations used by script //////
period = input(title='Period', defval=25)
len = input(title='Period', defval=25)
smaHigh = ta.sma(high, len)
smaLow = ta.sma(low, len)
Hlv = int(na)
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1]
sslDown = Hlv < 0 ? smaHigh : smaLow
sslUp = Hlv < 0 ? smaLow : smaHigh
////// Show me the money //////
plot(sslDown, linewidth=2, color=color.new(color.red, 0))
plot(sslUp, linewidth=2, color=color.new(color.lime, 0))
////// Trade execution logic //////
//pseudo-code//
//Go long when high (or maybe close) breaks above the sslUp and volume is 2x or > Volume[1] and sslUp > sslDown
//Close the above longs when sslUp crosses under sslDown (or set takeprofit and stop loss exits)
//
//Go short when low is lower than the sslUp and volume is 2x or > Volume[1] and sslDown > sslUp
//Close shorts when sslDown crosses under sslUp
longCondition1 = (sslUp > sslDown)
longCondition2 = ta.crossover(high, sslUp)
//longCondition3 = (volume >= (volume[1]*1.89))
longCondition = ((longCondition1) and (longCondition2))// and (longCondition3))
longExit = ta.crossunder(sslUp, sslDown)
////// Bring It //////
if (longCondition)
strategy.entry("Bring It", strategy.long)
////// Sling It //////
if (longExit)
strategy.close("Bring It", comment="Sling It")
shortCondition1 = (sslDown) > (sslUp)
shortCondition2 = ta.crossunder(low, sslUp)
//shortCondition3 = (volume >= (volume[1]*1.89))
shortCondition = ((shortCondition1) and (shortCondition2))// and (shortCondition3))
shortExit = ta.crossunder(sslDown, sslUp)
////// Bring It //////
if (shortCondition)
strategy.entry("Bring It", strategy.long)
////// Sling It //////
if (shortExit)
strategy.close("Bring It", comment="Sling It")
////// Sling It //////
if (shortCondition)
strategy.entry("Sling It", strategy.short)
////// Bling It //////
if (shortExit)
strategy.close("Sling It", comment="Bring It")