Exemple #1
0
    def __init__(self,
                 logger,
                 symbol='FX_BTC_JPY',
                 testnet=False,
                 auth=None,
                 position=None,
                 timeout=None):
        self._api_url = "https://api.bitflyer.com"
        self._symbol = symbol

        self._session = self._new_session()

        # API Limit
        self.UserLimitPeriod = 300
        self.api_remain1 = 500
        self.HttpAccessTime1 = time.time()

        self.OrderLimitPeriod = 300
        self.api_remain2 = 300
        self.HttpAccessTime2 = time.time()

        self.PerIpLimitPeriod = 300
        self.api_remain3 = 500
        self.HttpAccessTime3 = time.time()

        RestAPIExchange.__init__(self, logger, symbol, auth, position, timeout)

        # APIアクセスしないときにも一定期間たったらAPI制限を解除するためのスレッド
        Scheduler(self._logger, interval=1, callback=self._limit_check)

        # 定期的にpublucAPIへアクセスしてIPごとのアクセス制限をチェック
        self.server_health = 'NONE'
        Scheduler(self._logger,
                  interval=60,
                  callback=self._check_server_status)
Exemple #2
0
 def Scheduler(self, interval=1, basetime=None, callback=None, args=()):
     from libs.utils.scheduler import Scheduler
     return Scheduler(self._logger,
                      interval=interval,
                      basetime=basetime,
                      callback=callback,
                      args=args)
Exemple #3
0
    def __init__(self, logger, exchange):
        self._logger = logger
        self._ws, self._api = (exchange)

        self._ws.add_stats = self.add_stats
        self._ws.daily_reset = self.daily_reset

        self.file = JsonFile(self._logger)
        self._filename = ''
        self._stats_list = []

        Scheduler(self._logger,
                  interval=60,
                  basetime=0,
                  callback=self._add_stats)
        Scheduler(self._logger,
                  interval=86400,
                  basetime=1,
                  callback=self._daily_reset)
Exemple #4
0
    def __init__(self, logger, position_control_type, order_unit='BTC'):
        self._logger = logger
        self.order = OrderList(logger)
        self.position = position_control_type(logger, self.update_profitfile)
        self.daily_exec_size = 0
        self._ltp = 0

        self.lock = Lock()

        self._display_unit = order_unit

        self.file = JsonFile(self._logger)
        self._filename = ''
        self.update = Event()

        # 5秒ごとに損益を保存
        Scheduler(self._logger, interval=5, callback=self.update_profitfile)

        # 1時間ごとにカウンターを表示
        Scheduler(self._logger,
                  interval=3600,
                  basetime=0,
                  callback=self._disp_stats)
Exemple #5
0
 def __init__(self, logger, auth, disconnect_event):
     self._logger = logger
     self._auth = auth
     self._disconnect_event = disconnect_event
     self.my = MyPosition(logger, OpenPositionGross)
     self._endpoint_rest = 'https://api.coin.z.com/private/v1'
     while True:
         self._token = self._get_access_token()
         if self._token :
             break
         time.sleep(1)
     Scheduler(self._logger, interval=3000, callback=self._extend_access_token)
     self._endpoint = "wss://api.coin.z.com/ws/private/v1/" + self._token
     self._channel_str = "channel"
     WebsocketExchange.__init__(self,logger)
Exemple #6
0
    def __init__(self, logger):
        self._logger = logger
        self.order_dict = {}
        self._my_id = deque(maxlen=1000)
        self._executed_list = deque(maxlen=300)
        self._canceled_list = deque(maxlen=300)
        self.reset_counter()
        self._handler_list = []
        self.call_handlers = Event()
        self.thread = Thread(target=self._wait_call_handlers)
        self.thread.daemon = True
        self.thread.start()

        # 10秒ごとにゴミを掃除
        Scheduler(self._logger,
                  interval=10,
                  callback=self._delete_invalidate_order)
Exemple #7
0
    def __init__(self, logger, interval=30, keepupdate=False):

        self.__table = {
            'name': 'USDJPY',
            'price': 0,
            'update_time': time.time() - 100,
            'update_handler': self.__read
        }

        self._logger = logger
        super().__init__(logger, interval)

        self.__keepupdate = keepupdate
        if keepupdate:
            Scheduler(self._logger,
                      interval=1,
                      callback=self._update,
                      args=(self.__table, ))
Exemple #8
0
    def __init__(self,
                 logger,
                 symbol,
                 testnet=False,
                 auth=None,
                 position=None,
                 timeout=None):
        if testnet:
            self._api_url = "https://testnet-api.phemex.com"
        else:
            self._api_url = "https://api.phemex.com"
        self._symbol = symbol

        self._session = self._new_session()
        self._session.headers.update({'Content-Type': 'application/json'})

        # API Limit
        self.api_remain1 = 500

        RestAPIExchange.__init__(self, logger, symbol, auth, position, timeout)

        # APIアクセスしないときにも一定期間たったらAPI制限を解除するためのスレッド
        Scheduler(self._logger, interval=1, callback=self._limit_check)
Exemple #9
0
 def __init__(self, logger, api):
     self._logger = logger
     self._api = api
     self.notrade = None
     Scheduler(self._logger, interval=1, callback=self.check_no_trade_period)