def use_ma(dss): dates = get_trading_dates(dss) preday = dates[-2] today = dates[-1] print(today) #pfFile = dss + 'csv/hold.csv' b1 = Book(dss) codes = [] for tactic in b1.tactic_List: if tactic.tacticName == 'boll': for hold in tactic.hold_Array: code = hold[0] codes.append(code) codes += hit_ma(dss, today) r = [] symbols = set(codes) print(symbols) for vtSymbol in symbols: df = ts.get_realtime_quotes(vtSymbol) name = df.at[0, 'name'] r.append([vtSymbol, 1, 0.01, '0.00003', 0, 0.01, name]) df = pd.DataFrame(r, columns=[ 'vtSymbol', 'size', 'priceTick', 'variableCommission', 'fixedCommission', 'slippage', 'name' ]) filename = dss + 'csv/setting_stk_boll' + '.csv' df.to_csv(filename, index=False) return r
def loadHold(self): """每日重新加载持仓""" b1 = Book(self.engine.dss) for tactic in b1.tactic_List: if tactic.tacticName == self.name: for hold in tactic.hold_Array: code = hold[0] num = hold[2] self.posDict[code] = num
def stare_hold(): print('stare_hold begin... ') loaded = False codes = () mailed = [] while True: time.sleep(30) if is_price_time(): # 读入codes if not loaded: b1 = Book(dss) codes = b1.get_codes() loaded = True for code in codes: try: time.sleep(1) df = ts.get_realtime_quotes(code) name = df.at[0, 'name'] price = float(df.at[0, 'price']) pre_close = float(df.at[0, 'pre_close']) #print(code, price, pre_close) if code not in mailed: if price / pre_close - 1 > 0.05: send_email(dss, 'up_warn', str(code + ' ' + name)) #print('up_warn', str(code+' '+name)) mailed.append(code) if price / pre_close - 1 < -0.05: send_email(dss, 'down_warn', str(code + ' ' + name)) #print('down_warn', str(code+' '+name)) mailed.append(code) except Exception as e: print('error') print(e) else: loaded = False codes = () mailed = [] time.sleep(300)
def on_order_done(order_dict): #to_log( 'in on_order_done ' + str(order_dict.keys()) ) for key in order_dict.keys(): ins_dict = order_dict[key] if ins_dict['done'] == False: try: #to_log( 'in on_order_done ' + str(ins_dict) ) df_q = ts.get_realtime_quotes(ins_dict['code']) name = df_q.at[0, 'name'] price_now = float(df_q.at[0, 'price']) #to_log(name + price_now) if ins_dict['ins'] == 'buy_order' and ins_dict[ 'price'] > price_now: b1 = Book(dss) b1.deal_ins(ins_dict.copy()) ins_dict['done'] = True if ins_dict['ins'] == 'sell_order' and ins_dict[ 'price'] < price_now: b1 = Book(dss) b1.deal_ins(ins_dict.copy()) ins_dict['done'] = True except Exception as e: to_log('error in on_order_done') to_log(e)
import time import os import pandas as pd import tushare as ts from nature import Book dss = 'ini\\' b1 = Book(dss, 'hold_security.csv') ins_dict = { 'ins': 'open_portfolio', 'portfolio': 'overlap', 'code': 'profit', 'agent': 'pingan' } #ins_dict = {'ins':'close_portfolio', 'portfolio':'overlap','agent':'pingan'} b1.deal_ins(ins_dict)
import time import os import pandas as pd import tushare as ts from nature import Book dss = 'ini\\' b1 = Book(dss,'hold_security.csv') b1.pandian()