今天看到一篇雪球文章叫海龟交易法

大概思路是通过回看20天的盘中最高和10天内盘中最低,结合前一天收盘价制定的交易策略。

想自己编程试试看。

第一步是取得数据,因为一直用雪球,感觉上可以从雪球上获取数据。于是打开chrome用F12找到雪球日K里面的数据源,和我预期的一致,是JSON格式的。那就好办了,把URL粘贴出来

https://xueqiu.com/stock/forchartk/stocklist.json?symbol=SH600000&period=1day&type=after&begin=1434173957486&end=1465709957486&_=1465709957486

一开始想要用linux shell直接执行wget获取,但发现不行,雪球设置了必须登录才能获取数据。

Linux shell显然是不支持登录后下载的,必须考虑用其他语言实现,找了一圈,php似乎是最简单的,利用CURL包可以模拟浏览器操作。

检查了雪球的登录界面,找到了登录的URL https://xueqiu.com/user/login , 登录需要提供参数,参数名称花了一段时间,一开始直接用username和password,发现不行,于是去截包,发现用手机登录应该是telephone和password,登录代码如下

$curl = curl_init();

$cookie_jar = tempnam('./tmp','cookie');

curl_setopt($curl, CURLOPT_URL,'https://xueqiu.com/user/login');

curl_setopt($curl, CURLOPT_POST, 1);

$request = 'telephone=$phoneno&password=$password';

curl_setopt($curl, CURLOPT_POSTFIELDS, $request);

curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_jar);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($curl, CURLOPT_HEADER, false);

curl_setopt($curl, CURLOPT_NOBODY, false);

curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);

$content = curl_exec($curl);

print($cookie_jar);

print($content);

Bingo 登录成功>接下来用Curl取刚才的那个URL顺利获得的JSON.

接下来是处理URL动态参数,分析这个URL:https://xueqiu.com/stock/forchartk/stocklist.json?symbol=SH600000&period=1day&type=after&begin=1434173957486&end=1465709957486&_=1465709957486

可以看到前面https://xueqiu.com/stock/forchartk/stocklist.json?symbol=SH600000 这一段大概是取SH600000这个股票,后面的period=1day 就是按天取数据,type=after 默认应该是后复权,begin end 和&_参数看起来像是unix 时间戳。但仔细一看好像后面多了3位数字,不知道是干什么的,试试都加上000看看

于是有了这段代码:

$ts=time();

$start_date=strtotime("-1 week");

$url='https://xueqiu.com/stock/forchartk/stocklist.json?symbol='.$stockno.'&period='.$period.'&type='.$type.'&begin='.$start_date.'000&end='.$ts.'000'.'&_='.$ts.'000';

把这两段代码略作整合,得到了一个function 如下,默认取当前日期一周内的数据。

Function getStock($stockno,$type,$period){

print('printing:'.$stockno);

$curl = curl_init();

$cookie_jar = tempnam('./tmp','cookie');

curl_setopt($curl, CURLOPT_URL,'https://xueqiu.com/user/login');

curl_setopt($curl, CURLOPT_POST, 1);

$request = 'telephone=$phoneno&password=$password';

curl_setopt($curl, CURLOPT_POSTFIELDS, $request);

curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_jar);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($curl, CURLOPT_HEADER, false);

curl_setopt($curl, CURLOPT_NOBODY, false);

curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);

$content = curl_exec($curl);

//print($cookie_jar);

//print($content);

curl_close($curl);

$curl2 = curl_init();

$ts=time();

$start_date=strtotime("-1 week");

$url='https://xueqiu.com/stock/forchartk/stocklist.json?symbol='.$stockno.'&period='.$period.'&type='.$type.'&begin='.$start_date.'000&end='.$ts.'000'.'&_='.$ts.'000';

curl_setopt($curl2, CURLOPT_URL, $url);

curl_setopt($curl2, CURLOPT_HEADER, false);

curl_setopt($curl2, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($curl2, CURLOPT_COOKIEFILE, $cookie_jar);

$content = curl_exec($curl2);

print_r($content);

return content;

}

getstock('SH600000','normal','1day');

发现可以获取,但数据似乎比预期的要多,但也没什么关系,可能和URL参数的理解有关系,不过没关系,至少第一步获取数据的任务完成了.接下来需要将这些数据存储到数据库中,以便后续的分析和处理。

海龟交易代码java_海龟交易算法,实现量化交易(1)数据获取相关推荐

  1. python量化交易:Joinquant_量化交易基础【一】:初识量化交易

    本文是量化交易零基础入门教程中的第一篇. 摘要 为什么需要量化交易? 量化交易是做什么? 量化交易的价值何在? 做量化交易需要什么? 聚宽是什么? 零基础如何快速入门量化交易? 自测与自学 量化交易比 ...

  2. python与算法社区_3社区分类算法_python量化交易_Python视频-51CTO学院

    清华编程高手尹成带你基于算法实践python量化交易 量化交易是指以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据中海选能带来超额收益的多种"大概率"事件以制定策 ...

  3. 【量化】量化交易入门系列2:经典的量化交易策略(上)

    作者:悠悠做神仙 来源: 恒生LIGHT云社区 上一篇文章 量化交易入门系列1:编程语言与数据源 ,介绍了关于量化交易的基本概念,以及要做量化交易的编程语言选择,和量化交易的一些数据源获取工具.那么, ...

  4. python程序化交易实例-用 Python 实现你的量化交易策略

    Python 的学习者中,有相当一部分是冲着爬虫去的.因为爬虫可以帮你解决很多工作和生活中的问题,节约你的生命.不过 Python 还有一个神秘而有趣的应用领域,那就是量化交易. 量化交易,就是以数学 ...

  5. python 量化交易靠谱吗_个人做量化交易靠谱吗?

    :更新: 我的算法选到仁东控股的位置: 第二天我割肉也卖了... ---------------------------- 原回答: 不靠谱. 我自己在聚宽平台做过个人量化.基本上就是短线思路,寻找牛 ...

  6. matlab量化策略代码,【策略分享】Matlab量化交易策略源码分享

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 策略名称:横盘突破策略 策略思路: 日内交易策略,收盘平仓: 横盘突破在过去30根K线的高低点围绕中轴上下0.5%的范围内波动时: 上轨=过去30根K线的 ...

  7. 量化交易策略matlab交易方案,【策略分享】Matlab量化交易策略源码分享

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 策略名称:横盘突破策略 策略思路: 日内交易策略,收盘平仓: 横盘突破在过去30根K线的高低点围绕中轴上下0.5%的范围内波动时: 上轨=过去30根K线的 ...

  8. python 期货交易接口_量化交易 – 期货CTP接口与程序化(量化交易)的对接 1

    很多人写CTP都是为了自动交易. 费好大劲, 对多个策略进行历史测试.实盘运行: 能随意编写策略,想改就改,想加就加: 测试时,要能随意选择合约.周期.时间范围.参数范围,能随意设置滑点量.手续费.盘 ...

  9. python量化交易培训方向_如何系统地学习量化交易?

    首先声明,我不是专业搞金融的.有10多年开发经验,既创过业,也曾在一线互联公司干过技术总监.从C++到php到js再到python再到AI,一路走来,都是为了生活.现在搞量化.学CFA完全是出于兴趣, ...

最新文章

  1. (C#)Windows Shell 外壳编程系列6 - 执行
  2. SAP R/3 中会计凭证和物料凭证的对应关系
  3. POI对EXCEL的操作【重点:如何设置CELL格式为文本格式】
  4. Kinect V2 基础教程之彩色图像
  5. SVN的安装配置(一)
  6. 防腐投加器需要加盐吗_风冷却器的正确防腐措施应该怎么做?
  7. 转:android.support升级到androidx踩坑记录
  8. php解密 hr+c_PHP每15分钟自动更新网站地图(减少服务器消耗)
  9. Java编程:KMP算法
  10. js正则表达式校验手机号码和电话号码
  11. 电信中兴B860AV2.1-T_线刷固件包
  12. Excel如何来绘制不同函数的图像;不同数学符号可以在word中打处理;
  13. 靠谱的企业并购流程|塔米狗
  14. Clojure极简教程
  15. 谷歌浏览器chrome扩展插件-农名的世界脚本
  16. UE风格化Day7-maya的AO烘焙和SP绘制材质
  17. 星网锐捷语音网关密码重置恢复出厂设置
  18. qq浏览器HTML5在哪,qq浏览器wifi助手功能在哪里?
  19. Linux防火墙的配置
  20. 拨开迷雾选型数据中台,兼谈这些供应商的商业模式

热门文章

  1. android view取坐标点,Android 获取子 View 的位置及坐标的方式
  2. 计算机视觉领域,计算机视觉
  3. python2安装pyyaml_Python3安装Pyyaml
  4. transformcontrols可以用在group上吗_电缆沟盖板可以用在水沟上吗
  5. php语言使用statsd统计指标模板
  6. 怎么设置html页面背景图片大小怎么设置,HTML – 响应式网页设计:“如何根据浏览器窗口大小使用CSS调整背景图像的大小”?...
  7. Linux网络模拟,模拟网络访问解析
  8. fasttext简单理解及应用
  9. java多线程面试_Java多线程和并发基础面试问答,看过后你不会后悔
  10. mysql 8 centos_CentOS8下安装mysql8