
Cette stratégie détermine la compression et la libération du marché à l’aide d’indicateurs multiples tels que les bandes de Brin, les canaux KC et la couleur du fil de fer, et, combinée à la direction de l’équilibre, détermine la tendance de l’établissement.
Calculer la bande de Brin. La bande de Brin est la moyenne mobile simple de la clôture de N jours du cours de clôture, la bande de Brin est le nombre de jours réels de la bande de Brin + le canal de KC, et la bande de Brin est le nombre de jours réels de la bande de Brin.
Calculer le canal KC. Le canal KC est la moyenne mobile simple du cours de clôture du jour N, la voie supérieure est le multiple M de l’amplitude réelle du jour N, et la voie inférieure est le multiple M de l’amplitude réelle du jour N.
Déterminer la compression et la libération. Compression lorsque la bande de bourin est supérieure à la bande de bourin et supérieure à la bande de bourin. Libération lorsque la bande de bourin est supérieure à la bande de bourin et supérieure à la bande de bourin.
Calculer la tendance de l’établissement. En prenant comme entrée la moyenne des prix de clôture de N jours - les plus hauts et les plus bas de N jours, calculer la régression linéaire de N jours, dont la valeur supérieure à 0 indique la tendance à la hausse de l’établissement, et inférieure à 0 indique la tendance à la baisse de l’établissement.
Signal de transaction: lorsque l’établissement est en hausse, les courts-circuits et la libération sont des signaux de multiplication; lorsque l’établissement est en baisse, les courts-circuits et la compression sont des signaux de blanchiment.
Déterminer les indicateurs multiples, améliorer l’exactitude des signaux. Combiner les bandes de Brin, les canaux KC et les câbles pour déterminer les mouvements du marché et éviter les faux signaux.
L’analyse des tendances de l’établissement et la négociation en fonction de celles-ci.
Arrêt automatique de la perte, contrôle du risque. Arrêt automatique de la perte de la position en cours de négociation lorsque le prix touche la limite de la perte de la perte.
Les paramètres de la bande de Brin et du canal KC sont mal configurés, ce qui peut entraîner des erreurs de jugement de compression et de libération.
L’establishment est en retard sur les tendances et risque de manquer le point de basculement.
Les événements imprévus peuvent entraîner des pertes énormes, il est impossible de les arrêter et il existe un risque élevé de pertes.
Méthode d’optimisation: ajustement des paramètres de la bande de Brin et du canal KC, prise en charge par des indicateurs tels que l’ADX; mise à jour en temps opportun du cycle de la ligne moyenne d’établissement, réduction du retard; ajout d’une zone de sécurité lors de la mise en place d’une ligne de stop-loss.
L’amélioration de la précision des signaux de stockage, combinée à d’autres indicateurs techniques, tels que KDJ, MACD, etc.
Optimiser les paramètres cycliques de la ligne moyenne de l’establishment pour qu’elle puisse mieux saisir les nouvelles tendances.
Ajout d’indicateurs de volume de transaction pour éviter les fausses ruptures, tels que l’indicateur de marée d’énergie, l’indicateur d’accumulation/distribution, etc.
Déterminer le nombre de cycles de temps, distinguer les signaux longs et courts. Éviter d’être coincé.
Les paramètres d’optimisation de l’IA, l’énumération recherchée et la combinaison de paramètres d’optimisation recherchée.
La stratégie utilise les courbes de Bryn pour déterminer la compression et la libération du marché; utilise les tendances d’établissement pour déterminer la direction de la tendance principale; opère dans la direction de la contre-établissement au point de basculement de la libération de la compression. L’avantage de la stratégie est la précision des signaux, le stop-loss et l’évitement des faux signaux. La stratégie peut être optimisée dans les directions suivantes: combinaison de plusieurs indicateurs, optimisation des paramètres de jugement de la tendance, ajout d’indicateurs de quantité d’énergie, jugement de plusieurs périodes de temps, recherche d’avantage de l’IA.
/*backtest
start: 2024-01-17 00:00:00
end: 2024-01-24 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2017
//@version=2
strategy(shorttitle = "Squeeze str 1.1", title="Noro's Squeeze Momentum Strategy v1.1", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
lev = input(1, defval = 1, minval = 1, maxval = 100, title = "leverage")
length = input(20, title="BB Length")
mult = input(2.0,title="BB MultFactor")
lengthKC=input(20, title="KC Length")
multKC = input(1.5, title="KC MultFactor")
useTrueRange = true
mode2 = input(true, defval = true, title = "Mode 2")
usecolor = input(true, defval = true, title = "Use color of candle")
usebody = input(true, defval = true, title = "Use EMA Body")
needbg = input(false, defval = false, title = "Show trend background")
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
// Calculate BB
source = close
basis = sma(source, length)
dev = multKC * stdev(source, length)
upperBB = basis + dev
lowerBB = basis - dev
// Calculate KC
ma = sma(source, lengthKC)
range = useTrueRange ? tr : (high - low)
rangema = sma(range, lengthKC)
upperKC = ma + rangema * multKC
lowerKC = ma - rangema * multKC
sqzOn = (lowerBB > lowerKC) and (upperBB < upperKC)
sqzOff = (lowerBB < lowerKC) and (upperBB > upperKC)
noSqz = (sqzOn == false) and (sqzOff == false)
val = linreg(source - avg(avg(highest(high, lengthKC), lowest(low, lengthKC)),sma(close,lengthKC)), lengthKC,0)
bcolor = iff( val > 0, iff( val > nz(val[1]), lime, green), iff( val < nz(val[1]), red, maroon))
scolor = noSqz ? blue : sqzOn ? black : gray
trend = val > 0 ? 1 : val < 0 ? -1 : 0
//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)
//Body
body = abs(close - open)
abody = sma(body, 10) / 3
//Indicator
bcol = iff( val > 0, iff( val > nz(val[1]), lime, green), iff( val < nz(val[1]), red, maroon))
scol = noSqz ? blue : sqzOn ? black : gray
plot(val, color=bcol, style=histogram, linewidth=4)
plot(0, color=scol, style=cross, linewidth=2)
//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up1 = trend == 1 and (bar == -1 or usecolor == false) and (body > abody or usebody == false) and mode2 == false
dn1 = trend == -1 and (bar == 1 or usecolor == false) and (body > abody or usebody == false) and mode2 == false
up2 = trend == 1 and val < val[1] and mode2
dn2 = trend == -1 and val > val[1] and mode2
exit = (strategy.position_size > 0 and close > strategy.position_avg_price) or (strategy.position_size < 0 and close < strategy.position_avg_price) and mode2
//Trading
lot = strategy.position_size == 0 ? strategy.equity / close * lev : lot[1]
if up1 or up2
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if dn1 or dn2
strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
if exit
strategy.close_all()