[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 ivor 于 2020-6-14 14:21 编辑

测试过数据完全准确
开始用的这个接口:https://www.okex.me/docs/zh/#spot-line,发现数据不正确, 后面发现原因日期有错位
后改用这个不算官方正规的接口:https://www.okex.me/v2/spot/inst ... amp;t=1592091928445


granularity=86400    时间粒度,86400日线
size=1000 最大k线数量,不能超过1000否则报错。
  1. #! /usr/bin/env python3
  2. # -*- coding: UTF-8 -*-
  3. import pandas as pd
  4. import requests
  5. import json
  6. import numpy as np
  7. import datetime
  8. api_url = "https://www.okex.me/v2/spot/instruments/BTC-USDT/candles?granularity=86400&size=1000&t=1592091928445"
  9. html = requests.get(api_url)
  10. stock_datas = pd.DataFrame()
  11. for i in json.loads(html.text)['data']:
  12.     date = (datetime.datetime.strptime(i[0].split('T')[0], "%Y-%m-%d") + datetime.timedelta(days=1)).strftime("%Y%m%d")
  13.     df_insert = pd.DataFrame(
  14.         {'date': date, 'open': i[1], 'high': i[2], 'low': i[3], 'close': np.float(i[4]), 'volume': i[5]}, index=[0])
  15.     stock_datas = stock_datas.append(df_insert)
  16. ma_list = [7, 30]  # ma移动平均
  17. for ma in ma_list:
  18.     stock_datas['MA_' + str(ma)] = np.round(pd.Series.rolling(stock_datas['close'], window=ma).mean(), 1)
  19. low_list = stock_datas['low'].rolling(9, min_periods=9).min()
  20. low_list.fillna(value=stock_datas['low'].expanding().min(), inplace=True)
  21. high_list = stock_datas['high'].rolling(9, min_periods=9).max()
  22. high_list.fillna(value=stock_datas['high'].expanding().max(), inplace=True)
  23. rsv = (stock_datas['close'] - low_list) / (high_list - low_list) * 100
  24. stock_datas['K'] = pd.Series.ewm(rsv, com=2).mean()
  25. stock_datas['D'] = pd.Series.ewm(stock_datas['K'], com=2).mean()
  26. stock_datas['J'] = 3 * stock_datas['K'] - 2 * stock_datas['D']
  27. custom_date = input("""
  28.     Example:20200401 2020年04月01日
  29.     Enter datetime please:"""
  30.                     )
  31. result = stock_datas[stock_datas['date'] == custom_date][['date', 'K', 'D', 'J', 'MA_7', 'MA_30']]
  32. if result.__len__() > 0:
  33.     result = "MA7:{}\r\nMA30:{}\r\nK:{}\r\nD:{}\r\nJ:{}\r\n".format(result['MA_7'].values[0], result['MA_30'].values[0],
  34.                                                                     np.round(result['K'].values[0], 2),
  35.                                                                     np.round(result['D'].values[0], 2),
  36.                                                                     np.round(result['J'].values[0], 2))
  37.     print(result)
  38.     with open('a.txt', 'w+') as f:
  39.         f.write(result)
  40. else:
  41.     print("Found nothing!!!")
复制代码
    Example:20200401 2020年04月01日
    Enter datetime please:20200401
MA7:6372.9
MA30:6767.3
K:49.17
D:57.07
J:33.38
2

评分人数

#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

回复 9# went


    https://blog.csdn.net/weixin_414 ... earnPai2-1.nonecase

这儿说的比较详细。
1

评分人数

#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

返回列表