레이블이 Elliott Pattern Helper인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Elliott Pattern Helper인 게시물을 표시합니다. 모든 게시물 표시

2014년 12월 3일 수요일

네오위즈인터넷 Charts (2014-12-02)


▶ 특이사항
  
    거래량이 3배 이상 증가하면서, MACD oscillator가 signal line을 golden cross
  

그림 1. MACD oscillator, signal line golden cross
  
▶ 엘리어트 패턴
  
    일봉에서 지그재그(:5-:3-:5) 패턴의 하락 조정 완성을 기다림 - 지그재그의 세 번째 파동이 한 단계 낮은 수준(degree)의 충격패턴 중 :L5로 마감될 것을 기대
  

그림 2. 일봉 엘리어트 패턴
  
    60분봉에서도 한 단계 더 낮은 수준의 :L5를 완성하는 상승 되돌림을 확인할 수 있는데, 이 되돌림이 두 단계의 수준을 동시에 완성하는 것으로 보임
  

그림 3. 60분봉 엘리어트 패턴

    일봉이 장대 양봉이지만, 60분봉에서 역망치형 캔들이 발생했으므로, 하락조정이 연장될 것인지 확인할 필요가 있음
  

2014년 12월 2일 화요일

KODEX 인버스 charts (2014-12-01)


▶ 특이사항
  
    1. 일봉 OBV 지표의 다이버전스
  

그림 1. OBV 지표

    2. Squat following Green
  

그림 2. Bill Williams' Profitunity Window

▶ 엘리어트 패턴
  
    충격패턴의 4번 파동이 지그재그 패턴으로 완성될 가능성이 있어 보임 - 패턴의 완성은 위 '특이사항'의 다이버전스를 근거로 한 것임  


그림 3. 엘리어트 패턴 - 방향성 움직임



2013년 5월 30일 목요일

2013년 4월 1일 월요일

Introducing Elliott Pattern Helper-DDE

Elliott Pattern Helper-DDE

Elliott Pattern Helper-DDE (EPH-DDE) is an Excel Add-In, which utilizes Elliott monowave analysis functionality of EPH and DDE of various home trading softwares.

It helps users accumulating candlestick informations from quotes incoming through DDE links, analyzing Elliott wave structures of monowaves and waves in between adjacent fractal start and fractal signal, catching some buy/sell signals based on the results of EPH analyses, finally getting trading edges.



▶  Main functionality
  • DDE programs and items management
  • DDE channel management
  • Candle feeder
  • Technical Indicators
    • MACD, RSI, OBV, CCI, Stochastic, Disparity
    • Fractal Count
    • Bill Williams' Profitunity Window
  • Elliott wave pattern analysis (with help of EPH)
    • Monowaves
    • Elliott wave fractals
    • Polywaves in between fractal start and fractal signal
  • Signals
    • Indicator primitive signals 
    • User-defined signals (combinations of primitive signals)
  • Charting


▶  Screenshots
  • EPH-DDE is an Excel Add-In

Figure 1. Excel add-in

  • Selecting indicators when scheduling

Figure 2. Indicators


  • Candlestick Charts with an indicator
    • Toggle button toggles display mode
    • display mode: fractal count, monowave patterns, fractal start-signal mode

Figure 3. Chart sheet


  • Monowave Analysis

Figure 4. Elliott patterns of each monowave

  • Fractal Start-Signal Analysis

Figure 5. Elliott wave patterns of fractal start-signal

  • Setting up user-defined signals

Figure 6. Defining user-defined signal conditions


  • Buy/Sell Signal

Figure 7. Signals

 

2013년 1월 3일 목요일

Time-Series multiresolution decomposition and forecasting

※ Elliott Pattern Helper Add In
  • Download Add In for Excel 2007 ☞
  • Download Add In for Excel 2003 ☞

  지난 글에서는  Wavelet multiresolution decomposition을 활용한 financial time-series의 dimensionality reduction에 관하여 언급했었는데요, 예측(forecasting)과 관련하여 wavelet transform에 대한 얘기를 해볼까요?

  Wavelet transform을 예측에 사용하는 방법은 대략 세 가지 정도가 있는데, 첫 번째가  multiresolution analysis를 수행한 후 각각의 resolution에 대한 예측치를 계산하는 것입니다. 두 번째 방법은 wavelet을 기반으로 financial time-series의 noise를 제거한 후 예측을 하는 것이며, 세 번째는 wavelet coefficient들 자체에 예측 알고리즘을 적용하는 것입니다.

  이 중 가장 자주 사용된 방법이 첫 번째 것으로서, financial time-series의 multiresolution decomposition 결과를 활용하는 아주 단순한 방법입니다. 즉, 특정 scale의 approximation layer와 그 보다 작거나 같은 scale의 detail coefficient layer 각각에 대해 예측을 수행하고 inverse transform으로 recostruction함으로써 최종 예측치를 계산하는 것이죠. (Fig 1 참조)
Fig 1. Multiresolution decomposition and forecasting

  이번 글에서는 이와 같은 방법을 담은 과거 발표 논문을 참조하여 실제로 테스트를 수행해 본 결과를 소개하도록 하겠습니다.
 
  ※ 참고 논문: Saif Ahmad, Ademola Popoola, Khurshid Ahmad, 'Wavelet-based Multiresolution Forecasting', 2005.

1. 모델링

   시스템은 크게 세 부분으로 구성됩니다.

  • Data preprocessing (Fig 1, 'MODWT')
  • Fuzzy rule base (Fig 1, 'Build Fuzzy Rule Base')
  • prediction system (Fig 1, 'Provide Forecasts', 'Aggregate Forecasts')

  1.1 Data preprocessing - Multiresolution Decomposition
  Wavelet multiresolution analysis를 수행하여 time-series 데이터의 시간 및 주파수(혹은 주기) 영역 특성을 추출합니다. 쉽게 설명하면, financial time-series를 추세(trend)와 계절적 cycle 및 비즈니스 cycle 등으로 분해하는 것(decomposition)이라고 보시면 됩니다. 

  물론, 현실 세계에서 측정한 time-series에서 추세와 여러 cycle을 정확하게 분리해 내기는 어렵겠지요? 근사치를 얻기 위해 다양한 모형을 개발해 왔으며, wavelet transform을 이용한 multiresolution decomposition은 그 중 하나가 일 뿐입니다.

  논문에서는 Maximal Overlap Discrete Wavelet Transform(MODWT)과 a trous 알고리즘을 적용했습니다. MODWT에 관한 자세한 내용은 위 논문을 참고하시기 바랍니다.

  1.2  Fuzzy rule base - Subtractive Clustering
  Time-series 데이터에 대한 approximation 및 forecasting 시스템으로 Fuzzy Inference System(FIS)을 사용하는데, 이를 위해 fuzzy if-then rule을 생성해야 합니다. FIS의 premise parameter들을 초기화하는 것으로서, 단순하게 생각하면 input 데이터의 범위(universe of discourse)를 patitioning하고 적절한 membership function을 선택하는 과정이라고 볼 수 있습니다.

  대표적인 방법으로 grid partitioning이 있는데요, universe of discourse를 균등하게 분할하고 분할된 구간들에 대해 membership function 종류와 parameter들을 수작업으로 정의하는 것이 일반적입니다.

  Fuzzy if-then rule을 수작업으로 정의해야 하는 경우의 비효율성과 시행착오를 줄이기 위한 효과적인 방법이 data clustering입니다. Input data를 특정 척도(metric)에 따라 다수의 cluster로 구분하고 cluster 당 하나의 rule을 자동으로 정의합니다. Mountain clustering, subtractive clustering 등의 방법이 있으며, 위 논문에서는 subtractive clustering을 사용했습니다.

  1.3 Prediction system - ANFIS
  Multiresolution decomposition의 결과로 생성된 각각의 layer에 대해 예측을 수행하는 FIS로서, training 데이터로 학습(learning)을 시켜 최적화(optimization)시킨 후 실제 데이터에 대해 예측값을 계산하도록 합니다. 

  FIS를 학습(learining)시킨다는 것은 [input, output] 쌍으로 구성된 training 데이터를 FIS에 입력해 가면서 FIS가 계산한 output과 실제 output 간의 차이(error measure)를 줄여나갈 수 있도록 FIS의 내부 parameter들, 즉 premise parameter들과 consequent parameter들을 조정해 나가는 과정을 말합니다.

  학습 알고리즘으로는 gradient descent method처럼 미분을 이용한 방법이 자주 사용되기도 하지만, local maxima를 피하기 위해 particle swarm optimization(PSO), simulated anealing(SA) 등과 같은 derivative-free 방법을 적용하기도 합니다. 2012년 9월의 포스트 'Time-Series Analysis and Forecasting'에서 소개했던 시스템이 PSO를 사용한 것이었습니다.

  논문에서는 First-order (Takagi-Sugeno-Kang) TSK 타입의 FIS를 사용했다고 합니다.

 2. 테스트 시스템

  테스트 시스템은 위 논문에 소개된 아이디어를 적용하여 구성했습니다. 단, prediction system은 2012년 10월에 올렸던 블로그 'ANFIS and Time-Series Forecasting'에서 사용한 ANFIS 시스템을 사용했습니다. ANFIS는 premise parameter들의 최적화에 gradient descent method를, consequent parameter들에 대해서는 least square estimation(최소자승법)을 사용합니다.


  Time-series의 preprocessing 모듈은 엑셀 vba로 Haar a trous 알고리즘을 구현하여 multiresolution analysis를 수행하도록 구성했으며, fuzzy rule base 자동 생성을 위해 subtractive clustering 알고리즘을 C 언어로 구현하여 기존의 ANFIS 모듈과 통합하여 사용할 수 있도록 하였습니다. 엑셀에서 엑셀 vba, vba에서 .exe 파일을 호출하는 구조입니다.

  Time-Series로는 1,000 여개의 KOSPI 지수 데이터를 사용했으며,
Fig 1과 같이 scale 5 레벨까지 분해(decomposition)하여  D1, D2,..., D5, S5 등 6개의 layer를 생성하여 테스트를 진행했습니다. 각각의 layer는 maximal overlap DWT를 통해 생성되었으므로 KOSPI 데이터와 동일한 갯수의 데이터를 갖는 time-series입니다. 

  각각의 layer에 대해, FIS는 f(Xk-n, ..., Xk-1) → Xk 처럼 연속된 lagged data만을 input으로 받아 output을 계산하도록 학습됩니다. 그렇게 [input, output] 데이터 쌍을 생성하고, 이들을 90%와 10%로 나누어 각각 training data set과 검증용(check) data set으로 나누어 테스트를 진행했습니다.

3. 테스트 결과

  아래의 Fig 2-1부터 Fig 2-6까지는 scale 5 레벨 decomposition 결과로 생성된 각각의 layer에 대해 예측값을 산출한 결과입니다.


  참고했던 논문에서는 각각의 layer에 대해 FIS의 input dimension을 어떻게 해야 하는지, 즉 몇 개의 lagged data를 input으로 사용해야 하는지에 대한 언급이 없었습니다. 유사한 논문들을 검색하다보니 결국은 '경험적인 방법으로 error measure를 최소화하는 input dimension을 찿는다' 였습니다. 실제로 layer 별로 dimension을 바꿔가며 테스트를 해보니, 'universal approximator'라는 ANFIS 때문인지, 3 이상에서는 별다른 차이가 없음을 알 수 있었습니다. 그래서, 모든 layer에 대해 input dimension을 3으로 설정하여 테스트를 했습니다. 

  Subtractive clustering parameter는 radius 0.2, squash factor 1.25, accept ratio 0.5, reject ratio 0.15를 사용했습니다. 

Fig 2-1. Approximation at scale 5 (S5)
Fig 2-2. Detail coefficients at scale 1 (D1)
Fig 2-3. Detail coefficients at scale 2 (D2)
Fig 2-4. Detail coefficients at scale 3 (D3)
Fig 2-5. Detail coefficients at scale 4 (D4)
Fig 2-6. Detail coefficients at scale 5 (D5)
  위 그림을 보면 D1, D2 처럼 scale이 작은 경우, 즉 주파수가 큰 경우에는 실제값과 예측값 사이의 차이가 눈에 띄게 드러납니다. 하지만, scale이 커질수록 detail layer 또는 approximation layer에 대한 예측 성능이 좋아짐을 알 수가 있군요.

  그렇다면, 모든 layer의 예측값을 합(inverse transfomation)하면 어떻게 될까요?  다음 그림 3이 그 결과입니다.

Fig 3. Reconstruction from forecasts
  지난 몇 개의 포스트에서 소개했던 time-series forecasting 방법들과 마찬가지로  큰 resolution(S5, D5, D4 등)에서는 흐름을 충분히 예측할 수 있습니다. 하지만 D1, D2와 같이 주파수가 높은 layer의 예측 error가 그대로 반영되는 모습입니다. 

  D1을 noise처럼 생각하여 filtering을 한다면 어떻게 될까요? Fig 3보다는 더 정확한 결과를 얻을 수 있는 것이 당연하겠지요.

Fig 4. Reconstruction with D1 filtered

  Fig 3과 4를 비교해 보면 그 차이를 분명히 알 수 있습니다. 논문에서 주장하듯이 Wavelet transform에 의한 time-series preprocessing의 한 가지 이점이 확인되는군요. 

4. 결 론

  정리하면, Wavelet transform 기법으로 time-series를 preprocessing한 후 ANFIS를 사용하여 흐름을 예측해 본 결과, preprocessing의 효용성을 어느 정도 확인할 수 있었습니다. 


  참고논문에서는, 복잡한(complex) time-series를 noise나 계절적 요인 또는 추세를 제거하여 단순화시킴으로써 예측의 정확도를 높일 수 있다고 판단합니다. 실제 D1을 제거한 후의 테스트 결과(Fig 4)는 그 판단의 근거를 뒷받침합니다. 

  한 걸음 더 나아가, 분해된 layer들의 resolution(noise, seasonal, trend 등)에 따라 예측 기법을 상이하게 적용함으로써 예측 효과를 좀 더 향상시킬 수 있지 않을까 기대해 봅니다.

2012년 12월 25일 화요일

Dimensionality Reduction in Time Series

※ Elliott Pattern Helper Add In
  • Download Add In for Excel 2007 ☞
  • Download Add In for Excel 2003 ☞

▶ Multiresolution Analysis with Wavelet Transform

  파동은 상이한 진폭과 상이한 주기(또는 주파수)를 갖는 다수의 신호들이 복합된 것(composite signal)이라고 볼 수 있다. 예를 들어 다음의 파동을 관찰해 보자.
그림 1. Composite signal
  많은 노력을 들이지 않더라도 그림 1의 파동은 다음 그림 2의 파동 (a), (b)와 (c)를 합쳐 놓은 것이라는 것을 알 수가 있다.
그림 2
  Multiresolution analysis 또는 Multiscale approximation은 위의 관점에서 파동을 해체한 후, 파동을 특정 resolution(또는 scale)의 approximation과 그 보다 낮은 resolution의 detail coefficient들로 재구성한다. ※ 자세한 사항은 Wavelet Transform 관련 서적을 참고하십시요.

▶ Multiresolution Decomposition

  다음 그림은 특정 시계열 데이터에 대해 multiresolution decomposition을 수행한 결과를 보여 준다.  (Haar a trous transform, scale 5)

그림 3-1. Approximation at scale 5
그림 3-2. Detail coefficients at scale 1
그림 3-3. Detail coefficients at scale 2
그림 3-4. Detail coefficients at scale 3
그림 3-5. Detail coefficients at scale 4
그림 3-6. Detail coefficients at scale 5
  위 그림 3의 6개 파동을 모두 합치면 어떤 모양이 될까? 위 decomposition 결과를 가지고 역으로 원래의 파동을 reconstruction하면 다음 그림 4의 결과를 얻을 수 있다.

그림 4. Reconstruction
  어디서 많이 본 듯한 파동의 모양이 아닌가? 그렇다. 바로 KOSPI 지수의 최근 140 거래일 동안의 파동이다. ※ 주의: 종가 기준이 아니라 고가와 저가의 평균가 기준임

▶ Dimensionality Reduction

  우리가 주식 시장에서 접하는 파동들은 분 단위, 시간 단위, 일 단위, 주 단위, 월 단위 등 time scale에 상관 없이 그림 4와 유사한 모양을 갖는다.

  Glenn Neely의 파동 분석 방법은 '중요한 저점 또는 고점'에서 시작된 일련의 monowave들의 구조 및 진행기호 분석에서 시작된다. Elliott Pattern Helper(EPH)를 이용하여 위 chart에서 monowave들을 추출하면 다음 그림과 같다.

그림 5. Monowaves
  가령 그림 5와 같이 박스 A로부터 monowave 분석을 시작해 나갈 수도 있을 것이며, 그림 6과 같은 중간 결과를 얻을 수도 있을 것이다.

그림 6. Structure/progress notation of monowaves
  그런데, 파동 분석이 어려운 이유 중의 하나는, 그림 6에서 간파했을지도 모르겠지만, 하나의 파동에 다양한 degree의 패턴이 뒤죽박죽 섞여 있다는 것이다.

  그림 6의 파동 중간에 위치한 작은 monowave 7개를 관찰해 보자. 각각은 그 이전 monowave와 비교했을 때 시간 및 길이에서 확연한 차이가 난다. 즉, 쉽게 생각해서 degree가 다르다고 볼 수 있는데, 이들의 구조 및 진행기호를 하나씩 하나씩 분석해 나가야 할까?

  이렇듯 우리는 파동 분석 과정에서 'dimensionality curse'를 겪을 수밖에 없는데, 이를 회피할 방법은 없을까?

  이번 글의 제목이자 주제인 바, dimensionality reduction이 이 문제의 해결을 위한 수단이 되지 않을까 생각해 본다.

  어떻게 보면, 큰 추세와는 상관이 없어 보이는 작은 파동들을 하나로 묶어 의미있는 파동 패턴을 쉽게 찾을 수 있도록 하는 방법이라고 볼 수도 있겠다.

▶ Transform and Filtering

  위에서 언급한 Haar a trous wavelet transform과 filtering을 적용한 후 EPH를 통해 구조/진행기호를 분석한 결과는 다음과 같다.

그림 7-1. Before wavelet transform
그림 7-2. After wavelet transform, layer 1 filtering
그림 7-3. After wavelet transform, layer 1 & 2 filtering

   그림 7-1에서 7-3까지, 'curse'로부터 벗어나기 위한 노력이 가치가 있을까? Daily chart가 아닌 weekly chart, weekly chart보다 더 긴 시간 단위의 monthly chart를 볼 때와는 달리 detail을 포기하지 않아도 될 듯한데...


※ 그림 1과 2는 'The Illustrated Wavelet Transform Handbook, Paul S. Addison'에서 차용한 것임을 밝힙니다.


2012년 12월 6일 목요일

KOSPI200 Charts (2012-12-06)

※ Elliott Pattern Helper Add In
  • Download Add In for Excel 2007 ☞
  • Download Add In for Excel 2003 ☞

▶ Weekly, Wave Structure

그림 1

  Weekly chart 상으로는 11월 16일에 저점(사각 박스 하단 :L5 지점)이 형성된 후 상승 모노파동이 길이를 늘려가고 있는 모습입니다.


▶ Daily, Wave Structure

그림 2

  그림 2 Daily chart를 보면, 박스 하단부 :L5 이후 새로운 충격 패턴이 형성 중이라고 판단하기는 좀 어려워 보이죠?

  대신 이중 복합조정(빨간색으로 표시된 플랫과 지그재그) 후 그에 대한 반작용으로 조정 패턴이 진행 중이라고 보는 것이 옳을 듯 합니다. 이중 지그재그처럼 보이는군요.

  이중 복합조정의 되돌림 수준은 최대 80% 정도라고 하는데요, 그렇다면 어느 수준까지 상승할 수 있을까요?


▶ Daily, Fractal Count
그림 3

  그림 3의 빨간색 동그라미로 볼 수 있는 것처럼, 어제 green에 이어 오늘(12월6일) squat 캔들이 형성되었습니다.

  이 캔들이 어떤 역할을 할까요? Fractal count 25부터 시작된 단기 추세에 대해 trend continuation squat이 될지, 아니면 trend reversing 역할을 할지 향후 전개가 기대되는 군요. 예측은 하지 않는 것이 좋겠지요, trading은 대응의 영역이니까요.


2012년 12월 3일 월요일

KOSPI Charts (2012-11-30)

※ Elliott Pattern Helper Add In
  • Download Add In for Excel 2007 ☞
  • Download Add In for Excel 2003 ☞

▶ Monthly, Fractal Count

그림 1

  11월 캔들이 꼬리를 달면서 양봉으로 마감되었습니다. Fractal count 20, 2011년 4월에 시작된 듯한 조정 패턴이 12월에는 어떻게 진행될까요?


▶ Monthly, Wave Structure

그림 2

  그림 2의 사각형 박스 속 파동의 모양을 언뜻 보면, 고점이 낮아지고 저점이 높아지는 삼각형(:3-:3-:3-:3-:L5) 패턴처럼 보입니다. 과연 그러한지 현재 상황에서는 확인하기 쉽지 않습니다.



▶ Weekly, Wave Structure
그림 3

  그림 3 Weekly chart를 보면, 세 번째 빨간색 파동이 :3인지 아니면 :5로 판단해야 하는지 확실하지 않군요.

  만약 :5라면 미달형 :3-:3-:L5 플랫 이후 x-wave로 연결된 조정 패턴이 지속되고 있다고 봐야할 듯 합니다. :3으로 본다면, 현재 삼각형 패턴의 :L5 파동이 위 그림 3의 작은 박스처럼 진행 중이겠지요.


▶ Daily, Wave Structure

그림 4

  그런데, :L5로 보기에는 파동의 모양이 좀 이상합니다. 플랫-(x-wave)-지그재그 이후 저점을 형성하고 상승하는 모양입니다. 다르게 해석할 방법이 있을까요..?


▶ Daily, Fractal Count

그림 5

  아무래도 그림 5 Daily chart의 fractal count 27 이후 진행되고 있는 상승 파동이 어떻게 마감될지 지켜본 후 판단하는 것이 좋을 듯합니다.


2012년 11월 28일 수요일

대우증권 Charts (2012-11-27)

※ Elliott Pattern Helper Add In
  • Download Add In for Excel 2007 ☞
  • Download Add In for Excel 2003 ☞

▶ Monthly, Fractal Count

그림 1


  Fractal count 12 이후로 조정 패턴이 진행되고 있습니다. 물론 중간중간에 한 단계 또는 더 낮은 수준의 충격 패턴이 섞여 있습니다. 나무가 아닌 숲을 본다고 할 때 파동을 어떻게 분석해야 할까요?


▶ Monthly, Wave Structure

그림 2

  Fractal count 12부터 그림 2의 T1 시점까지를 flat pattern(a:F3-b:c3-c:L5)의 a-b 파동으로 무방할 듯 합니다.

  그렇다면 마지막 c:L5를 어디까지로 봐야할까요? 현재 시점에선 확인이 어렵습니다. 아직은 A-C 추세선이 돌파될 가능성이 매우 적기 때문입니다.


▶ Weekly, Wave Structure

그림 3

  그림 2의 T1에서 T2까지의 파동을 weekly chart에서 보면 그림 3과 같습니다. 터미널 충격 패턴으로 파악해도 되지 않을까요? Chart 하단부의 Elliott oscillator 변화 추이를 보면 그렇게 판단해도 될 듯 한데요.

  만약에 그렇다면 T2에서 flat 패턴이 완성된 것일테지만, 더 지켜봐야 하겠습니다.


2012년 11월 27일 화요일

LG화학 Charts (2012-11-27)

※ Elliott Pattern Helper Add In
  • Download Add In for Excel 2007 ☞
  • Download Add In for Excel 2003 ☞

▶ Monthly, Fractal Count

그림 1

  Fractal count 20부터 23까지 급격한 하락 이후 횡보하는 느낌입니다.


▶ Monthly, Wave Structure

그림 2

  그림 2의 빨간색으로 표시된 파동을 Zig-zag로 본다면 A-C 추세선을 돌파하지 못하여 조금 애매한 상황입니다.


▶ Weekly, Wave Structure

그림 3

  그런데 그림 3 weekly chart를 보니 A-C 추세선을 돌파한 이후 지지를 받는 모습이네요. 그렇다면 우선은 zig-zag 조정 패턴이 완성된 것으로 봐야겠습니다.

  하지만 타원으로 표시된 파동을 x-wave로 보고 조정이 연장되고 있다고 판단하는 것이 옳을 듯합니다. 물론 이후 파동 전개를 확인해야 할 것입니다.