def inago(): data = json.loads(request.body.read().decode(utf8)) board_name = data['boardName'] taker_side = data['takerSide'] volume = data['volume'] last_price = data['lastPrice'] pair_currency = data['pairCurrency'] from_unix_time = data['fromUnixTime'] to_unix_time = data['toUnixTime'] bitbank = ccxt.bitbank({ 'apiKey': BITBANK_API_KEY, 'secret': BITBANK_API_SECRET }) bitbank_last_price = int( requests.get('https://public.bitbank.cc/btc_jpy/ticker').json()['data'] ['last']) if volume > 1000 and taker_side == 'buy': bitbank.create_limit_buy_order('BTC/JPY', 0.001, bitbank_last_price - 500) return {'data': 'buy!!'} return {'data': 'ok'}
def btc(self): while True: try: bitbank = ccxt.bitbank() # 取引所の指定 bitbnka_id = bitbank.id # bitbankのIDを取得 # biybankのXRP/JPYのオーダーブックの取得 bitbank_orderbook = bitbank.fetch_order_book('BTC/JPY') # bitbank_orderbookからbidsの値を取得 bitbank_bid = bitbank_orderbook['bids'][0][0] \ if (bitbank_orderbook['bids']) else None # bitbank_orderbookからasksの値を取得 bitbank_ask = bitbank_orderbook['asks'][0][0] \ if (bitbank_orderbook['asks']) else None orderbook = {'bitbank': {}, 'bid': {}, 'ask': {}} orderbook['bitbank'] = {'bitbank_id': bitbnka_id} orderbook['bid'] = {bitbnka_id: bitbank_bid} orderbook['ask'] = {bitbnka_id: bitbank_ask} return orderbook except ccxt.BaseError: print("取引所から取引データを取得できません。") print("10秒待機してやり直します") time.sleep(10)
def difference_xrp_btc(self): """取引所間でのxrp差額を求めるメソッド (bitbank,binance,coinex)""" while True: try: bitbanks = ccxt.bitbank() bitbank_btc_jpy = bitbanks.fetch_ticker('BTC/JPY') bitbank_xrp_jpy = bitbanks.fetch_ticker('XRP/JPY') bitbank_xrp_btc_bid = bitbank_xrp_jpy.get( "bid") / bitbank_btc_jpy.get("ask") bitbank_xrp_btc_ask = bitbank_xrp_jpy.get( "ask") / bitbank_btc_jpy.get("bid") # binanceからXRP/BTC通貨情報取得 binances = ccxt.binance() binance_xrp_btc = binances.fetch_ticker('XRP/BTC') # coinexからXRP/BTC通貨情報取得 coinex = ccxt.coinex() coinex_xrp_btc = coinex.fetch_ticker('XRP/BTC') # bitbankとbinance間の差額 profit_bitbank_binance = ( (binance_xrp_btc.get("bid") - bitbank_xrp_btc_ask) * self) * bitbank_btc_jpy.get("bid") profit_binance_bitbank = ( (bitbank_xrp_btc_bid - binance_xrp_btc.get("ask")) * self) * bitbank_btc_jpy.get("bid") # bitbankとcoinex間の差額 profit_bitbank_coinex = ( (coinex_xrp_btc.get("bid") - bitbank_xrp_btc_ask) * self) * bitbank_btc_jpy.get("bid") profit_coinex_bitbank = ( (bitbank_xrp_btc_bid - coinex_xrp_btc.get("ask")) * self) * bitbank_btc_jpy.get("bid") # binanceとcoinex間の差額 profit_binance_coinex = ( (coinex_xrp_btc.get("bid") - binance_xrp_btc.get("ask")) * self) * bitbank_btc_jpy.get("bid") profit_coinex_binance = ( (binance_xrp_btc.get("bid") - coinex_xrp_btc.get("ask")) * self) * bitbank_btc_jpy.get("bid") #'XRPを取引した場合の最大利益(jpy):' maxvalue = max([ profit_bitbank_binance, profit_binance_bitbank, profit_bitbank_coinex, profit_coinex_bitbank, profit_binance_coinex, profit_coinex_binance ]) #'XRPを取引した場合の最低利益(jpy):' minvalue = min([ profit_bitbank_binance, profit_binance_bitbank, profit_bitbank_coinex, profit_coinex_bitbank, profit_binance_coinex, profit_coinex_binance ]) resultsample = { 'bitbank_binance': profit_bitbank_binance, 'binance_bitbank': profit_binance_bitbank, 'bitbank_coinex': profit_bitbank_coinex, 'coinex_bitbank': profit_coinex_bitbank, 'binance_coinex': profit_binance_coinex, 'coinex_binance': profit_coinex_binance } max_k = max(resultsample, key=resultsample.get) print(max_k) min_k = min(resultsample, key=resultsample.get) print(min_k) # 最大利益が出る取引所からいくら購入したのか if max_k.startswith('bitbank'): price_buy = bitbank_xrp_btc_ask elif max_k.startswith('binance'): price_buy = binance_xrp_btc.get("ask") * self elif max_k.startswith('coinex'): price_buy = coinex_xrp_btc.get("ask") * self else: price_buy = 0 # 最大利益が出る取引所からいくら売ったのか if max_k.endswith('bitbank'): price_sale = bitbank_xrp_btc_bid elif max_k.endswith('binans'): price_sale = binance_xrp_btc.get("bid") * self elif max_k.endswith('coinex'): \ price_sale = coinex_xrp_btc.get("bid") * self else: price_sale = 0 resultarray = { 'bitbank_binance': round(profit_bitbank_binance, 3), 'binance_bitbank': round(profit_binance_bitbank, 3), 'bitbank_coinex': round(profit_bitbank_coinex, 3), 'coinex_bitbank': round(profit_coinex_bitbank, 3), 'binance_coinex': round(profit_binance_coinex, 3), 'coinex_binance': round(profit_coinex_binance, 3), 'max': max_k, 'min': min_k, 'maxvalue': round(maxvalue, 3), 'minvalue': round(minvalue, 3), 'max_buy': price_buy, 'min_sale': price_sale } return resultarray except ccxt.BaseError: print("取引所から取引データを取得できません。") print("10秒待機してやり直します") time.sleep(10)
def difference_ltc_btc(self): """取引所間でのLTC差額を求めるメソッド (bitbank,binance,coinex)""" while True: try: bitbanks = ccxt.bitbank() bitbank_btc_jpy = bitbanks.fetch_ticker('BTC/JPY') bitbank_ltc_btc = bitbanks.fetch_ticker('LTC/BTC') bitbank_ltc_btc_bid = bitbank_ltc_btc.get("bid") * self bitbank_ltc_btc_ask = bitbank_ltc_btc.get("ask") * self print(bitbank_ltc_btc_ask) print(bitbank_ltc_btc_bid) # binanceからXRP/BTC通貨情報取得 binances = ccxt.binance() binance_xrp_btc = binances.fetch_ticker('LTC/BTC') print(binance_xrp_btc.get("ask")) binance_ltc_btc_ask = (binance_xrp_btc.get("ask")) * self print(binance_xrp_btc.get("bid")) binance_ltc_btc_bid = (binance_xrp_btc.get("bid")) * self # bitbankとbinance間の差額 profit_bitbank_binance = ( binance_ltc_btc_bid - bitbank_ltc_btc_ask) * bitbank_btc_jpy.get("bid") profit_binance_bitbank = ( bitbank_ltc_btc_bid - binance_ltc_btc_ask) * bitbank_btc_jpy.get("bid") resultsample = { 'bitbank_binance': profit_bitbank_binance, 'binance_bitbank': profit_binance_bitbank, } max_k = max(resultsample, key=resultsample.get) print(max_k) min_k = min(resultsample, key=resultsample.get) print(min_k) # 最大利益が出る取引所からいくら購入したのか if max_k.startswith('bitbank'): price_buy = bitbank_ltc_btc_ask * bitbank_btc_jpy.get( "bid") print(bitbank_ltc_btc_ask) elif max_k.startswith('binance'): price_buy = binance_ltc_btc_ask * bitbank_btc_jpy.get( "bid") else: price_buy = 0 # 最大利益が出る取引所からいくら売ったのか if max_k.endswith('bitbank'): price_sale = bitbank_ltc_btc_bid * bitbank_btc_jpy.get( "bid") elif max_k.endswith('binance'): price_sale = binance_ltc_btc_bid * bitbank_btc_jpy.get( "bid") else: price_sale = 0 # 'BTCを取引した場合の最大利益(jpy):' maxvalue = max( [profit_bitbank_binance, profit_binance_bitbank]) # 'BTCを取引した場合の最低利益(jpy):' minvalue = min( [profit_bitbank_binance, profit_binance_bitbank]) resultarray = { 'bitbank_binance': round(profit_bitbank_binance, 3), 'binance_bitbank': round(profit_binance_bitbank, 3), 'max': max_k, 'min': min_k, 'maxvalue': round(maxvalue, 3), 'minvalue': round(minvalue, 3), 'max_buy': round(price_buy, 3), 'min_sale': round(price_sale, 3) } return resultarray except ccxt.BaseError: print("取引所から取引データを取得できません。") print("10秒待機してやり直します") time.sleep(10)
import pandas as pd liq = ccxt.liquid({ "apiKey": "XXXXX", "secret": "XXXXX", }) # APIキー,シークレットキーを設定 bitf = ccxt.bitflyer({ "apiKey": "XXXXX", "secret": "XXXXX", }) # APIキー,シークレットキーを設定 ccc = ccxt.coincheck({ "apiKey": "XXXXX", "secret": "XXXXX", }) # APIキー,シークレットキーを設定 bitb = ccxt.bitbank({ "apiKey": "XXXXX", "secret": "XXXXX", }) # APIキー,シークレットキーを設定 def bitflyer_ws(soushin_buy, soushin_sell): # print('bitflyer start') def on_message(ws, message): r = json.loads(message) best_bid = r["params"]["message"]["best_bid"] best_ask = r["params"]["message"]["best_ask"] soushin_buy.send(best_ask) soushin_sell.send(best_bid) def on_error(ws, error): print(error)
exchange_class = getattr(ccxt, exchange_id) binance = exchange_class({ 'apiKey': usuario, 'secret': clave, 'timeout': 30000, 'enableRateLimit:': True, }) ''' casas_cambio = ccxt.exchanges # binance=ccxt.binance() exchange_trabajo = 'bitbank' exchange = ccxt.bitbank() mercados = exchange.load_markets(True) monedas = exchange.currencies simbolos = exchange.symbols metodos = dir(exchange) print("empezamos") ''' MIRAMOS PRIMERO CVV >=1 Y LUEGO VCC >=1 YA VIENE EN LA IMPORTACION DEL FICHERO par1 = 'ADA/BTC' # COMPRA par2 = 'ETH/BTC' # VENTA par3 = 'ADA/ETH' # VENTA '''
def init_supported_exchanges(): objects = { "acx": ccxt.acx(), "aofex": ccxt.aofex(), "bequant": ccxt.bequant(), "bibox": ccxt.bibox(), "bigone": ccxt.bigone(), "binance": ccxt.binance(), "bitbank": ccxt.bitbank(), "bitbay": ccxt.bitbay(), "bitfinex": ccxt.bitfinex(), "bitflyer": ccxt.bitflyer(), "bitforex": ccxt.bitforex(), "bithumb": ccxt.bithumb(), "bitkk": ccxt.bitkk(), "bitmax": ccxt.bitmax(), "bitstamp": ccxt.bitstamp(), "bittrex": ccxt.bittrex(), "bitz": ccxt.bitz(), "bl3p": ccxt.bl3p(), "bleutrade": ccxt.bleutrade(), "braziliex": ccxt.braziliex(), "btcalpha": ccxt.btcalpha(), "btcbox": ccxt.btcbox(), "btcmarkets": ccxt.btcmarkets(), "btctradeua": ccxt.btctradeua(), "bw": ccxt.bw(), "bybit": ccxt.bybit(), "bytetrade": ccxt.bytetrade(), "cex": ccxt.cex(), "chilebit": ccxt.chilebit(), "coinbase": ccxt.coinbase(), "coinbasepro": ccxt.coinbasepro(), "coincheck": ccxt.coincheck(), "coinegg": ccxt.coinegg(), "coinex": ccxt.coinex(), "coinfalcon": ccxt.coinfalcon(), "coinfloor": ccxt.coinfloor(), "coinmate": ccxt.coinmate(), "coinone": ccxt.coinone(), "crex24": ccxt.crex24(), "currencycom": ccxt.currencycom(), "digifinex": ccxt.digifinex(), "dsx": ccxt.dsx(), "eterbase": ccxt.eterbase(), "exmo": ccxt.exmo(), "exx": ccxt.exx(), "foxbit": ccxt.foxbit(), "ftx": ccxt.ftx(), "gateio": ccxt.gateio(), "gemini": ccxt.gemini(), "hbtc": ccxt.hbtc(), "hitbtc": ccxt.hitbtc(), "hollaex": ccxt.hollaex(), "huobipro": ccxt.huobipro(), "ice3x": ccxt.ice3x(), "independentreserve": ccxt.independentreserve(), "indodax": ccxt.indodax(), "itbit": ccxt.itbit(), "kraken": ccxt.kraken(), "kucoin": ccxt.kucoin(), "lakebtc": ccxt.lakebtc(), "latoken": ccxt.latoken(), "lbank": ccxt.lbank(), "liquid": ccxt.liquid(), "livecoin": ccxt.livecoin(), "luno": ccxt.luno(), "lykke": ccxt.lykke(), "mercado": ccxt.mercado(), "oceanex": ccxt.oceanex(), "okcoin": ccxt.okcoin(), "okex": ccxt.okex(), "paymium": ccxt.paymium(), "poloniex": ccxt.poloniex(), "probit": ccxt.probit(), "southxchange": ccxt.southxchange(), "stex": ccxt.stex(), "surbitcoin": ccxt.surbitcoin(), "therock": ccxt.therock(), "tidebit": ccxt.tidebit(), "tidex": ccxt.tidex(), "upbit": ccxt.upbit(), "vbtc": ccxt.vbtc(), "wavesexchange": ccxt.wavesexchange(), "whitebit": ccxt.whitebit(), "yobit": ccxt.yobit(), "zaif": ccxt.zaif(), "zb": ccxt.zb() } return objects
# coding: utf-8 import ccxt import pandas as pd import numpy as np from pprint import pprint import time #各取引所のAPIを取得 cc = ccxt.coincheck() bf = ccxt.bitflyer() zaif = ccxt.zaif() bb = ccxt.bitbank() #for i in range(0, 3, 1): #各取引所のBTC価格(ticker)を取得 #CC ticker情報 cc_ticker = cc.fetch_ticker("BTC/JPY") ccask = cc_ticker["ask"] ccbid = cc_ticker["bid"] #bf ticker情報 bf_ticker = bf.fetch_ticker("BTC/JPY") bfask = bf_ticker["ask"] bfbid = bf_ticker["bid"] #zaif ticker情報 zaif_ticker = zaif.fetch_ticker("BTC/JPY") zaifask = zaif_ticker["ask"] zaifbid = zaif_ticker["bid"]
def __init__(self): self.ex_list = [ccxt.liquid(), "bitfyler" , ccxt.coincheck(), ccxt.bitbank(),ccxt.btcbox(),"GMO"] self.ex_name_list = ["liquid","bitfyler","coincheck", "bitbank","btcbox" ,"GMO"]
import time import ccxt import pandas as pd from IPython.display import display gateio = ccxt.gateio() gdax = ccxt.gdax() # kraken = ccxt.kraken() binance = ccxt.binance() bitbank = ccxt.bitbank() bit2c = ccxt.bit2c() bitbay = ccxt.bitbay() exchanges = { gateio: ['ETH/BTC', 'LTC/BTC'], gdax: ['ETH/BTC', 'LTC/BTC', 'BTC/USD'], # kraken: ['ETH/BTC', 'LTC/BTC', 'BTC/USD'], binance: ['ETH/BTC', 'LTC/BTC'], bitbank: ['ETH/BTC', 'LTC/BTC'], bit2c: ['BTC/NIS', 'LTC/NIS'], bitbay: ['ETH/BTC', 'LTC/BTC'] } def get_top_of_book(exchange, symbol): book = exchange.fetch_order_book(symbol) best_bid_price = book['bids'][0][0] best_ask_price = book['asks'][0][0] return best_bid_price, best_ask_price
"""取引所から通貨情報を取得する""" # coding: UTF-8 文字コード指定 import time import ccxt # 取引所ライブラリをインポート BITBANK = ccxt.bitbank() # 取引所の指定 def bitbank_id() -> " BITBANK取引所ID": """取引所IDを返します""" return BITBANK.id def bitbank_bid() -> " RXP/BTC購入価格": """購入価格を返します""" bitbank_orderbook = BITBANK.fetch_order_book('XRP/JPY') return bitbank_orderbook['bids'][0][0] if (bitbank_orderbook['bids']) else None def bitbank_ask() -> "RXP/BTC売却価格": """売却価格を返します""" bitbank_orderbook = BITBANK.fetch_order_book('XRP/JPY') return bitbank_orderbook['asks'][0][0] if (bitbank_orderbook['asks']) else None def bitbank_spread() -> "RXP/BTCスプレッド": """スプレッド情報を返します""" return (bitbank_ask() - bitbank_bid()) if (bitbank_bid() and bitbank_ask()) else None
import ccxt exchanges = [ ccxt._1broker(), ccxt._1btcxe(), ccxt.acx(), ccxt.allcoin(), ccxt.anxpro(), ccxt.bibox(), ccxt.binance(), ccxt.bit2c(), ccxt.bitbank(), ccxt.bitbay(), ccxt.bitfinex(), ccxt.bitfinex2(), ccxt.bitflyer(), ccxt.bithumb(), ccxt.bitkk(), ccxt.bitlish(), ccxt.bitmarket(), ccxt.bitmex(), ccxt.bitso(), ccxt.bitstamp(), ccxt.bitstamp1(), ccxt.bittrex(), ccxt.bitz(), ccxt.bl3p(), ccxt.bleutrade(), ccxt.braziliex(), ccxt.btcbox(), ccxt.btcchina(),
def public_bitbank(cls): """publicキーの処理""" bitbank = ccxt.bitbank() return bitbank
import sys import time import ccxt import json import os print('shell start') interval = 1 ex = ccxt.bitbank() ex_name = 'bb' filename = os.path.normpath( os.path.join(os.path.abspath(__name__), '../tickers/' + ex_name + '_ticker.json')) try: while True: ex_json = ex.fetch_ticker('BTC/JPY') with open(filename, 'w') as f: json.dump(ex_json, f, indent=2, ensure_ascii=False) time.sleep(interval) except: print('through any exception. exit get_' + ex_name + '_ticker.py') sys.exit()