
Diese Strategie, die durch die Berechnung der Kanal-Gewinnlinie, die Einrichtung von Über- oder Off-Hand-Positionen, wenn die Preise die Kanal-Gewinnlinie brechen, die Aktienpreis-Trends zu verfolgen, gehört zu den Trend-Tracking-Strategien.
Die Strategie berechnet zunächst den 20-Tage-Hochschnittsdurchschnitt als Uptrend und den 20-Tage-Lowschnittsdurchschnitt als Downtrend und berechnet die Downtrend-Mitte. Die Downtrend-Mitte repräsentiert den aktuellen Kursdurchschnitt.
Die Strategie ist insgesamt relativ einfach und direkt, um die Aktienpreisentwicklung über die grundlegenden Preiskanäle zu beurteilen und gehört zu den Strategien der Trendverfolgung. Der Vorteil ist, dass sie einfach zu bedienen ist, um die Investitionsmöglichkeiten der Preisentwicklung zu nutzen und die Gelder nicht zu sperren. Der Nachteil ist, dass eine falsche Einstellung der Parameter die Wirkung beeinträchtigen kann und das Risiko eines bestimmten Retro-Tests besteht. Durch eine vernünftige Optimierung kann die Strategie verbessert werden Stabilität und verbessert die reale Vermögensleistung.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
//future strategy
//strategy(title = "stub", default_qty_type = strategy.fixed, default_qty_value = 1, overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2)
//stock strategy
strategy(title = "dc", default_qty_type = strategy.percent_of_equity, default_qty_value = 20, overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=.005)
//forex strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 20, overlay = true)
//crypto strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 20, overlay = true, commission_type=strategy.commission.percent,commission_value=.25,default_qty_value=20)
testStartYear = input(2000, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testEndYear = input(2019, "Backtest Start Year")
testEndMonth = input(3)
testEndDay = input(31, "Backtest Start Day")
testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testPeriod() =>
true
//time >= testPeriodStart ? true : false
dcPeriod = 20
dcUpper = highest(close, dcPeriod)[1]
dcLower = lowest(close, dcPeriod)[1]
dcAverage = (dcUpper + dcLower) / 2
plot(dcLower, style=line, linewidth=3, color=red, offset=1)
plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1)
plot(dcAverage, color=black, style=line, linewidth=3, title="Mid-Line Average")
strategy.entry("simpleBuy", strategy.long, when=close > dcAverage)
strategy.close("simpleBuy",when=close < dcLower)
strategy.entry("simpleSell", strategy.short,when=close < dcAverage)
strategy.close("simpleSell",when=close > dcAverage)