장기 추세 반전 전략


생성 날짜: 2023-11-13 10:51:35 마지막으로 수정됨: 2023-11-13 10:51:35
복사: 0 클릭수: 672
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

장기 추세 반전 전략

개요

장기 트렌드 반전 전략은 트렌드 추적과 단기 반전을 결합한 기계적 거래 시스템이다. 이 전략은 7일 고점과 저점을 이용해 통로를 구축하고, 200일 이동 평균과 함께 장기 트렌드 방향을 판단한다. 황소 시장에서 이 전략은 하락 과정에서 구매하고 부진 과정에서 판매한다.

전략 원칙

이 전략은 다음과 같은 원칙에 기초하고 있습니다.

  1. 7일간의 하위/높이 지점으로 통로를 구성하여 최근 7일간의 상승/하락을 판단하십시오.

  2. 200일 이동 평균은 장기적 추세 방향성을 판단한다.

  3. 가격이 7일 하락을 넘어 200일 이동 평균을 넘으면 구매 신호가 발생한다. 이는 단기 조정 하락이 끝났음을 의미하며, 추세는 상승으로 전환될 수 있다.

  4. 가격이 7일 고치를 넘어서 200일 이동 평균보다 낮으면 판매 신호가 발생한다. 이는 단기 조정 상승세가 끝났음을 의미하며, 추세는 하향으로 역전될 수 있다.

  5. 2배의 ATR을 사용하여 단편 손실을 제어하십시오.

이 전략의 핵심은 단기 및 장기 두 시간 차원의 동시 트렌드를 고려하는 것이다. 7일 채널은 최근 일주일 동안의 하락 상황을 판단하고, 200일 이동 평균은 반년 정도에 대한 장기 트렌드 방향을 판단한다. 두 가지가 동시 부진 또는 하락했을 때만 거래 신호가 발생한다. 이렇게하면 단기 조정으로 인한 잘못된 신호를 효과적으로 필터링 할 수 있다.

우위 분석

이 전략의 주요 장점은 다음과 같습니다.

  1. 전략적 신호는 간단하고 명확하며, 가격과 평균에만 기반하여 쉽게 실행할 수 있습니다.

  2. 소음을 효과적으로 필터링할 수 있도록, 단기 및 장기적인 추세를 고려해야 합니다.

  3. 트렌드 추적과 반전 결합을 이용한 거래 방식으로 수익은 비교적 평평하다.

  4. ATR을 이용한 손해 제어의 위험, 최대 회수량은 상대적으로 작다.

  5. 주식, 외환, 암호화폐 등 여러 시장에 광범위하게 적용될 수 있다.

  6. 높은 주파수 및 낮은 주파수 환경에서 작동할 수 있다.

위험 분석

이 전략의 주요 위험은 다음과 같습니다.

  1. 장기적으로 강세를 보인다면, 전략이 상승의 대부분을 놓칠 수 있다.

  2. 지진상태에서, 정지파는 자주 유발될 수 있다.

  3. 잘못된 매개 변수 설정으로 인해 거래가 너무 빈번하게 이루어질 수 있습니다.

  4. 단기 및 장기적 추세를 판단하는 기준이 부적절하게 설정되어 대부분의 기회를 차단할 수 있습니다.

  5. 외부 데이터로 인해 모델이 작동하지 않을 수 있습니다.

주요한 위험 통제는 다음과 같습니다.

  1. 매개 변수를 최적화하여 상쇄 손실과 거래 빈도를 합리적으로 보장합니다.

  2. 엄격한 재검토 검증으로 시장과 기간의 안정성을 확인한다.

  3. 포트폴리오 투자로 단일 전략의 위험을 줄여주세요.

  4. 지수 상쇄를 사용하여 단편적 손실을 줄이십시오.

최적화 방향

이 전략은 다음과 같은 측면에서 최적화될 수 있습니다.

  1. 채널 길이 변수를 최적화하여 더 적합한 단기 트렌드 판단 기준을 찾습니다.

  2. 이동 평균 변수를 최적화하여 더 적합한 장기 동향 판단 기준을 찾습니다.

  3. 다른 손해 방지 방법을 시도해 보세요. 예를 들어, 퍼센티지 손해 방지, 이동 손해 방지 등이죠.

  4. 거래량 증가의 판단기준. 트렌드가 반전되면 거래량이 증가하는 경우가 많다.

  5. 과거 데이터 트레이닝을 바탕으로 장기, 단기 트렌드를 판단하는 최적의 매개 변수

  6. 정서적 지표와 기본 지표를 결합하여 동적 탈퇴 메커니즘을 구축하십시오.

  7. 지수형 중지 또는 수익 보호 중지를 구현하기 위해 손실 중지 알고리즘을 최적화하십시오.

이 전략은 체계적으로 최적화되고 포괄적 인 변수를 사용하여 수익률과 위험 조정 지표를 더욱 향상시킬 수 있습니다.

요약하다

장기 트렌드 반전 전략은 전형적인 트렌드와 반전을 결합한 알고리즘 거래 전략이다. 단기 및 장기 두 시간 차원의 트렌드 변화를 동시에 판단하여 트렌드 반전 지점에서 거래 신호를 생성한다. 순수 트렌드 또는 순수 반전 전략에 비해 이 전략은 단기 시장 소음을 효과적으로 필터링하여 위험을 통제하는 전제 하에 안정적인 수익을 얻을 수 있다.

전략 소스 코드
/*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!