
Eine Trend-Follow-Buy-Sell-Strategie ist eine einfache Trend-Follow-Day-Trading-Strategie. Die Grundidee dieser Strategie ist es, die Richtung des Trends anhand eines beweglichen Durchschnitts zu bestimmen und bei Schwankungen im Trend zu kaufen und zu verkaufen.
Die Strategie verwendet einen einfachen Moving Average SMA, um die Richtung des Trends zu bestimmen. In einem Aufwärtstrend, wenn die K-Linie einen Tiefpunkt aufweist, wird die Strategie mehr tun, wenn sie den höchsten Punkt der vorherigen K-Linie durchbricht.
Die Strategie nutzt auch Blanchflower Intensitätsindikatoren%K und%D für Trendbeurteilungen. Wenn%K über%D geht, wird der Kurs gegenwärtig platziert. Zusätzlich nutzt die Strategie die MACD- und Signalkurve als Filterbedingungen und führt nur dann Geschäfte aus, wenn MACD und Signal der Trendrichtung entsprechen.
Die Strategie kann nur mehr, nur leere oder gleichzeitig mehr leere. Die Startdaten können den Monat und das Jahr eingestellt werden, in dem die Rückmessung beginnt. Alle Parameter wie die Moving Average-Periode, die K-Periode, die D-Periode, die MACD-Parameter usw. können benutzerdefiniert werden.
Diese Strategie birgt folgende Risiken:
Diese Strategie kann in folgenden Bereichen optimiert werden:
Die Gesamtkonzeption der Trend-Tracking-Kaufstrategie ist klar und einfach, die Richtung der Tendenz wird durch die Bewegung des Durchschnitts beurteilt und die Indikatorfilter werden verwendet, um die Handelschancen in der Tendenz zu sperren. Die Strategie kann durch Parameteroptimierung gute Ergebnisse erzielen, benötigt aber immer noch die Combine-Code-Package, um das optimierte Risiko zu reduzieren und die Stabilität zu verbessern.
/*backtest
start: 2022-10-10 00:00:00
end: 2023-10-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Higher High / Lower Low Strategy", overlay=true)
// Getting inputs
longOnly = input(true, title="Long or Short Only")
useMACD = input(true, title="Use MACD Filter")
useSignal = input(true, title="Use Signal Filter")
//Filter backtest month and year
startMonth = input(10, minval=1, maxval=12, title="Month")
startYear = input(2020, minval=2000, maxval=2100, title="Year")
//Filter funtion inputs
periodA = input(20, minval=1, title="Period SMA")
periodK = input(5, minval=1, title="Period %K")
fast_length = input(title="Period Fast", type=input.integer, defval=5)
slow_length = input(title="Period Slow", type=input.integer, defval=20)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 30)
//Calculations
smoothD = 3 //input(3, minval=1, title="Smooth %D")
smoothK = 2 //input(2, minval=1, title="Smooth %K")
ma50 = sma(close, periodA)
k = sma(stoch(close, high, low, periodK), smoothK) - 50
d = sma(k, smoothD)
macd = ema(close,fast_length) - ema(close,slow_length)
signal = ema(macd,signal_length)
hist = macd - signal
if (not na(k) and not na(d) and not na(macd) and not na(signal) and longOnly and month>=startMonth and year>=startYear)// if(k > k[1] and k[2] >= k[1] and (ma50 > ma50[1]) and (not useK or k[1] <= -threshold_k) and (not useMACD or macd > macd[1]) and (not useSignal or signal > signal[1]) and (not useHHLL or close >= high[1]) and (not useD or d <= -threshold_d))
if(high[2] >= high[1] and high > high[1] and (ma50 > ma50[1]) and (not useMACD or macd > macd[1]) and (not useSignal or signal > signal[1]))
strategy.order("HH_LE", strategy.long, when=strategy.position_size == 0, comment="HH_LE")
if (k < k[1])
strategy.order("HH_SX", strategy.short, when=strategy.position_size != 0, comment="HH_SX")
if (not na(k) and not na(d) and not na(macd) and not na(signal) and not longOnly and month>=startMonth and year>=startYear)
if(low[2] <= low[1] and low < low[1] and (ma50 < ma50[1]) and (not useMACD or macd < macd[1]) and (not useSignal or signal < signal[1]))
strategy.order("HH_SE", strategy.short, when=strategy.position_size == 0, comment="HH_SE")
if (k > k[1])
strategy.order("HH_LX", strategy.long, when=strategy.position_size != 0, comment="HH_LX")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)