Die Preisumkehrstrategie, die durch den Preiskanal geleitet wird, berechnet die Mittellinie des Preiskanals, um die Trendrichtung der Preisschwankungen zu bestimmen. Sie erzeugt lange und kurze Signale, wenn sich der Preis der Kanal-Mittellinie nähert. Diese Strategie kombiniert mehrere Filterbedingungen, um nach Handelsmöglichkeiten mit hoher Wahrscheinlichkeit zu suchen.
Der Kernindikator dieser Strategie ist die Preiskanal-Mittellinie. Sie wird als Durchschnitt des höchsten Preises und des niedrigsten Preises der letzten 30 Kerzen berechnet. Wenn das Tief über der Mittellinie liegt, gilt es als Aufwärtstrend. Wenn das Hoch unter der Mittellinie liegt, gilt es als Abwärtstrend.
Die Strategie erzeugt nur Handelssignale, wenn sich der Trendhintergrund ändert. Das heißt, in einem Aufwärtstrend-Hintergrund geht sie nur kurz, wenn die Kerze rot wird. In einem Abwärtstrend-Hintergrund geht sie nur lang, wenn die Kerze grün wird.
Darüber hinaus setzt die Strategie auch doppelte Filterbedingungen: Kerzenkörperfilter und Preiskanalbalkenfilter. Die Signale werden nur ausgelöst, wenn das Kerzenkörpervolumen 20% des Durchschnittswerts übersteigt und es innerhalb des Filterzyklus aufeinanderfolgende Trendsignale geben muss, um Positionen zu eröffnen.
Diese Strategie kombiniert Trend, Wertbereich und Kerzenmuster, was eine effiziente Umkehrhandelsstrategie darstellt.
Die wichtigsten Risiken dieser Strategie liegen in dem Fehlen von Preisumkehrpunkten und dem unnötigen Warten auf Signale.
Diese Strategie kann in folgenden Aspekten optimiert werden:
Die durch den Preiskanal geführte Preisumkehrstrategie bestimmt Umkehrpunkte durch Preiskanäle und setzt doppelte Filterbedingungen, um hochwertige Signale zu erzeugen.
/*backtest start: 2023-11-19 00:00:00 end: 2023-11-26 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy(title = "Noro's PriceChannel for D1 v1.0", shorttitle = "PriceChannel D1", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 0) //Settings needlong = input(true, "long") needshort = input(true, "short") slowlen = input(30, defval = 30, minval = 2, maxval = 200, title = "PriceChannel Period") pcbars = input(1, defval = 1, minval = 1, maxval = 20, title = "PriceChannel Bars") usecol = input(true, "Use color-filter") usebod = input(true, "Use body-filter") needbg = input(false, defval = false, title = "Need trend Background?") 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") src = close //PriceChannel lasthigh = highest(src, slowlen) lastlow = lowest(src, slowlen) center = (lasthigh + lastlow) / 2 //Trend ub = low > center ? 1 : 0 db = high < center ? 1 : 0 trend = sma(ub, pcbars) == 1 ? 1 : sma(db, pcbars) == 1 ? -1 : trend[1] //Body body = abs(close - open) abody = sma(body, 10) //Signals up = trend == 1 and (close < open or usecol == false) and (body > abody / 5 or usebod == false) dn = trend == -1 and (close > open or usecol == false) and (body > abody / 5 or usebod == false) //Lines plot(center, color = blue, linewidth = 3, transp = 0, title = "PriceChannel Center") //Background col = needbg == false ? na : trend == 1 ? lime : red bgcolor(col, transp = 80) //Trading if up strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if dn strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all()