이중 이동 평균 역전 전략

저자:차오장, 날짜: 2023-09-26 15:27:58
태그:

전반적인 설명

이중 이동 평균 역전 전략은 평균 역전과 이동 평균 원리를 결합한 거래 전략이다. 123 역전 방법론을 사용하여 먼저 역전 거래 신호를 생성하고, 2/20 기하급수적 이동 평균으로 신호를 필터링하여 두 가지 신호가 일치할 때만 거래를 수행하여 안정성을 향상시킵니다. 이 전략은 장기 트렌드 필터를 사용하여 높은 확률 세팅을 식별하는 동안 단기 역전 기회를 포착하는 것을 목표로합니다.

전략 논리

이 전략은 두 부분으로 구성됩니다.

  1. 123 역전 전략

123 역전 전략은 "How I Tripled My Money in the Futures Market"라는 책에서 유래되었다. 종료 가격이 2일 동안 높은 수준에서 낮은 수준으로 떨어지고, 9일 느린 스토카스틱이 50보다 낮으면, 긴 거리에 갈 역전 지점을 신호한다. 종료 가격이 2일 동안 낮은 수준에서 높은 수준으로 상승하고, 9일 빠른 스토카스틱이 50보다 높으면, 짧은 거리에 갈 역전 지점을 신호한다.

  1. 2/20 기하급수적 이동평균 전략

이 전략은 2/20 EMA를 사용하여 장기 트렌드를 결정합니다. 가격이 2/20 EMA 라인을 넘으면 상승 추세를 신호합니다. 가격이 2/20 EMA 라인을 넘으면 하락 추세를 신호합니다. 이것은 잘못된 브레이크오프를 필터합니다.

이 전략은 123 회전 신호가 2/20 EMA 신호와 일치할 때만 거래 신호를 생성합니다.

이점 분석

이 전략은 단기적 역전과 장기적 경향을 결합함으로써 다음과 같은 장점을 가지고 있습니다.

  1. 단기적 역전에서 높은 수익 기회를 포착합니다.

123 회전 목표는 종종 중요한 가격 변동이 발생하는 과잉 구매 및 과잉 판매 시나리오로 더 큰 수익 목표를 허용합니다.

  1. 2/20 EMA 필터는 거짓 파기 위험을 피합니다.

순수한 역전 전략은 트렌드 시장에 민감합니다. 2/20 EMA 필터는 트렌드에 반대하는 신호를 제거하여 가짜 오트 중에 나쁜 거래를 방지합니다.

  1. 이중 조건은 위험 보상 프로파일을 향상시킵니다.

단일 지표는 종종 잘못된 신호를 생성합니다. 두 개의 상호 보완적인 지표를 결합하면 신뢰성과 위험과 보상 결과를 크게 향상시킵니다.

  1. 명확한 논리는 최적화를 직관적으로 만듭니다.

각 구성 요소의 명확한 기능은 논리를 직관적으로 이해하고 최적화하고 변화하는 시장 환경에 적응하도록합니다.

위험 분석

이점 에도 불구하고, 몇 가지 위험 요소 는 고려 해야 합니다.

  1. 역전도 일어나지 않을 수도 있습니다.

과거 성과는 미래의 결과를 보장하지 않습니다. 실제 반전 반전의 정도는 불확실하며 손실로 이어질 수 있습니다.

  1. 추세는 확장 될 수 있습니다.

2/20 EMA는 강한 트렌딩 시장을 완전히 필터 할 수 없습니다. 단기 수정은 여전히 더 큰 트렌드에 압도 될 수 있습니다.

  1. 매개 변수 최적화는 매우 중요합니다.

성능은 파라미터 설정에 매우 민감하며 광범위한 백테스팅을 통해 안정적으로 최적화되고 변화하는 시장에 맞춰야합니다.

  1. 장기 효능은 확실하지 않습니다.

좋은 단기적 결과는 지속적인 성과를 보장하지 않습니다. 시장은 매우 스토카스틱하고 장기적 결과는 다양한 환경에서 강력한 검증을 필요로합니다.

이러한 위험은 매개 변수 조정, 스톱 손실, 위험 통제 등을 통해 관리 될 수 있습니다. 볼륨, 변동성 지표와 같은 더 많은 조건이 안정성을 향상시킬 수 있습니다. 기계 학습 기술은 동적 최적화를 가능하게 할 수 있습니다.

더 나은 기회

전략을 더 최적화 할 수있는 몇 가지 방법:

  1. 반전 매개 변수를 최적화

더 높은 품질의 신호를 위해 더 안정적이고 두드러진 반전 패턴을 찾기 위해 다른 매개 변수 세트를 테스트하십시오.

  1. 이동 평균 시스템 최적화

다른 MA 매개 변수를 실험하거나 더 정확한 트렌드 평가를 위해 여러 MA 검사를 통합하십시오.

  1. 더 많은 필터를 추가합니다

부피, 변동성 및 다른 필터는 잘못된 신호를 줄이고 안정성을 향상시키기 위해 통합 될 수 있습니다.

  1. 동적 최적화를 구현

큰 역사 데이터 세트에 대한 기계 학습 기술은 역동적이고 강력한 매개 변수 조정을 가능하게 할 수 있습니다.

  1. 스톱 로스 전략

지능적인 스톱 로스 규칙은 최대 마감과 위험 노출을 제어하는 데 도움이 됩니다.

  1. 돈 관리 를 최적화 한다

더 나은 포지션 사이즈와 자본 할당은 전반적인 성과를 향상시킬 수 있습니다.

결론

이중 이동평균 반전은 간단하면서도 실용적인 단기 거래 전략이다. 평균 반전과 트렌드 추종 개념을 결합함으로써 잘못된 브레이크아웃을 피하면서 높은 확률의 가격 반전에서 이익을 얻는 것을 목표로 한다. 명확한 논리는 이해, 최적화 및 적용을 직관적으로 가능하게 한다. 그러나, 어떤 전략도 위험 없는 것이 아니다. 다양한 거래 환경에서 일관된 이익을 추출하기 위해 안정성 및 위험 관리의 지속적인 개선이 필요하다.


/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-25 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 06/08/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


EMA220(Length) =>
    pos = 0.0
    xPrice = close
    xXA = ema(xPrice, Length)
    nHH = max(high, high[1])
    nLL = min(low, low[1])
    nXS = iff((nLL > xXA)or(nHH < xXA), nLL, nHH)
    pos :=  iff(close > xXA and close > nXS , 1,
    	     iff(close < xXA and close < nXS, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & 2/20 Exponential MA", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- 2/20 Exponential MA ----")
LengthMA = input(20, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posEMA220 = EMA220(LengthMA)
pos = iff(posReversal123 == 1 and posEMA220 == 1 , 1,
	   iff(posReversal123 == -1 and posEMA220 == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1 ) 
    strategy.entry("Long", strategy.long)
if (possig == -1 )
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

더 많은