AO 오실레이터를 기반으로 한 EMA 크로스오버 당일 거래 전략


생성 날짜: 2023-12-25 10:53:48 마지막으로 수정됨: 2023-12-25 10:53:48
복사: 3 클릭수: 656
avatar of ChaoZhang ChaoZhang
1
집중하다
1623
수행원

AO 오실레이터를 기반으로 한 EMA 크로스오버 당일 거래 전략

개요

이 전략은 AO의 흔들림 지표와 EMA의 이동 평균의 교차를 이용한 일간 거래의 전략이다. 주요 아이디어는 AO 지표가 0축을 교차하는 동시에 빠른 EMA 라인이 중간 EMA 라인을 통과하여 거래 신호를 생성하는 것이다.

전략 원칙

이 전략은 주로 두 가지의 지표들을 이용해서 진출과 출전을 결정합니다.

  1. AO 쇼크 지표: 이 지표는 5일 고저가 평균과 34일 고저가 평균의 차이로 현재 시장의 흐름을 판단하기 위해 사용된다. AO가 긍정할 때 현재 상승 추세를 나타내고, 부정할 때 현재 하락 추세를 나타낸다.

  2. EMA 이동 평균: 전략에서 3일과 20일 두 개의 EMA를 사용하여 계산합니다. 3일 EMA는 단기 경향을 나타냅니다. 20일 EMA는 중기 경향을 나타냅니다. 단기 EMA는 아래에서 중기 EMA를 돌파 할 때 구매 신호를 생성하고, 위에서 아래로 돌파 할 때 판매 신호를 생성합니다.

이 전략의 입문 조건은, AO 지표가 0축을 가로질렀을 때, 동시에 EMA가 황금 포크 또는 사다리 발생했을 때만 거래 신호를 발생시킨다. 이것은 AO 지표가 흔들렸을 때 잘못된 신호를 발생시키는 것을 피할 수 있다. 그리고 출구 조건은 런던 거래 시간이 끝난 후 전체 평점이다.

우위 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. AO 지표를 사용하여 큰 추세를 정확하게 판단하여 EMA 허위 돌파가 손실을 초래하지 않도록하십시오.
  2. 두 개의 지표가 결합되어 소음을 필터링하여 신호를 더 명확하게 할 수 있습니다.
  3. 주요 거래 시간대에 거래하는 것, 밤새의 위험을 피하는 것;
  4. 전략의 논리는 간단하고 명확하며, 실행을 이해하기 쉽다.
  5. 최적화와 곡선 조정이 필요없고, 매개 변수가 안정적입니다.

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. 1일 거래 손실의 확대 위험. 주요 블랙 스윙 사건이 발생했을 때, 단기간에 손실을 막을 수 없는 것은 큰 손실을 초래할 수 있습니다.
  2. EMA 지수 허위 돌파의 위험. 시장이 흔들리는 단계에서 EMA가 여러 번 교차하여 잘못된 신호가 발생할 수 있습니다.
  3. 매개 변수 고정은 적응성이 부족할 수 있다. 다른 시장 주기에서 매개 변수가 조정될 필요가 있다.

이러한 위험을 회피하기 위해, 우리는 스톱 로드 메커니즘을 설정하거나, 다른 주기에 따라 변수를 조정하여 전략을 더 탄력적으로 만들 수 있습니다.

최적화 방향

이 전략의 주요 최적화 방향은 다음과 같은 변수 조정입니다:

  1. EMA 주기의 조정. 더 짧은 주기의 EMA 조합을 테스트하거나 거래 신호를 구축하기 위해 더 많은 EMA를 추가할 수 있습니다.

  2. AO 매개 변수의 조정. AO 지표에 미치는 영향을 테스트하는 다양한 길고 짧은 주기 매개 변수;

  3. 다른 보조 지표를 추가하십시오. 예를 들어 RSI 보드 지표가 추가되어 과매매의 위험을 피합니다.

  4. 거래시간의 조정. 다른 지역이나 더 긴 거래시간의 효과를 테스트한다.

매개 변수를 조정하고 새로운 지표를 추가하면 전략이 더욱 안정적이고 효율적으로 될 수 있습니다.

요약하다

전체적으로, 이 거래 전략은 트렌드 판단 지표 AO와 단기 중기 EMA 교차를 결합하여 간단하고 실용적인 일일 거래 전략을 구축한다. 전략 신호가 명확하고 실행하기 쉬운 장점이 있다. 그러나 몇 가지 매개 변수가 고정 된 결점도 있다. 지속적인 테스트와 최적화를 통해 이 전략은 더 향상되어 더욱 안정되고 시장의 요구에 적응할 수 있다.

전략 소스 코드
/*backtest
start: 2022-12-18 00:00:00
end: 2023-12-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//@author SoftKill21

strategy(title="MA cross + AO", shorttitle="MA_AO")
ao = sma(hl2,5) - sma(hl2,34)

len = input(3, minval=1, title="Length")
src = input(close, title="Source")
out = ema(src, len)

len1 = input(20, minval=1, title="Length")
src1 = input(close, title="Source")
out1 = sma(src1, len1)

timeinrange(res, sess) => time(res, sess) != 0
londopen = timeinrange(timeframe.period, "0300-1100") 
nyopen = timeinrange(timeframe.period, "0800-1600") 

longC = crossover(out,out1) and ao>0 and londopen
shortC = crossunder(out,out1) and ao<0 and londopen

invert = input(title="Reverse position ?", type=input.bool, defval=false)

if(invert==false)
    strategy.entry("LONG",1,when=longC)
    strategy.entry("SHORT",0,when=shortC)



if(invert==true)
    strategy.entry("short",0,when=longC)
    strategy.entry("long",1,when=shortC)
    
strategy.close_all(when= not (londopen))