Python bitrex几个市场

2024-06-16 10:50:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用API bittrex。我得到所选市场的买入价。这个代码在一个市场上运行得很好。在

import requests
import time


def get_current_Bid(managed_currency, money_currency, session):
    url = 'https://bittrex.com/api/v1.1/public/getticker'
    req = requests.Request('GET', url, data={'market': money_currency + '-' + managed_currency})
    prepped = session.prepare_request(req)
    resp = session.send(prepped)
    try:
        return float(resp.json()['result']['Bid'])
    except TypeError:
        print('Error, try get_current_Bid in 1 sec.')
        return get_current_Bid(managed_currency, money_currency, session)


session = requests.Session()

while True:
    bid1 = get_current_Bid('OMG', 'BTC', session)
    print(bid1,'OMG-BTC')

我得到输出:

0.00130001 OMG-BTC
0.00130001 OMG-BTC
0.00130001 OMG-BTC
0.00130001 OMG-BTC
0.00130001 OMG-BTC
0.00130001 OMG-BTC
0.00130001 OMG-BTC

好吧。这是目前对OMG-BTC的真正出价。 但如果我想在两个或更多的市场工作,我会有非常奇怪的结果。稍微修改了代码,以适用于两个市场。在

^{pr2}$

我有一个输出:

0.00127796 OMG-BTC
0.00127796 BTC-USDT
0.00127796 OMG-BTC
低于580000000美元 5800.00000001 OMG-BTC
5800.00000001 BTC-USDT
5800.00000001 OMG-BTC
5800.00000001 BTC-USDT

如您所见0.00127796适用于OMG-BTC不适用于BTC-USDT

5800.00000001适用于BTC-USDT不适用于OMG-BTC

但在产出上,这就像是它们相交。有时另一种货币的价格是针对一种货币的。有人能告诉我我做错了什么吗?在


Tags: 代码importget市场sessioncurrentrequestsmanaged
1条回答
网友
1楼 · 发布于 2024-06-16 10:50:44

问题可能与对API的请求频率有关。如果我在请求之间放置5秒的时间延迟,则每次的值都会不同(如预期):

while True:
    bid1 = get_current_Bid('OMG', 'BTC', session)
    print(bid1,'OMG-BTC')
    time.sleep(5)
    bid2 = get_current_Bid('BTC', 'USDT', session)
    print(bid2, 'BTC-USDT')
    time.sleep(5)

给我输出:

(0.00117711,“OMG-BTC”)
(6087.0,'BTC-USDT')
(0.00117613,“OMG-BTC”)
(6087.0,'BTC-USDT')
(0.00117613,“OMG-BTC”)
(6087.0,'BTC-USDT')

我不确定您是否做错了什么,但是API无法跟上请求(这似乎是一个bug,因为成功条目仍然返回True)。您可能需要在bitrex的支持下将其归档,因为我在API文档中找不到任何关于支持请求频率的信息。在

相关问题 更多 >