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) ########################
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。