Esempio n. 1
0
import datetime
from WindPy import w
from Utilities import admin_write_util as admin
from data_access.db_data_collection import DataCollection
"""
金融期货
股指
"""

w.start()

conn = admin.conn_mktdata()
conn_gc = admin.conn_gc()
futures_mktdata = admin.table_futures_mktdata()  # 中金所金融期货仍放在mktdata
future_contracts = admin.table_future_contracts()
dc = DataCollection()

today = datetime.date.today()
beg_date = datetime.date(2010, 1, 1)
end_date = datetime.date(2013, 12, 31)
# windcode = "000300.SH"
# id_instrument = 'index_300sh'
# windcode = "000016.SH"
# id_instrument = 'index_50sh'
# windcode = "510050.SH"
# id_instrument = 'index_50etf'
# windcode = "000905.SH"
# id_instrument = 'index_500sh'
# data = w.wsd(windcode, "open,high,low,close,volume,amt",beg_date.strftime("%Y-%m-%d"), end_date.strftime("%Y-%m-%d"), "")
#
# df = pd.DataFrame(data=np.transpose(data.Data), columns=data.Fields)
Esempio n. 2
0
engine = create_engine('mysql+pymysql://root:[email protected]/mktdata', echo=False)
conn = engine.connect()
metadata = MetaData(engine)
options_mktdata_daily = Table('options_mktdata', metadata, autoload=True)
futures_mktdata_daily = Table('futures_mktdata', metadata, autoload=True)
futures_institution_positions = Table('futures_institution_positions', metadata, autoload=True)

engine_intraday = create_engine('mysql+pymysql://root:[email protected]/mktdata_intraday', echo=False)
conn_intraday = engine_intraday.connect()
metadata_intraday = MetaData(engine_intraday)
equity_index_intraday = Table('equity_index_mktdata_intraday', metadata_intraday, autoload=True)
option_mktdata_intraday = Table('option_mktdata_intraday', metadata_intraday, autoload=True)
option_tick_data = Table('option_tick_data', metadata_intraday, autoload=True)
future_tick_data = Table('future_tick_data', metadata_intraday, autoload=True)
index_daily = Table('indexes_mktdata', metadata, autoload=True)
dc = DataCollection()
#####################################################################################
beg_date = datetime.date(2018, 1, 19)
end_date = datetime.date(2018, 1, 19)

date_range = w.tdays(beg_date, end_date, "").Data[0]
for dt in date_range:
    date = dt.date()
    dt_date = date.strftime("%Y-%m-%d")
    print(dt_date)
    #####################table_options_mktdata_daily######################################
    # wind 50ETF option
    res = options_mktdata_daily.select((options_mktdata_daily.c.dt_date == dt_date)
                                       & (options_mktdata_daily.c.name_code == '50etf')).execute()
    if res.rowcount == 0:
from Utilities import admin_write_util as admin
from data_access.db_data_collection import DataCollection
"""
Option data from Wind
"""

w.start()

conn = admin.conn_gc()
conn_intraday = admin.conn_intraday()

options_mktdata_daily = admin.table_options_mktdata()
option_contracts = admin.table_option_contracts()

dc = DataCollection()
today = datetime.date.today()
# beg_date = datetime.date(2015, 1, 1)
beg_date = datetime.date(2018, 12, 1).strftime("%Y-%m-%d")
end_date = datetime.date(2019, 1, 8).strftime("%Y-%m-%d")

date_range = w.tdays(beg_date, end_date, "").Data[0]
date_range = sorted(date_range, reverse=True)
# dt_date = dt.strftime("%Y-%m-%d")

# code_list = [
#     # 'M1707',
#     # 'M1708',
#     # 'M1709',
#     # 'M1711',
#     # 'M1712',
from sqlalchemy import create_engine, MetaData, Table, Column, TIMESTAMP
import datetime
import pandas as pd
from WindPy import w
import os

from data_access.db_data_collection import DataCollection

w.start()
engine = create_engine('mysql+pymysql://root:[email protected]/mktdata',
                       echo=False)
conn = engine.connect()
metadata = MetaData(engine)
option_contracts = Table('option_contracts', metadata, autoload=True)
future_contracts = Table('future_contracts', metadata, autoload=True)
dc = DataCollection()
##############################option_contracts####################################################

db_datas = dc.table_option_contracts().wind_options_50etf()
for db_data in db_datas:
    id_instrument = db_data['id_instrument']
    res = option_contracts.select(
        option_contracts.c.id_instrument == id_instrument).execute()
    if res.rowcount > 0: continue
    try:
        conn.execute(option_contracts.insert(), db_data)
        print('option_contracts -- inserted into data base succefully')
    except Exception as e:
        print(e)
        print(db_data)
        continue
Esempio n. 5
0
from data_access.db_data_collection import DataCollection

w.start()

# date = datetime.date(2018, 4, 4)
# dt_date = date.strftime("%Y-%m-%d")
# print(dt_date)

engine = create_engine('mysql+pymysql://root:[email protected]/mktdata',
                       echo=False)
conn = engine.connect()
metadata = MetaData(engine)
stocks = Table('stocks', metadata, autoload=True)
stocks_mktdata = Table('stocks_mktdata', metadata, autoload=True)

dc = DataCollection()

##################### CONTRACT INFO #########################################
# option_contracts

# db_datas = dc.table_stocks().wind_A_shares_total(dt_date)
# for db_data in db_datas:
#     try:
#         conn.execute(stocks.insert(), db_data)
#     except Exception as e:
#         print(e)
#         continue

# for dt in date_range:
#     print(dt)
Esempio n. 6
0
metadata = MetaData(engine)
options_mktdata_daily = Table('options_mktdata', metadata, autoload=True)
futures_mktdata_daily = Table('futures_mktdata', metadata, autoload=True)
futures_institution_positions = Table('futures_institution_positions', metadata, autoload=True)

engine_intraday = create_engine('mysql+pymysql://root:[email protected]/mktdata_intraday', echo=False)
conn_intraday = engine_intraday.connect()
metadata_intraday = MetaData(engine_intraday)
equity_index_intraday = Table('equity_index_mktdata_intraday', metadata_intraday, autoload=True)
option_mktdata_intraday = Table('option_mktdata_intraday', metadata_intraday, autoload=True)
option_tick_data = Table('option_tick_data', metadata_intraday, autoload=True)
future_tick_data = Table('future_tick_data', metadata_intraday, autoload=True)
index_daily = Table('indexes_mktdata', metadata, autoload=True)
option_contracts = Table('option_contracts', metadata, autoload=True)
future_contracts = Table('future_contracts', metadata, autoload=True)
dc = DataCollection()

#####################CONTRACT INFO#########################################
## option_contracts

db_datas = dc.table_option_contracts().wind_options_50etf()
for db_data in db_datas:
    id_instrument = db_data['id_instrument']
    res = option_contracts.select(option_contracts.c.id_instrument == id_instrument).execute()
    if res.rowcount > 0: continue
    try:
        conn.execute(option_contracts.insert(), db_data)
        print('option_contracts -- inserted into data base succefully')
    except Exception as e:
        print(e)
        print(db_data)
Esempio n. 7
0
from Utilities import admin_write_util as admin
from data_access.db_data_collection import DataCollection
"""
SH300 TR
wind data
"""

w.start()

conn = admin.conn_mktdata()
conn_intraday = admin.conn_intraday()

index_daily = admin.table_indexes_mktdata()

dc = DataCollection()

today = datetime.date.today()
beg_date = datetime.date(2015, 1, 1)
# beg_date = datetime.date(2018, 9, 1)
end_date = datetime.date.today()

date_range = w.tdays(beg_date, end_date, "").Data[0]
date_range = sorted(date_range, reverse=True)
for dt in date_range:
    windcode = "H00300.CSI"
    id_instrument = 'index_300sh_total_return'
    datestr = dt.strftime("%Y-%m-%d")
    db_data = dc.table_index().wind_data_index(windcode, datestr,
                                               id_instrument)
    # print(db_data)
from WindPy import w

from Utilities import admin_write_util as admin
from data_access import spider_api_czce as czce
from data_access import spider_api_sfe as sfe
from data_access.db_data_collection import DataCollection
from data_access.deprecated import spider_api_dce as dce

w.start()

# date = datetime.date.today()
date = datetime.date(2019, 1, 25)
dt_date = date.strftime("%Y-%m-%d")
conn = admin.conn_mktdata()
futures_mktdata_daily = admin.table_futures_mktdata()
dc = DataCollection()

################################## Future Mktdata from Exchange Website ###################################
# dce futures data
ds = dce.spider_mktdata_day(date, date, 0)
for dt in ds.keys():
    data = ds[dt]
    db_data = dc.table_futures().dce_day(dt, data)
    if len(db_data) == 0: continue
    try:
        conn.execute(futures_mktdata_daily.insert(), db_data)
        print('dce futures data 0 -- inserted into data base succefully')
    except Exception as e:
        print(dt)
        print(e)
        continue
from Utilities import admin_write_util as admin
from data_access.db_data_collection import DataCollection

"""
Option data from Wind
"""

w.start()

conn = admin.conn_gc()
conn_intraday = admin.conn_intraday()

options_mktdata_daily = admin.table_options_mktdata_gc()
option_contracts = admin.table_option_contracts()

dc = DataCollection()
today = datetime.date.today()
# beg_date = datetime.date(2015, 1, 1)
beg_date = datetime.date(2017, 1, 1).strftime("%Y-%m-%d")
end_date = datetime.date.today().strftime("%Y-%m-%d")

date_range = w.tdays(beg_date, end_date, "").Data[0]
date_range = sorted(date_range, reverse=True)
# dt_date = dt.strftime("%Y-%m-%d")

# code_list = [
#     # 'M1707',
#     # 'M1708',
#     # 'M1709',
#     # 'M1711',
#     # 'M1712',
print(dt_date)

conn = admin.conn_mktdata()
conn_intraday = admin.conn_intraday()
conn_gc = admin.conn_gc()

options_mktdata_daily = admin.table_options_mktdata()
futures_mktdata = admin.table_futures_mktdata() # 中金所金融期货仍放在mktdata
futures_mktdata_gc = admin.table_futures_mktdata_gc() # 商品期货放在golden_copy
option_contracts = admin.table_option_contracts()
future_contracts = admin.table_future_contracts() # 只包含中金所金融期货
index_daily = admin.table_indexes_mktdata()
equity_index_intraday = admin.table_index_mktdata_intraday()
option_mktdata_intraday = admin.table_option_mktdata_intraday()

dc = DataCollection()


####################################### INDEXES ##################################################
#### 1. Get Indexes Market Data.

dict_windcode_id = {"000905.SH":"index_500sh",
                    "000300.SH":'index_300sh',
                    "000016.SH":'index_50sh',
                    "510050.SH":'index_50etf'}
for windcode in dict_windcode_id.keys():
    id_instrument = dict_windcode_id[windcode]
    data = w.wsd(windcode, "open,high,low,close,volume,amt",dt_date, dt_date, "")
    df = pd.DataFrame(data=np.transpose(data.Data), columns=data.Fields)
    df.loc[:,Util.DT_DATE] = data.Times
    df.loc[:,Util.ID_INSTRUMENT] = id_instrument
Esempio n. 11
0
from Utilities import admin_write_util as admin
from data_access.db_data_collection import DataCollection

w.start()

conn = admin.conn_mktdata()
options_mktdata_daily = admin.table_options_mktdata()
futures_mktdata_daily = admin.table_futures_mktdata()
futures_institution_positions = admin.table_futures_institution_positions()

conn_intraday = admin.conn_intraday()
equity_index_intraday = admin.table_index_mktdata_intraday()
option_mktdata_intraday = admin.table_option_mktdata_intraday()
index_daily = admin.table_indexes_mktdata()

dc = DataCollection()
#####################################################################################
# beg_date = datetime.date(2004, 1, 1)
# end_date = datetime.date(2004, 12, 31)

################################### 低频宏观经济指标 ##################################################
macro_dict = {
    "M5792266" : ["industrial_capacity_utilization_quarter", "工业产能利用率:当季值"],
    "M0061571" : ["industrial_added_value_month_chain_ratio", "工业增加值:环比:季调"],
    "M0000545" : ["industrial_added_value_month_yoy_ratio", "工业增加值:当月:同比"],
    "M0000011" : ["industrial_added_value_month_cumulative_yoy_ratio", "工业增加值:累计同比"],
    "M0041963" : ["industrial_added_value_year", "全部工业增加值:亿元"],
    "M0041964" : ["industrial_added_value_year_yoy_ratio", "全部工业增加值:同比(年)"],
    "M9003295" : ["industrial_added_value_above_scale_year_yoy_ratio", "规模以上工业增加值:同比(年)"],
    "M0000272" : ["fixed_asset_investment_month", "固定资产投资完成额:累计值:亿元(月)"],
    "M0000273" : ["fixed_asset_investment_month_cumulative_yoy_ratio", "固定资产投资完成额:累计同比(月)"],
Esempio n. 12
0
from WindPy import w

from Utilities import admin_write_util as admin
from data_access.db_data_collection import DataCollection
"""
batch insert option daily data
"""

w.start()

conn = admin.conn_gc()

options_mktdata_daily = admin.table_options_mktdata()

dc = DataCollection()

today = datetime.date.today()
beg_date = datetime.date(2019, 1, 1)
end_date = datetime.date.today()

date_range = w.tdays(beg_date, end_date, "").Data[0]
date_range = sorted(date_range, reverse=True)
for dt in date_range:
    db_data = dc.table_options().wind_cu_option(dt.strftime("%Y-%m-%d"))
    # db_data = dc.table_options().wind_data_50etf_option(dt.strftime("%Y-%m-%d"))
    if len(db_data) == 0: print('no data')
    for res in db_data:
        try:
            conn.execute(options_mktdata_daily.insert(), res)
            print(res)