슈퍼트렌드 전략 원칙 분석
슈퍼트렌드 전략 (Supertrend strategy) 은 트렌드를 따르는 전략으로, 트렌드 방향은 평균 진역 (Average True Range, ATR) 을 계산하고 슈퍼트렌드 라인을 그래프링함으로써 결정된다. 이 전략은 세 개의 슈퍼트렌드 라인을 그래프링하기 위해 세 개의 매개 변수를 사용하여 가격이 라인을 넘어서면 거래 신호를 생성한다.
이 전략은 먼저 세 개의 ATR 세트를 계산하고 세 개의 슈퍼트렌드 라인을 그리는 요인을 사용합니다. ATR은 가격 변동성을 반영하는 반면 요인은 가격에 대한 슈퍼트렌드 라인의 민감도를 결정합니다. 이 전략은 다양한 기간 동안 트렌드 변화를 포착하기 위해 단기, 중기 및 장기 매개 변수 조합을 채택합니다.
가격이 슈퍼트렌드 라인을 넘을 때 상승 추세를 나타내고 전략이 길게 갈 것입니다. 가격이 라인을 넘을 때 하락 추세를 나타내고 전략이 짧게 갈 것입니다. 세 개의 슈퍼트렌드 라인은 더 많은 거래 기회를 창출 할 수 있으며 또한 잘못된 신호를 줄이기 위해 신호를 검증 할 수 있습니다.
또한, 전략은 변경 함수를 사용하여 슈퍼 트렌드 라인 방향이 변경되었는지 확인합니다. 방향이 변경되면 새로운 신호가 생성되며, 포지션을 닫은 즉시 새로운 거래를 피합니다. 마지막으로, 전략은 거래 가능성을 개선하기 위해 모든 기능을 닫고 취소합니다.
요약하자면, 슈퍼트렌드 전략은 여러 매개 변수 집합을 사용하여 시간 프레임에 걸쳐 트렌드를 포착하기 위해 슈퍼트렌드 지표의 장점을 완전히 활용합니다. 또한 적절한 입시 및 출구 시스템을 통합하고 트렌드 다음 전략에 대한 참조로 사용될 수 있습니다.
슈퍼트렌드 전략의 장점
슈퍼트렌드 전략은 다음과 같은 장점을 가지고 있습니다.
트렌드 변화를 포착하는 강력한 능력 - 동적 슈퍼 트렌드 라인은 시장에서 트렌드 변화를 유연하게 포착하고 다양한 시장에서 잘못된 신호를 피할 수 있습니다.
여러 매개 변수 집합 - 세 개의 슈퍼 트렌드 라인을 그리기 위해 세 개의 매개 변수 집합을 사용하는 것은 더 많은 기회를 위해 짧은, 중간 및 긴 시간 프레임에 걸쳐 트렌드를 캡처 할 수 있습니다.
반전 검증 메커니즘 - 슈퍼 트렌드 라인 방향이 변경 될 때만 새로운 신호를 생성하면 불필요한 윙사브를 피하고 신호 신뢰성을 확인할 수 있습니다.
실용적인 설계 - 모든 포지션을 닫고 모든 주문 기능을 취소하면 실제 거래 가능성을 향상시킵니다.
단순하고 명확한 논리 - 간단한 신호 규칙과 함께 Supertrend를 기본으로 사용하면 조작 및 테스트가 용이합니다. 양적 거래 초보자에게 적합합니다.
슈퍼트렌드 전략 위험
슈퍼트렌드 전략은 또한 다음과 같은 위험을 가지고 있습니다.
잘못된 신호에 취약합니다. 슈퍼 트렌드 라인의 빈번한 교차는 범위 시장에서 과도한 잘못된 신호와 손실을 유발할 수 있습니다.
어려운 매개 변수 최적화 - 여러 매개 변수 집합을 최적화하는 것은 어려울 수 있습니다. 부적절한 매개 변수는 성능을 저하시킬 수 있습니다.
트렌드 반전 포인트를 식별 할 수 없습니다. 잠재적 인 트렌드 반전을 결정하지 않고 트렌드 방향에만 의존합니다. 추가 지표가 필요합니다.
극한 이벤트 위험 - 극한 시장 조건에서 위험을 효과적으로 제어 할 수 없습니다. 위험을 관리하기 위해 스톱 손실 전략이 필요합니다.
곡선 적합 편향 - 최적화된 매개 변수는 역사적 데이터에 너무 적합 할 수 있지만 미래에 효과적이지 않을 수 있습니다. 신중한 평가가 필요합니다.
슈퍼트렌드 전략 요약
전반적으로 슈퍼트렌드 전략은 단순하고 실용적인 트렌드 추적 시스템이다. 트렌드 방향을 결정하기 위해 동적인 슈퍼트렌드 라인을 활용하고 성능을 향상시키기 위해 여러 매개 변수 세트를 사용합니다. 전략 메커니즘은 또한 거래 가능성을 위해 합리적으로 설계되었습니다. 그러나 잘못된 신호 및 어려운 매개 변수 최적화와 같은 문제는 개선을 위해 다른 기술 지표와 결합해야합니다. 일반적으로 슈퍼트렌드 전략은 중장기 트렌드 추적에 잘 작동하며 초보자을위한 참조 전략 템플릿으로 사용될 수 있습니다.
/*backtest start: 2023-08-15 00:00:00 end: 2023-09-14 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © MarketShree //@version=4 // strategy("Supertrend Strategy", overlay=true, default_qty_value=15) closs_all=input(title="Close_all_Position", type=input.bool, defval=false) cancel=input(title="Check To Cancel", type=input.bool, defval=false) atrPeriod1 = input(7, "ATR Length-1") factor1 = input(1.5,"Factor-1",type=input.float) atrPeriod2 = input(10, "ATR Length-2") factor2 = input(2, "Factor-2") atrPeriod3 = input(20, "ATR Length-3") factor3 = input(3, "Factor-3") [superTrend1, direction1] = supertrend(factor1, atrPeriod1) [superTrend2, direction2] = supertrend(factor2, atrPeriod2) [superTrend3, direction3] = supertrend(factor3, atrPeriod3) if change(direction1) < 0 strategy.entry("LONG", strategy.long) if change(direction1) > 0 strategy.entry("SHORT", strategy.short) strategy.close_all(when=closs_all,comment ="All postion are closed") strategy.cancel_all(when=cancel) if change(direction2) < 0 strategy.entry("LONG", strategy.long) if change(direction2) > 0 strategy.entry("SHORT", strategy.short) strategy.close_all(when=closs_all,comment ="All postion are closed") strategy.cancel_all(when=cancel) if change(direction3) < 0 strategy.entry("LONG", strategy.long) if change(direction3) > 0 strategy.entry("SHORT", strategy.short) strategy.close_all(when=closs_all,comment ="All postion are closed") strategy.cancel_all(when=cancel) colResistance = direction1 == 1 and direction1 == direction1[1] ? color.new(color.red, 0) : color.new(color.red, 100) colSupport = direction1 == -1 and direction1 == direction1[1] ? color.new(color.green, 0) : color.new(color.green, 100) plot(superTrend1, color = colResistance, linewidth=2) plot(superTrend1, color = colSupport, linewidth=2) colResistance1 = direction2 == 1 and direction2 == direction2[1] ? color.new(color.red, 0) : color.new(color.red, 100) colSupport1 = direction2 == -1 and direction2 == direction2[1] ? color.new(color.green, 0) : color.new(color.green, 100) plot(superTrend2, color = colResistance, linewidth=2) plot(superTrend2, color = colSupport, linewidth=2) colResistance2 = direction3 == 1 and direction3 == direction3[1] ? color.new(color.red, 0) : color.new(color.red, 100) colSupport2 = direction3 == -1 and direction3 == direction3[1] ? color.new(color.green, 0) : color.new(color.green, 100) plot(superTrend3, color = colResistance1, linewidth=2) plot(superTrend3, color = colSupport1, linewidth=2)