Esempio n. 1
0
 def __init__(self, host=client_info.get_server_ip(),
              port=logging.handlers.DEFAULT_TCP_LOGGING_PORT,
              handler=LogRecordStreamHandler):
     socketserver.ThreadingTCPServer.__init__(self, (host, port), handler)
     self.abort = 0
     self.timeout = 1
     self.logname = None
Esempio n. 2
0
def send_test_bidask_subscribe_response(code):
    from pymongo import MongoClient
    rcode = 'A' + code[1:]
    db = MongoClient('mongodb://' + client_info.get_mongo_id() + ':' +
                     client_info.get_mongo_password() + '@' +
                     client_info.get_server_ip() + ':27017')['trade_alarm']

    class TestObj:
        def __init__(self, data):
            self.data = data

        def GetHeaderValue(self, i):
            return self.data[str(i)]

    target_date = datetime(2020, 8, 14, 9, 5, 0)
    until_date = target_date + timedelta(seconds=3)
    data = list(db[rcode + '_BA'].find(
        {'date': {
            '$gte': target_date,
            '$lte': until_date
        }}))
    print('send_test_bidask_subscribe_response', rcode, len(data))
    testObj = TestObj(data[0])
    cpEvent = bidask_subscribe._CpEvent()
    cpEvent.set_params(testObj, code, callback_bidask_subscribe)
    cpEvent.OnReceived()
Esempio n. 3
0
def send_test_subscribe_response(code):
    from pymongo import MongoClient
    rcode = 'A' + code[1:]
    db = MongoClient('mongodb://' + client_info.get_mongo_id() + ':' +
                     client_info.get_mongo_password() + '@' +
                     client_info.get_server_ip() + ':27017')['trade_alarm']
    target_date = datetime(2020, 8, 14, 9, 0, 0)
    until_date = target_date + timedelta(seconds=60)
    data = list(db[rcode].find(
        {'date': {
            '$gte': target_date,
            '$lte': until_date
        }}))
    print('send_test_subscribe_response', code, len(data))
    for d in data:
        d.pop('_id')
        print(d['date'])
        callback_stock_subscribe(code, [d])
Esempio n. 4
0
def _setup_log(use_console_out=True):
    # here will be first place to set client name by import rlogger
    if len(sys.argv) > 1 and sys.argv[1] == 'collector':
        client_info.add_client_name_suffix('collector')
        logg = logging.getLogger(client_info.get_client_name())
    else:
        logg = logging.getLogger(client_info.get_client_name())
    logg.setLevel(logging.DEBUG)

    formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
    stream_handler = logging.StreamHandler()
    stream_handler.setFormatter(formatter)
    logg.addHandler(stream_handler)

    formatter = logging.Formatter(
        '%(asctime)s - %(name)s - %(levelname)s - %(message)s')

    socket_handler = logging.handlers.SocketHandler(
        client_info.get_server_ip(), logging.handlers.DEFAULT_TCP_LOGGING_PORT)
    socket_handler.setFormatter(formatter)
    logg.addHandler(socket_handler)
    return logg
Esempio n. 5
0
File: db.py Progetto: wingsof/trader
import os
import sys
sys.path.insert(0,
                os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))

from configs import client_info

HOME_MONGO_ADDRESS = ('mongodb://' + client_info.get_mongo_id() + ':' +
                      client_info.get_mongo_password() + '@' +
                      client_info.get_server_ip() + ':27017')


def tr_code(code):
    special_code = {
        '.DJI': 'DJI',
        'JP#NI225': 'JPNI225',
        '399102': 'U399102',
        'CZ#399106': 'CZ399106',
        '95079': 'U95079',
        'HK#HS': 'HKHS',
        'GR#DAX': 'GR#DAX'
    }
    if code in special_code:
        return special_code[code]

    return code


if __name__ == '__main__':
    print(HOME_MONGO_ADDRESS)
Esempio n. 6
0
    from configs import client_info
    from datetime import datetime, timedelta

    class TestObj:
        def __init__(self, data):
            self.data = data

        def GetHeaderValue(self, i):
            return self.data[str(i)]

        def test_callback(self, code, d):
            print(code, d)

    code = 'A005930'
    db = MongoClient('mongodb://' + client_info.get_mongo_id() + ':' +
                     client_info.get_mongo_password() + '@' +
                     client_info.get_server_ip() + ':27017')['trade_alarm']
    target_date = datetime(2020, 8, 14, 9, 5, 0)
    until_date = target_date + timedelta(seconds=3)
    data = list(db[code + '_BA'].find(
        {'date': {
            '$gte': target_date,
            '$lte': until_date
        }}))
    print('DATA LEN', len(data))
    testObj = TestObj(data[0])
    cpEvent = _CpEvent()
    cpEvent.set_params(testObj, code, testObj.test_callback)
    cpEvent.OnReceived()
    print(data[0])
Esempio n. 7
0
def event_connect(err_code):
    if err_code == 0:
        rlogger.info('Connected to KIWOOM Server')
        ax_obj.OnReceiveTrData.connect(receive_trdata)
        header = stream_readwriter.create_header(message.COLLECTOR, message.MARKET_STOCK, message.COLLECTOR_DATA, message.KIWOOM)
        body = {'capability': message.CAPABILITY_REQUEST_RESPONSE}
        stream_readwriter.write(sock, header, body)


if __name__ == '__main__':
    app = QApplication([])
    request_dict = dict()

    ax_obj = QAxWidget("KHOPENAPI.KHOpenAPICtrl.1")
    ax_obj.OnEventConnect.connect(event_connect)
    while True:
        try:
            sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            server_address = (client_info.get_server_ip(), message.CLIENT_SOCKET_PORT)
            sock.connect(server_address)
            rlogger.info('Connected to apiserver')
            break
        except socket.error:
            rlogger.info('Retrying connect to apiserver')
            gevent.sleep(1)


    ret = ax_obj.dynamicCall('CommConnect()')
    
    gevent.joinall([gevent.spawn(dispatch_message, sock), gevent.spawn(mainloop, app)])