이중 이동 평균 반전 거래 전략


생성 날짜: 2024-01-15 12:35:29 마지막으로 수정됨: 2024-01-15 12:35:29
복사: 0 클릭수: 547
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

이중 이동 평균 반전 거래 전략

개요

쌍평선 반전 거래 전략은 브린 라인 반전 거래 전략과 쌍 지수 이동 평균 거래 전략을 결합하여 통합 신호 판단의 거래 전략을 설계한다. 그것은 주식, 외환, 암호화폐 등의 시장에서 사용할 수 있다.

전략 원칙

이 전략은 두 부분으로 구성되어 있습니다.

  1. 브린라인 역거래 전략

브린 라인 지표의 두 줄 - %K 라인 및%D 라인을 사용하십시오. 종결 가격이 전날보다 2 일 연속으로 낮아지고%K 라인이 전날보다 2 일 연속으로 높을 때 더 많이하십시오. 종결 가격이 전날보다 2 일 연속으로 높고%K 라인이 전날보다 2 일 연속으로 높고%D 라인이 낮아지면 공백하십시오.

  1. 이중 지수 이동 평균 전략

20일과 20일*2의 이중 지수 이동 평균. 가격이 위에서 아래로 또는 아래에서 이중 지수 이동 평균을 통과 할 때 거래 신호가 발생한다.

통합 신호 판단 규칙: 두 가지 전략의 거래 신호가 일치하면 실제 거래 신호가 생성된다.

우위 분석

이러한 조합 전략의 가장 큰 장점은 신뢰성이 높고, 거짓 신호가 거의 없다는 것이다. 왜냐하면 그것은 두 가지 다른 유형의 전략의 신호를 동시에 촉발시켜서, 단일 전략에서 발생할 수 있는 몇 가지 잘못된 신호를 필터링하기 때문이다.

또한, 반전 전략과 트렌드 전략이 결합되어 있기 때문에, 지표된 증권 가격의 단기 반전과 중기 트렌드를 잡을 수 있다.

위험 분석

이 전략의 주요 위험은, 시장이 장기적으로 흔들림 조정 상태에 있을 때, 두 가지 전략이 일치하는 신호를 생성할 수 없으므로 무효 시장 상태를 초래할 수 있다는 것입니다. 이 경우, 거래자는 명확한 추세가 형성될 때까지 전략을 일시적으로 사용해야합니다.

또한, 이중 지수 이동 평균은 중장선 지표로서, 짧은 선이 급격히 반전할 때에도 실패할 수 있다. 이것은 거래자가 더 많은 지표와 결합하여 대장선 움직임을 판단할 필요가 있다.

최적화 방향

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

  1. 더 많은 매개 변수들을 추가하여, 예를 들어, 스톱포인트, 스톱포인트의 이동 등이 전략에 더 많은 통제력을 부여합니다.

  2. 더 많은 지표를 추가하여 여러 필터링 조건을 형성하고 더 많은 노이즈 거래를 배제합니다. MACD, KD와 같은 다른 지표를 결합하는 것과 같이.

  3. 최적화 지표 변수, 예를 들어, 브린 라인 주기, 이동 평균 주기 등의 변수의 조정, 최적의 변수 조합을 찾습니다.

  4. 이 전략이 서로 다른 품종 (주식, 외환, 암호화폐 등) 에서 어떻게 효과가 있는지 개별적으로 테스트하여 가장 적합한 품종을 선택하십시오.

요약하다

쌍평선 반전 전략은 반전 전략과 트렌드 전략을 조합하여 비교적 신뢰할 수 있는 종합 거래 신호를 형성한다. 이는 증권 가격의 단기 반전과 중기 경향 모두에 관심이 있는 거래자에게 적합하다. 그러나 장기적인 충격적인 상황에서 이 전략은 실패할 수 있다. 최적화 파라미터와 더 많은 지표를 추가함으로써 이 전략의 실용성을 더욱 강화할 수 있다.

전략 소스 코드
/*backtest
start: 2023-01-08 00:00:00
end: 2024-01-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 12/04/2019
// This is combo strategies for get 
// a cumulative signal. Result signal will return 1 if two strategies 
// is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
//
// 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.
//
// Secon 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.
// Please, use it only for learning or paper trading. Do not for real trading.
//
// 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

EMA2_20(MA_Length, MA_xPrice) =>
    xXA = ema(MA_xPrice, MA_Length)
    nHH = max(high, high[1])
    nLL = min(low, low[1])
    nXS = iff((nLL > xXA)or(nHH < xXA), nLL, nHH)
    pos = 0.0
    pos := iff(nXS > close[1] , -1, iff(nXS < close[1] , 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal and 2/20 EMA", shorttitle="Combo Backtest", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
MA_Length = input(20, minval=1)
reverse = input(false, title="Trade reverse")
MA_xPrice = close
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posEMA2_20 = EMA2_20(MA_Length, MA_xPrice)
pos = iff(posReversal123 == 1 and posEMA2_20 == 1 , 1,
	   iff(posReversal123 == -1 and posEMA2_20 == -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 ? red: possig == 1 ? green : blue )