Dynamische Preiskanal-Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 16.9.2023
Tags:

Übersicht

Dieser Artikel stellt eine kurzfristige Handelsstrategie vor, die auf dynamischen Preiskanälen basiert.

Strategie Logik

Die Strategie beruht auf folgender Logik:

  1. Berechnen Sie dynamische Preiskanäle mit den höchsten und niedrigsten Preisen. Das obere Band ist der Durchschnitt des höchsten Preises und des Kanalmittepunktes. Das untere Band ist der Mittelpunkt abzüglich der Differenz zwischen dem niedrigsten Preis und dem Mittelpunkt.

  2. Wenn der Preis über das obere Band bricht, beginnt ein Aufwärtstrend.

  3. Bei Aufwärtstrends geht man lang, wenn zwei aufeinanderfolgende Bärenbalken erscheinen. Bei Abwärtstrends geht man kurz, wenn zwei aufeinanderfolgende Aufwärtstrände erscheinen.

  4. Betrachten Sie Gegentrend-Einträge, um die Marktdynamik zu verfolgen. Zum Beispiel kurz in Aufwärtstrends und lang in Abwärtstrends.

  5. Setzen Sie Profitprozentsätze, wie x% des Einstiegspreises, um Gewinne zu erzielen.

Analyse der Vorteile

Zu den Vorteilen dieser Strategie gehören:

  1. Die dynamischen Kanäle spiegeln die Marktveränderungen in Echtzeit wider, um den Trend besser zu beurteilen.

  2. Die Kombination von Trends und Ausbrüchen filtert falsche Ausbrüche.

  3. Gegentrend-Einträge nutzen die Marktdynamik für überschüssige Renditen.

  4. Profit Stops kontrollieren Risiken effektiv.

  5. Die Logik ist einfach und klar für eine einfache Umsetzung.

Risikoanalyse

Es gibt auch einige Risiken, die zu berücksichtigen sind:

  1. Kanäle können während volatiler Märkte ausfallen.

  2. Gegentrend-Trades sind anfällig für Verluste.

  3. Falsche Ausbrüche können schlechte Trades verursachen.

  4. Vermeiden Sie zu viel, um die Kosten zu kontrollieren.

Schlussfolgerung

Diese Strategie integriert dynamische Kanäle, Breakouts und Take Profits. Mit der richtigen Abstimmung kann sie ein effektives kurzfristiges Handelswerkzeug sein.


/*backtest
start: 2022-09-09 00:00:00
end: 2023-09-15 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=2
strategy("Noro's Bands Scalper Strategy v1.1", shorttitle = "Scalper str 1.1", 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")
takepercent = input(0, defval = 0, minval = 0, maxval = 1000, title = "take, %")
needct = input(false, defval = false, title = "Counter-trend entry")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
needbb = input(true, defval = true, title = "Show Bands")
needbg = input(true, defval = true, title = "Show Background")
src = close

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

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

//Trend
sma = sma(close, 20)
smatrend = close > sma ? 1 : close < sma ? -1 : smatrend[1]
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 = 80)

//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up7 = trend == 1 and bar == -1 and bar[1] == -1 ? 1 : 0
dn7 = trend == 1 and bar == 1 and bar[1] == 1 and close > strategy.position_avg_price * (100 + takepercent) / 100 ? 1 : 0
up8 = trend == -1 and bar == -1 and bar[1] == -1 and close < strategy.position_avg_price * (100 - takepercent) / 100 ? 1 : 0
dn8 = trend == -1 and bar == 1 and bar[1] == 1 ? 1 : 0

if up7 == 1 or up8 == 1
    strategy.entry("Long", strategy.long, needlong == false ? 0 : trend == -1 and needct == false ? 0 : na)

if dn7 == 1 or dn8 == 1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : trend == 1 and needct == false ? 0 : na)

Mehr