Example #1
0
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
Example #2
0
# -*- 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)
Example #4
0
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'



Example #5
0
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/'
Example #6
0
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)
Example #7
0
# 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
Example #8
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'
Example #9
0

# 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():