|  | @@ -2,9 +2,6 @@
 | 
											
												
													
														|  |  from datetime import datetime as dt
 |  |  from datetime import datetime as dt
 | 
											
												
													
														|  |  import os
 |  |  import os
 | 
											
												
													
														|  |  import pandas as pd
 |  |  import pandas as pd
 | 
											
												
													
														|  | -# from xtquant.xttrader import XtQuantTrader, XtQuantTraderCallback
 |  | 
 | 
											
												
													
														|  | -# from xtquant.xttype import StockAccount
 |  | 
 | 
											
												
													
														|  | -# from xtquant import xtdata, xtconstant
 |  | 
 | 
											
												
													
														|  |  import time
 |  |  import time
 | 
											
												
													
														|  |  from sqlalchemy import create_engine
 |  |  from sqlalchemy import create_engine
 | 
											
												
													
														|  |  from jqdatasdk import *
 |  |  from jqdatasdk import *
 | 
											
										
											
												
													
														|  | @@ -13,11 +10,13 @@ import multiprocessing as mp
 | 
											
												
													
														|  |  import math
 |  |  import math
 | 
											
												
													
														|  |  import talib as ta
 |  |  import talib as ta
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -pd.set_option('display.max_columns', None) # 设置显示最大行
 |  | 
 | 
											
												
													
														|  | 
 |  | +# pd.set_option('display.max_columns', None)  # 设置显示最大行
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  def err_call_back(err):
 |  |  def err_call_back(err):
 | 
											
												
													
														|  |      print(f'出错啦~ error:{str(err)}')
 |  |      print(f'出错啦~ error:{str(err)}')
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |  def myself_kdj(df):
 |  |  def myself_kdj(df):
 | 
											
												
													
														|  |      low_list = df['low'].rolling(9, min_periods=9).min()
 |  |      low_list = df['low'].rolling(9, min_periods=9).min()
 | 
											
												
													
														|  |      low_list.fillna(value=df['low'].expanding().min(), inplace=True)
 |  |      low_list.fillna(value=df['low'].expanding().min(), inplace=True)
 | 
											
										
											
												
													
														|  | @@ -60,12 +59,12 @@ def get_bias(df):
 | 
											
												
													
														|  |      # 计算方法:
 |  |      # 计算方法:
 | 
											
												
													
														|  |      # bias指标
 |  |      # bias指标
 | 
											
												
													
														|  |      # N期BIAS=(当日收盘价-N期平均收盘价)/N期平均收盘价*100%
 |  |      # N期BIAS=(当日收盘价-N期平均收盘价)/N期平均收盘价*100%
 | 
											
												
													
														|  | -    df['bias_6'] = (df['close'] - df['close'].rolling(6, min_periods=1).mean()) / df['close'].rolling(6,
 |  | 
 | 
											
												
													
														|  | -                                                                                                      min_periods=1).mean() * 100
 |  | 
 | 
											
												
													
														|  | -    df['bias_12'] = (df['close'] - df['close'].rolling(12, min_periods=1).mean()) / df['close'].rolling(12,
 |  | 
 | 
											
												
													
														|  | -                                                                                                        min_periods=1).mean() * 100
 |  | 
 | 
											
												
													
														|  | -    df['bias_24'] = (df['close'] - df['close'].rolling(24, min_periods=1).mean()) / df['close'].rolling(24,
 |  | 
 | 
											
												
													
														|  | -                                                                                                        min_periods=1).mean() * 100
 |  | 
 | 
											
												
													
														|  | 
 |  | +    df['bias_6'] = (df['close'] - df['close'].rolling(6, min_periods=1).mean()) / \
 | 
											
												
													
														|  | 
 |  | +                    df['close'].rolling(6, min_periods=1).mean() * 100
 | 
											
												
													
														|  | 
 |  | +    df['bias_12'] = (df['close'] - df['close'].rolling(12, min_periods=1).mean()) / \
 | 
											
												
													
														|  | 
 |  | +                     df['close'].rolling(12, min_periods=1).mean() * 100
 | 
											
												
													
														|  | 
 |  | +    df['bias_24'] = (df['close'] - df['close'].rolling(24, min_periods=1).mean()) / \
 | 
											
												
													
														|  | 
 |  | +                     df['close'].rolling(24, min_periods=1).mean() * 100
 | 
											
												
													
														|  |      df['bias_6'] = round(df['bias_6'], 2)
 |  |      df['bias_6'] = round(df['bias_6'], 2)
 | 
											
												
													
														|  |      df['bias_12'] = round(df['bias_12'], 2)
 |  |      df['bias_12'] = round(df['bias_12'], 2)
 | 
											
												
													
														|  |      df['bias_24'] = round(df['bias_24'], 2)
 |  |      df['bias_24'] = round(df['bias_24'], 2)
 | 
											
										
											
												
													
														|  | @@ -88,7 +87,7 @@ def tech_anal(datas):
 | 
											
												
													
														|  |          get_bias(df)
 |  |          get_bias(df)
 | 
											
												
													
														|  |          get_wilr(df)
 |  |          get_wilr(df)
 | 
											
												
													
														|  |          df = df.reset_index(drop=True)
 |  |          df = df.reset_index(drop=True)
 | 
											
												
													
														|  | -        df.to_sql('%s_1d' % stock, con=engine_tech, index=False, if_exists='append')
 |  | 
 | 
											
												
													
														|  | 
 |  | +        df.to_sql('%s_1d' % stock, con=engine_tech, index=False, if_exists='replace')
 | 
											
												
													
														|  |          # with engine.connect() as con:
 |  |          # with engine.connect() as con:
 | 
											
												
													
														|  |          #     con.execute("ALTER TABLE `%s_1d` ADD PRIMARY KEY (`time`);" % stock)
 |  |          #     con.execute("ALTER TABLE `%s_1d` ADD PRIMARY KEY (`time`);" % stock)
 | 
											
												
													
														|  |          print(stock, df)
 |  |          print(stock, df)
 | 
											
										
											
												
													
														|  | @@ -108,10 +107,10 @@ if __name__ == '__main__':
 | 
											
												
													
														|  |      step = 100
 |  |      step = 100
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      for i in range(0, len(stock_pool), step):
 |  |      for i in range(0, len(stock_pool), step):
 | 
											
												
													
														|  | -        pool.apply_async(func=tech_anal, args=(stock_pool[i:i+step],), error_callback=err_call_back)
 |  | 
 | 
											
												
													
														|  | 
 |  | +        pool.apply_async(func=tech_anal, args=(stock_pool[i:i + step],), error_callback=err_call_back)
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      pool.close()
 |  |      pool.close()
 | 
											
												
													
														|  |      pool.join()
 |  |      pool.join()
 | 
											
												
													
														|  |      edtime = dt.now()
 |  |      edtime = dt.now()
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -    print(edtime-sttime)
 |  | 
 | 
											
												
													
														|  | 
 |  | +    print(edtime - sttime)
 |