fix: 增加计算,目前在212行存在问题,遍历时修改了字典内容报出异常

master
laixingyu 3 years ago
parent 9557b399c8
commit 8e80d0b948

@ -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,9 +199,18 @@ 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()

Loading…
Cancel
Save