이 전략은 황소시장 지원 대역을 기반으로하는 트렌드를 따르는 거래 시스템이다. 주로 20주 간 단순 이동 평균 (SMA) 과 21주 간 기하급수 이동 평균 (EMA) 사이의 교차 신호를 사용하여 시장 트렌드 방향을 결정하고 거래 결정을 내린다. 이 전략은 이동 평균이 상향으로 넘어가면 긴 신호를 생성하고 상향으로 넘어가면 종료하여 중장기 트렌드 기회를 포착하는 것을 목표로 한다.
이 전략의 핵심 논리는 시장 트렌드를 판단하기 위해 20 주 SMA와 21 주 EMA의 상대적 위치를 모니터링하는 것입니다. 단기 평균 (20 주 SMA) 이 장기 평균 (21 주 EMA) 이상으로 떨어지면 잠재적인 상승 추세를 나타내고 긴 포지션 입력을 유발합니다. 단기 평균이 장기 평균 이하로 떨어지면 상승 추세가 잠재적으로 종료되고 포지션 폐쇄를 유발합니다. 이 전략은 0.1%의 거래 수수료와 3 기초 지점의 미끄러짐으로 주식 위치 관리의 %_of_equity를 사용합니다.
불시장지원밴드 (Bull Market Support Band) 는 고전적인 기술분석 이론에 기초한 트렌드 추후 시스템이다. 명확한 논리와 통제 가능한 위험을 특징으로 하는 주간 시간 프레임 이동 평균 크로스오버를 통해 중장기 트렌드 기회를 포착한다. 그러나 전략은 시장 범위에서 성적이 좋지 않으며 약간의 지연을 나타낸다. 보조 지표, 스톱-로스 최적화 및 향상된 자본 관리를 추가함으로써 전략은 최적화에 상당한 여지가 있다. 상당한 자본과 위험 관용을 가진 투자자에게 적합하다.
/*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')