initial commit
This commit is contained in:
64
한국투자증권(API)/stocks_info/domestic_bond_code.py
Normal file
64
한국투자증권(API)/stocks_info/domestic_bond_code.py
Normal file
@@ -0,0 +1,64 @@
|
||||
'''장내채권 종목정보(bond_code.mst) 정제 파이썬 파일'''
|
||||
|
||||
import pandas as pd
|
||||
import urllib.request
|
||||
import ssl
|
||||
import zipfile
|
||||
import os
|
||||
|
||||
base_dir = os.getcwd()
|
||||
|
||||
def download_and_extract_file(url, output_dir, zip_filename, extracted_filename):
|
||||
# Download the file
|
||||
print(f"Downloading {zip_filename}...")
|
||||
ssl._create_default_https_context = ssl._create_unverified_context
|
||||
zip_filepath = os.path.join(output_dir, zip_filename)
|
||||
urllib.request.urlretrieve(url, zip_filepath)
|
||||
|
||||
# Extract the file
|
||||
print(f"Extracting {zip_filename}...")
|
||||
with zipfile.ZipFile(zip_filepath, 'r') as zip_ref:
|
||||
zip_ref.extractall(output_dir)
|
||||
|
||||
return os.path.join(output_dir, extracted_filename)
|
||||
|
||||
def get_bond_master_dataframe(file_path):
|
||||
print("Parsing the file...")
|
||||
with open(file_path, mode="r", encoding="cp949") as f:
|
||||
lines = f.readlines()
|
||||
|
||||
data = []
|
||||
for row in lines:
|
||||
row = row.strip()
|
||||
bond_type = row[0:2].strip()
|
||||
bond_cls_code = row[2:4].strip()
|
||||
stnd_iscd = row[4:16].strip()
|
||||
rdmp_date = row[-8:].strip()
|
||||
pblc_date = row[-16:-8].strip()
|
||||
lstn_date = row[-24:-16].strip()
|
||||
bond_int_cls_code = row[-26:-24].strip()
|
||||
sname = row[16:-26].rstrip() # 종목명을 뒤에서부터 추출하여 남은 부분
|
||||
|
||||
data.append([bond_type, bond_cls_code, stnd_iscd, sname, bond_int_cls_code,
|
||||
lstn_date, pblc_date, rdmp_date])
|
||||
|
||||
columns = ['유형', '채권분류코드', '표준코드', '종목명', '채권이자분류코드',
|
||||
'상장일', '발행일', '상환일']
|
||||
|
||||
df = pd.DataFrame(data, columns=columns)
|
||||
return df
|
||||
|
||||
# 채권종목코드 마스터파일 다운로드 및 파일 경로
|
||||
url = "https://new.real.download.dws.co.kr/common/master/bond_code.mst.zip"
|
||||
zip_filename = "bond_code.zip"
|
||||
extracted_filename = "bond_code.mst"
|
||||
|
||||
file_path = download_and_extract_file(url, base_dir, zip_filename, extracted_filename)
|
||||
|
||||
# 데이터프레임 생성 및 엑셀 파일로 저장
|
||||
df_bond = get_bond_master_dataframe(file_path)
|
||||
|
||||
# 엑셀 파일 저장
|
||||
print("Saving to Excel...")
|
||||
df_bond.to_excel('bond_code.xlsx', index=False)
|
||||
print("Excel file created successfully.")
|
||||
44
한국투자증권(API)/stocks_info/domestic_cme_future_code.py
Normal file
44
한국투자증권(API)/stocks_info/domestic_cme_future_code.py
Normal file
@@ -0,0 +1,44 @@
|
||||
'''CME연계 야간선물 종목코드(fo_cme_code.mst) 정제 파이썬 파일'''
|
||||
|
||||
import pandas as pd
|
||||
import urllib.request
|
||||
import ssl
|
||||
import zipfile
|
||||
import os
|
||||
|
||||
base_dir = os.getcwd()
|
||||
|
||||
def get_domestic_cme_future_master_dataframe(base_dir):
|
||||
|
||||
# download file
|
||||
print("Downloading...")
|
||||
|
||||
ssl._create_default_https_context = ssl._create_unverified_context
|
||||
urllib.request.urlretrieve("https://new.real.download.dws.co.kr/common/master/fo_cme_code.mst.zip", base_dir + "\\fo_cme_code.mst.zip")
|
||||
os.chdir(base_dir)
|
||||
|
||||
fo_cme_code_zip = zipfile.ZipFile('fo_cme_code.mst.zip')
|
||||
fo_cme_code_zip.extractall()
|
||||
fo_cme_code_zip.close()
|
||||
file_name = base_dir + "\\fo_cme_code.mst"
|
||||
columns = ['상품종류','단축코드','표준코드',' 한글종목명',
|
||||
'행사가',' 기초자산 단축코드',' 기초자산 명']
|
||||
df=pd.DataFrame(columns=columns)
|
||||
ridx=1
|
||||
with open(file_name, mode="r", encoding="cp949") as f:
|
||||
for row in f:
|
||||
a = row[0:1]
|
||||
b = row[1:10].strip()
|
||||
c = row[10:22].strip()
|
||||
d = row[22:63].strip()
|
||||
e = row[63:72].strip()
|
||||
f = row[72:81].strip()
|
||||
g = row[81:].strip()
|
||||
df.loc[ridx] = [a,b,c,d,e,f,g]
|
||||
ridx += 1
|
||||
df.to_excel('fo_cme_code.xlsx',index=False) # 현재 위치에 엑셀파일로 저장
|
||||
|
||||
return df
|
||||
|
||||
df = get_domestic_cme_future_master_dataframe(base_dir)
|
||||
print("Done")
|
||||
68
한국투자증권(API)/stocks_info/domestic_commodity_future_code.py
Normal file
68
한국투자증권(API)/stocks_info/domestic_commodity_future_code.py
Normal file
@@ -0,0 +1,68 @@
|
||||
'''상품선물옵션 종목코드(fo_com_code_mts.mst) 정제 파이썬 파일'''
|
||||
|
||||
import pandas as pd
|
||||
import urllib.request
|
||||
import ssl
|
||||
import zipfile
|
||||
import os
|
||||
|
||||
base_dir = os.getcwd()
|
||||
|
||||
def get_domestic_com_future_master_dataframe(base_dir):
|
||||
|
||||
# download file
|
||||
print("Downloading...")
|
||||
|
||||
ssl._create_default_https_context = ssl._create_unverified_context
|
||||
urllib.request.urlretrieve("https://new.real.download.dws.co.kr/common/master/fo_com_code.mst.zip", base_dir + "\\fo_com_code.mst.zip")
|
||||
os.chdir(base_dir)
|
||||
|
||||
fo_com_code_zip = zipfile.ZipFile('fo_com_code.mst.zip')
|
||||
fo_com_code_zip.extractall()
|
||||
fo_com_code_zip.close()
|
||||
file_name = base_dir + "\\fo_com_code.mst"
|
||||
|
||||
# df1 : '상품구분','상품종류','단축코드','표준코드','한글종목명'
|
||||
tmp_fil1 = base_dir + "\\fo_com_code_part1.tmp"
|
||||
tmp_fil2 = base_dir + "\\fo_com_code_part2.tmp"
|
||||
wf1 = open(tmp_fil1, mode="w")
|
||||
wf2 = open(tmp_fil2, mode="w")
|
||||
with open(file_name, mode="r", encoding="cp949") as f:
|
||||
for row in f:
|
||||
rf1 = row[0:55]
|
||||
rf1_1 = rf1[0:1]
|
||||
rf1_2 = rf1[1:2]
|
||||
rf1_3 = rf1[2:11].strip()
|
||||
rf1_4 = rf1[11:23].strip()
|
||||
rf1_5 = rf1[23:55].strip()
|
||||
wf1.write(rf1_1 + ',' + rf1_2 + ',' + rf1_3 + ',' + rf1_4 + ',' + rf1_5 + '\n')
|
||||
rf2 = row[55:].lstrip()
|
||||
wf2.write(rf2)
|
||||
wf1.close()
|
||||
wf2.close()
|
||||
part1_columns = ['상품구분','상품종류','단축코드','표준코드','한글종목명']
|
||||
df1 = pd.read_csv(tmp_fil1, header=None, names=part1_columns, encoding='cp949')
|
||||
|
||||
# df2 : '월물구분코드','기초자산 단축코드','기초자산 명'
|
||||
tmp_fil3 = base_dir + "\\fo_com_code_part3.tmp"
|
||||
wf3 = open(tmp_fil3, mode="w")
|
||||
with open(tmp_fil2, mode="r", encoding="cp949") as f:
|
||||
for row in f:
|
||||
rf2 = row[:]
|
||||
rf2_1 = rf2[8:9]
|
||||
rf2_2 = rf2[9:12]
|
||||
rf2_3 = rf2[12:].strip()
|
||||
wf3.write(rf2_1 + ',' + rf2_2 + ',' + rf2_3 + '\n')
|
||||
wf3.close()
|
||||
part2_columns = ['월물구분코드','기초자산 단축코드','기초자산 명']
|
||||
df2 = pd.read_csv(tmp_fil3, header=None, names=part2_columns, encoding='cp949')
|
||||
|
||||
# DF : df1 + df2
|
||||
DF = pd.concat([df1,df2],axis=1)
|
||||
# print(len(df1), len(df2), len(DF))
|
||||
DF.to_excel('fo_com_code.xlsx',index=False) # 현재 위치에 엑셀파일로 저장
|
||||
|
||||
return DF
|
||||
|
||||
df = get_domestic_com_future_master_dataframe(base_dir)
|
||||
print("Done")
|
||||
105
한국투자증권(API)/stocks_info/domestic_elw_code.py
Normal file
105
한국투자증권(API)/stocks_info/domestic_elw_code.py
Normal file
@@ -0,0 +1,105 @@
|
||||
'''국내ELW 종목정보(elw_code.mst) 정제 파이썬 파일'''
|
||||
|
||||
import pandas as pd
|
||||
import urllib.request
|
||||
import ssl
|
||||
import zipfile
|
||||
import os
|
||||
|
||||
base_dir = os.getcwd()
|
||||
|
||||
def download_and_extract_file(url, output_dir, zip_filename, extracted_filename):
|
||||
# Download the file
|
||||
print(f"Downloading {zip_filename}...")
|
||||
ssl._create_default_https_context = ssl._create_unverified_context
|
||||
zip_filepath = os.path.join(output_dir, zip_filename)
|
||||
urllib.request.urlretrieve(url, zip_filepath)
|
||||
|
||||
# Extract the file
|
||||
print(f"Extracting {zip_filename}...")
|
||||
with zipfile.ZipFile(zip_filepath, 'r') as zip_ref:
|
||||
zip_ref.extractall(output_dir)
|
||||
|
||||
return os.path.join(output_dir, extracted_filename)
|
||||
|
||||
def get_elw_master_dataframe(file_path):
|
||||
print("Parsing the file...")
|
||||
with open(file_path, mode="r", encoding="cp949") as f:
|
||||
lines = f.readlines()
|
||||
|
||||
data = []
|
||||
for row in lines:
|
||||
# print(row)
|
||||
mksc_shrn_iscd = row[0:9].strip() # 단축코드
|
||||
stnd_iscd = row[9:21].strip() # 표준코드
|
||||
hts_kor_isnm = row[21:50].strip() # 한글 종목명
|
||||
|
||||
crow = row[50:].strip()
|
||||
elw_nvlt_optn_cls_code = crow[:1].strip() # ELW권리형태
|
||||
elw_ko_barrier = crow[1:14].strip() # ELW조기종료발생기준가격
|
||||
bskt_yn = crow[14:15].strip() # 바스켓 여부 (Y/N)
|
||||
unas_iscd1 = crow[15:24].strip() # 기초자산코드1
|
||||
unas_iscd2 = crow[24:33].strip() # 기초자산코드2
|
||||
unas_iscd3 = crow[33:42].strip() # 기초자산코드3
|
||||
unas_iscd4 = crow[42:51].strip() # 기초자산코드4
|
||||
unas_iscd5 = crow[51:60].strip() # 기초자산코드5
|
||||
|
||||
# Calculate positions from the end of the row
|
||||
mrkt_prtt_no10 = row[-6:].strip() # 시장 참가자 번호10
|
||||
mrkt_prtt_no9 = row[-11:-6].strip() # 시장 참가자 번호9
|
||||
mrkt_prtt_no8 = row[-16:-11].strip() # 시장 참가자 번호8
|
||||
mrkt_prtt_no7 = row[-21:-16].strip() # 시장 참가자 번호7
|
||||
mrkt_prtt_no6 = row[-26:-21].strip() # 시장 참가자 번호6
|
||||
mrkt_prtt_no5 = row[-31:-26].strip() # 시장 참가자 번호5
|
||||
mrkt_prtt_no4 = row[-36:-31].strip() # 시장 참가자 번호4
|
||||
mrkt_prtt_no3 = row[-41:-36].strip() # 시장 참가자 번호3
|
||||
mrkt_prtt_no2 = row[-46:-41].strip() # 시장 참가자 번호2
|
||||
mrkt_prtt_no1 = row[-51:-46].strip() # 시장 참가자 번호1
|
||||
lstn_stcn = row[-66:-51].strip() # 상장주수(천)
|
||||
prdy_avls = row[-75:-66].strip() # 전일시가총액(억)
|
||||
paym_date = row[-83:-75].strip() # 지급일
|
||||
rght_type_cls_code = row[-84:-83].strip() # 권리 유형 구분 코드
|
||||
rmnn_dynu = row[-88:-84].strip() # 잔존 일수
|
||||
stck_last_tr_month = row[-96:-88].strip() # 최종거래일
|
||||
acpr = row[-105:-96].strip() # 행사가
|
||||
elw_pblc_mrkt_prtt_no = row[-110:-105].strip() # 발행사코드
|
||||
|
||||
elw_pblc_istu_name = row[-11:-110].strip() # 발행사 한글 종목명
|
||||
|
||||
data.append([mksc_shrn_iscd, stnd_iscd, hts_kor_isnm,
|
||||
elw_nvlt_optn_cls_code, elw_ko_barrier, bskt_yn,
|
||||
unas_iscd1, unas_iscd2, unas_iscd3, unas_iscd4,
|
||||
unas_iscd5, elw_pblc_istu_name, elw_pblc_mrkt_prtt_no,
|
||||
acpr, stck_last_tr_month, rmnn_dynu, rght_type_cls_code,
|
||||
paym_date, prdy_avls, lstn_stcn, mrkt_prtt_no1,
|
||||
mrkt_prtt_no2, mrkt_prtt_no3, mrkt_prtt_no4,
|
||||
mrkt_prtt_no5, mrkt_prtt_no6, mrkt_prtt_no7,
|
||||
mrkt_prtt_no8, mrkt_prtt_no9, mrkt_prtt_no10])
|
||||
|
||||
columns = ['단축코드', '표준코드', '한글종목명', 'ELW권리형태', 'ELW조기종료발생기준가격',
|
||||
'바스켓 여부', '기초자산코드1', '기초자산코드2', '기초자산코드3',
|
||||
'기초자산코드4', '기초자산코드5', '발행사 한글 종목명', '발행사코드',
|
||||
'행사가', '최종거래일', '잔존 일수', '권리 유형 구분 코드', '지급일',
|
||||
'전일시가총액(억)', '상장주수(천)', '시장 참가자 번호1',
|
||||
'시장 참가자 번호2', '시장 참가자 번호3', '시장 참가자 번호4',
|
||||
'시장 참가자 번호5', '시장 참가자 번호6', '시장 참가자 번호7',
|
||||
'시장 참가자 번호8', '시장 참가자 번호9', '시장 참가자 번호10']
|
||||
|
||||
df = pd.DataFrame(data, columns=columns)
|
||||
return df
|
||||
|
||||
# File details
|
||||
url = "https://new.real.download.dws.co.kr/common/master/elw_code.mst.zip"
|
||||
zip_filename = "elw_code.zip"
|
||||
extracted_filename = "elw_code.mst"
|
||||
|
||||
# Download and extract the file
|
||||
file_path = download_and_extract_file(url, base_dir, zip_filename, extracted_filename)
|
||||
|
||||
# Create the DataFrame
|
||||
df = get_elw_master_dataframe(file_path)
|
||||
|
||||
# Save to Excel
|
||||
print("Saving to Excel...")
|
||||
df.to_excel('elw_code.xlsx', index=False)
|
||||
print("Excel file created successfully.")
|
||||
68
한국투자증권(API)/stocks_info/domestic_eurex_option_code.py
Normal file
68
한국투자증권(API)/stocks_info/domestic_eurex_option_code.py
Normal file
@@ -0,0 +1,68 @@
|
||||
'''EUREX연계 야간옵션 종목코드(fo_eurex_code.mst) 정제 파이썬 파일'''
|
||||
|
||||
import pandas as pd
|
||||
import urllib.request
|
||||
import ssl
|
||||
import zipfile
|
||||
import os
|
||||
|
||||
base_dir = os.getcwd()
|
||||
|
||||
def get_domestic_eurex_option_master_dataframe(base_dir):
|
||||
|
||||
# download file
|
||||
print("Downloading...")
|
||||
|
||||
ssl._create_default_https_context = ssl._create_unverified_context
|
||||
urllib.request.urlretrieve("https://new.real.download.dws.co.kr/common/master/fo_eurex_code.mst.zip", base_dir + "\\fo_eurex_code.mst.zip")
|
||||
os.chdir(base_dir)
|
||||
|
||||
fo_eurex_code_zip = zipfile.ZipFile('fo_eurex_code.mst.zip')
|
||||
fo_eurex_code_zip.extractall()
|
||||
fo_eurex_code_zip.close()
|
||||
file_name = base_dir + "\\fo_eurex_code.mst"
|
||||
|
||||
# df1 : '상품종류','단축코드','표준코드','한글종목명'
|
||||
tmp_fil1 = base_dir + "\\fo_eurex_code_part1.tmp"
|
||||
tmp_fil2 = base_dir + "\\fo_eurex_code_part2.tmp"
|
||||
wf1 = open(tmp_fil1, mode="w")
|
||||
wf2 = open(tmp_fil2, mode="w")
|
||||
with open(file_name, mode="r", encoding="cp949") as f:
|
||||
for row in f:
|
||||
rf1 = row[0:59]
|
||||
rf1_1 = rf1[0:1]
|
||||
rf1_2 = rf1[1:10]
|
||||
rf1_3 = rf1[10:22].strip()
|
||||
rf1_4 = rf1[22:59].strip()
|
||||
wf1.write(rf1_1 + ',' + rf1_2 + ',' + rf1_3 + ',' + rf1_4 + '\n')
|
||||
rf2 = row[59:].lstrip()
|
||||
wf2.write(rf2)
|
||||
wf1.close()
|
||||
wf2.close()
|
||||
part1_columns = ['상품종류','단축코드','표준코드','한글종목명']
|
||||
df1 = pd.read_csv(tmp_fil1, header=None, names=part1_columns, encoding='cp949')
|
||||
|
||||
# df2 : 'ATM구분','행사가','기초자산 단축코드','기초자산 명'
|
||||
tmp_fil3 = base_dir + "\\fo_eurex_code_part3.tmp"
|
||||
wf3 = open(tmp_fil3, mode="w")
|
||||
with open(tmp_fil2, mode="r", encoding="cp949") as f:
|
||||
for row in f:
|
||||
rf2 = row[:]
|
||||
rf2_1 = rf2[0:1]
|
||||
rf2_2 = rf2[1:9]
|
||||
rf2_3 = rf2[9:17]
|
||||
rf2_4 = rf2[17:].strip()
|
||||
wf3.write(rf2_1 + ',' + rf2_2 + ',' + rf2_3 + ',' + rf2_4 + '\n')
|
||||
wf3.close()
|
||||
part2_columns = ['ATM구분','행사가','기초자산 단축코드','기초자산 명']
|
||||
df2 = pd.read_csv(tmp_fil3, header=None, names=part2_columns, encoding='cp949')
|
||||
|
||||
# DF : df1 + df2
|
||||
DF = pd.concat([df1,df2],axis=1)
|
||||
# print(len(df1), len(df2), len(DF))
|
||||
DF.to_excel('fo_eurex_code.xlsx',index=False) # 현재 위치에 엑셀파일로 저장
|
||||
|
||||
return DF
|
||||
|
||||
df = get_domestic_eurex_option_master_dataframe(base_dir)
|
||||
print("Done")
|
||||
34
한국투자증권(API)/stocks_info/domestic_index_future_code.py
Normal file
34
한국투자증권(API)/stocks_info/domestic_index_future_code.py
Normal file
@@ -0,0 +1,34 @@
|
||||
'''지수선물옵션 종목코드(fo_idx_code_mts.mst) 정제 파이썬 파일'''
|
||||
|
||||
import pandas as pd
|
||||
import urllib.request
|
||||
import ssl
|
||||
import zipfile
|
||||
import os
|
||||
|
||||
base_dir = os.getcwd()
|
||||
|
||||
def get_domestic_future_master_dataframe(base_dir):
|
||||
|
||||
# download file
|
||||
print("Downloading...")
|
||||
|
||||
ssl._create_default_https_context = ssl._create_unverified_context
|
||||
urllib.request.urlretrieve("https://new.real.download.dws.co.kr/common/master/fo_idx_code_mts.mst.zip", base_dir + "\\fo_idx_code_mts.mst.zip")
|
||||
os.chdir(base_dir)
|
||||
|
||||
fo_idx_code_zip = zipfile.ZipFile('fo_idx_code_mts.mst.zip')
|
||||
fo_idx_code_zip.extractall()
|
||||
fo_idx_code_zip.close()
|
||||
file_name = base_dir + "\\fo_idx_code_mts.mst"
|
||||
|
||||
columns = ['상품종류','단축코드','표준코드',' 한글종목명',' ATM구분',
|
||||
' 행사가',' 월물구분코드',' 기초자산 단축코드',' 기초자산 명']
|
||||
df=pd.read_table(file_name, sep='|',encoding='cp949',header=None)
|
||||
df.columns = columns
|
||||
df.to_excel('fo_idx_code_mts.xlsx',index=False) # 현재 위치에 엑셀파일로 저장
|
||||
|
||||
return df
|
||||
|
||||
df = get_domestic_future_master_dataframe(base_dir)
|
||||
print("Done")
|
||||
39
한국투자증권(API)/stocks_info/domestic_stock_future_code.py
Normal file
39
한국투자증권(API)/stocks_info/domestic_stock_future_code.py
Normal file
@@ -0,0 +1,39 @@
|
||||
'''선물옵션 종목코드(fo_stk_code_mts.mst) 정제 파이썬 파일'''
|
||||
|
||||
import pandas as pd
|
||||
import urllib.request
|
||||
import ssl
|
||||
import zipfile
|
||||
import os
|
||||
|
||||
base_dir = os.getcwd()
|
||||
|
||||
def get_domestic_stk_future_master_dataframe(base_dir):
|
||||
|
||||
# download file
|
||||
print("Downloading...")
|
||||
|
||||
ssl._create_default_https_context = ssl._create_unverified_context
|
||||
urllib.request.urlretrieve("https://new.real.download.dws.co.kr/common/master/fo_stk_code_mts.mst.zip", base_dir + "\\fo_stk_code_mts.mst.zip")
|
||||
os.chdir(base_dir)
|
||||
|
||||
fo_stk_code_zip = zipfile.ZipFile('fo_stk_code_mts.mst.zip')
|
||||
fo_stk_code_zip.extractall()
|
||||
fo_stk_code_zip.close()
|
||||
file_name = base_dir + "\\fo_stk_code_mts.mst"
|
||||
|
||||
fo_stk_code_zip = zipfile.ZipFile('fo_stk_code_mts.mst.zip')
|
||||
fo_stk_code_zip.extractall()
|
||||
fo_stk_code_zip.close()
|
||||
file_name = base_dir + "\\fo_stk_code_mts.mst"
|
||||
|
||||
columns = ['상품종류','단축코드','표준코드',' 한글종목명',' ATM구분',
|
||||
' 행사가',' 월물구분코드',' 기초자산 단축코드',' 기초자산 명']
|
||||
df=pd.read_table(file_name, sep='|',encoding='cp949',header=None)
|
||||
df.columns = columns
|
||||
df.to_excel('fo_stk_code_mts.xlsx',index=False) # 현재 위치에 엑셀파일로 저장
|
||||
|
||||
return df
|
||||
|
||||
df = get_domestic_stk_future_master_dataframe(base_dir)
|
||||
print("Done")
|
||||
112
한국투자증권(API)/stocks_info/kis_konex_code_mst.py
Normal file
112
한국투자증권(API)/stocks_info/kis_konex_code_mst.py
Normal file
@@ -0,0 +1,112 @@
|
||||
'''코넥스주식 종목정보(konex_code.mst) 정제 파이썬 파일'''
|
||||
|
||||
import pandas as pd
|
||||
import urllib.request
|
||||
import ssl
|
||||
import zipfile
|
||||
import os
|
||||
|
||||
base_dir = os.getcwd()
|
||||
|
||||
def download_and_extract_file(url, output_dir, zip_filename, extracted_filename):
|
||||
# Download the file
|
||||
print(f"Downloading {zip_filename}...")
|
||||
ssl._create_default_https_context = ssl._create_unverified_context
|
||||
zip_filepath = os.path.join(output_dir, zip_filename)
|
||||
urllib.request.urlretrieve(url, zip_filepath)
|
||||
|
||||
# Extract the file
|
||||
print(f"Extracting {zip_filename}...")
|
||||
with zipfile.ZipFile(zip_filepath, 'r') as zip_ref:
|
||||
zip_ref.extractall(output_dir)
|
||||
|
||||
return os.path.join(output_dir, extracted_filename)
|
||||
|
||||
def get_knx_master_dataframe(file_path):
|
||||
print("Parsing the file...")
|
||||
with open(file_path, mode="r", encoding="cp949") as f:
|
||||
lines = f.readlines()
|
||||
|
||||
data = []
|
||||
for row in lines:
|
||||
row = row.strip()
|
||||
mksc_shrn_iscd = row[0:9].strip()
|
||||
stnd_iscd = row[9:21].strip()
|
||||
scrt_grp_cls_code = row[-184:-182].strip()
|
||||
stck_sdpr = row[-182:-173].strip()
|
||||
frml_mrkt_deal_qty_unit = row[-173:-168].strip()
|
||||
ovtm_mrkt_deal_qty_unit = row[-168:-163].strip()
|
||||
trht_yn = row[-163:-162].strip()
|
||||
sltr_yn = row[-162:-161].strip()
|
||||
mang_issu_yn = row[-161:-160].strip()
|
||||
mrkt_alrm_cls_code = row[-160:-158].strip()
|
||||
mrkt_alrm_risk_adnt_yn = row[-158:-157].strip()
|
||||
insn_pbnt_yn = row[-157:-156].strip()
|
||||
byps_lstn_yn = row[-156:-155].strip()
|
||||
flng_cls_code = row[-155:-153].strip()
|
||||
fcam_mod_cls_code = row[-153:-151].strip()
|
||||
icic_cls_code = row[-151:-149].strip()
|
||||
marg_rate = row[-149:-146].strip()
|
||||
crdt_able = row[-146:-145].strip()
|
||||
crdt_days = row[-145:-142].strip()
|
||||
prdy_vol = row[-142:-130].strip()
|
||||
stck_fcam = row[-130:-118].strip()
|
||||
stck_lstn_date = row[-118:-110].strip()
|
||||
lstn_stcn = row[-110:-95].strip()
|
||||
cpfn = row[-95:-74].strip()
|
||||
stac_month = row[-74:-72].strip()
|
||||
po_prc = row[-72:-65].strip()
|
||||
prst_cls_code = row[-65:-64].strip()
|
||||
ssts_hot_yn = row[-64:-63].strip()
|
||||
stange_runup_yn = row[-63:-62].strip()
|
||||
krx300_issu_yn = row[-62:-61].strip()
|
||||
sale_account = row[-61:-52].strip()
|
||||
bsop_prfi = row[-52:-43].strip()
|
||||
op_prfi = row[-43:-34].strip()
|
||||
thtr_ntin = row[-34:-29].strip()
|
||||
roe = row[-29:-20].strip()
|
||||
base_date = row[-20:-12].strip()
|
||||
prdy_avls_scal = row[-12:-3].strip()
|
||||
co_crdt_limt_over_yn = row[-3:-2].strip()
|
||||
secu_lend_able_yn = row[-2:-1].strip()
|
||||
stln_able_yn = row[-1:].strip()
|
||||
hts_kor_isnm = row[21:-184].strip()
|
||||
|
||||
data.append([mksc_shrn_iscd, stnd_iscd, hts_kor_isnm, scrt_grp_cls_code,
|
||||
stck_sdpr, frml_mrkt_deal_qty_unit, ovtm_mrkt_deal_qty_unit,
|
||||
trht_yn, sltr_yn, mang_issu_yn, mrkt_alrm_cls_code,
|
||||
mrkt_alrm_risk_adnt_yn, insn_pbnt_yn, byps_lstn_yn,
|
||||
flng_cls_code, fcam_mod_cls_code, icic_cls_code, marg_rate,
|
||||
crdt_able, crdt_days, prdy_vol, stck_fcam, stck_lstn_date,
|
||||
lstn_stcn, cpfn, stac_month, po_prc, prst_cls_code, ssts_hot_yn,
|
||||
stange_runup_yn, krx300_issu_yn, sale_account, bsop_prfi,
|
||||
op_prfi, thtr_ntin, roe, base_date, prdy_avls_scal,
|
||||
co_crdt_limt_over_yn, secu_lend_able_yn, stln_able_yn])
|
||||
|
||||
columns = ['단축코드', '표준코드', '종목명', '증권그룹구분코드', '주식 기준가',
|
||||
'정규 시장 매매 수량 단위', '시간외 시장 매매 수량 단위', '거래정지 여부',
|
||||
'정리매매 여부', '관리 종목 여부', '시장 경고 구분 코드', '시장 경고위험 예고 여부',
|
||||
'불성실 공시 여부', '우회 상장 여부', '락구분 코드', '액면가 변경 구분 코드',
|
||||
'증자 구분 코드', '증거금 비율', '신용주문 가능 여부', '신용기간', '전일 거래량',
|
||||
'주식 액면가', '주식 상장 일자', '상장 주수(천)', '자본금', '결산 월', '공모 가격',
|
||||
'우선주 구분 코드', '공매도과열종목여부', '이상급등종목여부', 'KRX300 종목 여부',
|
||||
'매출액', '영업이익', '경상이익', '단기순이익', 'ROE', '기준년월', '전일기준 시가총액(억)',
|
||||
'회사신용한도초과여부', '담보대출가능여부', '대주가능여부']
|
||||
|
||||
df = pd.DataFrame(data, columns=columns)
|
||||
return df
|
||||
|
||||
# 코넥스 종목코드 마스터파일 다운로드 및 파일 경로
|
||||
url = "https://new.real.download.dws.co.kr/common/master/konex_code.mst.zip"
|
||||
zip_filename = "konex_code.zip"
|
||||
extracted_filename = "konex_code.mst"
|
||||
|
||||
file_path = download_and_extract_file(url, base_dir, zip_filename, extracted_filename)
|
||||
|
||||
# 데이터프레임 생성 및 엑셀 파일로 저장
|
||||
df_knx = get_knx_master_dataframe(file_path)
|
||||
|
||||
# 엑셀 파일 저장
|
||||
print("Saving to Excel...")
|
||||
df_knx.to_excel('konex_code.xlsx', index=False)
|
||||
print("Excel file created successfully.")
|
||||
104
한국투자증권(API)/stocks_info/kis_kosdaq_code_mst.py
Normal file
104
한국투자증권(API)/stocks_info/kis_kosdaq_code_mst.py
Normal file
@@ -0,0 +1,104 @@
|
||||
'''코스닥주식종목코드(kosdaq_code.mst) 정제 파이썬 파일'''
|
||||
|
||||
import pandas as pd
|
||||
import urllib.request
|
||||
import ssl
|
||||
import zipfile
|
||||
import os
|
||||
|
||||
base_dir = os.getcwd()
|
||||
|
||||
def kosdaq_master_download(base_dir, verbose=False):
|
||||
|
||||
cwd = os.getcwd()
|
||||
if (verbose): print(f"current directory is {cwd}")
|
||||
ssl._create_default_https_context = ssl._create_unverified_context
|
||||
|
||||
urllib.request.urlretrieve("https://new.real.download.dws.co.kr/common/master/kosdaq_code.mst.zip",
|
||||
base_dir + "\\kosdaq_code.zip")
|
||||
|
||||
os.chdir(base_dir)
|
||||
if (verbose): print(f"change directory to {base_dir}")
|
||||
kosdaq_zip = zipfile.ZipFile('kosdaq_code.zip')
|
||||
kosdaq_zip.extractall()
|
||||
|
||||
kosdaq_zip.close()
|
||||
|
||||
if os.path.exists("kosdaq_code.zip"):
|
||||
os.remove("kosdaq_code.zip")
|
||||
|
||||
def get_kosdaq_master_dataframe(base_dir):
|
||||
file_name = base_dir + "\\kosdaq_code.mst"
|
||||
tmp_fil1 = base_dir + "\\kosdaq_code_part1.tmp"
|
||||
tmp_fil2 = base_dir + "\\kosdaq_code_part2.tmp"
|
||||
|
||||
wf1 = open(tmp_fil1, mode="w")
|
||||
wf2 = open(tmp_fil2, mode="w")
|
||||
|
||||
with open(file_name, mode="r", encoding="cp949") as f:
|
||||
for row in f:
|
||||
rf1 = row[0:len(row) - 222]
|
||||
rf1_1 = rf1[0:9].rstrip()
|
||||
rf1_2 = rf1[9:21].rstrip()
|
||||
rf1_3 = rf1[21:].strip()
|
||||
wf1.write(rf1_1 + ',' + rf1_2 + ',' + rf1_3 + '\n')
|
||||
rf2 = row[-222:]
|
||||
wf2.write(rf2)
|
||||
|
||||
wf1.close()
|
||||
wf2.close()
|
||||
|
||||
part1_columns = ['단축코드','표준코드','한글종목명']
|
||||
df1 = pd.read_csv(tmp_fil1, header=None, names=part1_columns, encoding='cp949')
|
||||
|
||||
field_specs = [2, 1,
|
||||
4, 4, 4, 1, 1,
|
||||
1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 9,
|
||||
5, 5, 1, 1, 1,
|
||||
2, 1, 1, 1, 2,
|
||||
2, 2, 3, 1, 3,
|
||||
12, 12, 8, 15, 21,
|
||||
2, 7, 1, 1, 1,
|
||||
1, 9, 9, 9, 5,
|
||||
9, 8, 9, 3, 1,
|
||||
1, 1
|
||||
]
|
||||
|
||||
part2_columns = ['증권그룹구분코드','시가총액 규모 구분 코드 유가',
|
||||
'지수업종 대분류 코드','지수 업종 중분류 코드','지수업종 소분류 코드','벤처기업 여부 (Y/N)',
|
||||
'저유동성종목 여부','KRX 종목 여부','ETP 상품구분코드','KRX100 종목 여부 (Y/N)',
|
||||
'KRX 자동차 여부','KRX 반도체 여부','KRX 바이오 여부','KRX 은행 여부','기업인수목적회사여부',
|
||||
'KRX 에너지 화학 여부','KRX 철강 여부','단기과열종목구분코드','KRX 미디어 통신 여부',
|
||||
'KRX 건설 여부','(코스닥)투자주의환기종목여부','KRX 증권 구분','KRX 선박 구분',
|
||||
'KRX섹터지수 보험여부','KRX섹터지수 운송여부','KOSDAQ150지수여부 (Y,N)','주식 기준가',
|
||||
'정규 시장 매매 수량 단위','시간외 시장 매매 수량 단위','거래정지 여부','정리매매 여부',
|
||||
'관리 종목 여부','시장 경고 구분 코드','시장 경고위험 예고 여부','불성실 공시 여부',
|
||||
'우회 상장 여부','락구분 코드','액면가 변경 구분 코드','증자 구분 코드','증거금 비율',
|
||||
'신용주문 가능 여부','신용기간','전일 거래량','주식 액면가','주식 상장 일자','상장 주수(천)',
|
||||
'자본금','결산 월','공모 가격','우선주 구분 코드','공매도과열종목여부','이상급등종목여부',
|
||||
'KRX300 종목 여부 (Y/N)','매출액','영업이익','경상이익','단기순이익','ROE(자기자본이익률)',
|
||||
'기준년월','전일기준 시가총액 (억)','그룹사 코드','회사신용한도초과여부','담보대출가능여부','대주가능여부'
|
||||
]
|
||||
|
||||
df2 = pd.read_fwf(tmp_fil2, widths=field_specs, names=part2_columns)
|
||||
|
||||
df = pd.merge(df1, df2, how='outer', left_index=True, right_index=True)
|
||||
|
||||
# clean temporary file and dataframe
|
||||
del (df1)
|
||||
del (df2)
|
||||
os.remove(tmp_fil1)
|
||||
os.remove(tmp_fil2)
|
||||
|
||||
print("Done")
|
||||
|
||||
return df
|
||||
|
||||
kosdaq_master_download(base_dir)
|
||||
df = get_kosdaq_master_dataframe(base_dir)
|
||||
|
||||
df.to_excel('kosdaq_code.xlsx',index=False) # 현재 위치에 엑셀파일로 저장
|
||||
df
|
||||
108
한국투자증권(API)/stocks_info/kis_kospi_code_mst.py
Normal file
108
한국투자증권(API)/stocks_info/kis_kospi_code_mst.py
Normal file
@@ -0,0 +1,108 @@
|
||||
'''코스피주식종목코드(kospi_code.mst) 정제 파이썬 파일'''
|
||||
|
||||
import urllib.request
|
||||
import ssl
|
||||
import zipfile
|
||||
import os
|
||||
import pandas as pd
|
||||
|
||||
base_dir = os.getcwd()
|
||||
|
||||
def kospi_master_download(base_dir, verbose=False):
|
||||
cwd = os.getcwd()
|
||||
if (verbose): print(f"current directory is {cwd}")
|
||||
ssl._create_default_https_context = ssl._create_unverified_context
|
||||
|
||||
urllib.request.urlretrieve("https://new.real.download.dws.co.kr/common/master/kospi_code.mst.zip",
|
||||
base_dir + "\\kospi_code.zip")
|
||||
|
||||
os.chdir(base_dir)
|
||||
if (verbose): print(f"change directory to {base_dir}")
|
||||
kospi_zip = zipfile.ZipFile('kospi_code.zip')
|
||||
kospi_zip.extractall()
|
||||
|
||||
kospi_zip.close()
|
||||
|
||||
if os.path.exists("kospi_code.zip"):
|
||||
os.remove("kospi_code.zip")
|
||||
|
||||
|
||||
def get_kospi_master_dataframe(base_dir):
|
||||
file_name = base_dir + "\\kospi_code.mst"
|
||||
tmp_fil1 = base_dir + "\\kospi_code_part1.tmp"
|
||||
tmp_fil2 = base_dir + "\\kospi_code_part2.tmp"
|
||||
|
||||
wf1 = open(tmp_fil1, mode="w")
|
||||
wf2 = open(tmp_fil2, mode="w")
|
||||
|
||||
with open(file_name, mode="r", encoding="cp949") as f:
|
||||
for row in f:
|
||||
rf1 = row[0:len(row) - 228]
|
||||
rf1_1 = rf1[0:9].rstrip()
|
||||
rf1_2 = rf1[9:21].rstrip()
|
||||
rf1_3 = rf1[21:].strip()
|
||||
wf1.write(rf1_1 + ',' + rf1_2 + ',' + rf1_3 + '\n')
|
||||
rf2 = row[-228:]
|
||||
wf2.write(rf2)
|
||||
|
||||
wf1.close()
|
||||
wf2.close()
|
||||
|
||||
part1_columns = ['단축코드', '표준코드', '한글명']
|
||||
df1 = pd.read_csv(tmp_fil1, header=None, names=part1_columns, encoding='cp949')
|
||||
|
||||
field_specs = [2, 1, 4, 4, 4,
|
||||
1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1,
|
||||
1, 9, 5, 5, 1,
|
||||
1, 1, 2, 1, 1,
|
||||
1, 2, 2, 2, 3,
|
||||
1, 3, 12, 12, 8,
|
||||
15, 21, 2, 7, 1,
|
||||
1, 1, 1, 1, 9,
|
||||
9, 9, 5, 9, 8,
|
||||
9, 3, 1, 1, 1
|
||||
]
|
||||
|
||||
part2_columns = ['그룹코드', '시가총액규모', '지수업종대분류', '지수업종중분류', '지수업종소분류',
|
||||
'제조업', '저유동성', '지배구조지수종목', 'KOSPI200섹터업종', 'KOSPI100',
|
||||
'KOSPI50', 'KRX', 'ETP', 'ELW발행', 'KRX100',
|
||||
'KRX자동차', 'KRX반도체', 'KRX바이오', 'KRX은행', 'SPAC',
|
||||
'KRX에너지화학', 'KRX철강', '단기과열', 'KRX미디어통신', 'KRX건설',
|
||||
'Non1', 'KRX증권', 'KRX선박', 'KRX섹터_보험', 'KRX섹터_운송',
|
||||
'SRI', '기준가', '매매수량단위', '시간외수량단위', '거래정지',
|
||||
'정리매매', '관리종목', '시장경고', '경고예고', '불성실공시',
|
||||
'우회상장', '락구분', '액면변경', '증자구분', '증거금비율',
|
||||
'신용가능', '신용기간', '전일거래량', '액면가', '상장일자',
|
||||
'상장주수', '자본금', '결산월', '공모가', '우선주',
|
||||
'공매도과열', '이상급등', 'KRX300', 'KOSPI', '매출액',
|
||||
'영업이익', '경상이익', '당기순이익', 'ROE', '기준년월',
|
||||
'시가총액', '그룹사코드', '회사신용한도초과', '담보대출가능', '대주가능'
|
||||
]
|
||||
|
||||
df2 = pd.read_fwf(tmp_fil2, widths=field_specs, names=part2_columns)
|
||||
|
||||
df = pd.merge(df1, df2, how='outer', left_index=True, right_index=True)
|
||||
|
||||
# clean temporary file and dataframe
|
||||
del (df1)
|
||||
del (df2)
|
||||
os.remove(tmp_fil1)
|
||||
os.remove(tmp_fil2)
|
||||
|
||||
print("Done")
|
||||
|
||||
return df
|
||||
|
||||
|
||||
kospi_master_download(base_dir)
|
||||
df = get_kospi_master_dataframe(base_dir)
|
||||
|
||||
#df3 = df[df['KRX증권'] == 'Y']
|
||||
df3 = df
|
||||
# print(df3[['단축코드', '한글명', 'KRX', 'KRX증권', '기준가', '증거금비율', '상장일자', 'ROE']])
|
||||
df3.to_excel('kospi_code.xlsx',index=False) # 현재 위치에 엑셀파일로 저장
|
||||
df3
|
||||
51
한국투자증권(API)/stocks_info/member_code.py
Normal file
51
한국투자증권(API)/stocks_info/member_code.py
Normal file
@@ -0,0 +1,51 @@
|
||||
'''회원사 정보(memcode.mst) 정제 파이썬 파일'''
|
||||
|
||||
import pandas as pd
|
||||
import urllib.request
|
||||
import ssl
|
||||
import os
|
||||
|
||||
# 현재 작업 디렉토리
|
||||
base_dir = os.getcwd()
|
||||
|
||||
def download_file(url, output_dir, filename):
|
||||
# 파일 다운로드
|
||||
print(f"Downloading {filename}...")
|
||||
ssl._create_default_https_context = ssl._create_unverified_context
|
||||
filepath = os.path.join(output_dir, filename)
|
||||
urllib.request.urlretrieve(url, filepath)
|
||||
return filepath
|
||||
|
||||
def parse_memcode_file(file_path):
|
||||
|
||||
print("Parsing the file...")
|
||||
with open(file_path, mode="r", encoding="cp949") as f:
|
||||
lines = f.readlines()
|
||||
|
||||
data = []
|
||||
for row in lines:
|
||||
if row.strip(): # 빈 줄 제외
|
||||
mbcr_no = row[:5].strip()
|
||||
mbcr_name = row[5:-2].strip()
|
||||
glob_yn = row[-2:].strip()
|
||||
data.append([mbcr_no, mbcr_name, glob_yn])
|
||||
|
||||
columns = ['회원사코드', '회원사명', '구분(0=국내, 1=외국)']
|
||||
df = pd.DataFrame(data, columns=columns)
|
||||
return df
|
||||
|
||||
# 회원사 종목코드 마스터파일 다운로드 및 파일 경로
|
||||
url = "https://new.real.download.dws.co.kr/common/master/memcode.mst"
|
||||
filename = "memcode.mst"
|
||||
|
||||
# 파일 다운로드
|
||||
file_path = download_file(url, base_dir, filename)
|
||||
|
||||
# 데이터프레임 생성
|
||||
df_memcode = parse_memcode_file(file_path)
|
||||
|
||||
# 엑셀 파일로 저장
|
||||
excel_filename = 'memcode.xlsx'
|
||||
print("Saving to Excel...")
|
||||
df_memcode.to_excel(excel_filename, index=False)
|
||||
print(f"Excel file '{excel_filename}' created successfully.")
|
||||
61
한국투자증권(API)/stocks_info/overseas_future_code.py
Normal file
61
한국투자증권(API)/stocks_info/overseas_future_code.py
Normal file
@@ -0,0 +1,61 @@
|
||||
'''해외선물옵션종목코드 정제 파이썬 파일 : ffcode.mst'''
|
||||
|
||||
import pandas as pd
|
||||
import urllib.request
|
||||
import ssl
|
||||
import zipfile
|
||||
import os
|
||||
|
||||
base_dir = os.getcwd()
|
||||
|
||||
def get_overseas_future_master_dataframe(base_dir):
|
||||
|
||||
ssl._create_default_https_context = ssl._create_unverified_context
|
||||
urllib.request.urlretrieve("https://new.real.download.dws.co.kr/common/master/ffcode.mst.zip", base_dir + "\\ffcode.mst.zip")
|
||||
os.chdir(base_dir)
|
||||
|
||||
nas_zip = zipfile.ZipFile('ffcode.mst.zip')
|
||||
nas_zip.extractall()
|
||||
nas_zip.close()
|
||||
|
||||
file_name = base_dir + "\\ffcode.mst"
|
||||
columns = ['종목코드', '서버자동주문 가능 종목 여부', '서버자동주문 TWAP 가능 종목 여부', '서버자동 경제지표 주문 가능 종목 여부',
|
||||
'필러', '종목한글명', '거래소코드 (ISAM KEY 1)', '품목코드 (ISAM KEY 2)', '품목종류', '출력 소수점', '계산 소수점',
|
||||
'틱사이즈', '틱가치', '계약크기', '가격표시진법', '환산승수', '최다월물여부 0:원월물 1:최다월물',
|
||||
'최근월물여부 0:원월물 1:최근월물', '스프레드여부', '스프레드기준종목 LEG1 여부', '서브 거래소 코드']
|
||||
df=pd.DataFrame(columns=columns)
|
||||
ridx=1
|
||||
print("Downloading...")
|
||||
with open(file_name, mode="r", encoding="cp949") as f:
|
||||
for row in f:
|
||||
a = row[:32] # 종목코드
|
||||
b = row[32:33].rstrip() # 서버자동주문 가능 종목 여부
|
||||
c = row[33:34].rstrip() # 서버자동주문 TWAP 가능 종목 여부
|
||||
d = row[34:35] # 서버자동 경제지표 주문 가능 종목 여부
|
||||
e = row[35:82].rstrip() # 필러
|
||||
f = row[82:107].rstrip() # 종목한글명
|
||||
g = row[-92:-82] # 거래소코드 (ISAM KEY 1)
|
||||
h = row[-82:-72].rstrip() # 품목코드 (ISAM KEY 2)
|
||||
i = row[-72:-69].rstrip() # 품목종류
|
||||
j = row[-69:-64] # 출력 소수점
|
||||
k = row[-64:-59].rstrip() # 계산 소수점
|
||||
l = row[-59:-45].rstrip() # 틱사이즈
|
||||
m = row[-45:-31] # 틱가치
|
||||
n = row[-31:-21].rstrip() # 계약크기
|
||||
o = row[-21:-17].rstrip() # 가격표시진법
|
||||
p = row[-17:-7] # 환산승수
|
||||
q = row[-7:-6].rstrip() # 최다월물여부 0:원월물 1:최다월물
|
||||
r = row[-6:-5].rstrip() # 최근월물여부 0:원월물 1:최근월물
|
||||
s = row[-5:-4].rstrip() # 스프레드여부
|
||||
t = row[-4:-3].rstrip() # 스프레드기준종목 LEG1 여부 Y/N
|
||||
u = row[-3:].rstrip() # 서브 거래소 코드
|
||||
|
||||
df.loc[ridx] = [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u]
|
||||
ridx += 1
|
||||
|
||||
df.to_excel('ffcode.xlsx',index=False) # 현재 위치에 엑셀파일로 저장
|
||||
|
||||
return df
|
||||
|
||||
df = get_overseas_future_master_dataframe(base_dir)
|
||||
print("Done")
|
||||
81
한국투자증권(API)/stocks_info/overseas_index_code.py
Normal file
81
한국투자증권(API)/stocks_info/overseas_index_code.py
Normal file
@@ -0,0 +1,81 @@
|
||||
'''
|
||||
* 해외주식지수정보(frgn_code.mst) 정제 파이썬 파일
|
||||
* 정제완료된 엑셀파일 : frgn_code.xlsx
|
||||
* overseas_index_code.py(frgn_code.mst)은 해외지수 정보 제공용으로 개발된 파일로
|
||||
해외주식 정보에 대해 얻고자 할 경우 overseas_stock_code.py(ex. nasmst.cod) 이용하시기 바랍니다.
|
||||
'''
|
||||
|
||||
import pandas as pd
|
||||
import urllib.request
|
||||
import ssl
|
||||
import zipfile
|
||||
import os
|
||||
import numpy as np
|
||||
|
||||
base_dir = os.getcwd()
|
||||
|
||||
def get_overseas_index_master_dataframe(base_dir):
|
||||
|
||||
# download file
|
||||
print("Downloading...")
|
||||
|
||||
ssl._create_default_https_context = ssl._create_unverified_context
|
||||
urllib.request.urlretrieve("https://new.real.download.dws.co.kr/common/master/frgn_code.mst.zip", base_dir + "\\frgn_code.mst.zip")
|
||||
os.chdir(base_dir)
|
||||
|
||||
frgn_code_zip = zipfile.ZipFile('frgn_code.mst.zip')
|
||||
frgn_code_zip.extractall()
|
||||
frgn_code_zip.close()
|
||||
file_name = base_dir + "\\frgn_code.mst"
|
||||
|
||||
# df1 : '구분코드','심볼','영문명','한글명'
|
||||
tmp_fil1 = base_dir + "\\frgn_code_part1.tmp"
|
||||
tmp_fil2 = base_dir + "\\frgn_code_part2.tmp"
|
||||
wf1 = open(tmp_fil1, mode="w")
|
||||
wf2 = open(tmp_fil2, mode="w")
|
||||
with open(file_name, mode="r", encoding="cp949") as f:
|
||||
for row in f:
|
||||
if row[0:1] == 'X':
|
||||
rf1 = row[0:len(row) - 14]
|
||||
rf_1 = rf1[0:1]
|
||||
rf1_2 = rf1[1:11]
|
||||
rf1_3 = rf1[11:40].replace(",","")
|
||||
rf1_4 = rf1[40:80].replace(",","").strip()
|
||||
wf1.write(rf1_1 + ',' + rf1_2 + ',' + rf1_3 + ',' + rf1_4 + '\n')
|
||||
rf2 = row[-15:]
|
||||
wf2.write(rf2+'\n')
|
||||
continue
|
||||
rf1 = row[0:len(row) - 14]
|
||||
rf1_1 = rf1[0:1]
|
||||
rf1_2 = rf1[1:11]
|
||||
rf1_3 = rf1[11:50].replace(",","")
|
||||
rf1_4 = row[50:75].replace(",","").strip()
|
||||
wf1.write(rf1_1 + ',' + rf1_2 + ',' + rf1_3 + ',' + rf1_4 + '\n')
|
||||
rf2 = row[-15:]
|
||||
wf2.write(rf2+'\n')
|
||||
wf1.close()
|
||||
wf2.close()
|
||||
part1_columns = ['구분코드','심볼','영문명','한글명']
|
||||
df1 = pd.read_csv(tmp_fil1, header=None, names=part1_columns, encoding='cp949')
|
||||
|
||||
# df2 : '종목업종코드','다우30 편입종목여부','나스닥100 편입종목여부', 'S&P 500 편입종목여부','거래소코드','국가구분코드'
|
||||
|
||||
field_specs = [4, 1, 1, 1, 4, 3]
|
||||
part2_columns = ['종목업종코드','다우30 편입종목여부','나스닥100 편입종목여부',
|
||||
'S&P 500 편입종목여부','거래소코드','국가구분코드']
|
||||
df2 = pd.read_fwf(tmp_fil2, widths=field_specs, names=part2_columns, encoding='cp949')
|
||||
|
||||
df2['종목업종코드'] = df2['종목업종코드'].str.replace(pat=r'[^A-Z]', repl= r'', regex=True) # 종목업종코드는 잘못 기입되어 있을 수 있으니 참고할 때 반드시 mst 파일과 비교 참고
|
||||
df2['다우30 편입종목여부'] = df2['다우30 편입종목여부'].str.replace(pat=r'[^0-1]+', repl= r'', regex=True) # 한글명 길이가 길어서 생긴 오타들 제거
|
||||
df2['나스닥100 편입종목여부'] = df2['나스닥100 편입종목여부'].str.replace(pat=r'[^0-1]+', repl= r'', regex=True)
|
||||
df2['S&P 500 편입종목여부'] = df2['S&P 500 편입종목여부'].str.replace(pat=r'[^0-1]+', repl= r'', regex=True)
|
||||
|
||||
# DF : df1 + df2
|
||||
DF = pd.concat([df1,df2],axis=1)
|
||||
# print(len(df1), len(df2), len(DF))
|
||||
DF.to_excel('frgn_code.xlsx',index=False) # 현재 위치에 엑셀파일로 저장
|
||||
|
||||
return DF
|
||||
|
||||
df = get_overseas_index_master_dataframe(base_dir)
|
||||
print("Done")
|
||||
75
한국투자증권(API)/stocks_info/overseas_stock_code.py
Normal file
75
한국투자증권(API)/stocks_info/overseas_stock_code.py
Normal file
@@ -0,0 +1,75 @@
|
||||
'''해외주식종목코드 정제 파이썬 파일
|
||||
미국 : nasmst.cod, nysmst.cod, amsmst.cod,
|
||||
중국 : shsmst.cod, shimst.cod, szsmst.cod, szimst.cod,
|
||||
일본 : tsemst.cod,
|
||||
홍콩 : hksmst.cod,
|
||||
베트남 : hnxmst.cod, hsxmst.cod'''
|
||||
|
||||
'''
|
||||
※ 유의사항 ※
|
||||
실행 환경 혹은 원본 파일의 칼럼 수의 변경으로 간혹 정제코드 파일(overseas_stock_code.py)이 실행되지 않을 수 있습니다.
|
||||
해당 경우, URL에 아래 링크를 복사+붙여넣기 하여 원본 파일을 다운로드하시기 바랍니다.
|
||||
. https://new.real.download.dws.co.kr/common/master/{val}mst.cod.zip
|
||||
. {val} 자리에 원하시는 시장코드를 넣어주세요.
|
||||
. 'nas','nys','ams','shs','shi','szs','szi','tse','hks','hnx','hsx'
|
||||
. 순서대로 나스닥, 뉴욕, 아멕스, 상해, 상해지수, 심천, 심천지수, 도쿄, 홍콩, 하노이, 호치민
|
||||
'''
|
||||
|
||||
import pandas as pd
|
||||
import urllib.request
|
||||
import ssl
|
||||
import zipfile
|
||||
import os
|
||||
|
||||
base_dir = os.getcwd()
|
||||
|
||||
def get_overseas_master_dataframe(base_dir,val):
|
||||
|
||||
ssl._create_default_https_context = ssl._create_unverified_context
|
||||
# urllib.request.urlretrieve(f"https://new.real.download.dws.co.kr/common/master/{val}mst.cod.zip", base_dir + f"\\{val}mst.cod.zip")
|
||||
urllib.request.urlretrieve(f"https://new.real.download.dws.co.kr/common/master/{val}mst.cod.zip", os.path.join(base_dir, f"{val}mst.cod.zip"))
|
||||
os.chdir(base_dir)
|
||||
|
||||
overseas_zip = zipfile.ZipFile(f'{val}mst.cod.zip')
|
||||
overseas_zip.extractall()
|
||||
overseas_zip.close()
|
||||
|
||||
# file_name = base_dir + f"\\{val}mst.cod"
|
||||
file_name = os.path.join(base_dir, f"{val}mst.cod")
|
||||
columns = ['National code', 'Exchange id', 'Exchange code', 'Exchange name', 'Symbol', 'realtime symbol', 'Korea name', 'English name', 'Security type(1:Index,2:Stock,3:ETP(ETF),4:Warrant)', 'currency', 'float position', 'data type', 'base price', 'Bid order size', 'Ask order size', 'market start time(HHMM)', 'market end time(HHMM)', 'DR 여부(Y/N)', 'DR 국가코드', '업종분류코드', '지수구성종목 존재 여부(0:구성종목없음,1:구성종목있음)', 'Tick size Type', '구분코드(001:ETF,002:ETN,003:ETC,004:Others,005:VIX Underlying ETF,006:VIX Underlying ETN)','Tick size type 상세']
|
||||
|
||||
print(f"Downloading...{val}mst.cod")
|
||||
# df = pd.read_table(base_dir+f"\\{val}mst.cod",sep='\t',encoding='cp949')
|
||||
df = pd.read_table(os.path.join(base_dir, f"{val}mst.cod"), sep='\t',encoding='cp949')
|
||||
df.columns = columns
|
||||
df.to_excel(f'{val}_code.xlsx',index=False) # 현재 위치에 엑셀파일로 저장
|
||||
|
||||
|
||||
return df
|
||||
|
||||
cmd = input("1:전부 다운로드, 2:1개의 시장을 다운로드 \n")
|
||||
|
||||
if cmd =='1': # 1. 해외종목코드전체 코드를 다운로드
|
||||
|
||||
# 순서대로 나스닥, 뉴욕, 아멕스, 상해, 상해지수, 심천, 심천지수, 도쿄, 홍콩, 하노이, 호치민
|
||||
lst = ['nas','nys','ams','shs','shi','szs','szi','tse','hks','hnx','hsx']
|
||||
|
||||
DF=pd.DataFrame()
|
||||
for i in lst:
|
||||
temp = get_overseas_master_dataframe(base_dir,i)
|
||||
DF = pd.concat([DF,temp],axis=0)
|
||||
print(f"Downloading...overseas_stock_code(all).xlsx")
|
||||
DF.to_excel('overseas_stock_code(all).xlsx',index=False) # 전체 통합파일
|
||||
print("Done")
|
||||
|
||||
elif cmd =='2': # 2. 해외종목코드 전체 코드를 다운로드
|
||||
|
||||
while True:
|
||||
cmd2 = input("다운로드하시고자 하는 시장의 코드를 입력하여 주세요. \nnas:나스닥, nys:뉴욕, ams:아멕스, shs:상해, shi:상해지수, szs:심천, szi:심천지수, tse:도쿄, hks:홍콩, hnx:하노이, hsx:호치민\n")
|
||||
|
||||
try:
|
||||
df = get_overseas_master_dataframe(base_dir,cmd2)
|
||||
print("Done")
|
||||
break;
|
||||
except:
|
||||
pass
|
||||
35
한국투자증권(API)/stocks_info/sector_code.py
Normal file
35
한국투자증권(API)/stocks_info/sector_code.py
Normal file
@@ -0,0 +1,35 @@
|
||||
import pandas as pd
|
||||
import urllib.request
|
||||
import ssl
|
||||
import zipfile
|
||||
import os
|
||||
|
||||
base_dir = os.getcwd()
|
||||
|
||||
def get_sector_master_dataframe(base_dir):
|
||||
|
||||
ssl._create_default_https_context = ssl._create_unverified_context
|
||||
urllib.request.urlretrieve("https://new.real.download.dws.co.kr/common/master/idxcode.mst.zip", base_dir + "\\idxcode.zip")
|
||||
os.chdir(base_dir)
|
||||
|
||||
idxcode_zip = zipfile.ZipFile('idxcode.zip')
|
||||
idxcode_zip.extractall()
|
||||
idxcode_zip.close()
|
||||
|
||||
file_name = base_dir + "\\idxcode.mst"
|
||||
df = pd.DataFrame(columns = ['업종코드', '업종명'])
|
||||
|
||||
ridx = 1
|
||||
with open(file_name, mode="r", encoding="cp949") as f:
|
||||
for row in f:
|
||||
tcode = row[1:5] # 업종코드 4자리 (맨 앞 1자리 제거)
|
||||
tname = row[3:43].rstrip() #업종명
|
||||
df.loc[ridx] = [tcode, tname]
|
||||
# print(df.loc[ridx]) # 파일 작성중인 것을 확인할 수 있음
|
||||
ridx += 1
|
||||
|
||||
return df
|
||||
|
||||
df2 = get_sector_master_dataframe(base_dir)
|
||||
df2.to_excel('idxcode.xlsx',index=False) # 현재 위치에 엑셀파일로 저장
|
||||
df2
|
||||
36
한국투자증권(API)/stocks_info/theme_code.py
Normal file
36
한국투자증권(API)/stocks_info/theme_code.py
Normal file
@@ -0,0 +1,36 @@
|
||||
import pandas as pd
|
||||
import urllib.request
|
||||
import ssl
|
||||
import zipfile
|
||||
import os
|
||||
|
||||
base_dir = os.getcwd()
|
||||
|
||||
def get_theme_master_dataframe(base_dir):
|
||||
|
||||
ssl._create_default_https_context = ssl._create_unverified_context
|
||||
urllib.request.urlretrieve("https://new.real.download.dws.co.kr/common/master/theme_code.mst.zip", base_dir + "\\theme_code.zip")
|
||||
os.chdir(base_dir)
|
||||
|
||||
kospi_zip = zipfile.ZipFile('theme_code.zip')
|
||||
kospi_zip.extractall()
|
||||
kospi_zip.close()
|
||||
|
||||
file_name = base_dir + "\\theme_code.mst"
|
||||
df = pd.DataFrame(columns = ['테마코드', '테마명', '종목코드'])
|
||||
|
||||
ridx = 1
|
||||
with open(file_name, mode="r", encoding="cp949") as f:
|
||||
for row in f:
|
||||
tcode = row[0:3] # 테마코드
|
||||
jcode = row[-10:].rstrip() # 테마명
|
||||
tname = row[3:-10].rstrip() # 종목코드
|
||||
df.loc[ridx] = [tcode, tname, jcode]
|
||||
# print(df.loc[ridx]) # 파일 작성중인 것을 확인할 수 있음
|
||||
ridx += 1
|
||||
|
||||
return df
|
||||
|
||||
df1 = get_theme_master_dataframe(base_dir)
|
||||
df1.to_excel('theme_code.xlsx',index=False) # 현재 위치에 엑셀파일로 저장
|
||||
df1
|
||||
9
한국투자증권(API)/stocks_info/업종코드정보.h
Normal file
9
한국투자증권(API)/stocks_info/업종코드정보.h
Normal file
@@ -0,0 +1,9 @@
|
||||
/*****************************************************************************
|
||||
* 업종코드정보
|
||||
****************************************************************************/
|
||||
typedef struct
|
||||
{
|
||||
char idx_div[1]; /* 시장구분값 ex) 00002(대형주)일 경우 맨 앞자리 0 */
|
||||
char idx_code[4]; /* 업종코드 ex) 00002(대형주)일 경우 맨 앞자리를 제외한 0002 */
|
||||
char idx_name[40]; /* 업종명 */
|
||||
} IDX_CODE;
|
||||
40
한국투자증권(API)/stocks_info/종목마스터정보(ELW).h
Normal file
40
한국투자증권(API)/stocks_info/종목마스터정보(ELW).h
Normal file
@@ -0,0 +1,40 @@
|
||||
/*****************************************************************************
|
||||
* ELW 종목 코드 파일 구조
|
||||
****************************************************************************/
|
||||
typedef struct
|
||||
{
|
||||
char mksc_shrn_iscd [SZ_SHRNCODE]; /* 단축코드 */
|
||||
char stnd_iscd [SZ_STNDCODE]; /* 표준코드 */
|
||||
char hts_kor_isnm [SZ_KORNAME]; /* 한글종목명 */
|
||||
char elw_nvlt_optn_cls_code [1]; /* ELW권리형태 */
|
||||
/* 0 : 표준옵션 */
|
||||
/* 1 : 디지털옵현 */
|
||||
/* 2: 조기종료 옵션 */
|
||||
char elw_ko_barrier [13]; /* ELW조기종료발생기준가격 */
|
||||
char bskt_yn [1]; /* 바스켓 여부 (Y/N) */
|
||||
char unas_iscd1 [SZ_SHRNCODE]; /* 기초자산코드 */
|
||||
char unas_iscd2 [SZ_SHRNCODE]; /* 기초자산코드 */
|
||||
char unas_iscd3 [SZ_SHRNCODE]; /* 기초자산코드 */
|
||||
char unas_iscd4 [SZ_SHRNCODE]; /* 기초자산코드 */
|
||||
char unas_iscd5 [SZ_SHRNCODE]; /* 기초자산코드 */
|
||||
char elw_pblc_istu_name [SZ_KORNAME]; /* 발행사 한글 종목명 */
|
||||
char elw_pblc_mrkt_prtt_no [5]; /* 발행사코드 */
|
||||
char acpr [9]; /* 행사가 */
|
||||
char stck_last_tr_month [8]; /* 최종거래일 */
|
||||
char rmnn_dynu [4]; /* 잔존 일수 */
|
||||
char rght_type_cls_code [1]; /* 권리 유형 구분 코드 */
|
||||
/* 'C':콜 'E':기타 'P':풋 */
|
||||
char paym_date [8]; /* 지급일 */
|
||||
char prdy_avls [9]; /* 전일시가총액(억) */
|
||||
char lstn_stcn [15]; /* 상장주수(천) */
|
||||
char mrkt_prtt_no1 [5]; /* 시장 참가자 번호1 */
|
||||
char mrkt_prtt_no2 [5]; /* 시장 참가자 번호2 */
|
||||
char mrkt_prtt_no3 [5]; /* 시장 참가자 번호3 */
|
||||
char mrkt_prtt_no4 [5]; /* 시장 참가자 번호4 */
|
||||
char mrkt_prtt_no5 [5]; /* 시장 참가자 번호5 */
|
||||
char mrkt_prtt_no6 [5]; /* 시장 참가자 번호6 */
|
||||
char mrkt_prtt_no7 [5]; /* 시장 참가자 번호7 */
|
||||
char mrkt_prtt_no8 [5]; /* 시장 참가자 번호8 */
|
||||
char mrkt_prtt_no9 [5]; /* 시장 참가자 번호9 */
|
||||
char mrkt_prtt_no10 [5]; /* 시장 참가자 번호10 */
|
||||
} ST_ELW_CODE;
|
||||
26
한국투자증권(API)/stocks_info/종목마스터정보(상품선물옵션).h
Normal file
26
한국투자증권(API)/stocks_info/종목마스터정보(상품선물옵션).h
Normal file
@@ -0,0 +1,26 @@
|
||||
/*****************************************************************************
|
||||
* 상품 선물/옵션 종목
|
||||
****************************************************************************/
|
||||
typedef struct
|
||||
{
|
||||
char com_type[1]; /* 상품구분 */
|
||||
/* 1:금리 2:통화 3:상품 */
|
||||
char info_type[1]; /* 1:선물 2:SP선물 */
|
||||
/* 5:콜옵션 6:풋옵션 */
|
||||
char shrn_iscd[SZ_SHRNCODE]; /* 단축코드 (SZ_SHRNCODE=9) */
|
||||
char stnd_iscd[SZ_STNDCODE]; /* 표준코드 (SZ_STNDCODE=12) */
|
||||
char kor_name[SZ_KORNAME]; /* 한글종목명 (SZ_KORNAME=40) */
|
||||
char atm_cls_code[ 1]; /* ATM구분(1:ATM,2:ITM,3:OTM) */
|
||||
char acpr[8]; /* 행사가 */
|
||||
char mmsc_cls_code[1]; /* 월물구분코드 (0:연결선물, 1:최근월물 */
|
||||
/* 2:차근월물 3:차차근월물 4:차차차근월물 */
|
||||
/* SP 는 무조건 1 */
|
||||
char prod_no[3]; /* 기초자산 단축코드 */
|
||||
/* B03 : 3년국채 B05 : 5년국채 */
|
||||
/* B10 : 10년국채 MSB : 통안증권 */
|
||||
/* USD : 미국달러 JPY : 엔 */
|
||||
/* EUR : 유로 GLD : 금 */
|
||||
/* LHG : 돈육 CMU : CME미국달러 */
|
||||
/* RFR : 3개월무위험금리 */
|
||||
char prod_name[SZ_KORNAME]; /* 기초자산 명 (SZ_KORNAME=40) */
|
||||
} ST_FO_COM_CODE;
|
||||
18
한국투자증권(API)/stocks_info/종목마스터정보(주식선물옵션).h
Normal file
18
한국투자증권(API)/stocks_info/종목마스터정보(주식선물옵션).h
Normal file
@@ -0,0 +1,18 @@
|
||||
/*****************************************************************************
|
||||
* 주식 선물/옵션 종목 마스터파일(fo_stk_code_mts.mst) 헤더정보
|
||||
****************************************************************************/
|
||||
typedef struct
|
||||
{
|
||||
char info_type[1]; /* 1:코스피 주식선물 2:코스피 주식선물 SP */
|
||||
/* 3:코스닥 주식선물 4:코스닥 주식선물 SP */
|
||||
/* 5:주식 콜옵션 6:주식 풋옵션 */
|
||||
char shrn_iscd[SZ_SHRNCODE]; /* 단축코드 */
|
||||
char stnd_iscd[SZ_STNDCODE]; /* 표준코드 */
|
||||
char kor_name[SZ_KORNAME]; /* 한글종목명 */
|
||||
char atm_cls_code[ 1]; /* ATM구분(1:ATM,2:ITM,3:OTM) */
|
||||
char acpr[8]; /* 행사가 */
|
||||
char mmsc_cls_code[1]; /* 월물구분코드 (0:연결선물, 1:최근월물 */
|
||||
/* 2:차근월물 3:차차근월물 4:차차차근월물 */
|
||||
char unas_shrn_iscd[SZ_SHRNCODE]; /* 기초자산 단축코드 */
|
||||
char unas_kor_name[SZ_KORNAME]; /* 기초자산 명 */
|
||||
} ST_FO_STK_CODE;
|
||||
23
한국투자증권(API)/stocks_info/종목마스터정보(지수선물옵션).h
Normal file
23
한국투자증권(API)/stocks_info/종목마스터정보(지수선물옵션).h
Normal file
@@ -0,0 +1,23 @@
|
||||
/*****************************************************************************
|
||||
* 지수 선물/옵션 종목
|
||||
****************************************************************************/
|
||||
typedef struct
|
||||
{
|
||||
char info_type[1]; /* 1:지수선물 2:지수SP 3:스타선물 4:스타SP */
|
||||
/* 5:지수콜옵션 6:지수풋옵션 */
|
||||
/* 7:변동성선물 8:변동성SP */
|
||||
/* 9:섹터선물 A:섹터SP */
|
||||
/* B:미니선물 C:미니SP */
|
||||
/* D:미니콜옵션 E:미니풋옵션 */
|
||||
/* J:코스닥150콜옵션 K:코스닥150풋옵션 */
|
||||
/* L:위클리콜옵션 M:위클리풋옵션 */
|
||||
char shrn_iscd[SZ_SHRNCODE]; /* 단축코드 */
|
||||
char stnd_iscd[SZ_STNDCODE]; /* 표준코드 */
|
||||
char kor_name[SZ_KORNAME]; /* 한글종목명 */
|
||||
char atm_cls_code[ 1]; /* ATM구분(1:ATM,2:ITM,3:OTM) */
|
||||
char acpr[8]; /* 행사가 */
|
||||
char mmsc_cls_code[1]; /* 월물구분코드 (0:연결선물, 1:최근월물 */
|
||||
/* 2:차근월물 3:차차근월물 4:차차차근월물 */
|
||||
char unas_shrn_iscd[SZ_SHRNCODE]; /* 기초자산 단축코드 */
|
||||
char unas_kor_name[SZ_KORNAME]; /* 기초자산 명 */
|
||||
} ST_FO_IDX_CODE;
|
||||
22
한국투자증권(API)/stocks_info/종목마스터정보(채권).h
Normal file
22
한국투자증권(API)/stocks_info/종목마스터정보(채권).h
Normal file
@@ -0,0 +1,22 @@
|
||||
/*****************************************************************************
|
||||
* 채권 코드 파일 구조
|
||||
****************************************************************************/
|
||||
typedef struct
|
||||
{
|
||||
char type [2]; // A0:장내소매채권, F9:(주식관련사채, 소액채권), C0:국고채권
|
||||
char bond_cls_code [2]; // A0: GA:국고채 MA:통안채 BA:금융채 SA:비금융특수채 CA:회사채
|
||||
// F9: 03:장내소액채권 02:기타채권 04:장내주식관련사채 MM:매매종류별
|
||||
// C0: GA:국고채 MA:통안채 BA:금융채 SA:비금융특수채 MB:지방채 99:기타
|
||||
char stnd_iscd [12];
|
||||
char sname [40];
|
||||
char bond_int_cls_code[2]; // F9/C0 : 01:할인 02:복리 03:이표 04:금리연동 05:분할상환(거리복리)
|
||||
// 06:분할(거치단리) 07:단리 08:FRN 09:복5단2
|
||||
// A0 : 고정금리형 11:할인채 12:복리채 13:이표채 14:단리채 15:복5단2 19:기타
|
||||
// A0 : 변동금리형 21:이표채 22:복리채 23:단리채 29:기타
|
||||
char lstn_date [8]; // 상장일
|
||||
char pblc_date [8]; // 발행 일자
|
||||
char rdmp_date [8]; // 상환 일자
|
||||
char sale_date [8]; // 매출 일자
|
||||
char srfc_intrt [8]; // 표면 이자율(사용안함)
|
||||
char rdmt_rate [8]; // 만기 상환 비율(사용안함)
|
||||
} ST_BOND_CODE;
|
||||
56
한국투자증권(API)/stocks_info/종목마스터정보(코넥스).h
Normal file
56
한국투자증권(API)/stocks_info/종목마스터정보(코넥스).h
Normal file
@@ -0,0 +1,56 @@
|
||||
/*****************************************************************************
|
||||
* 코넥스 종목 코드 파일 구조
|
||||
****************************************************************************/
|
||||
typedef struct
|
||||
{
|
||||
char mksc_shrn_iscd[SZ_SHRNCODE]; /* 단축코드 */
|
||||
char stnd_iscd[SZ_STNDCODE]; /* 표준코드 */
|
||||
char hts_kor_isnm[SZ_KORNAME]; /* 한글종목명 */
|
||||
char scrt_grp_cls_code[2]; /* 증권그룹구분코드 */
|
||||
/* KN:코넥스 */
|
||||
char stck_sdpr[9]; /* 주식 기준가 */
|
||||
char frml_mrkt_deal_qty_unit[5]; /* 정규 시장 매매 수량 단위 */
|
||||
char ovtm_mrkt_deal_qty_unit[5]; /* 시간외 시장 매매 수량 단위 */
|
||||
char trht_yn[1]; /* 거래정지 여부 */
|
||||
char sltr_yn[1]; /* 정리매매 여부 */
|
||||
char mang_issu_yn[1]; /* 관리 종목 여부 */
|
||||
char mrkt_alrm_cls_code[2]; /* 시장 경고 구분 코드 (00:해당없음 01:투자주의 */
|
||||
/* 02:투자경고 03:투자위험 */
|
||||
char mrkt_alrm_risk_adnt_yn[1]; /* 시장 경고위험 예고 여부 */
|
||||
char insn_pbnt_yn[1]; /* 불성실 공시 여부 */
|
||||
char byps_lstn_yn[1]; /* 우회 상장 여부 */
|
||||
char flng_cls_code[2]; /* 락구분 코드 */
|
||||
/* 00:해당사항없음 01:권리락 */
|
||||
/* 02:배당락 03:분배락 04:권배락 05:중간배당락 */
|
||||
/* 06:권리중간배당락 99:기타 */
|
||||
/* SW,SR,EW는 미해당(미해당의경우 SPACE) */
|
||||
char fcam_mod_cls_code[2]; /* 액면가 변경 구분 코드 (00:해당없음 */
|
||||
/* 01:액면분할 02:액면병합 99:기타) */
|
||||
char icic_cls_code[2]; /* 증자 구분 코드 (00:해당없음 01:유상증자 */
|
||||
/* 02:무상증자 03:유무상증자 99:기타) */
|
||||
char marg_rate[3]; /* 증거금 비율 */
|
||||
char crdt_able[1]; /* 신용주문 가능 여부 */
|
||||
char crdt_days[3]; /* 신용기간 */
|
||||
char prdy_vol[12]; /* 전일 거래량 */
|
||||
char stck_fcam[12]; /* 주식 액면가 */
|
||||
char stck_lstn_date[8]; /* 주식 상장 일자 */
|
||||
char lstn_stcn[15]; /* 상장 주수(천) */
|
||||
char cpfn[21]; /* 자본금 */
|
||||
char stac_month[2]; /* 결산 월 */
|
||||
char po_prc[7]; /* 공모 가격 */
|
||||
char prst_cls_code[1]; /* 우선주 구분 코드 (0:해당없음(보통주) */
|
||||
/* 1:구형우선주 2:신형우선주) */
|
||||
char ssts_hot_yn[1]; /* 공매도과열종목여부 */
|
||||
char stange_runup_yn[1]; /* 이상급등종목여부 */
|
||||
char krx300_issu_yn[1]; /* KRX300 종목 여부 (Y/N) (실제적으로 필러) */
|
||||
char sale_account[9]; /* 매출액 */
|
||||
char bsop_prfi[9]; /* 영업이익 */
|
||||
char op_prfi[9]; /* 경상이익 */
|
||||
char thtr_ntin[5]; /* 단기순이익 */
|
||||
char roe[9]; /* ROE(자기자본이익률) */
|
||||
char base_date[8]; /* 기준년월 */
|
||||
char prdy_avls_scal[9]; /* 전일기준 시가총액 (억) */
|
||||
char co_crdt_limt_over_yn[1]; /* 회사신용한도초과여부 */
|
||||
char secu_lend_able_yn[1]; /* 담보대출가능여부 */
|
||||
char stln_able_yn[1]; /* 대주가능여부 */
|
||||
} ST_KNX_CODE;
|
||||
89
한국투자증권(API)/stocks_info/종목마스터정보(코스닥).h
Normal file
89
한국투자증권(API)/stocks_info/종목마스터정보(코스닥).h
Normal file
@@ -0,0 +1,89 @@
|
||||
/*****************************************************************************
|
||||
* 코스닥 종목 코드 파일 구조
|
||||
****************************************************************************/
|
||||
typedef struct
|
||||
{
|
||||
char mksc_shrn_iscd[SZ_SHRNCODE]; /* 단축코드 */
|
||||
char stnd_iscd[SZ_STNDCODE]; /* 표준코드 */
|
||||
char hts_kor_isnm[SZ_KORNAME]; /* 한글종목명 */
|
||||
char scrt_grp_cls_code[2]; /* 증권그룹구분코드 */
|
||||
/* ST:주권 MF:증권투자회사 RT:부동산투자회사 */
|
||||
/* SC:선박투자회사 IF:사회간접자본투융자회사 */
|
||||
/* DR:주식예탁증서 EW:ELW EF:ETF */
|
||||
/* SW:신주인수권증권 SR:신주인수권증서 */
|
||||
/* BC:수익증권 FE:해외ETF FS:외국주권 */
|
||||
char avls_scal_cls_code[1]; /* 시가총액 규모 구분 코드 유가 */
|
||||
/* 0:제외 1:KOSDAQ100 2:KOSDAQmid300 3:KOSDAQsmall) */
|
||||
char bstp_larg_div_code[4]; /* 지수업종 대분류 코드 */
|
||||
char bstp_medm_div_code[4]; /* 지수 업종 중분류 코드 */
|
||||
char bstp_smal_div_code[4]; /* 지수업종 소분류 코드 */
|
||||
char vntr_issu_yn[1]; /* 벤처기업 여부 (Y/N) */
|
||||
char low_current_yn[1]; /* 저유동성종목 여부 */
|
||||
char krx_issu_yn[1]; /* KRX 종목 여부 */
|
||||
char etp_prod_cls_code[1]; /* ETP 상품구분코드 */
|
||||
/* 0:해당없음 1:투자회사형 2:수익증권형 */
|
||||
/* 3:ETN 4:손실제한ETN */
|
||||
char krx100_issu_yn[1]; /* KRX100 종목 여부 (Y/N) */
|
||||
char krx_car_yn[1]; /* KRX 자동차 여부 */
|
||||
char krx_smcn_yn[1]; /* KRX 반도체 여부 */
|
||||
char krx_bio_yn[1]; /* KRX 바이오 여부 */
|
||||
char krx_bank_yn[1]; /* KRX 은행 여부 */
|
||||
char etpr_undt_objt_co_yn[1]; /* 기업인수목적회사여부 */
|
||||
char krx_enrg_chms_yn[1]; /* KRX 에너지 화학 여부 */
|
||||
char krx_stel_yn[1]; /* KRX 철강 여부 */
|
||||
char short_over_cls_code[1]; /* 단기과열종목구분코드 0:해당없음 */
|
||||
/* 1:지정예고 2:지정 3:지정연장(해제연기) */
|
||||
char krx_medi_cmnc_yn[1]; /* KRX 미디어 통신 여부 */
|
||||
char krx_cnst_yn[1]; /* KRX 건설 여부 */
|
||||
char invt_alrm_yn[1]; /* (코스닥)투자주의환기종목여부 */
|
||||
char krx_scrt_yn [1]; /* KRX 증권 구분 */
|
||||
char krx_ship_yn [1]; /* KRX 선박 구분 */
|
||||
char krx_insu_yn[1]; /* KRX섹터지수 보험여부 */
|
||||
char krx_trnp_yn[1]; /* KRX섹터지수 운송여부 */
|
||||
char ksq150_nmix_yn[1]; /* KOSDAQ150지수여부 (Y,N) */
|
||||
char stck_sdpr[9]; /* 주식 기준가 */
|
||||
char frml_mrkt_deal_qty_unit[5]; /* 정규 시장 매매 수량 단위 */
|
||||
char ovtm_mrkt_deal_qty_unit[5]; /* 시간외 시장 매매 수량 단위 */
|
||||
char trht_yn[1]; /* 거래정지 여부 */
|
||||
char sltr_yn[1]; /* 정리매매 여부 */
|
||||
char mang_issu_yn[1]; /* 관리 종목 여부 */
|
||||
char mrkt_alrm_cls_code[2]; /* 시장 경고 구분 코드 (00:해당없음 01:투자주의 */
|
||||
/* 02:투자경고 03:투자위험) */
|
||||
char mrkt_alrm_risk_adnt_yn[1]; /* 시장 경고위험 예고 여부 */
|
||||
char insn_pbnt_yn[1]; /* 불성실 공시 여부 */
|
||||
char byps_lstn_yn[1]; /* 우회 상장 여부 */
|
||||
char flng_cls_code[2]; /* 락구분 코드 (00:해당사항없음 01:권리락 */
|
||||
/* 02:배당락 03:분배락 04:권배락 05:중간배당락 */
|
||||
/* 06:권리중간배당락 99:기타 */
|
||||
/* SW,SR,EW는 미해당(SPACE) */
|
||||
char fcam_mod_cls_code[2]; /* 액면가 변경 구분 코드 (00:해당없음 */
|
||||
/* 01:액면분할 02:액면병합 99:기타 */
|
||||
char icic_cls_code[2]; /* 증자 구분 코드 (00:해당없음 01:유상증자 */
|
||||
/* 02:무상증자 03:유무상증자 99:기타) */
|
||||
char marg_rate[3]; /* 증거금 비율 */
|
||||
char crdt_able[1]; /* 신용주문 가능 여부 */
|
||||
char crdt_days[3]; /* 신용기간 */
|
||||
char prdy_vol[12]; /* 전일 거래량 */
|
||||
char stck_fcam[12]; /* 주식 액면가 */
|
||||
char stck_lstn_date[8]; /* 주식 상장 일자 */
|
||||
char lstn_stcn[15]; /* 상장 주수(천) */
|
||||
char cpfn[21]; /* 자본금 */
|
||||
char stac_month[2]; /* 결산 월 */
|
||||
char po_prc[7]; /* 공모 가격 */
|
||||
char prst_cls_code[1]; /* 우선주 구분 코드 (0:해당없음(보통주) */
|
||||
/* 1:구형우선주 2:신형우선주 */
|
||||
char ssts_hot_yn[1]; /* 공매도과열종목여부 */
|
||||
char stange_runup_yn[1]; /* 이상급등종목여부 */
|
||||
char krx300_issu_yn[1]; /* KRX300 종목 여부 (Y/N) */
|
||||
char sale_account[9]; /* 매출액 */
|
||||
char bsop_prfi[9]; /* 영업이익 */
|
||||
char op_prfi[9]; /* 경상이익 */
|
||||
char thtr_ntin[5]; /* 당기순이익 */
|
||||
char roe[9]; /* ROE(자기자본이익률) */
|
||||
char base_date[8]; /* 기준년월 */
|
||||
char prdy_avls_scal[9]; /* 전일기준 시가총액 (억) */
|
||||
char grp_code[3]; /* 그룹사 코드 */
|
||||
char co_crdt_limt_over_yn[1]; /* 회사신용한도초과여부 */
|
||||
char secu_lend_able_yn[1]; /* 담보대출가능여부 */
|
||||
char stln_able_yn[1]; /* 대주가능여부 */
|
||||
} ST_KSQ_CODE;
|
||||
99
한국투자증권(API)/stocks_info/종목마스터정보(코스피).h
Normal file
99
한국투자증권(API)/stocks_info/종목마스터정보(코스피).h
Normal file
@@ -0,0 +1,99 @@
|
||||
/*****************************************************************************
|
||||
* 코스피 종목 코드 파일 구조
|
||||
****************************************************************************/
|
||||
typedef struct
|
||||
{
|
||||
char mksc_shrn_iscd[SZ_SHRNCODE]; /* 단축코드 */
|
||||
char stnd_iscd[SZ_STNDCODE]; /* 표준코드 */
|
||||
char hts_kor_isnm[SZ_KORNAME]; /* 한글종목명 */
|
||||
char scrt_grp_cls_code[2]; /* 증권그룹구분코드 */
|
||||
/* ST:주권 MF:증권투자회사 RT:부동산투자회사 */
|
||||
/* SC:선박투자회사 IF:사회간접자본투융자회사 */
|
||||
/* DR:주식예탁증서 EW:ELW EF:ETF */
|
||||
/* SW:신주인수권증권 SR:신주인수권증서 */
|
||||
/* BC:수익증권 FE:해외ETF FS:외국주권 */
|
||||
char avls_scal_cls_code[1]; /* 시가총액 규모 구분 코드 유가 */
|
||||
/* (0:제외 1:대 2:중 3:소) */
|
||||
char bstp_larg_div_code[4]; /* 지수 업종 대분류 코드 */
|
||||
char bstp_medm_div_code[4]; /* 지수 업종 중분류 코드 */
|
||||
char bstp_smal_div_code[4]; /* 지수 업종 소분류 코드 */
|
||||
char mnin_cls_code_yn[1]; /* 제조업 구분 코드 (Y/N) */
|
||||
char low_current_yn[1]; /* 저유동성종목 여부 */
|
||||
char sprn_strr_nmix_issu_yn[1]; /* 지배 구조 지수 종목 여부 (Y/N) */
|
||||
char kospi200_apnt_cls_code[1]; /* KOSPI200 섹터업종(20110401 변경됨) */
|
||||
/* 0:미분류 1:건설기계 2:조선운송 3:철강소재 */
|
||||
/* 4:에너지화학 5:정보통신 6:금융 7:필수소비재 */
|
||||
/* 8: 자유소비재 */
|
||||
char kospi100_issu_yn[1]; /* KOSPI100여부 */
|
||||
char kospi50_issu_yn[1]; /* KOSPI50 종목 여부 */
|
||||
char krx_issu_yn[1]; /* KRX 종목 여부 */
|
||||
char etp_prod_cls_code[1]; /* ETP 상품구분코드 */
|
||||
/* 0:해당없음 1:투자회사형 2:수익증권형 */
|
||||
/* 3:ETN 4:손실제한ETN */
|
||||
char elw_pblc_yn[1]; /* ELW 발행여부 (Y/N) */
|
||||
char krx100_issu_yn[1]; /* KRX100 종목 여부 (Y/N) */
|
||||
char krx_car_yn[1]; /* KRX 자동차 여부 */
|
||||
char krx_smcn_yn[1]; /* KRX 반도체 여부 */
|
||||
char krx_bio_yn[1]; /* KRX 바이오 여부 */
|
||||
char krx_bank_yn[1]; /* KRX 은행 여부 */
|
||||
char etpr_undt_objt_co_yn[1]; /* 기업인수목적회사여부 */
|
||||
char krx_enrg_chms_yn[1]; /* KRX 에너지 화학 여부 */
|
||||
char krx_stel_yn[1]; /* KRX 철강 여부 */
|
||||
char short_over_cls_code[1]; /* 단기과열종목구분코드 0:해당없음 */
|
||||
/* 1:지정예고 2:지정 3:지정연장(해제연기) */
|
||||
char krx_medi_cmnc_yn[1]; /* KRX 미디어 통신 여부 */
|
||||
char krx_cnst_yn[1]; /* KRX 건설 여부 */
|
||||
char krx_fnnc_svc_yn[1]; /* 삭제됨(20151218) */
|
||||
char krx_scrt_yn [1]; /* KRX 증권 구분 */
|
||||
char krx_ship_yn [1]; /* KRX 선박 구분 */
|
||||
char krx_insu_yn[1]; /* KRX섹터지수 보험여부 */
|
||||
char krx_trnp_yn[1]; /* KRX섹터지수 운송여부 */
|
||||
char sri_nmix_yn[1]; /* SRI 지수여부 (Y,N) */
|
||||
char stck_sdpr[9]; /* 주식 기준가 */
|
||||
char frml_mrkt_deal_qty_unit[5]; /* 정규 시장 매매 수량 단위 */
|
||||
char ovtm_mrkt_deal_qty_unit[5]; /* 시간외 시장 매매 수량 단위 */
|
||||
char trht_yn[1]; /* 거래정지 여부 */
|
||||
char sltr_yn[1]; /* 정리매매 여부 */
|
||||
char mang_issu_yn[1]; /* 관리 종목 여부 */
|
||||
char mrkt_alrm_cls_code[2]; /* 시장 경고 구분 코드 (00:해당없음 01:투자주의 */
|
||||
/* 02:투자경고 03:투자위험 */
|
||||
char mrkt_alrm_risk_adnt_yn[1]; /* 시장 경고위험 예고 여부 */
|
||||
char insn_pbnt_yn[1]; /* 불성실 공시 여부 */
|
||||
char byps_lstn_yn[1]; /* 우회 상장 여부 */
|
||||
char flng_cls_code[2]; /* 락구분 코드 (00:해당사항없음 01:권리락 */
|
||||
/* 02:배당락 03:분배락 04:권배락 05:중간배당락 */
|
||||
/* 06:권리중간배당락 99:기타 */
|
||||
/* S?W,SR,EW는 미해당(SPACE) */
|
||||
char fcam_mod_cls_code[2]; /* 액면가 변경 구분 코드 (00:해당없음 */
|
||||
/* 01:액면분할 02:액면병합 99:기타 */
|
||||
char icic_cls_code[2]; /* 증자 구분 코드 (00:해당없음 01:유상증자 */
|
||||
/* 02:무상증자 03:유무상증자 99:기타) */
|
||||
char marg_rate[3]; /* 증거금 비율 */
|
||||
char crdt_able[1]; /* 신용주문 가능 여부 */
|
||||
char crdt_days[3]; /* 신용기간 */
|
||||
char prdy_vol[12]; /* 전일 거래량 */
|
||||
char stck_fcam[12]; /* 주식 액면가 */
|
||||
char stck_lstn_date[8]; /* 주식 상장 일자 */
|
||||
char lstn_stcn[15]; /* 상장 주수(천) */
|
||||
char cpfn[21]; /* 자본금 */
|
||||
char stac_month[2]; /* 결산 월 */
|
||||
char po_prc[7]; /* 공모 가격 */
|
||||
char prst_cls_code[1]; /* 우선주 구분 코드 (0:해당없음(보통주) */
|
||||
/* 1:구형우선주 2:신형우선주 */
|
||||
char ssts_hot_yn[1]; /* 공매도과열종목여부 */
|
||||
char stange_runup_yn[1]; /* 이상급등종목여부 */
|
||||
char krx300_issu_yn[1]; /* KRX300 종목 여부 (Y/N) */
|
||||
char kospi_issu_yn[1]; /* KOSPI여부 */
|
||||
char sale_account[9]; /* 매출액 */
|
||||
char bsop_prfi[9]; /* 영업이익 */
|
||||
char op_prfi[9]; /* 경상이익 */
|
||||
char thtr_ntin[5]; /* 당기순이익 */
|
||||
char roe[9]; /* ROE(자기자본이익률) */
|
||||
char base_date[8]; /* 기준년월 */
|
||||
char prdy_avls_scal[9]; /* 전일기준 시가총액 (억) */
|
||||
|
||||
char grp_code[3]; /* 그룹사 코드 */
|
||||
char co_crdt_limt_over_yn[1]; /* 회사신용한도초과여부 */
|
||||
char secu_lend_able_yn[1]; /* 담보대출가능여부 */
|
||||
char stln_able_yn[1]; /* 대주가능여부 */
|
||||
} ST_KSP_CODE;
|
||||
9
한국투자증권(API)/stocks_info/종목마스터정보(회원사).h
Normal file
9
한국투자증권(API)/stocks_info/종목마스터정보(회원사).h
Normal file
@@ -0,0 +1,9 @@
|
||||
/*****************************************************************************
|
||||
* 회원사 종목 코드 파일 구조
|
||||
****************************************************************************/
|
||||
typedef struct
|
||||
{
|
||||
char mbcr_no [ 5]; /* 회원사코드 */
|
||||
char mbcr_name [SZ_KORNAME20]; /* 회원사명 */
|
||||
char glob_yn [ 1]; /* 구분 0=국내, 1=외국 */
|
||||
} ST_MEM_CODE;
|
||||
10
한국투자증권(API)/stocks_info/테마코드정보.h
Normal file
10
한국투자증권(API)/stocks_info/테마코드정보.h
Normal file
@@ -0,0 +1,10 @@
|
||||
/*****************************************************************************
|
||||
* 테마코드정보
|
||||
****************************************************************************/
|
||||
typedef struct
|
||||
{
|
||||
char theme_code[3]; /* 테마코드 */
|
||||
char theme_name[40]; /* 데마명 */
|
||||
char shrn_iscd[6]; /* 단축코드(종목코드) */
|
||||
char filler[3]; /* filler */
|
||||
} THEME_CODE;
|
||||
27
한국투자증권(API)/stocks_info/해외선물정보.h
Normal file
27
한국투자증권(API)/stocks_info/해외선물정보.h
Normal file
@@ -0,0 +1,27 @@
|
||||
/*****************************************************************************
|
||||
* 해외 선물 파일 구조 (ffcode.mst)
|
||||
****************************************************************************/
|
||||
typedef struct ST_FFCODE_TBL
|
||||
{
|
||||
char sSrsCd [ 32]; /* 종목코드 */
|
||||
char sAutoOrdGnrlYN[ 1]; /* 서버자동주문 가능 종목 여부 */
|
||||
char sAutoOrdTwapYN[ 1]; /* 서버자동주문 TWAP 가능 종목 여부 */
|
||||
char sAutoOrdEcnmYN[ 1]; /* 서버자동 경제지표 주문 가능 종목 여부 */
|
||||
char sFiller [ 47]; /* 필러 */
|
||||
char sSeriesKrNm [ 50]; /* 종목한글명 */
|
||||
char sExchCd [ 10]; /* 거래소코드 (ISAM KEY 1) */
|
||||
char sMrktCd [ 10]; /* 품목코드 (ISAM KEY 2) */
|
||||
char sClasCd [ 3]; /* 품목종류 */
|
||||
char sDispDesz [ 5]; /* 출력 소수점 */
|
||||
char sCalcDesz [ 5]; /* 계산 소수점 */
|
||||
char sTickSz [ 14]; /* 틱사이즈 */
|
||||
char sTickVal [ 14]; /* 틱가치 */
|
||||
char sCtrtSz [ 10]; /* 계약크기 */
|
||||
char sDispDigit [ 4]; /* 가격표시진법 */
|
||||
char sMultiplier [ 10]; /* 환산승수 */
|
||||
char sNearFlg [ 1]; /* 최다월물여부 0:원월물 1:최다월물 */
|
||||
char sNearFlgDt [ 1]; /* 최근월물여부 0:원월물 1:최근월물 */
|
||||
char sSprdYN [ 1]; /* 스프레드여부 */
|
||||
char sSprdLeg1YN [ 1]; /* 스프레드기준종목 LEG1 여부 Y/N */
|
||||
char sExchSubCd [ 2]; /* 서브 거래소 코드 */
|
||||
} FFCODE_TBL;
|
||||
54
한국투자증권(API)/stocks_info/해외옵션정보.h
Normal file
54
한국투자증권(API)/stocks_info/해외옵션정보.h
Normal file
@@ -0,0 +1,54 @@
|
||||
/*****************************************************************************
|
||||
* 해외 선물옵션 파일 구조 (focode.mst)
|
||||
****************************************************************************/
|
||||
typedef struct ST_FOCODE_TBL
|
||||
{
|
||||
char sSrsCd [ 32]; /* 종목코드 (UNIQ-KEY) */
|
||||
char sAutoOrdGnrlYN[ 1]; /* 서버자동주문 가능 종목 여부 */
|
||||
char sAutoOrdTwapYN[ 1]; /* 서버자동주문 TWAP 가능 종목 여부 */
|
||||
char sAutoOrdEcnmYN[ 1]; /* 서버자동 경제지표 주문 가능 종목 여부 */
|
||||
char sExchSubCd [ 2]; /* 서브 거래소 코드 2019.12.27 */
|
||||
/* 10:ASX 20:BALTIC 30:BMF 40:CBOE */
|
||||
/* 50:CME 51:CME_CBOT 52:CME_NYMEX 53:CME_COMEX */
|
||||
/* 60:EUREX 70:FTX 80:HKEx */
|
||||
/* 90:ICE_US 91:ICE_금융 92:ICE_상품 93:ICE_SG */
|
||||
/* A0:ISE B0:ITA C0:JSE D0:KCBT */
|
||||
/* E0:LBMA F0:LME G0:MDEX H0:MDX */
|
||||
/* I0:MEFF J0:NYSE K0:OSE L0:SGX */
|
||||
/* M0:SSE N0:TFEX O0:TMX P0:HNX */
|
||||
char sFiller [ 45]; /* 필러 */
|
||||
char sSeriesKrNm [ 50]; /* 종목한글명 */
|
||||
char sExchCd [ 10]; /* 거래소코드 */
|
||||
char sMrktCd [ 10]; /* 품목코드 */
|
||||
char sClasCd [ 3]; /* 품목종류 */
|
||||
/* 1: 지수옵션 */
|
||||
/* 2: 주식옵션 (M) */
|
||||
/* 3: 현물옵션 */
|
||||
/* 4: 선물옵션 */
|
||||
/* 5: 주식옵션 (W) */
|
||||
char sDispDesz [ 5]; /* 출력 소수점 */
|
||||
char sCalcDesz [ 5]; /* 계산 소수점 */
|
||||
char sTickSz [ 14]; /* 틱사이즈 */
|
||||
char sTickVal [ 14]; /* 틱가치 */
|
||||
char sCtrtSz [ 10]; /* 계약크기 */
|
||||
char sDispDigit [ 4]; /* 가격표시진법 */
|
||||
char sMultiplier [ 10]; /* 환산승수 */
|
||||
char sSymbol [ 1]; /* 옵션 구분 C, P */
|
||||
char sStkPrc [ 20]; /* Strike Price */
|
||||
char sUndrInstr [ 10]; /* 관련선물코드 */
|
||||
/* 해외선물 품목 코드 */
|
||||
/* 주식옵션인 경우 거래소 코드 */
|
||||
/* ex: NAS, NYS, AMS */
|
||||
char sUndrAsset [ 32]; /* 관련선물종목 */
|
||||
/* 해외선물 기초자산 종목코드 */
|
||||
/* 주식옵션인 경우 Ticker 코드 */
|
||||
/* AAPL, TSLA */
|
||||
char sRefrAsset [ 32]; /* 참조자산 Index등 */
|
||||
/* 지수인경우 지수명 */
|
||||
/* 해외선물인경우 관련 선물 종목코드 */
|
||||
char sIncTickPrc [ 19]; /* 틱증가기준가 */
|
||||
char sIncTickSz [ 5]; /* 틱증가배수 */
|
||||
char sYearMon [ 6]; /* 년월 */
|
||||
char sAtmFlg [ 1]; /* A: ATM, I:ITM, O:OTM */
|
||||
char sNearFlg [ 1]; /* 근월물여부 0:원월물 1:근월물 */
|
||||
} FOCODE_TBL;
|
||||
35
한국투자증권(API)/stocks_info/해외종목코드정보(미국,중국,일본,홍콩,베트남).h
Normal file
35
한국투자증권(API)/stocks_info/해외종목코드정보(미국,중국,일본,홍콩,베트남).h
Normal file
@@ -0,0 +1,35 @@
|
||||
/*****************************************************************************
|
||||
* 해외종목코드정보(미국,중국,일본,홍콩,베트남)
|
||||
****************************************************************************/
|
||||
struct mastcode {
|
||||
char ncod[2+1]; /* National code */
|
||||
char exid[3+1]; /* Exchange id */
|
||||
char excd[3+1]; /* Exchange code */
|
||||
char exnm[16+1]; /* Exchange name */
|
||||
char symb[16+1]; /* Symbol */
|
||||
char rsym[16+1]; /* realtime symbol */
|
||||
char knam[64+1]; /* Korea name */
|
||||
char enam[64+1]; /* English name */
|
||||
char stis[1+1]; /* Security type */
|
||||
/* 1:Index */
|
||||
/* 2:Stock */
|
||||
/* 3:ETP(ETF) */
|
||||
/* 4:Warrant */
|
||||
char curr[4+1]; /* currency */
|
||||
char zdiv[1+1]; /* float position */
|
||||
char ztyp[1+1]; /* data type */
|
||||
char base[12+1]; /* base price */
|
||||
char bnit[8+1]; /* Bid order size */
|
||||
char anit[8+1]; /* Ask order size */
|
||||
char mstm[4+1]; /* market start time(HHMM) */
|
||||
char metm[4+1]; /* market end time(HHMM) */
|
||||
char isdr[1+1]; /* DR 여부 :Y, N */
|
||||
char drcd[2+1]; /* DR 국가코드 */
|
||||
char icod[4+1]; /* 업종분류코드 */
|
||||
char sjong[1+1]; /* 지수구성종목 존재 여부 */
|
||||
/* 0:구성종목없음 */
|
||||
/* 1:구성종목있음 */
|
||||
char ttyp[1+1]; /* Tick size Type */
|
||||
char etyp[3+1]; /* 001: ETF 002: ETN 003: ETC 004: Others 005: VIX Underlying ETF 006: VIX Underlying ETN*/
|
||||
char ttyp_sb[3+1]; /* Tick size type 상세 (ttyp 9일 경우 사용) : 런던 제트라 유로넥스트 */
|
||||
};
|
||||
54
한국투자증권(API)/stocks_info/해외주식옵션정보.h
Normal file
54
한국투자증권(API)/stocks_info/해외주식옵션정보.h
Normal file
@@ -0,0 +1,54 @@
|
||||
/*****************************************************************************
|
||||
* 해외 선물옵션 파일 구조 (fostkcode.mst)
|
||||
****************************************************************************/
|
||||
typedef struct ST_FOSTKCODE_TBL
|
||||
{
|
||||
char sSrsCd [ 32]; /* 종목코드 (UNIQ-KEY) */
|
||||
char sAutoOrdGnrlYN[ 1]; /* 서버자동주문 가능 종목 여부 */
|
||||
char sAutoOrdTwapYN[ 1]; /* 서버자동주문 TWAP 가능 종목 여부 */
|
||||
char sAutoOrdEcnmYN[ 1]; /* 서버자동 경제지표 주문 가능 종목 여부 */
|
||||
char sExchSubCd [ 2]; /* 서브 거래소 코드 2019.12.27 */
|
||||
/* 10:ASX 20:BALTIC 30:BMF 40:CBOE */
|
||||
/* 50:CME 51:CME_CBOT 52:CME_NYMEX 53:CME_COMEX */
|
||||
/* 60:EUREX 70:FTX 80:HKEx */
|
||||
/* 90:ICE_US 91:ICE_금융 92:ICE_상품 93:ICE_SG */
|
||||
/* A0:ISE B0:ITA C0:JSE D0:KCBT */
|
||||
/* E0:LBMA F0:LME G0:MDEX H0:MDX */
|
||||
/* I0:MEFF J0:NYSE K0:OSE L0:SGX */
|
||||
/* M0:SSE N0:TFEX O0:TMX P0:HNX */
|
||||
char sFiller [ 45]; /* 필러 */
|
||||
char sSeriesKrNm [ 50]; /* 종목한글명 */
|
||||
char sExchCd [ 10]; /* 거래소코드 */
|
||||
char sMrktCd [ 10]; /* 품목코드 */
|
||||
char sClasCd [ 3]; /* 품목종류 */
|
||||
/* 1: 지수옵션 */
|
||||
/* 2: 주식옵션 (M) */
|
||||
/* 3: 현물옵션 */
|
||||
/* 4: 선물옵션 */
|
||||
/* 5: 주식옵션 (W) */
|
||||
char sDispDesz [ 5]; /* 출력 소수점 */
|
||||
char sCalcDesz [ 5]; /* 계산 소수점 */
|
||||
char sTickSz [ 14]; /* 틱사이즈 */
|
||||
char sTickVal [ 14]; /* 틱가치 */
|
||||
char sCtrtSz [ 10]; /* 계약크기 */
|
||||
char sDispDigit [ 4]; /* 가격표시진법 */
|
||||
char sMultiplier [ 10]; /* 환산승수 */
|
||||
char sSymbol [ 1]; /* 옵션 구분 C, P */
|
||||
char sStkPrc [ 20]; /* Strike Price */
|
||||
char sUndrInstr [ 10]; /* 관련선물코드 */
|
||||
/* 해외선물 품목 코드 */
|
||||
/* 주식옵션인 경우 거래소 코드 */
|
||||
/* ex: NAS, NYS, AMS */
|
||||
char sUndrAsset [ 32]; /* 관련선물종목 */
|
||||
/* 해외선물 기초자산 종목코드 */
|
||||
/* 주식옵션인 경우 Ticker 코드 */
|
||||
/* AAPL, TSLA */
|
||||
char sRefrAsset [ 32]; /* 참조자산 Index등 */
|
||||
/* 지수인경우 지수명 */
|
||||
/* 해외선물인경우 관련 선물 종목코드 */
|
||||
char sIncTickPrc [ 19]; /* 틱증가기준가 */
|
||||
char sIncTickSz [ 5]; /* 틱증가배수 */
|
||||
char sYearMon [ 6]; /* 년월 */
|
||||
char sAtmFlg [ 1]; /* A: ATM, I:ITM, O:OTM */
|
||||
char sNearFlg [ 1]; /* 근월물여부 0:원월물 1:근월물 */
|
||||
} FOSTKCODE_TBL;
|
||||
29
한국투자증권(API)/stocks_info/해외주식지수정보.h
Normal file
29
한국투자증권(API)/stocks_info/해외주식지수정보.h
Normal file
@@ -0,0 +1,29 @@
|
||||
/*****************************************************************************
|
||||
* 해외 코드 파일 구조
|
||||
****************************************************************************/
|
||||
typedef struct
|
||||
{
|
||||
char cls_code[1]; /* 구분코드 */
|
||||
/* W : 세계주요지수 */
|
||||
/* P : 미국지수 */
|
||||
/* Q : 미국종목 */
|
||||
/* H : 세계주요종목 */
|
||||
/* D : 미국상장국내기업 */
|
||||
/* G : 유럽상장국내기업 */
|
||||
/* F : CME선물 */
|
||||
/* M : 반도체 */
|
||||
/* X : 환율 */
|
||||
/* C : 상품선물 */
|
||||
/* R : 국내금리 */
|
||||
/* L : 리보금리 */
|
||||
/* B : 주요국정부채 */
|
||||
char symb[10]; /* 심볼 */
|
||||
char hts_eng_isnm[39]; /* 영문명 */
|
||||
char hts_kor_isnm[40]; /* 한글명 */
|
||||
char bstp_cls_code[4]; /* 종목업종코드 */
|
||||
char dow_30_yn[1]; /* 다우30 편입종목여부 0:미편입 1:편입 */
|
||||
char nasdaq_100_yn[1]; /* 나스닥100 편입종목여부 0:미편입 1:편입 */
|
||||
char snp_500_yn[1]; /* S&P 500 편입종목여부 0:미편입 1:편입 */
|
||||
char exch_cls_code[4]; /* 거래소코드 */
|
||||
char ntnl_cls_code[3]; /* 국가구분코드 */
|
||||
} ST_FRGN_CODE;
|
||||
Reference in New Issue
Block a user