fix: 修改为main启动,增加函数封装

master
laixingyu 3 years ago
parent 6d424908fa
commit 7a9c0c8e4e

@ -21,6 +21,45 @@
from decimal import Decimal from decimal import Decimal
import pymysql import pymysql
def getTradingDates(dbconfig,dbcursor,state,date):
# 1日 5日 10日 20日 30日周期日期
period_trading_dateMap = {} # 用于计算成交额
period_trading_dateMap2 = {} # 用于计算区间涨跌数量等,区间涨跌等需要查询个股
# 获取周期
sql_trade_period_qurey = 'select date,week,trade from trade_dates where trade = %s and date < %s order by date desc limit 30'
sql_trade_period = state
dbcursor.execute(sql_trade_period_qurey,(sql_trade_period,date))
trading_period_dates = dbcursor.fetchall()
#前一个交易日
prevTradeDate = ''
periodIndex = 0
period_trading_dateMap
for ttrading_date in trading_period_dates:
if periodIndex == 0:
period_trading_dateMap['1']=ttrading_date[0]
elif periodIndex == 1:
prevTradeDate = ttrading_date[0]
elif periodIndex == 4:
period_trading_dateMap['5']=ttrading_date[0]
elif periodIndex == 5:
period_trading_dateMap2['5'] = ttrading_date[0]
elif periodIndex == 9:
period_trading_dateMap['10'] = ttrading_date[0]
elif periodIndex == 10:
period_trading_dateMap2['10'] = ttrading_date[0]
elif periodIndex == 19:
period_trading_dateMap['20'] = ttrading_date[0]
elif periodIndex == 20:
period_trading_dateMap2['20'] = ttrading_date[0]
elif periodIndex == 29:
period_trading_dateMap['30'] =ttrading_date[0]
elif periodIndex == 30:
period_trading_dateMap2['30'] = ttrading_date[0]
elif periodIndex > 30:
break
periodIndex += 1
return period_trading_dateMap
def main():
# #数据库A的连接信息NAS数据库 # #数据库A的连接信息NAS数据库
# db_a_config = { # db_a_config = {
# 'host': '192.168.0.222', # 'host': '192.168.0.222',
@ -56,7 +95,6 @@ db_b_config = {
'db': 'mojin', 'db': 'mojin',
'charset': 'utf8mb4', 'charset': 'utf8mb4',
} }
try: try:
# 连接数据库A # 连接数据库A
db_a_conn = pymysql.connect(**db_a_config) db_a_conn = pymysql.connect(**db_a_config)
@ -83,6 +121,7 @@ try:
for row in trading_dates: for row in trading_dates:
# 1日 5日 10日 20日 30日周期日期 # 1日 5日 10日 20日 30日周期日期
period_trading_dateMap = {} # 用于计算成交额 period_trading_dateMap = {} # 用于计算成交额
period_trading_dateMap = getTradingDates(db_a_conn,db_a_cursor,sql_trade,trans_date)
period_trading_dateMap2 = {} # 用于计算区间涨跌数量等,区间涨跌等需要查询个股 period_trading_dateMap2 = {} # 用于计算区间涨跌数量等,区间涨跌等需要查询个股
trading_date,week,trade = row trading_date,week,trade = row
# 获取周期 # 获取周期
@ -142,14 +181,14 @@ try:
security_name = name security_name = name
turnover = amount turnover = amount
turnover_sort = sortIndex turnover_sort = sortIndex
turnover_change = '' #todo turnover_change = '' #todo 从交易数据中获取然后计算 ,一日、多日
sortIndex +=1 sortIndex +=1
rise_number = risenum rise_number = risenum
flat_number = flatnum flat_number = flatnum
# print(type(turnover),type(totalTunrover),type(turnover*Decimal('100.00'))) # print(type(turnover),type(totalTunrover),type(turnover*Decimal('100.00')))
ratio = (turnover*Decimal('100.00') )/ totalTunrover ratio = (turnover*Decimal('100.00') )/ totalTunrover
turnover_ratio = ratio turnover_ratio = ratio
turnover_ratio_change = '' #todo turnover_ratio_change = '' #todo
turnover_sort_change = ''#todo turnover_sort_change = ''#todo
# industries_tradeDaymap[code] = {business_date,security_code,turnover_sort,rise_number,flat_number} # 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':turnover,'turnover_change':turnover_change,'turnover_sort':turnover_sort,'rise_number':rise_number, industries_tradeDaymap[code] = {'business_date':business_date,'security_code':security_code,'turnover':turnover,'turnover_change':turnover_change,'turnover_sort':turnover_sort,'rise_number':rise_number,
@ -224,7 +263,7 @@ try:
for total in datas: for total in datas:
code,prevTotalTunrover = total 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' 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) db_a_cursor.execute(sql_stock_query,prevTradeDate)
datas = db_a_cursor.fetchall() datas = db_a_cursor.fetchall()
@ -246,7 +285,7 @@ try:
industries_prevTradeDaymap[code] = {'business_date':business_date,'security_code':security_code,'turnover':turnover,'turnover_sort':turnover_sort,'rise_number':rise_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} 'turnover_ratio':turnover_ratio,'flat_number':flat_number}
industries_tradeDaymap[code]['turnover_change'] = industries_tradeDaymap[code]['turnover'] - turnover industries_tradeDaymap[code]['turnover_change'] = industries_tradeDaymap[code]['turnover'] - turnover
industries_tradeDaymap[code]['turnover_sort_change'] = industries_tradeDaymap[code]['turnover_sort'] - turnover_sort # industries_tradeDaymap[code]['turnover_sort_change'] = industries_tradeDaymap[code]['turnover_sort'] - turnover_sort
print(industries_tradeDaymap) print(industries_tradeDaymap)
@ -358,3 +397,7 @@ finally:
db_b_cursor.close() db_b_cursor.close()
if db_b_conn: if db_b_conn:
db_b_conn.close() db_b_conn.close()
if __name__ == "__main__":
main()

Loading…
Cancel
Save