금융공학

주가 데이터에서 아웃라이어와 필터링

황항락 2020. 6. 16. 00:38

Source of Outliers : 이상치데이터

주의 : 금융공학교육과정 내용을 정리했기 때문에 현저히 금융데이터에 초점이 맞춰짐.

이상치데이터 처리 필요성과 발생이유

왜 고쳐야 할까?
이상치 데이터를 처리하지 않으면, 실제 결과와 완전 왜곡된 결과가 나올 수 있다.
왜 생길까?
사람의 실수 OR 컴퓨터 버그, 의도적으로 답변하지 않는 경우, 정말로 특이한 경우의 발생 등.. 때문에 생긴다.

사람 실수로 인해서도 이상치 데이터가 발생한다. 소위 finger error라고 불리는 사람이 만드는 에러는... 배후에는 엄청난 사건이 있었을 것이다. 증권사만 해도 이런 경우 몇 십억원, 몇 조원의 손해는 물론이고, finger error로 인해서 헷지펀드 하나 금방 망하고 은행이 망하는 경우도 있다고 한다. 우선 정확한 사례가 기억이 안나 비슷한 사례를 하나 가져왔다.

http://news.einfomax.co.kr/news/articleView.html?idxno=50708

 

180억 손실 낸 "주문실수" KB證, 책임론 불가피 - 연합인포맥스

(서울=연합인포맥스) 정지서 기자 = 홍콩계 헤지펀드의 선물 주문실수 사태와 관련, 위탁사인 KB투자증권의 책임이 불가피할 것으로 보인다.헤지펀드가 180억원 규모의 손실을 보며 사건은 일단��

news.einfomax.co.kr

그리고 예전에 인스타에서 봤던 썰

출처는 우선 구글링. 왠지 근데 이거 다음 카페 같은데 어디 커뮤니티인지는 모르겠다.

이런 사람의 실수나 컴퓨터 자체의 오류로 인해 아웃라이어가 발생하는 경우가 있다는 것.  그 외에도 여러가지 이유나 사건으로 아웃라이어가 발생한다고 한다. 우선 어떠한 이유에서 발생했는지에 따라서 아마 뒤에서 더 자세히 설명할 것이다.

 

이상치데이터의 실제 모습

(nan, 0, 9999, ....)

 

 

Raw Data에서 Outlier 찾기

Raw Data에서 Outlier 찾는 가장 간단한 방법론.

Rough and fastest way, 
"Finding Extreme Values in raw data and to screen(선별) the data for them"

✔️inefficient하지만, 시간없을 때 아주 효율적.

✔️그러나 stocks 수 많으면 불-편-하다

(사진)

 

 

  • Red point threshold : (특정규칙에 의해) extreme data로 뵈는 아이들
  • 그러나 임계점에 대해서 맹신 하지 말도록 : likely to yield many false positives, extreme yet legitimate price movement data-points.  (거짓된 긍정신호, 극단적이지만 합법적인 가격움직임 포인트를 생산할 가능성)
  • 하지만, volume과 동행(accompany) 하는 경향이 있다면 → volume 정보로threshold filter의 정확도를 보완.
  • need to process large amounts of data, minimize false postives, and dealing with missing values.

 

아웃라이어 데이터 다루기 위한 To-do list 

수동으로 제거하거나 보조 소스의 데이터로 바꾸는 방법

Second way to find & handling data : 다른 데이터 소스와 Cross-Check 

극단값이 실제 값인지 또는 결측 데이터 점을 채우는 가장 쉽고 빠른 방법은 다른 데이터 원본과 교차 확인하는 것입니다.
The easiest and quickest way to determine if the extreme value is real, or fill in a missing data point is to cross check with another data source.

 

보통, 다음과 같이 두 구간을 평균내서 채우는 경우가 있는데 이는 매우 위험할 수 있다.

출처 Udacity

  • 미래의 정보를 당시의 데이터에 통합할 위험이 존재하며
  • Look-ahead bias 발생가능성
  • risk 척도가 될 수 있는 variance가 어그러질 수 있다.
"Look-ahead Bias" 예측편향
그 당시에 알 수 없는 (미래)데이터를 사용해 예측함으로써 나타난 편향.
unknowable data from the future will consistently make your results look better.

⭐️Look ahead Bias가 들어간 데이터를 기반으로 Signal을 찾게 될 때 발생하는 주요 문제는 이러한 연구에 기반한 어떤 종류의 전략도 실행이 불가능하다는 점이다.

(The main problem with using future data in signal research is that any kind of strategy based on that research would be impossible to execute.)

그래서 다음과 같은 방법으로 Adjust.

(사진)

→ Historical 방법론으로 미루어보아

→ 직전 기의 closing price로 missing closing price로 채워 시그널 찾기.

→ 백테스팅을 통해 진짜로 tradable event인지 체크

Ex) A은(는) 하루 동안 거래되지 않았을 수 있으며, 따라서 종가가 누락되었을 수 있습니다. 이 사실을 백테스트 시 반영하여 해당 일에 트레이드 하지 않도록 해야합니다.

Spotting Outliers In Signal Returns

여기서 부터 하기...

 

 

# 주가데이터에 초점을 맞춰서

주식거래에 있어서 이상치 데이터가 발생하는 경우

1. 주식 거래가 하루 이상, 하루 중 일부 동안 중단 되었기 때문에 데이터가 누락되었을 수 있다.

2. 규제적 이유 : 기업의 뉴스 발표 전에 변동성을 야기하는 거래를 줄이기 위해 OR 상장기준을 계속 충족하는 지 불확실 할 때, 잠시 거래가 중단되기 때문.

3. 비규제적 이유 : buy and sell order에 유의적인(중요한) 불균형 있을 때 잠시 중단됨

 

 

 

서킷브레이커 Circuit Braker

일정 퍼센트 이상 인덱스 하락 시에 거래 중단하는 메커니즘.

경제 증권 시장에서 가격 변동 폭이 확대되어 지수가 크게 급락하는 경우, 시장 참여자에게 투자에 대해 냉정하게 판단할  있는 시간을 제공하기 위하여 거래를 일시 중단시키는 제도.  - 네이버국어사전

(사진)

✔️"Stock Market Crashes" 방지: 주식 가격이 갑자기 그리고 현저하게 하락하는 경우를 막기 위해 필요하다.

✔️어떤 경우 발생하느냐? : 중요사항(Announcement) 공시 직전에 보통 Circuit braker가 작동한다.

(사진)

예시로 푸마 사의 그래프의 경우, 2017년에 예상된 3분기 earning보다 더 높은 earnings를 발표하여 10/18에 전일 대비 4%나 높은 가격으로 장을 마감했다. 하지만 이 급격한 가격에 시장팜여자들이 즉각적으로 반영하여, 다음 날 가격이 떨어지며 변동을 보이고 있다.

 

컴퓨터 트레이딩 프로그램의 의도적/ 의도적이지 않은 오류

트레이딩에 있어서 outliers는 컴퓨터 트레이딩 프로그램 자체의 문제로 인해 아웃라이어가 발생하는 경우가 있다. 즉, 트레이딩 프로그램 자체가 모종의 이유로 이상거래를 진행해서 outliers가 발생할 수 있다는 것.

그러나, 아무리 짧은 시간동안 일어난 price crash라고 해도 이것 역시 "real events" 다.

→ 즉, 이것도 유의한 사건이라고 볼 수 있다.

 

퀀트는 nominal and unadjusted data를 활용하는 경우가 더 많다.

퀀트는 주식 real time data로 작업할 때, 데이터셋에서 adjusted data를 구한다는 것이 거의 불가능 하기 때문에 nominal and unadjusted data를 활용해야 하는 경우가 많다.

예시 )

(사진)

  • 배당 (D), 주식분할, 기업병합 등이 일어나면, 주가가 급격히 변한다
  • 국내의 예로는 삼성전자 주식분할로 인해 200 → 4만원 선이 된... 경우 정규화 작업 필요.

 

Q. 왜 이런 뉴스들이 주가변화에 영향을 미치는 가?

  • 재무적으로 cash의 흐름이 회사 → 주주 (shareholders) → 이는 곧 회사 net value 감소.
  • 배당과 같은 이슈 이후, 주식 수요의 변화에 따른 가격 변화. 
  • 그러나, 배당 후에는 가격이 다시 adjusted 된다.

 

금융주가 Unadjusted and disconnected data를 처리하는 방법.

금융데이터에서는 특히,

  1. 일단 그 기점으로 무슨 뉴스가 있었는 지 보고
  2.  조정된 가격을 생성하기 위해 각 배당금 분배에 대한 가격을 누적적으로 조정한다. (adjust the price for each dividend distribution to generate adjusted price.)

 

Outliers Signals & Strategies

Sometimes, the prices of stocks that aren't traded very much undergo dramatic changes when they are actually traded.
거래량이 적은 자산들은 종종 거래가 발생하면 자산 가격이 극적으로 변동하기도 한다.

 

 

Thinly / infrequently traded stock  : 잘 거래되지 않는 주식들.

(사진)

  • 판단근거인 Turnover : Volume Traded X Price Per Share

  • 위의 예시인 Easyknit 주식은 평소 일 거래량이 10000 shares * 4.8 HK dollars. (Turnover = 48000 HK dollars)

  • 반면 , 다른 대형주는 5 billion HK dollars 규모로 거래되고 있었음

  • 따라서, 거래량이 적은 주식들은 조금만 sell and buy 해도 가격을 움직일 수 있다. ⇒ 왜 소형주가 변동성이 심한 지 설명 가능하다.

 

한번의 묵직한 거래로 가격을 그림처럼 들었다 놨다 가능하다.

이렇게 거래량이 적고 변동성이 높은 주식을 포트폴리오에서 제외함으로써 포트폴리오 unpredictability를 피할 수 있다. 
혹은 이 fluctuation을 잘 타고서 수익을 낼 수도 있다.

✔️이렇게 변동성이 심한 자산은 자산후보군에서 제외함으로써 Trading Universe를 사려깊게 정하는 것이 중요하다.

 

Market Crash and volatility 문제

 

⇒ maket crash / 침체기에는 특히 volatility가 심하고 extreme value에 도달할 가능성이 크다.

⇒ 이러한 침체기의 데이터를 포함해 거래 신호를 보정(calibrate)하면, 결과가 크게 왜곡되고 정상 거래일에 신호가 최적으로 수행되지 않습니다.

⇒ 하지만 이런 드문 이벤트의 결과를 반영하지 못하면, 작동을 잘 하지 않거나 위험한? 방식으로 작동할 수 있음.

 

Market Crash로 인한 변동성 문제 해결방법 : Constrarian Strategies.

  1. 손해를 제한하는 임계값 (threshold) 를 정한다 (손절매) → 불확실성을 alleviate(완화)하는 방법

  2. 갑자기 급등한 포인트에서 이익얻기

  3. 2를 contrarian strategies라고 부르며, 일시성 급등, 급락 시그널을 보고 그에 맞게 거래함. (그러나 그 적절한 타이밍을 찾기 힘들기 때문에 매우 risky)