def get_hq(keyword, platform): if platform == 'okcoin': apikey = '99ad2439-28f3-4297-8532-54ce8b7dc52c' secretkey = 'E1AE48319FF5C7C6ADA39C3040ACC6B8' okcoinRESTURL = 'www.okcoin.cn' # 请求注意:国内账号需要 修改为 www.okcoin.cn okcoinSpot = OKCoinSpot(okcoinRESTURL, apikey, secretkey) ticker_key = keyword + '_cny' f = okcoinSpot.ticker(ticker_key) doc = f # doc = json.loads(f) print(u' 现货行情 ') print(doc) timeArray = time.localtime(int(doc['date'])) otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray) ret_msg = keyword + ''' 最新成交价:¥{} 买一:¥{} 卖一:¥{} 最高:¥{} 最低:¥{} 成交量:{} 时间:{} ''' return ret_msg.format(doc['ticker']['last'], doc['ticker']['buy'], doc['ticker']['sell'], doc['ticker']['high'], doc['ticker']['low'], doc['ticker']['vol'], otherStyleTime) elif platform == 'chbtc': hq = get_hq_chbtc(keyword) print(hq) return hq else: pass
def __init__(self, dbconfig, credential): self.__my_future_client = OKCoinFuture(credential['okcoinRESTURL'], credential['apikey'], credential['secretkey']) self.__my_spot_client = OKCoinSpot(credential['okcoinRESTURL'], credential['apikey'], credential['secretkey']) self.__mydb = MySQL(dbconfig['host'], dbconfig['user'], dbconfig['passwd'], dbconfig['db'])
def __init__(self): ##初始化apikey,secretkey,url apikey = config.apikey secretkey = config.secretkey okcoinRESTURL = 'www.okex.com' #请求注意:国内账号需要 修改为 www.okcoin.cn #现货API self.okcoinSpot = OKCoinSpot(okcoinRESTURL,apikey,secretkey) # 期货API self.okcoinFuture = OKCoinFuture(okcoinRESTURL, apikey, secretkey) self.depth = {}
def __init__(self, mykey=None, mysecret=None): if mykey and mysecret: self.mykey,self.mysecret = mykey,mysecret else: filename = CURRENTURL+r'\key' with open(filename,'r',encoding='utf-8') as f: data = f.read() self.mykey,self.mysecret = data.split('\n') self.mykey = self.mykey.strip() self.mysecret = self.mysecret.strip() okcoinRESTURL = 'www.okb.com' # print(self.mykey,self.mysecret) self.okcoinSpot = OKCoinSpot(okcoinRESTURL,self.mykey,self.mysecret)
def api_get(self, method, params={}): # 现货API if self.account: apikey, secretkey = get_account_key("okex", self.account) okcoinSpot = OKCoinSpot(okcoinRESTURL, apikey, secretkey) if method == "userinfo": api_do = "okcoinSpot.%s()" % (method) return eval(api_do) elif method in ["buy", "sell"]: return okcoinSpot.trade(params["symbol"], method, params["price"], params["amount"]) elif method == "cancelOrder": return okcoinSpot.cancelOrder(params["symbol"], params["id"]) elif method in ["order_info", "orders_info"]: return okcoinSpot.orderinfo(params["symbol"], params["id"]) elif method == "ticker": return okcoinSpot.ticker(symbol=params["symbol"]) elif method == "funds_transfer": return okcoinSpot.funds_transfer(params["amount"],params["From"],params["To"], params["symbol"]) elif method == "withdraw": #tradepwd = get_tradepwd("okex", self.account) tradepwd="huangxinyu2" return okcoinSpot.withdraw(params["symbol"], params["address"], params["amount"], tradepwd, params["fee"], params["addr_tag"])
def api_get(self, method, params={}): # 现货API if self.account: apikey, secretkey = get_account_key("okex", self.account) okcoinSpot = OKCoinSpot(okcoinRESTURL, apikey, secretkey) if method == "userinfo": api_do = "okcoinSpot.%s()" % (method) return eval(api_do) elif method in ["buy", "sell"]: return okcoinSpot.trade(params["symbol"], method, params["price"], params["amount"]) elif method == "cancelOrder": return okcoinSpot.cancelOrder(params["symbol"], params["id"]) elif method in ["order_info", "orders_info"]: return okcoinSpot.orderinfo(params["symbol"], params["id"]) elif method == "ticker": return okcoinSpot.ticker(symbol=params["symbol"]) elif method == "funds_transfer": return okcoinSpot.funds_transfer(params["amount"], params["from"], params["to"], symbol=params["symbol"])
class Trades(object): __my_future_client = None __my_spot_client = None __mydb = None def __init__(self,dbconfig,credential): self.__my_future_client = OKCoinFuture(credential['okcoinRESTURL'],credential['apikey'],credential['secretkey']) self.__my_spot_client = OKCoinSpot(credential['okcoinRESTURL'],credential['apikey'],credential['secretkey']) self.__mydb = MySQL(dbconfig['host'],dbconfig['user'],dbconfig['passwd'],dbconfig['db']) def collect_future_trades(self,symbol,contract_type): hjson = self.__my_future_client.future_trades(symbol,contract_type) collected = 0 for i in range(0,len(hjson)): amount = float(hjson[i]['amount']) date = hjson[i]['date'] date = datetime.datetime.fromtimestamp(date) date = date.strftime("%Y-%m-%d %H:%M:%S") date_ms = hjson[i]['date_ms'] / 1000 date_ms = datetime.datetime.fromtimestamp(date_ms) date_ms = date_ms.strftime("%Y-%m-%d %H:%M:%S") price = float(hjson[i]['price']) tid = hjson[i]['tid'] trade_type = hjson[i]['type'] if self.__mydb.future_trade_exist(symbol, date_ms, tid, contract_type) == 0: self.__mydb.insert_trades(amount,date,date_ms,price,tid,trade_type,symbol,0,contract_type) collected = collected+1 print (symbol +' ' + contract_type +' future trade history' + ' is done! collected ' + str(collected) + ' records!') ##end of def collect_future_trades def collect_spot_trades(self,symbol): max_trade_id = self.__mydb.get_max_trade_id(symbol,1) hjson = self.__my_spot_client.trades(symbol,max_trade_id) collected = 0 for i in range(0,len(hjson)): amount = float(hjson[i]['amount']) date = hjson[i]['date'] date = datetime.datetime.fromtimestamp(date) date = date.strftime("%Y-%m-%d %H:%M:%S") date_ms = hjson[i]['date_ms'] / 1000 date_ms = datetime.datetime.fromtimestamp(date_ms) date_ms = date_ms.strftime("%Y-%m-%d %H:%M:%S") price = float(hjson[i]['price']) tid = hjson[i]['tid'] trade_type = hjson[i]['type'] if tid > max_trade_id: self.__mydb.insert_trades(amount,date,date_ms,price,tid,trade_type,symbol,1) collected = collected+1 print (symbol +' spot trade history' + ' is done! collected ' + str(collected) + ' records!') ##end of def collect_spot_trades
def read_key(): okcoinRESTURL = 'www.okcoin.com' #请求注意:国内账号需要 修改为 www.okcoin.cn with open('lijianhui', 'r') as apis: keys = json.loads(apis.read()) #现货API okcoinSpot = OKCoinSpot(okcoinRESTURL, keys["api"], keys["secret"]) #期货API okcoinFuture = OKCoinFuture(okcoinRESTURL, keys["api"], keys["secret"]) return okcoinSpot, okcoinFuture
def collect_okcoin(): # ------------------------------ # collect data from Okcoin API # ------------------------------ # API_KEY_OKCOIN='b4dd3278-df06-48af-8925-40120f46563b' # API_SECRET_OKCOIN='1F8A97B89F03A095238823CB1FAA3827' import sys sys.path.insert(0, '/Users/G_bgyl/si507/final_project/okcoin_lib') from OkcoinSpotAPI import OKCoinSpot from OkcoinFutureAPI import OKCoinFuture #初始化apikey,secretkey,url okcoinRESTURL = 'www.okcoin.com' #请求注意:国内账号需要 修改为 www.okcoin.cn #现货API okcoinSpot = OKCoinSpot(okcoinRESTURL, API_KEY_OKCOIN, API_SECRET_OKCOIN) #期货API okcoinFuture = OKCoinFuture(okcoinRESTURL, API_KEY_OKCOIN, API_SECRET_OKCOIN) # pprint.pprint (okcoinSpot.depth('btc_usd')) okcoin_depth = okcoinSpot.depth('btc_usd') # pprint.pprint(okcoin_depth) bids = [] for each_b in okcoin_depth['bids']: bids.append(['bids'] + each_b) asks = [] for each_a in okcoin_depth['bids']: asks.append(['asks'] + each_a) okcoin_data = bids + asks # print(len(okcoin_depth['bids']),len(okcoin_depth['asks']),len(okcoin_data)) return okcoin_data
#!/usr/bin/python # -*- coding: utf-8 -*- # encoding: utf-8 import json import Utils from OkcoinSpotAPI import OKCoinSpot #更新数据库账户信息 okcoinSpotCn = OKCoinSpot(Utils.okcoinCnRESTURL, Utils.apikey, Utils.secretkey) userInfo = okcoinSpotCn.userinfo() with open(Utils.userInfoFile, 'w') as dataBase: json.dump(userInfo, dataBase) #dataBase.closed
if len(sys.argv[1:]) < 3: print("not enough parameters were specified, ", len(sys.argv[1:]), " specified, at least 3 needed") print("usage : multAPI.py exchangeName symbolPair queryType jsonQueryParams") exit(0) ############################# orderHistory ################################# # input params : since (integer), filled (int 0 or 1), maxListings (may be capped per exchange) # output format : if sys.argv[3] == "orderHistory": since = 0 filled = 0 maxListings = 0 if sys.argv[1] == "okcoin": okcoinSpot = OKCoinSpot(okcoinRESTURL, secrets.okCoinKey, secrets.okCoinSecret) for i in range(len(sys.argv[4:])): j = sys.argv[4 + i].strip("'<>()[]{}").replace("'", '"').split(":") if j[0] == "since": since = j[1] if j[0] == "filled": filled = j[1] if j[0] == "maxListings": maxListings = j[1] print( "querying okcoin for orderHistory on pair ", sys.argv[2], " : since (", since, "), filled (", filled,
#!/usr/bin/python # -*- coding: utf-8 -*- # encoding: utf-8 #客户端调用,用于查看API返回结果 from OkcoinSpotAPI import OKCoinSpot from OkcoinFutureAPI import OKCoinFuture #初始化apikey,secretkey,url apikey = 'XXXX' secretkey = 'XXXXX' okcoinRESTURL = 'www.okcoin.com' #请求注意:国内账号需要 修改为 www.okcoin.cn #现货API okcoinSpot = OKCoinSpot(okcoinRESTURL,apikey,secretkey) #期货API okcoinFuture = OKCoinFuture(okcoinRESTURL,apikey,secretkey) print (u' 现货行情 ') print (okcoinSpot.ticker('btc_usd')) print (u' 现货深度 ') print (okcoinSpot.depth('btc_usd')) #print (u' 现货历史交易信息 ') #print (okcoinSpot.trades()) #print (u' 用户现货账户信息 ') #print (okcoinSpot.userinfo())
# -*- coding: utf-8 -*- # encoding: utf-8 #客户端调用,用于查看API返回结果 from OkcoinSpotAPI import OKCoinSpot from OkcoinFutureAPI import OKCoinFuture import time #初始化apikey,secretkey,url apikey = 'db052c78-71e1-4db6-ae7f-f9c659568c30' secretkey = '93cd90F4E914E8FD08A7DC5423F260C7' okcoinRESTURL = 'www.okcoin.cn' #请求注意:国内账号需要 修改为 www.okcoin.cn time_sleep = 5 #现货API okcoinSpot = OKCoinSpot(okcoinRESTURL,apikey,secretkey) #期货API okcoinFuture = OKCoinFuture(okcoinRESTURL,apikey,secretkey) trade_record_file = open("./btcTradeRecord.txt", "a+") print (u' 现货行情 ') count = 0 trade_tmp = (okcoinSpot.ticker('btc_usd')) last_volume = float(trade_tmp['ticker']['vol']) time.sleep(time_sleep) while count<12: trade_now = (okcoinSpot.ticker('btc_usd')) print (trade_now)
''' #!/usr/bin/python # -*- coding: utf-8 -*- # encoding: utf-8 #客户端调用,用于查看API返回结果 from OkcoinSpotAPI import OKCoinSpot from OkcoinFutureAPI import OKCoinFuture #初始化apikey,secretkey,url apikey = 'fdcaed15-7d45-4de2-8ddf-9111c77375e6' secretkey = 'ECEE466D8AF35C5F812CB9F4EA3023A0' okcoinRESTURL = 'www.okcoin.com' #请求注意:国内账号需要 修改为 www.okcoin.cn #现货API okcoinSpot = OKCoinSpot(okcoinRESTURL, apikey, secretkey) #期货API okcoinFuture = OKCoinFuture(okcoinRESTURL, apikey, secretkey) ''' print (u' 现货行情 ') print (okcoinSpot.ticker('btc_usd')) print (u' 现货深度 ') print (okcoinSpot.depth('btc_usd')) print (u' 现货历史交易信息 ') print (okcoinSpot.trades('btc_usd',0)) print (u'期货交易记录信息') print (okcoinFuture.future_trades('ltc_usd','this_week',0))
#!/usr/bin/python # -*- coding: utf-8 -*- # encoding: utf-8 #客户端调用,用于查看API返回结果 from OkcoinSpotAPI import OKCoinSpot from OkcoinFutureAPI import OKCoinFuture #初始化apikey,secretkey,url apikey = '050f660b-b88a-47b0-88e3-aa5b64b52349' secretkey = 'E1BF7574A26E4D1B9CC287A0DA7E281B' okcoinRESTURL = 'www.okcoin.com' #请求注意:国内账号需要 修改为 www.okcoin.cn #现货API okcoinSpot = OKCoinSpot(okcoinRESTURL, apikey, secretkey) #期货API okcoinFuture = OKCoinFuture(okcoinRESTURL, apikey, secretkey) import json def decompress_data(evt): """解压缩推送收到的数据""" data = json.loads(evt) return data print(u' 现货行情 ') print(okcoinSpot.ticker('btc_usd'))
""" Created on Fri Jun 30 14:37:25 2017 @author: Administrator """ import time from OkcoinSpotAPI import OKCoinSpot from OkcoinFutureAPI import OKCoinFuture from sqlalchemy import Column, String, create_engine, Float, MetaData, Integer, BIGINT from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base apikey = '****' secretkey = '****' okcoinRESTURL = 'www.okcoin.cn' okcoinSpot = OKCoinSpot(okcoinRESTURL, apikey, secretkey) engine = create_engine('mysql+pymysql://root:lh*#123@localhost:3306/btc') Base = declarative_base() DBSession = sessionmaker(bind=engine) class DataFresh(Base): __tablename__ = 'min1kline_ltc' idkey = Column(Integer(), primary_key=True) timemark = Column(BIGINT()) openprice = Column(Float()) highprice = Column(Float()) lowprice = Column(Float()) closeprice = Column(Float()) tradevol = Column(Float()) count = Column(BIGINT())
# encoding: utf-8 #客户端调用,用于查看API返回结果 from OkcoinSpotAPI import OKCoinSpot from OkcoinFutureAPI import OKCoinFuture #初始化apikey,secretkey,url #apikey = 'd8da16f9-a531-4853-b9ee-ab07927c4fef' #secretkey = '4752BE55655A6233A7254628FB7E9F50' #okcoinRESTURL = 'www.okcoin.com' #请求注意:国内账号需要 修改为 www.okcoin.cn apikey = 'fd07e7f8-519a-4ba3-8289-af9881181a96' secretkey = 'E0EACE4FB14A8CBDFE271E87D6FA2B6C' okcoinRESTURL = 'www.okcoin.cn' #现货API okcoinSpot = OKCoinSpot(okcoinRESTURL, apikey, secretkey) #期货API okcoinFuture = OKCoinFuture(okcoinRESTURL, apikey, secretkey) #print (u'K线信息') print(okcoinSpot.kline('btc_cny')) #print (u' 现货行情 ') #print (okcoinSpot.ticker('btc_usd')) #print (u' 现货深度 ') #print (okcoinSpot.depth('btc_usd')) #print (u' 现货历史交易信息 ') #print (okcoinSpot.trades())
#客户端调用,用于查看API返回结果 from OkcoinSpotAPI import OKCoinSpot from OkcoinFutureAPI import OKCoinFuture #初始化apikey,secretkey,url #apikey = 'XXXX' #secretkey = 'XXXXX' #okcoinRESTURL = 'www.okcoin.com' #请求注意:国内账号需要 修改为 www.okcoin.cn apikey = 'f5d1235d-6a68-4acf-92c7-ccfec0806546' secretkey = 'E07188CC82D29B2250879268CAE86965' okcoinRESTURL = 'www.okcoin.cn' #请求注意:国内账号需要 修改为 www.okcoin.cn #现货API okcoinSpot = OKCoinSpot(okcoinRESTURL,apikey,secretkey) #期货API okcoinFuture = OKCoinFuture(okcoinRESTURL,apikey,secretkey) print (u' 现货行情 ') print (okcoinSpot.ticker('btc_usd')) print (u' 现货深度 ') print (okcoinSpot.depth('btc_usd')) print (u' 现货历史交易信息 ') print (okcoinSpot.trades()) print (u' 用户现货账户信息 ') print (okcoinSpot.userinfo())
import json #Historical Data Initialization #wb = xlwings.Book('Historical Data.xlsx') #DataSheet = wb.sheets['Monitor'] #RowNum = 1 #ColNum = 1 #初始化apikey,secretkey,url apikey = '' secretkey = '' okcoinRESTURL = 'www.okex.com' #请求注意:国内账号需要 修改为 www.okcoin.cn #期货API okcoinFuture = OKCoinFuture(okcoinRESTURL,apikey,secretkey) okcoinSpot = OKCoinSpot(okcoinRESTURL,apikey,secretkey) #Load Spot last/bid/ask #print (u' 期货市场深度信息') #Fut_Data =okcoinFuture.future_depth('btc_usd','this_week','6') #Fut_Ask=Fut_Data.get("asks") #print (Fut_Ask) #Load next week fut spot/bid/last print (u' 期货行情信息') while True: try: Fut_Data_Next_Quarter_BTC = okcoinFuture.future_ticker('btc_usd','quarter') Fut_Data_Next_Quarter_LTC = okcoinFuture.future_ticker('ltc_usd','quarter') LTC_Index = okcoinFuture.future_index('ltc_usd') BTC_Index = okcoinFuture.future_index('btc_usd') USDT_Index = okcoinFuture.exchange_rate()
# -*- coding: utf-8 -*- # encoding: utf-8 # 客户端调用,用于查看API返回结果 from OkcoinSpotAPI import OKCoinSpot from OkcoinFutureAPI import OKCoinFuture import datetime import json # 初始化apikey,secretkey,url apikey = '04266bc3-ca47-4fa1-b8c2-93a1058b0d06' secretkey = 'C11FA5BB70971D7FD5A64B9FBC6775DD' okcoinRESTURL = 'www.okcoin.cn' # 请求注意:国内账号需要 修改为 www.okcoin.cn # 现货API okcoinSpot = OKCoinSpot(okcoinRESTURL, apikey, secretkey) # 期货API okcoinFuture = OKCoinFuture(okcoinRESTURL, apikey, secretkey) # print ('ticker') # print (okcoinSpot.ticker('btc_cny')) data = okcoinSpot.ticker('btc_cny') string = data['date'] + ' ' + data['ticker']['buy'] + ' ' + data['ticker']['high'] + ' ' + data['ticker'][ 'last'] + ' ' + data['ticker']['low'] + ' ' + data['ticker']['sell'] + ' ' + data['ticker']['vol'] # Write to file f = open('/root/python/bcmind/data/' + str(int(int(data['date']) / 3600)) + '.dat', 'a+') f.write(string + '\n')
#!/usr/bin/python # -*- coding: utf-8 -*- # encoding: utf-8 #客户端调用,用于查看API返回结果 from OkcoinSpotAPI import OKCoinSpot from OkcoinFutureAPI import OKCoinFuture #初始化apikey,secretkey,url apikey = 'XXXX' secretkey = 'XXXXX' okcoinRESTURL = 'www.okex.com' #请求注意:国内账号需要 修改为 www.okcoin.cn #现货API okcoinSpot = OKCoinSpot(okcoinRESTURL,apikey,secretkey) #期货API okcoinFuture = OKCoinFuture(okcoinRESTURL,apikey,secretkey) #print (u' 现货行情 ') #print (okcoinSpot.ticker('btc_usdt')) #print (u' 现货深度 ') #print (okcoinSpot.depth('btc_usdt')) print (u' K线数据 ') print (okcoinSpot.kline(symbol='btc_usdt',type_='1day')) #print (u' 现货历史交易信息 ') #print (okcoinSpot.trades())
# encoding: utf-8 #客户端调用,用于查看API返回结果 from OkcoinSpotAPI import OKCoinSpot from OkcoinFutureAPI import OKCoinFuture import time import json import sys #初始化apikey,secretkey,url apikey = 'db052c78-71e1-4db6-ae7f-f9c659568c30' secretkey = '93CD90F4E914E8FD08A7DC5423F260C7' okcoinRESTURL = 'www.okcoin.cn' #请求注意:国内账号需要 修改为 www.okcoin.cn time_sleep = 5 okcoinSpot = OKCoinSpot(okcoinRESTURL,apikey,secretkey) first_trade_file_log = "/home/ubuntu/firstTrade/firstTradeOutput.log" first_trade_file_error = "/home/ubuntu/firstTrade/firstTradeOutput.error" first_trade_file = open(first_trade_file_log, 'a+') first_trade_error = open(first_trade_file_error, 'a+') #print (okcoinSpot.trade('btc_cny','buy_market',price=250)) #import pdb; pdb.set_trace() (symbol, trade_type, price, amount) = sys.argv[1:] error_count = 0 error_flag = True while True: if error_count >= 10:
#!/usr/bin/python3.4 # -*- coding: utf-8 -*- # encoding: utf-8 #客户端调用,用于查看API返回结果 from OkcoinSpotAPI import OKCoinSpot from OkcoinFutureAPI import OKCoinFuture import time #初始化apikey,secretkey,url apikey = 'db052c78-71e1-4db6-ae7f-f9c659568c30' secretkey = '93CD90F4E914E8FD08A7DC5423F260C7' okcoinRESTURL = 'www.okcoin.cn' #请求注意:国内账号需要 修改为 www.okcoin.cn time_sleep = 5 #现货API okcoinSpot = OKCoinSpot(okcoinRESTURL,apikey,secretkey) trade_record_file = open("./btcTradeRecord.txt", "a+") print (u'Trade Info ') #print (okcoinSpot.trade('btc_cny','buy_market',price=250)) #print (okcoinSpot.trade('btc_cny','sell_market',amount=0.1)) print (u' 现货订单信息查询 ') print (okcoinSpot.orderinfo('btc_cny', '185184673')) print (okcoinSpot.get_fee('btc_cny', '185184673')) trade_record_file.close()
# -*- coding: utf-8 -*- # encoding: utf-8 #客户端调用,用于查看API返回结果 from OkcoinSpotAPI import OKCoinSpot from OkcoinFutureAPI import OKCoinFuture import time import json #初始化apikey,secretkey,url apikey = 'db052c78-71e1-4db6-ae7f-f9c659568c30' secretkey = '93CD90F4E914E8FD08A7DC5423F260C7' okcoinRESTURL = 'www.okcoin.cn' #请求注意:国内账号需要 修改为 www.okcoin.cn #现货API okcoinSpot = OKCoinSpot(okcoinRESTURL,apikey,secretkey) #期货API okcoinFuture = OKCoinFuture(okcoinRESTURL,apikey,secretkey) first_trade_file_log = "/home/ubuntu/firstTrade/firstTradeInput.log" first_trade_file_error = "/home/ubuntu/firstTrade/firstTradeInput.error" try: first_trade_file = open(first_trade_file_log, 'r') first_trade_error = open(first_trade_file_error, 'r') except Exception: first_trade_file = open(first_trade_file_log, 'w') first_trade_error = open(first_trade_file_error, 'a+') else: first_trade_file.close()
from JubiSpotAPI import JubiSpot from YunbiSpotAPI import YunbiSpot from enum import Enum #class Coin(Enum): # BTC_CNY = 'btc_cny' # LTC_CNY = 'ltc_cny' # ETH_CNY = 'eth_cny' #初始化 OKCoin 参数 okcoin_apikey = 'ak' okcoin_secretkey = 'sK' okcoinRESTURL = 'www.okcoin.cn' #请求注意:国内账号需要 修改为 www.okcoin.cn #OKCoin现货API okcoinSpot = OKCoinSpot(okcoinRESTURL, okcoin_apikey, okcoin_secretkey) #初始化 YUNBI 参数 yunbi_apikey = 'ak' yunbi_secretkey = 'sk' yunbiRESTURL = 'www.yunbi.com' yunbiSpot = YunbiSpot(yunbiRESTURL, yunbi_apikey, yunbi_secretkey) #初始化 CHBTC 参数 chbtc_apikey = 'ak' chbtc_secretkey = 'sk' chbtc_market = 'api.chbtc.com' #行情api chbtc_trade = 'trade.chbtc.com' #交易api chbtcMarket = CHBtcSpot(chbtc_market, chbtc_apikey, chbtc_secretkey) #行情
@author: Administrator """ from OkcoinSpotAPI import OKCoinSpot from OkcoinFutureAPI import OKCoinFuture # 导入: from sqlalchemy import Column, String, create_engine, Float, MetaData, Integer from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base apikey = '***' secretkey = '***' okcoinRESTURL = 'www.okcoin.cn' #请求注意:国内账号需要 修改为 www.okcoin.cn #现货API okcoinSpot = OKCoinSpot(okcoinRESTURL, apikey, secretkey) Testa = okcoinSpot.klines('ltc_cny', '1min') ''' 备注:查询时间戳的转换 5分钟内所有https 请求不得超过3000个 每秒提交10个左右 ''' # 创建对象的基类: Base = declarative_base() # 定义User对象: class User(Base): # 表的名字: __tablename__ = 'min1kline'
path = os.path.abspath(os.path.dirname(__file__)) fileName = os.path.join(path, fileName) # 解析json文件 with open(fileName) as data_file: setting = json.load(data_file) data_file.close() btcquote = 90000 for accountname in setting: apikey = str(setting[accountname]['apiKey']) secretkey = str(setting[accountname]['secretKey']) okcoinRESTURL = 'www.okex.com' # 现货API okcoinSpot = OKCoinSpot(okcoinRESTURL, apikey, secretkey) # 期货API okcoinFuture = OKCoinFuture(okcoinRESTURL, apikey, secretkey) spotinfo = okcoinSpot.userinfo() spotinfo = json.loads(spotinfo) freeamount = 0 freezedamount = 0 if spotinfo['result']: freeinfo = spotinfo['info']['funds']['free'] freezedinfo = spotinfo['info']['funds']['freezed'] for symbol in freeinfo: if float(freeinfo[symbol]) != 0: if symbol == 'btc': quote = 1.0
class Ok_api: def __init__(self, mykey=None, mysecret=None): if mykey and mysecret: self.mykey,self.mysecret = mykey,mysecret else: filename = CURRENTURL+r'\key' with open(filename,'r',encoding='utf-8') as f: data = f.read() self.mykey,self.mysecret = data.split('\n') self.mykey = self.mykey.strip() self.mysecret = self.mysecret.strip() okcoinRESTURL = 'www.okb.com' # print(self.mykey,self.mysecret) self.okcoinSpot = OKCoinSpot(okcoinRESTURL,self.mykey,self.mysecret) def __api_public_call(self,path,params=''): headers = { 'user-agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36 Maxthon/5.1.3.2000', } url = 'https://www.okb.com/api/v1/' + path + params req = urllib.request.Request(url,headers=headers) res = urllib.request.urlopen(req, timeout=10) doc = json.loads(res.read().decode('utf-8')) # .decode('gbk', 'ignore') return doc # try: # except Exception as ex: # print(sys.stderr, 'ok request public_ex: ', ex) # return None def trades(self,symbol='btc_usdt',since=0): ''' return (tid,symbol,date,price,amount,type) max_len 60 ''' data = self.okcoinSpot.trades(symbol,since) lst = [da['tid'] for da in data] return [(da['tid'],symbol,da['date'],da['price'],da['amount'],da['type']) for da in data[::-1]] # try: # except Exception as e: # # raise e # print('ok_api_ trades' ,e) # return [] def kline(self,symbol,type,size=500): ''' symbol type size since https://www.okb.com/api/v1/kline.do ''' path = 'kline.do?' params = "symbol=%s&type=%s&size=%s" %(symbol,type,size) obj = self.__api_public_call(path, params) return obj # try: # except Exception as ex: # print(sys.stderr, 'ok %s exception ,'%path,ex) # return None def depth(self,symbol = ''): data = self.okcoinSpot.depth(symbol) data =[data['asks'][::-1],data['bids']] return data def balance(self): data = self.okcoinSpot.userinfo() data_free = data['info']['funds']['free'] data_freezed = data['info']['funds']['freezed'] data = filter( lambda x:data_free[x] != '0',data_free) data_free = { da:data_free[da] for da in data_free if data_free[da] != '0'} data_freezed = { da:data_freezed[da] for da in data_freezed if data_freezed[da] != '0'} return data_free,data_freezed def order(self,symbol,price,amount,type): data = self.okcoinSpot.trade(symbol,price,amount,type) return data def deal_order_data(self,data,lst): resl = [] for da in data: d = {} for l in lst: if l == 'order_id': d['id'] = da[l] else: d[l] = da[l] resl.append(d) return resl def getOrder(self,id,symbol=None): ''' {'orders': [{'amount': 1, 'avg_price': 0, 'create_date': 1536112711000, 'deal_amount': 0, 'order_id': 864345207, 'orders_id': 864345207, 'price': 10.0, 'status': 0, 'symbol': 'eos_usdt', 'type': 'sell'}], 'result': True} ''' data = self.okcoinSpot.orderinfo(symbol,id) data = data['orders'] data = self.deal_order_data(data,['amount','price','deal_amount','avg_price','create_date','order_id','type']) [da.update({'deal_money':da['deal_amount']*da['avg_price']}) for da in data] if len(data) > 1: raise ValueError(data) return data[0] def unfinished_orders_list(self,symbol): '''{'currency_page': 1, 'orders': [{'amount': 1, 'avg_price': 0, 'create_date': 1536112711000, 'deal_amount': 0, 'order_id': 864345207, 'orders_id': 864345207, 'price': 10.0, 'status': 0, 'symbol': 'eos_usdt', 'type': 'sell'}], 'page_length': 200, 'result': True, 'total': 1} [{'amount': 1, 'avg_price': 0, 'create_date': 1536112711000, 'deal_amount': 0, 'deal_money': 0, 'order_id': 864345207, 'price': 10.0, 'type': 'sell'}] ''' data = self.okcoinSpot.orderHistory(symbol) if not data.get('orders'): return data data = data['orders'] data = self.deal_order_data(data,['amount','price','deal_amount','avg_price','create_date','order_id','type']) [da.update({'deal_money':da['deal_amount']*da['avg_price']}) for da in data] return data def cancelOrder(self,id,symbol): ''' {'orders': [{'amount': 1, 'avg_price': 0, 'create_date': 1536112711000, 'deal_amount': 0, 'order_id': 864345207, 'orders_id': 864345207, 'price': 10.0, 'status': 0, 'symbol': 'eos_usdt', 'type': 'sell'}], 'result': True} ''' data = self.okcoinSpot.ordersinfo(symbol,id) if data.get('result') == True: return True print(data) return False
# encoding: utf-8 #客户端调用,用于查看API返回结果 from OkcoinSpotAPI import OKCoinSpot import pandas as pd pd.set_option('display.max_columns', None) pd.set_option('display.width', 1000) #初始化apikey,secretkey,url apikey = '9c02dad0-7ab3-421f-9bea-7e8959c356bd' secretkey = '32C80E2D1C4B6C833656284BB2DD7B1F' okcoinRESTURL = 'www.okcoin.com' #请求注意:国内账号需要 修改为 www.okcoin.cn #现货API okcoinSpot = OKCoinSpot(okcoinRESTURL, apikey, secretkey) result = okcoinSpot.getKline("etc_usdt", "1min") print(result) #期货API # print (u' 现货行情 ') # print (okcoinSpot.ticker('btc_usd')) # # print (u' 现货深度 ') # print (okcoinSpot.depth('btc_usd')) #print (u' 现货历史交易信息 ') #print (okcoinSpot.trades()) #print (u' 用户现货账户信息 ')
# codding: utf-8 from OkcoinSpotAPI import OKCoinSpot url = 'https://www.okcoin.cn' username = '******' password = '******' trade_pwd = 'guohongming03' OKCoin_spot = OKCoinSpot(url, username, password) if OKCoin_spot.login() == 1: print('login success!') else: print('login failed!') # account_info = OKCoin_spot.account_info() # 账户信息 # print(account_info) # financing_info = OKCoin_spot.financing_info() # 融资融币借放款深度前10名。 # print(financing_info) # borrow_info = OKCoin_spot.borrow_lend_info() # 借款信息(人民币,btc,ltc) # print(borrow_info) trade_value = (OKCoin_spot.trade_value()) # 最新交易价格 print(trade_value) # borrow_cny_apply = OKCoin_spot.borrow_cny_apply(100) # 申请人民币借款 # print(borrow_cny_apply) # back_cny = OKCoin_spot.back_cny() # 人民币还款 # print(back_cny)
class okex(): def __init__(self): ##初始化apikey,secretkey,url apikey = config.apikey secretkey = config.secretkey okcoinRESTURL = 'www.okex.com' #请求注意:国内账号需要 修改为 www.okcoin.cn #现货API self.okcoinSpot = OKCoinSpot(okcoinRESTURL,apikey,secretkey) # 期货API self.okcoinFuture = OKCoinFuture(okcoinRESTURL, apikey, secretkey) self.depth = {} def getTicker(self, symbol): return self.okcoinSpot.ticker(symbol)['ticker'] def getDepth(self, symbol): while(1): sleep(0.5) try: depth = self.okcoinSpot.depth(symbol) except Exception: pass DEPTH[symbol] = {'sell':{'price':depth['asks'][-1][0], 'amount':depth['asks'][-1][1]}, 'buy':{'price':depth['bids'][0][0], 'amount':depth['bids'][0][1]}} print(symbol) print(DEPTH) # return {'sell':{'price':depth['asks'][-1][0], 'amount':depth['asks'][-1][1]}, # 'buy':{'price':depth['bids'][0][0], 'amount':depth['bids'][0][1]}} def getBalance(self): ''' :return: ''' self.balance = {} info = json.loads(self.okcoinSpot.userinfo()) for symbol in info['info']['funds']['free'].keys(): self.balance[symbol] = float(info['info']['funds']['free'][symbol]) def trade(self, symbol, type, price, amount): ''' :param symbol: :param type: :param price: :param amount: :return: order_id ''' if price != '': logging.info('[order]' + symbol + '|' + type+ '|' + str(price) + '|' + str(amount)) rsp = json.loads(self.okcoinSpot.trade(symbol, type, price, amount)) if 'error_code' in rsp: if str(rsp['error_code']) != '1003': logging.info('[trade error]' + str(rsp['error_code'])) return False if rsp['result']: return rsp['order_id'] def getOrderInfo(self, symbol, order_id): ''' :param symbol: :param order_id: :return: order_status: -1:已撤销 0:未成交 1:部分成交 2:完全成交 3:撤单处理中 ''' rsp = json.loads(self.okcoinSpot.orderinfo(symbol, order_id)) if 'error_code' in rsp: logging.info('[getOrderInfo error]' + str(rsp['error_code'])) return False if rsp['result']: return int(rsp['orders'][0]['status']) else: return False def toBtc(self): self.getBalance() for symbol in self.balance.keys(): if symbol != 'usdt' and symbol != 'btc' and symbol != 'mtl' and self.balance[symbol] != 0: # print(symbol) if self.balance[symbol] != 0: tradeSymbol = symbol + '_btc' self.trade(tradeSymbol, 'sell_market', '', self.balance[symbol]) def cancelOrder(self, symbol, order_id): ''' :param symbol: :param order_id: :return: True or False ''' rsp = json.loads(self.okcoinSpot.cancelOrder(symbol, order_id)) if 'error_code' in rsp: logging.info('[cancelOrder error]' + str(rsp['error_code'])) return False return rsp['result'] def good_trade(self, symbols, Threshold=1.02): ''' :param symbols: such as [btc, eth, mco] :return: ''' symbol_1 = symbols[1] + '_' + symbols[0] symbol_2 = symbols[2] + '_' + symbols[0] symbol_3 = symbols[2] + '_' + symbols[1] t1 = self.getTicker(symbol_1) t2 = self.getTicker(symbol_2) t3 = self.getTicker(symbol_3) # print ('=======================================') # temp = (float(t2['sell']) / float(t3['buy'])) a1 = (float(t2['sell']) / float(t3['buy'])) / float(t1['buy']) a2 = (float(t1['sell']) * float(t3['sell'])) / float(t2['buy']) if a1 < Threshold: traderSymbol = [symbol_2, symbol_3, symbol_1] logging.debug('=======================================') logging.debug(a1) logging.debug('[trader] ' + symbols[0] + '--->' + symbols[2] + '--->' + symbols[1] + '--->' + symbols[0]) logging.debug(t1) logging.debug(t2) logging.debug(t3) elif a2 < Threshold: traderSymbol = [symbol_1, symbol_3, symbol_2] logging.debug('=======================================') logging.debug(a2) logging.debug('[trader] ' + symbols[0] + '--->' + symbols[1] + '--->' + symbols[2] + '--->' + symbols[0]) logging.debug(t1) logging.debug(t2) logging.debug(t3) else: pass def tradePolicy(self, symbols, initAmount=0.005, Threshold=1.02): ''' :param symbols: such as [btc, eth, mco] :return: ''' retry = 3 symbol_1 = symbols[1] + '_' + symbols[0] symbol_2 = symbols[2] + '_' + symbols[0] symbol_3 = symbols[2] + '_' + symbols[1] t1 = self.getDepth(symbol_1) t2 = self.getDepth(symbol_2) t3 = self.getDepth(symbol_3) a1 = (float(t2['sell']['price']) / float(t3['buy']['price'])) / float(t1['buy']['price']) a2 = (float(t1['sell']['price']) * float(t3['sell']['price'])) / float(t2['buy']['price']) # logging.debug(t1) if a1 < Threshold: if float(t2['sell']['amount']) < amount[symbol_2] or float(t3['buy']['amount']) < amount[symbol_3] or\ float(t1['buy']['amount']) < amount[symbol_1]: return logging.info('=========================================================') logging.debug(a1) traderSymbol = [symbol_2, symbol_3, symbol_1] logging.debug('[trader] ' + symbols[0] + '--->' + symbols[2] + '--->' + symbols[1] + '--->' + symbols[0]) logging.debug(t1) logging.debug(t2) logging.debug(t3) #step1 logging.info('[step1]') self.getBalance() self.toBtc() logging.info('[Balance]') logging.info(self.balance) amount1 = round((initAmount * 0.999) / float(t2['sell']['price']), 8) for i in range(retry): logging.info('[order]' + symbol_2 + '|buy|' + str(float(t2['sell']['price'])) + '|' + str(amount1)) orderId = self.trade(symbol_2, 'buy', float(t2['sell']['price']), amount1) if orderId: break if orderId: logging.info('[orderId]' + str(orderId)) status = self.getOrderInfo(symbol_2, orderId) if status != 2: print(status) sleep(0.5) status = self.getOrderInfo(symbol_2, orderId) if status != 2: print(status) self.cancelOrder(symbol_2, orderId) logging.info('[cancelOrder!]') return else: logging.info('[order succssed!]') else: logging.info('[order succssed!]') else: logging.info('[order failed!]') return #step2 logging.info('[step2]') self.getBalance() logging.info('[Balance]') logging.info(self.balance) amount2 = self.balance[symbols[2]] for i in range(retry): logging.info('[order]' + symbol_3 + '|sell|' + str(float(t3['buy']['price'])) + '|' + str(amount2)) orderId = self.trade(symbol_3, 'sell', float(t3['buy']['price']), amount2) if orderId: break if orderId: logging.info('[orderId]' + str(orderId)) status = self.getOrderInfo(symbol_3, orderId) if status != 2: sleep(0.5) status = self.getOrderInfo(symbol_3, orderId) if status != 2: self.cancelOrder(symbol_3, orderId) logging.info('cancelOrder!') return else: logging.info('[order succssed!]') else: logging.info('[order succssed!]') else: logging.info('[order failed!]') return #step3 logging.info('[step3]') self.getBalance() logging.info('[Balance]') logging.info(self.balance) amount3 = self.balance[symbols[1]] for i in range(retry): logging.info('[order]' + symbol_1 + '|sell|' + str(float(t1['buy']['price'])) + '|' + str(amount3)) orderId = self.trade(symbol_1, 'sell', float(t1['buy']['price']), amount3) if orderId: break if orderId: logging.info('[orderId]' + str(orderId)) status = self.getOrderInfo(symbol_1, orderId) if status != 2: sleep(0.5) status = self.getOrderInfo(symbol_1, orderId) if status != 2: self.cancelOrder(symbol_1, orderId) logging.info('cancelOrder!') return else: logging.info('[order succssed!]') else: logging.info('[order succssed!]') else: logging.info('[order failed!]') return elif a2 < Threshold: if float(t2['buy']['amount']) < amount[symbol_2] or float(t3['sell']['amount']) < amount[symbol_3] or\ float(t1['sell']['amount']) < amount[symbol_1]: return logging.info('=========================================================') logging.debug(a2) traderSymbol = [symbol_1, symbol_3, symbol_2] logging.debug('[trader] ' + symbols[0] + '--->' + symbols[1] + '--->' + symbols[2] + '--->' + symbols[0]) logging.debug(t1) logging.debug(t2) logging.debug(t3) # step1 logging.info('[step1]') self.getBalance() self.toBtc() logging.info('[Balance]') logging.info(self.balance) amount1 = round((initAmount * 0.999) / float(t1['sell']['price']), 8) for i in range(retry): logging.info('[order]' + symbol_1 + '|buy|' + str(float(t1['sell']['price'])) + '|' + str(amount1)) orderId = self.trade(symbol_1, 'buy', float(t1['sell']['price']), amount1) if orderId: break if orderId: logging.info('[orderId]' + str(orderId)) status = self.getOrderInfo(symbol_1, orderId) if status != 2: sleep(0.5) status = self.getOrderInfo(symbol_1, orderId) if status != 2: self.cancelOrder(symbol_1, orderId) logging.info('cancelOrder!') return else: logging.info('[order succssed!]') else: logging.info('[order succssed!]') else: logging.info('[order failed!]') return # step2 logging.info('[step2]') self.getBalance() logging.info('[Balance]') logging.info(self.balance) amount2 = round((self.balance[symbols[1]] * 0.999) / float(t3['sell']['price']), 8) for i in range(retry): logging.info('[order]' + symbol_3 + '|buy|' + str(float(t3['sell']['price'])) + '|' + str(amount2)) orderId = self.trade(symbol_3, 'buy', float(t3['sell']['price']), amount2) if orderId: break if orderId: logging.info('[orderId]' + str(orderId)) status = self.getOrderInfo(symbol_3, orderId) if status != 2: sleep(0.5) status = self.getOrderInfo(symbol_3, orderId) if status != 2: self.cancelOrder(symbol_3, orderId) logging.info('cancelOrder!') return else: logging.info('[order succssed!]') else: logging.info('[order succssed!]') else: logging.info('[order failed!]') return # step3 logging.info('[step3]') self.getBalance() logging.info('[Balance]') logging.info(self.balance) amount3 = self.balance[symbols[2]] for i in range(retry): logging.info('[order]' + symbol_2 + '|sell|' + str(float(t2['buy']['price'])) + '|' + str(amount3)) orderId = self.trade(symbol_2, 'sell', float(t2['buy']['price']), amount3) if orderId: break if orderId: logging.info('[orderId]' + str(orderId)) status = self.getOrderInfo(symbol_2, orderId) if status != 2: sleep(0.5) status = self.getOrderInfo(symbol_2, orderId) if status != 2: self.cancelOrder(symbol_2, orderId) logging.info('cancelOrder!') return else: logging.info('[order succssed!]') else: logging.info('[order succssed!]') else: logging.info('[order failed!]') return else: pass def getCoinList(self, symbols): coinList = [] for k in permutations(symbols, 2): tmp = ['btc', k[0], 'eth', k[1]] coinList.append(tmp) return coinList def getTradeSymbol(self, coinlist): ts =[] for c in coinlist: s = ['_'.join((c[1], c[0])), '_'.join((c[1], c[2])), '_'.join((c[3], c[2])), '_'.join((c[3], c[0]))] ts.append(s) return ts def getTradeAmount(self, symbols): print(self.depth) for s in symbols: if s not in self.depth: return 0 print('getTrade:') print(symbols) ss = (self.depth[symbols[1]]['buy']['price'] * self.depth[symbols[3]]['buy']['price']) / (self.depth[symbols[0]]['sell']['price'] * self.depth[symbols[2]]['sell']['price']) if ss > 0.90: # logging.debug('profit: %f' % ss) # logging.debug(symbols) # logging.debug(self.depth[symbols[0]]) # logging.debug(self.depth[symbols[1]]) # logging.debug(self.depth[symbols[2]]) # logging.debug(self.depth[symbols[3]]) amount = [] amount.append(self.depth[symbols[0]]['sell']['price'] * min(self.depth[symbols[0]]['sell']['amount'],self.depth[symbols[1]]['buy']['amount'])) amount.append(self.depth[symbols[3]]['buy']['price'] * min(self.depth[symbols[3]]['buy']['amount'],self.depth[symbols[2]]['sell']['amount'])) amount.sort() logging.debug('amount: %f' % amount[0]) if amount[0] > 0.0001: logging.debug('profit: %f' % ss) logging.debug(symbols) logging.debug(self.depth[symbols[0]]) logging.debug(self.depth[symbols[1]]) logging.debug(self.depth[symbols[2]]) logging.debug(self.depth[symbols[3]]) return amount[0] else: return 0 def doTrade(self, symbols, amount): if self.balance['btc'] < amount * 0.9: initamount = self.balance['btc'] * 0.99 else: initamount = amount * 0.9 logging.debug('step1') amount1 = round(initamount / self.depth[symbols[0]]['sell']['price'], 8) orderId = self.trade(symbols[0], 'buy', self.depth[symbols[0]]['sell']['price'], amount1) if orderId: logging.info('[orderId]' + str(orderId)) status = self.getOrderInfo(symbols[0], orderId) if status != 2: sleep(0.5) status = self.getOrderInfo(symbols[0], orderId) if status != 2: self.cancelOrder(symbols[0], orderId) logging.info('cancelOrder!') return else: logging.info('[order succssed!]') else: logging.info('[order succssed!]') else: logging.info('[order failed!]') return logging.debug('step2') self.getBalance() logging.info('[Balance]') logging.info(self.balance) amount2 = self.balance[symbols[1].split('_')[0]] orderId = self.trade(symbols[1], 'sell', self.depth[symbols[1]]['buy']['price'], amount2) if orderId: logging.info('[orderId]' + str(orderId)) status = self.getOrderInfo(symbols[1], orderId) if status != 2: sleep(0.5) status = self.getOrderInfo(symbols[1], orderId) if status != 2: self.cancelOrder(symbols[1], orderId) logging.info('cancelOrder!') return else: logging.info('[order succssed!]') else: logging.info('[order succssed!]') else: logging.info('[order failed!]') return logging.debug('step3') self.getBalance() logging.info('[Balance]') logging.info(self.balance) amount3 = round((self.balance[symbols[2].split('_')[1]] / self.depth[symbols[2]]['sell']['price']) * 0.998, 8) orderId = self.trade(symbols[2], 'buy', self.depth[symbols[2]]['sell']['price'], amount3) if orderId: logging.info('[orderId]' + str(orderId)) status = self.getOrderInfo(symbols[2], orderId) if status != 2: sleep(0.5) status = self.getOrderInfo(symbols[2], orderId) if status != 2: self.cancelOrder(symbols[2], orderId) logging.info('cancelOrder!') return else: logging.info('[order succssed!]') else: logging.info('[order succssed!]') else: logging.info('[order failed!]') return logging.debug('step4') self.getBalance() logging.info('[Balance]') logging.info(self.balance) amount4 = self.balance[symbols[3].split('_')[0]] orderId = self.trade(symbols[3], 'sell', self.depth[symbols[3]]['buy']['price'], amount4) if orderId: logging.info('[orderId]' + str(orderId)) status = self.getOrderInfo(symbols[3], orderId) if status != 2: sleep(0.5) status = self.getOrderInfo(symbols[3], orderId) if status != 2: self.cancelOrder(symbols[3], orderId) logging.info('cancelOrder!') return else: logging.info('[order succssed!]') else: logging.info('[order succssed!]') else: logging.info('[order failed!]') return def policy(self, allsymbol): coins = self.getCoinList(allsymbol) tradesymbol = self.getTradeSymbol(coins) while(1): for symbols in tradesymbol: # print(symbols) # self.toBtc() a = self.getTradeAmount(symbols) sleep(0.5)
#!/usr/bin/python # -*- coding: utf-8 -*- # encoding: utf-8 #客户端调用,用于查看API返回结果 from OkcoinSpotAPI import OKCoinSpot from OkcoinFutureAPI import OKCoinFuture #初始化apikey,secretkey,url apikey = 'c6b8026e-a2ce-4a7b-8a3d-ca3d2c203dc8' secretkey = '44143FFE0E18B62DBA68134F1E425905' okcoinRESTURL = 'www.okcoin.cn' #请求注意:国内账号需要 修改为 www.okcoin.cn #现货API okcoinSpot = OKCoinSpot(okcoinRESTURL,apikey,secretkey) #期货API okcoinFuture = OKCoinFuture(okcoinRESTURL,apikey,secretkey) print (u' 现货行情 ') print (okcoinSpot.ticker('btc_cny')) # print (u' 现货深度 ') # print (okcoinSpot.depth('btc_cny')) #print (u' 现货历史交易信息 ') #print (okcoinSpot.trades()) print (u' 用户现货账户信息 ') print (okcoinSpot.userinfo())
#!/usr/bin/python # -*- coding: utf-8 -*- # encoding: utf-8 #客户端调用,用于查看API返回结果 from OkcoinSpotAPI import OKCoinSpot from OkcoinFutureAPI import OKCoinFuture #初始化apikey,secretkey,url apikey = '044f7c4e-02d9-422a-bf99-e7993d51400d' secretkey = '6332DBB3220E056A117AECAF5D2CC2A2' okcoinRESTURL = 'www.okcoin.com' #请求注意:国内账号需要 修改为 www.okcoin.cn #现货API okcoinSpot = OKCoinSpot(okcoinRESTURL, apikey, secretkey) #期货API okcoinFuture = OKCoinFuture(okcoinRESTURL, apikey, secretkey) print(u' 现货行情 ') print(okcoinSpot.ticker('btc_usd')) print(u' 现货深度 ') print(okcoinSpot.depth('btc_usd')) print('kline') print(okcoinSpot.kline('gsc_eth', '1min')) #print (u' 现货历史交易信息 ') #print (okcoinSpot.trades())
import time, ConfigParser from OkcoinSpotAPI import OKCoinSpot #from OkcoinFutureAPI import OKCoinFuture #初始化apikey,secretkey,url conf = ConfigParser.ConfigParser() conf.read('../key.conf') apikey = conf.get('account_01', 'apikey') secretkey = conf.get('account_01', 'seckey') #okcoinRESTURL = 'www.okcoin.com' #请求注意:国内账号需要 修改为 www.okcoin.cn okcoinRESTURL = 'www.okcoin.cn' #现货API okcoinSpot = OKCoinSpot(okcoinRESTURL,apikey,secretkey) #期货API #okcoinFuture = OKCoinFuture(okcoinRESTURL,apikey,secretkey) #print (u' 现货行情 ') #print (u' 现货深度 ') while(True): ticker = float(okcoinSpot.ticker('btc_cny')['ticker']['last']) depth = okcoinSpot.depth('btc_cny&size=200&merge=1') #ticker = (depth['asks'][-1][0] - depth['bids'][0][0]) / 2.0 + depth['bids'][0][0] asks_volume = 0 bids_volume = 0
#!/usr/bin/python # -*- coding: utf-8 -*- # encoding: utf-8 #客户端调用,用于查看API返回结果 from OkcoinSpotAPI import OKCoinSpot from OkcoinFutureAPI import OKCoinFuture from lamda import * #初始化apikey,secretkey,url apikey = AK secretkey = AS okcoinRESTURL = 'www.okcoin.com' #请求注意:国内账号需要 修改为 www.okcoin.cn #现货API okcoinSpot = OKCoinSpot(okcoinRESTURL,apikey,secretkey) #期货API okcoinFuture = OKCoinFuture(okcoinRESTURL,apikey,secretkey) print (u' 现货行情 ') print (okcoinSpot.ticker('btc_usd')) print (u' 现货深度 ') print (okcoinSpot.depth('btc_usd')) #print (u' 现货历史交易信息 ') #print (okcoinSpot.trades()) #print (u' 用户现货账户信息 ') #print (okcoinSpot.userinfo())
import pandas as pd # 初始化apikey,secretkey,url fileName = 'key.json' path = os.path.abspath(os.path.dirname(__file__)) fileName = os.path.join(path, fileName) # 解析json文件 with open(fileName) as data_file: setting = json.load(data_file) data_file.close() apikey = str(setting['apiKey']) secretkey = str(setting['secretKey']) okcoinRESTURL = 'www.okex.com' # 现货API okcoinSpot = OKCoinSpot(okcoinRESTURL, apikey, secretkey) # 期货API okcoinFuture = OKCoinFuture(okcoinRESTURL, apikey, secretkey) spotinfo = okcoinSpot.userinfo() spotinfo = json.loads(spotinfo) freeamount = 0 freezedamount = 0 if spotinfo['result']: freeinfo = spotinfo['info']['funds']['free'] freezedinfo = spotinfo['info']['funds']['freezed'] for symbol in freeinfo: if float(freeinfo[symbol]) != 0: if symbol == 'btc': quote = 1.0
Names = [info['currency'] for info in baseInfo] marketLength = len(baseInfo) Balances = [0.0 for i in range(marketLength)] buyOrders = [[] for i in range(marketLength)] sellOrders = [[] for i in range(marketLength)] #初始化apikey,secretkey,url config = open('.config','r') lines = config.readlines() apikey = lines[0].strip() secretkey = lines[1].strip() config.close() okcoinRESTURL = 'www.okcoin.cn' #请求注意:国内账号需要 修改为 www.okcoin.cn okcoinSpot = OKCoinSpot(okcoinRESTURL,apikey,secretkey) flagShow = True def checkMyOrders(index, orders, targetOrders, Type): temp = [order for order in targetOrders] uselessOrdersID = [] for order in orders: seq = order[0] myPrice = order[1] myIOUAmount = order[2] flagUseless = True for target in temp: price = target[0] amount = target[1] if (abs(myPrice/price - 1) < 0.0001) and (abs(myIOUAmount/amount - 1) < 0.1) : temp.remove(target)
# encoding: utf-8 #客户端调用,用于查看API返回结果 from OkcoinSpotAPI import OKCoinSpot from OkcoinFutureAPI import OKCoinFuture #初始化apikey,secretkey,url #apikey = 'd8da16f9-a531-4853-b9ee-ab07927c4fef' #secretkey = '4752BE55655A6233A7254628FB7E9F50' #okcoinRESTURL = 'www.okcoin.com' #请求注意:国内账号需要 修改为 www.okcoin.cn apikey = 'fd07e7f8-519a-4ba3-8289-af9881181a96' secretkey = 'E0EACE4FB14A8CBDFE271E87D6FA2B6C' okcoinRESTURL = 'www.okcoin.cn' #现货API okcoinSpot = OKCoinSpot(okcoinRESTURL,apikey,secretkey) #期货API okcoinFuture = OKCoinFuture(okcoinRESTURL,apikey,secretkey) #print (u'K线信息') print (okcoinSpot.kline('btc_cny')) #print (u' 现货行情 ') #print (okcoinSpot.ticker('btc_usd')) #print (u' 现货深度 ') #print (okcoinSpot.depth('btc_usd')) #print (u' 现货历史交易信息 ') #print (okcoinSpot.trades())
import ssl import csv import datetime import time from multiprocessing import Pool from SaveMysql import updateMysql,insertMysql ssl._create_default_https_context = ssl._create_unverified_context #初始化apikey,secretkey,url apikey = 'a5f678c4-c234-4a17-a21a-ed218b6c7f51' secretkey = '5BE848BE3E6C300292F1F06C9DA00180' okcoinRESTURL = 'www.okex.com' #请求注意:国内账号需要 修改为 www.okcoin.cn #现货API okcoinSpot = OKCoinSpot(okcoinRESTURL,apikey,secretkey) #期货API okcoinFuture = OKCoinFuture(okcoinRESTURL,apikey,secretkey) #print (u' 现货行情 ') #print (okcoinSpot.ticker('btc_usd')) #print (u' 现货深度 ') #print (okcoinSpot.depth('btc_usd')) eos_eth = okcoinSpot.depth('eos_eth') print('asks') print (eos_eth['asks']) print('bids') print (eos_eth['bids'])
#!/usr/bin/python # -*- coding: utf-8 -*- # encoding: utf-8 #客户端调用,用于查看API返回结果 from OkcoinSpotAPI import OKCoinSpot from OkcoinFutureAPI import OKCoinFuture #初始化apikey,secretkey,url apikey = 'XXXXX' secretkey = 'XXXXXXXXXXXXXXXXXXXXXXX' okcoinRESTURL = 'www.okcoin.com' #请求注意:国际账号需要 修改为 www.okcoin.com 国内站账号需要修改为www.okcoin.cn #现货API okcoinSpot = OKCoinSpot(okcoinRESTURL,apikey,secretkey) #期货API okcoinFuture = OKCoinFuture(okcoinRESTURL,apikey,secretkey) print u' 现货行情 ' print okcoinSpot.ticker('btc_usd') print u' 现货深度 ' print okcoinSpot.depth('btc_usd') print u' 现货历史交易信息 ' print okcoinSpot.trades() print u' 用户现货账户信息 ' print okcoinSpot.userinfo()
'sell', 'coin_vol', 'day_low', 'unit_amount' ] # create tempdata # tempdata = pd.DataFrame(columns=column) conn = mysql.connector.connect(user='******', password='******', database='btc', use_unicode=True) yconnect = create_engine( 'mysql://*****:*****@localhost:3306/btc?charset=utf8') print('database has connected') #set ssl config 总是报SSL错误,没办法只能加上下面这句,不验证SSL了。 ssl._create_default_https_context = ssl._create_unverified_context #现货API okcoinSpot = OKCoinSpot(okcoinRESTURL, apikey, secretkey) #期货API okcoinFuture = OKCoinFuture(okcoinRESTURL, apikey, secretkey) print('start to request') def job(): zr_mk_qian = okcoinFuture.future_ticker('btc_usd', 'this_week') # print(zr_mk_qian) tempdata = pd.DataFrame( [[zr_mk_qian['date']] + list(zr_mk_qian['ticker'].values())], columns=column) cursor = conn.cursor() # tempdata = [zr_mk_qian['date']] + list(zr_mk_qian['ticker'].values()) # print(len(tempdata)) # cursor.execute("insert into btc_future_thisweek VALUES ([zr_mk_qian['date']] + list(zr_mk_qian['ticker'].values()))")
#!/usr/bin/python # -*- coding: utf-8 -*- # encoding: utf-8 #客户端调用,用于查看API返回结果 from OkcoinSpotAPI import OKCoinSpot from OkcoinFutureAPI import OKCoinFuture #初始化apikey,secretkey,url okcoinRESTURL = 'www.okcoin.com' #请求注意:国内账号需要 修改为 www.okcoin.cn #现货API okcoinSpot = OKCoinSpot(okcoinRESTURL, apikey, secretkey) #期货API okcoinFuture = OKCoinFuture(okcoinRESTURL, apikey, secretkey) print(u' 现货行情 ') print(okcoinSpot.ticker('btc_usd')) print(u' 现货k线历史行情 ') print(okcoinSpot.kline('btc_usd', '30min', '2000')) #print (u' 现货深度 ') #print (okcoinSpot.depth('btc_usd')) #print (u' 现货历史交易信息 ') #print (okcoinSpot.trades()) #print (u' 用户现货账户信息 ') #print (okcoinSpot.userinfo())