
Die Strategie ist ein Trend-Tracking-Trading-System, das auf den bullish-Markt-Support-Bands basiert. Sie nutzt hauptsächlich die Kreuzungssignal der 20-Wochen-Simple Moving Average (SMA) und der 21-Wochen-Index-Moving Average (EMA) zur Bestimmung der Markttrendrichtung und zur Entscheidungsfindung. Die Strategie sendet mehr Signale, wenn sich die beiden Gleichungen nach oben kreuzen, und platziert, wenn sie nach unten kreuzen, um durch die Erfassung von mittleren und langfristigen Trendchancen zu profitieren.
Die Kernlogik der Strategie besteht darin, Markttrends durch die Beobachtung der relativen Positionsbeziehungen zwischen den 20-Wochen-SMA und der 21-Wochen-EMA zu bestimmen. Wenn der kurzfristige Mittelwert ((20-Wochen-SMA) von unten den langfristigen Mittelwert ((21-Wochen-EMA) überschreitet, wird eine Position aufgenommen, um zu zeigen, dass ein Aufwärtstrend möglich ist. Wenn der kurzfristige Mittelwert von oben fällt, um zu zeigen, dass ein Aufwärtstrend möglich ist, wird ein Ausstieg durchgeführt.
Die bullish-support-band-trading-strategie ist ein trend-tracking-system, das auf der klassischen theorie der technischen analyse basiert. Die strategie ist durch mittlere und langfristige tendenzielle chancen auf kreuzung der kreislinie mit logischer klarheit und risikokontrollierbaren eigenschaften gekennzeichnet. Die strategie schlägt jedoch in den schwankenden märkten schlecht ab und es gibt eine gewisse rückständigkeit.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0
// © zkdev
//@version=6
strategy(title='Demo GPT - Bull Market Support Band',
overlay=true,
default_qty_type=strategy.percent_of_equity,
default_qty_value=100,
commission_type=strategy.commission.percent,
commission_value=0.1,
slippage=3)
// -------------------------------------------------------------------------
// Compile-time timestamp constants for default date range
// (2018-01-01 00:00:00 UTC -> 1514764800000
// 2069-12-31 23:59:59 UTC -> 3155759999000)
// -------------------------------------------------------------------------
const int defaultFromDate = 1514764800000
const int defaultToDate = 3155759999000
// -------------------------------------------------------------------------
// Inputs: date range
// -------------------------------------------------------------------------
fromDate = input(title='Start Date', defval=defaultFromDate)
toDate = input(title='End Date', defval=defaultToDate)
// -------------------------------------------------------------------------
// Indicator settings & calculations
// -------------------------------------------------------------------------
smaLength = 20
emaLength = 21
source = close
sma = ta.sma(source, smaLength)
ema = ta.ema(source, emaLength)
// -------------------------------------------------------------------------
// Fetch weekly SMA & EMA
// -------------------------------------------------------------------------
outSma = request.security(syminfo.tickerid, 'W', sma, gaps=barmerge.gaps_on, lookahead=barmerge.lookahead_off)
outEma = request.security(syminfo.tickerid, 'W', ema, gaps=barmerge.gaps_on, lookahead=barmerge.lookahead_off)
// -------------------------------------------------------------------------
// Plot visuals (20w SMA, 21w EMA, fill in between)
// -------------------------------------------------------------------------
smaPlot = plot(outSma, color=color.new(color.red, 0), title='20w SMA')
emaPlot = plot(outEma, color=color.new(color.green, 0), title='21w EMA')
fill(smaPlot, emaPlot, color=color.new(color.orange, 75), fillgaps=true)
// -------------------------------------------------------------------------
// We evaluate crossover/crossunder on *every bar* and store the result
// -------------------------------------------------------------------------
crossUp = ta.crossover(outSma, outEma)
crossDown = ta.crossunder(outSma, outEma)
// -------------------------------------------------------------------------
// Trade logic: only operate within chosen date range
// Buy when outSma crosses above outEma; Sell (close) when outSma crosses below outEma
// -------------------------------------------------------------------------
inDateRange = true
if inDateRange
// If we have a crossUp event on this bar, buy (go Long)
if crossUp
strategy.entry('Long', strategy.long)
// If we have a crossDown event on this bar, sell (close Long)
if crossDown
strategy.close('Long')