Ccxt: 閉じられていないクライアントセッションとビットフィネックスのddosエラー

作成日 2017年11月28日  ·  3コメント  ·  ソース: ccxt/ccxt

やあ、

まず、あなたが行ったこの素晴らしい仕事に感謝します。 第二に、私の問題は以下のコードについてです。 私は常に「閉じられていないクライアントセッションclient_session:"とDdosエラー。私もtime.sleep(8)をpuしようとしましたが、それを取り除きましたが、機能しませんでした。効率的に機能させる方法はありますか?これについてのご協力に感謝します。

timeout = time.time() + 60*60*8

async def bitfinex():
    bitfinex = ccxt.bitfinex()
    return await bitfinex.fetch_ticker()

while True:
    if time.time() > timeout:
        break
    try:

        bitfinexratiolast = float(asyncio.get_event_loop().run_until_complete(ccxt.bitfinex().fetch_ticker('ETH/BTC'))['last'])

       bitfinexbtctrylast = float(asyncio.get_event_loop().run_until_complete(ccxt.bitfinex().fetch_ticker('BTC/USD'))['last'])

    except ccxt.DDoSProtection:
        print('ddos')
        continue

print(bitfinexratiolast)
print(bitfinexbtctrylast)

question

最も参考になるコメント

すべての行でccxt.bitfinex()を実行する必要はありません。 もっと基本的なPythonを学ぶことをお勧めします。 クラスとオブジェクトインスタンスの操作に焦点を合わせます。

このコードは機能するはずです:

import asyncio
import ccxt.async as ccxt

async def run():
    bitfinex = ccxt.bitfinex({'enableRateLimit': True})
    while True:
        try:
            bitfinexratio = await bitfinex.fetch_ticker('ETH/BTC')
            bitfinexbtctry = await bitfinex.fetch_ticker('BTC/USD')
            print('----------------------------------------')
            datetimestring = bitfinex.iso8601(bitfinex.milliseconds())
            print(datetimestring, bitfinexratio['last'], bitfinexbtctry['last'])
        except Exception as e:
            print(type(e).__name__ + ' ' + str(e))

asyncio.get_event_loop().run_until_complete(run())

もっと:

全てのコメント3件

すべての行でccxt.bitfinex()を実行する必要はありません。 もっと基本的なPythonを学ぶことをお勧めします。 クラスとオブジェクトインスタンスの操作に焦点を合わせます。

このコードは機能するはずです:

import asyncio
import ccxt.async as ccxt

async def run():
    bitfinex = ccxt.bitfinex({'enableRateLimit': True})
    while True:
        try:
            bitfinexratio = await bitfinex.fetch_ticker('ETH/BTC')
            bitfinexbtctry = await bitfinex.fetch_ticker('BTC/USD')
            print('----------------------------------------')
            datetimestring = bitfinex.iso8601(bitfinex.milliseconds())
            print(datetimestring, bitfinexratio['last'], bitfinexbtctry['last'])
        except Exception as e:
            print(type(e).__name__ + ' ' + str(e))

asyncio.get_event_loop().run_until_complete(run())

もっと:

どうもありがとう! 今は機能しています。基本的なPythonコースも見ていきます(y)

ただし、これははるかに優れています

import asyncio
import ccxt.async as ccxt

async def run():
    bitfinex = ccxt.bitfinex({'enableRateLimit': True})
    while True:
        try:
            tickers = await bitfinex.fetch_tickers()
            bitfinexratio = tickers['ETH/BTC']
            bitfinexbtctry = tickers['BTC/USD']
            print('----------------------------------------')
            datetimestring = bitfinex.iso8601(bitfinex.milliseconds())
            print(datetimestring, bitfinexratio['last'], bitfinexbtctry['last'])
        except Exception as e:
            print(type(e).__name__ + ' ' + str(e))

asyncio.get_event_loop().run_until_complete(run())

複数のティッカーが必要な場合は、上記のようにすべてのティッカーを一度に取得することをお勧めします。

このページは役に立ちましたか?
0 / 5 - 0 評価