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)
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)
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)
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)
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)
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)
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, ))
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)
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)