BLOG main image
ddd (50)
CUDA programming (0)
알고리즘 트레이딩 (5)
Cherry Picker 개발 (23)
TSimulator 개발(종료) (11)
IT 노트 (1)
잡동사니 (2)
사진 (4)
일기 (4)
이력서 (0)
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
2014. 1. 25. 20:53

나중에 환경설정시에 바로 도움이 되기위해 텍스트 편집기 설정을 기록한다.





라인번호 표시





탭 설정





폰트 변경





컬럼리밋 설정


2008 에서는 약간의 트릭을 써야한다. 2010 버전에서는 extension 프로그램이 있다.

일단 '시작 -> 실행' 이나 '윈도우키+R' 로 실행을 띄우고 'regedit' 를 치고 확인을 누른다.

그럼 레지스트리 편집기가 뜨는데 다음 경로로 가자.


[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\Text Editor]


그리고 '마우스 우클릭 -> 새로만들기 -> 문자열 값' 을 누른 후 맨 아래부분에 Guides 부분을 추가해준다.





현재라인 하이라이트


현재라인 하이라이트 기능

이 기능은 2008 에서 기본제공이 안돼서 addin 을 설치해야한다.

'SlickEdit Gadgets v2 for Visual Studio' 을 받고 실해해서 설치하자. 설치 후 visual studio 를 수행시키면 메인메뉴에 SlickEdit 가 생기고 'Editor Gadgets' 에서 각종 설정들이 가능하다.




2014. 1. 25. 11:49

Cherry Picker 라이브러리를 이용한 응용프로그램 개발시에 release 모드와 debug 모드에 따른 프로젝트 속성에 대해 정리해두고자 한다. 다음 설정들은 별다른 경고 또는 에러메세지가 없이 컴파일 및 실행되는 설정들이고 Visual Studio 버전은 2008 이다. 참고로 release 모드가 debug 모드보다 7 배 정도로 좋은 성능을 낸다.






Release Mode



== Cherry Picker 라이브러리 ==


주의점 : stdafx.cpp 은 파일 속성에서 '미리 컴파일된 헤더 만들기' 설정. 그 외 모든 cpp 파일은 '미리 컴파일된 헤더 사용 안함' 으로 설정하자. 자세한 내용은 다음 포스팅 참조..

-> 'Cherry Picker 정적 라이브러리 생성 시 링크 에러 해결방법'





== 응용 프로그램 ==










Debug Mode



== Cherry Picker 라이브러리 ==







== 응용 프로그램 ==





2014. 1. 15. 07:14

TWAP 은 풀어서 'Time Weighted Average Price' 이며 직역하면 '시간가중평균가격' 정도가 되겠다. 시시각각 변하는 가격을 주기적으로 수집하여 평균을 계산하는 것인데 이동평균과 비슷한 맥락이라고 생각하면 된다.


TWAP 은 알고리즘 트레이딩 세계에서는 대량의 증권을 시장충격을 최소화하고 매수 또는 매도하는 전략으로도 해석된다. 뭔가 거창하게 들리지만 그냥... 사고자하는 주식을 균등하게 나눠서 주기적으로 사거나 팔거나... 이다. 조금이라도 복잡성을 찾고자 한다면 사고자하는 수량이 상대1호가보다 많을 경우에 유리하게 매매하는 방법을 연구하면 된다. 그 외에는 초등학생도 쉽게 집행할 수 있는게 TWAP 이다.


TWAP(혹은 VWAP) 전략이 필요한 이유를 그림으로 설명해 보겠다. 다음 호가창을 보자.





어떤 상장 대기업의 대주주가 있고 그 대기업의 주가는 KOSPI200 과 아주 비슷하게 움직인다고 가정해보자. 이 대주주는 자신이 가지고 있는 주식 가격의 하락으로 인한 자산감소를 방지하고자 KOSPI200 지수선물을 1000 계약 매도하고자 한다.

(물론 해당 기업의 주식선물이 존재한다면 KOSPI 200 지수선물이 아닌 그 주식선물을 매도하는것이 맞지만 가지고 있는 자료가 선물 호가창뿐이라 선물을 헤지수단으로 정했다.)

이 대주주가 매도집행하는 방법은 여러가지가 있지만 다음 네 가지 방법 중 하나를 선택한다고 가정하자.


1. 마우스에 손을 얹고 무작위 시간에 1000 계약 시장가 매도

2. 선물가격이 고점이라고 판단했을 때 1000 계약 시장가 매도

3. 1000 계약을 7등분하여 매시간 142 계약씩 시장가 매도(9시~14시 정각에는 142 계약, 15시에는 148계약)

4. 1000 계약을 7등분하여 매시간 142 계약씩 호가를 컨트롤하며 지정가 매도


대주주가 이러한 선택지를 가지게 된 이유는 1000 계약의 선물 매도를 완료했을 때, 평균매도가격을 최대한 높히고 싶어서다. 대주주가 정확한 판단력을 가진 사람이라면 2 번이 가장 높은 평균매도가격을 가지게 될것이다. 1 번은 2 번과 같은 평균가를 가지거나 3, 4 번보다 좋을수도 혹은 나쁠수도 있다. 3 번과 4 번은 그 날 취할 수 있는 최악의 평균가격은 분명 면할 것이다. 하지만 3 번보다 4 번이 유리한 평균가를 얻을 확률이 높다.

3 번과 4 번의 방법 중 시장가 주문이 불리한 이유는 3 번 방법의 경우 시장가 주문을 함으로서 호가창의 매수 1 호가의 모든 잔량을 취하고도 매수 2 호가에서 59 계약을 더 취하게 돼 142 계약의 매도평균가격은 255.23 이 된다. 지정가 주문으로 아주 잘~컨트롤된 매도집행은 현재가인 255.25 이거나 시장가로 집행한 255.23 보다는 높은 매도평균가격을 갖게될 것이다.

위 방법 중 3 번과 4 번이 TWAP 알고리즘에 해당하는데 이는 최선도 최악도 아닌 그나마 평균적인 성과를 내는 방법이다. 최악의 성과를 내느니 차라리 최고는 아니지만 평균성과라도 내고싶을 때 아주 유용한 방법이다.


이제 실제로 TWAP 이 어느정도 성과가 있는지 과거데이터로 테스트를 해보겠다. 테스트 방법은 다음과 같다.


=============================================================

* 기간은 2009년 1월 2일 ~ 2013년 9월 30일 (1184 일)

* 매일 선물 10000 계약 매수목표

* TWAP 알고리즘은 9시 1분부터 장종료(15시 15분)까지 매분 27 계약씩 366 번의 선물을 매수

  (10000 / 366 은 27.32 라서 27 계약으로 결정했고 매수 완료후 118 계약이 남지만 무시하고 27 계약씩만 매수)

* 매분 종가로 매수

* 각 호가의 잔량정보가 있으면 좋지만 OHLC 정보밖에 없으므로 '종가 = 매도 1 호가'로 가정한다.

* 종가에 27 계약 모두 무조건 매수 가능하다고 가정한다.(호가잔량정보 부족의 한계)

=============================================================


이렇게 테스트를 해봤고 일별 선물 고가와 저가 사이에 어느정도의 평균가격으로 선물이 매수됐는지 며칠동안의 그래프를 살펴보면 다음과 같다.





예상한대로 TWAP 은 대략 고가와 저가의 중간값으로 나타났다.


근데 과연 정말 중간값일까...? 먼저 위 그래프에서 '당일 TWAP' 부분과 당일 '( 당일 고가 + 당일 저가 ) / 2' 값을 비교해봤다.





위의 그래프로는 두 데이터계열이 엎치락뒤치락한다. 샘플이 너무 적고 눈으로 식별해야 하는 불편함이 있으므로 테스트된 1184 개의 데이터의 정보를 산출해봤다.





TWAP 과 중간값의 차이는 한틱(0.05포인트)이 조금 넘는 값이다. TWAP 값이 아주 조금 높게 나온 이유는 급락에 의한 저가가 생성되어 중간값을 끌어내린 경우가 많기 떄문이다. 실제로 1184 개의 샘플 중 TWAP 이 고저가 중간값보다 낮은 경우가 그렇지 않은 경우보다 128 일이나 더 많았다. 



결론


선물 TWAP 과 선물 고저가격 중간값은 1184 개의 과거 샘플에 의해 평균적으로 대략 한 틱정도의 차이를 보였다. 이는 TWAP 알고리즘으로 증권을 매도 또는 매수하면 그 날의 고가와 저가의 중간값으로 거래하는것과 거의 같은 효과가 있음을 의미한다. 단, 한 틱이 조금 넘는 값의 차이로 평균 선물 TWAP 이 평균 선물 고저가의 중간값보다 높으므로 샘플에 의하면 선물 TWAP 거래시 매도가 매수보다는 한 틱가량 유리하다.



P.S.

TWAP 을 개선한 것이 VWAP(Value Weighted Average Price) 인데 다음 포스팅에서는 호가잔량 정보 및 거래량 정보를 사용하여 TWAP 과 VWAP 의 성과비교를 해보겠다.