
Bei der Strategie handelt es sich um ein fortschrittliches trendfolgendes Handelssystem auf Basis des Supertrend-Indikators, das mehrere Signalbestätigungsmechanismen und ein dynamisches Positionsmanagement kombiniert. Der Kern der Strategie besteht darin, die Supertrendlinie durch ATR (Average True Range) zu berechnen und Handelssignale basierend auf Preistrends und Haltezeitfenstern zu generieren, um eine intelligente Erfassung von Markttrends zu erreichen.
Die Strategie verwendet einen dreischichtigen Signalfiltermechanismus:
In Bezug auf das Kapitalmanagement verwendet die Strategie 15 % des Kontokapitals als einzelnes Transaktionsvolumen. Diese konservative Positionskontrolle hilft beim Risikomanagement.
Dies ist eine Trendverfolgungsstrategie mit vollständiger Struktur und strenger Logik. Sie hat einen guten praktischen Anwendungswert durch mehrere Signalbestätigungsmechanismen und ein vollständiges Risikomanagementsystem. Die Strategie ist hochgradig skalierbar und ihre Stabilität und Rentabilität können durch die empfohlenen Optimierungsrichtungen weiter verbessert werden.
/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Supertrend Strategy", overlay=true)
atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step=0.01)
// Compute supertrend values
[supertrendValue, supertrendDirection] = ta.supertrend(factor, atrPeriod)
var float direction = na
if not na(supertrendDirection[1]) and supertrendDirection[1] != supertrendDirection
direction := supertrendDirection > 0 ? 1 : -1
// Variables to track conditions
var int lastShortTime = na
var int lastLongTime = na
// Detecting short and long entries
if direction == -1
strategy.entry("My Short Entry Id", strategy.short)
lastShortTime := bar_index
if direction == 1
strategy.entry("My Long Entry Id", strategy.long)
lastLongTime := bar_index
// Custom signal logic
bool bullishSignal = false
bool bearishSignal = false
// Define bullish signal conditions
if not na(lastShortTime) and (bar_index - lastShortTime >= 15 and bar_index - lastShortTime <= 19)
if close > open and close[1] > open[1] and close[2] > open[2]
bullishSignal := true
// Define bearish signal conditions
if not na(lastLongTime) and (bar_index - lastLongTime >= 15 and bar_index - lastLongTime <= 19)
if close < open and close[1] < open[1] and close[2] < open[2]
bearishSignal := true
// Plot signals
if bullishSignal
strategy.entry("Bullish Upward Signal", strategy.long)
label.new(bar_index, close, text="Bullish", style=label.style_circle, color=color.green, textcolor=color.white)
if bearishSignal
strategy.entry("Bearish Downward Signal", strategy.short)
label.new(bar_index, close, text="Bearish", style=label.style_circle, color=color.red, textcolor=color.white)
// Optionally plot the strategy equity
//plot(strategy.equity, title="Equity", color=color.red, linewidth=2, style=plot.style_areabr)