Diese Strategie basiert auf dem Prinzip des dynamischen Kanals und des gleitenden Durchschnittstrends. Sie berechnet den dynamischen Preiskanal, beurteilt die Trendrichtung durch die oberen und unteren Schienen des Kanals und erzeugt Handelssignale, indem sie den gleitenden Durchschnitt kombiniert, um die Preisvolatilität zu filtern. Diese Strategie eignet sich für den mittelfristigen und kurzfristigen Trendhandel.
Die wichtigsten Grundsätze dieser Strategie sind:
Berechnen Sie den dynamischen Preiskanal. Die Kanalmittellinie wird aus dem höchsten Preis und dem niedrigsten Preis berechnet. Die obere Schiene ist die mittlere Linie + Preisvolatilität MA, und die untere Schiene ist die mittlere Linie - Preisvolatilität MA.
Beurteilen Sie die Trendrichtung. Wenn der Preis durch die obere Schiene bricht, wird er als bullish definiert. Wenn der Preis durch die untere Schiene bricht, wird er als bearish definiert.
Filtergeräusche: Verwenden Sie die Preisvolatilität MA eines bestimmten Zeitraums, um Geräusche von zufälligen Preisschwankungen zu filtern.
Erzeugen Sie Handelssignale. Beim Aufschwung wird ein Kaufsignal erzeugt, wenn der Schlusskurs in diesem Zeitraum niedriger als der offene Preis ist. Beim Abnehmen wird ein Verkaufssignal erzeugt, wenn der Schlusskurs höher als der offene Preis ist.
Die Vorteile dieser Strategie sind:
Die Risiken dieser Strategie sind:
Lösungen:
Die Strategie kann in folgenden Aspekten optimiert werden:
Diese Strategie integriert die Ideen des dynamischen Kanal- und MA-Trendbeurteilens und ist gut in der Erfassung von Trendrichtungen auf mittlere und kurze Sicht geeignet.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Noro's Bands Strategy v1.0", shorttitle = "NoroBands str 1.0", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) //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, "Color") needbb = input(false, defval = false, title = "Show Bands") needbg = input(false, defval = false, title = "Show Background") src = close //PriceChannel 1 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 //Trend trend = close < ld and high < hd ? -1 : close > hd and low > ld ? 1 : trend[1] //Lines colo = needbb == false ? na : black 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") //Background col = needbg == false ? na : trend == 1 ? lime : red bgcolor(col, transp = 90) //up = and trend == 1 ? 1 : 0 //dn = and trend == -1 ? 1 : 0 up = close < hd and trend == 1 and (close < open or color == false) ? 1 : 0 dn = close > ld and trend == -1 and (close > open or color == false) ? 1 : 0 longCondition = up == 1 if (longCondition) strategy.entry("Long", strategy.long, needlong == false ? 0 : na) shortCondition = dn == 1 if (shortCondition) strategy.entry("Short", strategy.short, needshort == false ? 0 : na)