适合人群
- 已经学过python基础的
- 在学python编程,想找一个实战练习,检验自己的
- 对区块链,比特币有学习兴趣的
- 自学能力强
注意事项
- 不要直接抄代码,请自己按思路编写
- 给自己设定比文章难一点点的额外任务,来点小刺激
参考资料
原始链接¶
https://blog.csdn.net/weixin_37272286/article/details/78032131
- okcoin
- huobi
- https://www.okcoin.cn/rest_api.html
- https://github.com/huobiapi/API_Docs/wiki/REST-Interval
交易所概念
http://baijiahao.baidu.com/s?id=1579175614310713604&wfr=spider&for=pc
值得注意的是,比特币在国内外各家交易所的价格都不相同,这就诞生了一门新的生意——“搬砖”。所谓比特币搬砖,就是把比特币在不同交易所之间腾挪,赚取差价套利
比特币交易所停运对于海外的比特币衍生品也是利好。注册在塞舌尔群岛,美国运营的一家比特币商品交易所BitMEX相关人士对澎湃新闻表示,每次中国央行加强监管,他们平台的交易量就会暴涨,究其原因,是因为中国有些比特币持有者不愿意抛掉手中的币,选择观望,但是也不甘心贬值,所以会选择与美股挂钩的衍生品工具来对冲风险
下一步计划
做自动交易(量化交易基础)
怎么读取交易所行情
# Request
GET https://www.okcoin.cn/api/v1/ticker.do?symbol=ltc_cny
# Response
{
"date":"1410431279",
"ticker":{
"buy":"33.15",
"high":"34.15",
"last":"33.15",
"low":"32.05",
"sell":"33.16",
"vol":"10532696.39199642"
}
}
请自己用浏览器,Json.cn, 或shell用curl命令体验一下
以下是代码实现
import json
import time
import pandas as pd
import math
import matplotlib.pyplot as plt
def ticker(bit) :
try:
ret = requests.get("https://www.okcoin.cn/api/v1/ticker.do?symbol=" + bit)
ret.text
d = json.loads(ret.text)
print(d)
except :
print('error')
for i in range(10):
ticker('btc_cny')
time.sleep(1)
{'date': '1533278866', 'ticker': {'high': '40303.0', 'vol': '1.626', 'last': '40303.0', 'low': '40303.0', 'buy': '40102.0', 'sell': '40303.0'}}
{'date': '1533278868', 'ticker': {'high': '40303.0', 'vol': '1.626', 'last': '40303.0', 'low': '40303.0', 'buy': '40102.0', 'sell': '40303.0'}}
{'date': '1533278869', 'ticker': {'high': '40303.0', 'vol': '1.626', 'last': '40303.0', 'low': '40303.0', 'buy': '40102.0', 'sell': '40303.0'}}
{'date': '1533278871', 'ticker': {'high': '40303.0', 'vol': '1.626', 'last': '40303.0', 'low': '40303.0', 'buy': '40102.0', 'sell': '40303.0'}}
{'date': '1533278872', 'ticker': {'high': '40303.0', 'vol': '1.626', 'last': '40303.0', 'low': '40303.0', 'buy': '40102.0', 'sell': '40303.0'}}
{'date': '1533278873', 'ticker': {'high': '40303.0', 'vol': '1.626', 'last': '40303.0', 'low': '40303.0', 'buy': '40102.0', 'sell': '40303.0'}}
{'date': '1533278875', 'ticker': {'high': '40303.0', 'vol': '1.626', 'last': '40303.0', 'low': '40303.0', 'buy': '40102.0', 'sell': '40303.0'}}
{'date': '1533278877', 'ticker': {'high': '40303.0', 'vol': '1.626', 'last': '40303.0', 'low': '40303.0', 'buy': '40102.0', 'sell': '40303.0'}}
{'date': '1533278878', 'ticker': {'high': '40303.0', 'vol': '1.626', 'last': '40303.0', 'low': '40303.0', 'buy': '40102.0', 'sell': '40303.0'}}
#找了半天,找了这个api.hpx.com 接口获取k线数据
ret = requests.get("https://api.hpx.com/data/v2/kline?currency=btc_cnyt")
d = json.loads(ret.text)
kline = d['data']['data']
kline = pd.DataFrame(kline)
kline[0] = kline[0] // 1000
kline[0]
kline[0] = pd.to_datetime(kline[0],unit='s')
x = kline[0]
y = kline[1]
#x,y
plt.plot(x, y)
plt.show()
image.png
遇到的坑总结
- 获取OKCoin行情,获取OKCoin交易信息(60条),获取OKCoin的K线数据 应该选哪个接口
- python对json的处理,需学习
- okcoin.cn k线数据已经为空了!火币也没了!!
- python 整数除法
- to_datetime方法
需要源代码请联系 "api1024"
自学交流群:QQ 829163554 纯自学
网友评论