1๏ธโฃ ์๋๋งค๋งค์ ์๋, ์ ํค์์ฆ๊ถ OpenAPI์ธ๊ฐ
์ต๊ทผ ๋ช ๋ ์ฌ์ด ๊ฐ์ธ ํฌ์์๋ค ์ฌ์ด์์ โ์ฃผ์ ์๋๋งค๋งค ์์คํ โ ์ ๋ํ ๊ด์ฌ์ด ๊ธ๊ฒฉํ ๋์์ก์ต๋๋ค.ย ํนํ ํ์ด์ฌ(Python)์ ์ด์ฉํ ์๋๋งค๋งค๋ ์ด๋ณด์๋ ๋น๊ต์ ์ฝ๊ฒ ์ ๊ทผํ ์ ์๊ณ ,ย ๊ฐ์ ์ด ๋ฐฐ์ ๋ ๊ท์น์ ๊ฑฐ๋๋ฅผ ๊ฐ๋ฅํ๊ฒ ํด ํฌ์ ํจ์จ์ ๊ทน๋ํํ ์ ์์ต๋๋ค.
์ด๋ ํ์์ ์ธ ๋๊ตฌ๊ฐ ๋ฐ๋ก ํค์์ฆ๊ถ OpenAPI+ ์ ๋๋ค.ย ์ด๋ ํค์์ฆ๊ถ์์ ์ ๊ณตํ๋ ๊ณต์ ๊ฐ๋ฐ์ ์ธํฐํ์ด์ค๋ก,ย HTS(์์ ๋ฌธ4)์ ์ฐ๋ํด ์๋์ผ๋ก ์ข ๋ชฉ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ณ , ์ฃผ๋ฌธ์ ์คํํ๋ฉฐ, ์ค์๊ฐ ์ฒด๊ฒฐ์ ํ์ธํ ์ ์๊ฒ ํด์ค๋๋ค.ย ์ฆ, ์ฌ๋์ด ํด๋ฆญํ์ง ์์๋ ํ์ด์ฌ ์ฝ๋๊ฐ ์๋์ผ๋ก ๋งค๋งค๋ฅผ ์ํํ๋ ์์คํ ์ด์ฃ .
2๏ธโฃ ๊ฐ๋ฐ ํ๊ฒฝ ์ค๋น
์๋๋งค๋งค๋ฅผ ์ํ ๊ธฐ๋ณธ ์ค๋น๋ฌผ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
-
ํ์ด์ฌ 3.9 ์ด์ : ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ ์ธ์ด
-
ํค์์ฆ๊ถ ๊ณ์ข ๋ฐ ์์ ๋ฌธ4 ์ค์น
-
ํค์์ฆ๊ถ OpenAPI+ : ์๋์ฃผ๋ฌธ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ํต์ฌ ํ๋ก๊ทธ๋จ
-
PyQt5, pandas, numpy, pykiwoom : ๋ฐ์ดํฐ ๋ถ์ ๋ฐ API ํธ์ถ์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
-
VPS(๊ฐ์ ์๋ฒ) : 24์๊ฐ ํ๋ก๊ทธ๋จ์ ์คํํ๊ธฐ ์ํ ํด๋ผ์ฐ๋ ํ๊ฒฝ (AWS, Oracle, ์นดํ24 ๋ฑ)
์ค์น๊ฐ ๋๋ฌ๋ค๋ฉด, ํค์์ฆ๊ถ ํํ์ด์ง์์ โOpenAPI+ ์ ์ฒญโ์ ์๋ฃํด์ผ ํฉ๋๋ค.ย ์น์ธ ํ KOA Studio๋ฅผ ํตํด API ์ฐ๊ฒฐ ํ ์คํธ๋ฅผ ์งํํ์ธ์.
3๏ธโฃ ํ์ด์ฌ๊ณผ OpenAPI ์ฐ๊ฒฐํ๊ธฐ
ํค์์ฆ๊ถ OpenAPI๋ COM(Component Object Model) ๋ฐฉ์์ผ๋ก ์๋ํฉ๋๋ค.ย ์ฆ, ๋จ์ํ ์น API๊ฐ ์๋ HTS ๋ด๋ถ ๊ฐ์ฒด๋ฅผ ์ง์ ์ ์ดํ๋ ๊ตฌ์กฐ์ด๊ธฐ ๋๋ฌธ์ย Windows ํ๊ฒฝ์์๋ง ๊ตฌ๋๋๋ฉฐ, PyQt5๋ฅผ ํตํด ๋ฉ์์ง ์ด๋ฒคํธ๋ฅผ ์ฃผ๊ณ ๋ฐ์ต๋๋ค.
GetConnectState()๊ฐ 1์ ๋ฐํํ๋ฉด ์ ์์ ์ผ๋ก ๋ก๊ทธ์ธ๋ ์ํ์
๋๋ค.
์ดํ block_request()๋ SendOrder() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ๋ฐ์ดํฐ ์กฐํ ๋ฐ ์ฃผ๋ฌธ ๊ธฐ๋ฅ์ ์ ์ดํ ์ ์์ต๋๋ค.
4๏ธโฃ ์กฐ๊ฑด๊ฒ์์ ๋ฐ ์ ๋ต ์ค์
์๋๋งค๋งค์ ํต์ฌ์ ๋งค์ยท๋งค๋ ์กฐ๊ฑด์ ์ผ๋ง๋ ์ ๊ตํ๊ฒ ์ค๊ณํ๋๋์ ๋๋ค.ย ์๋ฅผ ๋ค์ด RSI๋ ์ด๋ํ๊ท ์ ์ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ต์ ๋ง๋ค ์ ์์ต๋๋ค.
-
RSI๊ฐ 30 ์ดํ โ ๋งค์ ์ ํธ
-
RSI๊ฐ 70 ์ด์ โ ๋งค๋ ์ ํธ
-
5์ผ์ ์ด 20์ผ์ ์ ์ํฅ ๋ํ โ ๊ณจ๋ ํฌ๋ก์ค ๋งค์
์ด๋ฐ ์กฐ๊ฑด์ ํค์ OpenAPI์ GetConditionNameList() ์ SendCondition() ํจ์๋ฅผ ํ์ฉํด ์๋์ผ๋ก ์ข
๋ชฉ์ ํ์ํ๊ณ ๊ฑฐ๋๋ฅผ ์คํํ ์ ์์ต๋๋ค.
5๏ธโฃ ๋ฐฑํ ์คํธ๋ก ์ ๋ต ๊ฒ์ฆํ๊ธฐ
์ด๋ค ์ ๋ต์ด๋ ์ค์ ๋งค๋งค ์ ์ ๋ฐฑํ ์คํธ(Backtest) ๋ ํ์์ ๋๋ค.ย ๊ณผ๊ฑฐ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ ๋์ผํ ์ ๋ต์ ์ ์ฉํ๊ณ , ์์ต๋ฅ ยท์์ต๋นยท์ต๋ ๋ํญ ๋ฑ์ ๊ฒ์ฆํด์ผ ํฉ๋๋ค.
๊ฒ์ฆ ๊ฒฐ๊ณผ๊ฐ ์์ ์ ์ด๋ผ๋ฉด, ๊ทธ ์ ๋ต์ ์ค์ ์๋๋งค๋งค์ ์ ์ฉํ์ธ์.
6๏ธโฃ VPS ์ค์ ๋ฐ 24์๊ฐ ์๋ ์คํ
์๋๋งค๋งค ์์คํ ์ ์ฅ์ค๋ฟ ์๋๋ผ ์ฅ ์์ ์ ์ค๋น, ์ฅ ๋ง๊ฐ ํ ์ ์ฐ๊น์ง ํ์ํฉ๋๋ค.ย ๋ฐ๋ผ์ PC๋ฅผ ๊ณ์ ์ผ๋ ์ ์๋ค๋ฉด VPS(๊ฐ์ ์๋ฒ) ๋ฅผ ํ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
VPS๋ ์๊ฒฉ ์ ์ ๊ฐ๋ฅํ 24์๊ฐ ์๋ฒ๋ก,ย ํ์ด์ฌ ์คํฌ๋ฆฝํธ๋ฅผ ์
๋ก๋ํด python main.py ๋ช
๋ น์ผ๋ก ์คํํ๋ฉด ์ปดํจํฐ๋ฅผ ๊บผ๋ ๋งค๋งค๊ฐ ์ง์๋ฉ๋๋ค.
๐ก ํ: ์๋์ฐ ์๋ฒ 2019 ์ด์์ ์ฌ์ฉํ๋ฉด OpenAPI ์์ ์ฑ์ด ๋์ต๋๋ค.
7๏ธโฃ ๋ฆฌ์คํฌ ๊ด๋ฆฌ์ ๋ชจ๋ํฐ๋ง
์๋๋งค๋งค๋ โ๋ฐฉ์นํ ์์ต๊ธฐ๊ณโ๊ฐ ์๋๋๋ค.ย ์์ฅ ๊ธ๋ฝ, ๋คํธ์ํฌ ์ค๋ฅ, ๋ฐ์ดํฐ ๋๋ฝ ๋ฑ์ ๋๋นํดย ๋ฆฌ์คํฌ ๊ด๋ฆฌ ์ฝ๋๋ฅผ ๋ฐ๋์ ํฌํจํด์ผ ํฉ๋๋ค.
-
์์ ยท์ต์ ํ๋ ์ค์
-
๊ฑฐ๋๋ ๊ธ๋ฑ ์ ์๋ ์ผ์์ ์ง
-
๊ฑฐ๋ ๋ด์ญ ๋ก๊ทธ ์๋ ์ ์ฅ
-
์ค๋ฅ ๋ฐ์ ์ ์๋ฆผ ์ ์ก(Slack, ๋ฌธ์ ๋ฑ)
์ด๋ฐ ์์ ์ฅ์น๋ฅผ ๋ฃ์ผ๋ฉด ์์คํ ์ด ์ฅ๊ธฐ์ ์ผ๋ก ์์ ๋ฉ๋๋ค.
๐๊ฒฐ๋ก
ํค์์ฆ๊ถ OpenAPI์ ํ์ด์ฌ์ ํ์ฉํ๋ฉด ๊ฐ์ธ ํฌ์์๋ ๊ธฐ๊ด๊ธ ์๋๋งค๋งค๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค.ย ํ์ง๋ง ํต์ฌ์ ์ฝ๋๊ฐ ์๋ ์ ๋ต,
์ฆ ๋ฐ์ดํฐ ๊ธฐ๋ฐ์ ๊พธ์คํ ๊ฐ์ ์
๋๋ค.
์๋๋งค๋งค๋ โ๋์ ๋์ ๋ฒ์ด์ฃผ๋ ๊ธฐ๊ณโ๊ฐ ์๋๋ผ,ย ๋ด ํฌ์ ์ฒ ํ์ ์๋ํํ ์์คํ ์ด๋ผ๋ ์ ์ ์์ง ๋ง์ธ์.
๐ ์์ฑ: ํฐ์คํ ๋ฆฌ unique-healing๋ธ๋ก๊ทธ ยท ์๋ํ๋ ์ค uniquehealingstory
by uniquehealing (Finance Writer)
๋ ๋ง์ ์ฌํ ํฌยทETF ์ฝํ ์ธ ๋ ๐ [์ ๋ธ๋ก๊ทธ] ์์ ํ์ธํด ์ฃผ์ธ์.
โ ๏ธ ์ ์๊ถ ์๋ด:
๋ณธ ์ฝํ
์ธ ๋ ํฐ์คํ ๋ฆฌ unique-healing๋ธ๋ก๊ทธ ๋ฐ ์๋ํ๋ ์ค uniquehealingstory์ ์ฐฝ์๋ฌผ์
๋๋ค.
๐ซ ๋ฌด๋จ ๋ณต์ ยท๋ฐฐํฌยท์์
์ ์ด์ฉ์ ๊ธํฉ๋๋ค.
๐ ์ผ๋ถ ์ธ์ฉ ์์๋ ๋ฐ๋์ ์ถ์ฒ์ ์๋ฌธ ๋งํฌ๋ฅผ ๋ช
์ํด ์ฃผ์ธ์.
uniquehealing์์ ๋ ์์๋ณด๊ธฐ
๊ตฌ๋ ์ ์ ์ฒญํ๋ฉด ์ต์ ๊ฒ์๋ฌผ์ ์ด๋ฉ์ผ๋ก ๋ฐ์๋ณผ ์ ์์ต๋๋ค.