import hashlib
import json
import pandas as pd
from urllib.request import Request, urlopenpd.set_option('expand_frame_repr', False)  # 当列太多时不换行def create_trade_sign(params, api_key, secret_key):"""创建交易签名:return: md5加密数据"""sign = ''for key in sorted(params.keys()):sign += '&' + key + '=' + str(params[key])return hashlib.md5(sign.encode('utf-8')).hexdigest()if __name__ == '__main__':symbol = 'btc2ckusd'params = {'symbol': symbol}api_key = "5561c051fa52ad68322b90b06646c10ddcda3529845"secret_key = "5b6a-6b13d-944c4-9017# print(create_trade_sign(params, api_key, secret_key))def get_url_data(url, retry_times=3):"""从API接口中获取数据:param url: API接口:param retry_times:最大尝试次数:return: API json格式数据"""while True:try:headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'}request = Request(url=url, headers=headers)b_data = urlopen(request, timeout=10).read()str_data = b_data.decode('utf-8')json_data = json.loads(str_data)return json_dataexcept Exception as http_error:if retry_times > 0:return get_url_data(url, retry_times=retry_times-1)else:print('尝试失败次数过多,已经放弃,错误信息:%s' % http_error)return Noneif __name__ == '__main__':url = 'https://www.okex.com/api/v1/ticker.do?symbol=ltc_usdt'# print(get_url_data(url))url = 'https://www.okex.com/api/v1/kline.do?symbol=btc_usdt&type=30min'# print(get_url_data(url))def get_ticker_from_okex(symbol_list):"""从交易所获取ticker数据:param symbol_list: symbol列表:return: ticker数据"""df = pd.DataFrame()base_url = 'https://www.okex.com/api/v1/ticker.do?symbol='for symbol in symbol_list:url = base_url + symboljson_data = get_url_data(url)if json_data is None:continue_df = pd.DataFrame(json_data, dtype='float')_df = _df[['ticker']].T_df['symbol'] = symboldf = df.append(_df, ignore_index=True)# df.to_hdf('data/okex_ticker.h5', key='all_data', mode='w')df = df[['symbol', 'last', 'buy', 'sell', 'high', 'low', 'vol']]return dfif __name__ == '__main__':symbol_list = ['btc_usdt', 'ltc_usdt']# print(get_ticker_from_okex(symbol_list))def get_candle_from_okex(symbol, kline_type='1min'):url = 'https://www.okex.com/api/v1/kline.do?symbol=%s&type=%s' % (symbol, kline_type)  # 构建urljson_data = get_url_data(url)if json_data is None:return Nonedf = pd.DataFrame(json_data, dtype='float')df.rename(columns={0: 'candle_begin_time', 1: 'Open', 2: 'High', 3: 'Low', 4: 'Close', 5: 'Volume'}, inplace=True)  # 对df的每一列进行重新命名df['candle_begin_time'] = pd.to_datetime(df['candle_begin_time'], unit='ms')df['candle_begin_time_beijing'] = df['candle_begin_time'] + pd.Timedelta(hours=8)del df['candle_begin_time']df = df[['candle_begin_time_beijing', 'Open', 'High', 'Low', 'Close', 'Volume']]print(df)if __name__ == '__main__':symbol = 'btc_usdt'get_candle_from_okex(symbol)

量化交易:创建签名、从okex平台获取ticker数据和k线数据相关推荐

  1. TuShare获取K线数据

    Tushare是一个免费.开源的python财经数据接口包.主要实现对股票等金融数据从数据采集.清洗加工 到 数据存储的过程,能够为金融分析人员提供快速.整洁.和多样的便于分析的数据,为他们在数据获取 ...

  2. python获取期权行情包括k线,tick,greeks分时等数据

    先上代码:https://github.com/knotgd/option_data 可以获取期权tick数据.greeks数据.分时数据.k线数据.可以查询指定月份和时间的可交易看涨和看跌期权, 可 ...

  3. [股票预测]获取股票K线数据

    目 录 2.2 获取K线函数get_k_data() 2.2.1获取最近一年K线数据 (1)数据集(XRHJ000598_OneYear.csv) (3)程序代码 2.2.2 获取指定时间段K线数据 ...

  4. 【非常难得】CCXT如何获取期货合约的K线数据并合约交易下单总结

    非常重要的问题:使用CCXT框架来操控交易所,默认情况都是执行币币交易spot,那么如何操控期货呢?这里在官方文档没有介绍,网上也么有相关的文章介绍,今天在这里总结一下! 最核心的一点就是symbol ...

  5. CTP程序化交易入门系列之三:获取实时行情及k线合成

    前面两篇有了基础知识的准备,这一篇讲通过CTP API获取实时行情,录入csv,实时合成k线.github上开源了录入csv及合成k线代码,后台回复pyctp可获取.先上两张效果图: 图1 csv数据 ...

  6. 用AkShare获取沪深京A股分钟级K线数据

    前面已经讲解了如何通过AkShare获取实时K线数据和沪深京A股历史数据.但是在现实做策略回测的过程,经常会用到分钟级数据计算买卖点.下面我们讲讲如何用AkShare获取沪深京A股分钟级K线数据. 一 ...

  7. 基于历史K线数据比较的量化选股方法及其系统分享

    第0章 引言 最近量化交易火起来了. 前段时间看了一本书<乌合之众>,讲的是大众心理学.其实股市的本质就是大众心理博弈,通过买卖行为对外表现出股价的涨跌,股价波动反映的是一段时间内股市中的 ...

  8. 如何获取下拉框lable的数据_如何使用Python获取指定股票的日K线数据?

    本篇仅介绍指定股票的数据拉取,批量拉取将在之后的教程中进行介绍,首先你需要安装BaoStock,参见往期教程: 如何使用Python安装BaoStock? 该数据是从2015年开始的,优点是可以用Py ...

  9. Python 获取股票K线数据

    前言 玩过股票的几乎都知道,股票历史交易日的开盘价.收盘价.最高价.最低价等指标是选股的重要依据.虽然仅仅依靠它们无法在股市中盆满钵满,但是运用好它确实能在较大程度上提高我们的赚钱概率. 当前的金融数 ...

最新文章

  1. JAXB在Java 9/10并且使用Tomcat 9的问题
  2. java string 加密_java字符串加密解密
  3. 百度统计:网站统计实时访客报告
  4. 【codevs1582】【BZOJ1228】E和D,博弈
  5. 参考 JavaEE注解学习:(二)
  6. Android 软键盘弹出,界面整体上移的问题
  7. vue3中这几个变化你要注意了
  8. linux简单好玩的命令,有趣的Linux命令行玩法 cal
  9. Gene Ontology (GO) 简介
  10. 软件测试52讲-用机器设计测试用例:基于模型的测试
  11. 用fpga实现永磁同步电机控制_永磁同步电机控制系统仿真系列文章—旋转变压器...
  12. 浅议一种低成本的48V蓄电池组电压电流采集模块
  13. 外卖点餐列表滑动 微信小程序_点餐小程序购物车效果实现,点餐小程序购物车列表的实现...
  14. SpringBoot RabbitMQ 异步激活_注册邮箱
  15. WIN10安装CUDA10 cuDNN
  16. 计算机主机号怎么产看,怎么查看笔记本电脑出厂编号
  17. angularjs学习2---数据绑定与controller
  18. 局域网内配置Outlook 2007支持收发Domino 8.5邮箱
  19. React-native 实现表情商城 表情长按拖动预览(还原安卓微信效果)
  20. U788ROOT及刷机包--移动定制版中兴…

热门文章

  1. 微型计算机期末考试复盘(知识点总结)
  2. 夏天快到了,热不热?下雪啦
  3. python代码画土拨鼠_万圣节快到了,让我们用Python画一只蝙蝠图表吧(附代码)...
  4. 人人商城微信浏览器解绑
  5. 互联网快讯:粉笔科技创新推进OMO模式;猿辅导以科技助力教育提质增效;“莆田鞋”注册成功
  6. 什么是支撑位和阻力位
  7. 免费看小说,国产浏览器出手了,吊打各类阅读软件
  8. 【雅思】【绿宝书错词本】List37~48
  9. 2017-2022年工作经验总结
  10. The type okio.ByteString cannot be resolved. It is indirectly referenced from required .class files