core
https://github.com/Golden-Goose-Lab/creon/blob/master/creon/core.py
COMWrapper
class COMWrapper ν¬λ μ¨ μλμ°μ¦ APIλ₯Ό μμ½κ² λ€λ£¨κΈ° μν λν ν΄λμ€μ λλ€.
μμ± com λμ€ν¨μΉλ μλμ°μ¦ API λͺ¨λμ λλ€.
λ©μλ def __init__(self, com) μμ±μ ν¨μμ λλ€. μΈμλ‘ μ¬μ©νλ €λ μλμ°μ¦ API λͺ¨λμ λ°μ΅λλ€.
def __getattr__(self, item) λμ€ν¨μΉλ μλμ°μ¦ API λͺ¨λλ΄ ν¨μλ λ³μλ₯Ό λ°λ‘ ν΄λμ€ λ€μ΄ν°λΈμ²λΌ μ¬μ©νκΈ° μν ν¨μμ λλ€. def block_request(self) μλμ°μ¦ API λͺ¨λλ΄ BlockRequest λ₯Ό λνν ν¨μμ λλ€. def get_dib_msg1(self) μλμ°μ¦ API λͺ¨λλ΄ GetDibMsg1 λ₯Ό λνν ν¨μμ λλ€. def get_dib_status(self) μλμ°μ¦ API λͺ¨λλ΄ GetDibStatus λ₯Ό λνν ν¨μμ λλ€. def get_data_value(self, key, value) μλμ°μ¦ API λͺ¨λλ΄ GetDataValue λ₯Ό λνν ν¨μμ λλ€. key, value μ λν GetDataValue μ€ν κ°μ 리ν΄ν©λλ€. def get_header_value(self, key) μλμ°μ¦ API λͺ¨λλ΄ GetHeaderValue λ₯Ό λνν ν¨μμ λλ€. key μ λν GetHeaderValue μ€ν κ°μ 리ν΄ν©λλ€. def set_input_value(self, key, value) μλμ°μ¦ API λͺ¨λλ΄ SetInputValue λ₯Ό λνν ν¨μμ λλ€. key, value μ λν SetInputValue μ€νν©λλ€.
Creon
class Creon ν¬λ μ¨ λνΌ ν΄λμ€μ λλ€. λͺ¨λ μ£Όμ νΈλ μ΄λ© κΈ°λ₯μ μ΄ ν΄λμ€ κ°μ²΄λ₯Ό κΈ°λ°μΌλ‘ μνν©λλ€.
μμ± __codes__ (κΈ°λ³Έκ° None) ν¬λ μ¨ API μ½λ λͺ¨λμΈ CpUtil.CpCodeMgr μ COMWrapper κ°μ²΄κ° ν λΉλ©λλ€. μμ± ν¨μλ‘ μ΄μ© κ°λ₯ν©λλ€. __utils__ (κΈ°λ³Έκ° None) ν¬λ μ¨ API μ νΈ λͺ¨λμΈ CpTrade.CpTdUtil μ COMWrapper κ°μ²΄κ° ν λΉλ©λλ€. μμ± ν¨μλ‘ μ΄μ© κ°λ₯ν©λλ€. __trades__ (κΈ°λ³Έκ° None) ν¬λ μ¨ API κ±°λ λͺ¨λμΈ CpTrade.CpTd0311 μ COMWrapper κ°μ²΄κ° ν λΉλ©λλ€. μμ± ν¨μλ‘ μ΄μ© κ°λ₯ν©λλ€. __trade_actions__ (κΈ°λ³Έκ° {'sell': 1, 'buy': 2}) sell μ buy μ λ¬Έμμ΄μ κ° κ° 1, 2λ‘ μΉν μ΄μ©νκΈ° μν λμ λ리 μ λλ€. __markets__ (κΈ°λ³Έκ° None) ν¬λ μ¨ API μμ₯ λͺ¨λμΈ DsCbo1.StockMst μ COMWrapper κ°μ²΄κ° ν λΉλ©λλ€. μμ± ν¨μλ‘ μ΄μ© κ°λ₯ν©λλ€. __wallets__ (κΈ°λ³Έκ° None) ν¬λ μ¨ API κ³μ’ λͺ¨λμΈ CpTrade.CpTd6033 μ COMWrapper κ°μ²΄κ° ν λΉλ©λλ€. μμ± ν¨μλ‘ μ΄μ© κ°λ₯ν©λλ€. __stock_code__ (κΈ°λ³Έκ° None) ν¬λ μ¨ API μ£Όμ μ½λ λͺ¨λμΈ CpUtil.CpStockCode μ COMWrapper κ°μ²΄κ° ν λΉλ©λλ€. μμ± ν¨μλ‘ μ΄μ© κ°λ₯ν©λλ€. __chart__ (κΈ°λ³Έκ° None) ν¬λ μ¨ API μ£Όμ μ°¨νΈ λͺ¨λμΈ CpSysDib.StockChart μ COMWrapper κ°μ²΄κ° ν λΉλ©λλ€. μμ± ν¨μλ‘ μ΄μ© κ°λ₯ν©λλ€. __logger__ (κΈ°λ³Έκ° Logger(__name__)) λ‘κΉ μ μν νμ΄μ¬ λ΄μ₯ λ‘κ±° κ°μ²΄κ° ν λΉλ©λλ€.
λ©μλ def __init__(self, username: str = '', password: str = '', cert_password: str = '', path: str = '') μμ±μ ν¨μμ λλ€. κ΄λ¦¬μ κΆνμ΄ μμΌλ©΄ PermissionError μμΈλ₯Ό λ°μμν€λ©° ν¬λ μ¨μ΄ ꡬλλμ΄ μμ§ μμΌλ©° run_creon_plus λ₯Ό ν΅ν΄ ꡬλν©λλ€.
@property def codes(self) -> COMWrapper ν¬λ μ¨ API μ½λ λͺ¨λμΈ CpUtil.CpCodeMgr μ μ¬μ©μ μν μμ± ν¨μμ λλ€. μ΅μ΄ μ€νμ __codes__ μμ±μ COMWrapper κ°μ²΄λ₯Ό ν λΉνλ©° μ΄ν __codes__ λ₯Ό 리ν΄ν©λλ€.
@property def trades(self) -> COMWrapper ν¬λ μ¨ API κ±°λ λͺ¨λμΈ CpTrade.CpTd0311 μ μ¬μ©μ μν μμ± ν¨μμ λλ€. μ΅μ΄ μ€νμ __trades__ μμ±μ COMWrapper κ°μ²΄λ₯Ό ν λΉνλ©° μ΄ν __trades__ λ₯Ό 리ν΄ν©λλ€.
@property def markets(self) -> COMWrapper ν¬λ μ¨ API μ λͺ¨λμΈ DsCbo1.StockMst μ μ¬μ©μ μν μμ± ν¨μμ λλ€. μ΅μ΅μ΄ μ€νμ ___markets__ μμ±μ COMWrapper κ°μ²΄λ₯Ό ν λΉνλ©° μ΄ν ___markets__ λ₯Ό 리ν΄ν©λλ€. http://cybosplus.github.io/cpdib_rtf_1_/stockmst.htm
@property def wallets(self) -> COMWrapper ν¬λ μ¨ API κ³μ’ λͺ¨λμΈ CpTrade.CpTd6033 μ μ¬μ©μ μν μμ± ν¨μμ λλ€. μ΅μ΄ μ€νμ __wallets__ μμ±μ COMWrapper κ°μ²΄λ₯Ό ν λΉνλ©° μ΄ν __wallets__ λ₯Ό 리ν΄ν©λλ€.
@property def stock_code(self) -> COMWrapper ν¬λ μ¨ API μ£Όμ μ½λ λͺ¨λμΈ CpUtil.CpStockCode μ μ¬μ©μ μν μμ± ν¨μμ λλ€. μ΅μ΄ μ€νμ __stock_code__ μμ±μ COMWrapper κ°μ²΄λ₯Ό ν λΉνλ©° μ΄ν __stock_code__ λ₯Ό 리ν΄ν©λλ€.
@property def chart(self) -> COMWrapper ν¬λ μ¨ API μ£Όμ μ°¨νΈ λͺ¨λμΈ CpSysDib.StockChart μ μ¬μ©μ μν μμ± ν¨μμ λλ€. μ΅μ΄ μ€νμ __chart__ μμ±μ COMWrapper κ°μ²΄λ₯Ό ν λΉνλ©° μ΄ν __chart__ λ₯Ό 리ν΄ν©λλ€.
@property def accounts(self) -> tuple utils μμ± ν¨μλ₯Ό ν΅ν΄ λ‘κ·ΈμΈλ κ³μ μ κ³μ’λ²νΈλ€μ νν ννλ‘ λ¦¬ν΄ν©λλ€.
def get_account_flags(self, account: str, account_filter: AccountFilter) -> tuple utils μμ± ν¨μλ₯Ό ν΅ν΄ κ³μ’ νλκ·Έμ 리ν΄νλ ν¨μμ λλ€. μΈμλ‘ κ³μ’ λ²νΈμ κ³μ’ μ νμ λ°μ΅λλ€. κ³μ’ νλκ·Έλ κ±°λ ν¨μλ±μ μ¬μ©λ©λλ€.
def get_all_codes(self, category: str, with_name: bool = False) -> tuple codes μμ± ν¨μλ₯Ό ν΅ν΄ μμ₯(kospi, kosdaq)μ λ¬Έμμ΄λ‘ μΈμλ‘ λ°μ ν΄λΉ μμ₯μ λͺ¨λ μ’ λͺ©μ ννλ‘ λ¦¬ν΄νλ ν¨μμ λλ€. with_name μΈμκ° Trueμ΄λ©΄ (μ½λ, μ΄λ¦) ννμ ννλ€μ 리ν΄ν©λλ€. def get_price_data(self, code: str) -> dict markets μμ± ν¨μλ₯Ό ν΅ν΄ μμΈ μ 보λ₯Ό λμ λλ¦¬λ‘ λ¦¬ν΄ν©λλ€. λ°ννλ λ°μ΄ν°λ μλμ κ°μ΅λλ€.
ν€
κ°
code
μ’ λͺ© μ½λ
name
μ’ λͺ© μ΄λ¦
time
μκ°4
diff
μ μΌ λλΉ
price
κ°
close_price
μ’ κ°
high_price
κ³ κ°
low_price
μ κ°
offer
λ§€λνΈκ°
bid
λ§€μνΈκ°
volume
κ±°λλ
volume_price
κ±°λμ‘
expect_flag
μμ 체결 κ΅¬λΆ νλκ·Έ
'0' - λμνΈκ° λ° μ₯ μ΄μΈ μκ°
'1' - λμ νΈκ° μκ°
'2' - μ₯λ΄
expect_price
μμ 체결κ°
expect_diff
μ μΌ λλΉ μμ 체결κ°
expect_volume
μμ 체결 μλ
def fetch_ohlcv(self, code: str, timeframe: tuple, since: datetime, limit: int, fill_gap=False, use_adjusted_price=True) -> List[Candle]: chart μμ± ν¨μλ₯Ό ν΅ν΄ κ³Όκ±° μμΈ μ 보 OHLCV(μκ°, κ³ κ°, μ κ°, μ’ κ°, κ±°λλ) λ₯Ό 리ν΄νλ ν¨μ μ λλ€. μ’ λͺ© μ½λ, νμνλ μ(μκ°κ°, TimeFrameUnit), μ‘°νμΌ, μ΅λμ‘°νμ λ₯Ό μΈμλ‘ λ°μ΅λλ€. fill_gap μ ν μΈμλ₯Ό True λ‘ νλ©΄ κ°λ³΄μ μ μ μ© ν μ μμΌλ©° use_adjusted_price μ νμΈμλ₯Ό False λ‘ νλ©΄ μμ μ£Όκ° μ¬μ©μ μ ν μ μμ΅λλ€. μ΄ λ§ν¬μμ μμ λ₯Ό νμΈν μ μμΌλ©° λ°ννλ λ°μ΄ν°λ μλμ κ°μ΅λλ€.
start_time
μμμΌ
end_time
μ’ λ£μΌ
open_price
μκ°
high_price
κ³ κ°
low_price
μ κ°
close_price
μ’ κ°
volume
κ±°λλ
def get_holding_stocks(self, account_number: str, flag: str, count: int = 50) -> dict wallets μμ± ν¨μλ₯Ό ν΅ν΄ μ’ ν© λ³΄μ μμ° μ 보λ₯Ό λμ λλ¦¬λ‘ λ¦¬ν΄ν©λλ€. κ³μ’λ²νΈμ κ³μ’ νλκ·Έλ₯Ό μΈμλ‘ λ°μΌλ©° κ°μλ 50κ°λ‘ μ ν μΈμλ‘ λ°μ΅λλ€. κ³μ’ νλκ·Έλ get_account_flags λ₯Ό ν΅ν΄ μ»μ μ μμ΅λλ€. λ°ννλ λ°μ΄ν°λ μλμ κ°μ΅λλ€.
ν€
total_expect_valuation
μ΄ νκ° κΈμ‘
remain_deposit
μμκΈ
stocks
보μ μ£Όμ λμ λ리 리μ€νΈ λμ λ리 μ { 'code': μ’ λͺ©μ½λ, 'name': μ’ λͺ©λͺ , 'quantity': μλ, 'bought_price': λ§€μ κΈμ‘, 'expect_price': νκ°κΈμ‘,
'expect_profit': νκ°μμ΅, }
def _order(self, account: str, code: str, quantity: int, price: int, flag: str, action: str) -> bool trades μμ± ν¨μλ₯Ό ν΅ν΄ μ§μ κ° μ£Όλ¬Ένμ¬ μ£Όλ¬Έμ μ±κ³΅(체결 X) μ¬λΆλ₯Ό True / False λ‘ λ¦¬ν΄ν©λλ€. κ³μ’λ²νΈ, μ’ λͺ©μ½λ, μλ, κ°κ²©, κ³μ’ νλκ·Έ, μ‘μ (λ§€μ or λ§€λ) λ₯Ό μΈμλ‘ λ°μΌλ©° μ‘μ μ 'buy', 'sell' λ¬Έμμ΄λ‘ λ°μ __trade_actions__ μμ±μ ν΅ν΄ κ°μ μΉννμ¬ μ¬μ©ν©λλ€. κ³μ’ νλκ·Έλ get_account_flags λ₯Ό ν΅ν΄ μ»μ μ μμ΅λλ€.
def buy(self, account: str, code: str, quantity: int, price: int, flag: str) -> bool _order ν¨μλ₯Ό ν΅ν΄ μ§μ κ° λ§€μλ₯Ό ν©λλ€. κ³μ’λ²νΈ, μ’ λͺ©μ½λ, μλ, κ°κ²©, κ³μ’ νλκ·Έκ° νμν©λλ€. κ³μ’ νλκ·Έλ get_account_flags λ₯Ό ν΅ν΄ μ»μ μ μμ΅λλ€.
def sell(self, account: str, code: str, quantity: int, price: int, flag: str) -> bool _order ν¨μλ₯Ό ν΅ν΄ μ§μ κ° λ§€λλ₯Ό ν©λλ€. κ³μ’λ²νΈ, μ’ λͺ©μ½λ, μλ, κ°κ²©, κ³μ’ νλκ·Έκ° νμν©λλ€. κ³μ’ νλκ·Έλ get_account_flags λ₯Ό ν΅ν΄ μ»μ μ μμ΅λλ€.
def code_to_name(self, code: str) stock_code μμ± ν¨μλ₯Ό ν΅ν΄ μ’ λͺ© μ½λλ₯Ό μ’ λͺ© μ΄λ¦μΌλ‘ 리ν΄ν©λλ€.
def name_to_code(self, name: str) stock_code μμ± ν¨μλ₯Ό ν΅ν΄ μ’ λͺ© μ΄λ¦μ μ’ λͺ© μ½λλ‘ λ¦¬ν΄ν©λλ€.
Last updated
Was this helpful?