#encoding:gbk'''本策略事先设定好交易的股票篮子,然后根据指数的CCI指标来判断超买和超卖当有超买和超卖发生时,交易事先设定好的股票篮子'''import pandas as pdimport numpy as npimport talibimport timefrom datetime import datetimedef init(ContextInfo):# '290030008314'ContextInfo.account='10000000164'ContextInfo.stock='204001.SH'ContextInfo.run_time('trade','1nSecond','2023-05-02 9:30:00')today = datetime.now().date()target_time = datetime(today.year, today.month, today.day, 15, 29)#收盘时间戳ContextInfo.end_time_stramp = target_time.timestamp()start = time.time()ContextInfo.start = str(start) def trade (ContextInfo):loc_time=time.localtime() if loc_time[6] != 5 and loc_time[6]!= 6:# 获取所有委托,并取消委托obj_list = get_trade_detail_data(ContextInfo.account,'stock','order')for order in obj_list:if can_cancel_order(order.m_strOrderSysID,ContextInfo.account,'stock') and order.m_strRemark != '新股申购' :cancel(str(order.m_strOrderSysID),ContextInfo.account,'stock',ContextInfo)loc_time=time.strftime("%H:%M:%S", time.localtime())time.sleep(2)while loc_time < '15:30:00':# 时间差值delta = ContextInfo.end_time_stramp - time.time()n = int((delta/60))-1 if delta > 120 else 1obj_list = get_trade_detail_data(ContextInfo.account,'stock','account')for account in obj_list:cash=float(account.m_dAvailable)volumn = int(((cash/n)-10000)/100)*10if cash >2000 and volumn > 10 and str(time.time())> ContextInfo.start:print(3)time.sleep(0.2)passorder(24,1101,ContextInfo.account,ContextInfo.stock,5,1,volumn,'国债逆回购',2,'国债逆回购',ContextInfo)start = str ( time.time()+60)ContextInfo.start = start
|