지표 모멘텀 시스템 거래 전략을 넘어서


생성 날짜: 2023-11-01 11:19:18 마지막으로 수정됨: 2023-11-01 11:19:18
복사: 0 클릭수: 1014
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

지표 모멘텀 시스템 거래 전략을 넘어서

개요

이 전략은 SMI와 Ergotic Line를 초월하는 지표에 기반하여 트렌드 추적 시스템을 구축하고, 빠른 이동 평균선과 느린 이동 평균선을 결합하여 매매 신호를 형성하며, 자주 거래되는 동적 시스템 전략에 속한다.

전략 원칙

이 전략은 주로 SMI와 Ergotic Line를 초과하여 거래 신호를 구성합니다.

초과 지표 ((SMI) 는 가격의 변화 속도에 따라 계산되며, 두 개의 다른 주기의 지수 이동 평균의 차이를 절대적 차량으로 나누어 계산한다. 계산 공식은 다음과 같다.

SMI = (Fast EMA - Slow EMA) / Abs(Fast EMA - Slow EMA)

그 중, 패스트 EMA는 단기 주기 지수 이동 평균이고, 슬로우 EMA는 긴 주기 지수 이동 평균이다.

가격변동의 속도를 계산하여 SMI는 시장의 경향의 변화를 판단할 수 있다. SMI가 0을 넘으면 시상 신호이며, 반대로 시상 신호이다.

에르고틱 라인 (Ergotic Line) 은 SMI의 지수 이동 평균으로 거래 신호를 생성하는 데 사용할 수 있다. SMI 상에서 에르고틱 라인을 통과할 때 구매 신호로, SMI 아래에서 에르고틱 라인을 통과할 때 판매 신호로 사용한다.

이 전략은 SMI와悟道線의 조합을 통해, 지연 없이 트렌드 추적 시스템을 형성하고, 자주 거래되는 동력 시스템 전략에 속한다.

전략적 이점

  1. 가격 변화의 속도에 따라 추세를 판단하고, 추세 변화에 민감하다.

  2. 카도 선은 SMI 지표의 가짜 신호를 필터링하여 더 신뢰할 수 있는 거래 신호를 형성한다.

  3. 두 개의 궤도 구조로 되어 있고, 거래 신호가 명확하다.

  4. 트레이딩이 빈번해서 트렌드 속의 빠른 가격 변화를 잡을 수 있다.

  5. 그리고, 그 다음에는, 그 다음에는, 그 다음에는, 그 다음에는.

전략적 위험

  1. 동력 시스템으로서, 진동상태에서 많은 손실이 발생할 위험이 있습니다.

  2. 부적절한 이중 궤도 설정으로 인해 신호가 자주 발생하여 과도한 거래가 발생할 수 있습니다.

  3. 짧은 주기 파라미터가 잘못 설정되어서 많은 가짜 신호가 발생할 수 있습니다.

  4. 대도시적 추세를 고려하지 않고 역동적으로 움직일 수도 있다.

  5. 손실을 막는 규칙에 엄격히 따르십시오. 그렇지 않으면 손실이 커질 수 있습니다.

위험 요소를 고려하여 다음과 같은 최적화를 고려할 수 있습니다.

  1. 이중 궤도 매개 변수를 최적화하여 잘못된 신호의 가능성을 줄여줍니다.

  2. 트렌드 필터링과 함께 역동성을 피하는 것

  3. 단독 손실을 통제하기 위해 Stop Loss Strategies에 가입하십시오.

전략 최적화 방향

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

  1. 순식간에 평균선 변수를 최적화하여 최적의 변수 조합을 찾습니다.

  2. 다른 가격 입력을 테스트합니다. 예를 들어, 오프닝 가격, 최고 가격, 최저 가격 등이 있습니다.

  3. 기계 학습 알고리즘을 사용하여 매개 변수를 자동으로 최적화합니다.

  4. 트렌드 지표와 함께 필터링하여 역동적인 거래를 피하십시오.

  5. 단편적 손실을 엄격히 통제하는 손실을 막는 전략을 강화합니다.

  6. 거래량이나 수익률과 같은 요소를 고려하여 과도한 거래를 피하십시오.

  7. 다양한 품종의 적합성을 테스트하고 최적의 품종을 찾습니다.

  8. 다른 지표들과의 조합을 탐구하여 더 나은 거래 시스템을 형성하십시오.

요약하다

이 전략은 지표와 경로선을 초월하여 지연없는 트렌드 추적 시스템을 구축하고, 쌍궤도로 명확한 거래 신호를 형성하며, 빈번한 거래의 동적 전략에 속한다. 우수성은 트렌드 변화가 빠르게 포착되며, 단점은 과도한 거래와 역전 거래가 쉽게 발생한다. 우리는 파라미터 최적화, 상쇄 전략, 트렌드 필터 등의 방법으로 개선할 수 있으며, 이를 더 나은 정량화 거래 시스템으로 만들 수 있다.

전략 소스 코드
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 03/11/2017
// The SMI Ergodic Indicator is the same as the True Strength Index (TSI) developed by 
// William Blau, except the SMI includes a signal line. The SMI uses double moving averages 
// of price minus previous price over 2 time frames. The signal line, which is an EMA of the 
// SMI, is plotted to help trigger trading signals. Adjustable guides are also given to fine 
// tune these signals. The user may change the input (close), method (EMA), period lengths 
// and guide values.
// You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect...
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="SMI Ergodic Oscillator")
fastPeriod = input(4, minval=1)
slowPeriod = input(8, minval=1)
SmthLen = input(3, minval=1)
TopBand = input(0.5, step=0.1)
LowBand = input(-0.5, step=0.1)
reverse = input(false, title="Trade reverse")
// hline(0, color=gray, linestyle=dashed)
// hline(TopBand, color=red, linestyle=line)
// hline(LowBand, color=green, linestyle=line)
xPrice = close
xPrice1 = xPrice - xPrice[1]
xPrice2 = abs(xPrice - xPrice[1])
xSMA_R = ema(ema(xPrice1,fastPeriod),slowPeriod)
xSMA_aR = ema(ema(xPrice2, fastPeriod),slowPeriod)
xSMI = xSMA_R / xSMA_aR
xEMA_SMI = ema(xSMI, SmthLen)
pos = iff(xEMA_SMI < LowBand, -1,
	   iff(xEMA_SMI > TopBand, 1, nz(pos[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)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )  
plot(xSMI, color=green, title="Ergotic SMI")
plot(xEMA_SMI, color=red, title="SigLin")