示例#1
0
文件: xiaobai.py 项目: phonen/xiaobai
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
示例#2
0
 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'])
示例#3
0
文件: test.py 项目: ElevenL/rest
    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 = {}
示例#4
0
    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)
示例#5
0
    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"])
示例#6
0
    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"])
示例#7
0
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
示例#8
0
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
示例#9
0
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
示例#10
0
#!/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

示例#11
0
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,
示例#12
0
#!/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())
示例#13
0
# -*- 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)
示例#14
0
'''
#!/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))
示例#15
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'))
示例#16
0
"""
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())
示例#17
0
# 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())
示例#18
0
文件: Client.py 项目: jiaxiaolei/rest
#客户端调用,用于查看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())
示例#19
0
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()
示例#20
0
# -*- 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')
示例#21
0
#!/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())
示例#22
0
# 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:
示例#23
0
#!/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()
示例#24
0
# -*- 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()
示例#25
0
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)  #行情
示例#26
0
@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'
示例#27
0
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
示例#28
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
示例#29
0
# 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' 用户现货账户信息 ')
示例#30
0
# 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)
示例#31
0
文件: test.py 项目: ElevenL/rest
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)
示例#32
0
文件: Client.py 项目: zmxreal/Explore
#!/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())
 
示例#33
0
#!/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())
示例#34
0
文件: Client.py 项目: binbinxm/rest
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
示例#35
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())
示例#36
0
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
示例#37
0
文件: marketMaker.py 项目: Max-sky/ok
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)
示例#38
0
文件: Client.py 项目: nkwilson/rest
# 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())
示例#39
0
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'])
示例#40
0
文件: Client.py 项目: citysir/fundc
#!/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()
示例#41
0
    '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()))")
示例#42
0
文件: Client.py 项目: Yepman0620/okok
#!/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())