
Diese Strategie basiert auf dem Brin-Band-Indikator und entwickelt eine dynamische Breakout-Trading-Strategie. Sie kombiniert K-Line-Einzelfilterung und Farbfilterung, um Breakout-Entry-Gelegenheiten in der Nähe des Brin-Band-Abstiegs zu suchen. Die Exit-Strategie basiert auf der Einzelfilterung. Die Strategie verwaltet automatisch die Anzahl der Positionen und das Risiko.
Zunächst die Basislinie und die Unterbahn des Brin-Bandes nach dem Tiefpunkt:
src = low
basis = sma(src, length)
dev = mult * stdev(src, length)
lower = basis - dev
Hierbei ist src der Tiefpunkt, length die Berechnungsdauer, basis die Durchschnittslinie, dev die Standarddeviation und lower die Unterbahn.
In der Regel wird mult auf 2 gesetzt, was bedeutet, dass die Unterbahn eine Standarddifferenz hat.
Die Strategie enthält zwei Filterbedingungen:
K-Linien-Einheitsfilter Das Signal wird nur erzeugt, wenn nbody größer als die Hälfte von abody ist.
Farbfilter Das ist ein falscher Durchbruch des hbox-Kopfes.
Mehrfachsignale werden erzeugt, wenn die folgenden Bedingungen erfüllt sind:
low < lower // 价格突破下轨
close < open or usecol == false // 色彩过滤
nbody > abody / 2 or usebod == false // 实体过滤
Wenn die Größe der Einheit erneut größer als die Hälfte des Durchschnitts ist, entsteht ein Niederlassungsrisiko:
close > open and nbody > abody / 2
Strategie zur automatischen Berechnung der Anzahl der Transaktionen, um einen Indexzuwachs zu erzielen:
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]
Ein Jahr, ein Monat und ein Tag sind erforderlich, um den Handel innerhalb des angegebenen Datums zu beschränken:
when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))
Der Brin-Abtrieb ist ein dynamischer Unterstützungsbereich, der die Chance auf einen Aufprall nach einem Markttrend erfasst.
In Kombination mit K-Linien-Einheiten und Farbverurteilungen, wirkungsvolle Filterung von False-Breakings.
Die Position wächst exponentiell auf 100% und die Risiken werden automatisch verwaltet.
Das Setup von Datumsbereichen verringert die Risiken, die mit der Marktschwankung zu bestimmten Zeiten verbunden sind.
Wenn der Markt in einem langen Bullmarkt ist, bewegen sich die Brin-Band-Mittel- und Oberbahnen schnell und können zu lange leeren.
Wenn Sie die Trendindikatoren verwenden, können Sie die Strategie aussetzen, wenn die mittlere und lange Linie als Bullenmarkt beurteilt wird, um zu lange Leerpositionen zu vermeiden.
Nach einem Unterbahnbruch kann es zu Rückstellungen und erneuten Unterbahnversuchen kommen.
Stopp-Linien mit einem bestimmten Prozentsatz des Stopps unterhalb der Stütze. Oder die Urteilslogik des erneuten Versuchs mit einem schnellen Stopp.
Stell die Stop-Loss-Position unterhalb der vernünftigen Unterstützung fest, basierend auf den Rückmessdaten.
Anpassung der Abody-Periode des Filters, Verwendung des COLOR-Filters usw.; Suche nach der optimalen Kombination von Parametern;
Erhöhung der mittleren und langen Trendbeurteilung, Strategie-Stopp bei der Beurteilung eines Bullenmarktes. Verringerung der Leerlaufzeit.
Diese Strategie kombiniert Brin-Band-Unterstützung und entwirft die Strategie-Logik der Entity-Filterung, Farbfilterung und des Durchbruchs von Geschäften, um nach rückläufigen Gelegenheiten mit hoher Wahrscheinlichkeit zu suchen. In der Praxis können die Parameter kontinuierlich nach den Rückmeldungsergebnissen optimiert werden, und ein Stop-Loss- und Trendbeurteilungsmodul wird hinzugefügt, um das Risiko zu kontrollieren und so eine bessere Leistung zu erzielen.
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=2
strategy(title = "Noro's Wizard Strategy v1.0", shorttitle = "Wizard str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 10)
//Settings
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
length = input(25, defval = 25, minval = 1, maxval = 200, title = "BB Period")
usebod = input(false, defval = false, title = "Use Body-Filter")
usecol = input(false, defval = false, title = "Use Color-Filter")
showar = input(false, defval = false, title = "Show Arrows")
fromyear = input(1900, defval = 1900, 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")
//Bollinger
src = low
mult = 2
basis = sma(src, length)
dev = mult * stdev(src, length)
lower = basis - dev
plot(lower, color = lime, linewidth = 3, title="Bottom Line")
//Body Filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 2 or usebod == false
//Signals
up1 = low < lower and (close < open or usecol == false) and body
exit = close > open and nbody > abody / 2
//Arrows
needar = up1 and showar
plotarrow(needar ? 1 : na)
//Trading
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]
if up1
if strategy.position_size < 0
strategy.close_all()
strategy.entry("Long", strategy.long, lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
strategy.close_all()