
이동 평균의 백분율 대역 전략은 트렌드 추적 전략이다. 이동 평균을 기준으로 삼고, 가격의 백분율에 따라 상승과 하락을 계산한다. 가격이 상승을 돌파 할 때, 공백을; 가격이 하락을 돌파 할 때, 더 많은 것을한다. 이 전략의 가장 큰 장점은 변동 범위를 자동으로 조정할 수 있다는 것입니다.
이 전략의 핵심 지표는 이동 평균이며, 중도선은 간단한 N일 이동 평균이다. 상도선과 하도선은 가격의 퍼센트 변화에 따라 계산된다. 구체적인 계산 공식은 다음과 같다:
상도선 = 중간도선 + 가격 * 상도선 % 하위 궤도 = 중간 궤도 - 가격 * 하위 궤도 %
여기의 오프라인 비율과 오프라인 비율은 조정 가능한 변수이며, 기본값은 2이며, 가격의 2%를 나타냅니다.
가격이 상승할 때 상궤도선과 하궤도선은 동시에 위쪽으로 확장하고, 가격이 하락할 때 상궤도선과 하궤도선은 동시에 아래쪽으로 수축한다. 이것은 시장의 변동 정도에 따라 채널 폭을 자동으로 조정하는 효과를 실현한다.
거래 전략의 측면에서, 가격이 상향 궤도선을 돌파할 때 공백을 가하고, 가격이 하향 궤도선을 돌파할 때 더 많이 한다. 또한, 이 전략은 특정 달에만 거래할 수 있는 조건을 설정하여, 주요 추세가 아닌 달에 잘못된 신호가 발생하지 않도록 한다.
이 전략의 가장 큰 장점은 변동 범위가 가격의 퍼센트 변화에 따라 계산된다는 것입니다. 변동 범위는 자동으로 조정되어 다른 거래 환경에 적응할 수 있으며, 흔들리는 거래에서 가짜 신호를 줄일 수 있으며, 트렌드 거래에서 전환을 적시에 잡을 수 있습니다. 또한, 달과 날짜 필터링 조건을 설정하여 마진달의 잡음을 필터링하여 주요 트렌드가 아닌 달에 잘못된 신호를 방지 할 수 있습니다.
이 전략의 주요 위험은 이동 평균의 지연성이 있고, 갑작스러운 사건에 대한 즉각적인 반응을 할 수 없다는 것입니다. 또한, 비율 범위의 설정은 전략의 성과에도 영향을 미칩니다. 너무 낮게 설정하면 이동 평균의 지연성이 문제가 심화됩니다. 너무 높게 설정하면 잘못된 신호의 확률이 증가합니다.
또 다른 잠재적인 위험은 날짜와 달 조건에 너무 의존하는 것입니다. 주요 움직임이 설정된 달 이외에 발생하면 이 전략은 기회를 놓치게 됩니다. 따라서 이러한 사전 조건은 다양한 품종과 시장 환경에 따라 조정해야 합니다.
이 전략의 최적화 공간은 여전히 넓다. 첫째, 이동 평균의 시간 길이, 비율 변수 등과 같은 다양한 변수 조합을 테스트하여 최적의 변수를 찾을 수 있다. 둘째, 신호의 신뢰성을 높이기 위해 이동 평균 신호를 확인하기 위해 다른 지표를 추가하는 것을 고려할 수 있다. 마지막으로, 날짜 및 월 필터링 조건은 다양한 품종과 시장 환경에 따라 조정할 수 있으며, 이를 더 유연하게 만들 수 있다.
예를 들어, 어떤 달이 주요 트렌드 달인지 역사적 데이터를 기반으로 판단하고 자동으로 경계를 계산할 수 있습니다. 가격이 비정상적인 돌파구가 발생했을 때, 한 달의 조건을 일시적으로 무시하고 전면적으로 참여할 수 있습니다. 기계 학습과 같은 수단을 도입하여 이러한 매개 변수를 동적으로 최적화하는 것도 가능합니다.
이동 평균 비율 대역 전략은 전체적으로 매우 실용적인 트렌드 추적 전략이다. 그것의 가장 큰 장점은 변동 범위를 자동으로 조정하고 시장의 변화에 적응할 수 있다는 것이다. 또한, 변수 최적화, 신호 필터링 등과 같은 개선의 여지가 있다. 합리적으로 사용할 수 있다면, 여러 가지 시장 환경에서 안정적으로 수익을 올릴 수 있다.
/*backtest
start: 2022-12-05 00:00:00
end: 2023-12-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title = "Percentage Band", overlay = true)
//////////////// BAND ////////////////////////////
price=close
bandlength = input(50)
bbupmult =input(2,step=0.1,title="Multiplier for Percent upper Band")
bblowmult = input(2,step=0.1,title="Multiplier for Percent Lower Band")
basis = sma(close,bandlength)
devup = (bbupmult*price)/100
devlow = (bblowmult*price)/100
upper = basis + devup
lower = basis - devlow
plot(basis, color=red)
p1 = plot(upper, color=blue)
p2 = plot(lower, color=blue)
fill(p1, p2)
/////////////////////////BAND //////////////////////////
// Conditions
longCond = na
sellCond = na
longCond := crossover(price,lower)
sellCond := crossunder(price,upper)
monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)
if ( longCond )
strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND",comment="BUY")
else
strategy.cancel(id="BUY")
if ( sellCond )
strategy.close("BUY")