관리 메뉴

Storage Gonie

시스템 트레이딩 본문

카테고리 없음

시스템 트레이딩

Storage Gonie 2019. 12. 27. 09:41
반응형

툴박스가 제일 간편하기 때문에 이를 우선적으로 고려해라.
툴박스에서 해결이 안되는 것들의 경우 직접 프로그래밍을 병행하여 보완하는 것이 필요하다.

툴박스

* 단지 매매하기 위한 도구이며, 기본적으로 종목 체인징이 안되는 것이 툴박스의 특징.
* 기본적으로 제공되는 지표들을 사용할 수 있으며, 코드 몇줄로 원하는 지표 및 신호 등을 만들 수 있음.

* 기본 언어들이 같기 때문에 한 가지를 사용할 수 있다면 다른 것들도 사용가능해짐.
* 제공되는 기능이 아니라면 사용하지 못한다는 제약이 있음.

- YesTrader(YesSpot-툴박스인 예스트레이더랑 붙어다니지만 직접프로그래밍 범주에 속한다고 봐야함) :
   무료, 국내에서 가장 점유율이 높은 툴, 하이투자증권에서 제공중,
   시스템트레이딩이 처음이라면 일단 이것의 사용을 먼저 고려하길 추천.
   TradeStation을 모티브로 하여 국내에서 개발한 것이므로 분석/검색 부분을 제외하고는
  TradeStation과 대등하거나 일정부분 뛰어난 경우도 있음.
   유전자 알고리즘을 사용해서 최적값을 찾아주는 이런 부분이 없는 것 빼고는 거의 다 따라잡음.
   자동매매를 위한 기능을 모두 가지고 있고, YesSpot을 이용해 기능의 확장이 가능하다.
  YesSpot을 이용하면 엑셀같은 외부로 신호를 내보낼 수가 있다.
    

- TradeStation :
   유료, 툴박스의 원조, 신한금융투자에서 제공중이며 월 사용료 99000원
   분석쪽에서 아주 정확한 분석을 제공한다.
   독보적으로 전진분석에서 정확한 분석을 제공함. 그리고 전진분석에서 최적화를 할 때 Genetic Algorithm(GA)을
   사용함. 다른 툴박스도 이 알고리즘을 사용하기는 하나, TradeStation의 것이 더 정확하고 기능이 뛰어나다.
   따라서, 분석쪽에 강점을 가졌다.

- Multicharts :
   유료, 인베스트웨어에서 제공중이며, 데이터 구독이 기간제로 이루어짐. 
   64bit버전을 제공해서, 틱데이터를 빠르게 불러오고 빠르게 연산을 수행한다.
   분봉 혹은 150~200틱 등의 긴 틱에 대해 불러오고 연산하는 것의 성능은 다들 비슷하지만,
   짧은 데이터인 1틱 혹은 2틱, 3틱 데이터를 불러오기 시작하면 그 성능의 차이는 확연하다.
   분봉 데이터 외에 1초 단위의 초봉을 제공한다. 특색있는 기능.

TradeStation , Multicharts 는 확장이 가능하다.
외부에서 DLL을 가져와서 기능을 확장할 수 있다.
툴박스만 가지고 매매를 하는 것이 아니라, 내가 MATLAB을 사용을 하는데 계산을 MATLAB에서 하고 데이터를 TradeStation으로넘겨서 전략을 구동한다음에 매매는 엑셀에서 하고싶다 뭐 이런식으로 3개의 프로그램을 연동하여 기능을 확장할 수 있다. 이런 기능을 TradeStation , Multicharts는 기본적으로 제공하고 있는 것이다.

YesTrader는 그냥 툴박스이다.
YesSpot이라는 것을 가지고 확장을 할 수 있다. Excel하고 통신을 한다던가, 신호를 외부로 내보낸다던가 아니면 기존의 차트에서 나온 신호를 가지고 다른 종목을 매매를 한다던가, 이런것들이 YesSpot에서 가능하다.
YesSpot은 javascript로 된 프로그래밍에 가깝다.
YesSpot은 툴박스는 아이고 직접프로그래밍에 가까워서 툴박스와 직접 프로그래밍 사이에 위치한다고 보면됨.
YesSpot은 YesTrader와 같이 물려서 돌아가는 javascript로 확장할 수 있는 기능이라고 보면됨.

툴박스의 제약사항이 있기 때문에 이런부분은 직접프로그래밍을 해야한다.

툴박스에는 어떤 제약사항이 있냐?
- 시가, 종가 매매가 딱 안된다.
- 시가가 나오자마자 바로 진입하게 할 순 있다. 그런데, 동시호가에 진입하도록 매매시키지는 못한다.
   왜냐면 신호가 나오면서 바로 동작할 수 없기 때문에. 구조적인문제로.
- 종목 변경이 안된다. 뭐 삼성전자라는 종목을 차트를 띄워서 종목을 지정한 뒤, 차트를 띄워서 전략 적용을 시켜서, 매매를 하다가 삼성종목에서 나온 조건에 맞는 신호가 나왔을 때 이걸 다른 종목으로 바꾼다던가 여기서 나온 신호를 외부로 내보낸다던가 그런것들이 불가능하다.
3가지 툴박스 모두 불가능한데, 트레이드스테이션과 멀티차트는 DLL을 통한 확장이 가능해서 신호가 나오면 외부로 내보낼 수가 있다. 신호를 엑셀에서 받아서 거기서 다른종목을 매칭시켜서 매매를 하는게 가능하다.

예스트레이더의 경우도 YesSpot을 사용하면 한 종목의 매매신호를 외부로 내보내거나 다른 종목으로 신호를 참조해서 
즉, 기존의 차트에서 나온 신호를 참조해서 다른종목을 매매하거나 하는게 가능하긴 하다.

예를들어 옵션이나 선물을 거래를 할 때 선물신호를 이용해서 다시 옵션을 여러개 매매를 한다던지 하는게 원래 툴박스에서는 안되는데, 이런것들을 할 때는 확장기능을 이용해 신호를 외부로 내보내서 직접 프로그래밍을 엑셀에서 하든 파이썬으로 하든 이런것에서 처리를 하던가 예스스팟을 사용을 해서 매매를 해야함.

직접 프로그래밍

COM(컴포넌트)을 가져와서 프로그래밍을 할 수 있는 언어라면 어떤 언어로든 코딩이 가능하다.
보통 VBA, 파이썬을 이용하게 된다.

- 엑셀 VBA
- 파이썬 : 연산처리속도가 엑셀 VBA 보다 뛰어남
- C/C++
- C#
- 델파이

어떤것 부터 배워야 할까?

CASE1) 매매하고자 하는 몇 개의 종목이 정해져 있고, 일중에 자동 트레이딩만을 원한다.
- 툴박스만 사용하면 된다.

CASE2) 기업실적에 대한 데이터 및 지표를 가져와서 자동저장하고 분석하기를 원한다.
              자동매매가 아니고 종목을 뽑아내고 싶은 것임.
- 이런 경우에는 직접프로그래밍이 필요함. 엑셀 VBA 정도가 적합함. 성능이 중요한 문제가 아니고, 분석하는 것이기 때문.

CASE3) 데이트레이딩을 하는데 특정 조건에 맞는 종목들을 선별하여 자신의 규칙대로 자동투자하기를 원한다.
- 종목검색을 해서 나온 종목들을 자동투자하겠따.
   이게 어려움. 장중에 실시간으로 종목을 검색해야하는데, 거래소 종목수가 총 2000개 좀 넘는데
   엄청 많은 종목에 대한 조건검색은 개인들이 할 수 있는 작업이 아니다.
   이런 것은 원래 서버급 장비와 서버측의 프로그래밍이 필요한 작업임.
   전문가들이 해도 동시에 2000종목의 데이터를 받는 것 조차 힘들다.
   HTS에서 제공하는 조건검색은 개인차원에서 구현하려면 힘들다.
   그래서 대책은 증권사에서 제공하는 API를 이용하면 된다.
   그럼 이때 계산은 증권사쪽에서 하는것이고, 이런식으로 가져와서 작업하는게 가장 합리적이다.
   현재 한 두군데에서만 제공중이니 이런 증권사를 사용하는게 좋음.
   그럼 이건 당연히 툴박스에서는 안됨.
   그러면 엑셀VBA나 파이썬을 사용해서 해야한다.

CASE4) Upticks, Downticks 를 구분하여 집계한 다음 거래량을 정밀 분석하고자 한다.
- YesTrader같은 툴박스에서는 캔들 하나에 해당하는 거래량에 대해서 아래로 친 틱하고 위로 친 틱을 각각
   분리를 할 수 있다. 이것을 각각 Upticks, Downticks 라고 한다.
상승과 하락을 분리해서 처리하는게 가능한데, 
   이렇게 하면 나만의 지표를 만들 수도 있다.

CASE5) 옵션에서 매일 달라지는 OTM, ITM 등을 구해 합성 트레이딩을 하고싶다.
- 옵션을 하지 않는 사람들은 잘 모르는 내용일텐데, OTM, ITM은 옵션이 여러개의 종목이 있는데, 
   주식같은 개별 종목의 가격이 올라가고 내려갈 때마다 옵션이 거래하는 종목이 틀려진다.
   그런데 종목체인징이 안되는 툴박스 특성상 이는 툴박스에서 불가능하다.

CASE6) 매매하는 종목이 계속 바뀌거나, 다른 곳에서 나온 신호를 가지고 다른 종목을 매매할 때
ex) 종합주가지수(KOSPI)에서 발생한 신호를 가지고
삼성전자 종목을 매매하고 싶다.
ex) KOSPI200을 가지고 선물을 거래하고 싶다. 
- 이런것들이 툴박스에서 안되는 대표적인 제약사항이며,
  종목이 바뀌는 경우나 두 종목 이상끼리 연동되어 작동되는 경우 거의 직접 프로그래밍을 해야한다.    
- YesSpot, TradeStation, MultiCharts는 개별 종목에서 발생한 신호를 DLL을 이용해 외부(엑셀)에서 받아서 직접 프로그래밍을 해서 다른 종목을 매매를 할 수 가 있다.

CASE7) 체결창에서 연속으로 들어오는 체결 거래량을 구해, 나만의 새로운 지표를 만들고 싶다.
- 체결창을 보면 와르륵 하며 뭉태기로 체결되는 경우를 볼 수 있는데, 좌르륵 체결 되는걸 한 그룹씩 연산되게 해서 
   개인만의 지표를 만들어서 매매에 활용하려고 했음.
- 이런 경우에는 직접 프로그래밍으로 할수도 있고, 약간의 오차는 있지만 툴박스에서 약간의 오차를 감안하고 틱차트를
   띄운다음에 10틱씩 짤라서 할 수 있음.
- 정확하게 구현하려면 직접 프로그래밍을 이용해 구현하는 것을 추천한다.
   여러종목을 동시에 처리해야하는 경우라면 엑셀 VBA보다는 파이썬을 추천.

CASE8) 포트폴리오를 운영하는데 배팅량이나 자금관리를 원하는 규칙에 따라 자동 관리하고 싶다.
- 직접 프로그래밍을 이용해야한다.
- 여러 툴박스를 동시에 사용할 경우 모든 신호를 취합해 배팅량을 할당해주는 통합 모듈을 개발해야 할 것이다.

<참고>
https://cafe.naver.com/powertrading

https://youtu.be/QMgtqVhPTqk

 

반응형
Comments