Example #1
0
class Server:
    MAX_RETRY = 5

    def start(self, port=50666):
        self.context = zmq.Context()
        self.socket = self.context.socket(zmq.REP)
        self.socket.bind("tcp://*:" + str(port))
        self.session = Session()
        self.done = False
        while not self.done:
            try:
                self.loop()
            except Exception as e:
                log.critical("There exist unhandled exception!", e.args)
        self.clean()

    def loop(self):
        topic = self.socket.recv()
        if topic == b"ping":
            self.socket.send(b"Hello, World!")
        if topic == b"login":
            args = unpack(self.socket.recv())
            res = self.login(**args)
            self.socket.send(pack(res))
        if topic == b"logout":
            self.logout()
            self.socket.send(b"ok")
        if topic == b"shutdown":
            self.done = True
        if topic == b"query":
            tr, args = unpack(self.socket.recv())
            try:
                res = Query(tr).send(**args)
                self.socket.send(b"ok", zmq.SNDMORE)
                self.socket.send(pack(res))
            except Exception as e:
                log.critical(e.args)
                self.socket.send(b"error", zmq.SNDMORE)
                self.socket.send(pack(e.args))
        else:
            pass

    def clean(self):
        self.logout()
        self.socket.close()
        self.context.destroy()

    def login(self, **kwargs):
        self.session = Session()
        self.session.login(**kwargs)
        return True

    def logout(self):
        self.session.logout()
        self.session = None
Example #2
0
class Server:
    MAX_RETRY = 5

    def start(self, port=50666):
        self.context = zmq.Context()
        self.socket = self.context.socket(zmq.REP)
        self.socket.bind("tcp://*:" + str(port))
        self.session = Session()
        self.done = False
        while not self.done:
            try:
                self.loop()
            except Exception as e:
                log.critical("There exist unhandled exception!", e.args)
        self.clean()

    def loop(self):
        topic = self.socket.recv()
        if topic == b"ping":
            self.socket.send(b"Hello, World!")
        if topic == b"login":
            args = unpack(self.socket.recv())
            res = self.login(**args)
            self.socket.send(pack(res))
        if topic == b"logout":
            self.logout()
            self.socket.send(b"ok")
        if topic == b"shutdown":
            self.done = True
        if topic == b"query":
            tr, args = unpack(self.socket.recv())
            try:
                res = Query(tr).send(**args)
                self.socket.send(b"ok", zmq.SNDMORE)
                self.socket.send(pack(res))
            except Exception as e:
                log.critical(e.args)
                self.socket.send(b"error", zmq.SNDMORE)
                self.socket.send(pack(e.args))
        else:
            pass

    def clean(self):
        self.logout()
        self.socket.close()
        self.context.destroy()

    def login(self, **kwargs):
        self.session = Session()
        self.session.login(**kwargs)
        return True

    def logout(self):
        self.session.logout()
        self.session = None
Example #3
0
 def start(self, port=50666):
     self.context = zmq.Context()
     self.socket = self.context.socket(zmq.REP)
     self.socket.bind("tcp://*:" + str(port))
     self.session = Session()
     self.done = False
     while not self.done:
         try:
             self.loop()
         except Exception as e:
             log.critical("There exist unhandled exception!", e.args)
     self.clean()
Example #4
0
 def start(self, port=50666):
     self.context = zmq.Context()
     self.socket = self.context.socket(zmq.REP)
     self.socket.bind("tcp://*:" + str(port))
     self.session = Session()
     self.done = False
     while not self.done:
         try:
             self.loop()
         except Exception as e:
             log.critical("There exist unhandled exception!", e.args)
     self.clean()
Example #5
0
from xing.xasession import Session

session = Session()
session.login('credential.conf')

print(session.account())
print(session.heartbeat())

session.logout()
# -*- coding: utf-8 -*-
from pandas import DataFrame
from xing.xasession import Session
import time
import pythoncom
from xing.logger import LoggerSetting
from xing.logger import Logger
from xing.xachartdata import Chartdata

LoggerSetting.FILE = "test_xachartdata.log"
log = Logger(__name__)

if __name__ == "__main__":
    try:
        session = Session()
        running = session.login("../config.conf")
        chart = Chartdata("012510")
        chart.load({
            Chartdata.DAY : [ "20150101" ],
            Chartdata.WEEK : [ "20070101" ],
            Chartdata.MONTH : ("20100101", "20161231")
        }).process({
            "SMA" : [ 5, 10, 20, 60],   # 이동평균선
            "BBANDS" : [20, 2], #볼랜져 밴드 period, 승수
            "ATR" : 14, #ATR 지표 period
            "STOCH" : [ 5, 3, 0],   #스토케스틱 K period, D period, D type
            "MACD" : [12, 26, 9],  # short, long, signal
            "RSI" : 14,  # period
        })

        # 테스트를 위한 루프
Example #7
0
# -*- coding: utf-8 -*-
from pandas import DataFrame
from xing.xasession import Session
import time
import pythoncom
from xing.logger import LoggerSetting
from xing.logger import Logger
from modules.information import Information
LoggerSetting.FILE = "xing-plus-app.log"
log = Logger(__name__)

if __name__ == "__main__":
    try:
        info = Information.load("config.conf");
        session = Session()
        session.login(info["server"], info["user"])
        running = True

        # 루프가 필요함.
        while running:
            session.heartbeat()
            # @todo
            pythoncom.PumpWaitingMessages()
            time.sleep(3)
    finally:
        session.logout()
        exit()
Example #8
0
 def login(self, **kwargs):
     self.session = Session()
     self.session.login(**kwargs)
     return True
Example #9
0
from xing.xasession import Session
from xing.query import Query
from getpass import getpass

userid = input("Id: ")
passwd = getpass()
session = Session()
session.login(id=userid, passwd=passwd)

print(session.account())
print(Query("서버시간조회").send())
print(Query("t0167").send())
print(session.heartbeat())
Example #10
0
from xing.xasession import Session
from xingutils.query import Query
from pprint import pprint
import time


if __name__ == "__main__":
    session = Session()
    session.login('credential.conf')
    session.heartbeat()

    data = Query("주식현재가호가조회").send(shcode="122630")
    pprint(data)

    session.logout()
Example #11
0
# -*- coding: utf-8 -*-
from pandas import DataFrame
from xing.xasession import Session
import time
import pythoncom
from xing.logger import LoggerSetting
from xing.logger import Logger
from xing.xareal import RealManager
from xing import xacom
LoggerSetting.FILE = "test_xareal.log"
log = Logger(__name__)

if __name__ == "__main__":
    try:
        session = Session()
        session.login("../config.conf")
        running = True

        # manager 등록
        manager = RealManager()
        # 장구분
        manager.addTask("JIF", ("jangubun", "jstatus"), 50).addTarget("1", "jangubun")

        # 주문 체결
        manager.addTask("SC1", ("Isuno", "Isunm", "ordno", "orgordno",
                             "eventid", "ordxctptncode", "ordmktcode",
                             "ordptncode", "mgmtbrnno",  "accno1",
                             "execno", "ordqty", "ordprc", "execqty",
                             "execprc", "ordtrxptncode", "secbalqty",
                             "avrpchsprc", "pchsant"), 50
                        ).addTarget()
Example #12
0
 def login(self, **kwargs):
     self.session = Session()
     self.session.login(**kwargs)
     return True