Momentum Positional NoroBands Strategie


Erstellungsdatum: 2024-01-18 10:58:48 zuletzt geändert: 2024-01-18 10:58:48
Kopie: 1 Klicks: 561
1
konzentrieren Sie sich auf
1617
Anhänger

Momentum Positional NoroBands Strategie

Überblick

Die Strategie ist eine dynamische Breakout-Strategie, die auf der Bandtheorie von Noro basiert und Quantitative Technologien kombiniert. Sie erzeugt Kauf- und Verkaufssignale und ermöglicht Bandbreakouts durch Berechnung von mehreren Indikatoren wie der Mittellinie, dem RSI, den Banden und den Bärenfarben.

Strategieprinzip

  1. Die Auf- und Abwärtstränge der Bandbreite werden durch die durchschnittliche tatsächliche Breite berechnet. Ein Kursbruch auf der Oberbahn ist ein bullish Signal, ein Durchbruch auf der Unterbahn ist ein bearish Signal.
  2. Der RSI beurteilt die Überkauf- und Überverkaufszonen mit einem Wert unter 30 und über 70.
  3. Beurteilen Sie die Dynamik des Preises durch den Durchbruch von Höchst- und Tiefstpreisen.
  4. Die Farbe von Bull und Bear beurteilt den Markt. Grün für den Markt mit mehreren Köpfen, bullish; Rot für den Markt mit leeren Köpfen, bearish.
  5. Die Ausweichung des Gleichheitsurteils wird in Kombination mit dem Ausweichungsurteil verwendet, um ein Handelssignal zu senden.

Analyse der Stärken

  1. Mehrfache Kombinationen von Indikatoren, um die Genauigkeit zu verbessern.
  2. Die Kombination von Bandtheorie und Quantifizierungstechnik macht die Strategie effektiver.
  3. Der Momentum-Breakout kombiniert mit dem Reverse-Trading erhöht den Gewinnraum.
  4. Erweiterbar und marktgerecht.

Risikoanalyse

  1. Die Parameter-Einstellungen müssen optimiert und getestet werden.
  2. Die Reaktionsschwierigkeiten bei der Übertragung können zu Verlusten führen.
  3. Es gibt eine große Anzahl von Transaktionen, die von Gebühren und Slippings beeinflusst werden.
  4. Die Bandbreitenparameter müssen zeitlich angepasst werden, um den verschiedenen Perioden gerecht zu werden.

Optimierungsrichtung

  1. Mehrfache Zeitspanne, um die optimale Kombination von Parametern zu finden.
  2. Erhöhung der Stop-Loss-Strategie und Verringerung der Einzelschäden.
  3. Das Unternehmen hat sich in der Vergangenheit bemüht, seine Lagerhaltung zu verbessern.
  4. Automatische Optimierung der Parameter in Kombination mit Deep Learning.

Zusammenfassen

Die Strategie nutzt mehrere typische Quantifizierungs-Technik-Indikatoren, um durch die Kombination von Dynamik-Indikatoren und Reversal-Indikatoren effiziente Gewinne zu erzielen. Gleichzeitig wird die Theorie der durchschnittlichen realen Breite verwendet, um einen vernünftigen Einstiegspunkt zu finden. Es kann als Vorbild für die Kombination von Technik-Indikatoren und Theorie bezeichnet werden.

Strategiequellcode
/*backtest
start: 2023-01-11 00:00:00
end: 2024-01-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=2
strategy("Noro's Bands Strategy v1.5", shorttitle = "NoroBands str 1.5", overlay=true)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
color = input(true, defval = true, title = "Use ColorBar")
usecb = input(true, defval = true, title = "Use CryptoBottom")
usersi = input(true, defval = true, title = "Use RSI")
usemm = input(true, defval = true, title = "Use min/max")
usepyr = input(true, defval = true, title = "Use pyramiding")
needbb = input(false, defval = false, title = "Show Bands")
needbg = input(false, defval = false, title = "Show Background")
needlo = input(false, defval = false, title = "Show Locomotive")
needpy = input(false, defval = false, title = "Show Avg.price line")
src = close

//Fast RSI
fastup = rma(max(change(src), 0), 2)
fastdown = rma(-min(change(src), 0), 2)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//CryptoBottom
mac = sma(close, 10)
lencb = abs(close - mac)
sma = sma(lencb, 100)
max = max(open, close)
min = min(open, close)

//PriceChannel
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

//dist
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma
hd2 = center + distsma * 2
ld2 = center - distsma * 2

//Trend
trend = close < ld and high < hd ? -1 : close > hd and low > ld ? 1 : trend[1]

//Lines
colo = needbb == false ? na : black
plot(hd2, color = colo, linewidth = 1, transp = 0, title = "High band 2")
plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band")
plot(center, color = colo, linewidth = 1, transp = 0, title = "center")
plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band")
plot(ld2, color = colo, linewidth = 1, transp = 0, title = "Low band 2")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)

//Signals
up = trend == 1 and ((close < open or color == false) or close < hd) and (min < min[1] or usemm == false) and (close < strategy.position_avg_price or usepyr == false or strategy.position_size <= 0) ? 1 : 0
dn = trend == -1 and ((close > open or color == false) or close > ld) and (max > max[1] or usemm == false) and (close > strategy.position_avg_price or usepyr == false or strategy.position_size >= 0) ? 1 : 0 
up2 = close < open and lencb > sma * 3 and min < min[1] and fastrsi < 10 and (close < strategy.position_avg_price or usepyr == false or strategy.position_size <= 0) ? 1 : 0 //CryptoBottom
//dn2 = close > open and len > sma * 3 and max > max[1] and fastrsi > 90 ? 1 : 0 //CryptoBottom
up3 = fastrsi < 5 and usersi == true and (close < strategy.position_avg_price or usepyr == false or strategy.position_size <= 0) ? 1 : 0
//dn3 = fastrsi > 95 and usersi = true ? 1 : 0

//Avg Price
colpy = needpy == false ? na : black
plot(strategy.position_avg_price, color = colpy)

up4 = close < strategy.position_avg_price and usepyr == true and strategy.position_size >= 0 ? 1 : 0 
dn4 = close > strategy.position_avg_price and usepyr == true and strategy.position_size <= 0 ? 1 : 0 

//Locomotive
uploco = trend == 1 and close < open and min < min[1] and close < center ? 1 : 0
plotarrow(needlo == true and uploco == 1 ? 1 : 0, colorup = black, colordown = black, transp = 0)

longCondition = up == 1 or (up2 == 1 and usecb == true) or (up3 == 1 and usersi == true) or up4 == 1
if (longCondition)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

shortCondition = dn == 1 or dn4 == 1
if (shortCondition)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)