FRAMA와 이중 이동 평균에 기반한 이동 평균 교차 거래 전략

저자:차오장, 날짜: 2023-12-22 16:08:23
태그:

img

전반적인 설명

이 전략은 먼저 13주기 및 26주기 간단한 이동평균을 계산하고, 그 다음 FRAMA 지표를 계산합니다. 빠른 선이 아래에서 위로 느린 선을 뚫고 갈 때 길게 이동하고, 빠른 선이 위에서 아래로 느린 선을 뚫고 갈 때 또는 FRAMA 지표가 위에서 아래로 닫기 가격을 뚫고 갈 때 포지션을 종료합니다.

전략 원칙

이 전략은 주로 이동 평균 크로스오버를 사용하여 거래 신호를 생성합니다. 단기 이동 평균이 하위에서 상향으로 장기 이동 평균을 뚫고 갈 때, 트렌드가 하락에서 상승으로 전환되고 길게 이동한다는 것을 나타냅니다. 단기 이동 평균이 장기 평균보다 낮을 때, 그것은 임박한 반전을 나타내고 포지션을 닫습니다.

한편, FRAMA 지표는 보조 판단으로 도입된다. FRAMA 지표는 프랙탈 시장 가설에 기초하여 개선된 적응 이동 평균 선이다. 다른 기간에 걸쳐 가격 변동 진폭의 로그아리듬 변화율을 계산함으로써, 이동 평균의 매끄러움을 동적으로 조정하기 위해 실시간으로 시장의 프랙탈 차원을 추정했다. FRAMA 지표가 폐쇄 가격 아래로 넘어가면 트렌드 역전 신호를 나타낸다. 이동 평균 크로스오버 신호와 결합하면 판단의 정확성을 향상시킨다.

이점 분석

이 전략은 이중 이동 평균 크로스오버와 FRAMA 지표를 결합하여 잘못된 브레이크아웃 신호를 효과적으로 필터하고 거래 신호의 품질을 향상시킬 수 있습니다. 이중 이동 평균 크로스오버는 주로 주요 거래 방향을 판단하며 보조 FRAMA 판단은 오스실레이션 시장에서 회전 시기를 놓치지 않도록 할 수 있습니다.

단일 지표 및 모델에 비해 이 전략은 신호 품질을 크게 향상시키고 잘못된 판단의 가능성을 줄일 수 있습니다. 한편으로, 빠르고 느린 이동 평균을 결합하면 함락되지 않도록 추세를 따라갈 수 있습니다.

위험 분석

이 전략의 주요 위험은 이중 이동 평균이 더 많은 잘못된 브레이크 아웃 신호를 생성 할 수 있으며 FRAMA 지표의 매개 변수 설정도 효과에 영향을 줄 수 있다는 것입니다. 또한 특정 시장 조건에서 빠른 라인과 느린 라인, FRAMA 및 폐쇄 가격 사이의 교차가없는 긴 기간이있을 수 있으며 거래 기회가 발생하지 않습니다.

위의 위험을 제어하기 위해 이동 평균 기간과 같은 매개 변수는 그에 따라 조정되거나 다른 지표로 필터링 될 수 있습니다. 또한, 길이, 프랙탈 인수를 포함한 FRAMA 지표의 매개 변수는 과도한 매끄럽거나 과민성을 피하기 위해 다른 시장에 따라 적절히 설정해야합니다.

최적화 방향

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

  1. 최적의 매개 변수 쌍을 찾기 위해 이동 평균의 더 많은 조합과 기간을 테스트합니다.

  2. 단일 손실을 통제하기 위해 스톱 로스 전략을 추가합니다.

  3. 거래량 지표를 결합하여 낮은 거래량에서 잘못된 브레이크오프를 피합니다.

  4. 실시간 시장 상태를 평가하고 매개 변수를 동적으로 조정하기 위해 기계 학습 모델을 추가합니다.

  5. 감정 지표, 뉴스 및 다른 여러 요소를 결합하여 의사결정 품질을 향상시킵니다.

결론

이 예비 전략은 이중 이동 평균 크로스오버와 FRAMA 지표의 응용을 결합합니다. 단순성과 직관성을 유지하는 기초에서 신호 품질을 효과적으로 향상시켰으며 추가 테스트 및 최적화를 가치가 있습니다. 매개 변수 조정, 새로운 지표 도입과 같은 최적화로이 전략은 안정적이고 신뢰할 수있는 거래 전략이 될 것으로 예상 할 수 있습니다.


/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-16 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Fractal Adaptive Moving Average",shorttitle="FRAMA",overlay=true)


ma_fast = sma(close,13)

ma_slow = sma(close,26)
plot(ma_fast,color = green)
plot(ma_slow, color = yellow)
price = input(hl2)
len = input(defval=16,minval=1)
FC = input(defval=1,minval=1)
SC = input(defval=198,minval=1)
len1 = len/2
w = log(2/(SC+1))
H1 = highest(high,len1)
L1 = lowest(low,len1)
N1 = (H1-L1)/len1
H2 = highest(high,len)[len1]
L2 = lowest(low,len)[len1]
N2 = (H2-L2)/len1
H3 = highest(high,len)
L3 = lowest(low,len)
N3 = (H3-L3)/len
dimen1 = (log(N1+N2)-log(N3))/log(2)
dimen = iff(N1>0 and N2>0 and N3>0,dimen1,nz(dimen1[1]))
alpha1 = exp(w*(dimen-1))
oldalpha = alpha1>1?1:(alpha1<0.01?0.01:alpha1)
oldN = (2-oldalpha)/oldalpha
N = (((SC-FC)*(oldN-1))/(SC-1))+FC
alpha_ = 2/(N+1)
alpha = alpha_<2/(SC+1)?2/(SC+1):(alpha_>1?1:alpha_)
out = (1-alpha)*nz(out[1]) + alpha*price
plot(out,title="FRAMA",color=purple,transp=0)
entry() => crossover(ma_fast, ma_slow) and (out < close)
exit() => crossover(ma_slow, ma_fast) or crossunder(out, close)

strategy.entry(id= "MA cross", long = true, when = entry())
strategy.close(id= "MA cross", when = exit())

더 많은