@ -70,7 +70,7 @@ def getPeriodTurnOver(dbconfig,dbcursor,startDate,endDate):
code , turnover = row
total = turnover
sql_trade_period_qurey = ' select code,sum(amount) as turnover from stock_index where trade_day >= %s and trade_day < %s group by code '
sql_trade_period_qurey = ' select code,sum(amount) as turnover from stock_index where trade_day >= %s and trade_day < %s group by code order by amount DESC '
dbcursor . execute ( sql_trade_period_qurey , ( startDate , endDate ) )
totalTurnOvers = dbcursor . fetchall ( )
for row in totalTurnOvers :
@ -78,7 +78,7 @@ def getPeriodTurnOver(dbconfig,dbcursor,startDate,endDate):
periodTurnOverMap [ code ] = { ' code ' : code , ' turnover ' : turnover , ' total ' : total }
return periodTurnOverMap
def getPeriodDiff ( dbconfig , dbcursor , startDate , endDate ):
def getPeriodDiff ( dbconfig , dbcursor , startDate , endDate ,hasData ):
periodStartDataMap = { }
periodEndDataMap = { }
periodDiffMap = { }
@ -93,37 +93,45 @@ def getPeriodDiff(dbconfig,dbcursor,startDate,endDate):
sql_trade_period_qurey = ' select s.code as code,s.close as close,s.open as open,sb.blemind2 as blemind2 from stocks s left join stock_basis sb on s.code = sb.code where s.trade_day = %s '
dbcursor . execute ( sql_trade_period_qurey , startDate )
datas = dbcursor . fetchall ( )
datasLen = 0
for row in datas :
code , close , open , blemind2 = row
if close is None :
close = Decimal ( ' 0 ' )
periodStartDataMap [ code ] = { ' code ' : code , ' close ' : close , ' open ' : open , ' blemind2 ' : blemind2 }
datasLen + = 1
if datasLen < = 0 :
return
hasData = True
sql_trade_period_qurey = ' select s.code as code,s.close as close,s.open as open,sb.blemind2 as blemind2 from stocks s left join stock_basis sb on s.code = sb.code where s.trade_day = %s '
dbcursor . execute ( sql_trade_period_qurey , endDate )
datas = dbcursor . fetchall ( )
for row in datas :
code , close , open , blemind2 = row
if close is None :
close = Decimal ( ' 0 ' )
periodEndDataMap [ code ] = { ' code ' : code , ' close ' : close , ' open ' : open , ' blemind2 ' : blemind2 }
if code in periodStartDataMap :
if industryMap [ blemind2 ] in periodDiffMap :
print ( ' close: ' , close , ' bclose: ' , periodStartDataMap [ code ] [ ' close ' ] )
if close - periodStartDataMap [ code ] [ ' close ' ] > 0 :
# print('close: ',close, ' bclose: ',periodStartDataMap[code]['close'] )
if Decimal( close) - periodStartDataMap [ code ] [ ' close ' ] > 0 :
periodDiffMap [ industryMap [ blemind2 ] ] [ ' rise ' ] + = 1
elif close - periodStartDataMap [ code ] [ ' close ' ] == 0 :
elif Decimal( close) - periodStartDataMap [ code ] [ ' close ' ] == 0 :
periodDiffMap [ industryMap [ blemind2 ] ] [ ' flat ' ] + = 1
else :
periodDiffMap [ industryMap [ blemind2 ] ] [ ' fall ' ] + = 1
else :
if close - periodStartDataMap [ code ] [ ' close ' ] > 0 :
if Decimal( close) - periodStartDataMap [ code ] [ ' close ' ] > 0 :
periodDiffMap [ industryMap [ blemind2 ] ] = { ' rise ' : 1 , ' flat ' : 0 , ' fall ' : 0 }
elif close - periodStartDataMap [ code ] [ ' close ' ] == 0 :
periodDiffMap [ industryMap [ blemind2 ] ] = { ' rise ' : 0 , ' flat ' : 1 , ' fall ' : 0 }
else :
periodDiffMap [ industryMap [ blemind2 ] ] = { ' rise ' : 0 , ' flat ' : 0 , ' fall ' : 1 }
else :
print ( ' close: ' , close )
if close > 0 :
# print('close: ',close )
if Decimal( close) > 0 :
periodDiffMap [ industryMap [ blemind2 ] ] = { ' rise ' : 1 , ' flat ' : 0 , ' fall ' : 0 }
elif close == 0 :
elif Decimal( close) == 0 :
periodDiffMap [ industryMap [ blemind2 ] ] = { ' rise ' : 0 , ' flat ' : 1 , ' fall ' : 0 }
else :
periodDiffMap [ industryMap [ blemind2 ] ] = { ' rise ' : 0 , ' flat ' : 0 , ' fall ' : 1 }
@ -194,10 +202,10 @@ def main():
stock_basic_map = { }
#转换数据的日期(单日)
trans_date = ' 202 3-07-20 '
trans_date = ' 202 2-0 3-07'
#查询交易日数据
sql_trade_qurey = ' select date,week,trade from trade_dates where trade = %s and date = %s '
sql_trade_qurey = ' select date,week,trade from trade_dates where trade = %s and date > %s '
sql_trade = " trading "
db_a_cursor . execute ( sql_trade_qurey , ( sql_trade , trans_date ) )
trading_dates = db_a_cursor . fetchall ( )
@ -246,28 +254,40 @@ def main():
print ( ' start transfer statistics ' , trading_date , ' data. ' )
# 获取前一日数据
prevIndustryDataMap = getPreData ( db_ a_conn, db_a _cursor, period_trading_dateMap [ ' 1 ' ] )
prevIndustryDataMap = getPreData ( db_ b_conn, db_b _cursor, period_trading_dateMap [ ' 1 ' ] )
hasPrevIndustryData = len ( prevIndustryDataMap )
# 获取多日成交额汇总数据
turnOver5 = getPeriodTurnOver ( db_a_conn , db_a_cursor , period_trading_dateMap [ ' 5 ' ] , trading_date )
for data in turnOver5 :
industries_tradeDaymap [ data ] [ ' turnover5 ' ] = turnOver5 [ data ] [ ' turnover ' ]
hasTurnOver5 = False if turnOver5 is None else len ( turnOver5 ) > 0
# for data in turnOver5:
# industries_tradeDaymap[data]['turnover5'] = turnOver5[data]['turnover']
turnOver10 = getPeriodTurnOver ( db_a_conn , db_a_cursor , period_trading_dateMap [ ' 10 ' ] , trading_date )
for data in turnOver10 :
industries_tradeDaymap [ data ] [ ' turnover10 ' ] = turnOver5 [ data ] [ ' turnover ' ]
hasTurnOver10 = False if turnOver10 is None else len ( turnOver10 ) > 0
# for data in turnOver10:
# industries_tradeDaymap[data]['turnover10'] = turnOver5[data]['turnover']
turnOver20 = getPeriodTurnOver ( db_a_conn , db_a_cursor , period_trading_dateMap [ ' 20 ' ] , trading_date )
for data in turnOver20 :
industries_tradeDaymap [ data ] [ ' turnover20 ' ] = turnOver5 [ data ] [ ' turnover ' ]
hasTurnOver20 = False if turnOver20 is None else len ( turnOver20 ) > 0
# for data in turnOver20:
# industries_tradeDaymap[data]['turnover20'] = turnOver5[data]['turnover']
turnOver30 = getPeriodTurnOver ( db_a_conn , db_a_cursor , period_trading_dateMap [ ' 30 ' ] , trading_date )
for data in turnOver30 :
industries_tradeDaymap [ data ] [ ' turnover30 ' ] = turnOver5 [ data ] [ ' turnover ' ]
hasTurnOver30 = False if turnOver30 is None else len ( turnOver30 ) > 0
# for data in turnOver30:
# industries_tradeDaymap[data]['turnover30'] = turnOver5[data]['turnover']
# 获取涨跌幅数据并统计涨跌幅
periodUpDownMap5 = getPeriodDiff ( db_a_conn , db_a_cursor , period_trading_dateMap [ ' 5 ' ] , trading_date )
periodUpDownMap10 = getPeriodDiff ( db_a_conn , db_a_cursor , period_trading_dateMap [ ' 10 ' ] , trading_date )
periodUpDownMap20 = getPeriodDiff ( db_a_conn , db_a_cursor , period_trading_dateMap [ ' 20 ' ] , trading_date )
periodUpDownMap30 = getPeriodDiff ( db_a_conn , db_a_cursor , period_trading_dateMap [ ' 30 ' ] , trading_date )
hasPeriodUpDownMap5 = False
periodUpDownMap5 = getPeriodDiff ( db_a_conn , db_a_cursor , period_trading_dateMap [ ' 5 ' ] , trading_date , hasPeriodUpDownMap5 )
hasPeriodUpDownMap5 = False if periodUpDownMap5 is None else len ( periodUpDownMap5 ) > 0
hasPeriodUpDownMap10 = False
periodUpDownMap10 = getPeriodDiff ( db_a_conn , db_a_cursor , period_trading_dateMap [ ' 10 ' ] , trading_date , hasPeriodUpDownMap10 )
hasPeriodUpDownMap10 = False if periodUpDownMap10 is None else len ( periodUpDownMap10 ) > 0
hasPeriodUpDownMap20 = False
periodUpDownMap20 = getPeriodDiff ( db_a_conn , db_a_cursor , period_trading_dateMap [ ' 20 ' ] , trading_date , hasPeriodUpDownMap20 )
hasPeriodUpDownMap20 = False if periodUpDownMap20 is None else len ( periodUpDownMap20 ) > 0
hasPeriodUpDownMap30 = False
periodUpDownMap30 = getPeriodDiff ( db_a_conn , db_a_cursor , period_trading_dateMap [ ' 30 ' ] , trading_date , hasPeriodUpDownMap30 )
hasPeriodUpDownMap30 = False if periodUpDownMap30 is None else len ( periodUpDownMap30 ) > 0
totalTunrover = Decimal ( ' 0.00 ' )
#查询日交易的所有成交额,用于计算占比等
@ -277,7 +297,7 @@ def main():
for total in datas :
code , totalTunrover = total
#查询日交易数据 以成交额进行排序
sql_stock_query = ' select code,name,trade_day, open,close,high,low,differrange,volume,amount,limitupnum,limitdownnum,suspendnum,risenum,fallnum,flatnum,componentnum,mv,pettm,pettm_mid,liqmv,rcnthigh,rcntlow from stock_index where trade_day = %s order by volume DESC'
sql_stock_query = ' select code,name,trade_day, open,close,high,low,differrange,volume,amount,limitupnum,limitdownnum,suspendnum,risenum,fallnum,flatnum,componentnum,mv,pettm,pettm_mid,liqmv,rcnthigh,rcntlow from stock_index where trade_day = %s order by amount DESC'
db_a_cursor . execute ( sql_stock_query , trading_date )
datas = db_a_cursor . fetchall ( )
sortIndex = 1
@ -292,15 +312,13 @@ def main():
security_name = name
turnover = amount
turnover_sort = sortIndex
turnover_change = turnover - prevIndustryDataMap [ code ] [ ' turnover ' ] if hasPrevIndustryData else turnover #todo 从交易数据中获取然后计算 ,一日、多日
turnover_change = Decimal ( prevIndustryDataMap [ code ] [ ' turnover ' ] ) - turnover if hasPrevIndustryData else turnover #todo 从交易数据中获取然后计算 ,一日、多日
sortIndex + = 1
rise_number = risenum
flat_number = flatnum
# print(type(turnover),type(totalTunrover),type(turnover*Decimal('100.00')))
ratio = ( turnover * Decimal ( ' 100.00 ' ) ) / totalTunrover
turnover_ratio = ratio
turnover_ratio_change = ' ' #todo
turnover_sort_change = ' '#todo
turnover_ratio_change = turnover_ratio - Decimal ( prevIndustryDataMap [ code ] [ ' turnover_ratio '] ) if hasPrevIndustryData else turnover_ratio #todo
turnover_sort_change = turnover_sort - Decimal ( prevIndustryDataMap [ code ] [ ' turnover_sort '] ) if hasPrevIndustryData else turnover_sort #todo
# industries_tradeDaymap[code] = {business_date,security_code,turnover_sort,rise_number,flat_number}
# 总成交额
@ -309,58 +327,60 @@ def main():
# turnover_change = '' #todo
# turnover_ratio_change = '' #todo
# turnover_sort_change = ''#todo
turnover5 = turnOver5 [ code ] [ ' turnover ' ] #todo
turnover5_change = turnover5 - prevIndustryDataMap [ code ] [ ' turnover5 ' ] if hasPrevIndustryData else turnover5 #todo
turnover5_ratio = ( turnover5 * Decimal ( ' 100.00 ' ) ) / turnOver5 [ code ] [ ' total ' ] #todo
turnover5_ratio_change = ' ' #todo
turnover5_sort = ' ' #todo
turnover5_sort_change = ' ' #todo
turnover10 = turnOver10 [ code ] [ ' turnover ' ] #todo
turnover10_change = turnover10 - prevIndustryDataMap [ code ] [ ' turnover10 ' ] if hasPrevIndustryData else turnover10 #todo
turnover10_ratio = ( turnover10 * Decimal ( ' 100.00 ' ) ) / turnOver10 [ code ] [ ' total ' ] #todo
turnover10_ratio_change = ' ' #todo
turnover10_sort = ' ' #todo
turnover10_sort_change = ' ' #todo
turnover20 = turnOver20 [ code ] [ ' turnover ' ] #todo
turnover20_change = turnover20 - prevIndustryDataMap [ code ] [ ' turnover20 ' ] if hasPrevIndustryData else turnover20 #todo
turnover20_ratio = ( turnover20 * Decimal ( ' 100.00 ' ) ) / turnOver20 [ code ] [ ' total ' ] #todo
turnover20_ratio_change = ' ' #todo
turnover20_sort = ' ' #todo
turnover20_sort_change = ' ' #todo
turnover30 = turnOver30 [ code ] [ ' turnover ' ] #todo
turnover30_change = turnover30 - prevIndustryDataMap [ code ] [ ' turnover30 ' ] if hasPrevIndustryData else turnover30 #todo
turnover30_ratio = ( turnover30 * Decimal ( ' 100.00 ' ) ) / turnOver30 [ code ] [ ' total ' ] #todo
turnover30_ratio_change = ' ' #todo
turnover30_sort = ' ' #todo
turnover30_sort_change = ' ' #todo
rise_number_change = ' ' #todo
turnover5 = Decimal ( turnOver5 [ code ] [ ' turnover ' ] ) if hasTurnOver5 else turnover #todo
turnover5_change = turnover5 - Decimal ( prevIndustryDataMap [ code ] [ ' turnover5 ' ] ) if hasPrevIndustryData else turnover5 #todo
turnover5_ratio = ( turnover5 * Decimal ( ' 100.00 ' ) ) / Decimal ( turnOver5 [ code ] [ ' total ' ] ) if hasTurnOver5 else ratio #todo
turnover5_ratio_change = turnover5_ratio - Decimal ( prevIndustryDataMap [ code ] [ ' turnover5_ratio ' ] ) if hasPrevIndustryData else turnover5_ratio #todo
turnover5_sort = Decimal ( prevIndustryDataMap [ code ] [ ' turnover5_sort ' ] ) if hasPrevIndustryData else turnover_sort #todo
turnover5_sort_change = Decimal ( prevIndustryDataMap [ code ] [ ' turnover5_sort ' ] ) - turnover5_sort if hasPrevIndustryData else turnover5_sort #todo
turnover10 = Decimal ( turnOver10 [ code ] [ ' turnover ' ] ) if hasTurnOver10 else turnover #todo
turnover10_change = turnover10 - Decimal ( prevIndustryDataMap [ code ] [ ' turnover10 ' ] ) if hasPrevIndustryData else turnover10 #todo
turnover10_ratio = ( turnover10 * Decimal ( ' 100.00 ' ) ) / Decimal ( turnOver10 [ code ] [ ' total ' ] ) if hasTurnOver10 else ratio #todo
turnover10_ratio_change = turnover10_ratio - Decimal ( prevIndustryDataMap [ code ] [ ' turnover10_ratio ' ] ) if hasPrevIndustryData else turnover10_ratio #todo
turnover10_sort = Decimal ( prevIndustryDataMap [ code ] [ ' turnover10_sort ' ] ) if hasPrevIndustryData else turnover_sort #todo
turnover10_sort_change = Decimal ( prevIndustryDataMap [ code ] [ ' turnover10_sort ' ] ) - turnover10_sort if hasPrevIndustryData else turnover10_sort #todo
turnover20 = Decimal ( turnOver20 [ code ] [ ' turnover ' ] ) if hasTurnOver20 else turnover #todo
turnover20_change = turnover20 - Decimal ( prevIndustryDataMap [ code ] [ ' turnover20 ' ] ) if hasPrevIndustryData else turnover20 #todo
turnover20_ratio = ( turnover20 * Decimal ( ' 100.00 ' ) ) / Decimal ( turnOver20 [ code ] [ ' total ' ] ) if hasTurnOver20 else ratio #todo
turnover20_ratio_change = turnover20_ratio - Decimal ( prevIndustryDataMap [ code ] [ ' turnover20_ratio ' ] ) if hasPrevIndustryData else turnover20_ratio #todo
turnover20_sort = Decimal ( prevIndustryDataMap [ code ] [ ' turnover20_sort ' ] ) if hasPrevIndustryData else turnover_sort #todo
turnover20_sort_change = Decimal ( prevIndustryDataMap [ code ] [ ' turnover20_sort ' ] ) - turnover20_sort if hasPrevIndustryData else turnover20_sort #todo
turnover30 = Decimal ( turnOver30 [ code ] [ ' turnover ' ] ) if hasTurnOver30 else turnover #todo
turnover30_change = turnover30 - Decimal ( prevIndustryDataMap [ code ] [ ' turnover30 ' ] ) if hasPrevIndustryData else turnover30 #todo
turnover30_ratio = ( turnover30 * Decimal ( ' 100.00 ' ) ) / Decimal ( turnOver30 [ code ] [ ' total ' ] ) if hasTurnOver30 else ratio #todo
turnover30_ratio_change = turnover30_ratio - Decimal ( prevIndustryDataMap [ code ] [ ' turnover30_ratio ' ] ) if hasPrevIndustryData else turnover30_ratio #todo
turnover30_sort = Decimal ( prevIndustryDataMap [ code ] [ ' turnover30_sort ' ] ) if hasPrevIndustryData else turnover_sort #todo
turnover30_sort_change = Decimal ( prevIndustryDataMap [ code ] [ ' turnover30_sort ' ] ) - turnover30_sort if hasPrevIndustryData else turnover30_sort #todo
rise_number = risenum
flat_number = flatnum
losses_number = fallnum
losses_number_change = ' ' #todo
flat_number_change = ' ' #todo
rise5_number = periodUpDownMap5 [ code ] [ ' rise ' ] #todo
rise5_number_change = ' ' #todo
losses5_number = periodUpDownMap5 [ code ] [ ' fall ' ] #todo
losses5_number_change = ' ' #todo
flat5_number = periodUpDownMap5 [ code ] [ ' flat ' ] #todo
flat5_number_change = ' ' #todo
rise10_number = periodUpDownMap10 [ code ] [ ' rise ' ] #todo
rise10_number_change = ' ' #todo
losses10_number = periodUpDownMap10 [ code ] [ ' fall ' ] #todo
losses10_number_change = ' ' #todo
flat10_number = periodUpDownMap10 [ code ] [ ' flat ' ] #todo
flat10_number_change = ' ' #todo
rise20_number = periodUpDownMap20 [ code ] [ ' rise ' ] #todo
rise20_number_change = ' ' #todo
losses20_number = periodUpDownMap20 [ code ] [ ' fall ' ] #todo
losses20_number_change = ' ' #todo
flat20_number = periodUpDownMap20 [ code ] [ ' flat ' ] #todo
flat20_number_change = ' ' #todo
rise30_number = periodUpDownMap30 [ code ] [ ' rise ' ] #todo
rise30_number_change = ' ' #todo
losses30_number = periodUpDownMap30 [ code ] [ ' fall ' ] #todo
losses30_number_change = ' ' #todo
flat30_number = periodUpDownMap30 [ code ] [ ' flat ' ] #todo
flat30_number_change = ' ' #todo
rise_number_change = rise_number - Decimal ( prevIndustryDataMap [ code ] [ ' rise_number ' ] ) if hasPrevIndustryData else rise_number #todo
losses_number_change = losses_number - Decimal ( prevIndustryDataMap [ code ] [ ' losses_number ' ] ) if hasPrevIndustryData else losses_number #todo
flat_number_change = flat_number - Decimal ( prevIndustryDataMap [ code ] [ ' flat_number ' ] ) if hasPrevIndustryData else flat_number #todo
rise5_number = Decimal ( periodUpDownMap5 [ code ] [ ' rise ' ] ) #todo
rise5_number_change = rise5_number - Decimal ( periodUpDownMap5 [ code ] [ ' rise ' ] ) if hasPeriodUpDownMap5 else rise5_number #todo
losses5_number = Decimal ( periodUpDownMap5 [ code ] [ ' fall ' ] ) #todo
losses5_number_change = losses5_number - Decimal ( periodUpDownMap5 [ code ] [ ' fall ' ] ) if hasPeriodUpDownMap5 else losses5_number #todo
flat5_number = Decimal ( periodUpDownMap5 [ code ] [ ' flat ' ] ) #todo
flat5_number_change = flat5_number - Decimal ( periodUpDownMap5 [ code ] [ ' flat ' ] ) if hasPeriodUpDownMap5 else flat5_number #todo
rise10_number = Decimal ( periodUpDownMap10 [ code ] [ ' rise ' ] ) #todo
rise10_number_change = rise10_number - Decimal ( periodUpDownMap10 [ code ] [ ' rise ' ] ) if hasPeriodUpDownMap10 else rise10_number #todo
losses10_number = Decimal ( periodUpDownMap10 [ code ] [ ' fall ' ] ) #todo
losses10_number_change = losses10_number - Decimal ( periodUpDownMap10 [ code ] [ ' fall ' ] ) if hasPeriodUpDownMap10 else losses10_number #todo
flat10_number = Decimal ( periodUpDownMap10 [ code ] [ ' flat ' ] ) #todo
flat10_number_change = flat10_number - Decimal ( periodUpDownMap10 [ code ] [ ' flat ' ] ) if hasPeriodUpDownMap10 else flat10_number #todo
rise20_number = Decimal ( periodUpDownMap20 [ code ] [ ' rise ' ] ) #todo
rise20_number_change = rise20_number - Decimal ( periodUpDownMap20 [ code ] [ ' rise ' ] ) if hasPeriodUpDownMap20 else rise20_number #todo
losses20_number = Decimal ( periodUpDownMap20 [ code ] [ ' fall ' ] ) #todo
losses20_number_change = losses20_number - Decimal ( periodUpDownMap20 [ code ] [ ' fall ' ] ) if hasPeriodUpDownMap20 else losses20_number #todo
flat20_number = Decimal ( periodUpDownMap20 [ code ] [ ' flat ' ] ) #todo
flat20_number_change = flat20_number - Decimal ( periodUpDownMap20 [ code ] [ ' flat ' ] ) if hasPeriodUpDownMap20 else flat20_number #todo
rise30_number = Decimal ( periodUpDownMap30 [ code ] [ ' rise ' ] ) #todo
rise30_number_change = rise30_number - Decimal ( periodUpDownMap30 [ code ] [ ' rise ' ] ) if hasPeriodUpDownMap30 else rise30_number #todo
losses30_number = Decimal ( periodUpDownMap30 [ code ] [ ' fall ' ] ) #todo
losses30_number_change = losses30_number - Decimal ( periodUpDownMap30 [ code ] [ ' fall ' ] ) if hasPeriodUpDownMap30 else losses30_number #todo
flat30_number = Decimal ( periodUpDownMap30 [ code ] [ ' flat ' ] ) #todo
flat30_number_change = flat30_number - Decimal ( periodUpDownMap30 [ code ] [ ' flat ' ] ) if hasPeriodUpDownMap30 else flat30_number #todo
# create_time =
# sql_insert = f"INSERT INTO dong_cai_secondary_industry (business_date,sort,security_code,security_name,security_type,number_ingredients,opening_price,closing_price,volume,turnover,total_capitalization,free_capitalization,change_percentage,highest_price,lowest_price,rise_number,losses_number,flat_number,rise_stop_number,losses_stop_number,stop_number,recently_high,recently_low,pe_ttm,pe_center_ttm) VALUES ( %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s,%s, %s, %s, %s)"
# db_b_cursor.execute(sql_insert, (business_date,sort,security_code,security_name,security_type,number_ingredients,opening_price,closing_price,volume,turnover,total_capitalization,free_capitalization,change_percentage,highest_price,lowest_price,rise_number,losses_number,flat_number,rise_stop_number,losses_stop_number,stop_number,recently_high,recently_low,pe_ttm,pe_center_ttm))
@ -377,42 +397,13 @@ def main():
' rise20_number ' : rise20_number , ' flat20_number ' : flat20_number , ' losses20_number ' : losses20_number , ' rise20_number_change ' : rise20_number_change , ' flat20_number_change ' : flat20_number_change , ' losses20_number_change ' : losses20_number_change ,
' rise30_number ' : rise30_number , ' flat30_number ' : flat30_number , ' losses30_number ' : losses30_number , ' rise30_number_change ' : rise30_number_change , ' flat30_number_change ' : flat30_number_change , ' losses30_number_change ' : losses30_number_change }
# 构建数据并存入数据库
sql_insert = f " INSERT INTO dong_cai_secondary_industry_statistics (business_date,security_code,security_name,turnover,turnover_change,turnover_ratio,turnover_ratio_change,turnover_sort,turnover_sort_change, turnover5,turnover5_change,turnover5_ratio,turnover5_ratio_change,turnover5_sort,turnover5_sort_change,turnover10,turnover10_change,turnover10_ratio,turnover10_ratio_change,turnover10_sort,turnover10_sort_change,turnover20,turnover20_change,turnover20_ratio,turnover20_ratio_change,turnover20_sort,turnover20_sort_change, turnover30,turnover30_change,turnover30_ratio,turnover30_ratio_change,turnover30_sort,turnover30_sort_change,rise_number,rise_number_change,losses_number,losses_number_change,flat_number,flat_number_change, rise5_number,rise5_number_change,losses5_number,losses5_number_change,flat5_number,flat5_number_change, rise10_number,rise10_number_change,losses10_number,losses10_number_change,flat10_number,flat10_number_change, rise20_number,rise20_number_change,losses20_number,losses20_number_change,flat20_number,flat20_number_change, rise30_number,rise30_number_change,losses30_number,losses30_number_change,flat30_number,flat30_number_change) VALUES ( %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s,%s, %s, %s, %s ,%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s,%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) "
db_b_cursor . execute ( sql_insert , ( business_date , security_code , security_name , turnover , turnover_change , turnover_ratio , turnover_ratio_change , turnover_sort , turnover_sort_change , turnover5 , turnover5_change , turnover5_ratio , turnover5_ratio_change , turnover5_sort , turnover5_sort_change , turnover10 , turnover10_change , turnover10_ratio , turnover10_ratio_change , turnover10_sort , turnover10_sort_change , turnover20 , turnover20_change , turnover20_ratio , turnover20_ratio_change , turnover20_sort , turnover20_sort_change , turnover30 , turnover30_change , turnover30_ratio , turnover30_ratio_change , turnover30_sort , turnover30_sort_change , rise_number , rise_number_change , losses_number , losses_number_change , flat_number , flat_number_change , rise5_number , rise5_number_change , losses5_number , losses5_number_change , flat5_number , flat5_number_change , rise10_number , rise10_number_change , losses10_number , losses10_number_change , flat10_number , flat10_number_change , rise20_number , rise20_number_change , losses20_number , losses20_number_change , flat20_number , flat20_number_change , rise30_number , rise30_number_change , losses30_number , losses30_number_change , flat30_number , flat30_number_change ) )
# print(industries_tradeDaymap)
# 计算获取多日数据
prevTotalTunrover = Decimal ( ' 0.00 ' )
sql_stock_query = ' select code,sum(amount) as turnover from stock_index where trade_day = %s '
db_a_cursor . execute ( sql_stock_query , prevTradeDate )
datas = db_a_cursor . fetchall ( )
for total in datas :
code , prevTotalTunrover = total
#遍历前一日( 或多日) 交易数据, 获取成交量, 计算变化; 再从( dong_cai_secondary_industry_statistics) 获取, 及排名数据, 获取变化值; 如果没有,当前值就是最新的值
sql_stock_query = ' select code,name,trade_day, open,close,high,low,differrange,volume,amount,limitupnum,limitdownnum,suspendnum,risenum,fallnum,flatnum,componentnum,mv,pettm,pettm_mid,liqmv,rcnthigh,rcntlow from stock_index where trade_day = %s order by volume DESC '
db_a_cursor . execute ( sql_stock_query , prevTradeDate )
datas = db_a_cursor . fetchall ( )
industries_prevTradeDaymap = { }
for stock_index_data in datas :
code , name , trade_day , open , close , high , low , differrange , volume , amount , limitupnum , limitdownnum , suspendnum , risenum , fallnum , flatnum , componentnum , mv , pettm , pettm_mid , liqmv , rcnthigh , rcntlow = stock_index_data
business_date = trading_date
security_code = code
security_name = name
turnover = amount
turnover_sort = sortIndex
sortIndex + = 1
rise_number = risenum
flat_number = flatnum
ratio = ( turnover * Decimal ( ' 100 ' ) ) / prevTotalTunrover
turnover_ratio = ratio
# 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 ' : turnover , ' turnover_sort ' : turnover_sort , ' rise_number ' : rise_number ,
' turnover_ratio ' : turnover_ratio , ' flat_number ' : flat_number }
industries_tradeDaymap [ code ] [ ' turnover_change ' ] = industries_tradeDaymap [ code ] [ ' turnover ' ] - turnover
# industries_tradeDaymap[code]['turnover_sort_change'] = industries_tradeDaymap[code]['turnover_sort'] - turnover_sort
print ( industries_tradeDaymap )
#提交数据到数据库B中
db_b_conn . commit ( )