μ£Όμ μμ₯μμ μ±κ³΅μ μΈ ν¬μλ₯Ό μ΄μ΄κ°κΈ° μν΄ λ§€μΌ νμ ν΄μΌ νλ ν΅μ¬ λ°μ΄ν°λ ν¬μ μ£Όμ²΄λ³ μκΈ λν₯μ λλ€. μΈκ΅μΈκ³Ό κΈ°κ΄μ΄ μ΄λ€ μ’ λͺ©μ μ§μ€μ μΌλ‘ μ¬λ€μ΄κ³ μλμ§, λ°λλ‘ μ΄λ€ μ’ λͺ©μμ μκΈμ μ μΆμν€κ³ μλμ§ μΆμ νλ μμ μ μ£Όκ° μΆμΈλ₯Ό μμΈ‘νλ κ°μ₯ κ°λ ₯ν λ¬΄κΈ°κ° λ©λλ€. νμ§λ§ λ§€μΌ μ₯ λ§κ° ν μ¦κΆμ¬ HTSλ MTSμ μ μνμ¬ μλ§μ μ’ λͺ©μ λ°μ΄ν°λ₯Ό μΌμΌμ΄ μλμΌλ‘ 볡μ¬νκ³ μ 리νλ μΌμ λ²κ±°λ‘κ³ μκ°μ΄ μ€λ 걸립λλ€.
μ΄λ¬ν λΉν¨μ¨μ ν΄κ²°ν΄ μ£Όλ κ°μ₯ νμ€ν μ루μ μ΄ λ°λ‘ νμ΄μ¬(Python)κ³Ό OpenPyXL, κ·Έλ¦¬κ³ μ¦κΆμ¬ APIλ₯Ό κ²°ν©ν #μμ μλν νλ‘κ·Έλ¨ κ΅¬μΆμ λλ€. μ€λ ν¬μ€ν μμλ λ§€μΌ μ₯ λ§κ° ν μλμΌλ‘ μΈκ΅μΈκ³Ό κΈ°κ΄μ μκΈ λ°μ΄ν°λ₯Ό μΆμΆνκ³ , 쑰건λ³λ‘ κ°κ³΅νμ¬ μμ μνΈμ μλ²½νκ² μ λν΄ μ£Όλ μμ€ν κ΅¬μΆ λ°©λ²κ³Ό, μ μ λ λ°μ΄ν°λ₯Ό λ°νμΌλ‘ μ£Όκ° λ°λ±μ νμ΄λ°μ μ‘λ μ€μ ν¬μ λ§€λ§€ μ λ΅μ μλ²½νκ² μ λ¦¬ν΄ λλ¦¬κ² μ΅λλ€.
μκΈ λ°μ΄ν° νμ΄νλΌμΈ μλνκ° νμν μ΄μ
λ§μ κ°μΈ ν¬μμλ€μ΄ κ°μ΄λ λ¨νΈμ μΈ κΈ°μ¬, μ νλ²μ μΆμ²μ μμ‘΄ν΄ λ§€λ§€λ₯Ό μ§νν©λλ€. νμ§λ§ μμ₯μ μμ§μ΄λ κ±°λ μκΈμ μλ²½νκ² κ³μ°λ μκ³ λ¦¬μ¦κ³Ό μμΉμ κΈ°λ°νμ¬ λ§€λ§€λ₯Ό μ€νν©λλ€.
1. λ°μ΄ν° μμ§ μκ°μ νμ μ λ¨μΆ
λ§€μΌ μ½μ€νΌμ μ½μ€λ₯ μμ₯μμ κ±°λλλ μμ² κ° μ’ λͺ© μ€ λ©μ΄μ μκΈμ΄ λ€μ΄μ¨ μ’ λͺ©μ μΌμΌμ΄ νν°λ§νλ €λ©΄ μ΅μ 1~2μκ° μ΄μμ μμ μκ°μ΄ μμλ©λλ€. νμ§λ§ #μμ μλν μ€ν¬λ¦½νΈλ₯Ό ν λ² κ΅¬μΆν΄ λλ©΄, λ²νΌ νλλ₯Ό λλ₯΄κ±°λ λ§€μΌ μ₯ λ§κ° μ§ν μ ν΄μ§ μκ°μ μ»΄ν¨ν°κ° μμμ μμ΄ λ§μ μ μ λ 리μ€νΈλ₯Ό κ°μ Έμ΅λλ€. μ€μ΄λ μκ°λ§νΌ κΈ°μ μ μ¬λ¬΄μ νλ λͺ¨λ©ν λΆμμ μ§μ€ν μ μμ΄ ν¬μ ν¨μ¨μ±μ΄ λΉμ½μ μΌλ‘ μμΉν©λλ€.
2. μ£Όκ΄μ κ°μ μ λ°°μ ν κ°κ΄μ μ€ν¬λ¦¬λ
μλμΌλ‘ λ°μ΄ν°λ₯Ό μ°Ύλ€ λ³΄λ©΄ λ³ΈμΈμ΄ μ΄λ―Έ 보μ νκ³ μκ±°λ κ΄μ¬μ΄ μλ μ’ λͺ©μλ§ μμ μ΄ κ°λ 'νμΈ νΈν₯'μ λΉ μ§κΈ° μ½μ΅λλ€. λ°μ΄ν° νμ΄νλΌμΈμ ν΅ν #μ£Όμλ°μ΄ν°λΆμ κΈ°λ²μ μμ₯μ λͺ¨λ μ’ λͺ©μ λμΌν μ μμμ νκ°ν©λλ€. λΉμΌ μΈκ΅μΈ μλ§€μ κΈμ‘ μμ, μ°κΈ°κΈ μ°μ λ§€μ μΌμ μμ λ± λͺ νν μμΉ κΈ°μ€μ λ°λΌ μ’ λͺ©μ κ±Έλ¬λ΄λ―λ‘ μμ₯μμ μλ‘κ² λ μ€λ₯΄λ μ£Όλμ£Όλ₯Ό λμΉμ§ μκ³ ν¬μ°©ν μ μμ΅λλ€.
νμ΄μ¬κ³Ό HTS APIλ₯Ό νμ©ν λ°μ΄ν° μΆμΆ λ©μ»€λμ¦
μκΈ λ°μ΄ν°λ₯Ό μλμΌλ‘ κ°μ Έμ μμ νμΌλ‘ μ 리νλ μμ€ν μ μ 체μ μΈ κ΅¬μ‘°μ νλ¦μ λ¨κ³λ³λ‘ νμ ν΄ λ³΄κ² μ΅λλ€.
1. API μ°λ λ° λ°μ΄ν° μμ² (Data Fetching)
κ΅λ΄ μ£Όμ μ¦κΆμ¬(ν€μμ¦κΆ Open API, λμ μ¦κΆ ν¬λ μ¨ API λ±)λ κΈμ΅ λ°μ΄ν° μΉμ¬μ΄νΈμμλ ν¬μμλ³ μλ§€μ λ°μ΄ν°λ₯Ό μμ²ν μ μλ μΈν°νμ΄μ€λ₯Ό μ 곡ν©λλ€. νμ΄μ¬ νκ²½μμ 컨νΈλ‘€λ¬λ₯Ό ν΅ν΄ 'λΉμΌ ν¬μμλ³ μλ§€μ μμ μ’ λͺ©' μμ² ν¨μλ₯Ό νΈμΆν©λλ€. μ΄λ μ‘°ν 쑰건μΌλ‘ μ½μ€νΌ/μ½μ€λ₯ μμ₯ ꡬλΆ, μ‘°ν μΌμ, κ·Έλ¦¬κ³ μλ§€μ μ λ ¬ κΈ°μ€(μλ λλ κΈμ‘)μ νλΌλ―Έν°λ‘ μ λ¬ν©λλ€.
2. λ°μ΄ν° κ°κ³΅ λ° νμ€ν (Data Processing)
μ¦κΆμ¬ μλ²μμ μμ ν μμ² λ°μ΄ν°(Raw Data)λ κ°κ³΅λμ§ μμ μνμ λλ€. νμ΄μ¬μ Pandas λΌμ΄λΈλ¬λ¦¬λ₯Ό νμ©νμ¬ λ°μ΄ν°νλ μ(DataFrame) ννλ‘ λ³νν λ€, λΆνμν 컬λΌμ μ κ±°νκ³ νμν λ°μ΄ν°λ§ λ¨κΉλλ€. μ£Όκ°, κ±°λλ, μΈκ΅μΈ μλ§€μ μλ, κΈ°κ΄ μλ§€μ μλ, μ°κΈ°κΈ μλ§€μ μλ, μ¬λͺ¨νλ μλ§€μ μλ λ±μ μ§νλ₯Ό 보기 μ½κ² μ λ ¬νλ©°, κΈμ‘ λ¨μλ λ°±λ§ μμ΄λ μ΅ μ λ¨μλ‘ λ³ννμ¬ μκ°μ μ§κ΄μ±μ λμ λλ€.
3. OpenPyXL λ° xlwingsλ₯Ό νμ©ν μμ μΆλ ₯ (Excel Export)
μ μ λ λ°μ΄ν°λ₯Ό μμ μμμ μλμΌλ‘ κΈ°λ‘ν©λλ€. λ¨μν κ°λ§ λ£λ κ²μ΄ μλλΌ μμκΉμ§ κΉλνκ² μ μ©νλ κ²μ΄ ν΅μ¬μ λλ€. μλ§€μ μμ μ’ λͺ©μ λΉ¨κ°μ κ°μ‘°, μλ§€λ μμ μ’ λͺ©μ νλμ κ°μ‘° 쑰건μ μ μ©νκ³ , μκ°μ΄μ‘ λλΉ μλ§€μ λΉμ¨ κ³μ° 곡μμ μλ μ½μ ν©λλ€. μ΄λ¬ν #μμ μλν μμνλ₯Ό μ μ©νλ©΄ λ§€μΌ λ μ§λ³λ‘ μλ‘μ΄ μνΈκ° μμ±λμ΄ μΌλ³ μκΈ λμ μΆμ΄λ₯Ό νλμ λͺ¨λν°λ§ν μ μλ λλ§μ λ°μ΄ν°λ² μ΄μ€κ° μμ±λ©λλ€.
μκΈ λ°μ΄ν° μμ μνΈμμ μ½μ΄λ΄μΌ ν 3κ°μ§ ν΅μ¬ μ§ν
μλν νλ‘κ·Έλ¨μ ν΅ν΄ μμ μνΈμ λ°μ΄ν°κ° κΉλνκ² μ 리λμ΄ μΆλ ₯λμλ€λ©΄, μ΄μ μ΄ λ°μ΄ν°λ₯Ό λ°νμΌλ‘ μ€μ λ§€λ§€ μ λ΅μ μ립ν΄μΌ ν©λλ€. μμ μνΈμμ λ°λμ νν°λ§ν΄μΌ ν 3κ°μ§ μκΈ μ§νμ λλ€.
1. μκ°μ΄μ‘ λλΉ μλ§€μ κΈμ‘ λΉμ¨ (μκΈ κ°λ)
λ¨μν μλ§€μ κΈμ‘μ΄ ν¬λ€κ³ ν΄μ 무쑰건 μ’μ μκΈμ μλλλ€. μκ°μ΄μ‘ 400μ‘° μμΈ μΌμ±μ μμ 500μ΅ μμ μΈκ΅μΈ λ§€μκ° λ€μ΄μ¨ κ²κ³Ό, μκ°μ΄μ‘ 5000μ΅ μμΈ μ€μνμ£Όμ 200μ΅ μμ μΈκ΅μΈ λ§€μκ° λ€μ΄μ¨ κ²μ μ£Όκ°μ λ―ΈμΉλ νκΈλ ₯μ΄ μμ ν λ€λ¦
λλ€. λ°λΌμ μμ
μνΈμ (λΉμΌ μλ§€μ κΈμ‘ / μκ°μ΄μ‘) * 100 ννμ κ³μ°μμ μΆκ°νμ¬ μκΈ κ°λλ₯Ό κ³μ°ν΄μΌ ν©λλ€. μ΄ λΉμ¨μ΄ 1~2% μ΄μμΌλ‘ λκ² μ°νλ μ’
λͺ©μ λΉμΌ λ©μ΄μ μΈλ ₯μ΄ μμ νκ³ λ§€μ§ν μ£Όλμ£Ό ν보μ
λλ€.
2. λ©μ΄μ μκΈμ μλμ΄ λ§€μ (μΈκ΅μΈ + κΈ°κ΄ λμ λ§€μ)
μΈκ΅μΈκ³Ό κΈ°κ΄μ΄ μλ‘ λ°λ ν¬μ§μ μ μ·¨ν λ(μΈκ΅μΈ λ§€μ, κΈ°κ΄ λ§€λ λ±)λ μ£Όκ°κ° λ°μ€κΆμ κ°νλ κ²½μ°κ° λ§μ΅λλ€. λ°λ©΄, μΈκ΅μΈκ³Ό κΈ°κ΄μ΄ ν©μ¬νμ¬ λμμ λλ λ§€μλ₯Ό μ§ννλ 'μλμ΄ λ§€μ' μ’ λͺ©μ κ°λ ₯ν μμΈλ₯Ό μ°μΆν©λλ€. #μ£Όμλ°μ΄ν°λΆμ μνΈμμ μΈκ΅μΈ μλ§€μ 컬λΌκ³Ό κΈ°κ΄ μλ§€μ 컬λΌμ΄ λͺ¨λ νλ¬μ€(+) κ°μ λνλ΄λ©° μμ 20κ° μ’ λͺ© μμ λμμ μ΄λ¦μ μ¬λ¦° μ’ λͺ©μ λ³λλ‘ μΆμΆν΄ λ΄λ νν°λ§ μ‘°κ±΄λ¬Έμ΄ νμμ μ λλ€.
3. μ°κΈ°κΈκ³Ό ν¬μ μ μ°μ λ§€μ μΌμ (μκΈμ μ§μμ±)
λ¨λ°μ± μκΈμ λ¨κΈ° λ°λ±μ κ·ΈμΉ κ°λ₯μ±μ΄ λμ§λ§, μΌμ£ΌμΌ μ΄μ μ°μμΌλ‘ λ§€μμΈκ° μ μ λλ μ’ λͺ©μ μ₯κΈ°μ μΈ μΆμΈ μμΉμΌλ‘ μ΄μ΄μ§λλ€. νΉν μ°κΈ°κΈκ³Ό ν¬μ 창ꡬλ μ₯κΈ°μ μΈ νλ μκΈμ κΈ°λ°μΌλ‘ μμ§μ΄κΈ° λλ¬Έμ, μ΄λ€μ΄ 3μΌ, 5μΌ, 10μΌ μ°μμΌλ‘ μλ§€μ μμμ μ΄λ¦μ μ¬λ¦¬κ³ μλ μ’ λͺ©μ μ§μκ° μ‘°μ λ°λ νλ½μ₯μμλ κ°ν νλ°© κ²½μ§μ±μ λνλ΄λ©° μ£Όκ°κ° λ°©μ΄λ©λλ€.
곡맀λ μκ³ λ°μ΄ν°μμ μ°λμ ν΅ν μ컀λ²λ§ ν¬μ°©
ν¬μ μ£Όμ²΄λ³ μλ§€μ μμ μμ μνΈλ₯Ό ꡬμΆν λ, #곡맀λμκ³ μΆμ λ°μ΄ν°λ₯Ό ν¨κ» μ°λνλ©΄ λ§€μ° κ°λ ₯ν λ§€λ§€ μ νΈλ₯Ό ν¬μ°©ν μ μμ΅λλ€.
1. μ컀λ²λ§ μ λ° κ΅¬κ° μ€ν¬λ¦¬λ
μ£Όκ°κ° νλ½ν κ²μ λ² ν νλ 곡맀λ μΈλ ₯μ΄ μμκ³Ό λ¬λ¦¬ μ£Όκ°κ° νλ½νμ§ μκ³ μμΉν λ, μμ€μ λ§κΈ° μν΄ μμ₯μμ μ£Όμμ κΈνκ² μ¬μ κ°λ νμμ μ컀λ²λ§μ΄λΌκ³ ν©λλ€. μμ μνΈμμ 'μ΅κ·Ό 곡맀λ μκ³ λΉμ€μ΄ λμλ μ’ λͺ©' λͺ©λ‘κ³Ό 'λΉμΌ μΈκ΅μΈ μλ§€μ μμ μ’ λͺ©' λͺ©λ‘μ λ§€μΉ(VLOOKUP λλ Pandas Merge)μν΅λλ€. 곡맀λ μκ³ κ° λ§μ μ’ λͺ©μ μΈκ΅κ³ 창ꡬμ λλ λ§€μμΈκ° μ μ λκΈ° μμνλ€λ©΄ μ΄λ νλ°μ μΈ μ£Όκ° μμΉμ λΆλ₯΄λ μ컀λ²λ§μ μμμ μΌλ‘ ν΄μν μ μμ΅λλ€.
2. μκΈμ μ°©μ νμ κ°λ³
λ¨μν μΈκ΅μΈ μλ§€μ μμμ μ¬λΌμ μλ€κ³ ν΄μ 무쑰건 κΈ°μ μ νΈμ¬λ‘ μΈν λ§€μλ‘ μ°©κ°ν΄μλ μ λ©λλ€. νμμν μμ₯μ μ λ¬Ό/μ΅μ λ§κΈ°μΌ μ°λ μ°¨μ΅κ±°λ λ¬Όλμ΄κ±°λ, μμν μ컀λ²λ§ λ¬ΌλμΌ μ μμ΅λλ€. μμ μμμ λμ°¨μκ³ μμΉμ 곡맀λ μκ³ μλμ΄ ν¨κ» κ°μνκ³ μλμ§ λ¨λ²μ νλ³ν΄ λμΌλ‘μ¨ μκΈμ μ§μ μ¬λΆλ₯Ό μ ννκ² νμ ν μ μμ΅λλ€.
νμ΄μ¬ μμ μλν νλ‘κ·Έλ¨ μ€μ κ΅¬μΆ λ¨κ³
μ§μ λλ§μ μκΈ μ 리 μλν νλ‘κ·Έλ¨μ λ§λ€κΈ° μν νμ€μ μΈ μ€ν μ μ°¨μ λλ€.
νμ΄μ¬ κ°λ° νκ²½ ꡬμΆ: Anaconda λλ VS Codeλ₯Ό μ€μΉνκ³
pandas,openpyxl,requestsλΌμ΄λΈλ¬λ¦¬λ₯Ό μ€λΉν©λλ€.μ¦κΆμ¬ API μ°κ²° λ° λ‘κ·ΈμΈ: ν€μμ¦κΆ Open API λͺ¨λμ νΈμΆνμ¬ μ¬μ©μ μΈμ¦μ μλ£νκ³ ν΅μ μνλ₯Ό μ κ²ν©λλ€.
ν¬μ μ£Όμ²΄λ³ μκΈ λ°μ΄ν° μμ² ν¨μ μ½λ©:
Python
# μμ: ν¬μμλ³ μλ§€μ λ°μ΄ν° μμ² κ΅¬μ‘° import pandas as pd def get_investor_net_buys(date): # μ¦κΆμ¬ APIλ₯Ό ν΅ν΄ λΉμΌ μΈκ΅μΈ/κΈ°κ΄/μ°κΈ°κΈ μλ§€μ μμ λ°μ΄ν° μμ§ # DataFrame μμ± λ° μ μ df = pd.DataFrame(raw_data) df['μκΈκ°λ(%)'] = (df['μλ§€μκΈμ‘'] / df['μκ°μ΄μ‘']) * 100 return df.sort_values(by='μκΈκ°λ(%)', ascending=False)μμ μλ μ μ₯ λ° μ‘°κ±΄λΆ μμ μ μ©:
openpyxlλΌμ΄λΈλ¬λ¦¬λ₯Ό μ΄μ©ν΄ λ§€μΌ λ μ§ μ΄λ¦μΌλ‘ μμ νμΌ(.xlsx)μ΄ μλ μ μ₯λλλ‘ μ€μ ν©λλ€.μλμ° μ€μΌμ€λ¬ λ±λ‘: λ§€μΌ μ£Όμ μμ₯μ΄ λ§κ°λκ³ μ΅μ’ λ°μ΄ν°κ° μ§κ³λλ μ€ν 4μ 30λΆμ νλ‘κ·Έλ¨μ΄ μλμΌλ‘ μ€νλλλ‘ μ€μΌμ€λ¬λ₯Ό λ±λ‘ν©λλ€.
μλν λ°μ΄ν°λ₯Ό νμ©ν μ€μ λ§€λ§€ κ°μ΄λλΌμΈ
μκΈ μλν μμ€ν μ μμ±νλ€λ©΄, μ΄λ₯Ό λ§€μΌ μ λ λ€μ λ μ λ§€λ§€ μλ리μ€λ₯Ό μμ±νλ λ° νμ©ν΄μΌ ν©λλ€.
1λ¨κ³ (μ λ 5μ): μλ μμ±λ μμ νμΌμ μ΄μ΄ 'μΈκ΅μΈ+κΈ°κ΄ μλμ΄ μλ§€μ μμ μ’ λͺ©'κ³Ό 'μκ°μ΄μ‘ λλΉ μκΈ κ°λ 1.5% μ΄μ μ’ λͺ©'μ μ€ν¬λ¦¬λν©λλ€.
2λ¨κ³ (μ λ 6μ): μ€ν¬λ¦¬λλ μ’ λͺ©λ€μ μ°¨νΈλ₯Ό μ΄μ΄ νμ¬ μ£Όκ° μμΉκ° μ κ³ μ λν μ리μ΄κ±°λ, λ°λ₯κΆμμ 첫 λ²μ§Έ μ₯λμλ΄μ΄ λμ€λ κ±°λλ ν°μ§ λλ¦Όλͺ© μ리μΈμ§ κΈ°μ μ λΆμμ λ³νν©λλ€.
3λ¨κ³ (λ€μ λ μ₯ μμ μ ): ν΄λΉ μ’ λͺ©μ #곡맀λμκ³ μΆμ μμΉλ₯Ό μ¬νμΈνκ³ , μ₯ μ΄λ° μΈκ΅κ³ 창ꡬ(λͺ¨κ±΄μ€ν 리, 골λλ§μμ€ λ±)μ λ§€μμΈκ° μ΄μ΄μ§λμ§ νμΈν λ€ λΆν λ§€μλ‘ μ κ·Όν©λλ€.
μ£Όμ μμ₯μ κ°μ μ΄ λ°°μ λ μ κ΅ν λ°μ΄ν°μ μΈμν°μ λλ€. λ§€μΌ λ§€μΌ μμ μκΈμ νμΈνλ λ²κ±°λ‘μμμ λ²μ΄λ, νμ΄μ¬ κΈ°λ°μ #μμ μλν νμ΄νλΌμΈμ ꡬμΆν΄ λλ©΄ λ¨λ€λ³΄λ€ ν¨μ¬ λΉ λ₯Έ μλλ‘ μμ₯μ μ£Όλμ£Όλ₯Ό μ μ ν μ μμ΅λλ€. 체κ³μ μΈ #μ£Όμλ°μ΄ν°λΆμ λ‘μ§κ³Ό λͺ νν μκΈ μΆμ μμΉμ κ²°ν©νμ¬, λ³λμ± κ°λν μμ₯ μμμ κΎΈμ€ν μ°μν₯νλ μ±κ³Όλ₯Ό λ§λ€μ΄ κ°μκΈ° λ°λλλ€.
#μμ μλν, #μ£Όμλ°μ΄ν°λΆμ, #곡맀λμκ³ μΆμ , #μΈκ΅μΈμλ§€μ, #κΈ°κ΄μλ§€μ, #μκΈλΆμ, #νμ΄μ¬μ£Όμ, #μλμ΄λ§€μ, #μ°κΈ°κΈλ§€μ§, #μ£Όμμλν
λ°μ΄ν° κΈ°λ°μ κ°κ΄μ μΈ μκΈ λΆμ μμ€ν μ ν΅ν΄ μμ₯μ λ Έμ΄μ¦λ₯Ό μ΄κ²¨λ΄κ³ μ±κ³΅μ μΈ ν¬μ κ²°μ€μ λ§ΊμΌμκΈ°λ₯Ό μ§μ¬μΌλ‘ μμν©λλ€!
