diff --git a/transferIndustrySatistics_python.py b/transferIndustrySatistics_python.py index 44a6798..7707322 100644 --- a/transferIndustrySatistics_python.py +++ b/transferIndustrySatistics_python.py @@ -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()