|
|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
#导入或计算东财二级的成交额及排序等数据
|
|
|
|
|
|
|
|
|
|
from decimal import Decimal
|
|
|
|
|
import pymysql
|
|
|
|
|
|
|
|
|
|
# #数据库A的连接信息;NAS数据库
|
|
|
|
|
@ -50,7 +51,7 @@ try:
|
|
|
|
|
stock_basic_map = {}
|
|
|
|
|
|
|
|
|
|
#查询交易日数据
|
|
|
|
|
sql_trade_qurey = 'select date,week,trade from trade_dates where trade = %s and date > "2023-07-27"'
|
|
|
|
|
sql_trade_qurey = 'select date,week,trade from trade_dates where trade = %s and date = "2023-07-20"'
|
|
|
|
|
sql_trade = "trading"
|
|
|
|
|
db_a_cursor.execute(sql_trade_qurey,sql_trade)
|
|
|
|
|
trading_dates = db_a_cursor.fetchall()
|
|
|
|
|
@ -64,34 +65,34 @@ try:
|
|
|
|
|
period_trading_dateMap2 = {} # 用于计算区间涨跌数量等,区间涨跌等需要查询个股
|
|
|
|
|
trading_date,week,trade = row
|
|
|
|
|
# 获取周期
|
|
|
|
|
sql_trade_period_qurey = 'select date,week,trade from trade_dates where trade = %s and date <= "2023-07-28" order by date desc limit 30'
|
|
|
|
|
sql_trade_period_qurey = 'select date,week,trade from trade_dates where trade = %s and date <= "2023-07-19" order by date desc limit 30'
|
|
|
|
|
sql_trade_period = "trading"
|
|
|
|
|
db_a_cursor.execute(sql_trade_period_qurey,sql_trade_period)
|
|
|
|
|
trading_period_dates = db_a_cursor.fetchall()
|
|
|
|
|
#前一个交易日
|
|
|
|
|
prevTradeDate = ''
|
|
|
|
|
periodIndex = 0
|
|
|
|
|
for trading_date in trading_period_dates:
|
|
|
|
|
for ttrading_date in trading_period_dates:
|
|
|
|
|
if periodIndex == 0:
|
|
|
|
|
period_trading_dateMap['1',trading_date]
|
|
|
|
|
period_trading_dateMap['1']=ttrading_date[0]
|
|
|
|
|
elif periodIndex == 1:
|
|
|
|
|
prevTradeDate = trading_date
|
|
|
|
|
prevTradeDate = ttrading_date[0]
|
|
|
|
|
elif periodIndex == 4:
|
|
|
|
|
period_trading_dateMap['5',trading_date]
|
|
|
|
|
period_trading_dateMap['5']=ttrading_date[0]
|
|
|
|
|
elif periodIndex == 5:
|
|
|
|
|
period_trading_dateMap2['5',trading_date]
|
|
|
|
|
period_trading_dateMap2['5'] = ttrading_date[0]
|
|
|
|
|
elif periodIndex == 9:
|
|
|
|
|
period_trading_dateMap['10',trading_date]
|
|
|
|
|
period_trading_dateMap['10'] = ttrading_date[0]
|
|
|
|
|
elif periodIndex == 10:
|
|
|
|
|
period_trading_dateMap2['10',trading_date]
|
|
|
|
|
period_trading_dateMap2['10'] = ttrading_date[0]
|
|
|
|
|
elif periodIndex == 19:
|
|
|
|
|
period_trading_dateMap['20',trading_date]
|
|
|
|
|
period_trading_dateMap['20'] = trading_date[0]
|
|
|
|
|
elif periodIndex == 20:
|
|
|
|
|
period_trading_dateMap2['20',trading_date]
|
|
|
|
|
period_trading_dateMap2['20'] = ttrading_date[0]
|
|
|
|
|
elif periodIndex == 29:
|
|
|
|
|
period_trading_dateMap['30',trading_date]
|
|
|
|
|
period_trading_dateMap['30'] =ttrading_date[0]
|
|
|
|
|
elif periodIndex == 30:
|
|
|
|
|
period_trading_dateMap2['30',trading_date]
|
|
|
|
|
period_trading_dateMap2['30'] = ttrading_date[0]
|
|
|
|
|
elif periodIndex > 30:
|
|
|
|
|
break
|
|
|
|
|
periodIndex += 1
|
|
|
|
|
@ -104,7 +105,7 @@ try:
|
|
|
|
|
sortIndex = 1
|
|
|
|
|
|
|
|
|
|
industries_tradeDaymap = {}
|
|
|
|
|
totalTunrover = 0.00
|
|
|
|
|
totalTunrover = Decimal('0')
|
|
|
|
|
#遍历交易日数据
|
|
|
|
|
for stock_index_data in datas:
|
|
|
|
|
code,name,trade_day, open,close,high,low,differrange,volumn,amount,limitupnum,limitdownnum,suspendnum,risenum,fallnum,flatnum,componentnum,mv,pettm,pettm_mid,liqmv,rcnthigh,rcntlow = stock_index_data
|
|
|
|
|
@ -117,7 +118,7 @@ try:
|
|
|
|
|
rise_number = risenum
|
|
|
|
|
flat_number = flatnum
|
|
|
|
|
# industries_tradeDaymap[code] = {business_date,security_code,turnover_sort,rise_number,flat_number}
|
|
|
|
|
industries_tradeDaymap[code] = {'business_date':business_date,'security_code':security_code,'turnover_sort':turnover_sort,'rise_number':rise_number,'flat_number':flat_number}
|
|
|
|
|
industries_tradeDaymap[code] = {'business_date':business_date,'security_code':security_code,'turnover':turnover,'turnover_sort':turnover_sort,'rise_number':rise_number,'flat_number':flat_number}
|
|
|
|
|
# 总成交额
|
|
|
|
|
totalTunrover += turnover
|
|
|
|
|
|
|
|
|
|
@ -186,7 +187,7 @@ try:
|
|
|
|
|
db_a_cursor.execute(sql_stock_query,prevTradeDate)
|
|
|
|
|
|
|
|
|
|
industries_prevTradeDaymap = {}
|
|
|
|
|
prevTotalTunrover = 0.00
|
|
|
|
|
prevTotalTunrover = Decimal(0.00)
|
|
|
|
|
for stock_index_data in datas:
|
|
|
|
|
code,name,trade_day, open,close,high,low,differrange,volumn,amount,limitupnum,limitdownnum,suspendnum,risenum,fallnum,flatnum,componentnum,mv,pettm,pettm_mid,liqmv,rcnthigh,rcntlow = stock_index_data
|
|
|
|
|
business_date = trading_date
|
|
|
|
|
@ -198,10 +199,19 @@ try:
|
|
|
|
|
rise_number = risenum
|
|
|
|
|
flat_number = flatnum
|
|
|
|
|
# industries_tradeDaymap[code] = {business_date,security_code,turnover_sort,rise_number,flat_number}
|
|
|
|
|
industries_prevTradeDaymap[code] = {'business_date':business_date,'security_code':security_code,'turnover_sort':turnover_sort,'rise_number':rise_number,'flat_number':flat_number}
|
|
|
|
|
industries_prevTradeDaymap[code] = {'business_date':business_date,'security_code':security_code,'turnover':turnover,'turnover_sort':turnover_sort,'rise_number':rise_number,'flat_number':flat_number}
|
|
|
|
|
# 总成交额
|
|
|
|
|
totalTunrover += turnover
|
|
|
|
|
|
|
|
|
|
tempindustries_tradeDaymap = industries_tradeDaymap
|
|
|
|
|
# 计算占比及占比变化
|
|
|
|
|
for key,values in tempindustries_tradeDaymap.items():
|
|
|
|
|
for value_key, value in values.items():
|
|
|
|
|
if value_key == 'turnover':
|
|
|
|
|
ratio = values['turnover']*100 / totalTunrover
|
|
|
|
|
industries_tradeDaymap[key]['turnover_ratio'] = ratio
|
|
|
|
|
print(industries_tradeDaymap)
|
|
|
|
|
|
|
|
|
|
#提交数据到数据库B中
|
|
|
|
|
db_b_conn.commit()
|
|
|
|
|
print('successed transfer ',trading_date , ' data.' )
|
|
|
|
|
|