Donqi'an Wave Adaptive Marktstrategie


Erstellungsdatum: 2023-10-26 15:58:52 zuletzt geändert: 2023-10-26 15:58:52
Kopie: 0 Klicks: 808
1
konzentrieren Sie sich auf
1617
Anhänger

Donqi’an Wave Adaptive Marktstrategie

Überblick

Die Strategie basiert auf den Donchian-Kanal-Indikatoren, um sich an die Marktentwicklung anzupassen und Trendgeschäfte zu tätigen. Wenn der Preis den Donchian-Kanal durchbricht, wird der Trend verfolgt.

Strategieprinzip

  1. Die Höchst- und Tiefstpreise innerhalb eines bestimmten Zeitraums werden berechnet, um einen Dongjian-Kanal zu bilden. Die Mittellinie des Kanals ist der Durchschnitt der Höchst- und Tiefstpreise innerhalb des Zeitraums.

  2. Wenn der Preis den Kanal überschreitet, wird ein Mehrkopfgeschäft eröffnet. Wenn der Preis den Kanal überschreitet, wird ein Leerkopfgeschäft eröffnet.

  3. Nach der Eröffnung der Position verfolgt die Stop-Line die Mittellinie des Kanals; die Stop-Line verfolgt den Preis für einen bestimmten Prozentsatz des Durchbruchs des Kanals.

  4. Wenn der Preis wieder in den Kanal zurückkehrt, wird eine Stop-Loss-Plating durchgeführt.

Analyse der Stärken

  1. Die Strategie nutzt die Tangxian-Kanäle, um die Richtung der Trends zu bestimmen und schnell Marktdurchbrüche zu erfassen.

  2. Mit dem Stop-Loss-Tracking in der Mitte des Kanals kann ein profitabler Schutz erreicht werden.

  3. Der Gewinnspielraum wird entsprechend der vom Benutzer eingestellten Stop-Loss-Spanne erweitert.

  4. Sie sind in der Lage, ihre Positionen flexibel an unterschiedliche Umstände anzupassen, wie z. B. Bilanzierung, Durchbruch, Rückzahlung usw.

  5. Die Strategie-Trading-Logik ist einfach, klar und leicht zu verstehen.

Risikoanalyse

  1. Die Strategie basiert nur auf dem Durchbruch von Kanalgeschäften und kann nicht effektiv auf die Marktstabilisierung reagieren.

  2. Es besteht die Gefahr, dass ein falsches Signal durchbrochen wird, was in Kombination mit anderen Kennzahlen überprüft werden muss.

  3. Die Einführung von Stop-Loss-Systemen kann zu einem vorzeitigen Ausfall oder zu einem unzureichenden Gewinn führen.

  4. Die falsche Einstellung des Kanalzyklus beeinträchtigt die Genauigkeit der Handelssignale.

  5. Eine zu große Position verstärkt die Auswirkungen von Marktschwankungen auf das Konto.

  6. Es besteht die Gefahr von unerwarteten Unterbrechungen des Robotertrags, und es ist notwendig, die Stabilität und Zuverlässigkeit des Systems sicherzustellen.

Strategieoptimierung

  1. Es ist wichtig, dass der Markt in der Lage ist, den Markt zu verändern, um den Markt zu verbessern.

  2. Die Angabe von Trendindikatoren und die Genauigkeit von Börsenöffnungssignalen werden verbessert.

  3. Optimierung von Stop-Loss-Algorithmen und dynamische Anpassungen.

  4. Anpassung der Positionsmanagement-Strategie in Echtzeit an die Marktumstände.

  5. Die Eintrittszeiten werden von der Eintrittsbehörde für die Eintrittszeiten der Studenten ermittelt.

  6. Verschiedene Periodenparameter werden getestet, um die optimale Kombination von Parametern zu finden.

  7. Modellüberprüfungsmodule hinzugefügt, um Überpassungen zu vermeiden.

Zusammenfassen

Die Strategie ist insgesamt eine einfache und praktische Anpassungs-Trendstrategie. Sie hat die Eigenschaften, Trendbrechungen schnell zu erfassen und Gewinnschutz zu erzielen. Es gibt auch einige Nachteile, wie z. B. die Unwirksamkeit von Kursen, die durch falsche Brechungen zu Verlusten führen. Die zukünftige Optimierungsrichtung besteht darin, mehr Indikatorfiltersignale zu kombinieren und die Stop-Loss-Strategie dynamisch anzupassen, um sich an mehr Marktbedingungen anzupassen.

Strategiequellcode
/*backtest
start: 2022-10-19 00:00:00
end: 2023-10-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2020

//@version=4
strategy(title = "Noro's Donchian Strategy", shorttitle = "Donchian str", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 100, default_qty_value = 100, commission_value = 0.1)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
tp = input(defval = 10, minval = 1, title = "Take profit")
lotsize = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
pclen = input(50, minval = 1, title = "Price Channel Length")
showll = input(true, defval = true, title = "Show lines")
showbg = input(false, defval = false, title = "Show Background")
showof = input(true, defval = true, title = "Show Offset")
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")

//Price Channel
h = highest(high, pclen)
l = lowest(low, pclen)
center = (h + l) / 2
tpl = h * (100 + tp) / 100
tps = l * (100 - tp) / 100

//Lines
tpcol = showll ? color.lime : na
pccol = showll ? color.blue : na
slcol = showll ? color.red : na
offset = showof ? 1 : 0
plot(tpl, offset = offset, color = tpcol, title = "TP Long")
plot(h, offset = offset, color = pccol, title = "Channel High")
plot(center, offset = offset, color = slcol, title = "Cannel Center")
plot(l, offset = offset, color = pccol, title = "Channel Low")
plot(tps, offset = offset, color = tpcol, title = "TP Short")

//Background
size = strategy.position_size
bgcol = showbg == false ? na : size > 0 ? color.lime : size < 0 ? color.red : na
bgcolor(bgcol, transp = 70)

//Trading
truetime = time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)
lot = 0.0
lot := size != size[1] ? strategy.equity / close * lotsize / 100 : lot[1]
mo = 0
mo := strategy.position_size != 0 ? 0 : high >= center and low <= center ? 1 : mo[1]
if h > 0
    strategy.entry("Long", strategy.long, lot, stop = h, when = strategy.position_size <= 0 and needlong and truetime and mo)
    strategy.exit("TP Long", "Long", limit = tpl, stop = center)
    strategy.entry("Short", strategy.short, lot, stop = l, when = strategy.position_size >= 0 and needshort and truetime and mo)
    strategy.exit("TP Short", "Short", limit = tps, stop = center)
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    strategy.cancel("Long")
    strategy.cancel("Short")