2011년 7월 28일 목요일

Elliott Pattern Helper (EPH) QuickStart

1. Download EPH Excel Add In

2. Move downloaded Add In file to your Excel AddIns directory
  • For example, if you use Excel 2007 (or later) on Windows 7, the directory may be 'C:\Users\XXXX\AppData\Roaming\Microsoft\AddIns' where 'XXXX' is your Windows 7 login name.

3. Open Excel and install Elliott Pattern Helper Add In
  • For Excel Add In installations, follow Excel's Help.
  • After installing EPH, check whether EPH context menus are created properly.


4. Load data
  • Using your home trading system software, feed stock price or index data to your Excel sheet.

5. If needed, change high, low and date labels appropriately.
  • (Context Menu) → 'Data Helper' → 'Label Setting'



6. Execute Batch
  • (Context Menu) → 'Helper Batch' → 'Batch with S' or 'Batch with B'

  • Sheet with name 'EPH' will be created as shown below.

 ※ Cells in column B contain average values of highs and lows
  1. Identified monowaves, whose start and end points are colored cells.
  2. Neely's rule and condition of monowaves
  3. Structure and progress labels of monowaves, which are possible candidates
  4. Proposed descriptions of labels
  5. Chart with candidate labels

  • (Context Menu) → 'Helper Batch' → 'Batch for weekly'
  • Sheet with name 'EPH_w' will be created as shown below, which contains weekly data and chart generated automatically from daily data.



  • Sheet 'EPH' can be generated step-by-step using menus other than ones in 'Helper Batch'. 
  • First execute (Context Menu) → 'Data Helper' → 'Prepare Data', second  (Context Menu) → 'Data Helper' → 'Make monowaves', third (Context Menu) → 'Pattern Helper' → 'Find Labels', and (Context Menu) → 'Pattern Helper' → 'Elliott Chart', then you will have the same 'EPH' sheet as the one shown above.

7. Analyze structure and progress labels of a monowave
  • On a cell containing 'Rule and Condition' data, i.e., column E, execute (Context Menu) → 'Pattern Helper' → 'Wave Structure'.

  • Small chart with structure and progress labels of the selected monowave will be created as shown below.


8. Check smaller portion of whole chart
  • Make a selection on column C and execute (Context Menu) → 'Pattern Helper' → 'Elliott Chart', then smaller chart containing selected waves will be created.



2011년 7월 25일 월요일

Elliott Pattern Helper Add In 설치

Elliott Pattern Helper Add In Download
  • Terms of use: Authored by KyungSeog Kim, Copyrightⓒ 2011, all rights reserved. May be redistributed for free, but may not be sold without the author's explicit permission.


※ VBA source는 password-protected 상태이며, 공개 여부는 고민 중입니다.
※ 매뉴얼은 천천히 올리겠습니다. 문의 사항이 있으시면 댓글 남겨주십시요.
※ Windows 7, Excel 2007 버전에서만 테스트된 상태입니다.
    (Windows 7, Excel 2007에서 Excel 2003 Add In으로 저장한 파일: )


1. Elliott Pattern Helper Add In 파일(ElliottPatternHelper.xlam)을 아래 (그림 1)과 같이 저장합니다. (저장 위치: C:\Users\XXXX\AppData\Roaming\Microsoft\AddIns, XXXX는 사용자의 윈도우 계정)

(그림 1) ELP Add In 저장

2. Excel을 실행시킨 후 Excel 옵션창을 띠웁니다.

(그림 2) Add In 설치 1

3. '추가 기능'을 클릭합니다.

(그림 3) Add In 설치 2

4. 아래 그림과 같이 '이동' 버튼을 클릭합니다.

(그림 4) Add In 설치 3

5. 'Elliott Pattern Helper' 체크박스를 설정한 후 '확인' 버튼을 클릭합니다.

(그림 5) Add In 설치 4

6. 엑셀 시트 위에서 마우스 오른쪽 버튼을 클릭하여 컨텍스트 메뉴를 띄우면 추가된 Elliott Pattern Helper의 메뉴들이 생성된 것을 확인할 수 있습니다.

(그림 6) Add In 설치 완료

7. HTS에서 복사 또는 불러온 데이터의 고가, 저가, 날짜 label을 설정합니다. (국내 대부분의 HTS는   아마도 '고가', '저가', '일자'를 사용할 것으므로 따로 설정할 필요가 없을 듯합니다.)

(그림 7) 고가, 저가 label 설정 1

(그림 8) 고가, 저가 label 설정 2

8. 위 (그림 8)과 같이 고가, 저가, 날짜 label을 지정하여 저장한 후 바로 Elliott Pattern Helper를 사용할 수 있습니다.

9. HTS에서 지수나 종목의 가격 데이터를 엑셀 시트로 복사 또는 저장한 후 테스트 해 보시면 됩니다.





2011년 7월 23일 토요일

Elliott Pattern Helper

※ Excel Macro를 재조합하여 Excel Add In 프로그램으로 수정했습니다.

Elliott Pattern Helper는 Excel Add In 프로그램으로서, 주가 데이터의 파동 분석을 도와줍니다.

  • Excel Add In - 몇 번의 마우스 클릭으로 모든 작업을 수행합니다.
  • Automation - 모노파동(monowave)에 대한 분석을 자동화하여 전체적인 파동분석을 도와줍니다.

(그림 1) Add In 프로그램의 컨텍스트 매뉴


(그림 2) HTS에서 복사 또는 저장한 데이터에 대해 분석 실행


(그림 3) 실행 결과



Elliott Pattern Helper에 의해 생성되는 결과는 다음과 같습니다.
  1. 모노파동들(monowaves)
  2. 모노파동의 가능한 구조 목록 - structure label과 progress label (possible candidates)
  3. 평균가 차트 - HTS에서 저장한 데이터에 대한 차트 생성
  4. 자동화된 주간 단위 차트 - 일 단위 데이터에서 자동화된 차트 생성

한계는...

  • 파동 분석을 도와주는 Helper이며, 실제 분석은 분석하는 사람의 몫입니다.


2011년 7월 18일 월요일

닐리 따라하기 - 8. 폴리, 멀티, 매크로 파동 II

닐리 따라하기 종결 ▷

  • 엘리어트 파동이론이나, 파동 분석의 의미 및 효용성에 관해 언급하는 것은 참 부담스럽습니다.
  • 하지만 '아는 것이 힘'이요, '뿌린 만큼 거둘 것'입니다.

  • 마지막으로 차트를 하나 볼까요?
  • 아래 그림은 녹십자의 주간 단위 차트입니다.

그림 1

  • 가파른 상승 후 a-b-c 조정을 끝내고 다시 상승하는 것일까요?
  • 만약 그렇게 판단했다면 어떻게든 매입을 하고 전 고점 돌파를 기다리고 있을 것입니다.

  • 다음 그림은 월간 단위 차트입니다.
그림 2

  • 일반적인 조정 파동의 a-b 파동 간의 alternation을 생각한다면 위 (그림 2)의 해석이 더 타당해 보일 수 있으며, 그렇다면 파동 c를 대비해야 하겠군요.
  • 그렇게 판단한다면 전 고점 근처에서 일단 차익실현을 하고 기다리는 것이 더 현명할지도 모르겠습니다.


  • 지금까지 글렌 닐리의 저서 'Mastering Elliott Wave'에 기술된 파동 분석 방법론에 대해 개괄적으로 소개했습니다.
  • 아직도 부족한 것이 많고, 그래서 또 다시 도전해야 합니다.
  • 또 뵙죠.


닐리 따라하기 - 8. 폴리, 멀티, 매크로 파동 I

1. 파동의 등급

  • 여러 개의 엘리어트 패턴들을 조합하여 더 큰 파동을 만들 때 각각의 패턴들의 파동 등급이 중요한 역할을 한다고 합니다.
  • 두 개의 패턴을 하나로 묶을 때, 파동 등급이 차이가 날 경우 바로 연결하지 말고 각 패턴의 앞 또는 이후 파동들을 더 연결하여 두 패턴을 비슷한 등급으로 만든 이후 연결해야 합니다.

2. 폴리, 멀티, 매크로 파동
  • 폴리 파동은 엘리어트 패턴을 구성하는 모노 파동의 조합입니다.
  • 모노 파동들로 구성된 :5-:3-:5-:3-:5(충격 패턴), :3-:3-:5(플랫 패턴), :5-:3-:5(지그재그 패턴), :3-:3-:3-:3-:3(터미널 또는 삼각형 패턴) 등이 폴리 파동의 예입니다.

  • 하나의 엘리어트 패턴이 멀티 파동이 되기 위해서는 적어도 하나의 충격파가 충격 패턴의 폴리 파동이어야 합니다.
  • 즉, 멀티 파동은 적어도 하나의 1-2-3-4-5 충격 패턴을 포함해야하며, 그 패턴 중 적어도 하나의 충격파(1, 3 또는 5 중의 하나)는 폴리 파동으로 구성되어야 합니다.

  • 매크로 파동은 적어도 하나의 폴리 파동과 적어도 하나의 매크로 파동으로 구성됩니다.
그림 1

  • 위 (그림 1)의 파동은 충격파인 1번 파동이 더 작은 충격 패턴으로 구성되어 있으므로 멀티 파동으로 볼 수 있습니다. 또 조정 파동인 2번과 4번 파동이 지그재그를 포함하는 복합 조정으로 볼 수 있으며, 따라서 전체 파동을 매크로 파동으로 봐도 별 문제가 없을 것입니다.




2011년 7월 16일 토요일

닐리 따라하기 - 쉬어가기15

운수장비 2011-07-15



  • 파동 c가 삼각형인 a-b-c 조정을 마치고 다시 상승하려는 움직임을 보이던 중에 추세선에 근접한 조정이 다시 생기는 형태입니다.
  • 지그재그 조정으로 발전한다면 추세선을 하향 이탈할 수도 있을텐데요, 어떻게 전개가 될지 주의깊게 관찰해야 하겠네요.


  • 참고로 주간 단위 차트를 볼까요?

  • 제한삼각형처럼 보이는 파동이 중간에 있는데, 어떻게 해석을 해야 할까요...


2011년 7월 15일 금요일

닐리 따라하기 - 쉬어가기14

녹십자 2011-07-15




  • 단순 지그재그로 조정을 마치고 다시 상승하면서 전고점을 돌파했습니다.
  • 어느 선까지 상승할 수 있을지 지켜봐야 겠습니다.



2011년 7월 13일 수요일

닐리 따라하기 - 7. 패턴 분리

1. 엘리어트 패턴 분리(Isolation) 과정
  • 지금까지 각각의 모노파동들에 대해 '닐리 사전' 검색을 통해 가능한 구조기호와 진행기호를 추출했고, 거기에 포지션 지표를 적용하여 적절한 기호들만으로 차트를 구성했습니다.

  • 다음 과정은 엘리어트 패턴을 분리해 내는 것으로서 L5 또는 L3를 유일한 기호로 갖는 파동을 찾는 것으로부터 시작합니다.
그림 1


  • 찾은 후에는 위 (그림 1)과 같이 이전 파동들을 거슬러 올라가면서 F3, x:c3, L3, s5 또는 L5를 유일한 기호로 갖는 파동을 검색합니다. 물론 모든 엘리어트 패턴은 최소 3개의 파동으로 구성되므로 세 번째 이전 파동부터 찾아가야 합니다.
  • F3가 검색되었을 경우, 해당 파동의 시작점을 패턴의 시작점으로 검토합니다. 나머지 x:c3, L3, s5 및 L5는 해당 파동의 종점을 패턴의 시작점으로 검토합니다.
  • 검색된 시작점으로부터 처음에 찾은 L3 또는 L5까지 파동의 수가 짝수개이면 이전 파동을 더 검색해 나가야 합니다.

  • 다음 단계는 처음에 찾은 L3 또는 L5 이후의 파동들에 대해 다음의 (그림 2)와 같이 L5 또는 L3를 유일한 기호로 갖는 파동들을 찾아 나갑니다.

그림 2


2. 패턴 분리

  • 결과적으로 다음의 (그림 3)과 같이 L3나 L5로 끝나는 엘리어트 패턴들이 분리됩니다.

그림 3

  • 첫 번째 패턴은 :3-:3-:L5, 즉 플랫 패턴인데 a파동이 연장된 플랫입니다.
  • 두 번째 패턴은 (:5-:3-:5)++x:c3++(:5-:3-L5), 즉 이중 지그재그 패턴입니다.
  • 세 번째 패턴은 :3-:3-:L5의 플랫 패턴인데 b파동이 지그재그입니다.


2011년 7월 12일 화요일

닐리 따라하기 - 6. 포지션 지표의 구성 III

1. 현재까지의 상황

  • 지금까지 각각의 모노파동(m1)들에 대해 전·후 파동(m0, m2, ...)들과의 관계를 고려하여 가능한 구조기호와 진행기호를 도출했습니다.
  • 아래 (그림 1)은 '닐리 사전' 검색 결과입니다. (KOSPI 2011-07-12)


그림 1

  • 위 그림의 적색 동그라미 속의 파동들을 어떻게 해석해야 할까요?

2. 기호(Structure and Progress Labels)의 압축
  • 실제 파동의 움직임을 가장 잘 설명하는 구조기호와 진행기호를 선택합니다. (물론, 이 과정은 '주관'이 개입할 여지가 많습니다.)
그림 2

  • 위 그림은 (그림 1)의 적색 동그라미 속에 있는 첫 번째 파동의 '닐리 사전' 검색 결과입니다. 연장된 플랫의 wave-a일 가능성이 있습니다. 그렇다면 :F3는 적합한 선택일 것입니다.
그림 3

  • :L5로 플랫이나 지그재그가 완성되었을 수 있다고 하니, 파동의 모양으로 보았을 때 결국 (:F3-:c3-:L5), 즉 플랫으로 보는 것이 자연스럽겠네요.
그림 4

  • 위 (그림 4)의 분석 대상 모노파동의 '닐리 사전' 검색 결과를 보니 가장 적합한 설명이 불규칙 미달형 플랫인 것 같습니다.
  • 결과적으로, 아래 (그림 5)와 같이 충격패턴 속의 강세조정으로 결론 내는 것이 적합하겠군요.
그림 5

  • 그렇다면, (그림 1)의 적색 동그라미 속 파동들에 대한 분석은...?
그림 6

  • 1번 파동이 연장된 충격패턴의 2, 3, 4, 5 파동인가요?



2011년 7월 11일 월요일

닐리 따라하기 - 쉬어가기13

※ '닐리 사전' 구현 함수들을 한글 번역본이 아닌 영문 원서를 바탕으로 수정했습니다.
※ '닐리(Neely) 사전'이라고 제가 명명한 '사전'과 닐리의 사전구성법칙의 '사전'과는 의미가 다름을 밝힙니다.


녹십자 2011-07-11



  • 지그재그 조정이 일단은 완성된 것 같습니다. 물론 더 지켜봐야 하겠지요.
  • 상승 추세의 충격패턴이 진행 중이라고 가정한다면, 그래서 2파동과 4파동 사이의 alternation을 고려하면 어떻게 될까요? 조정이 더 깊어질 수도 있을텐데요.


2011년 7월 7일 목요일

닐리 따라하기 - 쉬어가기12

아이리버 2011-07-07



  • 1년 넘게 지속된 하락추세 속에 조정이 나오고 있습니다.
  • 파동 b를 삼각형으로 보는 것은 좀 어려울 것 같고, 미달형 터미널 충격패턴으로 봐야할 듯 합니다. 
  • 터미널 충격패턴의 2-4 추세선을 돌파되면서 흐름의 변화가 나오는 것인가요?


닐리 따라하기 - 쉬어가기11

녹십자 2011-07-07



  • 상승 추세 중 지그재그 조정이 진행되고 있습니다. 조정의 폭이 어느정도 될까요?
  • 조정의 폭에 따라서 추세선과 채널이 달라질 텐데요.
  • 이전의 조정이 좀 길어 보이니 이번 조정은 짧게 끝날 수 있을까요?
  • 아니면 지그재그의 파동 c가 더 길어지거나 복합조정으로 들어가 조정의 목표치를 약 60% 정도로 잡아야 할 가능성도 봐야겠지요.


주가 등락과 수급 주체 매수/매도 간의 상관관계?

1. 발상

  • 개인투자자들이 흔히 하는 말이 있습니다. '왜 내가 사면 떨어지고 팔고나면 오를까?'
  • 그럴 수밖에 없는 것일까요?
  • 어떤 사람들이 그럽니다. '외인이나 기관이 관심을 갖는 종목을 사라.'
  • 그렇게 하기만 하면 되는 것일까요? 확인해 보고 싶은데, 방법은 없을까요?

2. 혹시...
  • 주가의 등락과 개인, 외인, 기관(증권, 보험, 투신, 종금, 은행, 기금) 등 수급 주체의 순매수량 사이의 상관관계가 없을까요?
  • 물론 정확하게 일치하는 세력이 존재한다면 얼마나 쉽겠습니까? 그럴 수는 없겠지요.
  • 다음 그림은 모 증권사 HTS에서 '엑셀로 보내기'를 통해 하이닉스의 일별 종목별투자자 데이터를 뽑은 것입니다.

그림 1

  • 위 엑셀 시트에서 D열(주가 등락폭)과 G~P열(주체별 순매수량) 사이의 Correlation을 계산하면 어떤 수치가 나올까요?

    그림 2

    • 노란색 바탕의 셀이 최근 33일 동안의 각 세력의 순매수량과 주가 등락 사이의 상관계수를 포함하고 있습니다. (J열은 외인과 기관의 합으로 채운 것입니다.)
    • 개인은 -76.3%이고 투신은 70% 정도 되는군요. 이 수치가 갖는 의미가 있기는 있는 것일까요?
    • '왜 내가 사면 떨어지고 팔고나면 오를까?' 혹시...?

    3. 심심풀이
    • 엑셀에서 기본으로 제공하는 함수가 아마도 Pearson's correlation인 것 같습니다.
    • 두 주식의 주가 간 correlation은 Spearman's s-rho가 더 적합하다는 사람들도 있더군요. (물론 위에서는 주가의 등락과 수급주체의 순매수량과의 상관관계를 계산한 것입니다.)
    • Pearson's correlation과 Spearman's s-rho http://en.wikipedia.org/wiki/Spearman%27s_rho

    • 위 엑셀 시트에서 사용한 s-rho 함수 입니다.
    그림 3


    2011년 7월 6일 수요일

    닐리 따라하기 - 쉬어가기10

    대원강업 2011-07-06



    • 삼각형을 돌파한 후 아주 짧게 조정을 주고 바로 상승하는 모양입니다. (삼각형을 이용한 해석이 옳바른 것인지는 이견이 있을 수 있겠지요.)
    • 상승의 목표치를 어디로 봐야 할까요? 실제 어디까지 상승할지 궁금해집니다.

    ※ 예정된 다음 블로그 작업은 잠시 보류하고 Helper 모듈 개선 중에 있습니다.

    닐리 따라하기 - 쉬어가기9

    대덕전자 2011-07-05

    그림 1

    • 위 차트의 해석은 뭔가 잘못된 듯 합니다.
    • 1, 3, 5번 파동 사이의 길이가 충격패턴의 요건을 만족시키지 못하는 것 같죠?
    • 그렇다면 다음과 같은 해석은 어떨까요?

    그림 2

    • 미달형 충격패턴은 패턴 전체가 되돌려진다는 사실을 감안하면 (그림 2)의 해석이 더 타당해 보입니다.

    2011년 7월 5일 화요일

    닐리 따라하기 - 쉬어가기8

    코아크로스 2011-07-05



    • 상승 추세의 첫 번째 충격패턴(1-2-3-4-5)이 끝나고 가격조정과 시간조정을 거친 후 다시 상승하는 모양입니다.
    • 첫 번째 충격패턴의 2-4 추세선을 녹색선으로 보고, 노란색 추세선을 첫 번째 충격패턴을 포함하는 더 큰 충격패턴(I-II-III-IV-V)의 I-II 추세선으로 봐도 될까요?

    2011년 7월 3일 일요일

    닐리 따라하기 - 쉬어가기7

    대원강업 2011-07-01



    • 위 그림의 수렴형 삼각형 해석이 옳다면, 향후 진행은 어떻게 될까요?
    • 며칠 흐름을 지켜보는 것이 아주 흥미로울 것 같습니다.


    닐리 따라하기 - 6. 포지션 지표의 구성 II

    KOSPI 2011-07-01



    • 방향성 움직임을 고려한 차트에 포지션 지표의 구성을 적용한 결과입니다.
    • 추세선을 그려보니 뭔가 느껴지지 않으신가요? 이 차트는 닐리가 얘기하는 '멀티파동' 정도의 차트로 봐야할 것입니다. 그보다 더 큰 매크로 파동을 포함하는 차트를 그려보면 뭔가 또 다른 것이 느껴질 수도 있겠지요.

      • 다음 과정은 엘리어트 패턴을 분리하고, 더 큰 패턴으로 집약하는 과정입니다.
      • 위 그림에서와 같이 추세선을 그리려면 우선 추세선의 접점을 찾아야겠지요?



      2011년 7월 2일 토요일

      닐리 따라하기 - 6. 포지션 지표의 구성 I

      1. 현재까지의 분석 결과

      • 지금까지 파동 분석을 진행한 결과물로서 아래와 같이 구조기호와 진행기호를 포함하는 차트를 볼 수 있을 텐데요, 다음 단계는 무엇일까요?


      그림 1 - 방향성 움직임을 고려하지 않은 차트

      그림 2 - 방향성 움직임을 고려한 차트

      • 인접한 파동들과 함께 파동의 움직임을 가장 잘 표현하는 구조기호와 진행기호를 찾고, 나머지 기호들은 제거를 해야 겠지요.
      • 그 과정이 닐리가 얘기하는 '포지션 지표의 구성' 과정입니다.

      2. 포지션 지표

      • (그림 1)과 (그림 2)처럼 차트 상의 많이 모노파동들의 내부적인 구조들이 닐리 사전을 통해 추출되었을 것입니다. 하지만 닐리 사전은 후보가 되는 구조기호들을 하나로 줄이는 데 한계가 있습니다.
      • 각각의 포지션 지표의 고유한 특성들을 연구하고, 각 기호의 함의를 주변의 구조와 논리적으로 결합시키는 과정을 통해 여러가지 선택지들 중에서 하나의 구조기호를 선택할 수 있습니다.

      • 각각의 포지션 지표들이 실제 상황에서 발견될 수 있는 조건들을 나열하면 아래와 같습니다.

      3. :F3 (First 3)

      • ? - F3 - c3 - L5
      • ? - F3 - c3 - c3
      • x:c3 ++ F3 - c3 - L5
      • x:c3 ++ F3 - c3 - c3
      • 5 - F3 - 5 - F3 - L5 (두 번째 5는 첫 번째 5의 38.2% 이상이다.)
      • 5 - F3 - 5 ++ x:c3 (두 번째 5는 첫 번째 5의 38.2% 이상이다.)
      • 5 - F3 - s5 ++ x:c3 (s5는 5의 38.2% 이상이어야 한다.)
      • 5 - F3 - L5 (L5는 5의 38.2% 이상이어야 한다.)
      • s5 - F3 - L5 (L5는 s5의 100% 이상이어야 한다.)

      4. :c3 (center 3)
      • F3 - c3 - c3 - c3 (두 번째 또는 세 번째 c3가 4개 파동 중 가장 크거나 작아야 한다.)
      • F3 - c3 - 5 (5는 c3보다 커야 한다. 만약 5가 F3의 161.8%이거나 그보다 크다면, 5는 61.8% 또는 그 이상으로 되돌려져야 한다.)
      • F3 - c3 - s5 ++ x:c3 (s5는 c3보다 커야 한다. 만약 s5가 F3의 161.8%이거나 그보다 크다면, s5는 61.8% 또는 그 이상으로 되돌려져야 한다.)
      • F3 - c3 - L5 (만약 L5가 c3보다 짧다면, F3의 시작점이나 c3의 종점이 빠르게 돌파되어야 한다.)
      • F3 - c3 - c3 - c3 - L3 (마지막 c3나 L3는 5개의 구조기호 중 가장 작거나 가장 커야 한다.)
      • F3 - c3 - c3 - sL3 - L3 (L3는 5개의 구조기호 중 가장 작아야 한다.)
      • c3 - c3 - c3 - L3 (L3가 가장 작고 c3가 그 다음으로 작은 파동이거나, L3 또는 c3가 4개의 파동 중에서 가장 길어야 한다.)
      • :3 - x:c3 - :3 (x:c3가 첫 번째 :3의 61.8%보다 작거나 161.8%보다 커야 한다.)
      • 5 ++ x:c3 ++ 5 - F3 (c3는 5보다 작아야 한다.)
      • 5 ++ x:c3 ++ F3 - c3 (c3는 5보다 작아야 한다.)
      • s5 ++ x:c3 ++ 5 - F3 (c3는 s5보다 작아야 한다.)
      • s5 ++ x:c3 ++ F3 - c3 (c3는 s5보다 작아야 한다.)
      • L5 ++ x:c3 ++ F3 - c3 (c3는 L5보다 크고, F3는 c3보다 작아야 한다.)

      5. x:c3 (center 3 in the x-wave position)
      • L3 ++ x:c3 ++ F3 - c3 (매우 드문 경우지만, c3는 L3, F3보다 커야 한다.)
      • L3 ++ x:c3 ++ 5 - c3 (사실상 불가능하지만, c3는 L3와 5보다 커야 한다.)
      • :3 ++ x:c3 ++ :3 (마지막 :3는 패턴의 마지막 파동이다.)
      • :3 ++ x:c3 ++ :3 ++ x:c3 ++ :3 (마지막 :3는 패턴의 마지막 파동이다.)
      • 5 ++ x:c3 ++ 5 - F3 (x:c3는 모든 5보다 작아야 한다.)
      • 5 ++ x:c3 ++ F3 - c3 (x:c3는 5와 F3보다 작아야 한다.)
      • s5 ++ x:c3 ++ 5 - F3 (x:c3는 s5와 5보다 작아야 한다.)
      • s5 ++ x:c3 ++ F3 - c3 (x:c3는 s5와 F3보다 작아야 한다.)
      • 5 ++ x:c3 ++ :3 (마지막 :3는 패턴의 마지막 파동이거나 드문 경우이지만 3중 조합 패턴이 형성 중일 수 있다. 만약 그렇다면 :3 뒤에 다른 x:c3가 나타날 것이다.)
      • L5 ++ x:c3 ++ F3 - c3 (x:c3는 L5와 F3보다 커야 한다.)

      6. :sL3 (second to Last 3)
      • c3 - sL3 - L3 - ? (L3가 sL3의 61.8% 이하이거나 100%보다 커야 한다.)

      7. :L3 (Last 3)
      • F3 - c3 - c3 - c3 - L3 - ? (L3는 두 번째 또는 세 번째 c3보다 커야 한다.)
      • F3 - c3 - c3 - sL3 - L3 - ? (L3는 가장 짧은 파동이고, 급격하게 되돌려져야 한다.)
      • sL3 - L3 ++ x:c3 ++ F3 (sL3와 c3는 모두 L3보다 크거나 작아야 한다.)

      8. :5 (five)
      • ? - 5 - F3 - 5 (?는 현재 패턴의 시작 또는 5 앞에 시장 움직임이 없다는 것을 가리킨다.)
      • ? - 5 - F3 - s5 - F3 (s5는 5보다 커야 하고, 모든 F3들은 이전의 구조기호보다 짧아야 한다.)
      • ? - 5 - F3 - s5 ++ x:c3 (x:c3는 s5보다 짧아야 하고, F3는 5와 s5 모두보다 짧아야 한다.)
      • F3 - 5 - F3 - L5 (2개의 F3가 서로 겹치는 가격대가 있어서는 안 되고, L5는 5보다 길어야 한다.)
      • F3 - 5 ++ x:c3 ++ F3 (x:c3와 첫 번째 F3는 5보다 작아야 한다. 두 번째 5는 거의 항상 x:c3보다 길어야 한다.)
      • F3 - 5 ++ x:c3 ++ 5 (x:c3와 F3는 첫 번째 5보다 작아야 한다. 두 번째 5는 x:c3보다 길어야 한다.)
      • c3 - 5 ++ x:c3 ++ F3 (x:c3는 5의 161.8%와 같거나 크거나 61.8%보다 작아야 한다. 만약 x:c3가 5보다 크다면 F3는 x:c3보다 작아야 한다. 만약 x:c3가 5보다 작다면 F3는 거의 항상 x:c3보다 클 것이다.)

      9. :s5 (special 5)
      • 5 - F3 - s5 ++ x:c3 ++ F3 (x:c3와 첫 번째 F3는 s5보다 작아야 한다.)
      • 5 - F3 - s5  - F3 - L5 (모든 F3는 s5보다 작아야 하고, L5는 s5보다 길어야 한다.)
      • F3 - c3 - s5 ++ x:c3 ++ F3 (모든 c3와 x:c3는 s5보다 작아야 한다. F3는 일반적으로 x:c3보다 클 것이다.) 

      10. :L5 (Last 5)
      • 5 - F3 - L5 - ? (F3는 모든 5와 L5보다 짧아야 한다.)
      • s5 - F3 - L5 - ? (L5는 s5보다 길어야 하고, L5는 s5의 161.8%일 가능성이 높다.)
      • F3 - c3 - L5 - ? (만약 c3가 F3의 138.2%이거나 그보다 크다면, L5는 거의 확실히 c3보다 짧을 것이다.)
      • F3 - c3 - L5 ++ x:c3 ++ F3 (c3와 x:c3 모두 L5보다 길어야 하고, F3는 x:c3보다 작야야 한다.)


      엘리어트 패턴 Helper

      엘리어트 패턴 Helper는 8개의 엑셀 매크로와 다수의 VB 함수들로 구성됩니다.




      • 일별주가정렬, 일별주가정렬_MeanValue - HTS에서 엑셀 시트로 불러온 가격데이터로부터 고가와 저가의 평균가 데이터를 생성합니다.
      • PaintAndMonoize - 평균가 데이터로부터 모든 모노파동들을 식별해 냅니다.
      • RuleAndCondition - 각각의 모노파동에 대해 적용 Rule과 Condition, 구조기호와 진행기호를 분석합니다.
      • RuleAndCondition_with_S - 기본적으로 RuleAndCondition과 동일한 기능을 하지만, 유사성과 비례의 법칙을 적용한 것입니다.
      • RuleAndCondition_with_D - 기본적으로 RuleAndCondition과 동일한 기능을 하지만, 방향성 움직임을 고려한 것입니다.
      • FindStructure - 선택된 하나의 모노파동에 대해 Rule과 Condition, 구조기호와 진행기호를 분석합니다.
      • ElliottChart - 선택된 범위에 대해 구조기호와 진행기호를 포함하는 차트를 생성합니다.


      닐리 사전을 구현한 함수들과 기타 유틸리티 함수들은 elliott.bas에 구현되어 있습니다.



      elliott.bas에 구현된 함수 목록은 다음과 같습니다.


      '''''''''''''''''닐리 사전''''''''''''''''''''''''''''
      Function Do_Elliott(ParamArray varArgs() As Variant)
      Function elliott(ParamArray varArgs() As Variant)
      Function elliott_R_1a(ParamArray varArgs() As Variant)
      Function elliott_R_1b(ParamArray varArgs() As Variant)
      Function elliott_R_1c(ParamArray varArgs() As Variant)
      Function elliott_R_1d(ParamArray varArgs() As Variant)
      Function elliott_R_2a(ParamArray varArgs() As Variant)
      Function elliott_R_2b(ParamArray varArgs() As Variant)
      Function elliott_R_2c(ParamArray varArgs() As Variant)
      Function elliott_R_2d(ParamArray varArgs() As Variant)
      Function elliott_R_2e(ParamArray varArgs() As Variant)
      Function elliott_R_3a(ParamArray varArgs() As Variant)
      Function elliott_R_3b(ParamArray varArgs() As Variant)
      Function elliott_R_3c(ParamArray varArgs() As Variant)
      Function elliott_R_3d(ParamArray varArgs() As Variant)
      Function elliott_R_3e(ParamArray varArgs() As Variant)
      Function elliott_R_3f(ParamArray varArgs() As Variant)
      Function elliott_R_4a(ParamArray varArgs() As Variant)
      Function elliott_R_4b(ParamArray varArgs() As Variant)
      Function elliott_R_4c(ParamArray varArgs() As Variant)
      Function elliott_R_4d(ParamArray varArgs() As Variant)
      Function elliott_R_4e(ParamArray varArgs() As Variant)
      Function elliott_R_5a(ParamArray varArgs() As Variant)
      Function elliott_R_5b(ParamArray varArgs() As Variant)
      Function elliott_R_5c(ParamArray varArgs() As Variant)
      Function elliott_R_5d(ParamArray varArgs() As Variant)
      Function elliott_R_6a(ParamArray varArgs() As Variant)
      Function elliott_R_6b(ParamArray varArgs() As Variant)
      Function elliott_R_6c(ParamArray varArgs() As Variant)
      Function elliott_R_6d(ParamArray varArgs() As Variant)
      Function elliott_R_7a(ParamArray varArgs() As Variant)
      Function elliott_R_7b(ParamArray varArgs() As Variant)
      Function elliott_R_7c(ParamArray varArgs() As Variant)
      Function elliott_R_7d(ParamArray varArgs() As Variant)

      ''''''''''''''''''''''''''''''''''''''''''''''''''''''

      Function mw_start(addr)
      '주어진 모노파동의 시작점을 찾습니다.

      Function mw_m0_start(s, e)
      '주어진 파동 m1의 이전 파동 m0의 시작점을 찾습니다.

      Function mw_m2_end(s, e)
      '주어진 파동 m1의 이후 파동 m2의 종점을 찾습니다.

      Function mw_find_mws(m1_s, m1_e, k)
      '주어진 파동 m1에 대해 이후 k개 또는 이전 k개의 파동을 찾습니다.

      Function mw_R_and_C(ParamArray varArgs() As Variant)
      '주어진 파동의 Rule과 Condition을 계산합니다.

      Function mw_len(a, b)
      '파동의 길이를 구합니다.

      Function mw_r(a, b, c)
      '주어진 파동의 되돌림 비율을 구합니다.

      Function mw_time(a, b)
      '파동의 소요시간을 계산합니다.

      Function mw_ret_time(a, b, c)
      '주어진 파동의 되돌려진 시간을 계산합니다.

      Function mw_w_cnt(a, b)
      '주어진 파동 그룹에 포함된 모노파동의 개수를 구합니다.

      Function mw_over(s, e, e2)
      '파동의 동일 방향의 특정 파동에 대해 저점 붕괴 또는 고점 돌파 여부를 파악합니다.

      Function mw_r_over(s, e, s2)
      '파동의 반대 방향의 특정 파동에 대해 저점 붕괴 또는 고점 돌파 여부를 파악합니다.

      Function mw_tl_over(mn2e, m0e, m1e, m2e)
      '특정 두개 파동의 추세선 붕괴 여부를 파악합니다.

      Function mw_t_similar(s1, e1, s2, e2)
      '두 시간 사이의 유사성을 파악합니다.

      Function mw_p_similar(s1, e1, s2, e2)
      '두 가격대 사이의 유사성을 파악합니다.

      Function mw_similar(s1, e1, s2, e2)
      '두 파동 사이의 유사성을 파악합니다.

      Function mw_almost_same(m, n)
      '두 수가 거의 같은지를 판단합니다.

      Function mw_Fibonacci_61_8(m, n)
      '두 수가 0.618 피보나치 관계를 형성하는지 판단합니다.

      Function mw_almost_Fibonacci_61_8(m, n)
      '두 수가 거의 0.618 피보나치 관계를 형성하는지 판단합니다.

      Function mw_overlap(s1, e1, s2, e2)
      '두 파동이 가격대에서 겹치는 부분이 있는지 판단합니다.

      Function mw_steeper(s1, e1, s2, e2)
      '한 파동이 다른 파동이 비해 가격대가 크고 가파르게 형성되는지 판단합니다.

      Function mw_compare_slope(s1, e1, s2, e2)
      '두 파동 사이의 기울기를 비교합니다.

      Function mw_impulse_rule(len1, len3, len5, len6)
      '파동들이 충격패턴을 형성하는지 판단합니다.

      Function mw_impulse_rule_3(len1, len3, len5)
      '충격패턴의 3번파동 규칙을 검사합니다.

      Function mw_impulse_rule_l(len1, len3, len5)
      '충격패턴의 파동 사이의 길이의 규칙을 검사합니다.

      Function mw_impulse_rule_r(len1, len3, len5, len6)
      '충격패턴의 5번 파동 되돌림 비율 규칙을 검사합니다.

      Function mw_steep_ret(s, e)
      '한 파동이 자신이 형성된 시간보다 짧은 시간 내에 100% 되돌려지는지 판단합니다.

      Function mw_total_ret(s, e)
      '한 파동이 완전히 되돌려질 때까지의 시간을 계산합니다.

      Function mw_r_3w(s1, e1, e2)
      '한 파동에 대해 이후 3개의 모노파동에 의해 되돌려지는 비율을 계산합니다.

      Function mw_similar_to_next(s, e)
      '한 파동이 다음의 모노파동과 유사성과 균형의 법칙을 만족하는지 판단합니다.

      Function mw_add_s_p(ParamArray varArgs() As Variant)
      '분석 대상 파동에 구조기호와 진행기호를 붙입니다.

      Function mw_dir_move_end(e1)
      '방향성 움직임이 종료되었는지 여부를 판단합니다.



      닐리 따라하기 - 4. 방향성, 유사성과 균형의 법칙 II

      1. 법칙의 적용

      • 다음 그림은 중립성의 법칙, 유사성과 균형의 법칙을 적용하지 않은 분석 차트와 법칙을 모두 적용한 분석 차트의 차이를 보여줍니다.

      그림 1

      • 그림 1의 상단 부분을 먼저 보겠습니다. '상황 A'와 '상황 B'에서 중립성의 법칙, 유사성과 균형의 법칙을 적용하지 않고 모든 모노파동에 대해 분석을 할 수도 있습니다. 그럴 경우, 인접한 파동들과의 관계 속에서 무시해도 될 가격 움직임을 분석하느라 '숲을 보기 어려운 처지'에 놓일 가능성이 있습니다.
      • 파동 분석은 파동 하나하나의 분석 결과가 중요한 것이 아니라, 여려 개의 파동들을 연결한 파동 그룹에 대해 패턴 분석을 하는 것이 중요한 것입니다.

      • '상황 A'에서는 유사성과 균형의 법칙을 적용합니다. '상황 B'에서는 중립성의 법칙, 유사성과 균형의 법칙을 모두 적용합니다. 법칙을 '적용'한다는 의미는 해당 모노파동에 대해 분석하지 않고 분석 대상 파동 m1의 종점을 연장한다는 것입니다.
      • 그림 2의 하단 부분에 표시된 것처럼 m1을 분석한 후 이전 파동 m0, 이후 파동 m2와 연결하여 패턴을 찾는 과정을 진행해야 합니다.
      • '상황 C'를 가지고 파동의 연결에 대해 설명을 하면, m1과 m2의 첫 번째 모노파동을 연결하는 것이 아니라, m2의 3개 또는 그 이상의 모노파동을 연결하여 패턴을 찾고난 후 m1과 연결하여 함께 분석해야 합니다.

      2. 방향성 움직임에 대한 고려
      • 방향성 움직임에 대해서는 이전 블로그에서 중립성의 법칙과 연계하여 기술하였습니다.
      • 그런데, 작은 파동들의 움직임보다 방향성을 고려하여 작은 움직임을 없앤 차트를 분석하는 것은 어떨까요?

      그림 2

      • 분석 과정이 더 쉽고 빨라질 것입니다. 물론 숲이 아닌 나무를 봐야할 경우라면 위 그림처럼 함께 분석하면 되겠지요.