
Die Strategie basiert auf der Kombination eines Supertrend-Indikators und eines Durchschnitts-Trend-Indikators (ADX), um Trends zu beurteilen und zu verfolgen. Der Supertrend-Indikator wird verwendet, um die Richtung der aktuellen Preisentwicklung zu bestimmen. Der ADX wird verwendet, um die Trendstärke zu beurteilen.
Insgesamt gehört die Strategie zu den Trend-Tracking-Strategien, die darauf abzielen, eindeutige Trends in der mittleren und langen Linie zu erfassen, ohne sich von Ausgleichs- und Erschütterungsstörungen abhalten zu lassen.
Der Supertrend-Indikator wird verwendet, um die Richtung der Preisentwicklung zu bestimmen. Wenn der Preis auf dem Supertrend steht, ist dies ein Mehrkopfsignal, wenn der Supertrend aufgeht, ist dies ein Hohlkopfsignal.
Die ADX wird verwendet, um die Trendstärke zu bestimmen. Die Handelssignale werden nur erzeugt, wenn die ADX größer als die eingestellte Schwelle ist, um unklaren Zeiten zu filtern.
Die K-Linien-Einheit Farbe beurteilt das aktuelle Aufwärts- oder Abwärts-Muster in Kombination mit dem Supertrend-Indikator und bildet eine Bestätigung.
Die Erhöhung des Handelsvolumens dient als Bestätigungssignal.
Setzen Sie Stop-Loss- und Stop-Off-Lösungen, um Gewinne zu sichern und Risiken zu kontrollieren.
Befreien Sie sich von allen Positionen vor dem Ende der gesetzten Spielzeit.
Es ist wichtig, dass man sich mit den Trends auskennt, um Schwankungen zu vermeiden und höhere Gewinnraten zu erzielen.
Die Strategie hat weniger Parameter und ist einfacher zu verstehen und umzusetzen.
Die Risikokontrolle ist vorhanden, die Stop-Loss- und Stop-Stopp-Einstellungen sind vorhanden.
Die Verwendung von mehreren Indikatoren zur Bestätigung kann dazu beitragen, falsche Signale zu reduzieren.
Bei der Tiefenanpassung des Großplatzes kann es zu größeren Verlusten kommen.
Die Ergebnisse der einzelnen Aktien können stark rückläufig sein.
Die Black Swan-Veranstaltung, die zu einer grundlegenden Änderung der Politik führte.
Die Risiken können mit folgenden Lösungen begegnet werden:
ADX-Parameter entsprechend angepasst, um sicherzustellen, dass nur bei starken Trends gehandelt wird.
Erhöhen Sie Ihre Stop-Loss-Rate und kontrollieren Sie Ihre Einzelschäden.
Die Politik und wichtige Ereignisse werden genau beobachtet und bei Bedarf aktiv verhindert.
Verschiedene Kombinationen von Supertrend-Parametern können getestet werden, wobei die Parameter gewählt werden, die ein stabileres Signal erzeugen.
Es können verschiedene Parameter der ADX getestet werden, um die optimale Kombination der Parameter zu bestimmen.
Andere Indikatoren können zur Bestätigung hinzugefügt werden, z. B. Schwankungen, Brin-Band usw., um die Falschsignale weiter zu reduzieren.
Der Trend kann mit Strategien wie Breakouts kombiniert werden, um bei einem Trendbruch zu stoppen.
Die Strategie ist übersichtlich, beurteilt die Richtung des Preistrends mit Supertrends, beurteilt die Trendstärke mit ADX und verfolgt den Trend bei starken Trends. Die Strategie hat weniger Parameter und ist leicht zu optimieren. Sie kann als Beispiel für einfache und effektive Trendstrategien verwendet werden.
/*backtest
start: 2023-02-15 00:00:00
end: 2024-02-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Intraday Strategy Template
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © vikris
//@version=4
strategy("[VJ]Hulk Smash Intra", overlay=true, calc_on_every_tick = false, pyramiding=0,default_qty_type=strategy.percent_of_equity, default_qty_value=100,initial_capital=2000)
// ********** Strategy inputs - Start **********
// Used for intraday handling
// Session value should be from market start to the time you want to square-off
// your intraday strategy
// Important: The end time should be at least 2 minutes before the intraday
// square-off time set by your broker
var i_marketSession = input(title="Market session", type=input.session,
defval="0915-1455", confirm=true)
// Make inputs that set the take profit % (optional)
longProfitPerc = input(title="Long Take Profit (%)",
type=input.float, minval=0.0, step=0.1, defval=1) * 0.01
shortProfitPerc = input(title="Short Take Profit (%)",
type=input.float, minval=0.0, step=0.1, defval=1) * 0.01
// Set stop loss level with input options (optional)
longLossPerc = input(title="Long Stop Loss (%)",
type=input.float, minval=0.0, step=0.1, defval=0.5) * 0.01
shortLossPerc = input(title="Short Stop Loss (%)",
type=input.float, minval=0.0, step=0.1, defval=0.5) * 0.01
var float i_multiplier = input(title = "ST Multiplier", type = input.float,
defval = 2, step = 0.1, confirm=true)
var int i_atrPeriod = input(title = "ST ATR Period", type = input.integer,
defval = 10, confirm=true)
len = input(title="ADX Length", type=input.integer, defval=14)
th = input(title="ADX Threshold", type=input.integer, defval=20)
adxval = input(title="ADX Momemtum Value", type=input.integer, defval=25)
// ********** Strategy inputs - End **********
// ********** Supporting functions - Start **********
// A function to check whether the bar or period is in intraday session
barInSession(sess) => time(timeframe.period, sess) != 0
// ********** Supporting functions - End **********
// ********** Strategy - Start **********
[superTrend, dir] = supertrend(i_multiplier, i_atrPeriod)
colResistance = dir == 1 and dir == dir[1] ? color.new(color.red, 0) : color.new(color.red, 100)
colSupport = dir == -1 and dir == dir[1] ? color.new(color.green, 0) : color.new(color.green, 100)
// Super Trend Long/short condition
stlong = close > superTrend
stshort = close < superTrend
// Figure out take profit price
longExitPrice = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)
// Determine stop loss price
longStopPrice = strategy.position_avg_price * (1 - longLossPerc)
shortStopPrice = strategy.position_avg_price * (1 + shortLossPerc)
//Vol Confirmation
vol = volume > volume[1]
//Candles colors
greenCandle = (close > open)
redCandle = (close < open)
// See if intraday session is active
bool intradaySession = barInSession(i_marketSession)
// Trade only if intraday session is active
TrueRange = max(max(high - low, abs(high - nz(close[1]))), abs(low - nz(close[1])))
DirectionalMovementPlus = high - nz(high[1]) > nz(low[1]) - low ? max(high - nz(high[1]), 0) : 0
DirectionalMovementMinus = nz(low[1]) - low > high - nz(high[1]) ? max(nz(low[1]) - low, 0) : 0
SmoothedTrueRange = 0.0
SmoothedTrueRange := nz(SmoothedTrueRange[1]) - nz(SmoothedTrueRange[1]) / len + TrueRange
SmoothedDirectionalMovementPlus = 0.0
SmoothedDirectionalMovementPlus := nz(SmoothedDirectionalMovementPlus[1]) -
nz(SmoothedDirectionalMovementPlus[1]) / len + DirectionalMovementPlus
SmoothedDirectionalMovementMinus = 0.0
SmoothedDirectionalMovementMinus := nz(SmoothedDirectionalMovementMinus[1]) -
nz(SmoothedDirectionalMovementMinus[1]) / len + DirectionalMovementMinus
DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100
DX = abs(DIPlus - DIMinus) / (DIPlus + DIMinus) * 100
ADX = sma(DX, len)
// a = plot(DIPlus, color=color.green, title="DI+", transp=100)
// b = plot(DIMinus, color=color.red, title="DI-", transp=100)
//Final Long/Short Condition
longCondition = stlong and redCandle and vol and ADX>adxval
shortCondition = stshort and greenCandle and vol and ADX >adxval
//Long Strategy - buy condition and exits with Take profit and SL
if (longCondition and intradaySession)
stop_level = longStopPrice
profit_level = longExitPrice
strategy.entry("My Long Entry Id", strategy.long)
strategy.exit("TP/SL", "My Long Entry Id",stop=stop_level, limit=profit_level)
//Short Strategy - sell condition and exits with Take profit and SL
if (shortCondition and intradaySession)
stop_level = shortStopPrice
profit_level = shortExitPrice
strategy.entry("My Short Entry Id", strategy.short)
strategy.exit("TP/SL", "My Short Entry Id", stop=stop_level, limit=profit_level)
// Square-off position (when session is over and position is open)
squareOff = (not intradaySession) and (strategy.position_size != 0)
strategy.close_all(when = squareOff, comment = "Square-off")
// ********** Strategy - End **********