
La stratégie est un système de trading de suivi de tendance basé sur les bandes de soutien du marché haussier. Elle utilise principalement les signaux de croisement des moyennes mobiles simples de 20 semaines (SMA) et des moyennes mobiles indicielles de 21 semaines (EMA) pour déterminer la direction de la tendance du marché et prendre des décisions de négociation. La stratégie émet plus de signaux lorsque les deux courbes se croisent vers le haut, et des positions égales lorsqu’elles se croisent vers le bas, en profitant des opportunités de tendance à moyen et long terme.
La logique centrale de la stratégie est de déterminer la tendance du marché en surveillant la relation de position relative entre les courbes de 20 semaines SMA et 21 semaines EMA. Lorsque la courbe courte de 20 semaines SMA dépasse la courbe longue de 21 semaines EMA, indiquant que le marché est susceptible d’être à la hausse, le système prend position.
La stratégie de négociation de la ceinture de soutien du bull market est un système de suivi de la tendance basé sur la théorie classique de l’analyse technique. La stratégie est caractérisée par une clarté logique et un risque contrôlable.
/*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')