import json from ctpapi import MyMdApi, MyTradeApi, ApiStruct from ctpapi import q_depth_market_data, q_rtn_trade, q_rtn_order, q_positions, q_server_info from getaccount import getAccountinfo from function import load_data_from_file, get_k_line_column, get_last_k_line, load_data_from_server, be_apart_from from myfunction import HLV, HHV, LLV, MID, cross, CROSS from tickToBar import tickToBar, q_bar from awpConstant import * from tnlog import Logger # BROKER_ID, INVESTOR_ID, PASSWORD, ADDR_MD, ADDR_TD = getAccountinfo('simnow24_ctp.json') # BROKER_ID, INVESTOR_ID, PASSWORD, ADDR_MD, ADDR_TD = getAccountinfo(r'.\conf\simnowstd_ctp.json') # BROKER_ID, INVESTOR_ID, PASSWORD, ADDR_MD, ADDR_TD = getAccountinfo('CTP_tgjy_thm.json') BROKER_ID, INVESTOR_ID, PASSWORD, ADDR_MD, ADDR_TD = getAccountinfo( '.\conf\simnowstd_ctp.json') strategy_name = 'dingdangNo6' q_signals = Queue() inst = 'rb1905' granularity = 780 def initData(): pass def makeMdUser(): pass
# -*- coding: utf-8 -*- # this is for pypy import queue from utils.vtObject import VtTickData from models import Utils from models.initialize import logger from function import load_data_from_server, get_k_line_column, ma, cross, be_apart_from from ctp.futures import ApiStruct, MdApi, TraderApi from getaccount import getAccountinfo from tickToBar import tickToBar, q_bar BROKER_ID, INVESTOR_ID, PASSWORD, ADDRESS_MD, ADDRESS_TD = getAccountinfo( 'simnow24_ctp.json') __author__ = 'James Iter' __date__ = '2018/8/27' __contact__ = '*****@*****.**' __copyright__ = '(c) 2018 by James Iter.' q_depth_market_data = queue.Queue() granularity = 180 inst = ['rb1901'] def init_data(): global data
import time import json from ctpapi import MyMdApi, MyTradeApi, ApiStruct from ctpapi import q_depth_market_data, q_rtn_trade, q_rtn_order, q_positions, q_server_info from getaccount import getAccountinfo from function import load_data_from_file, get_k_line_column, get_last_k_line, load_data_from_server, be_apart_from from myfunction import HLV, HHV, LLV, MID, cross, CROSS from tickToBar import tickToBar, q_bar from awpConstant import * # BROKER_ID, INVESTOR_ID, PASSWORD, ADDR_MD, ADDR_TD = getAccountinfo('simnow24_ctp.json') # BROKER_ID, INVESTOR_ID, PASSWORD, ADDR_MD, ADDR_TD = getAccountinfo(r'.\conf\simnowstd_ctp.json') # BROKER_ID, INVESTOR_ID, PASSWORD, ADDR_MD, ADDR_TD = getAccountinfo('CTP_tgjy_thm.json') BROKER_ID, INVESTOR_ID, PASSWORD, ADDR_MD, ADDR_TD = getAccountinfo( '.\conf\dfqhthm_ctp.json') q_signals = Queue() granularity = 780 serverport = 'http://192.168.1.15:8008' # serverport = 'http://192.168.1.19:8008' bars = dict() data_path = r'./data/bar/rb/' # barss = load_data_from_server(server_base=serverport, instruments_id=inst, granularity=granularity) bars = load_data_from_file(instruments_id=inst, granularities='780', data_source_dir=data_path)
from tickToBar import tickToBar, q_bar # from myfunction import LLV, HHV from tnlog import Logger from Constant import LOGS_DIR from myfunction import HHV, LLV, cross, MID, HLV from emailNotify import mailsender import queue from getaccount import getAccountinfo BROKER_ID, INVESTOR_ID, PASSWORD, ADDR_MD, ADDR_TD = getAccountinfo(r'D:\qhreal\test\conf\dfqh_ctp_zjy.json') inst = 'rb1905' granularity = 180 bars = dict() data_path = r'./data/bar/rb/' # barss = load_data_from_server(server_base=serverport, instruments_id=inst, granularity=granularity) bars = load_data_from_file_v2(instruments_id=inst, granularities='180', data_source_dir=data_path) barinterval = inst + '_' + str(granularity) bardatafile = data_path + barinterval + '.json'
from getaccount import getAccountinfo from function import load_data_from_file, get_k_line_column, get_last_k_line, load_data_from_server, be_apart_from from myfunction import HLV, HHV, LLV, MID, cross, CROSS from tickToBar import tickToBar, q_bar from Constant import LOGS_DIR s = S = ApiStruct.D_Sell b = B = ApiStruct.D_Buy k = K = ApiStruct.OF_Open p = P = ApiStruct.OF_Close pj = PJ = ApiStruct.OF_CloseToday pz = PZ = ApiStruct.OF_CloseYesterday BROKER_ID, INVESTOR_ID, PASSWORD, ADDR_MD, ADDR_TD = getAccountinfo( r'D:\qhreal\test\conf\simnow24_ctp.json') # BROKER_ID, INVESTOR_ID, PASSWORD, ADDR_MD, ADDR_TD = getAccountinfo(r'.\conf\simnowstd_ctp.json') # BROKER_ID, INVESTOR_ID, PASSWORD, ADDR_MD, ADDR_TD = getAccountinfo('CTP_tgjy_thm.json') # BROKER_ID, INVESTOR_ID, PASSWORD, ADDR_MD, ADDR_TD = getAccountinfo('.\conf\dfqhthm_ctp.json') q_signals = Queue() inst = 'rb1905' granularity = 780 barinterval = inst + '_' + str(granularity) serverport = 'http://192.168.1.15:8008' # serverport = 'http://192.168.1.19:8008' bars = dict() data_path = r'./data/bar/rb/'
def tradingRecorder(account): #accont 为ctp账号文件 try: BROKER_ID, INVESTOR_ID, PASSWORD, ADDR_MD, ADDR_TD = getAccountinfo( account) except: print('account file error of not existing... quit!') return global lastErrorID today = datetime.now().strftime("%Y-%m-%d") logfilename = BROKER_ID + '_' + INVESTOR_ID + '_交易日志' + str(today) + '.log' # log = Logger(logfilename=logfilename) # config = incept_config() # load_data_from_file() # init_k_line_pump() # # workdays = TradingPeriod.get_workdays(begin=config['begin'], end=config['end']) # workdays_exchange_trading_period_by_ts = \ # TradingPeriod.get_workdays_exchange_trading_period( # _workdays=workdays, exchange_trading_period=EXCHANGE_TRADING_PERIOD) # # if workdays_exchange_trading_period_by_ts.has_key(today): # trading_period_by_ts = workdays_exchange_trading_period_by_ts[today] # else: # print('Not trading day, return to system.') # return # T['TE_RESUME'] = 'int' # 流重传方式 # TERT_RESTART = 0 # 从本交易日开始重传 # TERT_RESUME = 1 # 从上次收到的续传 # TERT_QUICK = 2 # 只传送登录后的流内容 # 登录行情服务器 # md = MyMdApi(instruments=inst, broker_id=BROKER_ID, investor_id=INVESTOR_ID, password=PASSWORD) # md.Create(INVESTOR_ID + "data") # md.RegisterFront(ADDR_MD) # md.Init() print(('-' * 50)) td = MyTradeApi(broker_id=BROKER_ID, investor_id=INVESTOR_ID, passwd=PASSWORD) td.Create(LOGS_DIR + INVESTOR_ID + "_trader") td.RegisterFront(ADDR_TD) td.SubscribePublicTopic(0) td.SubscribePrivateTopic(0) td.Init() # dt = td.getTradingday() # 初始化日志文件 with open(logfilename, 'w') as f: print('initializing log file.') # td. Release() # td.ReqUserlogout() # tt = getPos(td,strategy_inst) # print tt while True: # td.fetch_investor_position_detail('SM905') if not q_server_info.empty(): info = q_server_info.get() # print info.ErrorID lastErrorID = info.ErrorID print('the last ErrorID is: ', lastErrorID, INVESTOR_ID, BROKER_ID) if lastErrorID != 0: # print 'release the api...' # td.Release() print('reconnect the trading server.') del td td = MyTradeApi(broker_id=BROKER_ID, investor_id=INVESTOR_ID, passwd=PASSWORD) td.Create(LOGS_DIR + INVESTOR_ID + "_trader") td.RegisterFront(ADDR_TD) td.SubscribePublicTopic(0) td.SubscribePrivateTopic(0) # td.ReqUserLogout() td.Init() sleep(60) if not q_rtn_order.empty(): rtn_order = q_rtn_order.get() print(rtn_order.OrderRef, rtn_order, '\n') print(rtn_order.InstrumentID, rtn_order.Direction, rtn_order.CombOffsetFlag, rtn_order.LimitPrice, rtn_order.VolumeTotalOriginal, rtn_order.OrderSubmitStatus, rtn_order.VolumeTraded, rtn_order.VolumeTotal, rtn_order.InsertTime, end=' ') orderList.append(rtn_order), '\n' if len(orderList) > 0: with open(logfilename, 'a') as f: for ord in orderList[:]: f.writelines(str(ord) + '\n') orderList.remove(ord) # f.writelines(json.dumps(ord, ensure_ascii=False) + '\n') if not q_rtn_trade.empty(): rtn_trade = q_rtn_trade.get() print(rtn_trade)
# from myfunction import LLV, HHV from tnlog import Logger from Constant import LOGS_DIR from myfunction import HHV, LLV, cross, MID, HLV import queue from getaccount import getAccountinfo # today = datetime.now().strftime('%Y-%m-%d') # BROKER_ID, INVESTOR_ID, PASSWORD, ADDR_MD, ADDR_TD = getAccountinfo('simnow24_ctp.json') # BROKER_ID, INVESTOR_ID, PASSWORD, ADDR_MD, ADDR_TD = getAccountinfo('zrhx_ctp.json') BROKER_ID, INVESTOR_ID, PASSWORD, ADDR_MD, ADDR_TD = getAccountinfo( 'CTP_tgjy_thm.json') # BROKER_ID, INVESTOR_ID, PASSWORD, ADDR_MD, ADDR_TD = getAccountinfo(r'./conf/dfqhthm_ctp.json') lastErrorID = 10 strategy_inst = '' orderList = list() class traderRecorder(MyTradeApi): def traderRecord(self): pass def getPos(tradespi, inst=strategy_inst): if tradespi is None or inst is None: return 0
# from myfunction import LLV, HHV from tnlog import Logger from Constant import LOGS_DIR from myfunction import HHV, LLV, cross, MID, HLV from emailNotify import mailsender import queue from getaccount import getAccountinfo # BROKER_ID, INVESTOR_ID, PASSWORD, ADDR_MD, ADDR_TD = getAccountinfo('conf\simnowstd_ctp.json') BROKER_ID, INVESTOR_ID, PASSWORD, ADDR_MD, ADDR_TD = getAccountinfo( r'conf\tgjy_ctp_chenmei.json') inst = 'rb1910' granularity = 180 bars = dict() data_path = r'./data/bar/rb/' # serverport = r'http://bar.awpy.tk:8008' # barss = load_data_from_server(server_base=serverport, instruments_id=inst, granularity=granularity) bars = load_data_from_file_v2(instruments_id=inst, granularities='180', data_source_dir=data_path) barinterval = inst + '_' + str(granularity) # bars[barinterval] = bars # bardatafile = data_path + barinterval + '.json'
# cfgfile = 'meythm.ac' # import shelve # acinfo = shelve.open(cfgfile) # # BROKER_ID = acinfo['BROKER_ID'] # BROKER_ID = '7030' # INVESTOR_ID = acinfo['INVESTOR_ID'] # PASSWORD = acinfo['PASSWORD'] # ADDR_MD = acinfo['ADDR_MD'] # ADDR_TD = acinfo['ADDR_TRADE'] # acinfo.close() from getaccount import getAccountinfo BROKER_ID, INVESTOR_ID, PASSWORD, ADDR_MD, ADDR_TD = getAccountinfo('ctp_zrhx.json') period = 900 inst = [u'rb1901'] # inst = [u'AP901'] strategy_inst = inst[0] strategy_period = 900 single_volume = 1 grid = 40 step = 3 def Strategy_fairy_std():