Die Trend Following Buy and Sell Strategie ist eine einfache Trend Following Day Trading Strategie, deren Prämisse darin besteht, die Trendrichtung auf der Grundlage des gleitenden Durchschnitts zu bestimmen und die Dips und Blips im Trend zu kaufen/verkaufen.
Die Strategie verwendet den einfachen gleitenden Durchschnitt (SMA) zur Bestimmung der Trendrichtung. In einem Aufwärtstrend, wenn die Kerzenaktion einen
Die Strategie verwendet auch %K und %D des Blanchflower-Oszillators zur Trendbestimmung. Sie schließt die Position und handelt in die entgegengesetzte Richtung, wenn %K über %D überschreitet. Darüber hinaus fungieren MACD und Signal-Linie als Filter, um nur Trades zu nehmen, die mit der von MACD und Signal festgelegten Trendrichtung übereinstimmen.
Die Strategie kann nur lang, nur kurz oder beides sein. Der Startmonat und das Jahr erlauben das Backtesting von diesem Zeitpunkt bis jetzt. Alle Parameter wie SMA-Periode, %K-Periode, %D-Periode, MACD-Parameter usw. sind anpassbar.
Die wichtigsten Risiken dieser Strategie sind:
Die Strategie kann in folgenden Bereichen verbessert werden:
Die Trend Following Buy and Sell Strategy hat eine einfache und unkomplizierte Logik, um Pullbacks in Trends zu handeln, die von SMA identifiziert und durch Indikatoren gefiltert werden. Feinsteuningparameter und Risikokontrollen können zu anständigen Ergebnissen führen, aber Combine-Encapsulation ist immer noch erforderlich, um Überanpassung zu verhindern und die Robustheit zu verbessern. Insgesamt ist es eine praktische Intraday-Handelsstrategie.
/*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)