Skip to content

me2nuk/stockOpenAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

121 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ํ‚ค์›€์ฆ๊ถŒ OpenApi


What is it

์ด ํ”„๋กœ์ ํŠธ๋Š” ํ‚ค์›€์ฆ๊ถŒ OpenAPI๋ฅผ ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ์œผ๋ฉฐ, ๋‹ค์–‘ํ•œ ๊ฐ€์ด๋“œ์™€ ํ‚ค์›€์ฆ๊ถŒ OpenAPI์˜ˆ์‹œ ๋˜๋Š” ์‚ฌ์šฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.


name Explanation ํ˜„์žฌ ์ƒํƒœ
test ํ‚ค์›€์ฆ๊ถŒ OpenAPI๋ฅผ ์‚ฌ์šฉํ•œ ์ฝ”๋“œ๊ฐ€ ์ž‘์„ฑ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. ์ž‘์„ฑ์ค‘
Kiwoom-Image ํ‚ค์›€์ฆ๊ถŒ ๊ฐ€์ด๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด์„œ ์‚ฌ์šฉ๋œ ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ž‘์„ฑ์ค‘
guide ํ‚ค์›€์ฆ๊ถŒ OpenAPI ์‚ฌ์šฉ ๊ฐ€์ด๋“œ์ž…๋‹ˆ๋‹ค. ์ž‘์„ฑ์ค‘



Kiwoom OpenAPI Contents




Kiwoom OpenApi




OpenAPI Step



  • Step1

    • OpenApi ์„œ๋น„์Šค ์‚ฌ์šฉ ์‹ ์ฒญ
  • Step2

    • ํ‚ค์›€ Open API+ ๋ชจ๋“ˆ ๋‹ค์šด๋กœ๋“œ
  • Step3

    • ๊ฐœ๋ฐœ๊ฐ€์ด๋“œ
    • KOA Studio
    • ๊ต์œก VOD
    • ์ž๋ฃŒ์‹ค
  • Step4

    • ์ƒ์‹œ ๋ชจ์˜ํˆฌ์ž ์‹ ์ฒญ

kiwoom OpenAPI Method



  • ๋กœ๊ทธ์ธ ๋ฒ„์ „์ฒ˜๋ฆฌ

    • ์„ค๋ช…


    [๋กœ๊ทธ์ธ ๊ฐœ์š”]
        ๋กœ๊ทธ์ธ์€ CommConnect()ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉฐ OnEventConnect ์ด๋ฒคํŠธ ์ธ์ž๊ฐ’์œผ๋กœ ๋กœ๊ทธ์ธ ์„ฑ๊ณต์—ฌ๋ถ€๋ฅผ ์•Œ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
        ์ด ๊ฐ’์ด 0์ด๋ฉด ์„ฑ๊ณต์ด๊ณ  ๋‚˜๋จธ์ง€๋Š” ์‹คํŒจ๋กœ ์˜ค๋ฅ˜์ฝ”๋“œ๊ฐ’์„ ์ฐธ๊ณ ํ•ด์„œ ์‹คํŒจ์›์ธ์„ ํŒŒ์•…ํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 
        ์‹ค์„œ๋ฒ„์™€ ๋™์ผํ•œ ์‹œ์„ธ๋ฐ์ดํ„ฐ๋กœ ์ฃผ๋ฌธํ…Œ์ŠคํŠธ๋ฅผ ํ• ์ˆ˜ ์žˆ๋Š” ๋ชจ์˜ํˆฌ์ž์„œ๋ฒ„๋ฅผ ์ œ๊ณตํ•˜๋Š”๋ฐ ๋กœ๊ทธ์ธ์ฐฝ์—์„œ "๋ชจ์˜ํˆฌ์ž ์„œ๋ฒ„"์„ ์„ ํƒํ•ด์„œ ๊ฐ„๋‹จํžˆ ์ ‘์†ํ•˜์‹ค์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
        
    [์ˆ˜๋™ ๋กœ๊ทธ์ธ]
        ๋กœ๊ทธ์ธ์ฐฝ์— ๋กœ๊ทธ์ธID์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ง์ ‘์ž…๋ ฅํ•ด์„œ ๋กœ๊ทธ์ธ์„ ํ•˜๋Š”๊ฒƒ์„ ๋งํ•˜๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด ๋กœ๊ทธ์ธ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
        ์ˆ˜๋™ ๋กœ๊ทธ์ธ์ค‘์— ๋ฒ„์ „์ฒ˜๋ฆฌ๋‚ด์šฉ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋ฒ„์ „์ฒ˜๋ฆฌ๋„ ํ•จ๊ป˜ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.
        
    [์ž๋™ ๋กœ๊ทธ์ธ]
        ๋กœ๊ทธ์ธํ•œ ๋‹ค์Œ ๊ณ„์ขŒ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ์ฐฝ์„ ํ†ตํ•ด ์ž๋™๋กœ๊ทธ์ธ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
        ํŠธ๋ ˆ์ด ๋ฉ”๋‰ด(๋ชจ๋‹ˆํ„ฐ ์˜ค๋ฅธ์ชฝ ํ•˜๋‹จ)์—์„œ "๊ณ„์ขŒ๋น„๋ฐ€๋ฒˆํ˜ธ ์ €์žฅ" ๋ฉ”๋‰ด๋ฅผ ์„ ํƒํ•˜๋ฉด ํ™”๋ฉด์ด ํ‘œ์‹œ๋˜๋Š”๋ฐ ์—ฌ๊ธฐ์„œ ๋กœ๊ทธ์ธ ์ดํ›„ ์‚ฌ์šฉํ•  ๊ณ„์ขŒ์™€
        ๊ณ„์ขŒ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ๋“ฑ๋ก๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์„œ ์ €์žฅํ•œ ๋‹ค์Œ ๊ณ„์ขŒ๋ฒˆํ˜ธ ์•„๋ž˜์— ์žˆ๋Š” AUTO์ฒดํฌ ๋ฐ•์Šค๋ฅผ ์„ ํƒํ•˜์‹œ๋ฉด ์ž๋™ ๋กœ๊ทธ์ธ์„ ์œ„ํ•œ
        ์„ค์ •์ด ๋ชจ๋‘ ๋๋‚ฉ๋‹ˆ๋‹ค.
        ๋กœ๊ทธ์ธ ์„ค์ •์„ ์ž๋™์œผ๋กœ ํ•˜๋ฉด ์ข…๋ชฉ์ •๋ณด๋ฅผ ์ œ์™ธํ•œ ๋ฒ„์ „์ฒ˜๋ฆฌ๋ฅผ ๋ชจ๋‘ ๋ฌด์‹œํ•˜๊ฒŒ ๋˜๋ฉฐ ๋ฒ„์ „์ฒ˜๋ฆฌ๋ฅผ ๋‹ค์‹œ ๋ฐ›์œผ๋ ค๋ฉด AUTO๋ฒ„ํŠผ์„ ์ฒดํฌ
        ํ•ด์ง€ํ•˜๊ณ  ํ”„๋กœ๊ทธ๋žจ์„ ์žฌ ์‹คํ–‰ ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
    
    [๊ณ„์ขŒ๋น„๋ฐ€๋ฒˆํ˜ธ ์„ค์ •]
        ์ž”๊ณ ๋‚˜ ์ฃผ๋ฌธ๊ฐ€๋Šฅ๊ธˆ์•ก,์ˆ˜๋Ÿ‰๋“ฑ ๊ณ„์ขŒ๊ด€๋ จ ์กฐํšŒ๋‚˜ ์ฃผ๋ฌธ์ „์— ๋ฏธ๋ฆฌ ๊ณ„์ขŒ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์„ค์ •ํ•ด์•ผ ์˜ค๋ฅ˜ ์•Œ๋ฆผ์ฐฝ๊ณผ -301 ์˜ค๋ฅ˜์ฝ”๋“œ์—†์ด ์‚ฌ์šฉํ•˜์‹ค์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
        ๊ณ„์ขŒ๋น„๋ฐ€๋ฒˆํ˜ธ ์„ค์ •์€ ๊ณ„์ขŒ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ์ฐฝ์—์„œ๋งŒ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ด ์ž…๋ ฅ์ฐฝ์€ ๋ฉ”๋‰ด๋‚˜ ํ•จ์ˆ˜๋กœ ์ถœ๋ ฅํ•˜์‹ค์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
        ๋ฉ”๋‰ด์ด์šฉ - ๋กœ๊ทธ์ธํ›„ ํŠธ๋ ˆ์ด ๋ฉ”๋‰ด(๋ชจ๋‹ˆํ„ฐ ์˜ค๋ฅธ์ชฝ ํ•˜๋‹จ)์—์„œ "๊ณ„์ขŒ๋น„๋ฐ€๋ฒˆํ˜ธ ์ €์žฅ"์„ ํƒ
        ํ•จ์ˆ˜์ด์šฉ - ๋กœ๊ทธ์ธํ›„ OpenAPI.KOA_Functions(_T("ShowAccountWindow"), _T(""))ํ˜ธ์ถœ
        
    [๋ฒ„์ „ ์ฒ˜๋ฆฌ]
        ๋กœ๊ทธ์ธํ• ๋•Œ ๋ฒ„์ „์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋ฒ„์ „์ฒ˜๋ฆฌ ์•Œ๋ฆผ์ฐฝ์ด ์ถœ๋ ฅ๋ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
        ์ด ์•Œ๋ฆผ์ฐฝ์ด ํ‘œ์‹œ๋˜๋ฉด OpenAPIํ”„๋กœ๊ทธ๋žจ์„ ๋จผ์ € ๋ชจ๋‘ ์ข…๋ฃŒํ•œ๋‹ค์Œ ์•Œ๋ฆผ์ฐฝ์— ์žˆ๋Š” ๋‹ซ๊ธฐ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.
        ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ฒ„์ „์ฒ˜๋ฆฌ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋๋‚˜์ง€ ์•Š์•„์„œ ๋กœ๊ทธ์ธํ• ๋•Œ ๋˜ ๋ฒ„์ „์ฒ˜๋ฆฌ ์•Œ๋ฆผ์ฐฝ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
        ๊ทธ๋ฆฌ๊ณ  ์•Œ๋ฆผ์ฐฝ์ด ํ‘œ์‹œ๋˜์—ˆ์„๋•Œ KOA Studio๋„ ์‹คํ–‰์ค‘์ด๋ฉด ์—ญ์‹œ ํ•จ๊ป˜ ์ข…๋ฃŒ์‹œ์ผœ์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.
        ์ด๋ ‡๊ฒŒ OpenAPIํ”„๋กœ๊ทธ๋žจ์„ ๋ชจ๋‘ ์ข…๋ฃŒํ•˜์‹  ๋‹ค์Œ ์•Œ๋ฆผ์ฐฝ์„ ๋‹ซ์•„์ฃผ์‹œ๋ฉด ๋ฒ„์ „์ฒ˜๋ฆฌ๊ฐ€ ์ž๋™์œผ๋กœ ์ง„ํ–‰๋˜๊ณ  ํ”„๋กœ๊ทธ๋žจ์„ ์žฌ์‹คํ–‰ ํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
    
    [๋ชจ์˜ํˆฌ์ž]
        ๋กœ๊ทธ์ธ ์ฐฝ์—์„œ ๋ชจ์˜ํˆฌ์ž์ ‘์†์„ ์„ ํƒ์„ ์ฒดํฌํ•˜๋ฉด ๋ชจ์˜ํˆฌ์ž๋กœ ์ ‘์†ํ•˜๋ฉฐ ์ด ์ฒดํฌ๋ฅผ ํ’€๋ฉด ์‹ค์„œ๋ฒ„(์šด์˜์„œ๋ฒ„)๋กœ ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค.
        ๋‹จ KOA Studio ํ”„๋กœ๊ทธ๋žจ์€ ํ•ญ์ƒ ๋ชจ์˜ํˆฌ์ž๋กœ๋งŒ ์ ‘์†๊ฐ€๋Šฅํ•ด์„œ ๋ชจ์˜ํˆฌ์ž์ ‘์† ์ฒดํฌ ํ•ด์ง€๊ฐ€ ์•Š๋ฉ๋‹ˆ๋‹ค.
        ๋ชจ์˜ํˆฌ์ž๋กœ ๋กœ๊ทธ์ธํ•˜์‹œ๋ ค๋ฉด ๋‹น์‚ฌ ํ™ˆํŽ˜์ด์ง€์—์„œ ๋ฏธ๋ฆฌ ๋ชจ์˜ํˆฌ์ž ์‚ฌ์šฉ์‹ ์ฒญ์„ ํ•˜์…”์•ผ ํ•˜๋ฉฐ ์ƒ์„ธํ•œ ๋‚ด์šฉ์€ ๋‹น์‚ฌ ํ™ˆํŽ˜์ด์ง€๋ฅผ ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.
        ๋ชจ์˜ํˆฌ์ž ๊ณ„์ขŒ๋ฒˆํ˜ธ, ์ฃผ๋ฌธ ๊ฐ€๋Šฅ์ข…๋ชฉ, ์ˆ˜์ˆ˜๋ฃŒ๋“ฑ ์ •์ฑ…์€ ์‹ค์„œ๋ฒ„์™€ ์ฐจ์ด๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์ƒ์„ธํ•œ ๋‚ด์šฉ์€ ํ™ˆํŽ˜์ด์ง€ ๋‚ด์šฉ์„ ๊ผญ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”.
        
    [์ค‘๋ณต๋กœ๊ทธ์ธ]
        OpenAPI๋Š” ์ค‘๋ณต๋กœ๊ทธ์ธ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋™์ผPC๋‚˜ ๋‹ค๋ฅธPC๋‚˜ ๊ด€๊ณ„์—†์ด ๋งˆ์ง€๋ง‰์— ๋กœ๊ทธ์ธํ•œ ๊ฒฝ์šฐ๋งŒ ์œ ์ง€๋˜๊ณ  ์ด์ „์— ๋กœ๊ทธ์ธํ•œ ํ”„๋กœ๊ทธ๋žจ์€ ์ž๋™์œผ๋กœ ๋กœ๊ทธ์˜คํ”„๋ฉ๋‹ˆ๋‹ค.
        ๋ชจ์˜ํˆฌ์ž์„œ๋ฒ„ ๋กœ๊ทธ์ธ ์—ญ์‹œ ์ค‘๋ณต๋กœ๊ทธ์ธ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    

    ํƒ€์ž… ์ด๋ฆ„ ์„ค๋ช…
    LONG CommConnect() ์ˆ˜๋™ ๋กœ๊ทธ์ธ์„ค์ •์ธ ๊ฒฝ์šฐ ๋กœ๊ทธ์ธ์ฐฝ์ถœ๋ ฅ ํ›„ ๋กœ๊ทธ์ธ ์‹œ๋„ํ•˜๊ฑฐ๋‚˜ ์ž๋™๋กœ๊ทธ์ธ ์„ค์ •์ธ ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ๋กœ๊ทธ์ธ์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
    Void CommTerminate() ํ˜„์žฌ ์ง€์›ํ•˜์ง€์•Š๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
    LONG GetConnectState() ํ˜„์žฌ ๋กœ๊ทธ์ธ ์ƒํƒœ๋ฅผ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.
    LONG GetLoginInfo() ๋กœ๊ทธ์ธ ํ›„์—๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ธ์ž๊ฐ’์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•ญ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    void OnEventConnect() ํ˜„์žฌ ๋กœ๊ทธ์ธ ์ƒํƒœ๋ฅผ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.
    void OnReceiveMsg() ์„œ๋ฒ„ํ†ต์‹ ํ•œ ๋‹ค์Œ ์ˆ˜์‹ ํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.

    • CommConnect()

      ์ˆ˜๋™ ๋กœ๊ทธ์ธ์„ค์ •์ธ ๊ฒฝ์šฐ ๋กœ๊ทธ์ธ์ฐฝ์ถœ๋ ฅ ํ›„ ๋กœ๊ทธ์ธ ์‹œ๋„ํ•˜๊ฑฐ๋‚˜ ์ž๋™๋กœ๊ทธ์ธ ์„ค์ •์ธ ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ๋กœ๊ทธ์ธ์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

      Example python


      ActiveX๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ KHOPENAPI.KHOpenAPICtrl.1๋ฅผ ๋ถˆ๋Ÿฌ์˜จ ๋‹ค์Œ CommConnect()ํ•œ ๋‹ค์Œ

      ์ด๋Ÿฐ์‹์œผ๋กœ ๋กœ๊ทธ์ธ ์ฐฝ์ด ๋œจ๋ฉด ์„ฑ๊ณต์ด๋‹ค.


    • CommTerminate()

      ํ˜„์žฌ ์ง€์›ํ•˜์ง€์•Š๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.


    • GetConnectState()

      ํ˜„์žฌ ๋กœ๊ทธ์ธ ์ƒํƒœ๋ฅผ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.

      Example python

      GetConnectState ๋ฐ˜ํ™˜๊ฐ’(return)

      1 0
      ์—ฐ๊ฒฐ ์—ฐ๊ฒฐ์•ˆ๋จ

    • GetLoginInfo()

      ๋กœ๊ทธ์ธ ํ›„์—๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ธ์ž๊ฐ’์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•ญ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

      Example python

      • GetLoginInfo() ์ธ์ž ์ข…๋ฅ˜

        ์ธ์ž์ด๋ฆ„ ์„ค๋ช…
        ACCOUNT_CNT ๋ณด์œ ๊ณ„์ขŒ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
        ACCLIST ๊ตฌ๋ถ„์ž ';'๋กœ ์—ฐ๊ฒฐ๋œ ๋ณด์œ ๊ณ„์ขŒ ๋ชฉ๋ก์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
        USER_ID ์‚ฌ์šฉ์ž ID๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
        USER_NAME ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
        KEY_BSECGB ํ‚ค๋ณด๋“œ ๋ณด์•ˆ ํ•ด์ง€์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.(0 : ์ •์ƒ, 1 : ํ•ด์ง€)
        FIREW_SECGB ๋ฐฉํ™”๋ฒฝ ์„ค์ •์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.(0 : ๋ฏธ์„ค์ •, 1 : ์„ค์ •, 2 : ํ•ด์ง€)
        GetServerGubun ์ ‘์†์„œ๋ฒ„ ๊ตฌ๋ถ„์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.(1 : ๋ชจ์˜ํˆฌ์ž, ๋‚˜๋จธ์ง€ : ์‹ค์„œ๋ฒ„)

    • OnEventConnect()

      ํ˜„์žฌ ๋กœ๊ทธ์ธ ์ƒํƒœ๋ฅผ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.

      Example python

      nErrCode ์ƒํƒœ
      0 ๋กœ๊ทธ์ธ ์„ฑ๊ณต
      -100 ์‚ฌ์šฉ์ž ์ •๋ณด๊ตํ™˜ ์‹คํŒจ
      -101 ์„œ๋ฒ„์ ‘์† ์‹คํŒจ
      -102 ๋ฒ„์ „์ฒ˜๋ฆฌ ์‹คํŒจ

    • OnReceiveMsg()

      ์„œ๋ฒ„ํ†ต์‹ ํ•œ ๋‹ค์Œ ์ˆ˜์‹ ํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.

      Example python

      ์ด๋ฆ„ ์„ค๋ช…
      sScrNo ํ™”๋ฉด๋ฒˆํ˜ธ
      sRQName ์‚ฌ์šฉ์ž ๊ตฌ๋ถ„๋ช…
      sTrCode TR์ด๋ฆ„
      sMsg ์„œ๋ฒ„์—์„œ ์ „๋‹ฌํ•˜๋Š” ๋ฉ”์„ธ์ง€

  • ์กฐํšŒ์™€ ์‹ค์‹œ๊ฐ„๋ฐ์ดํ„ฐ์ฒ˜๋ฆฌ

    • ์„ค๋ช…


    [์กฐํšŒ์ฒ˜๋ฆฌ(์กฐํšŒ์š”์ฒญ)]
        OpenAPI๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋ฐ์ดํ„ฐ์ค‘์—์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„์— ์š”์ฒญํ•ด์„œ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์„     ๋งํ•˜๋Š”๋ฐ TR(Transaction)๋‹จ์œ„๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
        TR์ด๋ž€ ์„œ๋ฒ„์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„๋•Œ ์ •์˜ํ•œ ์•ฝ์†๋œ ๊ทœ์•ฝ์ด๋ฉฐ ์ž…๋ ฅ๋ถ€๋ถ„(Input)๊ณผ    ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•˜๋Š” ์ถœ๋ ฅ๋ถ€๋ถ„(Output)์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
        ์ž…๋ ฅ๋ถ€๋ถ„์€ ์š”์ฒญํ•˜๋Š” ๋ฐ์ดํ„ฐ์— ๋”ฐ๋ผ ์ž…๋ ฅ๊ฐฏ์ˆ˜(์ž…๋ ฅํ•ญ๋ชฉ)๊ฐ€ ๋‹ฌ๋ผ์ง€๋ฉฐ ์ถœ๋ ฅ๋ถ€๋ถ„์€ ๋ณดํ†ต   ๋ฐ์ดํ„ฐ๊ฐฏ์ˆ˜(์ถœ๋ ฅํ•ญ๋ชฉ)๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.
    
        ์ถœ๋ ฅ๋ถ€๋ถ„์€ ์ถœ๋ ฅํ•ญ๋ชฉ์ด ํ•œ๋ฒˆ์”ฉ๋งŒ ์ „๋‹ฌ๋˜๋Š” ์‹ฑ๊ธ€๋ฐ์ดํ„ฐ์™€ ๋ณต์ˆ˜๋กœ ์ „๋‹ฌ๋˜๋Š” ๋ฉ€ํ‹ฐ๋ฐ์ดํ„ฐ๊ฐ€     ์žˆ๊ณ  TR์— ๋”ฐ๋ผ ์‹ฑ๊ธ€๋ฐ์ดํ„ฐ(๋˜๋Š” ๋ฉ€ํ‹ฐ๋ฐ์ดํ„ฐ)๋งŒ
        ์žˆ๊ฑฐ๋‚˜ ๋‘˜๋‹ค ์žˆ๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
        OpenAPI๊ฐ€ ์ œ๊ณตํ•˜๋Š” TR์€ KOA Studio์˜ TR๋ชฉ๋ก ํƒญ์—์„œ ์ฐพ์•„๋ณผ ์ˆ˜ ์žˆ๊ณ  ๊ฐ TR๋ณ„๋กœ   ์กฐํšŒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
        OPT10070 : ๋‹น์ผ์ฃผ์š”๊ฑฐ๋ž˜์›์š”์ฒญ - ์‹ฑ๊ธ€๋ฐ์ดํ„ฐ
        OPT10081 : ์ฃผ์‹์ผ๋ด‰์ฐจํŠธ์กฐํšŒ์š”์ฒญ - ์‹ฑ๊ธ€ + ๋ฉ€ํ‹ฐ๋ฐ์ดํ„ฐ
    
    [๊ณ„์ขŒ๋น„๋ฐ€๋ฒˆํ˜ธ ์„ค์ •]
        ์ž”๊ณ ๋‚˜ ์ฃผ๋ฌธ๊ฐ€๋Šฅ๊ธˆ์•ก,์ˆ˜๋Ÿ‰๋“ฑ ๊ณ„์ขŒ๊ด€๋ จ ์กฐํšŒ๋‚˜ ์ฃผ๋ฌธ์ „์— ๋ฏธ๋ฆฌ ๊ณ„์ขŒ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์„ค์ •ํ•ด์•ผ  ์˜ค๋ฅ˜ ์•Œ๋ฆผ์ฐฝ๊ณผ -301 ์˜ค๋ฅ˜์ฝ”๋“œ์—†์ด ์‚ฌ์šฉํ•˜์‹ค์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
        ๊ณ„์ขŒ๋น„๋ฐ€๋ฒˆํ˜ธ ์„ค์ •์€ ๊ณ„์ขŒ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ์ฐฝ์—์„œ๋งŒ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ด ์ž…๋ ฅ์ฐฝ์€ ๋ฉ”๋‰ด๋‚˜ ํ•จ์ˆ˜๋กœ  ์ถœ๋ ฅํ•˜์‹ค์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
        ๋ฉ”๋‰ด์ด์šฉ - ๋กœ๊ทธ์ธํ›„ ํŠธ๋ ˆ์ด ๋ฉ”๋‰ด(๋ชจ๋‹ˆํ„ฐ ์˜ค๋ฅธ์ชฝ ํ•˜๋‹จ)์—์„œ "๊ณ„์ขŒ๋น„๋ฐ€๋ฒˆํ˜ธ ์ €์žฅ"์„ ํƒ
        ํ•จ์ˆ˜์ด์šฉ - ๋กœ๊ทธ์ธํ›„ OpenAPI.KOA_Functions(_T("ShowAccountWindow"), _T(""))ํ˜ธ์ถœ
    
    [์กฐํšŒ์ œํ•œ]
        OpenAPI ์กฐํšŒ๋Š” 1์ดˆ๋‹น 5ํšŒ๋กœ ์ œํ•œ๋˜๋ฉฐ ๋ณต์ˆ˜์ข…๋ชฉ ์กฐํšŒ์™€ ์กฐ๊ฑด๊ฒ€์ƒ‰ ์กฐํšŒ ํšŸ์ˆ˜๊ฐ€  ํ•ฉ์‚ฐ๋ฉ๋‹ˆ๋‹ค.
        ๊ฐ€๋ น 1์ดˆ ๋™์•ˆ ์‹œ์„ธ์กฐํšŒ2ํšŒ ๊ด€์‹ฌ์ข…๋ชฉ 1ํšŒ ์กฐ๊ฑด๊ฒ€์ƒ‰ 2ํšŒ ์ˆœ์„œ๋กœ ์กฐํšŒ๋ฅผ ํ–ˆ๋‹ค๋ฉด ๋ชจ๋‘     ํ•ฉ์ณ์„œ 5ํšŒ์ด๋ฏ€๋กœ ๋ชจ๋‘ ์กฐํšŒ์„ฑ๊ณตํ•˜๊ฒ ์ง€๋งŒ 
        ์กฐ๊ฑด๊ฒ€์ƒ‰์„ 3ํšŒ ์กฐํšŒํ•˜๋ฉด ๋งจ ๋งˆ์ง€๋ง‰ ์กฐ๊ฑด๊ฒ€์ƒ‰ ์กฐํšŒ๋Š” ์‹คํŒจํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
    
    [์กฐํšŒ์ œํ•œ ๊ฐ•ํ™”]
        ๊ธฐ์กด 1์ดˆ๋‹น 5ํšŒ ์กฐํšŒ์ œํ•œ์™ธ์— ๋ถ„๋‹น, ์‹œ๊ฐ„๋‹น ์œ ๋™์  ์กฐํšŒ์ œํ•œ์ด 2017๋…„ 4์›” 6์ผ     17:00์ดํ›„ ๋ฐ˜์˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
        (OpenAPI ๊ฒŒ์‹œํŒ ์กฐํšŒ์ œํ•œ ๊ด€๋ จ ๊ณต์ง€๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.)
    
        ์กฐํšŒ์ œํ•œ ๊ฐ•ํ™” ๋ฐœ์ƒ์‹œ ์—๋Ÿฌ์ฝ”๋“œ(-200)๋ฆฌํ„ด๊ณผ ์•Œ๋ฆผ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋ฉฐ ์กฐํšŒ์ œํ•œ ๊ฐ•ํ™”๊ฐ€  ๋ฐœ์ƒํ•œ ํ”„๋กœ๊ทธ๋žจ์€ ๋‹ค์‹œ ๋กœ๊ทธ์ธํ•ด์•ผ ์กฐํšŒ๊ธฐ๋Šฅ์„ ๋‹ค์‹œ ์ด์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ 
        ๊ตฌ์ฒด์ ์ธ ์กฐํšŒ์ œํ•œ ๊ธฐ์ค€์€ ๋น„๊ณต๊ฐœ๋กœ ์šด์˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
    
        ์ด ์กฐํšŒ์ œํ•œ ๊ฐ•ํ™”๋Š” ๊ฑฐ๋ž˜์‹œ๊ฐ„, ๊ฑฐ๋ž˜์ผ์— ๊ด€๊ณ„์—†์ด OpenAPIํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์‹œ ํ•ญ์ƒ    ์ ๊ฒ€ํ•ฉ๋‹ˆ๋‹ค.
        ์ ๊ฒ€๋ฐฉ๋ฒ•์€ CommRqData()ํ•จ์ˆ˜์™€ CommKwRqData()ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ์กฐํšŒํšŸ์ˆ˜๋ฅผ ํ•ฉ์‚ฐํ•˜๋Š”     ๊ฒƒ์œผ๋กœ ์—ฐ์†์กฐํšŒ ์—ญ์‹œ CommRqData()๋ฅผ ์ด์šฉ๋ฏ€๋กœ ํ•ฉ์‚ฐ๋ฉ๋‹ˆ๋‹ค.
        ์ด์™ธ SetRealReg()ํ•จ์ˆ˜ํ˜ธ์ถœ์ด๋‚˜ ๋‚˜๋จธ์ง€ OpenAPIํ•จ์ˆ˜ํ˜ธ์ถœ์€ ์กฐํšŒ์ œํ•œ ๊ฐ•ํ™”์™€ ๊ด€๋ จ์—†์œผ๋ฉฐ     ์‹ค์‹œ๊ฐ„ ์‹œ์„ธ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ๋„ ๊ด€๋ จ์—†์Šต๋‹ˆ๋‹ค.
        ์กฐํšŒํšŸ์ˆ˜ ํ•ฉ์‚ฐ์€ ํ”„๋กœ๊ทธ๋žจ๋ณ„๋กœ ํ•ฉ์‚ฐํ•˜๋ฉฐ ๋กœ๊ทธ์ธID ๋ณ„๋กœ๋Š” ํ•ฉ์‚ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
        ์˜ˆ๋ฅผ๋“ค์–ด ๊ฐ™์€ID๋กœ ๋กœ๊ทธ์ธํ•œ 2๊ฐœ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ฐ๊ฐ 10ํšŒ์”ฉ ์กฐํšŒํ–ˆ๋‹ค๋ฉด ํ”„๋กœ๊ทธ๋žจ๋ณ„ 10ํšŒ    ์กฐํšŒ์ด๋ฉฐ 20์กฐํšŒ๋กœ ํ•ฉ์‚ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    
    [์—ฐ์†์กฐํšŒ]
        TR๋ณ„๋กœ ํ•œ๋ฒˆ์— ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๊ฐฏ์ˆ˜๊ฐ€ ์ •ํ•ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด ๊ฐฏ์ˆ˜๋ณด๋‹ค    ์กฐํšŒ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์„๋•Œ ์—ฐ์†์กฐํšŒ๋กœ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
        ์—ฐ์†์กฐํšŒ๋Š” ๋ชจ๋“  ์กฐํšŒ์ฒ˜๋ฆฌ์— ์ ์šฉ๋˜๋Š” ๊ณตํ†ต์‚ฌํ•ญ์ด๋ฉฐ CommRqData()์—์„œ ์ธ์ž๊ฐ’๋งŒ ๋ฐ”๊ฟ”์„œ     ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
    
        ์•„๋ž˜์ฒ˜๋Ÿผ ์„ค์ •ํ•ด์„œ ๋งจ ์ฒ˜์Œ ์กฐํšŒํ–ˆ์„๋•Œ ์ถ”๊ฐ€๋กœ ์กฐํšŒํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค๋ฉด
        OpenAPI.CommRqData("์ผ๋ณ„๋ฐ์ดํ„ฐ์กฐํšŒ", "OPT10086" , 0, "0001");
        OnReceiveTRData()์ด๋ฒคํŠธ์—์„œ 5๋ฒˆ์งธ ์ธ์ž๊ฐ’(sPrevNext)์— "2"๊ฐ€ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
        ๊ทธ๋ ‡๋‹ค๋ฉด ์—ฐ์†์กฐํšŒํ•˜์‹ค๋•Œ๋Š” CommRqData("์ผ๋ณ„๋ฐ์ดํ„ฐ์กฐํšŒ", "OPT10086" , 2, "0001");   3๋ฒˆ์งธ ์ธ์ž๊ฐ’์„ 2๋กœ ์„ค์ •ํ•ด์„œ ์กฐํšŒํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
        ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
        OpenAPI.CommRqData("์ผ๋ณ„๋ฐ์ดํ„ฐ์กฐํšŒ", "OPT10086" , 0, "0001"); // ์ฒ˜์Œ์กฐํšŒ์‹œ   ํ˜น์€ ์—ฐ์†๋ฐ์ดํ„ฐ๊ฐ€ ์—†์„๋•Œ
        OpenAPI.CommRqData("์ผ๋ณ„๋ฐ์ดํ„ฐ์กฐํšŒ", "OPT10086" , 2, "0001"); // ์—ฐ์†์กฐํšŒ์‹œ
    
    [์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ]
        ์‹œ์„ธ์กฐํšŒ์š”์ฒญ์ด ์„ฑ๊ณตํ•˜๋ฉด ๊ด€๋ จ ์‹ค์‹œ๊ฐ„ ์‹œ์„ธ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„๋•Œ ์„œ๋ฒ„์—์„œ ์ž๋™์œผ๋กœ     OnReceiveRealData()์ด๋ฒคํŠธ๋กœ ์‹ค์‹œ๊ฐ„ ํƒ€์ž…๋‹จ์œ„๋กœ ์ „๋‹ฌํ•ด์ค๋‹ˆ๋‹ค.
        KOA Studio์˜ ์‹ค์‹œ๊ฐ„ ํƒญ์„ ์—ฌ์‹œ๋ฉด Real Type๊ณผ "์ฃผ์‹์‹œ์„ธ"์—์„œ "์ข…๋ชฉํ”„๋กœ๊ทธ๋žจ๋งค๋งค"๊นŒ์ง€     ๋‚˜์—ด๋œ ์ด๋ฆ„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
        ์ด๋“ค ํ•˜๋‚˜ํ•˜๋‚˜๋ฅผ ์‹ค์‹œ๊ฐ„ ํƒ€์ž…์ด๋ผ๊ณ  ํ•˜๋ฉฐ ๊ด€๋ จ์žˆ๋Š” FID(์ˆซ์ž)์™€ ์ด๋ฆ„(์‹ค์‹œ๊ฐ„ ํ•ญ๋ชฉ)๋ฅผ   ์ž„์˜๋กœ ๋ชจ์•„๋†“์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
        ์˜ˆ๋ฅผ๋“ค์–ด ์‹ค์‹œ๊ฐ„ ํƒ€์ž… "์ฃผ์‹์‹œ์„ธ"๋Š” FID 10 ํ˜„์žฌ๊ฐ€ ~ FID 568 ํ•˜ํ•œ๊ฐ€๋ฐœ์ƒ์‹œ๊ฐ„๊นŒ์ง€ 19๊ฐœ     FID๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ ํ•œ๊บผ๋ฒˆ์— ์ „๋‹ฌ๋˜๋Š”๊ฒƒ์ž…๋‹ˆ๋‹ค.
        ๋˜ ์‹ค์‹œ๊ฐ„ ํƒ€์ž… "์ฃผ์‹์ฒด๊ฒฐ"๋Š” FID 20 ์ฒด๊ฒฐ์‹œ๊ฐ„ ~ FID 1313 Extra Item๊นŒ์ง€ 35๊ฐœ FID๊ฐ€  ํ•œ๋ฒˆ์— ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
    
    [์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ - ์ฃผ์˜์‚ฌํ•ญ]
        ์‹ค์‹œ๊ฐ„ ํƒ€์ž… "์ฃผ๋ฌธ์ฒด๊ฒฐ", "์ž”๊ณ ", "ํŒŒ์ƒ์ž”๊ณ "๋Š” ์ฃผ๋ฌธ๊ด€๋ จ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ    ๋•Œ๋ฌธ์— ์‹œ์„ธ์กฐํšŒํ•œ ๋’ค๋‚˜ SetRealReg()ํ•จ์ˆ˜๋กœ ๋“ฑ๋กํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
        ์ด ์‹ค์‹œ๊ฐ„ ํƒ€์ž…์€ ์ฃผ๋ฌธ์„ ํ•ด์•ผ ๋ฐœ์ƒํ•˜๋ฉฐ ์ฃผ๋ฌธ์ „์šฉ OnReceiveChejanData()์ด๋ฒคํŠธ๋กœ  ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
    
        ์•„๋ž˜ ์‹ค์‹œ๊ฐ„ ํƒ€์ž…์€ ์‹œ์Šคํ…œ ๋‚ด๋ถ€์šฉ์œผ๋กœ ์‚ฌ์šฉํ• ์ˆ˜์—†๋Š” ์‹ค์‹œ๊ฐ„ ํƒ€์ž…์ž…๋‹ˆ๋‹ค.
        1. ์ž„์˜์—ฐ์žฅ์ •๋ณด
        2. ์‹œ๊ฐ„์™ธ์ข…๋ชฉ์ •๋ณด
        3. ์ฃผ์‹๊ฑฐ๋ž˜์›
        4. ์ˆœ๊ฐ„์ฒด๊ฒฐ๋Ÿ‰
        5. ์„ ๋ฌผ์˜ต์…˜ํ•ฉ๊ณ„
        6. ํˆฌ์ž์ž๋ณ„๋งค๋งค
    
    [์ฐธ๊ณ  SetRealReg() ํ•จ์ˆ˜]
        SetRealReg()ํ•จ์ˆ˜๋กœ๋„ ์‹ค์‹œ๊ฐ„ ์‹œ์„ธ๋ฐ์ดํ„ฐ ์ˆ˜์‹ ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ์‹œ์„ธ์กฐํšŒ์š”์ฒญ๊ณผ ๋ฐฉ๋ฒ•๋งŒ  ๋‹ค๋ฅผ๋ฟ ์ˆ˜์‹ ํ•˜๋Š” ์‹ค์‹œ๊ฐ„ ์‹œ์„ธ๋ฐ์ดํ„ฐ ๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค
        ์ด ํ•จ์ˆ˜๋Š” ์กฐ๊ฑด๊ฒ€์ƒ‰ ํ•ญ๋ชฉ์—์„œ ์‚ฌ์šฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
    

    ํƒ€์ž… ์ด๋ฆ„ ์„ค๋ช…
    LONG CommRqData() ์กฐํšŒ์š”์ฒญํ•จ์ˆ˜์ด๋ฉฐ ๋นˆ๋ฒˆํ•˜๊ฒŒ ์กฐํšŒ์š”์ฒญํ•˜๋ฉด ์‹œ์„ธ๊ณผ๋ถ€ํ•˜ ์—๋Ÿฌ๊ฐ’์œผ๋กœ -200์ด ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
    void SetInputValue() ์กฐํšŒ์š”์ฒญ์‹œ TR์˜ Input๊ฐ’์„ ์ง€์ •ํ•˜๋Š” ํ•จ์ˆ˜์ด๋ฉฐ ์กฐํšŒ TR ์ž…๋ ฅ๊ฐ’์ด ๋งŽ์€ ๊ฒฝ์šฐ ์ด ํ•จ์ˆ˜๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.
    BSTR CommGetData() ์ผ๋ถ€ TR์—์„œ ์‚ฌ์šฉ์ƒ ์ œ์•ฝ์ด ์žˆ์Œ๋ฏ€๋กœ ์ด ํ•จ์ˆ˜ ๋Œ€์‹  GetCommData()ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.
    void DisconnectRealData() ํ™”๋ฉด๋ฒˆํ˜ธ ์„ค์ •ํ•œ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ด์ง€ํ•ฉ๋‹ˆ๋‹ค.
    LONG GetRepeatCnt() ์กฐํšŒ์ˆ˜์‹ ํ•œ ๋ฉ€ํ‹ฐ๋ฐ์ดํ„ฐ์˜ ๊ฐฏ์ˆ˜(๋ฐ˜๋ณต)์ˆ˜๋ฅผ ์–ป์„์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    LONG CommKwRqData() ํ•œ๋ฒˆ์— 100์ข…๋ชฉ์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋Š” ๊ด€์‹ฌ์ข…๋ชฉ ์กฐํšŒํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
    BSTR GetCommData() OnReceiveTRData()์ด๋ฒคํŠธ๊ฐ€ ํ˜ธ์ถœ๋ ๋•Œ ์กฐํšŒ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์–ด์˜ค๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
    BSTR GetCommRealData() OnReceiveRealData()์ด๋ฒคํŠธ๊ฐ€ ํ˜ธ์ถœ๋ ๋•Œ ์‹ค์‹œ๊ฐ„๋ฐ์ดํ„ฐ๋ฅผ ์–ป์–ด์˜ค๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
    VARIANT GetCommDataEx() ์กฐํšŒ ์ˆ˜์‹ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๊ฐ€ ํฐ ์ฐจํŠธ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ๋ฒˆ์— ๊ฐ€์ ธ์˜ฌ ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“  ์ „์šฉํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
    void OnReceiveTrData() ์กฐํšŒ์š”์ฒญ ์‘๋‹ต์„ ๋ฐ›๊ฑฐ๋‚˜ ์กฐํšŒ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ–ˆ์„๋•Œ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.
    void OnReceiveRealData() ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ˆ˜์‹ ํ• ๋•Œ๋งˆ๋‹ค ํ˜ธ์ถœ๋˜๋ฉฐ SetRealReg()ํ•จ์ˆ˜๋กœ ๋“ฑ๋กํ•œ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋„ ์ด ์ด๋ฒคํŠธ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
    void OnReceiveMsg() ์„œ๋ฒ„ํ†ต์‹  ํ›„ ์ˆ˜์‹ ํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.

    • CommRqData()

      ์กฐํšŒ์š”์ฒญํ•จ์ˆ˜์ด๋ฉฐ ๋นˆ๋ฒˆํ•˜๊ฒŒ ์กฐํšŒ์š”์ฒญํ•˜๋ฉด ์‹œ์„ธ๊ณผ๋ถ€ํ•˜ ์—๋Ÿฌ๊ฐ’์œผ๋กœ -200์ด ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.

      Example python

    • SetInputValue()

      ์กฐํšŒ์š”์ฒญ์‹œ TR์˜ Input๊ฐ’์„ ์ง€์ •ํ•˜๋Š” ํ•จ์ˆ˜์ด๋ฉฐ ์กฐํšŒ TR ์ž…๋ ฅ๊ฐ’์ด ๋งŽ์€ ๊ฒฝ์šฐ ์ด ํ•จ์ˆ˜๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.


    • CommGetData()

      ์ผ๋ถ€ TR์—์„œ ์‚ฌ์šฉ์ƒ ์ œ์•ฝ์ด ์žˆ์Œ๋ฏ€๋กœ ์ด ํ•จ์ˆ˜ ๋Œ€์‹  GetCommData()ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.


    • DisconnectRealData()

      ํ™”๋ฉด๋ฒˆํ˜ธ ์„ค์ •ํ•œ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ด์ง€ํ•ฉ๋‹ˆ๋‹ค.


    • GetRepeatCnt()

      ์กฐํšŒ์ˆ˜์‹ ํ•œ ๋ฉ€ํ‹ฐ๋ฐ์ดํ„ฐ์˜ ๊ฐฏ์ˆ˜(๋ฐ˜๋ณต)์ˆ˜๋ฅผ ์–ป์„์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด ์ฐจํŠธ์กฐํšŒ๋Š” ํ•œ๋ฒˆ์— ์ตœ๋Œ€ 900๊ฐœ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๋ ‡๊ฒŒ ์ˆ˜์‹ ํ•œ ๋ฐ์ดํ„ฐ๊ฐฏ์ˆ˜๋ฅผ ์–ป์„๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ๋ฐ˜๋“œ์‹œ OnReceiveTRData()์ด๋ฒคํŠธ๊ฐ€ ํ˜ธ์ถœ๋ ๋•Œ ๊ทธ ์•ˆ์—์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


    • CommKwRqData()

      ํ•œ๋ฒˆ์— 100์ข…๋ชฉ์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋Š” ๊ด€์‹ฌ์ข…๋ชฉ ์กฐํšŒํ•จ์ˆ˜์ธ๋ฐ ์˜์›…๋ฌธHTS [0130] ๊ด€์‹ฌ์ข…๋ชฉ ํ™”๋ฉด๊ณผ๋Š” ์ด๋ฆ„๋งŒ ๊ฐ™์€๋ฟ ์ „ํ˜€๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. ํ•จ์ˆ˜์ธ์ž๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ข…๋ชฉ์ฝ”๋“œ ๋ฆฌ์ŠคํŠธ๋Š” ์กฐํšŒํ•˜๋ ค๋Š” ์ข…๋ชฉ์ฝ”๋“œ ์‚ฌ์ด์— ๊ตฌ๋ถ„์ž';'๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ๋งŒ๋“ค๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์กฐํšŒ๋ฐ์ดํ„ฐ๋Š” ๊ด€์‹ฌ์ข…๋ชฉ์ •๋ณด์š”์ฒญ(OPTKWFID) Output์„ ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด TR์€ CommKwRqData()ํ•จ์ˆ˜ ์ „์šฉ์œผ๋กœ ์ž„์˜๋กœ ์‚ฌ์šฉํ•˜์‹œ๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.


    • GetCommData()

      OnReceiveTRData()์ด๋ฒคํŠธ๊ฐ€ ํ˜ธ์ถœ๋ ๋•Œ ์กฐํšŒ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์–ด์˜ค๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ๋ฐ˜๋“œ์‹œ OnReceiveTRData()์ด๋ฒคํŠธ๊ฐ€ ํ˜ธ์ถœ๋ ๋•Œ ๊ทธ ์•ˆ์—์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


    • GetCommRealData()

      OnReceiveRealData()์ด๋ฒคํŠธ๊ฐ€ ํ˜ธ์ถœ๋ ๋•Œ ์‹ค์‹œ๊ฐ„๋ฐ์ดํ„ฐ๋ฅผ ์–ป์–ด์˜ค๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ๋ฐ˜๋“œ์‹œ OnReceiveRealData()์ด๋ฒคํŠธ๊ฐ€ ํ˜ธ์ถœ๋ ๋•Œ ๊ทธ ์•ˆ์—์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


    • GetCommDataEx()

      ์กฐํšŒ ์ˆ˜์‹ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๊ฐ€ ํฐ ์ฐจํŠธ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ๋ฒˆ์— ๊ฐ€์ ธ์˜ฌ ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“  ์ „์šฉํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.


    • OnReceiveTrData()

      ์กฐํšŒ์š”์ฒญ ์‘๋‹ต์„ ๋ฐ›๊ฑฐ๋‚˜ ์กฐํšŒ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ–ˆ์„๋•Œ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค. ์กฐํšŒ๋ฐ์ดํ„ฐ๋Š” ์ด ์ด๋ฒคํŠธ๋‚ด๋ถ€์—์„œ GetCommData()ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ์–ป์–ด์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


    • OnReceiveRealData()

      ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ˆ˜์‹ ํ• ๋•Œ๋งˆ๋‹ค ํ˜ธ์ถœ๋˜๋ฉฐ SetRealReg()ํ•จ์ˆ˜๋กœ ๋“ฑ๋กํ•œ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋„ ์ด ์ด๋ฒคํŠธ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. GetCommRealData()ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์„์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


    • OnReceiveMsg()

      ์„œ๋ฒ„ํ†ต์‹  ํ›„ ์ˆ˜์‹ ํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ์•Œ๋ ค์ค๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€์—๋Š” 6์ž๋ฆฌ ์ฝ”๋“œ๋ฒˆํ˜ธ๊ฐ€ ํฌํ•จ๋˜๋Š”๋ฐ ์ด ์ฝ”๋“œ๋ฒˆํ˜ธ๋Š” ํ†ต๋ณด์—†์ด ์ˆ˜์‹œ๋กœ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ฃผ๋ฌธ์ด๋‚˜ ์˜ค๋ฅ˜๊ด€๋ จ์ฒ˜๋ฆฌ๋ฅผ ์ด ์ฝ”๋“œ๋ฒˆํ˜ธ๋กœ ๋ถ„๋ฅ˜ํ•˜์‹œ๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค.

      Example python

      ์ด๋ฆ„ ์„ค๋ช…
      sScrNo ํ™”๋ฉด๋ฒˆํ˜ธ
      sRQName ์‚ฌ์šฉ์ž ๊ตฌ๋ถ„๋ช…
      sTrCode TR์ด๋ฆ„
      sMsg ์„œ๋ฒ„์—์„œ ์ „๋‹ฌํ•˜๋Š” ๋ฉ”์„ธ์ง€


  • ์ฃผ๋ฌธ๊ณผ ์ž”๊ณ ์ฒ˜๋ฆฌ

    • ์„ค๋ช…


    [๊ฐœ์š”]
        OpenAPI๋ฅผ ์ด์šฉํ•˜๋ฉด ๊ตญ๋‚ด์ฃผ์‹๊ณผ ์ฝ”์Šคํ”ผ200 ์ง€์ˆ˜์„ ๋ฌผ/์˜ต์…˜, ์ฃผ์‹์„ ๋ฌผ์„ ๊ฑฐ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
        ์ƒํ’ˆ๋ณ„๋กœ ์ „์šฉ ์ฃผ๋ฌธํ•จ์ˆ˜๊ฐ€ ์žˆ์œผ๋ฉฐ ๊ตญ๋‚ด์ฃผ์‹ ์ฃผ๋ฌธ์˜ ๊ฒฝ์šฐ SendOrderCredit()ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ๋Œ€์ฃผ๋ฅผ ์ œ์™ธํ•œ ์‹ ์šฉ์ฃผ๋ฌธ๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
        ์ •์ •์ฃผ๋ฌธ์€ ์›์ฃผ๋ฌธ์— ๋Œ€ํ•œ ์ˆ˜๋Ÿ‰์ •์ •๊ณผ ๊ฐ€๊ฒฉ์ •์ •๋งŒ ๊ฐ€๋Šฅํ•˜๋ฉฐ ๊ฑฐ๋ž˜๊ตฌ๋ถ„์„ ๋ณ€๊ฒฝํ•˜๋Š” ์ •์ •์ฃผ๋ฌธ์€ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
        
    [๊ณ„์ขŒ๋น„๋ฐ€๋ฒˆํ˜ธ ์„ค์ •]
        ์ž”๊ณ ๋‚˜ ์ฃผ๋ฌธ๊ฐ€๋Šฅ๊ธˆ์•ก,์ˆ˜๋Ÿ‰๋“ฑ ๊ณ„์ขŒ๊ด€๋ จ ์กฐํšŒ๋‚˜ ์ฃผ๋ฌธ์ „์— ๋ฏธ๋ฆฌ ๊ณ„์ขŒ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์„ค์ •ํ•ด์•ผ ์˜ค๋ฅ˜ ์•Œ๋ฆผ์ฐฝ๊ณผ -301 ์˜ค๋ฅ˜์ฝ”๋“œ์—†์ด ์‚ฌ์šฉํ•˜์‹ค์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
        ๊ณ„์ขŒ๋น„๋ฐ€๋ฒˆํ˜ธ ์„ค์ •์€ ๊ณ„์ขŒ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ์ฐฝ์—์„œ๋งŒ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ด ์ž…๋ ฅ์ฐฝ์€ ๋ฉ”๋‰ด๋‚˜ ํ•จ์ˆ˜๋กœ ์ถœ๋ ฅํ•˜์‹ค์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
        ๋ฉ”๋‰ด์ด์šฉ - ๋กœ๊ทธ์ธํ›„ ํŠธ๋ ˆ์ด ๋ฉ”๋‰ด(๋ชจ๋‹ˆํ„ฐ ์˜ค๋ฅธ์ชฝ ํ•˜๋‹จ)์—์„œ "๊ณ„์ขŒ๋น„๋ฐ€๋ฒˆํ˜ธ ์ €์žฅ"์„ ํƒ
        ํ•จ์ˆ˜์ด์šฉ - ๋กœ๊ทธ์ธํ›„ OpenAPI.KOA_Functions(_T("ShowAccountWindow"), _T(""))ํ˜ธ์ถœ
        
    [์ฃผ๋ฌธ]
        ์ฃผ๋ฌธ์„ ๋‚ด๋ฉด OnReceiveTRData(), OnReceiveMsg(), OnReceiveChejan()์ด๋ฒคํŠธ๊ฐ€ ์ฐจ๋ก€๋กœ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.
        ์ฃผ๋ฌธ์„ฑ๊ณต ํ™•์ธ
        OnReceiveTRData()์ด๋ฒคํŠธ๋Š” ์ฃผ๋กœ ์กฐํšŒ์š”์ฒญํ›„ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜์ด์ง€๋งŒ ์ฃผ๋ฌธ์‹œ์—๋„ ํ˜ธ์ถœ๋˜๋Š”๋ฐ ์ด ์ด๋ฒคํŠธ๋‚ด๋ถ€์—์„œ ์ฃผ๋ฌธ๋ฒˆํ˜ธ๋ฅผ
        ์–ป์–ด์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๊ทธ๋Ÿฐ๋ฐ ๋งŒ์ผ ์ฃผ๋ฌธ์ด ์‹คํŒจํ•˜๊ฒŒ ๋˜๋ฉด ์ฃผ๋ฌธ๋ฒˆํ˜ธ๋Š” ๊ณต๋ฐฑ("")์œผ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
        ๊ฐ ์ฃผ๋ฌธํ•จ์ˆ˜์˜ ๋ฆฌํ„ด๊ฐ’์ด 0(์„ฑ๊ณต)์ด์—ฌ๋„ ์žฅ ๊ฐœ์‹œ์ „ ์ฃผ๋ฌธ, ์‹œ์žฅ๊ฐ€ ์ฃผ๋ฌธ์ฃผ๋ฌธ๊ฐ€๊ฒฉ์ž…๋ ฅ, ํ˜ธ๊ฐ€๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ์ฃผ๋ฌธ๋“ฑ ๋‹ค์–‘ํ•œ ์›์ธ์œผ๋กœ ์ฃผ๋ฌธ์€ ์‹คํŒจํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
        
        ๋ณด์œ ํ•˜๊ณ  ์žˆ๋Š” ํ˜„๊ธˆ์„ ๋„˜๋Š” ์ˆ˜๋Ÿ‰์œผ๋กœ ์ฃผ๋ฌธํ•œ ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ๋ฏธ์ˆ˜๋กœ ๊ณ„์‚ฐ๋˜๋ฏ€๋กœ [0398] ๊ณ„์ขŒ์ฆ๊ฑฐ๊ธˆ๋ฅ  ๋ณ€๊ฒฝ๋“ฑ๋ก ํ™”๋ฉด์„ ํ†ตํ•ด 
        100%ํ˜„๊ธˆ ์ฃผ๋ฌธ๋งŒ ๊ฐ€๋Šฅํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
        ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ์—๋„ ์ ์€ ๋น„์šฉ์— ๋Œ€ํ•ด์„  ๋น„์ˆ˜๋ฐœ์ƒ๊ฐ€๋Šฅ ํ•˜๋ฉฐ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•ด๋‹นํ™”๋ฉด ์„ค๋ช…์„ ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.
        ๋ฏธ์ˆ˜๊ฑฐ๋ž˜๋Š” ์ฃผ๋ฌธ๋งค์ฒด๋ณ„๋กœ ์„ค์ • ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ณ„์ขŒ๋ณ„๋กœ ์„ค์ •๊ฐ€๋Šฅํ•œ ๊ฒƒ์ด๋ผ์„œ OpenAPI์—์„œ๋„ ๊ฐ€๋Šฅํ•œ ์  ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค.
    
        ๋ชจ์˜ํˆฌ์ž์—์„œ๋Š” ์‹ค์„œ๋ฒ„์™€ ๋‹ค๋ฅธ ์ „์šฉ ๊ณ„์ขŒ๋ฒˆํ˜ธ๋ฅผ ์จ์•ผํ•˜๋ฉฐ ์ฃผ๋ฌธ๊ฐ€๋Šฅ, ์ฃผ๋ฌธ์ œํ•œ ์ข…๋ชฉ์ด ์žˆ๊ณ , ์ง€์ •๊ฐ€, ์‹œ์žฅ๊ฐ€ ์ฃผ๋ฌธ๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
        ์ด์™ธ ๋ชจ์˜ํˆฌ์ž ์šด์˜๋ฐฉ์นจ์€ ๋‹น์‚ฌ ํ™ˆํŽ˜์ด์ง€์—์„œ ๊ด€๋ จ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.
    
    [์ฃผ๋ฌธ์ œํ•œ]
        ๊ตญ๋‚ด ์ฃผ์‹์ฃผ๋ฌธ๊ณผ ๊ตญ๋‚ด ์ฃผ์‹์‹ ์šฉ์ฃผ๋ฌธ, ์„ ๋ฌผ์˜ต์…˜์ฃผ๋ฌธ์€ ๋ชจ๋‘ 1์ดˆ๋‹น 5ํšŒ๋กœ ์ œํ•œ ๋ฉ๋‹ˆ๋‹ค.
        
    [์ฃผ๋ฌธ์ฒด๊ฒฐ, ์ž”๊ณ ]
        ์ฃผ๋ฌธ๊ณผ ๊ด€๋ จํ•œ ์ด๋ฒคํŠธ๋Š” OnReceiveMsg(), OnReceiveTRData(), OnReceiveChejan()์ด๋ ‡๊ฒŒ 3๊ฐœ์ž…๋‹ˆ๋‹ค.
        OnReceiveMsg()์ด๋ฒคํŠธ๋Š” ์ฃผ๋ฌธ์„ฑ๊ณต, ์‹คํŒจ ๋ฉ”์‹œ์ง€๋ฅผ ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ์ „๋‹ฌํ•˜๋ฏ€๋กœ ์ƒ์„ธํ•œ ๋‚ด์šฉ์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
        OnReceiveTRData()์ด๋ฒคํŠธ๋Š” ์ฃผ๋ฌธํ›„ ํ˜ธ์ถœ๋˜๋ฉฐ ์ฃผ๋ฌธ๋ฒˆํ˜ธ๋ฅผ ์–ป์„์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๋งŒ์•ฝ ์ด ์ด๋ฒคํŠธ์—์„œ ์ฃผ๋ฌธ๋ฒˆํ˜ธ๋ฅผ ์–ป์„์ˆ˜ ์—†์œผ๋ฉด
        ํ•ด๋‹น ์ฃผ๋ฌธ์€ ์‹คํŒจํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
        ๋งˆ์ง€๋ง‰์œผ๋กœ ์†Œ๊ฐœํ•  OnReceiveChejan()์ด๋ฒคํŠธ๋Š” ์ฃผ๋ฌธ์ ‘์ˆ˜, ์ฒด๊ฒฐ, ์ž”๊ณ ๋ฐœ์ƒ์‹œ ํ˜ธ์ถœ๋˜๋ฉฐ ์ด ์ด๋ฒคํŠธ๋ฅผ ํ†ตํ•ด ๋Œ€๋ถ€๋ถ„์˜ ์ฃผ๋ฌธ๊ด€๋ จ
        ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
        
        ์ฃผ๋ฌธ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์€ ์ฃผ๋ฌธ์ ‘์ˆ˜, ์ฃผ๋ฌธ์ฒด๊ฒฐ, ์ž”๊ณ ์ˆ˜์‹  ์ˆœ์„œ๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.์ด๋•Œ ์ฃผ๋ฌธ๋ฒˆํ˜ธ๋Š” ์ฒ˜์Œ ์ ‘์ˆ˜?์„๋•Œ ํ•œ๋ฒˆ ๋ถ€์—ฌ๋˜์ง€๋งŒ 
        ์ฒด๊ฒฐ๋ฒˆํ˜ธ๋Š” ์ฒด๊ฒฐ๋ ๋•Œ ๋งˆ๋‹ค ์ฒด๋ฒˆ๋˜์„œ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ์ด์ƒ์˜ ๊ณผ์ •์„ ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
        
        ์ฃผ๋ฌธ ---> ์ ‘์ˆ˜ ---> ์ฒด๊ฒฐ1 ---> ์ž”๊ณ 1  ---> ์ฒด๊ฒฐ2  ---> ์ž”๊ณ 2... ---> ์ฒด๊ฒฐn  ---> ์ž”๊ณ n
        
        ์ฃผ๋ฌธ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ OnReceiveChejanData()์ด๋ฒคํŠธ๊ฐ€ ํ˜ธ์ถœ๋ ๋•Œ ์ „๋‹ฌ๋˜๋Š” sGubun๊ฐ’, sFidList๊ฐ’์„ ์ด์šฉํ•˜๋Š”๋ฐ 
        sGubun๊ฐ’์€ ์ ‘์ˆ˜์™€ ์ฒด๊ฒฐ์‹œ '0'๊ฐ’, ์ž”๊ณ ์ „๋‹ฌ์€ '1'๊ฐ’์„ ๊ฐ€์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฐ’์— ๋”ฐ๋ผ ';'๋กœ ์—ฐ๊ฒฐ๋œ sFidList๊ฐ’๋„ ๋‹ฌ๋ผ์ง€๋Š”๋ฐ ์ด ๊ฐ’์„
        ํŒŒ์‹ฑํ•ด์„œ GetChejanData()ํ•จ์ˆ˜ํ˜ธ์ถœ์‹œ ์ธ์ž๋กœ ์‚ฌ์šฉํ•˜์‹œ๋ฉด ๋ณด๋‹ค ์ƒ์„ธํ•œ ๋‚ด์šฉ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
        
        [OnReceiveChejan()์ด๋ฒคํŠธ๋กœ ์ „๋‹ฌ๋˜๋Š” FID๋ชฉ๋ก์ •๋ฆฌ]
        
        "9201" : "๊ณ„์ขŒ๋ฒˆํ˜ธ" 
        "9203" : "์ฃผ๋ฌธ๋ฒˆํ˜ธ" 
        "9001" : "์ข…๋ชฉ์ฝ”๋“œ" 
        "913" : "์ฃผ๋ฌธ์ƒํƒœ" 
        "302" : "์ข…๋ชฉ๋ช…" 
        "900" : "์ฃผ๋ฌธ์ˆ˜๋Ÿ‰" 
        "901" : "์ฃผ๋ฌธ๊ฐ€๊ฒฉ" 
        "902" : "๋ฏธ์ฒด๊ฒฐ์ˆ˜๋Ÿ‰" 
        "903" : "์ฒด๊ฒฐ๋ˆ„๊ณ„๊ธˆ์•ก" 
        "904" : "์›์ฃผ๋ฌธ๋ฒˆํ˜ธ" 
        "905" : "์ฃผ๋ฌธ๊ตฌ๋ถ„" 
        "906" : "๋งค๋งค๊ตฌ๋ถ„" 
        "907" : "๋งค๋„์ˆ˜๊ตฌ๋ถ„" 
        "908" : "์ฃผ๋ฌธ/์ฒด๊ฒฐ์‹œ๊ฐ„" 
        "909" : "์ฒด๊ฒฐ๋ฒˆํ˜ธ" 
        "910" : "์ฒด๊ฒฐ๊ฐ€" 
        "911" : "์ฒด๊ฒฐ๋Ÿ‰" 
        "10" : "ํ˜„์žฌ๊ฐ€" 
        "27" : "(์ตœ์šฐ์„ )๋งค๋„ํ˜ธ๊ฐ€" 
        "28" : "(์ตœ์šฐ์„ )๋งค์ˆ˜ํ˜ธ๊ฐ€" 
        "914" : "๋‹จ์œ„์ฒด๊ฒฐ๊ฐ€" 
        "915" : "๋‹จ์œ„์ฒด๊ฒฐ๋Ÿ‰" 
        "919" : "๊ฑฐ๋ถ€์‚ฌ์œ " 
        "920" : "ํ™”๋ฉด๋ฒˆํ˜ธ" 
        "917" : "์‹ ์šฉ๊ตฌ๋ถ„" 
        "916" : "๋Œ€์ถœ์ผ" 
        "930" : "๋ณด์œ ์ˆ˜๋Ÿ‰" 
        "931" : "๋งค์ž…๋‹จ๊ฐ€" 
        "932" : "์ด๋งค์ž…๊ฐ€" 
        "933" : "์ฃผ๋ฌธ๊ฐ€๋Šฅ์ˆ˜๋Ÿ‰" 
        "945" : "๋‹น์ผ์ˆœ๋งค์ˆ˜์ˆ˜๋Ÿ‰" 
        "946" : "๋งค๋„/๋งค์ˆ˜๊ตฌ๋ถ„" 
        "950" : "๋‹น์ผ์ด๋งค๋„์†์ผ" 
        "951" : "์˜ˆ์ˆ˜๊ธˆ" 
        "307" : "๊ธฐ์ค€๊ฐ€" 
        "8019" : "์†์ต์œจ" 
        "957" : "์‹ ์šฉ๊ธˆ์•ก" 
        "958" : "์‹ ์šฉ์ด์ž" 
        "918" : "๋งŒ๊ธฐ์ผ" 
        "990" : "๋‹น์ผ์‹คํ˜„์†์ต(์œ ๊ฐ€)" 
        "991" : "๋‹น์ผ์‹คํ˜„์†์ต๋ฅ (์œ ๊ฐ€)" 
        "992" : "๋‹น์ผ์‹คํ˜„์†์ต(์‹ ์šฉ)" 
        "993" : "๋‹น์ผ์‹คํ˜„์†์ต๋ฅ (์‹ ์šฉ)" 
        "397" : "ํŒŒ์ƒ์ƒํ’ˆ๊ฑฐ๋ž˜๋‹จ์œ„" 
        "305" : "์ƒํ•œ๊ฐ€" 
        "306" : "ํ•˜ํ•œ๊ฐ€"
    
    ํƒ€์ž… ์ด๋ฆ„ ์„ค๋ช…
    LONG SendOrder() 9๊ฐœ ์ธ์ž๊ฐ’์„ ๊ฐ€์ง„ ๊ตญ๋‚ด ์ฃผ์‹์ฃผ๋ฌธ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
    LONG SendOrderFO() ์ฝ”์Šคํ”ผ์ง€์ˆ˜200 ์„ ๋ฌผ์˜ต์…˜, ์ฃผ์‹์„ ๋ฌผ ์ „์šฉ ์ฃผ๋ฌธํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
    LONG SendOrderCredit() ๊ตญ๋‚ด์ฃผ์‹ ์‹ ์šฉ์ฃผ๋ฌธ ์ „์šฉํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋Œ€์ฃผ๊ฑฐ๋ž˜๋Š” ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    BSTR GetChejanData() OnReceiveChejan()์ด๋ฒคํŠธ๊ฐ€ ํ˜ธ์ถœ๋ ๋•Œ ์ฒด๊ฒฐ์ •๋ณด๋‚˜ ์ž”๊ณ ์ •๋ณด๋ฅผ ์–ป์–ด์˜ค๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
    void OnReceiveChejanData() ์ฃผ๋ฌธ์š”์ฒญํ›„ ์ฃผ๋ฌธ์ ‘์ˆ˜, ์ฒด๊ฒฐํ†ต๋ณด, ์ž”๊ณ ํ†ต๋ณด๋ฅผ ์ˆ˜์‹ ํ•  ๋•Œ ๋งˆ๋‹ค ํ˜ธ์ถœ๋˜๋ฉฐ GetChejanData()ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ์ƒ์„ธํ•œ ์ •๋ณด๋ฅผ ์–ป์„์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    void OnReceiveMsg() ์„œ๋ฒ„ํ†ต์‹  ํ›„ ์ˆ˜์‹ ํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.
    void OnReceiveTrData() ์กฐํšŒ์š”์ฒญ ์‘๋‹ต์„ ๋ฐ›๊ฑฐ๋‚˜ ์กฐํšŒ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ–ˆ์„๋•Œ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.

    • SendOrder()

      9๊ฐœ ์ธ์ž๊ฐ’์„ ๊ฐ€์ง„ ๊ตญ๋‚ด ์ฃผ์‹์ฃผ๋ฌธ ํ•จ์ˆ˜์ด๋ฉฐ ๋ฆฌํ„ด๊ฐ’์ด 0์ด๋ฉด ์„ฑ๊ณต์ด๋ฉฐ ๋‚˜๋จธ์ง€๋Š” ์—๋Ÿฌ์ž…๋‹ˆ๋‹ค. 1์ดˆ์— 5ํšŒ๋งŒ ์ฃผ๋ฌธ๊ฐ€๋Šฅํ•˜๋ฉฐ ๊ทธ ์ด์ƒ ์ฃผ๋ฌธ์š”์ฒญํ•˜๋ฉด ์—๋Ÿฌ -308์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.

      Example python

      • SeneOrder ํ•จ์ˆ˜ ์ธ์ž

        SendOrder(
            BSTR sRQName, // ์‚ฌ์šฉ์ž ๊ตฌ๋ถ„๋ช…
            BSTR sScreenNo, // ํ™”๋ฉด๋ฒˆํ˜ธ
            BSTR sAccNo,  // ๊ณ„์ขŒ๋ฒˆํ˜ธ 10์ž๋ฆฌ
            LONG nOrderType,  // ์ฃผ๋ฌธ์œ ํ˜• 1:์‹ ๊ทœ๋งค์ˆ˜, 2:์‹ ๊ทœ๋งค๋„ 3:๋งค์ˆ˜์ทจ์†Œ, 4:๋งค๋„์ทจ์†Œ, 5:๋งค์ˆ˜์ •์ •, 6:๋งค๋„์ •์ •
            BSTR sCode, // ์ข…๋ชฉ์ฝ”๋“œ
            LONG nQty,  // ์ฃผ๋ฌธ์ˆ˜๋Ÿ‰
            LONG nPrice, // ์ฃผ๋ฌธ๊ฐ€๊ฒฉ
            BSTR sHogaGb,   // ๊ฑฐ๋ž˜๊ตฌ๋ถ„(ํ˜น์€ ํ˜ธ๊ฐ€๊ตฌ๋ถ„)์€ ์•„๋ž˜ ์ฐธ๊ณ 
            BSTR sOrgOrderNo  // ์›์ฃผ๋ฌธ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค. ์‹ ๊ทœ์ฃผ๋ฌธ์—๋Š” ๊ณต๋ฐฑ, ์ •์ •(์ทจ์†Œ)์ฃผ๋ฌธํ•  ์›์ฃผ๋ฌธ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
        )
        

        ํ•ด๋‹น ํ•จ์ˆ˜๋Š” sRQName์— ์˜ํ•ด ์ฃผ์‹ ๋งค๋„, ์ฃผ์‹ ๋งค์ˆ˜๋“ฑ์˜ ๊ธฐ๋Šฅ์ด ๊ฒฐ์ •๋˜๋Š”๊ฒƒ์ด ์•„๋‹Œ, nOrderType์ธ์ž๋กœ ์ธํ•ด ๋ฐ”๋€Œ๊ฒŒ๋ฉ๋‹ˆ๋‹ค.

        1:์‹ ๊ทœ๋งค์ˆ˜, 2:์‹ ๊ทœ๋งค๋„ 3:๋งค์ˆ˜์ทจ์†Œ, 4:๋งค๋„์ทจ์†Œ, 5:๋งค์ˆ˜์ •์ •, 6:๋งค๋„์ •์ •

        ์ธ์ž ๊ฐ’ ์„ค๋ช…
        1 ์‹ ๊ทœ๋งค์ˆ˜
        2 ์‹ ๊ทœ๋งค๋„
        3 ๋งค์ˆ˜์ทจ์†Œ
        4 ๋งค๋„์ทจ์†Œ
        5 ๋งค์ˆ˜์ •์ •
        6 ๋งค๋„์ •์ •

    • SendOrderFO()

      ์ฝ”์Šคํ”ผ์ง€์ˆ˜200 ์„ ๋ฌผ์˜ต์…˜, ์ฃผ์‹์„ ๋ฌผ ์ „์šฉ ์ฃผ๋ฌธํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.


    • SendOrderCredit()

      ๊ตญ๋‚ด์ฃผ์‹ ์‹ ์šฉ์ฃผ๋ฌธ ์ „์šฉํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋Œ€์ฃผ๊ฑฐ๋ž˜๋Š” ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ์˜ํˆฌ์ž์—์„œ๋Š” ์ง€์ •๊ฐ€ ์ฃผ๋ฌธ๊ณผ ์‹œ์žฅ๊ฐ€ ์ฃผ๋ฌธ๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.


    • GetChejanData()

      OnReceiveChejan()์ด๋ฒคํŠธ๊ฐ€ ํ˜ธ์ถœ๋ ๋•Œ ์ฒด๊ฒฐ์ •๋ณด๋‚˜ ์ž”๊ณ ์ •๋ณด๋ฅผ ์–ป์–ด์˜ค๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ๋ฐ˜๋“œ์‹œ OnReceiveChejan()์ด๋ฒคํŠธ๊ฐ€ ํ˜ธ์ถœ๋ ๋•Œ ๊ทธ ์•ˆ์—์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


    • OnReceiveChejanData()

      ์ฃผ๋ฌธ์š”์ฒญํ›„ ์ฃผ๋ฌธ์ ‘์ˆ˜, ์ฒด๊ฒฐํ†ต๋ณด, ์ž”๊ณ ํ†ต๋ณด๋ฅผ ์ˆ˜์‹ ํ•  ๋•Œ ๋งˆ๋‹ค ํ˜ธ์ถœ๋˜๋ฉฐ GetChejanData()ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ์ƒ์„ธํ•œ ์ •๋ณด๋ฅผ ์–ป์„์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


    • OnReceiveMsg()

      ์„œ๋ฒ„ํ†ต์‹  ํ›„ ์ˆ˜์‹ ํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ์•Œ๋ ค์ค๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€์—๋Š” 6์ž๋ฆฌ ์ฝ”๋“œ๋ฒˆํ˜ธ๊ฐ€ ํฌํ•จ๋˜๋Š”๋ฐ ์ด ์ฝ”๋“œ๋ฒˆํ˜ธ๋Š” ํ†ต๋ณด์—†์ด ์ˆ˜์‹œ๋กœ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ฃผ๋ฌธ์ด๋‚˜ ์˜ค๋ฅ˜๊ด€๋ จ์ฒ˜๋ฆฌ๋ฅผ ์ด ์ฝ”๋“œ๋ฒˆํ˜ธ๋กœ ๋ถ„๋ฅ˜ํ•˜์‹œ๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค.

      Example python

      ์ด๋ฆ„ ์„ค๋ช…
      sScrNo ํ™”๋ฉด๋ฒˆํ˜ธ
      sRQName ์‚ฌ์šฉ์ž ๊ตฌ๋ถ„๋ช…
      sTrCode TR์ด๋ฆ„
      sMsg ์„œ๋ฒ„์—์„œ ์ „๋‹ฌํ•˜๋Š” ๋ฉ”์„ธ์ง€

    • OnReceiveTrData()

      ์กฐํšŒ์š”์ฒญ ์‘๋‹ต์„ ๋ฐ›๊ฑฐ๋‚˜ ์กฐํšŒ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ–ˆ์„๋•Œ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค. ์กฐํšŒ๋ฐ์ดํ„ฐ๋Š” ์ด ์ด๋ฒคํŠธ์—์„œ GetCommData()ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ์–ป์–ด์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.



  • ์กฐ๊ฑด๊ฒ€์ƒ‰

    • ์„ค๋ช…

    [์กฐ๊ฑด๊ฒ€์ƒ‰ ๊ฐœ์š”]
        OpenAPI์—์„œ ์ œ๊ณตํ•˜๋Š” ์กฐ๊ฑด๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์€ ์˜์›…๋ฌธHTS์—์„œ ์ž‘์„ฑ ์กฐ๊ฑด์‹์„ ๋ถˆ๋Ÿฌ์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋ฉฐ OpenAPI์—์„œ ์กฐ๊ฑด๊ฒ€์ƒ‰ ์ˆ˜์‹์ž‘์„ฑ์ด๋‚˜
        ์ˆ˜์‹ํŽธ์ง‘์€ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
        
        ์กฐ๊ฑด๊ฒ€์ƒ‰ ๊ด€๋ จ 6๊ฐœ ํ•จ์ˆ˜์™€ 3๊ฐœ ์ด๋ฒคํŠธ๊ฐ€ ์ œ๊ณต๋˜๋ฉฐ ์ด๋ฅผ ์ด์šฉํ•ด์„œ ์กฐ๊ฑด๊ฒ€์ƒ‰๊ณผ ์‹ค์‹œ๊ฐ„ ์กฐ๊ฑด๊ฒ€์ƒ‰(๋ฐ˜๋ณต์ ์ธ ์กฐ๊ฑด๊ฒ€์ƒ‰ ์š”์ฒญ์—†์ด 
        ์ž๋™์œผ๋กœ ์‹ ๊ทœ์ข…๋ชฉ ํŽธ์ž…, ์ดํƒˆ๋˜๋Š” ๊ธฐ๋Šฅ)์„ ์„ค์ •ํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
        ์˜์›…๋ฌธHTS์™€ ๋™์ผํ•˜๊ฒŒ ์‹ค์‹œ๊ฐ„ ์กฐ๊ฑด๊ฒ€์ƒ‰์€ ์ตœ๋Œ€ 10๊ฐœ ์กฐ๊ฑด์‹๋งŒ ์‹ค์‹œ๊ฐ„ ์กฐ๊ฑด๊ฒ€์ƒ‰์œผ๋กœ ์š”์ฒญํ• ์ˆ˜ ์žˆ๋Š”๋ฐ ์กฐ๊ฑด๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๊ฐ€ 100์ข…๋ชฉ์„ 
        ๋„˜๊ฒŒ ๋˜๋ฉด ์‹ค์‹œ๊ฐ„ ์กฐ๊ฑด๊ฒ€์ƒ‰์„ ํ• ์ˆ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
        
    [์กฐ๊ฑด๊ฒ€์ƒ‰ ์ œํ•œ]
        ์กฐ๊ฑด๊ฒ€์ƒ‰(์‹ค์‹œ๊ฐ„ ์กฐ๊ฑด๊ฒ€์ƒ‰ ํฌํ•จ)์€ ์‹œ์„ธ์กฐํšŒ์™€ ๊ด€์‹ฌ์ข…๋ชฉ์กฐํšŒ์™€ ํ•ฉ์‚ฐํ•ด์„œ 1์ดˆ์— 5ํšŒ๋งŒ ์š”์ฒญ ๊ฐ€๋Šฅํ•˜๋ฉฐ 1๋ถ„์— 1ํšŒ๋กœ ์กฐ๊ฑด๊ฒ€์ƒ‰ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.
        ์กฐ๊ฑด๊ฒ€์ƒ‰ ์ œํ•œ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•˜๋‹จ์„ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”.
        
        10๊ฐœ ์กฐ๊ฑด๊ฒ€์ƒ‰์‹์„ ํ•œ๋ฒˆ์— ๋ชจ๋‘ ์กฐํšŒํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ์œผ๋ฉฐ ์กฐ๊ฑด๊ฒ€์ƒ‰๋งŒ ์š”์ฒญํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด์„œ ์„ค๋ช…ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
                
    ์ฒซ๋ฒˆ์งธ ์ œํ•œ์กฐ๊ฑด : 1์ดˆ์— 5ํšŒ๋งŒ ์กฐํšŒ๊ฐ€๋Šฅ
    ๋‘๋ฒˆ์งธ ์ œํ•œ์กฐ๊ฑด : ์กฐ๊ฑด๋ณ„ 1๋ถ„๋‹น 1ํšŒ๋กœ ์ œํ•œ(์‹ค์‹œ๊ฐ„ ์กฐ๊ฑด๊ฒ€์ƒ‰ ์ˆ˜์‹ ์—๋Š” ์˜ํ–ฅ์—†์Œ)
        
    09:00:00  ์กฐํšŒ ์‹œ์ž‘
        1๋ฒˆ๋ถ€ํ„ฐ 5๋ฒˆ ์กฐ๊ฑด์‹์€ ์กฐํšŒ์„ฑ๊ณต(์ฒซ๋ฒˆ์งธ ์ œํ•œ์กฐ๊ฑด, ๋‘๋ฒˆ์งธ ์ œํ•œ์กฐ๊ฑด ๋ชจ๋‘ ๋งŒ์กฑ)
        6๋ฒˆ๋ถ€ํ„ฐ 10๋ฒˆ ์กฐ๊ฑด์‹์€ ์กฐํšŒ์‹คํŒจ(์ฒซ๋ฒˆ์งธ ์ œํ•œ์กฐ๊ฑด)
        
    09:00:01 ์กฐํšŒ ์žฌ์‹œ์ž‘(1์ดˆํ›„ ์žฌ์กฐํšŒ)
        1๋ฒˆ๋ถ€ํ„ฐ 5๋ฒˆ ์กฐ๊ฑด์‹์€ ์กฐํšŒ์‹คํŒจ(๋‘๋ฒˆ์งธ ์ œํ•œ์กฐ๊ฑด)
        6๋ฒˆ๋ถ€ํ„ฐ 10๋ฒˆ ์กฐ๊ฑด์‹์€ ์กฐํšŒ์„ฑ๊ณต(์ฒซ๋ฒˆ์งธ ์ œํ•œ์กฐ๊ฑด, ๋‘๋ฒˆ์งธ ์ œํ•œ์กฐ๊ฑด ๋ชจ๋‘ ๋งŒ์กฑ)
        
    09:01:00 ์กฐํšŒ์‹œ์ž‘ (์ฒซ์กฐํšŒ 1๋ถ„ํ›„)
        1๋ฒˆ๋ถ€ํ„ฐ 5๋ฒˆ ์กฐ๊ฑด์‹์€ ์กฐํšŒ์„ฑ๊ณต(์ฒซ๋ฒˆ์งธ ์ œํ•œ์กฐ๊ฑด, ๋‘๋ฒˆ์งธ ์ œํ•œ์กฐ๊ฑด ๋ชจ๋‘ ๋งŒ์กฑ)
        6๋ฒˆ๋ถ€ํ„ฐ 10๋ฒˆ ์กฐ๊ฑด์‹์€ ์กฐํšŒ์‹คํŒจ(์ฒซ๋ฒˆ์งธ ์ œํ•œ์กฐ๊ฑด)
        
    09:00:01 ์กฐํšŒ ์žฌ์‹œ์ž‘(1๋ถ„ 1์ดˆํ›„ ์žฌ์กฐํšŒ)
        1๋ฒˆ๋ถ€ํ„ฐ 5๋ฒˆ ์กฐ๊ฑด์‹์€ ์กฐํšŒ์‹คํŒจ(๋‘๋ฒˆ์งธ ์ œํ•œ์กฐ๊ฑด)
        6๋ฒˆ๋ถ€ํ„ฐ 10๋ฒˆ ์กฐ๊ฑด์‹์€ ์กฐํšŒ์„ฑ๊ณต(์ฒซ๋ฒˆ์งธ ์ œํ•œ์กฐ๊ฑด, ๋‘๋ฒˆ์งธ ์ œํ•œ์กฐ๊ฑด ๋ชจ๋‘ ๋งŒ์กฑ)
                
    [์‹ค์‹œ๊ฐ„ ์กฐ๊ฑด๊ฒ€์ƒ‰]
        ์‹ค์‹œ๊ฐ„ ์กฐ๊ฑด๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋กœ 100์ข…๋ชฉ ์ด์ƒ์ด ๊ฒ€์ƒ‰๋˜๋Š” ์กฐ๊ฑด์‹์€ ์‹ค์‹œ๊ฐ„ ์กฐ๊ฑด๊ฒ€์ƒ‰ ์‹คํ–‰์ด ์•ˆ๋ฉ๋‹ˆ๋‹ค.๊ทธ๋ฆฌ๊ณ  ์‹ค์‹œ๊ฐ„ ์กฐ๊ฑด๊ฒ€์ƒ‰์€ ๋ชจ๋‘ 10๊ฐœ 
        ์กฐ๊ฑด์‹๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    

    ํƒ€์ž„ ์ด๋ฆ„ ์„ค๋ช…
    LONG GetConditionLoad() ์‚ฌ์šฉ์ž ์กฐ๊ฑด๊ฒ€์ƒ‰ ๋ชฉ๋ก์„ ์„œ๋ฒ„์— ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ์กฐ๊ฑด๊ฒ€์ƒ‰ ๋ชฉ๋ก์„ ๋ชจ๋‘ ์ˆ˜์‹ ํ•˜๋ฉด OnReceiveConditionVer()์ด๋ฒคํŠธ๊ฐ€ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค. ์กฐ๊ฑด๊ฒ€์ƒ‰ ๋ชฉ๋ก ์š”์ฒญ์„ ์„ฑ๊ณตํ•˜๋ฉด 1, ์•„๋‹ˆ๋ฉด 0์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.
    BSTR GetConditionNameList() ์„œ๋ฒ„์—์„œ ์ˆ˜์‹ ํ•œ ์‚ฌ์šฉ์ž ์กฐ๊ฑด์‹์„ ์กฐ๊ฑด๋ช… ์ธ๋ฑ์Šค์™€ ์กฐ๊ฑด์‹ ์ด๋ฆ„์„ ํ•œ ์Œ์œผ๋กœ ํ•˜๋Š” ๋ฌธ์ž์—ด๋“ค๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์กฐ๊ฑด์‹ ํ•˜๋‚˜๋Š” ์กฐ๊ฑด๋ช… ์ธ๋ฑ์Šค์™€ ์กฐ๊ฑด์‹ ์ด๋ฆ„์€ '^'๋กœ ๋‚˜๋‰˜์–ด์ ธ ์žˆ์œผ๋ฉฐ ๊ฐ ์กฐ๊ฑด์‹์€ ';'๋กœ ๋‚˜๋‰˜์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ๋ฐ˜๋“œ์‹œ OnReceiveConditionVer()์ด๋ฒคํŠธ์—์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    LONG SendCondition() ์„œ๋ฒ„์— ์กฐ๊ฑด๊ฒ€์ƒ‰์„ ์š”์ฒญํ•˜๋Š” ํ•จ์ˆ˜๋กœ ๋งจ ๋งˆ์ง€๋ง‰ ์ธ์ž๊ฐ’์œผ๋กœ ์กฐ๊ฑด๊ฒ€์ƒ‰๋งŒ ํ• ๊ฒƒ์ธ์ง€ ์‹ค์‹œ๊ฐ„ ์กฐ๊ฑด๊ฒ€์ƒ‰๋„ ํ•  ๊ฒƒ์ธ์ง€๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    void SendConditionStop() ์กฐ๊ฑด๊ฒ€์ƒ‰์„ ์ค‘์ง€ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์กฐ๊ฑด์‹ ์กฐํšŒํ• ๋•Œ ์–ป๋Š” ์กฐ๊ฑด์‹ ์ด๋ฆ„๊ณผ ์กฐ๊ฑด๋ช… ์ธ๋ฑ์Šค ์Œ์„ ๋งž์ถฐ์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    LONG SetRealReg() ์‹ค์‹œ๊ฐ„ ์‹œ์„ธ๋ฅผ ๋ฐ›์œผ๋ ค๋Š” ์ข…๋ชฉ์ฝ”๋“œ์™€ FID ๋ฆฌ์ŠคํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ์‹ค์‹œ๊ฐ„ ์‹œ์„ธ๋ฅผ ๋“ฑ๋กํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
    void SetRealRemove() ์‹ค์‹œ๊ฐ„ ์‹œ์„ธํ•ด์ง€ ํ•จ์ˆ˜์ด๋ฉฐ ํ™”๋ฉด๋ฒˆํ˜ธ์™€ ์ข…๋ชฉ์ฝ”๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ์ƒ์„ธํ•˜๊ฒŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    void OnReceiveConditionVer() ์‚ฌ์šฉ์ž ์กฐ๊ฑด์‹์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ์„œ๋ฒ„์—์„œ ์ˆ˜์‹ ํ•˜๋ฉด ํ˜ธ์ถœ๋˜๋Š” ์ด๋ฒคํŠธ์ž…๋‹ˆ๋‹ค.
    void OnReceiveTrCondition() ์กฐ๊ฑด๊ฒ€์ƒ‰ ์š”์ฒญ์œผ๋กœ ๊ฒ€์ƒ‰๋œ ์ข…๋ชฉ์ฝ”๋“œ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ์ด๋ฒคํŠธ์ž…๋‹ˆ๋‹ค. ์ข…๋ชฉ์ฝ”๋“œ ๋ฆฌ์ŠคํŠธ๋Š” ๊ฐ ์ข…๋ชฉ์ฝ”๋“œ๊ฐ€ ';'๋กœ ๊ตฌ๋ถ„๋˜์„œ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
    void OnReceiveRealCondition() ์‹ค์‹œ๊ฐ„ ์กฐ๊ฑด๊ฒ€์ƒ‰ ์š”์ฒญ์œผ๋กœ ์‹ ๊ทœ์ข…๋ชฉ์ด ํŽธ์ž…๋˜๊ฑฐ๋‚˜ ๊ธฐ์กด ์ข…๋ชฉ์ด ์ดํƒˆ๋ ๋•Œ ๋งˆ๋‹ค ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.


  • ๊ธฐํƒ€ํ•จ์ˆ˜

    • ์ข…๋ชฉ์ •๋ณด๊ด€๋ จํ•จ์ˆ˜

      ํƒ€์ž… ์ด๋ฆ„ ์„ค๋ช…
      BSTR GetCodeListByMarket() ๊ตญ๋‚ด ์ฃผ์‹ ์‹œ์žฅ๋ณ„ ์ข…๋ชฉ์ฝ”๋“œ๋ฅผ ';'๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
      BSTR GetMasterCodeName() ์ข…๋ชฉ์ฝ”๋“œ์— ํ•ด๋‹นํ•˜๋Š” ์ข…๋ชฉ๋ช…์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
      LONG GetMasterListedStockCnt() ์ž…๋ ฅํ•œ ์ข…๋ชฉ์ฝ”๋“œ์— ํ•ด๋‹นํ•˜๋Š” ์ข…๋ชฉ ์ƒ์žฅ์ฃผ์‹์ˆ˜๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
      BSTR GetMasterConstruction() ์ž…๋ ฅํ•œ ์ข…๋ชฉ์ฝ”๋“œ์— ํ•ด๋‹นํ•˜๋Š” ์ข…๋ชฉ์˜ ๊ฐ๋ฆฌ๊ตฌ๋ถ„(์ •์ƒ, ํˆฌ์ž์ฃผ์˜, ํˆฌ์ž๊ฒฝ๊ณ , ํˆฌ์ž์œ„ํ—˜, ํˆฌ์ž์ฃผ์˜ํ™˜๊ธฐ์ข…๋ชฉ)์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
      BSTR GetMasterListedStockDate() ์ž…๋ ฅํ•œ ์ข…๋ชฉ์˜ ์ƒ์žฅ์ผ์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
      BSTR GetMasterLastPrice() ์ž…๋ ฅํ•œ ์ข…๋ชฉ์˜ ์ „์ผ๊ฐ€๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
      BSTR GetMasterStockState() ์ž…๋ ฅํ•œ ์ข…๋ชฉ์˜ ์ฆ๊ฑฐ๊ธˆ ๋น„์œจ, ๊ฑฐ๋ž˜์ •์ง€, ๊ด€๋ฆฌ์ข…๋ชฉ, ๊ฐ๋ฆฌ์ข…๋ชฉ, ํˆฌ์ž์œต์˜์ข…๋ชฉ, ๋‹ด๋ณด๋Œ€์ถœ, ์•ก๋ฉด๋ถ„ํ• , ์‹ ์šฉ๊ฐ€๋Šฅ ์—ฌ๋ถ€๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
      BSTR GetBranchCodeName() TR ์กฐํšŒ์— ํ•„์š”ํ•œ ํšŒ์›์‚ฌ ์ •๋ณด๋ฅผ ํšŒ์›์‚ฌ ์ฝ”๋“œ์™€ ํšŒ์›์‚ฌ ์ด๋ฆ„์œผ๋กœ ๊ตฌ์„ฑํ•ด์„œ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
      BSTR GetFutureList() ์ง€์ˆ˜์„ ๋ฌผ ์ข…๋ชฉ์ฝ”๋“œ ๋ฆฌ์ŠคํŠธ๋ฅผ ';'๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
      BSTR GetActPriceList() ์ง€์ˆ˜์˜ต์…˜ ํ–‰์‚ฌ๊ฐ€์— 100์„ ๊ณฑํ•ด์„œ ์†Œ์ˆ˜์ ์ด ์—†๋Š” ๊ฐ’์„ ';'๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
      BSTR GetMonthList() ์ง€์ˆ˜์˜ต์…˜ ์›”๋ฌผ์ •๋ณด๋ฅผ ';'๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ „๋‹ฌํ•˜๋Š”๋ฐ ์ˆœ์„œ๋Š” ์ฝœ 11์›”๋ฌผ ~ ์ฝœ ์ตœ๊ทผ์›”๋ฌผ ํ’‹ ์ตœ๊ทผ์›”๋ฌผ ~ ํ’‹ ์ตœ๊ทผ์›”๋ฌผ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
      BSTR GetOptionCode() ์ธ์ž๋กœ ์ง€์ •ํ•œ ์ง€์ˆ˜์˜ต์…˜ ์ฝ”๋“œ๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
      BSTR GetOptionATM() ์ง€์ˆ˜์˜ต์…˜ ์†Œ์ˆ˜์ ์„ ์ œ๊ฑฐํ•œ ATM๊ฐ’์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด ATM๊ฐ’์ด 247.50 ์ธ ๊ฒฝ์šฐ 24750์ด ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
      BSTR GetSFutureList() ๊ธฐ์ดˆ์ž์‚ฐ ๊ตฌ๋ถ„๊ฐ’์„ ์ธ์ž๋กœ ๋ฐ›์•„์„œ ์ฃผ์‹์„ ๋ฌผ ์ข…๋ชฉ์ฝ”๋“œ, ์ข…๋ชฉ๋ช…, ๊ธฐ์ดˆ์ž์‚ฐ์ด๋ฆ„์„ ๊ตฌํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

      • GetCodeListByMarket()

        ๊ตญ๋‚ด ์ฃผ์‹ ์‹œ์žฅ๋ณ„ ์ข…๋ชฉ์ฝ”๋“œ๋ฅผ ';'๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์ผ ์‹œ์žฅ๊ตฌ๋ถ„๊ฐ’์ด NULL์ด๋ฉด ์ „์ฒด ์‹œ์žฅ์ฝ”๋“œ๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.


    • ํŠน์ˆ˜ํ•จ์ˆ˜

      ํƒ€์ž… ์ด๋ฆ„ ์„ค๋ช…
      BSTR KOA_Functions() ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํด๋ฆญ...
      • KOA_Functions()

        KOA_Function() ํ•จ์ˆ˜๋Š” OpenAPI๊ธฐ๋ณธ ๊ธฐ๋Šฅ์™ธ์— ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๋„๋ก ๋งŒ๋“  ํ•จ์ˆ˜์ด๋ฉฐ ๋‘ ๊ฐœ ์ธ์ž๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๊ฐ€ 
        ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ๊ณผ ํ•„์š”ํ•œ ์ธ์ž๊ฐ’์€ ๊ณต์ง€๋ฅผ ํ†ตํ•ด ์ œ๊ณตํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.
        
        ------------------------------------------------------------------------------------------------------------------------------------
        
        [KOA_Functions() ํ•จ์ˆ˜ ์‚ฌ์šฉ์˜ˆ์‹œ]
        
        1. ๊ณ„์ขŒ๋น„๋ฐ€๋ฒˆํ˜ธ ์„ค์ •์ฐฝํ‘œ์‹œ
            OpenAPI.KOA_Functions(_T("ShowAccountWindow"), _T(""));// ๊ณ„์ขŒ๋น„๋ฐ€๋ฒˆํ˜ธ ์„ค์ •์ฐฝ์„ ์ถœ๋ ฅํ•œ๋‹ค.
        
        2. ์ ‘์†์„œ๋ฒ„ํ™•์ธ
            OpenAPI.KOA_Functions(_T("GetServerGubun"), _T(""));// ์ ‘์†์„œ๋ฒ„ ๊ตฌ๋ถ„์„ ์•Œ๋ ค์ค€๋‹ค. 1 : ๋ชจ์˜ํˆฌ์ž ์ ‘์†, ๋‚˜๋จธ์ง€ : ์‹ค์„œ๋ฒ„ ์ ‘์† 
        
        3. ์ฃผ์‹์ข…๋ชฉ ์‹œ์žฅ๊ตฌ๋ถ„, ์ข…๋ชฉ๋ถ„๋ฅ˜๋“ฑ ์ •๋ณด์ œ๊ณต 
            OpenAPI.KOA_Functions(_T("GetMasterStockInfo"), _T("039490"));
            ํ˜ธ์ถœ๊ฒฐ๊ณผ๋Š” ์ž…๋ ฅํ•œ ์ข…๋ชฉ์— ๋Œ€ํ•œ ๋Œ€๋ถ„๋ฅ˜, ์ค‘๋ถ„๋ฅ˜, ์—…์ข…๊ตฌ๋ถ„๊ฐ’์„ ๊ตฌ๋ถ„์ž๋กœ ์—ฐ๊ฒฐํ•œ ๋ฌธ์ž์—ด์ด๋ฉฐ ์—ฌ๊ธฐ์„œ ๊ตฌ๋ถ„์ž๋Š” '|'์™€ ';'์ž…๋‹ˆ๋‹ค.
            ์˜ˆ๋ฅผ๋“ค์–ด OpenAPI.KOA_Functions("GetMasterStockInfo", "039490")์„ ํ˜ธ์ถœํ•˜๋ฉด ์‹œ์žฅ๊ตฌ๋ถ„0|๊ฑฐ๋ž˜์†Œ;์‹œ์žฅ๊ตฌ๋ถ„1|์ค‘ํ˜•์ฃผ;์—…์ข…๊ตฌ๋ถ„|๊ธˆ์œต์—…; ์ด๋ ‡๊ฒŒ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 
        
        4. ์กฐ๊ฒ€๊ฒ€์ƒ‰ ์ข…๋ชฉ์ฝ”๋“œ์™€ ํ˜„์žฌ๊ฐ€ ์ˆ˜์‹ (์‹ค์‹œ๊ฐ„ ์กฐ๊ฑด๊ฒ€์ƒ‰์€ ์‚ฌ์šฉํ• ์ˆ˜ ์—†์Œ)
            ์กฐ๊ฑด๊ฒ€์ƒ‰๊ฒฐ๊ณผ์— ์ข…๋ชฉ์ฝ”๋“œ์™€ ๊ทธ ์ข…๋ชฉ์˜ ํ˜„์žฌ๊ฐ€๋ฅผ ํ•จ๊ป˜ ์ˆ˜์‹ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋ฉฐ ์‹ค์‹œ๊ฐ„ ์กฐ๊ฑด๊ฒ€์ƒ‰์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ณ  ์˜ค์ง ์กฐ๊ฑด๊ฒ€์ƒ‰์—๋งŒ ์‚ฌ์šฉํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
            OpenAPI.KOA_Functions(_T("SetConditionSearchFlag"), _T("AddPrice")); // ํ˜„์žฌ๊ฐ€ ํฌํ•จํ•˜๋„๋ก ์„ค์ • 
            ํ˜„์žฌ๊ฐ€ ํฌํ•จ์œผ๋กœ ์„ค์ •์‹œ OnReceiveTrCondition()์ด๋ฒคํŠธ์— "์ข…๋ชฉ์ฝ”๋“œ1^ํ˜„์žฌ๊ฐ€1;์ข…๋ชฉ์ฝ”๋“œ2^ํ˜„์žฌ๊ฐ€2;...์ข…๋ชฉ์ฝ”๋“œn^ํ˜„์žฌ๊ฐ€n"ํ˜•์‹์œผ๋กœ ์ „๋‹ฌ๋จ
        
            OpenAPI.KOA_Functions(_T("SetConditionSearchFlag"), _T("DelPrice")); // ํ˜„์žฌ๊ฐ€ ๋ฏธํฌํ•จ (์›๋ž˜์ƒํƒœ๋กœ ์ „ํ™˜)
            ํ˜„์žฌ๊ฐ€ ๋ฏธํฌํ•จ์‹œ ๊ธฐ์กด์ฒ˜๋Ÿผ "์ข…๋ชฉ์ฝ”๋“œ1^์ข…๋ชฉ์ฝ”๋“œ2...์ข…๋ชฉ์ฝ”๋“œn" ํ˜•์‹์œผ๋กœ ์ „๋‹ฌ๋ฏ€๋กœ ์„ค์ •์— ๋”ฐ๋ผ ์ˆ˜์‹ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฐฉ๋ฒ•์ด ๋‹ฌ๋ผ์ ธ์•ผ ํ•˜๋ฏ€๋กœ ์ฃผ์˜ํ•˜์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค
            ์ด ๋ฐฉ๋ฒ•์€ ์‹ค์‹œ๊ฐ„ ์กฐ๊ฑด๊ฒ€์ƒ‰์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ณ  ์ˆ˜์‹ ๋ฐ์ดํ„ฐ์— ํ˜„์žฌ๊ฐ€๊ฐ€ ํฌํ•จ๋˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ์ฒ˜๋ฆฌ๋ฐฉ๋ฒ•์„ ๋‹ฌ๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
        
        5. ์—…์ข…์ฝ”๋“œ ํš๋“
            OpenAPI.KOA_Functions(_T("GetUpjongCode"), _T("0")); // ์žฅ๋‚ด์—…์ข…์ฝ”๋“œ์š”์ฒญ
            ๋‘ ๋ฒˆ์งธ ์ธ์ž๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์€ 0,1,2,4,7 ์ด๋ฉฐ 0:์žฅ๋‚ด, 1: ์ฝ”์Šค๋‹ฅ, 2:KOSPI200, 4:KOSPI100(KOSPI50), 7:KRX100 ์ด๋ฉฐ ํ•„์š”ํ•œ ์—…์ข…์„ ๊ตฌ๋ณ„ํ•ด์„œ ์‚ฌ์šฉํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
            ํ•จ์ˆ˜๋ฐ˜ํ™˜๊ฐ’์€ "์‹œ์žฅ๊ตฌ๋ถ„๊ฐ’,์—…์ข…์ฝ”๋“œ,์—…์ข…๋ช…|์‹œ์žฅ๊ตฌ๋ถ„๊ฐ’,์—…์ข…์ฝ”๋“œ,์—…์ข…๋ช…|...|์‹œ์žฅ๊ตฌ๋ถ„๊ฐ’,์—…์ข…์ฝ”๋“œ,์—…์ข…๋ช…" ํ˜•์‹์ž…๋‹ˆ๋‹ค.
            ์ฆ‰ ํ•˜๋‚˜์˜ ์—…์ข…์ฝ”๋“œ๋Š” ์ž…๋ ฅํ•œ ์‹œ์žฅ๊ตฌ๋ถ„๊ฐ’๊ณผ ์—…์ข…์ฝ”๋“œ ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์—…์ข…๋ช…์ด ์‰ผํ‘œ(,)๋กœ ๊ตฌ๋ถ„๋˜๋ฉฐ ๊ฐ ์—…์ข…์ฝ”๋“œ๋Š” '|'๋กœ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค.
        

        Example python




kiwoom OpenAPI ErrorMsg



# opstarter

๋ฒ„์ „ ์ฒ˜๋ฆฌ๋ฅผ ๋ฐ›์œผ์‹œ๋ ค๋ฉด ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ OpenAPI OCX๋ฅผ ํƒ‘์žฌํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒํ•˜์‹  ํ›„ ํ™•์ธ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.
๊ทธ๋Œ€๋กœ ์ง„ํ–‰์‹œ ๋ฒ„์ „์ฒ˜๋ฆฌ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์œ„์˜ ๊ฒฝ๊ณ  ๋ฉ”์„ธ์ง€๊ฐ€๋œฌ๋‹ค๋ฉด ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ํ‚ค์›€์ฆ๊ถŒ OpenAPI์ฐฝ์„ ๋‹ซ๊ณ  KOA Studio๋ฅผ ์—ฐ ๋‹ค์Œ

ํŒŒ์ผ(F)>Open API ์ ‘์† ๋ˆ„๋ฅด๊ณ  ๋กœ๊ทธ์ธ์„ ํ•˜๋ฉด ์œ„์˜ opstarter ๊ฒฝ๊ณ  ๋ฉ”์„ธ์ง€ ๊ฐ€ ๋˜ ๋œจ๊ฒŒ๋˜๋Š”๋ฐ

๊ทธ๋•Œ ํ•ด๋‹น ๊ฒฝ๊ณ  ๋ฉ”์„ธ์ง€์˜ ๊ฒฝ๊ณ ์ฐฝ์„ ๋‹ซ์ง€๋ง๊ณ 


KOA StudioSAํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ์‹œํ‚ค๊ณ  ์ „์—๋‚˜์˜จ opstarter ๊ฒฝ๊ณ  ๋ฉ”์„ธ์ง€์˜ ํ™•์ธ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด๋œ๋‹ค.

ํ™•์ธ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ ๋‹ค์Œ ์—…๋ฐ์ดํŠธ ๋ฒ„ํŠผ์ด ๋‚˜์˜ค๋Š”๋ฐ ํ™•์ธ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ณ  ๋‹ค์‹œ์‹œ์ž‘ํ•˜๋ฉด ๋œ๋‹ค.




# mfc100.dll

mfc100.dll์ด(๊ฐ€) ์—†์–ด ์ฝ”๋“œ ์‹คํ–‰์„ ์ง„ํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋ฉด ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

KOAStudio๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ณผ์ •์— ์œ„์˜ ๊ฒฝ๊ณ ์ฐฝ์ด ๋œฌ๋‹ค๋ฉด

์ฒซ๋ฒˆ์งธ ๋ฐฉ๋ฒ• ์€ ์‚ฌ์ „์— ๋‹ค์šด๋ฐ›์€ OpenAPIํด๋”(C:\OpenAPI)์—

KOALoader.dll, KOAStudioSA.exe๋‘๊ฐœ์˜ ํŒŒ์ผ์„ ์ด๋™์‹œ์ผœ์ฃผ๋ฉด ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰์ด ๋œ๋‹ค.

๋‘๋ฒˆ์งธ ๋ฐฉ๋ฒ• ์€ ํ•ด๋‹น mfc100.dll์„ ๋‹ค์šด๋กœ๋“œํ•˜๋ฉด ๋œ๋‹ค.

32๋น„ํŠธ

https://www.microsoft.com/ko-kr/download/confirmation.aspx?id=5555

64๋น„ํŠธ

https://www.microsoft.com/ko-KR/download/confirmation.aspx?id=14632

๊ฐ ์šด์˜์ฒด์ œ๋งˆ๋‹ค ๋‹ค๋ฅธ URL์— ๋“ค์–ด๊ฐ€์„œ ์ ‘์†ํ•œ ํ›„ ๋‹ค์šด๋กœ๋“œ๋˜๋Š” ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜๋ฉด์„œ ์„ค์น˜ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.




# MSVCR100.dll

MSVCR100.dll์ด(๊ฐ€) ์—†์–ด ์ฝ”๋“œ ์‹คํ–‰์„ ์ง„ํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋ฉด ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ด๋‹น ์—๋Ÿฌ๋˜ํ•œ ์œ„์˜ mfc100.dll ์—๋Ÿฌ์™€ ๋™์ผํ•˜๊ฒŒ ๋”ฐ๋ผํ•˜๋ฉด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.



# QAxBase Error

QAxBase::setControl: requested control KHOPENAPI.KHOpenAPICtrl.1 could not be instantiated

QAxBase::dynamicCallHelper: Object is not initialized, or initialization failed

python PyQt ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ KHOPENAPI.KHOpenAPICtr1.1 Active๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ณผ์ •์— ํ•ด๋‹น ์˜ค๋ฅ˜๊ฐ€ ๋‚œ๋‹ค๋ฉด

KiwoomOpenAPI Module Install ํ•ด๋‹น ๋งํฌ์— ๋“ค์–ด๊ฐ€ ํ‚ค์›€ Open API+ ๋ชจ๋“ˆ ๋‹ค์šด๋กœ๋“œ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๋‹ค์šด๋กœ๋“œ ํ•˜๊ฑฐ๋‚˜

์‚ฌ์ „์— ๋‹ค์šด๋กœ๋“œํ–ˆ๋‹ค๋ฉด OpenAPISetup.exe๋ฅผ ์‹คํ–‰ํ•˜์—ฌ

OpenAPISetup.exe

์ œ๊ฑฐ(R) ๋ฅผ ๋ˆŒ๋Ÿฌ ์„ค์น˜๋œ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ œ๊ฑฐํ•œ ๋‹ค์Œ ๋‹ค์‹œ OpenAPISetup.exe๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์„ค์น˜ํ•˜๋ฉด๋œ๋‹ค.



# ModuleNotFoundError

ModuleNotFoundError: No module named 'PyQt5'

python PyQt5๋ฅผ ์‚ฌ์šฉํ• ๋•Œ ModuleNotFoundError ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค๋ฉด cmd ๋˜๋Š” ํ„ฐ๋ฏธ๋„์ฐฝ์—

pip install PyQt5
pip3 install PyQt5

๋ณธ์ธ์˜ pip ๋ฒ„์ „์— ๋งž๊ฒŒ PyQt5๋ฅผ ์„ค์น˜ํ•˜๋ฉด ๋œ๋‹ค.

Releases

No releases published

Packages

 
 
 

Contributors

Languages