본문 바로가기
AyoProject/Ayotera-Trade

[AT] 18. MACD 지표에 대한 구현 및 매매시점 예측 (2)

by 청양호박이 2020. 11. 12.

이번에는 지난시간에 구현한 MACD에 대한 기본지표들이 정확하게 도출되었는지 확인해 보겠습니다. 이를 위해서는 증권사에서 제공하는 HTS (Home Trading System)를 통해서 가능하게 되는데 하나하나 따라가면서 확인해 보도록 하겠습니다.

 

  • MACD에 대한 정의 및 구현
  • 구현된 결과에 대한 정합성 확인
  • MACD를 활용한 매매기법 확인 및 적용
  • 매매기법 별 시뮬레이션 및 실험실
  • 향상된 이동평균산정 법칙 적용 및 실험실

 

정합성 확인을 위해서는 확실한 곳에서 제공하는 데이터를 받아서 비교 및 대조를 하는것이 바람직합니다. 각 증권사가 제공하는 HTS를 통해서는 종목에 대한 일별 주가(시초가, 저가, 고가, 종가), 거래량, 기술적지표 등을 다운해서 볼 수가 있습니다.

 

그럼 기술적 지표를 다운받아 보도록 하겠습니다.

 

 

1. HTS를 통한 데이터 다운로드


현재 진행되는 모든 데이터는 키움증권의 OpenAPI를 통해서 받기 때문에, 키움증권의 HTS를 통해서 진행해 보겠습니다. 우선 영웅문을 실행합니다!!! 그럼 아래와 같이 수많은 창이 뜨면서 무언가를 할 수 있게 되는데요...

목적에 맞는 적합한 메뉴를 일단 검색해 보겠습니다. 우선 아래 그림과 같이 데이터K라고 써있는 메뉴 밑에 돋보기 모양의 아이콘이 있습니다. 그것을 누르게 되면 [화면검색] 이라는 창이 뜨고, 하단에 차트라는 메뉴트리를 선택해 줍니다.

차트를 선택하면 아래 많은 메뉴가 나타나는데.. 그중에 화면번호 0600의 [키움종합차트]를 선택합니다. 그렇게 되면 오른쪽에 해당 창이 새로 뜨게 됩니다. 이 창에는 5일 이동평균선부터 120일 이동평균선을 보여주는 차트가 있고, 하단에는 거래량을 나타내는 차트가 있습니다.

우리는 MACD에 대한 정합성을 판단할 것이기 때문에, 12일 이동평균선과 26일 이동평균선이 보일 수 있도록 세팅을 바꿔줘야 합니다. 바꾸는 방법은 어렵지 않습니다.

[종가 단순] 이라고 써있는 부분을 더블클릭하면 아래와 같이 [지표 설정]이라는 창이 뜨게 되는데... 아래와 같이 기간에 12와 26을 추가해 주면 됩니다.

확인을 누르게 되면... 

이와 같이 정상적으로 적용이 됨을 확인할 수 있습니다.

 

그럼 이제는, MACD 지표를 추가해 보도록 하겠습니다. 위의 그림에서 [기술적지표]라는 메뉴가 보이고 그 하단에는

[추세지표]라는 메뉴가 있습니다. 그것을 선택해 보겠습니다.

위의 그림처럼, MACD가 있습니다. 아무고민 없이 그냥 클릭해주면 됩니다. 그럼 아래와 같이 MACD Oscilator라고 적힌 지표가 추가되게 됩니다. 이제 모든 준비가 되었습니다. 

다음단계는... 아래와 같이 이동평균선을 보여주는 지표화면에서 마우스 오른쪽을 누르고... 텍스트창(T)이라고 써있는 메뉴를 선택해줍니다.

그렇게 되면... 아래와 같이 엑셀비슷한 화면으로 온갖 수치가 기재되어 있고 많은 필드중에 12, 26, MACD, 시그널 필드가 있음을 확인할 수 있습니다. 

이제 마지막으로 [데이터를 엑셀로 저장] 버튼을 누르면 모든 단계가 마무리되고 파일이 로컬에 저장되게 됩니다.

이렇게 엑셀로 잘 다운이 되었습니다.

 

 

2. 백테스팅 (Back Testing)


백테스팅이라함은 과거의 축적된 데이터를 가지고 자신이 만든 전략을 적용해서 어느정도 수익을 낼 수 있는지 확인하는 절차를 말합니다. 이 단계에서는 솔직히 백테스팅이라고는 할 수 없지만... 도출해낸 MACD 등 기본 지표가 정상적으로 나왔는지 확인을 해보는 것을 정의하도록 하겠습니다.

 

이를 위해서는 위에서 HTS를 통해서 다운받은 데이타표를 사용하도록 하겠습니다.

 

대략 영업일 기준으로 10일간 데이터를 가지고 확인해 보겠습니다.

 

(1) 20201111 데이터 비교

    - MA12 (일치) MA26(일치) MACD(불일치) MACD Signal(불일치)

(2) 20201110 데이터 비교

    - MA12 (일치) MA26(일치) MACD(불일치) MACD Signal(불일치)

(3) 20201109 데이터 비교

    - MA12 (일치) MA26(일치) MACD(불일치) MACD Signal(불일치)

(4) 20201106 데이터 비교

    - MA12 (일치) MA26(일치) MACD(불일치) MACD Signal(불일치)

(5) 20201105 데이터 비교

    - MA12 (일치) MA26(일치) MACD(불일치) MACD Signal(불일치)

 

어라... MACD를 구하기 위한 이동평균값은 동일한데... 단순히 빼기를 하는 값이 어떻게 다를 수가 있을까요?? 마음이 아프지만 이 부분은 추후에 별도로 다루도록 하겠습니다. 여러가지 시뮬레이션을 해보는 것이 좋기 때문에 우선을 해당 수치를 사용해 보겠습니다.

 

 

0. 향후 고려사항


백테스팅 결과, 우리는 한가지 큰 차이점을 발견할 수 있습니다. 12일 이동평균선과 26일 이동평균선은 일치하는데... 계산식을 통해서 정확히 계산한 MACD와 HTS에서 제공하는 MACD는 그 차이가 있다는 것 입니다. 이유는 간단하고도 복잡한데... 

 

간단하게는 HTS에 제공하는 MACD는 이동평균값을 구하는 방식이 다르기 때문입니다. 우리가 지금까지 구한 이동평균값을 구하는 방식은 SMA(Simple Moving Average)로 단순이동평균 이라고 합니다. 이는 구하려는 직전 값들을 모두 더하고 단순히 그 갯수로 나누는 방식입니다. 

 

하지만, HTS에서 제공하는 방식은 EMA(Exponential Moving Average)로 지수이동평균을 사용하는 방식입니다. 이 방식에 대한 적용은 가장 마지막에 다뤄 보도록 하겠습니다. 

 

그럼 오늘은 여기까지 진행해 보도록 하겠습니다.

 

- Ayotera Lab -

댓글