Diese Strategie ist ein Trend-nachfolgendes Handelssystem, das auf der Bull Market Support Band basiert. Es verwendet hauptsächlich Crossover-Signale zwischen dem 20-wöchigen einfachen gleitenden Durchschnitt (SMA) und dem 21-wöchigen exponentiellen gleitenden Durchschnitt (EMA), um die Markttrendrichtung zu bestimmen und Handelsentscheidungen zu treffen. Die Strategie erzeugt lange Signale, wenn die gleitenden Durchschnitte nach oben kreuzen und aussteigt, wenn sie nach unten kreuzen, um mittel- bis langfristige Trendchancen zu erfassen.
Die Kernlogik der Strategie besteht darin, die relative Position des 20-wöchigen SMA und des 21-wöchigen EMA zu überwachen, um Markttrends zu beurteilen. Wenn der kurzfristige Durchschnitt (20-wöchige SMA) über den längerfristigen Durchschnitt (21-wöchigen EMA) bricht, zeigt er einen potenziellen Aufwärtstrend an, der einen Long-Positions-Eintrag auslöst. Wenn der kurzfristige Durchschnitt unter den längerfristigen Durchschnitt fällt, signalisiert er ein potenzielles Ende des Aufwärtstrends, was den Positionsschluss auslöst. Die Strategie verwendet das Percent_of_Equity-Positionsmanagement mit einer Handelsprovision von 0,1% und einem Rutsch von 3 Basispunkten.
Die Bull Market Support Band-Handelsstrategie ist ein Trendfolgensystem, das auf der klassischen Theorie der technischen Analyse basiert. Es erfasst mittelfristige bis langfristige Trendchancen durch wöchentliche gleitende Durchschnitts-Crossovers, verfügt über eine klare Logik und ein kontrollierbares Risiko. Die Strategie hat jedoch eine schlechte Performance in unterschiedlichen Märkten und zeigt eine gewisse Verzögerung. Durch die Hinzufügung von Hilfsindikatoren, Stop-Loss-Optimierung und verbessertes Kapitalmanagement hat die Strategie einen erheblichen Optimierungsraum.
/*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')