
Die Dongjian Volatility Channel Trading Strategy beurteilt die aktuelle Preisentwicklung durch die Berechnung von Höchst- und Tiefpreiskanälen innerhalb eines bestimmten Zeitraums und kombiniert diese mit einem Durchbruch von Kanälen, um Long- und Short-Trades zu tätigen. Die Strategie eignet sich für den Handel mit Aktien und Kryptowährungen mit hoher Volatilität.
Die Strategie erstellt einen Kanal, indem sie den höchsten Preis pcmax und den niedrigsten Preis pcmin innerhalb des letzten (historischen) Zeitraums berechnet. Die Berechnungsmethode für den Up- und Down-Rail des Kanals ist:
Aufwärtsbahnyh = pcmax - (pcmax - pcmin) * (100 - percentDev)/100
Unterbahnyl = pcmin + (pcmax - pcmin) * percentDev/100
Der Bericht wurde von der BBC veröffentlicht.
Wenn der Preis über den Kurs geht, erzeugt er ein Long-Signal; wenn der Preis über den Kurs geht, erzeugt er ein Short-Signal.
Die Ursachen für die Entstehung eines bestimmten Handelssignals werden wie folgt beurteilt:
boundup = high > yh Ermittlung, ob ein Überschreiten möglich ist
bounddn = low < yl Beurteilung, ob ein Abbruch aufgetreten ist
upsign = sma(bounddn, 2) == 1 Durch die Durchschnittslinie von bounddn beurteilt, dass die Abfahrt fortgesetzt wird
dnsign = sma(boundup, 2) == 1 Durch die Durchschnittslinie des Boundups beurteilt, dass die Fahrbahn kontinuierlich durchbrochen wird
Exitup = dnsign Durchbruch auf der Bahn erzeugt ein Gleichgewichtsignal
Exitdn = upsign Durchbruch der Unterbahn erzeugt ein Ausgleichssignal
if upsign Durchbruch der Unterbahn erzeugt mehrere Signale
if dnsign Durchbruch auf Gleis erzeugt Abbruchsignal
Die Strategie setzt gleichzeitig die Start- und Endzeit ein, um unnötige Übernachtungen zu vermeiden.
Trends mit dem Dongqian-Kanal sind besser nachvollzogen
Die Option bietet die Möglichkeit, beide Wege zu handeln, indem Sie gleichzeitig die Options- und die Short-Signale einstellen.
Durch einheitliche Filterung von Signalen wird ein falscher Handel vermieden.
Optionale Stop-Loss-Methoden und Risikokontrolle
Setzen Sie einen Start-und-Stopp-Zeitpunkt, um ein Übernachtungsrisiko zu vermeiden
Der Dongjian-Kanal ist auf die Parameter history und percentDev empfindlich und muss optimiert werden, um die Parameter für verschiedene Sorten anzupassen.
Das ist ein Fehler, der bei einem Erdbeben auftreten kann.
Die Einflussnahme auf das Ergebnis im realen Geschäft ohne Berücksichtigung der Bestellverwaltungsfaktoren
Risiken für übermäßige Positionen auf dem Konto ohne Berücksichtigung von Positionsmanagementfaktoren
Die Anlage muss in der Realität ohne Berücksichtigung von Kapitalverwaltungsfaktoren in angemessener Weise aufgestellt werden.
Optimierung der Parameter history und percentDev, um sie besser für verschiedene Sorten zu nutzen
Mehr Filter, um Fehlsignale bei Erschütterungen zu vermeiden
Ein Positionsmanagement-Modul, das den Kapitalanteil der einzelnen Positionen steuert
Hinzugefügt wurde ein Modul zur Vermögensverwaltung, um den Anteil der Gesamtposition an den Vermögensbestand zu begrenzen.
Zusätzliche Bestellmanagement-Funktionen zur Optimierung der Bestellmethode
Die Dongguan Volatility Channel Trading Strategie beurteilt Trends und Handelssignale durch einen Kanalbruch. Die Rückmessung ist besser und bi-Weg-Trading-Fähigkeiten. Die Strategie birgt jedoch einige Risiken und erfordert Optimierungen in Bezug auf Parameter, Filter, Positionsmanagement, Kapitalmanagement und Auftragsmanagement, um eine stabile Ertragslage in der Börse zu erzielen.
/*backtest
start: 2023-10-31 00:00:00
end: 2023-11-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
////////////////////////////////////////////////////////////
// Copyright by AlexInc v1.0 02/07/2018 @aav_1980
// PriceChannel strategy
// If you find this script helpful, you can also help me by sending donation to
// BTC 16d9vgFvCmXpLf8FiKY6zsy6pauaCyFnzS
// LTC LQ5emyqNRjdRMqHPHEqREgryUJqmvYhffM
////////////////////////////////////////////////////////////
//@version=3
strategy("AlexInc PriceChannel Str", overlay=false)
history = input(20)
percentDev = input(13)
capital = input(100)
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usestoploss = input(true, defval = true, title = "Stop Loss")
stoplossmult = input(3.8, defval = 3.8, minval = 1, maxval = 10, title = "Stop loss multiplicator")
fromyear = input(2018, defval = 2018, 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")
bodymin = min( open, close)
bodymax = max(open, close)
pcmax = highest(bodymax, history)
pcmin = lowest(bodymin, history)
yh = ((pcmax - pcmin) / 100 * (100 - percentDev)) + pcmin
yl = ((pcmax - pcmin) / 100 * percentDev) + pcmin
plot(pcmax)
plot(pcmin)
plot(yh)
plot(yl)
//1
bounddn = low < yl ? 1 : 0
boundup = high > yh ? 1 : 0
upsign = sma(bounddn, 2) == 1
dnsign = sma(boundup, 2) == 1
//2
//upsign = crossover(bodymin, yl)
//dnsign = crossunder(bodymax , yh)
exitup = dnsign
exitdn = upsign
lot = strategy.equity / close * capital / 100
xATR = atr(history)
nLoss = usestoploss ? stoplossmult * xATR : na
stop_level_long = 0.0
stop_level_long := nz(stop_level_long[1])
stop_level_short = 0.0
stop_level_short := nz(stop_level_short[1])
pos = strategy.position_size
if pos >0 and pos[1] <= 0 //crossover(pos, 0.5)
stop_level_long = strategy.position_avg_price - nLoss
if pos < 0 and pos[1] >= 0 //crossunder(pos, -0.5)
stop_level_short = strategy.position_avg_price + nLoss
if pos == 0
stop_level_long = bodymin - nLoss
stop_level_short = bodymax + nLoss
//plot(bodymax + nLoss, color=red)
//plot(bodymin - nLoss, color=red)
plot(stop_level_long, color=red)
plot(stop_level_short, color=red)
if upsign
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if dnsign
strategy.entry("Short", strategy.short, needshort == false ? 0 : na)
if true
strategy.close_all()
//if strategy.position_size != 0
// strategy.exit("Exit Long", from_entry = "Long", stop = stop_level_long)
// strategy.exit("Exit Short", from_entry = "Short", stop = stop_level_short)