2012년 8월 31일 금요일

Elliott Pattern Helper 1.0 안내


  안녕하세요?

  정말 오랜만에 글을 올리게 되는군요. Elliott Pattern Helper의 활용도를 높이기 위해 몇몇 기능을 추가하고, 유지관리의 유연성을 위해 소스 구조를 대폭 수정했습니다. 모듈 통합 테스트를 진행하고 있구요, 버그 수정과 안정화 후 조만간 릴리즈 하겠습니다.

  그 전에, 간단히 개선된 기능을 소개하고자 합니다. 개선된 주요 기능은 다음과 같습니다.
  1. HTS DDE 연동 (키움증권 영웅문 DDE를 기준으로 했습니다.)
  2. DDE 연동 Chart - Fractal Count, Wave Structure
  3. Chart with Scroll Bar
  4. 다양한 Time Frame 분석

  위에 열거된 기능들을 중심으로 Elliott Pattern Helper(이하 EPH)의 사용 시나리오를 정리하면 대략 다음과 같습니다.

  • 주식 종목코드(Stock Code) 적재
  증권사 HTS의 DDE 기능을 사용하여 종목이나 지수의 실시간 체결정보(체결량, 체결시간)를 엑셀로 축적하기 위해 종목코드를 EPH에 저장합니다.

그림 1. 종목코드 적재-1

  위 그림과 같이 HTS를 통해 종목코드 목록을 엑셀 시트로 복사한 후, EPH의 'Save Stock Codes' 메뉴를 실행합니다.

그림 2. 종목코드 적재-2

  위 화면과 같이 'Loading Stock Codes' form에 종목코드 열과 종목명 열을 각각 지정하여 'Save' 버튼을 클릭하면 종목코드 목록이 EPH에 저장됩니다.

  • 분석 대상 데이터 적재
  분석하고자 하는 종목의 분봉 데이터를 HTS를 사용하여 엑셀로 적재합니다. 아래와 같이 LG 15분봉 데이터를 대상으로 작업을 진행해 보겠습니다. 

그림 3. 분석 대상 데이터 적재-1

  EPH를 제대로 사용하기 위해서는 일자(또는 시간)와 고가 및 저가를 반드시 포함하여 적재해야 하며, Fractal counting을 사용하려면 종가와 거래량 또한 포함해야 합니다. ※ 주의: 파일명을 반드시 종목명과 동일하게 저장해야 합니다. 그렇지 않을 경우 EPH가 종목코드 검색을 못하여 HTS와 DDE 연결이 되지 않습니다.

  EPH의 'Load Stock Data' 메뉴를 실행하고, 주 데이터로 사용할 엑셀 시트의 이름을 지정합니다. (하나의 엑셀 파일에 분봉 또는 일봉 등 다양한 시트가 존재하더라도, DDE 연결은 이 과정을 통해 지정된 하나의 시트에 대해서만 수행됩니다.)

그림 4. 분석 대상 데이터 적재-2

그림 5. 분석 대상 데이터 적재-3

  • HTS DDE 연결
  아래와 같이 EPH의 'Link HTS DDE' 메뉴를 클릭하면 DDE 실행파일 이름과 DDE Topic 및 Item을 설정하는 'HTS DDE Link Settings' form이 출력됩니다. (증권사 HTS의 DDE가 실행되고 있어야 합니다.)

그림 6. Link HTS DDE-1

그림 7. Link HTS DDE-2

  Form에 입력하는 항목은 각각 다음과 같습니다.
  - DDE Name: 증권사 HTS에서 제공하는 DDE 실행파일의 확장자를 제외한 파일명
  - DDE Topic: 각각의 종목에 대한 DDE 연결자로서 종목코드(Stock Code)나 종목명(Stock Name)을 선택
  - DDE Items: 종가, 거래량, 체결량, 체결시간에 대한 DDE Item 식별자
  - Schedule: DDE 연결 시작 및 종료 시간 (사용자 임의 지정)

  위 항목들을 지정한 후 'Save' 버튼을 클릭하면 아래와 같이 'Quote' 시트가 생성됩니다.

그림 8. Link HTS DDE-3

  'Quote' 시트는 '분석 대상 데이터 적재' 과정에서 지정한 시트의 이름에 '_Quote'를 더한 이름으로 생성되며, 위 그림과 같이 네 개의 DDE item(종가, 거래량, 체결량, 체결시간)이 각각 A3에서 D3 열까지 연결됩니다.

  'Quote' 시트는 캔들 차트를 기본으로 Fractal과 오실레이터를 출력하는 Fractal Counting 차트를 포함하도록 하였습니다.

  • 파동 구조 분석
  아래 그림과 같이 분석 대상 데이터 시트에서 EPH의 'Analysis Batch' 메뉴를 실행합니다.

그림 9. 파동 구조 분석-1

  분석 대상 시트 이름에 '_EPH'를 더한 이름으로 시트가 생성되는데, 아래와 같이 각각의 모노파동에 대한 Rule, Condition, Structure 및 Progress 기호와 그에 대한 설명을 포함합니다.

그림 10. 파동 구조 분석-2

  모노파동의 Rule, Condition, Structure, Progress 기호에 관한 내용은 Glenn Neely의 저서 'Mastering Elliott Wave'(엘리어트 파동이론 마스터하기)를 참조하시기 바랍니다.

  • Structure Chart 출력
  모노파동들의 구조를 보여주는 차트를 출력하기 위해 아래와 같이 EPH의 'Draw Chart' 메뉴를 실행합니다.

그림 11. Structure Chart 출력-1

  'EPH_Charts'라는 이름으로 시트가 생성되며, 'Quote' 시트에 포함된 차트를 제외하고, EPH를 통해 생성되는 모든 차트들은 이 시트에 출력됩니다.

그림 12. Structure Chart 출력-2

  EPH beta 버전은 전체 기간에 대한 차트를 출력하거나 사용자가 범위를 지정해야만 차트를 출력할 수 있었지만, 이번 버전에서는 스크롤이 가능한 차트를 생성하도록 했습니다.

그림 13. Structure Chart 출력-3

  • Upper time frame 분석
  'Upper time frame'이란 5분봉에 대해서는 15분봉, 15분봉에 대해서는 60분봉, 60분봉에 대해서는 일봉, 일봉에 대해서는 주봉, 주봉에 대해서는 월봉을 말합니다. 주어진 기간의 데이터에 대해 상위 기간의 데이터를 자동으로 생성할 수 있게 함으로써 편이성을 제고하고자 했습니다.

  아래와 같이 EPH의 'Time Frame Up' 메뉴를 실행합니다.

그림 14. Upper time frame 분석-1

  상위 기간의 데이터를 포함하는 시트가 생성되며, 이 시트 위에서 'Analysis Batch'나 'Draw Chart' 메뉴를 실행하여 상위 기간 데이터에 대한 분석을 할 수 있습니다. 아래 그림은 60분봉 데이터가 생성된 화면입니다.

그림 15. Upper time frame 분석-2

  이 시트 위에서, 'Draw Chart' 메뉴를 실행하면 해당 기간에 대한 Fractal Counting 차트가 'EPH_Charts' 시트에 출력되며, 'Analysis Batch' 메뉴를 실행하면 해당 기간에 대한 파동 구조 분석 시트('***_EPH')가 생성됩니다.

  마찬가지로 이렇게 생성된 '***_EPH' 시트 위에서 'Draw Chart' 메뉴를 실행하여 Structure chart를 출력할 수 있습니다.

  EPH를 통해 차트가 생성될 때마다 'EPH_Charts' 시트의 B2 셀 Drop-box에 목록으로 추가되며, 이 Drop-box를 통해 기존에 생성된 차트들을 언제든지 다시 출력하여 조회할 수 있습니다.

그림 16. 차트 조회-1

그림 17. 차트 조회-2

  • DDE 연결의 활용
  EPH는 DDE 연결을 통해 HTS가 제공하는 체결 데이터를 축적하고,  이를 실시간으로 분석한 후, 분석 결과로서 fractal counting과 파동의 구조 정보를 차트에 출력합니다.

그림 18. DDE 연결의 활용-1


그림 19. DDE 연결의 활용-2

그림 20. DDE 연결의 활용-3


  위에 기술한 주요 기능개선 사항 이외에도 기존 버그 수정이나 분석시간 단축 등 여러가지 개선점이 추가되었습니다.

  향후에는 파동분석이나 기타 기술적분석 방법 중에서 EPH의 활용성을 높일 수 있을만한 것들을 연구한 후 구현할 계획입니다. 참고로 다음 목표는 Fuzzy Time Series 분석임을 말씀드립니다.