
Die Tangxian-Break-Strategie ist eine Trend-Tracking-Quantitative-Trading-Strategie. Die Strategie nutzt die Tangxian-Break-Strategie, um Markttrends zu erfassen, während die ATRSL-Moving Stop-Loss verwendet wird, um das Risiko zu kontrollieren. Wenn der Preis die Tangxian-Break-Strategie überschreitet, wird die Strategie ausgebucht.
donLengthDie Parameter werden in der Vergangenheit berechnetdonLengthHöchste und niedrigste Preise pro Zyklus, jeweils als Aufstiegsstrecke für den Dongqian-KanaldonUpperUnd die Unterbahn.donLowerDie Mittelstrecke.donBasisDer Durchschnitt für die Auf- und Abfahrt.AP2 Und AF2Der Parameter berechnet den ATR-WertSL2Und dann nach dem aktuellen Schlusskurs.SCDas ist der letzte Stop-Loss-Prozess.Trail2[1]Der Wechsel zwischen den beiden Bewegungen des Stop-Loss-Preises.Trail2。donLength、AP2 Und AF2Das sind die Parameter, die die Strategie-Performance optimieren.Die Dongguan-Break-Strategie ist eine klassische Trend-Tracking-Strategie, die Trends über den Dongguan-Kanal erfasst und die Risiken mit ATRSL bewegt. Die Strategie hat die Vorzüge, dass sie logisch einfach und klar ist, leicht umzusetzen und zu optimieren ist. Die Nachteile sind, dass sie bei Marktschocks und Trendwechseln schlechter abschneidet, und die Einstellung der Parameter hat einen großen Einfluss auf die Strategie.
/*backtest
start: 2023-03-16 00:00:00
end: 2024-03-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Stock Trend USE THIS", overlay = true)
donLength = input(100, minval=1)
//Donchian Long
donLower = lowest(donLength)
donUpper = highest(donLength)
donBasis = avg(donUpper,donLower)
// ATRSL
SC = close
// Slow Trail //
AP2 = input(10, title="Slow ATR period") // ATR Period
AF2 = input(3, title="Slow ATR multiplier") // ATR Factor
SL2 = AF2 * atr(AP2) // Stop Loss
Trail2 = 0.0
iff_3 = SC > nz(Trail2[1], 0) ? SC - SL2 : SC + SL2
iff_4 = SC < nz(Trail2[1], 0) and SC[1] < nz(Trail2[1], 0) ? min(nz(Trail2[1], 0), SC + SL2) : iff_3
Trail2 := SC > nz(Trail2[1], 0) and SC[1] > nz(Trail2[1], 0) ? max(nz(Trail2[1], 0), SC - SL2) : iff_4
// Long and Short Conditions
longCondition = (crossover(close,donUpper[1]))
// Close Conditions
closeLongCondition = crossunder(close,Trail2)
// Strategy logic
if (longCondition)
strategy.entry("Long", strategy.long)
alert("Open Long position")
if (closeLongCondition)
strategy.close("Long")
alert("Close Long position")
// Plot Donchian
l = plot(donLower, color=color.blue)
u = plot(donUpper, color=color.blue)
plot(donBasis, color=color.orange)
fill(u, l, color=color.blue)
plot(Trail2, color=color.blue, title="ATRSL Trail")