'System Trading'에 해당되는 글 4건

  1. 2009.07.07 H5MgrEx의 명령어에 따른 처리 과정
  2. 2009.07.07 하나대투 API 이용
  3. 2008.07.22 Cybos plus 설치 2
  4. 2008.07.21 TradeStation - Global Server의 Exchange List 수정
 H5MgrEx의 Command 중에서 hf)INITH5MGR과 hf_ENCRIP, hf_SIP는 발생하는 이벤트 없음.

(1). hf_CONNECT 명령
FEV_OPEN -> FEV_AXIS(runAxis) -> FEV_ANM 순으로 이벤트가 발생한다.

1. FEV_OPEN 이벤트가 발생하면 SignOn 처리한다.
2. FEV_ERRO 이벤트 발생
3. 정상적으로 인증이 처리 되면 FEV_AXIS(runAxis) 이벤트 발생한다. 이때 연결 성공에 따른 적절한 처리 해주면 된다.
4. FEV_ANM 이벤트는 연경 성공후에 발생한다.
FEV_ANM으로 수신되는 자료 예)
[processANM]
SP001    033    +0.09    023    +880.10    034    170935    024    +0.80   


[processANM]
USD    023    +1276.10    034    150000    024    +3.00   


[processANM]
NQ001    033    +0.09    023    +1409.25    034    165258    024    +1.25   


[processANM]
S0000    047    172119    014    0    048    0    301         015    '로프트 10도' 드라이버 아마추어나 쓴다고?    016    2009070817210317211913    050    0    041    13    042    12    043    20090708    044    172103    022         045    한경뉴스    046    레저/스포츠   


[processANM]
S0000    047    172129    014    0    048    0    301         015    캄보디아에 '꿈' 수출한 한국 불교    016    2009070817210417212913    050    0    041    13    042    11    043    20090708    044    172104    022         045    한경뉴스    046    문화/교양   

(2). hf_QUERYTR
선물 코드/시세, 옵션 코드/시세 등의 전문을 서버에 전달하여 FEV_FMX 이벤트로 결과를 받아서 처리한다.
FEV_FMX 이벤트에서  LOWORD(AWParam) 값으로 어떤 전문에 대한 응답인지 구분한다.
이 포스트를 작성하는 시점 기준으로 아래의 4개 전문에 대한 응답 처리만 구현했다. (07-20 주문응답 처리 추가)

1. TR_FCODELIST - 선물 코드
2. TR_OPCODELIST - 옵션 코드
3. TR_FSISE - 선물 시세
4. TR_OPSISE - 옵션 시세
5. TR_ORDER_START - 주문

선물/옵션 시세를 요청하면, FEV_FMX로 현재 시세에 대한 자료가 넘어오고, 이후에는 FEV_ANM이벤트로 시세 정보를 수신하게 된다. 장이 종료된 경우에 FEV_ANM 이벤트는 발생하지 않는다. 또한, 옵션의 경우에 이벤트로 수신되는 정보에 현재가/전일대비/거래량이 매번 포함되지는 않는다.

(3). hf_ACCLIST
계좌 정보 조회, 이벤트 없이 함수 파라미터로 전달한 버퍼를 통해서 값을 반환 받는다.

<변경내역>
2009-07-06 : 첫 포스트 작성
2009-07-07 : FEV_ANM 수신 데이타 예 추가
2009-07-08 : hf_QUERYTR 관련 내용 작성 시작
2009-07-09 : hf_QUERYTR 4개 전문 요청 및 응답 처리 추가
2009-07-20 : 계좌조회, 주문 전문 요청 및 응답 추가

'System Trading' 카테고리의 다른 글

하나대투 API 이용  (0) 2009.07.07
Cybos plus 설치  (2) 2008.07.22
TradeStation - Global Server의 Exchange List 수정  (0) 2008.07.21
Posted by Gu Youn
,
자세한 내용은 나중에 정리할 계획이지만 지금까지 내용 우선 개략적으로 정리해두려고 포스트 작성 함.

1. 지난 월요일에 하나대투 증권의 API를 제공 받아서 설치해보고 VC 샘플로 구조 파악.

2. VC 보다는 델파이나 빌더가 익숙해서 ActiveX를 컴포넌트로 등록하고 빌더 샘플 작성 시작 하지만, export된 HFCommand 함수를 호출하면 아무 에러 메시지도 없이 프로그램 종료가 되버려서 IDispatch 인터페이스 이용해서 Invoke 하는 방법으로 테스트 진행했으나 hf_INITH5MGR부터 실패.

3. 델파이로 다시 해보자 생각하고 컴포넌트 델파이에 다시 등록하고 새로 샘플 작성 시작. 델파이에서는 HFCommand 호출하여도 에러는 없는데 제대로 동작 안함.

>오류 내용
서버아이피 얻어오는 것은 되는데 이상하게 hf_INITH5MGR 명령은 에러 발생(에러코드는 -1 또는 10 발생하고 -1인 경우에 서버 아이피 얻어올 수는 있으나 연결 실패, 10인 경우에는 서버 아이피도 얻어올 수 없다.)

> 하나대투 증권사에 전화해봤으나 첨부된 문서 보고 다시 해보라는 답변만 해줘서 기술 문의나 지원 받는 것은 포기했다.

4. 해결책
3일 정도 이리 저리 테스트 해도 제대로 동작이 안되고 제공 받은 OCX 내부에서 어떻게 변수를 처리하는지 확인할 방법이 없어서 포기할까 했는데 시간 허비한게 아까워서 어떻게든 해보자는 생각에 제공 받은 ocx와 동일한 인터페이스를 갖는 MFC ActiveX를 만들고 내부에서 하나대투 API를 다시 호출하는 방법을 사용했다.

> 결과
VC 샘플에서 기존 ActiveX 대신에 새로 작성한 ActiveX를 호출해서 사용하도록 소스 수정하고 해봤더니 제대로 동작한다. 델파이로 만든 샘플에서도 로그인까지는 동작하는 것 확인.

> 기타
1. 기존 ActiveX를 직접 사용하는게 가장 깔끔하겠지만, 새로 ActiveX를 만들면서 전달 받은 내용을 로그 파일로 기록하게 해둠. 기존 ActiveX호출 하면서 이게 제대로 전달이 되는지 궁금하였는데 이젠 로그 파일 확인하면 됨.

2. VC로는 ActiveX를 처음 만들어 봐서 좀 헤매긴 했는데 어쨌든 되니까 다행이라는 생각이다. MFCActiveX 만드는 것에 대해서는 별도의 포스트를 올려서 정리할 예정인데 몇 가지 주의할 점 적으면..
- 대부분 위저드랑 인터넷 찾아보면 해결 할 수 있는데 View 기반이어서 생성자에서 CreateControl할떄 parent CWND를 Ctrl클래스 this 포인터를 넘기면 hwnd가 널인 경우도 있고 아닌 경우도 있어서 에러 발생했다. -> Dialog 추가해서 Dialog에서 ActiveX를 생성하는 것으로 변경해서 해결.
- OnCreate에서 Dialog를 생성하면 VC에서는 이상이 없으나 델파이에 컴포넌트로 등록하고 테스트 했더니 에러가 발생했다. 디버깅 해보니 이상하게 OnCreate가 실행이 안된다. 아마도 메시지 처리하는게 다른듯 싶어서. Ctrl의 생성자에서 Dialog 클래스 인스턴스 생성하는 것으로 바꿨다. 이것만 인터넷에 나와 있는 Dialog 기반의 ActiveX 만드는 것과 다른 부분이다.
- 참조
http://netcorea.spaces.live.com/blog/cns!12194EA1AE946527!165.entry

5. 남은 작업
새로 만든 ActiveX 안정성 확인 필요
시세 데이타 수신, 주문 하기 등 기능 구현 필요



'System Trading' 카테고리의 다른 글

H5MgrEx의 명령어에 따른 처리 과정  (0) 2009.07.07
Cybos plus 설치  (2) 2008.07.22
TradeStation - Global Server의 Exchange List 수정  (0) 2008.07.21
Posted by Gu Youn
,

Cybos plus 설치

System Trading 2008. 7. 22. 14:11
대신 증권에서 제공하는 프로그램으로 시장 정보와 주문 등을 처리할 수 있는 환경을 제공한다. 동양종합금융증권에서도 비슷한 환경인 GOM이라는 것을 제공한다. GOM보다는 대신 Cybos plus가 좀더 많은 시장 자료와 개발을 위한 매뉴얼을 제공되는 것 같다. (GOM 설치는 다음에 포스트 할 예정이다.)

[설치 방법]

1. U-CYBOS GLOBAL을 다운 받는다.
http://www.daishin.co.kr/ctx_webservice/sc_download/sg_user_download/svc_download/program/U-CYBOS-g.exe

2. 아래 그림처럼 U-CYBOS를 실행하고 상단의 모의투자, 아래쪽의 Cybos Plus선택하고 로그인 하면 사이보스 플러스 사용할 준비가 끝난다. 대신 증권 계좌가 있으면 모의투자를 선택할 필요 없다.
사용자 삽입 이미지

[관련 자료]
1. cybos plus 사이트
http://money.daishin.co.kr/cybosplus/

2. 대신증권 홈페이지
http://www.daishin.co.kr/index.html


Posted by Gu Youn
,
1. 설정 예
New York Stock Exchange와 Seoul Korea Stock Exchange를 아래처럼 설정한다.
사용자 삽입 이미지

사용자 삽입 이미지

2. 설정 내용에 대한 설명
a. 선물인 경우 한 틱의 단위가 0.05이므로 위 그림 처럼 설정
(PriceScale * Min, Movement = 1/100 * 5 = 0.05 )

b. 옵션이라면 Min, Movement를 1로 설정한다. (1/100 * 1 = 0.01 )

c. 과거 기록을 보는 경우라면 Min, Movement를 100으로 설정하여 1포인트씩 사용

3. 항목 설명(Help에서 복사)
a. Exchange

The exchange on which the symbol is traded.

b. Holiday List

A drop-down list showing the different types of holiday lists available, including American, London, Canadian, and MATIF. If a new holiday is added to this list, it will be posted on the Omega Research web site and you will then need to add it to your holiday list.

c. Price Scale

The fractional or decimal units in which prices are quoted by the exchange. For example, stocks on the NYSE are usually quoted in 1/8ths or 1/16ths, whereas OTC stocks are quoted in 1/64ths or 1/32nds. This field works in conjunction with the Minimum Movement and Big Point Value fields to provide an accurate representation of the value of point and fractional point moves of a symbol.
For example, an S&P 500 futures' price scale is 1/100, its Minimum Movement is 10, and its Big Point Value is 250. This means that a contract's minimum tradable increment is 10/100 (or 1/10th), and when it moves 1/10th of a point, this represents a 25 dollar change ($250 divided by 10).

Omega Research sets the Price Scale for all stocks to 1/1000 for accuracy purposes, and the Minimum Movement to 125, which equals 1/8, and all options to 1/16, with a Minimum Movement of 1, which equals 1/16.

d. Daily Limit

The maximum that commodities and options markets are allowed to rise or fall in one day. Limits are imposed on a per contract basis by the exchange on which the symbol is listed.

e. Minimum Movement

The minimum increment by which a market may trade. Minimum movement is entered as a whole number that represents x number of movements on the price scale. For example, if the symbol's price scale is 1/32 and the minimum tradable increment is 2/32, the minimum movement will be set to 2.

f. Big Point Value

The dollar value represented by a full point of price movement. In the case of stocks, the Big Point Value is usually 1, in that one point of movement represents one dollar. However, it can vary. For example, the Big Point Value for the S&P futures is 250, where 1 point of price movement represents 250 dollars.

g. Collect Daily Quotes X Minutes After Session

After a session closes, the number of minutes before settlement prices will begin to be accepted. For example, if a session closes at 4:00 p.m., and this field displays 60 minutes, settlement prices will begin to be accepted beginning at 5:00 p.m. Settlement prices will continue to be accepted for the number of minutes listed in the Collect Daily Quotes for X minutes box.

h. Collect Daily Quotes for X Minutes

After settlement prices begin to be accepted, the number of minutes that settlement prices will continue to be accepted. For example, if the session closes at 4:00 p.m., and the Collect Daily Quotes X minutes after session box displays 60 and the Collect Daily Quotes for X Minutes box displays 120, then settlement prices will be accept between 5:00 p.m. - 7:00 p.m.

i. Edit Daylight Savings

A button that displays Daylight Savings information as well as the amount by which the exchange time is offset from the GMT. If the exchange adheres to Daylight Savings rules, the date or time frame (such as 밚ast Sunday in April? when Daylight Savings takes effect is displayed as well.


Minimum Movement

The minimum increment by which a market may trade. Minimum movement is entered as a whole number that represents x number of movements on the price scale. For example, if the symbol's price scale is 1/32 and the minimum tradable increment is 2/32, the minimum movement will be set to 2.

4. 참고자료
a. http://cafe.naver.com/subserver/2301
b. Omega Research Online User Manual

'System Trading' 카테고리의 다른 글

H5MgrEx의 명령어에 따른 처리 과정  (0) 2009.07.07
하나대투 API 이용  (0) 2009.07.07
Cybos plus 설치  (2) 2008.07.22
Posted by Gu Youn
,