장기 트렌드 역전 전략은 트렌드 추종과 단기 역전을 결합한 기계적 거래 시스템이다. 채널을 구축하기 위해 7일 최고와 최저를 사용하고 장기 트렌드 방향을 결정하기 위해 200일 이동 평균을 사용합니다. 황소 시장에서는 하락과 하락에서 구매하고 상승 추세에서 판매합니다. 곰 시장에서는 상승과 하락에서 판매합니다.
이 전략은 주로 다음과 같은 원칙에 기초합니다.
지난 주 동안의 상승과 하락을 판단하기 위해 7일 최고-하락을 사용하세요.
200일 이동평균은 장기 트렌드 방향을 결정합니다.
가격이 7 일 최저치 아래로 돌고 200 일 이동 평균 이상의 경우 구매 신호가 생성됩니다. 이것은 단기 하향 교정의 끝을 나타냅니다. 그리고 추세는 상향으로 역전될 수 있습니다.
가격이 7일 최고치를 넘어서 200일 이동평균 이하로 떨어지면 판매 신호가 생성됩니다. 이것은 단기 상승조정의 끝을 나타내고 추세가 하향으로 반전될 수 있습니다.
트레이드당 리스크를 제어하기 위해 2x ATR 스톱 로스를 사용하십시오.
핵심은 단기 및 장기 시간 프레임을 모두 고려하는 것입니다. 7 일 채널은 최근의 가격 행동을 판단하고 200 일 MA는 여러 달 트렌드를 판단합니다. 거래 신호는 둘 다 같은 방향을 표시 할 때만 생성됩니다. 이것은 단기 수정에서 잘못된 신호를 피합니다.
이 전략의 주요 장점은 다음과 같습니다.
가격과 이동평균에 기반한 간단하고 명확한 신호입니다. 구현하기 쉽습니다.
단기적, 장기적 추세를 고려하고 노이즈를 효과적으로 필터합니다.
추세와 평균 반전이 합쳐지면 수익률이 부드럽습니다.
ATR 스톱 손실은 위험을 조절하고 최대 마감량을 줄입니다.
주식, 외환, 암호화폐 시장에 적용됩니다.
높은 주파수와 낮은 주파수 환경에서 작동할 수 있습니다.
주요 위험은 다음과 같습니다.
강력한 트렌드 시장에서 큰 트렌드를 놓칠 수 있습니다.
스톱 로즈는 불안한 시장에서 자주 발생할 수 있습니다.
부적절한 매개 변수는 과잉 거래로 이어질 수 있습니다.
부적절한 단기 및 장기 트렌드 메트릭은 너무 많은 신호를 필터 할 수 있습니다.
샘플 데이터가 부족해서 모델이 고장 났어요
주요 위험 관리 기술:
합리적인 스톱 로스 및 트레이드 빈도를 위한 매개 변수를 최적화합니다.
시장과 시간 프레임에 걸쳐 강력한 백테스팅
단일 전략 위험을 낮추기 위한 포트폴리오 다각화
거래당 손실을 제한하기 위한 기하급수적 스톱 로스
이 전략은 다음과 같이 개선될 수 있습니다.
더 나은 단기 트렌드 메트릭을 위해 채널 길이를 최적화하십시오.
더 나은 장기 트렌드 메트릭을 위해 MA 길이를 최적화하십시오.
다른 스톱 로스 기술을 시도해 보세요.
부피 조건을 추가합니다. 트렌드 반전은 종종 부피를 증가시킵니다.
머신러닝을 통해 최적의 단기 및 장기 매개 변수를 찾습니다.
기본과 감정에 기반한 동적 출구 규칙
스톱 로스를 기하급수적 또는 이익 잠금 알고리즘에 최적화합니다.
매개 변수 최적화와 조합은 수익률과 위험 지표를 더욱 향상시킬 수 있습니다.
장기 트렌드 역전 전략은 트렌드 추종과 평균 역전 양쪽을 결합합니다. 단기 및 장기 트렌드를 판단함으로써, 트렌드 역전 지점에서 신호를 생성합니다. 순수한 트렌드 또는 평균 역전 전략과 비교하면 시장 소음을 필터링하여 안정적인 수익과 위험 통제를 달성합니다. 전반적으로,이 전략은 시장 관점과 함께 알고 트레이더에 적합하며 양적 포트폴리오에 대한 안정적인 성능을 제공합니다. 지속적인 최적화 및 위험 관리로 위험 수익의 추가 개선이 가능합니다.
/*backtest start: 2023-11-05 00:00:00 end: 2023-11-12 00:00:00 period: 45m basePeriod: 5m 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/ // © racer8 //@version=4 // This Algo Strategy Has Only 3 rules and 62% Win Rate (Youtube) strategy("Trend Bounce", overlay=true) nn = input(7,"Channel Length") hi = highest(high,nn) lo = lowest(low,nn) n2 = input(200,"Ma Length") ma = sma(close,n2) if close>ma and close<lo[1] strategy.entry("Buy",strategy.long) if close>hi[1] strategy.close("Buy") if close<ma and close>hi[1] strategy.entry("Sell",strategy.short) if close<lo[1] strategy.close("Sell") plot(hi,"high",color=color.aqua) plot(lo,"low",color=color.aqua) plot(ma,"sma",color=color.yellow) //-----------------------------------------Stop Loss------------------------------------------------------- atr = sma(tr,10)[1] bought = strategy.position_size[0] > strategy.position_size[1] sold = strategy.position_size[0] < strategy.position_size[1] slm = input(2.0,"ATR Stop Loss",minval=0) StopPrice_Long = strategy.position_avg_price - slm*atr // determines stop loss's price StopPrice_Short = strategy.position_avg_price + slm*atr // determines stop loss's price FixedStopPrice_Long = valuewhen(bought,StopPrice_Long,0) // stores original StopPrice FixedStopPrice_Short = valuewhen(sold,StopPrice_Short,0) // stores original StopPrice plot(FixedStopPrice_Long,"ATR Stop Loss Long",color=color.blue,linewidth=1,style=plot.style_cross) plot(FixedStopPrice_Short,"ATR Stop Loss Short",color=color.red,linewidth=1,style=plot.style_cross) if strategy.position_size > 0 strategy.exit(id="Stop", stop=FixedStopPrice_Long) // commands stop loss order to exit! if strategy.position_size < 0 strategy.exit(id="Stop", stop=FixedStopPrice_Short) // commands stop loss order to exit!