이 전략은 채널 이동 평균 라인을 계산하고 가격이 채널 라인을 통과하여 주식 가격의 트렌드를 따라 할 때 긴 또는 짧은 포지션을 설정합니다. 트렌드 다음 전략에 속합니다.
이 전략은 먼저 채널의 상부 레일로 20일 평균을 계산하고, 채널의 하부 레일로 20일 평균을 계산하고, 채널의 중간선을 계산한다. 채널의 중간선은 최근 평균 가격 추세를 나타낸다. 가격이 채널의 중간선을 넘어 올라가면 긴 포지션을 설정한다. 가격이 채널의 중간선을 넘어 내려갈 때 짧은 포지션을 설정한다. 가격이 채널 범위의 반대편으로 떨어질 때까지 가격 추세를 따라 포지션을 닫는다.
일반적으로 이 전략은 비교적 간단하고 직설적이다. 기본 가격 채널을 통해 주식 가격 추세를 판단하고 추세를 따르는 유형에 속한다. 장점은 간편한 운영, 가격 추세에 의해 가져온 투자 기회를 완전히 활용하고 자금 잠금을 피하는 것이다. 단점은 부적절한 매개 변수 설정이 성능에 영향을 미칠 수 있고, 회귀 테스트의 특정 위험이 있다는 것이다. 합리적인 최적화를 통해 전략의 안정성을 향상시키고 실제 거래 성능을 향상시킬 수 있다.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //future strategy //strategy(title = "stub", default_qty_type = strategy.fixed, default_qty_value = 1, overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2) //stock strategy strategy(title = "dc", default_qty_type = strategy.percent_of_equity, default_qty_value = 20, overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=.005) //forex strategy //strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 20, overlay = true) //crypto strategy //strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 20, overlay = true, commission_type=strategy.commission.percent,commission_value=.25,default_qty_value=20) testStartYear = input(2000, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testEndYear = input(2019, "Backtest Start Year") testEndMonth = input(3) testEndDay = input(31, "Backtest Start Day") testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testPeriod() => true //time >= testPeriodStart ? true : false dcPeriod = 20 dcUpper = highest(close, dcPeriod)[1] dcLower = lowest(close, dcPeriod)[1] dcAverage = (dcUpper + dcLower) / 2 plot(dcLower, style=line, linewidth=3, color=red, offset=1) plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1) plot(dcAverage, color=black, style=line, linewidth=3, title="Mid-Line Average") strategy.entry("simpleBuy", strategy.long, when=close > dcAverage) strategy.close("simpleBuy",when=close < dcLower) strategy.entry("simpleSell", strategy.short,when=close < dcAverage) strategy.close("simpleSell",when=close > dcAverage)