initial commit

This commit is contained in:
2026-02-04 00:16:34 +09:00
commit ae11528dd9
867 changed files with 209640 additions and 0 deletions

View 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.")

View 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")

View 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")

View 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.")

View 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")

View 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")

View 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")

View 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.")

View 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

View 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

View 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.")

View 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")

View 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")

View 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

View 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

View 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

View 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;

View 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;

View 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;

View 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;

View 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;

View 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;

View 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;

View 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;

View 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;

View 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;

View 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;

View 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;

View 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;

View 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일 경우 사용) : 런던 제트라 유로넥스트 */
};

View 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;

View 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;