python做量化投资系列之比特币初始配置
本文实例为大家分享了python比特币初始配置的具体代码,供大家参考,具体内容如下
#-*-coding:utf-8-*-
"""
CreatedonFriJan1310:36:192017
@author:yunjinqi
E-mail:yunjinqi@qq.com
Differentiateyourselfintheworldfromanyoneelse.
"""
#用于访问OKCOIN现货RESTAPI
#####################################################
importhttp.client
importurllib
importjson
importhashlib
importtime
defbuildMySign(params,secretKey):
sign=''
forkeyinsorted(params.keys()):
sign+=key+'='+str(params[key])+'&'
data=sign+'secret_key='+secretKey
returnhashlib.md5(data.encode("utf8")).hexdigest().upper()
defhttpGet(url,resource,params=''):
conn=http.client.HTTPSConnection(url,timeout=10)
conn.request("GET",resource+'?'+params)
#print(resource+'?'+params)
response=conn.getresponse()
data=response.read().decode('utf8')
returnjson.loads(data)
defhttpPost(url,resource,params):
headers={
"Content-type":"application/x-www-form-urlencoded"
}
conn=http.client.HTTPSConnection(url,timeout=10)
temp_params=urllib.parse.urlencode(params)
#print("https://"+url+resource+"?"+str(temp_params))
conn.request("POST",resource,temp_params,headers)
response=conn.getresponse()
data=response.read().decode('utf-8')
params.clear()
conn.close()
returndata
#####################################################
importurllib
classOKCoinSpot:
def__init__(self,url,apikey,secretkey):
self.__url=url
self.__apikey=apikey
self.__secretkey=secretkey
print(self.__secretkey)
#获取OKCOIN现货行情信息
defticker(self,symbol=''):
TICKER_RESOURCE="/api/v1/ticker.do"
params=''
ifsymbol:
params='symbol=%(symbol)s'%{'symbol':symbol}
returnhttpGet(self.__url,TICKER_RESOURCE,params)
#获取OKCOIN现货市场深度信息
defdepth(self,symbol=''):
DEPTH_RESOURCE="/api/v1/depth.do"
params=''
ifsymbol:
params='symbol=%(symbol)s'%{'symbol':symbol}
returnhttpGet(self.__url,DEPTH_RESOURCE,params)
#获取OKCOIN现货历史交易信息
deftrades(self,symbol=''):
TRADES_RESOURCE="/api/v1/trades.do"
params=''
ifsymbol:
params='symbol=%(symbol)s'%{'symbol':symbol}
returnhttpGet(self.__url,TRADES_RESOURCE,params)
#获取用户现货账户信息
defuserinfo(self):
USERINFO_RESOURCE="/api/v1/userinfo.do"
params={}
params['api_key']=self.__apikey
params['sign']=buildMySign(params,self.__secretkey)
returnhttpPost(self.__url,USERINFO_RESOURCE,params)
#现货交易
deftrade(self,symbol,tradeType,price='',amount=''):
TRADE_RESOURCE="/api/v1/trade.do"
params={
'api_key':self.__apikey,
'symbol':symbol,
'type':tradeType
}
ifprice:
params['price']=price
ifamount:
params['amount']=amount
params['sign']=buildMySign(params,self.__secretkey)
returnhttpPost(self.__url,TRADE_RESOURCE,params)
#现货批量下单
defbatchTrade(self,symbol,tradeType,orders_data):
BATCH_TRADE_RESOURCE="/api/v1/batch_trade.do"
params={
'api_key':self.__apikey,
'symbol':symbol,
'type':tradeType,
'orders_data':orders_data
}
params['sign']=buildMySign(params,self.__secretkey)
returnhttpPost(self.__url,BATCH_TRADE_RESOURCE,params)
#现货取消订单
defcancelOrder(self,symbol,orderId):
CANCEL_ORDER_RESOURCE="/api/v1/cancel_order.do"
params={
'api_key':self.__apikey,
'symbol':symbol,
'order_id':orderId
}
params['sign']=buildMySign(params,self.__secretkey)
returnhttpPost(self.__url,CANCEL_ORDER_RESOURCE,params)
#现货订单信息查询
deforderinfo(self,symbol,orderId):
ORDER_INFO_RESOURCE="/api/v1/order_info.do"
params={
'api_key':self.__apikey,
'symbol':symbol,
'order_id':orderId
}
params['sign']=buildMySign(params,self.__secretkey)
returnhttpPost(self.__url,ORDER_INFO_RESOURCE,params)
#现货批量订单信息查询
defordersinfo(self,symbol,orderId,tradeType):
ORDERS_INFO_RESOURCE="/api/v1/orders_info.do"
params={
'api_key':self.__apikey,
'symbol':symbol,
'order_id':orderId,
'type':tradeType
}
params['sign']=buildMySign(params,self.__secretkey)
returnhttpPost(self.__url,ORDERS_INFO_RESOURCE,params)
#现货获得历史订单信息
deforderHistory(self,symbol,status,currentPage,pageLength):
ORDER_HISTORY_RESOURCE="/api/v1/order_history.do"
params={
'api_key':self.__apikey,
'symbol':symbol,
'status':status,
'current_page':currentPage,
'page_length':pageLength
}
params['sign']=buildMySign(params,self.__secretkey)
returnhttpPost(self.__url,ORDER_HISTORY_RESOURCE,params)
defgetKline(self,duration,size,since):
kline_resourse="https://www.okcoin.cn/api/v1/kline.do"
params={
#'api_key':self.__apikey,
'symbol':"btc_cny",
'type':duration,
'size':size,
'since':since
}
temp_params=urllib.parse.urlencode(params)
#print(temp_params)
returnhttpGet(self.__url,kline_resourse,temp_params)
########################################################
#!/usr/bin/python
#-*-coding:utf-8-*-
#用于访问OKCOIN期货RESTAPI
importurllib
classOKCoinFuture:
def__init__(self,url,apikey,secretkey):
self.__url=url
self.__apikey=apikey
self.__secretkey=secretkey
#OKCOIN期货行情信息
deffuture_ticker(self,symbol,contractType):
FUTURE_TICKER_RESOURCE="/api/v1/future_ticker.do"
params=''
ifsymbol:
params+='&symbol='+symbolifparamselse'symbol='+symbol
ifcontractType:
params+='&contract_type='+contractTypeifparamselse'contract_type='+symbol
returnhttpGet(self.__url,FUTURE_TICKER_RESOURCE,params)
#OKCoin期货市场深度信息
deffuture_depth(self,symbol,contractType,size):
FUTURE_DEPTH_RESOURCE="/api/v1/future_depth.do"
params=''
ifsymbol:
params+='&symbol='+symbolifparamselse'symbol='+symbol
ifcontractType:
params+='&contract_type='+contractTypeifparamselse'contract_type='+symbol
ifsize:
params+='&size='+sizeifparamselse'size='+size
returnhttpGet(self.__url,FUTURE_DEPTH_RESOURCE,params)
#OKCoin期货交易记录信息
deffuture_trades(self,symbol,contractType):
FUTURE_TRADES_RESOURCE="/api/v1/future_trades.do"
params=''
ifsymbol:
params+='&symbol='+symbolifparamselse'symbol='+symbol
ifcontractType:
params+='&contract_type='+contractTypeifparamselse'contract_type='+symbol
returnhttpGet(self.__url,FUTURE_TRADES_RESOURCE,params)
#OKCoin期货指数
deffuture_index(self,symbol):
FUTURE_INDEX="/api/v1/future_index.do"
params=''
ifsymbol:
params='symbol='+symbol
returnhttpGet(self.__url,FUTURE_INDEX,params)
#获取美元人民币汇率
defexchange_rate(self):
EXCHANGE_RATE="/api/v1/exchange_rate.do"
returnhttpGet(self.__url,EXCHANGE_RATE,'')
#获取预估交割价
deffuture_estimated_price(self,symbol):
FUTURE_ESTIMATED_PRICE="/api/v1/future_estimated_price.do"
params=''
ifsymbol:
params='symbol='+symbol
returnhttpGet(self.__url,FUTURE_ESTIMATED_PRICE,params)
#期货全仓账户信息
deffuture_userinfo(self):
FUTURE_USERINFO="/api/v1/future_userinfo.do?"
params={}
params['api_key']=self.__apikey
params['sign']=buildMySign(params,self.__secretkey)
returnhttpPost(self.__url,FUTURE_USERINFO,params)
#期货全仓持仓信息
deffuture_position(self,symbol,contractType):
FUTURE_POSITION="/api/v1/future_position.do?"
params={
'api_key':self.__apikey,
'symbol':symbol,
'contract_type':contractType
}
params['sign']=buildMySign(params,self.__secretkey)
returnhttpPost(self.__url,FUTURE_POSITION,params)
#期货下单
deffuture_trade(self,symbol,contractType,price='',amount='',tradeType='',matchPrice='',leverRate=''):
FUTURE_TRADE="/api/v1/future_trade.do?"
params={
'api_key':self.__apikey,
'symbol':symbol,
'contract_type':contractType,
'amount':amount,
'type':tradeType,
'match_price':matchPrice,
'lever_rate':leverRate
}
ifprice:
params['price']=price
params['sign']=buildMySign(params,self.__secretkey)
returnhttpPost(self.__url,FUTURE_TRADE,params)
#期货批量下单
deffuture_batchTrade(self,symbol,contractType,orders_data,leverRate):
FUTURE_BATCH_TRADE="/api/v1/future_batch_trade.do?"
params={
'api_key':self.__apikey,
'symbol':symbol,
'contract_type':contractType,
'orders_data':orders_data,
'lever_rate':leverRate
}
params['sign']=buildMySign(params,self.__secretkey)
returnhttpPost(self.__url,FUTURE_BATCH_TRADE,params)
#期货取消订单
deffuture_cancel(self,symbol,contractType,orderId):
FUTURE_CANCEL="/api/v1/future_cancel.do?"
params={
'api_key':self.__apikey,
'symbol':symbol,
'contract_type':contractType,
'order_id':orderId
}
params['sign']=buildMySign(params,self.__secretkey)
returnhttpPost(self.__url,FUTURE_CANCEL,params)
#期货获取订单信息
deffuture_orderinfo(self,symbol,contractType,orderId,status,currentPage,pageLength):
FUTURE_ORDERINFO="/api/v1/future_order_info.do?"
params={
'api_key':self.__apikey,
'symbol':symbol,
'contract_type':contractType,
'order_id':orderId,
'status':status,
'current_page':currentPage,
'page_length':pageLength
}
params['sign']=buildMySign(params,self.__secretkey)
returnhttpPost(self.__url,FUTURE_ORDERINFO,params)
#期货逐仓账户信息
deffuture_userinfo_4fix(self):
FUTURE_INFO_4FIX="/api/v1/future_userinfo_4fix.do?"
params={'api_key':self.__apikey}
params['sign']=buildMySign(params,self.__secretkey)
returnhttpPost(self.__url,FUTURE_INFO_4FIX,params)
#期货逐仓持仓信息
deffuture_position_4fix(self,symbol,contractType,type1):
FUTURE_POSITION_4FIX="/api/v1/future_position_4fix.do?"
params={
'api_key':self.__apikey,
'symbol':symbol,
'contract_type':contractType,
'type':type1
}
params['sign']=buildMySign(params,self.__secretkey)
returnhttpPost(self.__url,FUTURE_POSITION_4FIX,params)
defgetKline(self,duration,size,since):
kline_resourse="https://www.okcoin.com/api/v1/future_kline.do?"
params={
#'api_key':self.__apikey,
'symbol':"btc_usd",
'type':duration,
'contract_type':"quarter",
'size':size,
'since':since
}
temp_params=urllib.parse.urlencode(params)
returnhttpGet(self.__url,kline_resourse,temp_params)
#returnhttpPost(self.__url,kline_resourse,params)
#temp_params=urllib.parse.urlencode(params)
#print(temp_params)
#returnhttpGet(self.__url,kline_resourse,temp_params)
########################
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。