이산 이동 평균을 기반으로 한 추세 돌파 전략


생성 날짜: 2023-10-23 15:38:37 마지막으로 수정됨: 2023-10-23 15:38:37
복사: 0 클릭수: 795
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

이산 이동 평균을 기반으로 한 추세 돌파 전략

개요

이 전략은 평평한 이동 평균에 대한 가격의 편차 정도를 계산하여 시장 추세와 트렌드 반전의 기회를 파악합니다. 이것은 트렌드 추적 전략의 일종으로, 주요 아이디어는 평평한 이동 평균을 돌파 할 때 구매하거나 판매하는 것입니다.

전략 원칙

  1. 가격의 3차 가중 이동 평균 FPrice를 계산하고, 평평한 이동 평균으로 니다.

  2. FPrice의 지난 17일 표준차 stdev, 그리고 17일 간단한 이동 평균ema2을 계산한다.

  3. 평균에 대한 가격의 편차를 계산 Rate1=(FPrice-ema2) /stdev。

  4. Rate1<-1이 상승하기 시작하면, 하향 평균을 깨고 구매 신호를 발생시킨다.

  5. Rate1>1이 하락하기 시작하면 상위 평균을 돌파하여 판매 신호를 생성한다.

  6. 신호에 따라 포지션을 열거나 닫습니다.

이 전략은 가격의 평균을 돌파하는 표준 차이의 범위를 사용하여 트렌드 반전을 판단하고, 참조 범위를 동적으로 조정하여 시장의 변동에 적응합니다. 가격이 평균의 한쪽에서 표준 차이를 돌파하면 거래 신호를 생성합니다. 단기 시장 소음을 잘 제거하여 중장기 트렌드 전환점을 포착하는 것이 좋습니다.

우위 분석

  1. 동적 참조 범위를 사용하여 시장의 변동성에 자동으로 적응할 수 있다.

  2. 평평한 이동 평균은 단기 잡음을 효과적으로 필터링한다.

  3. 표준 차이의 범위는 합리적인 돌파한 임계값을 설정하여 자주 거래되는 것을 방지한다.

  4. 가격의 평균 방향으로 움직이는 동력을 필터로 사용하여 가짜 돌파구를 피하십시오.

  5. 전략의 논리는 간단하고 명확하며, 이해하기 쉽고 구현하기 쉽습니다.

  6. 시장에 따라 변수를 조정할 수 있으며, 다른 거래 품종에 적용된다.

  7. 다른 지표들과 함께 사용해서 전략의 효과를 높일 수 있습니다.

위험 분석

  1. 시장이 장기적으로 낮은 변동성을 가지고 있을 때 거래의 기회가 줄어들 수 있다.

  2. 만약 STD가 너무 크거나 너무 작다면, 좋은 기회를 놓치거나 너무 많은 가짜 신호를 생성할 수 있다.

  3. 가격의 급격한 변동이 있을 때, 표준 차이가 무효화되어 잘못된 신호가 발생한다.

  4. 트렌드 전환 이전에는 가짜 브레이크 신호가 더 많이 나타납니다.

  5. 평균 시스템은 단기 조정에 민감하지 않아서 단선 기회를 놓칠 수 있다.

  6. 특정 시장 환경에 맞게 합리적으로 사용자 정의된 파라미터와 필터링 조건이 필요합니다.

최적화 방향

  1. 이동 평균의 양과 유형을 최적화하여 다양한 품종 특성에 맞게 조정한다.

  2. 표준 차등 곱수 변수를 조정하여 최적의 참조 거래 영역을 찾습니다.

  3. 가격 동력 지표와 같은 필터링 조건을 증가시키고, 가짜 돌파 신호를 줄여줍니다.

  4. 변동률 지표와 결합하여 시장 변동에 따라 동적으로 변수를 조정한다.

  5. 다른 비슷한 전략과 결합하여 승률을 높일 수 있습니다.

  6. 트렌드 전환에 앞서, 포지션 관리 위험을 줄이는 것을 고려하십시오.

  7. 단편적 손실을 통제하기 위한 스톱로스 전략을 추가합니다.

요약하다

이 전략은 전체적인 생각이 명확하고, 가격 트렌드 반전점을 효과적으로 식별할 수 있으며, 파라미터 최적화와 조합을 통해 다양한 시장 환경에 적용할 수 있다. 그러나 위험을 통제하는 데 주의를 기울여야 하며, 급격한 변동 속에서 잘못된 신호를 발생하지 않도록 한다. 최적화가 적절하다면, 간단한 실용적인 트렌드 추적 전략이다.

전략 소스 코드
/*backtest
start: 2023-09-22 00:00:00
end: 2023-10-22 00:00:00
period: 4h
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/
// © Mustafaozver

//@version=4
strategy("Escaping of Rate from Avarage By Mustafa OZVER", "EoRfA", overlay=false)
//strategy("Escaping of Rate from Avarage By Mustafa OZVER", "EoRfA", overlay=false)

src = input(ohlc4,"Source")
FPrice = wma(src,3)
len = input(17,"Length")

stdev = stdev(FPrice,len)
ema2 = ema(FPrice,len)

Rate1 = (FPrice - ema2) / stdev
//bgcolor(color=((stdev/ema)>0.0015)?color.green:#00000000,transp=80)

colorG = color.lime
colorR = color.red

hline(0,linestyle=hline.style_solid,editable=false)
hline1=hline(1,linestyle=hline.style_dotted,editable=false)
hlinen1=hline(-1,linestyle=hline.style_dotted,editable=false)
fill(hline1,hlinen1,color=color.silver,transp=85,editable=true)

//plot(Rate,color=(Rate>0?colorG:colorR),transp=75,style=plot.style_area,editable=false)

plot(Rate1,title="ESC1",color=(Rate1>0?colorG:colorR),style=plot.style_line,linewidth=1,editable=true)

BUYSIGNAL = Rate1 < -1 and change(Rate1) > 0
SELLSIGNAL = Rate1 > 1 and change(Rate1) < 0

if (BUYSIGNAL)
    strategy.order("LONG1",true)
    //strategy.close("SHORT1")

if (SELLSIGNAL)
   // strategy.order("SHORT1",false)
    strategy.close("LONG1")