コード例 #1
0
ファイル: constants.py プロジェクト: sniperswang/hummingbot
ONE_MINUTE = 60
ONE_SECOND = 1
ONE_DAY = 86400

MAX_REQUEST = 2400

RATE_LIMITS = [
    # Pool Limits
    RateLimit(limit_id=REQUEST_WEIGHT, limit=2400, time_interval=ONE_MINUTE),
    RateLimit(limit_id=ORDERS_1MIN, limit=1200, time_interval=ONE_MINUTE),
    RateLimit(limit_id=ORDERS_1SEC, limit=300, time_interval=10),
    # Weight Limits for individual endpoints
    RateLimit(limit_id=SNAPSHOT_REST_URL,
              limit=MAX_REQUEST,
              time_interval=ONE_MINUTE,
              linked_limits=[LinkedLimitWeightPair(REQUEST_WEIGHT,
                                                   weight=20)]),
    RateLimit(limit_id=TICKER_PRICE_URL,
              limit=MAX_REQUEST,
              time_interval=ONE_MINUTE,
              linked_limits=[LinkedLimitWeightPair(REQUEST_WEIGHT, weight=2)]),
    RateLimit(limit_id=TICKER_PRICE_CHANGE_URL,
              limit=MAX_REQUEST,
              time_interval=ONE_MINUTE,
              linked_limits=[LinkedLimitWeightPair(REQUEST_WEIGHT, weight=1)]),
    RateLimit(limit_id=EXCHANGE_INFO_URL,
              limit=MAX_REQUEST,
              time_interval=ONE_MINUTE,
              linked_limits=[LinkedLimitWeightPair(REQUEST_WEIGHT,
                                                   weight=40)]),
    RateLimit(limit_id=RECENT_TRADES_URL,
              limit=MAX_REQUEST,
コード例 #2
0
}

# Websocket event types
DIFF_EVENT_TYPE = "depthUpdate"
TRADE_EVENT_TYPE = "trade"

RATE_LIMITS = [
    # Pools
    RateLimit(limit_id=REQUEST_WEIGHT, limit=1200, time_interval=ONE_MINUTE),
    RateLimit(limit_id=ORDERS, limit=10, time_interval=ONE_SECOND),
    RateLimit(limit_id=ORDERS_24HR, limit=100000, time_interval=ONE_DAY),
    # Weighted Limits
    RateLimit(limit_id=TICKER_PRICE_CHANGE_PATH_URL,
              limit=MAX_REQUEST,
              time_interval=ONE_MINUTE,
              linked_limits=[LinkedLimitWeightPair(REQUEST_WEIGHT, 40)]),
    RateLimit(limit_id=EXCHANGE_INFO_PATH_URL,
              limit=MAX_REQUEST,
              time_interval=ONE_MINUTE,
              linked_limits=[(LinkedLimitWeightPair(REQUEST_WEIGHT, 10))]),
    RateLimit(limit_id=SNAPSHOT_PATH_URL,
              limit=MAX_REQUEST,
              time_interval=ONE_MINUTE,
              linked_limits=[LinkedLimitWeightPair(REQUEST_WEIGHT, 50)]),
    RateLimit(limit_id=BINANCE_USER_STREAM_PATH_URL,
              limit=MAX_REQUEST,
              time_interval=ONE_MINUTE,
              linked_limits=[LinkedLimitWeightPair(REQUEST_WEIGHT, 1)]),
    RateLimit(limit_id=SERVER_TIME_PATH_URL,
              limit=MAX_REQUEST,
              time_interval=ONE_MINUTE,
コード例 #3
0
LISTEN_KEY_KEEP_ALIVE_INTERVAL = float(TWELVE_HOURS)
UPDATE_ORDER_STATUS_MIN_INTERVAL = 10.0 * SECOND
WS_HEARTBEAT_TIME_INTERVAL = 30 * SECOND

GENERAL_TPS = 700
MAX_ALLOWED_TPS = 3500

SUBSCRIPTION_ID_BOOKS = 0
SUBSCRIPTION_ID_TRADES = 1
SUBSCRIPTION_ID_ACCOUNT = 2
SUBSCRIPTION_ID_ORDERS = 3
SUBSCRIPTION_ID_TRADE_UPDATE = 4

PUBLIC_LIMIT_ID = "PublicPoints"
PRIVATE_LIMIT_ID = "PrivatePoints"  # includes place-orders
PUBLIC_LINKED_LIMITS = [LinkedLimitWeightPair(PUBLIC_LIMIT_ID)]
PRIVATE_LINKED_LIMITS = [LinkedLimitWeightPair(PRIVATE_LIMIT_ID)]

RATE_LIMITS = [
    RateLimit(limit_id=PUBLIC_LIMIT_ID,
              limit=GENERAL_TPS,
              time_interval=SECOND),
    RateLimit(limit_id=PRIVATE_LIMIT_ID,
              limit=GENERAL_TPS,
              time_interval=SECOND),
    # Public API
    RateLimit(limit_id=TICKER_PATH_URL,
              limit=GENERAL_TPS,
              time_interval=SECOND,
              linked_limits=PUBLIC_LINKED_LIMITS),
    RateLimit(limit_id=CURRENCY_PATH_URL,
コード例 #4
0
class Constants:
    EXCHANGE_NAME = "altmarkets"
    REST_URL = "https://v2.altmarkets.io/api/v2/peatio"
    WS_PRIVATE_URL = "wss://v2.altmarkets.io/api/v2/ranger/private"
    WS_PUBLIC_URL = "wss://v2.altmarkets.io/api/v2/ranger/public"

    HBOT_BROKER_ID = "HBOT"

    USER_AGENT = "HBOT_AMv2"

    ENDPOINT = {
        # Public Endpoints
        "NETWORK_CHECK": "public/timestamp",
        "TICKER": "public/markets/tickers",
        "TICKER_SINGLE": "public/markets/{trading_pair}/tickers",
        "SYMBOL": "public/markets",
        "ORDER_BOOK": "public/markets/{trading_pair}/depth",
        "ORDER_CREATE": "market/orders",
        "ORDER_DELETE": "market/orders/{id}/cancel",
        "ORDER_STATUS": "market/orders/{id}",
        "USER_ORDERS": "market/orders",
        "USER_BALANCES": "account/balances",
    }

    WS_SUB = {
        "TRADES": "{trading_pair}.trades",
        "ORDERS": "{trading_pair}.ob-inc",
        "USER_ORDERS_TRADES": ['balance', 'order', 'trade'],
    }

    WS_EVENT_SUBSCRIBE = "subscribe"
    WS_EVENT_UNSUBSCRIBE = "unsubscribe"

    WS_METHODS = {
        "ORDERS_SNAPSHOT": ".ob-snap",
        "ORDERS_UPDATE": ".ob-inc",
        "TRADES_UPDATE": ".trades",
        "USER_BALANCES": "balance",
        "USER_ORDERS": "order",
        "USER_TRADES": "trade",
    }

    ORDER_STATES = {
        "DONE": {"done", "cancel", "partial-canceled", "reject", "fail"},
        "FAIL": {"reject", "fail"},
        "OPEN": {"submitted", "wait", "pending"},
        "CANCEL": {"partial-canceled", "cancel"},
        "CANCEL_WAIT": {'wait', 'cancel', 'done', 'reject'},
    }

    # Timeouts
    MESSAGE_TIMEOUT = 30.0
    PING_TIMEOUT = 10.0
    API_CALL_TIMEOUT = 10.0
    API_MAX_RETRIES = 4

    # Intervals
    # Only used when nothing is received from WS
    SHORT_POLL_INTERVAL = 10.0
    # Two minutes should be fine since we get balances via WS
    LONG_POLL_INTERVAL = 120.0
    # Two minutes should be fine for order status since we get these via WS
    UPDATE_ORDER_STATUS_INTERVAL = 120.0
    # We don't get many messages here if we're not updating orders so set this pretty high
    USER_TRACKER_MAX_AGE = 300.0
    # 10 minute interval to update trading rules, these would likely never change whilst running.
    INTERVAL_TRADING_RULES = 600

    # Trading pair splitter regex
    TRADING_PAIR_SPLITTER = r"^(\w+)(btc|ltc|altm|doge|eth|bnb|usdt|usdc|usds|tusd|cro|roger)$"

    RL_TIME_INTERVAL = 12
    RL_ID_HTTP_ENDPOINTS = "AllHTTP"
    RL_ID_WS_ENDPOINTS = "AllWs"
    RL_ID_WS_AUTH = "AllWsAuth"
    RL_ID_TICKER = "Ticker"
    RL_ID_ORDER_BOOK = "OrderBook"
    RL_ID_ORDER_CREATE = "OrderCreate"
    RL_ID_ORDER_DELETE = "OrderDelete"
    RL_ID_ORDER_STATUS = "OrderStatus"
    RL_ID_USER_ORDERS = "OrdersUser"
    RL_HTTP_LIMIT = 30
    RL_WS_LIMIT = 50
    RATE_LIMITS = [
        RateLimit(limit_id=RL_ID_HTTP_ENDPOINTS,
                  limit=RL_HTTP_LIMIT,
                  time_interval=RL_TIME_INTERVAL),
        # http
        RateLimit(
            limit_id=ENDPOINT["NETWORK_CHECK"],
            limit=RL_HTTP_LIMIT,
            time_interval=RL_TIME_INTERVAL,
            linked_limits=[LinkedLimitWeightPair(RL_ID_HTTP_ENDPOINTS)],
        ),
        RateLimit(
            limit_id=RL_ID_TICKER,
            limit=RL_HTTP_LIMIT,
            time_interval=RL_TIME_INTERVAL,
            linked_limits=[LinkedLimitWeightPair(RL_ID_HTTP_ENDPOINTS)],
        ),
        RateLimit(
            limit_id=ENDPOINT["SYMBOL"],
            limit=RL_HTTP_LIMIT,
            time_interval=RL_TIME_INTERVAL,
            linked_limits=[LinkedLimitWeightPair(RL_ID_HTTP_ENDPOINTS)],
        ),
        RateLimit(
            limit_id=RL_ID_ORDER_BOOK,
            limit=RL_HTTP_LIMIT,
            time_interval=RL_TIME_INTERVAL,
            linked_limits=[LinkedLimitWeightPair(RL_ID_HTTP_ENDPOINTS)],
        ),
        RateLimit(
            limit_id=RL_ID_ORDER_CREATE,
            limit=RL_HTTP_LIMIT,
            time_interval=RL_TIME_INTERVAL,
            linked_limits=[LinkedLimitWeightPair(RL_ID_HTTP_ENDPOINTS)],
        ),
        RateLimit(
            limit_id=RL_ID_ORDER_DELETE,
            limit=RL_HTTP_LIMIT,
            time_interval=RL_TIME_INTERVAL,
            linked_limits=[LinkedLimitWeightPair(RL_ID_HTTP_ENDPOINTS)],
        ),
        RateLimit(
            limit_id=RL_ID_ORDER_STATUS,
            limit=RL_HTTP_LIMIT,
            time_interval=RL_TIME_INTERVAL,
            linked_limits=[LinkedLimitWeightPair(RL_ID_HTTP_ENDPOINTS)],
        ),
        RateLimit(
            limit_id=RL_ID_USER_ORDERS,
            limit=RL_HTTP_LIMIT,
            time_interval=RL_TIME_INTERVAL,
            linked_limits=[LinkedLimitWeightPair(RL_ID_HTTP_ENDPOINTS)],
        ),
        RateLimit(
            limit_id=ENDPOINT["USER_BALANCES"],
            limit=RL_HTTP_LIMIT,
            time_interval=RL_TIME_INTERVAL,
            linked_limits=[LinkedLimitWeightPair(RL_ID_HTTP_ENDPOINTS)],
        ),
        # ws
        RateLimit(limit_id=RL_ID_WS_ENDPOINTS,
                  limit=RL_WS_LIMIT,
                  time_interval=RL_TIME_INTERVAL),
        RateLimit(
            limit_id=WS_EVENT_SUBSCRIBE,
            limit=RL_WS_LIMIT,
            time_interval=RL_TIME_INTERVAL,
            linked_limits=[LinkedLimitWeightPair(RL_ID_WS_ENDPOINTS)],
        ),
        RateLimit(
            limit_id=WS_EVENT_UNSUBSCRIBE,
            limit=RL_WS_LIMIT,
            time_interval=RL_TIME_INTERVAL,
            linked_limits=[LinkedLimitWeightPair(RL_ID_WS_ENDPOINTS)],
        ),
    ]
コード例 #5
0
HTTP_ENDPOINTS_LIMIT_ID = "AllHTTP"
HTTP_LIMIT = 20
WS_AUTH_LIMIT_ID = "AllWsAuth"
WS_ENDPOINTS_LIMIT_ID = "AllWs"
WS_LIMIT = 20

RATE_LIMITS = [
    RateLimit(limit_id=HTTP_ENDPOINTS_LIMIT_ID,
              limit=HTTP_LIMIT,
              time_interval=MINUTE),
    # public http
    RateLimit(
        limit_id=MEXC_SYMBOL_URL,
        limit=HTTP_LIMIT,
        time_interval=SECOND_MINUTE,
        linked_limits=[LinkedLimitWeightPair(HTTP_ENDPOINTS_LIMIT_ID)],
    ),
    RateLimit(
        limit_id=MEXC_TICKERS_URL,
        limit=HTTP_LIMIT,
        time_interval=MINUTE,
        linked_limits=[LinkedLimitWeightPair(HTTP_ENDPOINTS_LIMIT_ID)],
    ),
    RateLimit(
        limit_id=MEXC_DEPTH_URL,
        limit=HTTP_LIMIT,
        time_interval=MINUTE,
        linked_limits=[LinkedLimitWeightPair(HTTP_ENDPOINTS_LIMIT_ID)],
    ),
    # private http
    RateLimit(
コード例 #6
0
def _build_private_rate_limits(
        tier: KrakenAPITier = KrakenAPITier.STARTER) -> List[RateLimit]:
    private_rate_limits = []

    PRIVATE_ENDPOINT_LIMIT, MATCHING_ENGINE_LIMIT = CONSTANTS.KRAKEN_TIER_LIMITS[
        tier]

    # Private REST endpoints
    private_rate_limits.extend([
        # Private API Pool
        RateLimit(
            limit_id=CONSTANTS.PRIVATE_ENDPOINT_LIMIT_ID,
            limit=PRIVATE_ENDPOINT_LIMIT,
            time_interval=CONSTANTS.PRIVATE_ENDPOINT_LIMIT_INTERVAL,
        ),
        # Private endpoints
        RateLimit(
            limit_id=CONSTANTS.GET_TOKEN_PATH_URL,
            limit=PRIVATE_ENDPOINT_LIMIT,
            time_interval=CONSTANTS.PRIVATE_ENDPOINT_LIMIT_INTERVAL,
            linked_limits=[
                LinkedLimitWeightPair(CONSTANTS.PRIVATE_ENDPOINT_LIMIT_ID)
            ],
        ),
        RateLimit(
            limit_id=CONSTANTS.BALANCE_PATH_URL,
            limit=PRIVATE_ENDPOINT_LIMIT,
            time_interval=CONSTANTS.PRIVATE_ENDPOINT_LIMIT_INTERVAL,
            weight=2,
            linked_limits=[
                LinkedLimitWeightPair(CONSTANTS.PRIVATE_ENDPOINT_LIMIT_ID)
            ],
        ),
        RateLimit(
            limit_id=CONSTANTS.OPEN_ORDERS_PATH_URL,
            limit=PRIVATE_ENDPOINT_LIMIT,
            time_interval=CONSTANTS.PRIVATE_ENDPOINT_LIMIT_INTERVAL,
            weight=2,
            linked_limits=[
                LinkedLimitWeightPair(CONSTANTS.PRIVATE_ENDPOINT_LIMIT_ID)
            ],
        ),
        RateLimit(
            limit_id=CONSTANTS.QUERY_ORDERS_PATH_URL,
            limit=PRIVATE_ENDPOINT_LIMIT,
            time_interval=CONSTANTS.PRIVATE_ENDPOINT_LIMIT_INTERVAL,
            weight=2,
            linked_limits=[
                LinkedLimitWeightPair(CONSTANTS.PRIVATE_ENDPOINT_LIMIT_ID)
            ],
        ),
    ])

    # Matching Engine Limits
    private_rate_limits.extend([
        RateLimit(
            limit_id=CONSTANTS.ADD_ORDER_PATH_URL,
            limit=MATCHING_ENGINE_LIMIT,
            time_interval=CONSTANTS.MATCHING_ENGINE_LIMIT_INTERVAL,
            linked_limits=[
                LinkedLimitWeightPair(CONSTANTS.MATCHING_ENGINE_LIMIT_ID)
            ],
        ),
        RateLimit(
            limit_id=CONSTANTS.CANCEL_ORDER_PATH_URL,
            limit=MATCHING_ENGINE_LIMIT,
            time_interval=CONSTANTS.MATCHING_ENGINE_LIMIT_INTERVAL,
            linked_limits=[
                LinkedLimitWeightPair(CONSTANTS.MATCHING_ENGINE_LIMIT_ID)
            ],
        ),
    ])

    return private_rate_limits
コード例 #7
0
MATCHING_ENGINE_LIMIT_INTERVAL = 60
WS_CONNECTION_LIMIT_ID = "WSConnectionLimitID"

PUBLIC_API_LIMITS = [
    # Public API Pool
    RateLimit(
        limit_id=PUBLIC_ENDPOINT_LIMIT_ID,
        limit=PUBLIC_ENDPOINT_LIMIT,
        time_interval=PUBLIC_ENDPOINT_LIMIT_INTERVAL,
    ),
    # Public Endpoints
    RateLimit(
        limit_id=SNAPSHOT_PATH_URL,
        limit=PUBLIC_ENDPOINT_LIMIT,
        time_interval=PUBLIC_ENDPOINT_LIMIT_INTERVAL,
        linked_limits=[LinkedLimitWeightPair(PUBLIC_ENDPOINT_LIMIT_ID)],
    ),
    RateLimit(
        limit_id=ASSET_PAIRS_PATH_URL,
        limit=PUBLIC_ENDPOINT_LIMIT,
        time_interval=PUBLIC_ENDPOINT_LIMIT_INTERVAL,
        linked_limits=[LinkedLimitWeightPair(PUBLIC_ENDPOINT_LIMIT_ID)],
    ),
    RateLimit(
        limit_id=TICKER_PATH_URL,
        limit=PUBLIC_ENDPOINT_LIMIT,
        time_interval=PUBLIC_ENDPOINT_LIMIT_INTERVAL,
        linked_limits=[LinkedLimitWeightPair(PUBLIC_ENDPOINT_LIMIT_ID)],
    ),
    RateLimit(
        limit_id=TIME_PATH_URL,
コード例 #8
0
def _build_private_pair_specific_linear_rate_limits(
        trading_pair: str) -> List[RateLimit]:
    pair_specific_linear_private_bucket_100_limit_id = get_pair_specific_limit_id(
        base_limit_id=CONSTANTS.LINEAR_PRIVATE_BUCKET_100_LIMIT_ID,
        trading_pair=trading_pair)
    pair_specific_linear_private_bucket_600_limit_id = get_pair_specific_limit_id(
        base_limit_id=CONSTANTS.LINEAR_PRIVATE_BUCKET_600_LIMIT_ID,
        trading_pair=trading_pair)
    pair_specific_linear_private_bucket_75_limit_id = get_pair_specific_limit_id(
        base_limit_id=CONSTANTS.LINEAR_PRIVATE_BUCKET_75_LIMIT_ID,
        trading_pair=trading_pair)
    pair_specific_linear_private_bucket_120_a_limit_id = get_pair_specific_limit_id(
        base_limit_id=CONSTANTS.LINEAR_PRIVATE_BUCKET_120_A_LIMIT_ID,
        trading_pair=trading_pair)

    rate_limits = [
        RateLimit(limit_id=pair_specific_linear_private_bucket_100_limit_id,
                  limit=100,
                  time_interval=60),
        RateLimit(limit_id=pair_specific_linear_private_bucket_600_limit_id,
                  limit=600,
                  time_interval=60),
        RateLimit(limit_id=pair_specific_linear_private_bucket_75_limit_id,
                  limit=75,
                  time_interval=60),
        RateLimit(limit_id=pair_specific_linear_private_bucket_120_a_limit_id,
                  limit=120,
                  time_interval=60),
        RateLimit(
            limit_id=get_pair_specific_limit_id(
                base_limit_id=CONSTANTS.SET_LEVERAGE_PATH_URL[
                    CONSTANTS.LINEAR_MARKET],
                trading_pair=trading_pair),
            limit=75,
            time_interval=60,
            linked_limits=[
                LinkedLimitWeightPair(CONSTANTS.POST_LIMIT_ID),
                LinkedLimitWeightPair(
                    pair_specific_linear_private_bucket_75_limit_id)
            ],
        ),
        RateLimit(
            limit_id=get_pair_specific_limit_id(
                base_limit_id=CONSTANTS.GET_LAST_FUNDING_RATE_PATH_URL[
                    CONSTANTS.LINEAR_MARKET],
                trading_pair=trading_pair,
            ),
            limit=120,
            time_interval=60,
            linked_limits=[
                LinkedLimitWeightPair(CONSTANTS.GET_LIMIT_ID),
                LinkedLimitWeightPair(
                    pair_specific_linear_private_bucket_120_a_limit_id)
            ],
        ),
        RateLimit(
            limit_id=get_pair_specific_limit_id(
                base_limit_id=CONSTANTS.GET_POSITIONS_PATH_URL[
                    CONSTANTS.LINEAR_MARKET],
                trading_pair=trading_pair),
            limit=120,
            time_interval=60,
            linked_limits=[
                LinkedLimitWeightPair(CONSTANTS.GET_LIMIT_ID),
                LinkedLimitWeightPair(
                    pair_specific_linear_private_bucket_120_a_limit_id)
            ],
        ),
        RateLimit(
            limit_id=get_pair_specific_limit_id(
                base_limit_id=CONSTANTS.PLACE_ACTIVE_ORDER_PATH_URL[
                    CONSTANTS.LINEAR_MARKET],
                trading_pair=trading_pair),
            limit=100,
            time_interval=60,
            linked_limits=[
                LinkedLimitWeightPair(CONSTANTS.POST_LIMIT_ID),
                LinkedLimitWeightPair(
                    pair_specific_linear_private_bucket_100_limit_id)
            ],
        ),
        RateLimit(
            limit_id=get_pair_specific_limit_id(
                base_limit_id=CONSTANTS.CANCEL_ACTIVE_ORDER_PATH_URL[
                    CONSTANTS.LINEAR_MARKET],
                trading_pair=trading_pair),
            limit=100,
            time_interval=60,
            linked_limits=[
                LinkedLimitWeightPair(CONSTANTS.POST_LIMIT_ID),
                LinkedLimitWeightPair(
                    pair_specific_linear_private_bucket_100_limit_id)
            ],
        ),
        RateLimit(
            limit_id=get_pair_specific_limit_id(
                base_limit_id=CONSTANTS.QUERY_ACTIVE_ORDER_PATH_URL[
                    CONSTANTS.LINEAR_MARKET],
                trading_pair=trading_pair),
            limit=600,
            time_interval=60,
            linked_limits=[
                LinkedLimitWeightPair(CONSTANTS.GET_LIMIT_ID),
                LinkedLimitWeightPair(
                    pair_specific_linear_private_bucket_600_limit_id)
            ],
        ),
        RateLimit(
            limit_id=get_pair_specific_limit_id(
                base_limit_id=CONSTANTS.USER_TRADE_RECORDS_PATH_URL[
                    CONSTANTS.LINEAR_MARKET],
                trading_pair=trading_pair),
            limit=120,
            time_interval=60,
            linked_limits=[
                LinkedLimitWeightPair(CONSTANTS.GET_LIMIT_ID),
                LinkedLimitWeightPair(
                    pair_specific_linear_private_bucket_120_a_limit_id)
            ],
        ),
    ]

    return rate_limits
コード例 #9
0
PUBLIC_URL_POINTS_LIMIT_ID = "PublicPoints"
PRIVATE_URL_POINTS_LIMIT_ID = "PrivatePoints"  # includes place-orders
CANCEL_ORDERS_LIMITS_ID = "CancelOrders"
ORDER_DELETE_LIMIT_ID = "OrderDelete"
ORDER_STATUS_LIMIT_ID = "OrderStatus"
RATE_LIMITS = [
    RateLimit(limit_id=PUBLIC_URL_POINTS_LIMIT_ID, limit=900, time_interval=1),
    RateLimit(limit_id=PRIVATE_URL_POINTS_LIMIT_ID, limit=900,
              time_interval=1),
    RateLimit(limit_id=CANCEL_ORDERS_LIMITS_ID, limit=5_000, time_interval=1),
    RateLimit(
        limit_id=NETWORK_CHECK_PATH_URL,
        limit=900,
        time_interval=1,
        linked_limits=[LinkedLimitWeightPair(PUBLIC_URL_POINTS_LIMIT_ID)]),
    RateLimit(
        limit_id=SYMBOL_PATH_URL,
        limit=900,
        time_interval=1,
        linked_limits=[LinkedLimitWeightPair(PUBLIC_URL_POINTS_LIMIT_ID)]),
    RateLimit(
        limit_id=ORDER_CREATE_PATH_URL,
        limit=900,
        time_interval=1,
        linked_limits=[LinkedLimitWeightPair(PRIVATE_URL_POINTS_LIMIT_ID)]),
    RateLimit(limit_id=ORDER_DELETE_LIMIT_ID,
              limit=5_000,
              time_interval=1,
              linked_limits=[LinkedLimitWeightPair(CANCEL_ORDERS_LIMITS_ID)]),
    RateLimit(
コード例 #10
0
           time_interval=SIX_SECONDS),
 RateLimit(limit_id=REQUEST_POST,
           limit=MAX_REQUEST_POST,
           time_interval=TWO_MINUTES),
 RateLimit(limit_id=REQUEST_POST_BURST,
           limit=MAX_REQUEST_POST_BURST,
           time_interval=ONE_SECOND),
 RateLimit(limit_id=REQUEST_POST_MIXED,
           limit=MAX_REQUEST_POST_MIXED,
           time_interval=SIX_SECONDS),
 # Linked limits
 RateLimit(limit_id=LAST_TRADED_PRICE_PATH,
           limit=MAX_REQUEST_GET,
           time_interval=TWO_MINUTES,
           linked_limits=[
               LinkedLimitWeightPair(REQUEST_GET, 1),
               LinkedLimitWeightPair(REQUEST_GET_BURST, 1),
               LinkedLimitWeightPair(REQUEST_GET_MIXED, 1)
           ]),
 RateLimit(limit_id=EXCHANGE_INFO_PATH_URL,
           limit=MAX_REQUEST_GET,
           time_interval=TWO_MINUTES,
           linked_limits=[
               LinkedLimitWeightPair(REQUEST_GET, 1),
               LinkedLimitWeightPair(REQUEST_GET_BURST, 1),
               LinkedLimitWeightPair(REQUEST_GET_MIXED, 1)
           ]),
 RateLimit(limit_id=SNAPSHOT_PATH_URL,
           limit=MAX_REQUEST_GET,
           time_interval=TWO_MINUTES,
           linked_limits=[