이 전략은 트렌드를 따르는 원칙에 기반합니다. 시장 트렌드 방향을 결정하기 위해 파라볼릭 SAR 지표를 사용하고 가격의 황소 / 곰 상태를 시각화하기 위해 바콜러 지표를 결합합니다. 트렌드가 상승 할 때 길고 트렌드가 하락 할 때 짧습니다. 시장 트렌드로부터 이익을 얻는 것을 목표로합니다.
이 전략은 주로 시장 트렌드 방향을 판단하기 위해 패러볼릭 SAR 지표를 사용합니다. 패러볼릭 스톱 및 리버스 지표로도 알려진 패러볼릭 SAR는 두 가지 매개 변수로 구성됩니다. 단계, SAR 포인트 움직임의 단계를 나타냅니다. 그리고 MAX, SAR 포인트에 허용되는 최대 단계를 나타냅니다. 시장이 트렌드에있을 때 SAR 포인트는 가격에 가깝고 트렌드와 함께 지속적으로 상승 또는 하락으로 이동합니다. 트렌드가 뒤집어지면 SAR 포인트는 가격을 가로질러 반대편에 나타납니다. 따라서 SAR 포인트를 높은 / 낮은 가격과 비교하여 현재 트렌드 방향을 결정할 수 있습니다.
특히, SAR 포인트가 가장 낮은 가격 아래로 떨어지면 상승 추세를 나타내고 전략은 길게 갈 것입니다. SAR 포인트가 가장 높은 가격 이상으로 넘으면 트렌드 역전을 의미하며 전략은 긴 포지션을 닫을 것입니다. 반대로, SAR 포인트가 가장 높은 가격 이상으로 떨어지면 하락 추세를 나타내고 전략은 짧게 갈 것입니다. SAR 포인트가 가장 낮은 가격 아래로 넘으면 역전을 나타내고 전략은 짧은 포지션을 닫을 것입니다.
현재 트렌드 상태를 시각적으로 더 직관적으로 결정하기 위해 전략은 바를 색칠하는 바 컬러 지표를 사용합니다. 녹색 바는 SAR 포인트보다 클로즈가 높을 때 상승 추세를 나타냅니다. 빨간색 바는 클로즈가 낮을 때 하락 추세를 나타냅니다.
이 전략의 가장 큰 장점은 시장 트렌드를 정확하게 포착하고 시장의 빈번한 소음으로 인한 간섭을 피하면서 거래 트렌드를 추적 할 수 있다는 것입니다. 구체적인 장점은 다음과 같습니다.
트렌드를 결정하기 위해 파라볼릭 SAR를 이용하면, SAR 포인트의 디자인은 기발하며, 트렌드 반전을 빠르고 정확하게 파악할 수 있습니다.
바콜러 표시기를 채택하여 현재 황소 / 곰 상태를 직관적으로 표시합니다.
거래 신호는 다른 요인 대신 트렌드 자체에서 나오며, 단기 가격 변동에 의해 잘못 인도되는 것을 피합니다.
트렌드 추적을 이용하면 손실을 막고, 너무 민감하지 않고 제때 중단하고, 함정에 빠지지 않도록 합니다.
일관된 무역 방향을 유지하고 불필요한 역거래를 피하고 단순성을 위해 유익합니다.
거래 규칙은 간단하고 명확하고 이해하기 쉽고 적용하기 쉽고 초보자도 배울 수 있습니다.
이 전략의 가장 큰 위험은 다음과 같습니다.
특정 진입점과 출구점을 결정할 수 없으므로 초기 및 후기 트렌드 기회를 놓칠 가능성이 있습니다.
거래 중단 및 통합 중 포지션을 유지, 잡힐 위험이있는 수익 또는 손실을 중지 할 수 없습니다.
각 거래의 위험/이익 비율을 제한할 수 없으므로 단일 거래 손실이 너무 커질 수 있습니다.
일방적인 거래만 하고, 상승 추세나 하락 추세를 파악할 수 있습니다.
더 큰 트렌드 분석을 고려하지 않는 것은 주요 트렌드에 반대되는 거래의 위험을 안고 있습니다.
이러한 위험을 해결하기 위해 다음과 같은 측면에서 최적화를 할 수 있습니다.
다른 지표를 결합하여 특정 입구와 출구 지점을 결정합니다.
통합 중 포지션 개설을 피하기 위해 트렌드 발견 지표를 추가합니다.
거래당 손실을 제한하도록 리스크 관리 규칙을 설정합니다.
더 많은 거래 기회를 잡기 위해 긴 / 짧은 전환 논리를 최적화하십시오.
주요 트렌드 방향을 결정하기 위해 여러 시간 프레임 분석을 추가합니다.
이 전략은 다음과 같은 측면에서 더 이상 최적화 될 수 있습니다.
다른 제품과 시간 프레임에 더 잘 맞도록 Parabolic SAR 매개 변수를 최적화합니다.
필터 입점으로 이동 평균과 같은 필터를 추가합니다.
트렌드가 시작된 직후 트렌드에 들어가기 위해 브레이크아웃 전략을 적용하세요.
너무 민감하거나 너무 무감각하지 않기 위해 손해를 막는 전략을 최적화하십시오.
특정 수준에 도달했을 때 적극적으로 이익을 취하기 위해 수익을 취하는 전략을 추가하십시오.
리스크 조정 수익률을 높이기 위해 자금 관리 전략을 강화합니다.
무역 방향과 주요 트렌드 조화를 보장하기 위해 여러 시간 프레임 최적화.
동적으로 매개 변수를 최적화하기 위해 기계 학습 등을 도입합니다.
이 전략은 패러볼릭 SAR 지표로 트렌드 방향을 결정하고 시작 직후 트렌드를 추적합니다. 이점은 거래 신호가 트렌드 자체에서 나오고 시장 소음에 덜 민감하다는 것입니다. 그러나 거래 리스크를 제한할 수 없다는 것과 출입 지점을 놓치는 것과 같은 약점도 있습니다. 미래 최적화에 Stop Loss / Take Profit 설정, 매개 변수 조정, 필터 추가 등이 포함됩니다. 백테스트 및 라이브 거래에서 전략 성능을 향상시키기 위해.
/*backtest start: 2023-10-06 00:00:00 end: 2023-11-05 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Trend Trader Strategy (Trend Code)", shorttitle="Trend Trader Strategy (Trend Code)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) //Inputs TrendCode = input(5, title = "Trend Code") //////////////////////////////////////////////////////////////////////////////// // BACKTESTING RANGE // From Date Inputs fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) fromYear = input(defval = 2019, title = "From Year", minval = 1970) // To Date Inputs toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2020, title = "To Year", minval = 1970) // Calculate start/end date and time condition startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true //////////////////////////////////////////////////////////////////////////////// //Parabolic SAR psar = sar(0.02, 0.02, TrendCode * 0.005) //Plot PSAR plot(psar, title="PSAR", color = color.teal , trackprice=true) //Barcolor barcolor(close > psar ? color.green : color.red, title = "Bar Color") if (psar >= high and time_cond) strategy.entry("long", strategy.long, stop=psar, comment="long") else strategy.cancel("long") if (psar <= low and time_cond) strategy.entry("short", strategy.short, stop=psar, comment="short") else strategy.cancel("short") if (not time_cond) strategy.close_all()