Ejemplo n.º 1
0
    def api_get(self, method, params={}):
        # 现货API
        if self.account:
            apikey, secretkey = get_account_key("okex", self.account)
        okcoinSpot = OKCoinFuture(okcoinRESTURL, apikey, secretkey)
        if method == "future_userinfo_4fix":
            api_do = "okcoinSpot.%s()" % (method)
            return eval(api_do)

        elif method == "future_position_4fix":
            return okcoinSpot.future_position_4fix(params["symbol"],
                                                   params["contractType"],
                                                   params["type"])

        elif method == "trade":
            return okcoinSpot.future_trade(params["symbol"],
                                           params["contractType"],
                                           params["price"], params["amount"],
                                           params["type"],
                                           params["match_price"],
                                           params["lever_rate"])

        elif method == "ticker":
            return okcoinSpot.future_ticker(params["symbol"],
                                            params["contractType"])

        elif method == "order_info":
            return okcoinSpot.future_orderinfo(params["symbol"],
                                               params["contractType"],
                                               params["id"])

        elif method == "cancelOrder":
            return okcoinSpot.future_cancel(params["symbol"],
                                            params["contractType"],
                                            params["id"])
Ejemplo n.º 2
0
class TradeTool(object):
    """docstring for ClassName"""
    def __init__(self):
        self.okcoinFuture = OKCoinFuture(okcoinRESTURL, apikey, secretkey)
        self.depthSells = []
        self.depthBuys = []

    def getDepth(self):
        turl = 'https://www.okex.com/api/v1/future_depth.do?symbol=ltc_usd&contract_type=quarter&size=20'
        data = urltool.getUrl(turl)
        ddic = json.loads(data)
        buys = ddic['bids']
        sells = ddic['asks']
        return buys, sells

    #1:开多   2:开空   3:平多   4:平空
    def openShort(self, pprice, pamount):

        print('期货开空')
        print time.ctime()
        print self.okcoinFuture.future_trade('ltc_usd', 'quarter', str(pprice),
                                             str(pamount), '2', '0', '10')

    def closeShort(self, pprice, pamount):
        print('期货平空')
        print time.ctime()
        print self.okcoinFuture.future_trade('ltc_usd', 'quarter', str(pprice),
                                             str(pamount), '4', '0', '10')

    def openLong(self, pprice, pamount):
        print('期货开多')
        print time.ctime()
        print self.okcoinFuture.future_trade('ltc_usd', 'quarter', str(pprice),
                                             str(pamount), '1', '0', '10')

    def closeLong(self, pprice, pamount):

        print('期货平多')
        print self.okcoinFuture.future_trade('ltc_usd', 'quarter', str(pprice),
                                             str(pamount), '3', '0', '10')
Ejemplo n.º 3
0
from OkcoinSpotAPI import OKCoinSpot
from OkcoinFutureAPI import OKCoinFuture
from HttpMD5Util import *

#初始化apikey,secretkey,url
apikey = '4b36c965-a577-497a-a216-665cedd68655'
secretkey = 'D0AB97E9CFE3F57131162952CE368191'
okcoinRESTURL = 'www.okex.com'   #请求注意:国内账号需要 修改为 www.okcoin.cn

#现货API
okcoinSpot = OKCoinSpot(okcoinRESTURL,apikey,secretkey)

#期货API
okcoinFuture = OKCoinFuture(okcoinRESTURL,apikey,secretkey)
okcoinFuture.future_trade(symbol='eos_usd',contractType='next_week',price=str(json_eos_next_week['asks'][0][0]), amount='1',tradeType='1',matchPrice='0',leverRate='')
params = {'api_key': '4b36c965-a577-497a-a216-665cedd68655', 'amount': '1', 'symbol': 'btc_usd'}
params['sign'] = buildMySign(params,secretkey)
okcoinFuture.futureFundTransfer('btc_usd','1', '1')
okcoinFuture.futureFundTransfer('eos_usd','1', '4.98997989')
param = 'symbol=eos_usdt&contract_type=quarter'
httpGet("www.okex.com", "/api/v1/future_hold_amount.do", param)

okcoinFuture.future_position_4fix('eos_usd','next_week','1')
def getAmount(amountJson):
    if amountJson['holding'] == []:
        return 0.
    else:
        return amountJson['holding']['buy_amount']
Ejemplo n.º 4
0
                        operateDirection = 'rise'

                        # 根据当前ATR,计算底仓开单币数
                        operatePrice = sellPrice * (1 + slideProtect)
                        useCoin = min((restCoin * operatePrice * eachLossMax) /
                                      (atrNow * leverRate),
                                      addPositionStop * restCoin)
                        useLeverCoin = useCoin * leverRate

                        useAmount = int(
                            (useLeverCoin * sellPrice) / contractValue)

                        if useAmount >= 1:
                            try:
                                x = okcoinFuture.future_trade(
                                    tradePair, tradeCycle, str(operatePrice),
                                    str(useAmount), '1', '0', '20')
                            except:
                                restart_program()

                            print(
                                time.strftime('%m-%d %H:%M:%S',
                                              time.localtime(time.time())))
                            # print(x)

                            # orderId = json.loads(x)['order_id']
                            print(i, 'Bull contract Done ')
                            print(
                                "==== | BullPrice:{} | UseCoin:{} | RestCoin:{} |"
                                .format(round(operatePrice, 2), useCoin,
                                        restCoin))
Ejemplo n.º 5
0
print okcoinFuture.future_index('ltc_usd')

print u'美元人民币汇率'
print okcoinFuture.exchange_rate()

print u'获取预估交割价' 
print okcoinFuture.future_estimated_price('ltc_usd')

print u'获取全仓账户信息'
print okcoinFuture.future_userinfo()

print u'获取全仓持仓信息'
print okcoinFuture.future_position('ltc_usd','this_week')

print u'期货下单'
print okcoinFuture.future_trade('ltc_usd','this_week','0.1','1','1','0','20')

print u'期货批量下单'
print okcoinFuture.future_batchTrade('ltc_usd','this_week','[{price:0.1,amount:1,type:1,match_price:0},{price:0.1,amount:3,type:1,match_price:0}]','20')

print u'期货取消订单'
print okcoinFuture.future_cancel('ltc_usd','this_week','47231499')

print u'期货获取订单信息'
print okcoinFuture.future_orderinfo('ltc_usd','this_week','47231812','0','1','2')

print u'期货逐仓账户信息'
print okcoinFuture.future_userinfo_4fix()

print u'期货逐仓持仓信息'
print okcoinFuture.future_position_4fix('ltc_usd','this_week',1)
Ejemplo n.º 6
0
     #多头
     if buy_amount > 0:
         order = orders[0]
         buy_price_avg = order['price']
         buy_available = holdingItem['buy_available']
         units = buy_available / position
         NEXT_PRICE = round((buy_price_avg + LAST_ATR * 0.5))
         print(u'多头出场平多价格:')
         print(OUT_PRICE)
         # print(units)
         #止损价格
         if curry_price < OUT_PRICE:
             print(u'当前价格低于止损价格,止损多头.')
             print(
                 okcoinFuture.future_trade('btc_usd', contract_type,
                                           curry_price, buy_available,
                                           '3', '1', '20'))
             entry_atr = 0
             pass
         elif units < 4:
             print(u'多头下次加码价格:')
             print(NEXT_PRICE)
             if curry_price > NEXT_PRICE:
                 print(
                     okcoinFuture.future_trade('btc_usd', contract_type,
                                               curry_price, position,
                                               '1', '1', '20'))
                 pass
             pass
     # 空头
 #     if sell_amount > 0:
Ejemplo n.º 7
0
#print (okcoinFuture.future_index('ltc_usd'))

#print (u'美元人民币汇率')
#print (okcoinFuture.exchange_rate())

#print (u'获取预估交割价') 
#print (okcoinFuture.future_estimated_price('ltc_usd'))

#print (u'获取全仓账户信息')
print (okcoinFuture.future_userinfo())

#print (u'获取全仓持仓信息')
print (okcoinFuture.future_position('ltc_usd','quarter'))

#print (u'期货下单')
print (okcoinFuture.future_trade('ltc_usd','quarter','40.00','1','1','0','10'))
# amount:合约张数
# price:美元计价
print (okcoinFuture.future_trade(symbol='ltc_usd',contractType='quarter',
 price='40',amount='1',tradeType='1',matchPrice='0',leverRate='10'))
#print (u'期货批量下单')
#print (okcoinFuture.future_batchTrade('ltc_usd','this_week','[{price:0.1,amount:1,type:1,match_price:0},{price:0.1,amount:3,type:1,match_price:0}]','20'))

#print (u'期货取消订单')
print (okcoinFuture.future_cancel('ltc_usd','quarter','6896600986'))

#print (u'期货获取订单信息')
print (okcoinFuture.future_orderinfo('ltc_usd','quarter','6896592048','0','1','2'))
(symbol,contractType,orderId,status,currentPage,pageLength):

print (okcoinFuture.future_orderinfo('ltc_usd','quarter',