๐Ÿ“Œ ํ‚ค์›€์ฆ๊ถŒ API๋ฅผ ํ™œ์šฉํ•œ ์ž๋™๋งค๋งค ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„ ๊ณผ์ • (์ดˆ๋ณดยท์‹ค์ „ ํŠธ๋ ˆ์ด๋” ๋ชจ๋‘๋ฅผ ์œ„ํ•œ ์ž๋™๋งค๋งค ๊ตฌ์ถ• ๋กœ๋“œ๋งต)

์ž๋™๋งค๋งค ์‹œ์Šคํ…œ์€ ๋‹จ์ˆœํžˆ โ€œ๋งค์ˆ˜ยท๋งค๋„ ๋ช…๋ น์„ ์ž๋™ํ™”โ€ํ•˜๋Š” ์ˆ˜์ค€์ด ์•„๋‹™๋‹ˆ๋‹ค.
๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ โ†’ ์กฐ๊ฑด ๊ฒ€์ƒ‰์‹ ํ•ด์„ โ†’ ๋งค๋งค ์‹ ํ˜ธ ์ƒ์„ฑ โ†’ ์ฃผ๋ฌธ ์ „์†ก โ†’ ํฌ์ง€์…˜ ๊ด€๋ฆฌ โ†’ ๋ฆฌ์Šคํฌ ์ œ์–ด๋กœ ์ด์–ด์ง€๋Š” ์™„์ „ํ•œ ๊ตฌ์กฐ ์„ค๊ณ„ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.

ํŠนํžˆ ํ•œ๊ตญ์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์ฆ๊ถŒ์‚ฌ API ์ค‘ ํ•˜๋‚˜์ธ **ํ‚ค์›€์ฆ๊ถŒ OpenAPI+**๋Š” ๊ฐœ์ธ ํŠธ๋ ˆ์ด๋”๋„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํŠธ๋ ˆ์ด๋”ฉ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋œ API ํ”Œ๋žซํผ์œผ๋กœ,ย  ์‹ค์‹œ๊ฐ„ ์‹œ์„ธ ์ˆ˜์‹  ยท ์กฐ๊ฑด๊ฒ€์ƒ‰ ์—ฐ๋™ ยท ์ฃผ๋ฌธ์ฒด๊ฒฐ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ยท ์ž”๊ณ  ๋ชจ๋‹ˆํ„ฐ๋ง ๋“ฑ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ํ‚ค์›€ ์ž๋™๋งค๋งค ๊ตฌ์ถ• ๊ณผ์ • ์ „์ฒด๋ฅผ ๊ตฌ์กฐํ™”ํ•˜์—ฌ โ€œ์–ด๋””์„œ ๋ง‰ํžˆ๋Š”์ง€, ๋ฌด์—‡์„ ๋จผ์ € ์„ค๊ณ„ํ•ด์•ผ ํ•˜๋Š”์ง€, ์–ด๋–ค ์‹ค์ˆ˜๊ฐ€ ๊ฐ€์žฅ ์œ„ํ—˜ํ•œ์ง€โ€ ์‹ค์ „ ๊ด€์ ์—์„œ ๋‹จ๊ณ„๋ณ„ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.

1๏ธโƒฃ ํ‚ค์›€์ฆ๊ถŒ OpenAPI+๋กœ ๊ฐ€๋Šฅํ•œ ์ž๋™๋งค๋งค ๊ธฐ๋Šฅ

๊ธฐ๋Šฅ ์„ค๋ช…
์‹ค์‹œ๊ฐ„ ์‹œ์„ธ ์ˆ˜์‹ (Subscribe ๋ฐฉ์‹) ํ‹ฑ/๋ถ„๋ด‰/์ฒด๊ฒฐ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘
์กฐ๊ฑด ๊ฒ€์ƒ‰์‹ ์ž๋™ ์กฐํšŒ ํ‚ค์›€ ์กฐ๊ฑด์‹ ๊ทธ๋Œ€๋กœ ํ˜ธ์ถœ ๊ฐ€๋Šฅ
๋งค์ˆ˜ยท๋งค๋„ ์ฃผ๋ฌธ ์ž๋™ ์ „์†ก ์‹œ์žฅ๊ฐ€/์ง€์ •๊ฐ€/์กฐ๊ฑด๊ฐ€/IOC/FOK
์ฒด๊ฒฐยท์ž”๊ณ ยท๋ฏธ์ฒด๊ฒฐ ๊ด€๋ฆฌ ํฌ์ง€์…˜ ๋ฐ ์ˆ˜์ต๋ฅ  ์‹ค์‹œ๊ฐ„ ์ถ”์ 
์ด๋ฒคํŠธ ๋ชจ๋‹ˆํ„ฐ๋ง ์ฃผ๋ฌธ ์‹คํŒจยท์žฌ์ „์†กยท๋ฆฌ์Šคํฌ ์ œ์–ด

ํŠนํžˆ ์กฐ๊ฑด๊ฒ€์ƒ‰์‹ โ†’ ์ž๋™๋งค๋งค ์—ฐ๊ฒฐ์€ ํ‚ค์›€ API๋งŒ์˜ ๊ฐ€์žฅ ํฐ ์žฅ์ ์ž…๋‹ˆ๋‹ค.

์–ด๋‘์šด ์ฐจํŠธ ๋ฐฐ๊ฒฝ๊ณผ ๋…ธํŠธ๋ถ ์‹ค๋ฃจ์—ฃ ์œ„์— โ€˜ํ‚ค์›€ API ์ž๋™๋งค๋งค, ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌ์ถ• ํ•ต์‹ฌ 5๋‹จ๊ณ„โ€™์™€ 5๊ฐ€์ง€ ์š”์•ฝ ๋ฌธ๊ตฌ๊ฐ€ ํฐ ๊ธ€์”จ๋กœ ์ •๋ˆ๋œ ์ธํฌ๊ทธ๋ž˜ํ”ฝ ์ด๋ฏธ์ง€
ํ‚ค์›€ API ์ž๋™๋งค๋งค ๊ตฌํ˜„ 5๋‹จ ํ•ต์‹ฌ ์š”์•ฝ

 

 

2๏ธโƒฃ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ํ•ต์‹ฌ ํ™˜๊ฒฝ ์„ธํŒ…

ํ•ญ๋ชฉ ๊ถŒ์žฅ ์„ธํŒ…
๊ฐœ๋ฐœ์–ธ์–ด Python (PyKiwoom ๊ถŒ์žฅ)
ํ•„์ˆ˜ ์„ค์น˜ ํ‚ค์›€ OpenAPI+, KOA Studio
API ์—ฐ๋™ OAuth ๋กœ๊ทธ์ธ + ํ† ํฐ ์œ ์ง€
VPS ์šด์˜ AWSยทCafe24ยทOracle Cloud ๊ฐ€๋Šฅ
DB ์ €์žฅ SQLite โ†’ ํ™•์žฅ ์‹œ PostgreSQL

๐Ÿ“Œ ๋กœ์ปฌ์—์„œ ํ…Œ์ŠคํŠธ ํ›„ VPS๋กœ ์ด์ „ํ•˜๋Š” ๋ฐฉ์‹์ด ์šด์˜ ๋ฆฌ์Šคํฌ๋ฅผ ์ตœ์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค.

3๏ธโƒฃ ๊ธฐ๋ณธ ๊ตฌ์กฐ ์„ค๊ณ„ (์ž๋™๋งค๋งค ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜)

[์‹œ์„ธ ์ˆ˜์ง‘] โ†’ [์กฐ๊ฑด๊ฒ€์ƒ‰ ์‹ ํ˜ธ] โ†’ [๋งค๋งค ํŠธ๋ฆฌ๊ฑฐ] โ†’
[์ฃผ๋ฌธ ์ „์†ก] โ†’ [์ฒด๊ฒฐ ํ™•์ธ] โ†’ [์ž”๊ณ  ์ •๋ฆฌ] โ†’ [๋กœ๊ทธ ์ €์žฅ]

โœ” ํ•ต์‹ฌ ์„ค๊ณ„ ์›์น™
  • ์ฃผ๋ฌธ ์žฌ์ „์†ก ๋กœ์ง ํฌํ•จ (์ฒด๊ฒฐ ์‹คํŒจ ๋Œ€๋น„)

  • ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์‹œ ์ฆ‰์‹œ ์ค‘๋‹จ์ด ์•„๋‹Œ, ์กฐ๊ฑด๋ถ€ ์žฌ๊ฐ€๋™

  • ๋ชจ๋“  ๊ฑฐ๋ž˜ ๊ธฐ๋ก์€ ์ž๋™ ๋ฐฑ์—…(log + csv + db)

4๏ธโƒฃ ์กฐ๊ฑด๊ฒ€์ƒ‰์‹ ์—ฐ๋™ ์ž๋™๋งค๋งค

ํ‚ค์›€ ์กฐ๊ฑด ์ž๋™ ํ˜ธ์ถœ ๊ธฐ๋Šฅ
from pykiwoom.kiwoom import Kiwoom
kiwoom = Kiwoom()
kiwoom.CommConnect()
conditions = kiwoom.GetConditionLoad()

์‹œ๊ทธ๋„ ๋ฐœ์ƒ ์‹œ ์ž๋™ ์ฃผ๋ฌธ ์ฒ˜๋ฆฌ

kiwoom.SendOrder("buy_req", "0101", account, 1, "005930", 10, 0, "03", "")
  • "03"์€ ์‹œ์žฅ๊ฐ€ ์ฃผ๋ฌธ

  • "005930"๋Š” ์˜ˆ์‹œ(์‚ผ์„ฑ์ „์ž)

์กฐ๊ฑด์‹ ํŠธ๋ฆฌ๊ฑฐ ์ž๋™ํ™” โ†’ ์ด๋ฒคํŠธ ๋งค๋งค ๊ฐ€๋Šฅย  ์ฆ‰, ์‚ฌ๋žŒ์ด ํด๋ฆญํ•˜๋Š” ํ–‰์œ„๋ฅผ ๊ทธ๋Œ€๋กœ API๊ฐ€ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

5๏ธโƒฃ ๋ฆฌ์Šคํฌ ์ œ์–ด๊ฐ€ ํ•ต์‹ฌ์ด๋‹ค

์ž๋™๋งค๋งค๋Š” โ€œ์ˆ˜์ตโ€์ด ์•„๋‹ˆ๋ผ ํ†ต์ œ๋ ฅ์ž…๋‹ˆ๋‹ค.

๋ฆฌ์Šคํฌ ์š”์†Œ ์ œ์–ด ๋ฐฉ๋ฒ•
๊ธ‰๋ณ€ ์žฅ์„ธ ์ตœ์†Œ ์ฃผ๋ฌธ ๋‹จ์œ„ ์œ ์ง€ + ์Šฌ๋ฆฌํ”ผ์ง€ ๋ฐ˜์˜
์ฒด๊ฒฐ ์ง€์—ฐ ์žฌ์ „์†ก/์ทจ์†Œ/๋Œ€๊ธฐ ํ ์„ค๊ณ„
ํฌ์ง€์…˜ ๊ณผ๋‹ค 1์ผ ์ตœ๋Œ€ ์ง„์ž…๋Ÿ‰ ์ œํ•œ
์„œ๋ฒ„ ์žฅ์•  VPS ์ด์ค‘ํ™” + ์ž๋™ ์žฌ๋ถ€ํŒ…
์‹ ํ˜ธ ์ค‘๋ณต ๋งค์ˆ˜ 1ํšŒ ์ œํ•œ ํŠธ๋ฆฌ๊ฑฐ ์„ค์ •

๐Ÿ“Œ ํŠนํžˆ ํ•œ๊ตญ ์‹œ์žฅ์€ ๊ฐญ์ƒ์Šน/๊ฐญํ•˜๋ฝ ๋ณ€๋™์ด ํฌ๋ฏ€๋กœ ์‹œ์žฅ๊ฐ€ ๋‚จ์šฉ์€ ๋งค์šฐ ์œ„ํ—˜ํ•˜๋ฉฐ ์กฐ๊ฑดํ˜• ์ฒด๊ฒฐ ๊ด€๋ฆฌ๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

6๏ธโƒฃ ์šด์˜ ๋‹จ๊ณ„: VPS ์ž๋™ํ™”(24์‹œ๊ฐ„ ํŠธ๋ ˆ์ด๋”ฉ ํ™˜๊ฒฝ)

ํ•ญ๋ชฉ ์„ธ๋ถ€ ์„ค์ •
๋ชจ๋‹ˆํ„ฐ๋ง ํ…”๋ ˆ๊ทธ๋žจ/์นด์นด์˜ค ์•Œ๋ฆผ
์ฃผ๋ฌธ ๋กœ๊ทธ csv + db ๋™์‹œ ๊ธฐ๋ก
์˜ค๋ฅ˜ ๋Œ€์‘ ์ž๋™ ์ข…๋ฃŒ ํ›„ ์žฌ๋กœ๊ทธ์ธ
์„œ๋ฒ„ ์œ ์ง€ ์ •๊ธฐ ์—…๋ฐ์ดํŠธ + API ์ ๊ฒ€

ํ…Œ์ŠคํŠธ โ†’ ๋ชจ์˜๊ฑฐ๋ž˜ โ†’ ์†Œ๋Ÿ‰ ์‹ค๊ฑฐ๋ž˜ โ†’ ๊ทœ๋ชจ ํ™•์žฅ ์ด ์ˆœ์„œ๋ฅผ ๋ฐ˜๋“œ์‹œ ์ค€์ˆ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

7๏ธโƒฃ ์ž๋™๋งค๋งค ์šด์˜ ์ค‘ ๊ฐ€์žฅ ํ”ํ•œ ์˜ค๋ฅ˜ Top 5

์˜ค๋ฅ˜ ์›์ธ
์ฃผ๋ฌธ ์‹คํŒจ ๋ฐ˜๋ณต ์‹œ์žฅ๊ฐ€ ํญ์ฃผ or ์ž”๊ณ  ํ•œ๋„ ์ดˆ๊ณผ
์žฌ๋กœ๊ทธ์ธ ๋ฌดํ•œ๋ฃจํ”„ ํ† ํฐ ๋งŒ๋ฃŒ ๊ด€๋ฆฌ ๋ฏธํก
์กฐ๊ฑด๊ฒ€์ƒ‰ ์ˆ˜์‹  ์˜ค๋ฅ˜ ๊ตฌ ๋ฒ„์ „ API ์‚ฌ์šฉ
์ฒด๊ฒฐ ์ง€์—ฐ ์žฅ ์ดˆ๋ฐ˜ ํŠธ๋ž˜ํ”ฝ ์ง‘์ค‘
์†์ ˆ ๋ฏธ์ž‘๋™ ํŠธ๋ฆฌ๊ฑฐ ์ค‘๋ณต ๋กœ์ง ์˜ค๋ฅ˜

๐Ÿ“Œ ํ•ด๊ฒฐ ํ•ต์‹ฌ: ๋กœ๊ทธ ๋ถ„์„ + ์˜ˆ์™ธ ์ฒ˜๋ฆฌ + ์žฌ์ „์†ก ๋กœ์ง

์–ด๋‘์šด ์ฐจํŠธ ๋ฐฐ๊ฒฝ ์œ„์— โ€˜ํ‚ค์›€ ์ž๋™๋งค๋งค, ์‹คํŒจํ•˜์ง€ ์•Š๋Š” ํ•ต์‹ฌ ์„ค๊ณ„ ์›์น™โ€™๊ณผ 1~5๋ฒˆ ํ•ต์‹ฌ ๋ฌธ๊ตฌ๊ฐ€ ํฐ ๊ธ€์”จ๋กœ ์ •๋ ฌ๋œ ํŠธ๋ ˆ์ด๋”ฉ ์ธํฌ๊ทธ๋ž˜ํ”ฝ
ํ‚ค์›€ ์ž๋™๋งค๋งค ์•ˆ์ • ์„ค๊ณ„ 5๊ฐ€์ง€ ์›์น™

 

 

8๏ธโƒฃ ๊ฒฐ๋ก : ์ž๋™๋งค๋งค ๊ตฌ์ถ•์€ ‘ํˆฌ์ž’๊ฐ€ ์•„๋‹ˆ๋ผ ‘๊ธฐ์ˆ ’

ํ‚ค์›€ API ์ž๋™๋งค๋งค๋Š” ๋‹จ์ˆœ ์ž๋™ํ™”๊ฐ€ ์•„๋‹ˆ๋ผ ๋งค์ˆ˜/๋งค๋„ ๊ฒฐ์ •์˜ ์–ธ์–ดํ™”์ž…๋‹ˆ๋‹ค.

  • ๊ฐ์ • ์—†์ด ๋งค๋งค

  • ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜

  • ์กฐ๊ฑด ๊ฒ€์ฆ๊ณผ ๋ฆฌ์Šคํฌ ์กฐ์ ˆ

  • ๋ฐฑํ…Œ์ŠคํŠธ + ๋ชจ๋‹ˆํ„ฐ๋ง ๊ธฐ๋ฐ˜

  • ๊ฑฐ๋ž˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ โ€œ์ฝ”๋“œ๋กœ ๊ทœ์น™ํ™”โ€

ํˆฌ์ž์˜ ๊ฐ์ • ์˜์—ญ์„ ๋กœ์งยทํ•จ์ˆ˜ยท๋ฐ์ดํ„ฐ๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์ด ์ง„์ •ํ•œ ์ž๋™๋งค๋งค์˜ ์™„์„ฑ์ž…๋‹ˆ๋‹ค.

๐Ÿ’ฌ ๊ธ€์ด ๋„์›€์ด ๋˜์…จ๋‹ค๋ฉด [๊ตฌ๋…] ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค!
๋” ๋งŽ์€ ์ž๋™๋งค๋งคยทํŠธ๋ ˆ์ด๋”ฉ ์ธ์‚ฌ์ดํŠธ๋Š” ๐Ÿ‘‰ [์ œ ๋ธ”๋กœ๊ทธ] ์—์„œ ํ™•์ธํ•˜์„ธ์š”.

โš ๏ธ ์ €์ž‘๊ถŒ ์•ˆ๋‚ด


๋ณธ ๊ธ€์€ unique-healing ์›Œ๋“œํ”„๋ ˆ์Šค ๋ธ”๋กœ๊ทธ์˜ ์ฐฝ์ž‘๋ฌผ์ž…๋‹ˆ๋‹ค.
๋ฌด๋‹จ ๋ณต์ œยท์ˆ˜์ •ยท์บก์ฒ˜ยท์žฌ๋ฐฐํฌ๋ฅผ ๊ธˆ์ง€ํ•ฉ๋‹ˆ๋‹ค.
์ผ๋ถ€ ์ธ์šฉ ์‹œ ๋ฐ˜๋“œ์‹œ ์ถœ์ฒ˜์™€ ์›๋ฌธ ๋งํฌ๋ฅผ ๋‚จ๊ฒจ์ฃผ์„ธ์š”.


uniquehealing์—์„œ ๋” ์•Œ์•„๋ณด๊ธฐ

๊ตฌ๋…์„ ์‹ ์ฒญํ•˜๋ฉด ์ตœ์‹  ๊ฒŒ์‹œ๋ฌผ์„ ์ด๋ฉ”์ผ๋กœ ๋ฐ›์•„๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.