
Diese Strategie beurteilt die Kompression und Befreiung des Marktes anhand von mehreren Indikatoren wie Brin-Band, KC-Kanal und Fadenfarbe und beurteilt in Kombination mit der Richtung der Gleichlinie die Richtung der Establishment-Trend und handelt bei einer Trendwende.
Berechnen Sie den einfachen Moving Average für den N-Tage-Schlusskurs in der Brin-Band, den M-Tag der tatsächlichen Breite für den N-Tage-Schlusskurs in der Oberbahn und den M-Tag der tatsächlichen Breite für den N-Tage-Schlusskurs in der Unterbahn.
Berechnen Sie den KC-Kanal. Der KC-Kanal ist der einfache Moving Average für den N-Tag-Schlusskurs in der Mitte, der oberen Schiene ist das M-Mal der tatsächlichen Breite in der Mitte + N-Tage und der unteren Schiene ist das M-Mal der tatsächlichen Breite in der Mitte - N-Tage.
Komprimierung und Freisetzung. Komprimiert, wenn der Brin-Band auf der Oberbahn unterhalb der Oberbahn des KC-Kanals liegt und der Brin-Band unterhalb der Unterbahn des KC-Kanals. Freisetzt, wenn der Brin-Band auf der Oberbahn über der Oberbahn des KC-Kanals liegt und der Brin-Band unterhalb der Unterbahn des KC-Kanals liegt.
Berechnen Sie die Errichtungstrend. Mit dem N-Tage-Schlusskurs - dem Mittelwert der N-Tage-Höchst- und Tiefstpreise - berechnen Sie eine N-Tage-Linear-Rückkehr, deren Wert größer als 0 für die Errichtung aufwärts und kleiner als 0 für die Errichtung abwärts ist.
Wenn die Einrichtung steigt, werden die kurze Sonnenlinie und die Freisetzung als Multi-Signal verwendet. Wenn die Einrichtung sinkt, werden die kurze Sonnenlinie und die Kompression als Leerzeichen verwendet.
Mehrfache Indikatoren, um die Signalgenauigkeit zu verbessern. In Kombination mit Brin-Band, KC-Kanal und Faden, um die Marktentwicklung zu beurteilen und falsche Signale zu vermeiden.
Establishment-Trendbeurteilung, Handel nach dem Trend. Nutzen Sie die wichtigsten Trends der Establishment-Beurteilung und vermeiden Sie Gegenwirkung.
Automatische Stop-Loss, Risikokontrolle. Wenn der Preis die Stop-Loss-Linie berührt, wird automatisch eine Off-Position-Stop-Loss durchgeführt.
Die Brin-Band- und KC-Channel-Parameter sind falsch eingestellt, was zu Komprimierungs- und Freisetzungsfehlern führen kann.
Es ist nicht unwahrscheinlich, dass die establishment die Trendwende verpasst hat.
Es gibt ein großes Risiko für Verluste, wenn ein unvorhergesehenes Ereignis zu einem großen Verlust führt.
Optimierungsmethoden: Anpassung der Brin-Band- und KC-Kanalparameter mit Hilfe von Indikatoren wie ADX; zeitnahe Aktualisierung des Establishment-Gewinnzyklus zur Verringerung der Verzögerung; Hinzufügung von Bufferzonen bei der Einrichtung einer Stop-Loss-Linie.
In Kombination mit mehr technischen Indikatoren verbessert die Genauigkeit der Lagerstättensignale.
Optimierung der periodischen Parameter der Establishment-Grenze, um neue Trends besser zu erfassen.
Um falsche Durchbrüche zu vermeiden, werden die Transaktionsvolumen-Indikatoren hinzugefügt.
Unterscheiden Sie zwischen langen und kurzen Signalen.
AI optimierte Parameter, searched Aufzählung und searched optimale Parameterkombination. Verringerung der Überpassung.
Die Strategie basiert hauptsächlich darauf, die Komprimierung und Freisetzung des Marktes anhand der Brin-Bänder zu bestimmen. Die Unterstützung der Festlegung der Haupttrendrichtung durch die Verwendung des Establishment-Trends. Die Operation in der Gegenteilung der Komprimierungsfreisetzung an den Wendepunkten. Der Strategievorteil ist die Genauigkeit der Signale, die Verhinderung von Falseignalen.
/*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()