在试用开源的javascript画图项目时,发现K线图数据是PHP处理yahoo的数据,股票是外国的,想把它改成中国股票的数据,方便把画出的图和看盘软件比较。还有一个原因是现在很多开源的javascript项目里都带php例子,学一点,用着方便。PHP环境用XAMPP搞定。
中国雅虎财经用的数据和谷歌财经比一下,觉得还是谷歌财经的数据好整理。下面是PHP程序,我是初学,用的不好别学我。
原始数据:
EXCHANGE%3DSHA
MARKET_OPEN_MINUTE=570
MARKET_CLOSE_MINUTE=900
INTERVAL=86400
COLUMNS=DATE,CLOSE,HIGH,LOW,OPEN,VOLUME
DATA_SESSIONS=[MORNING,570,690],[AFTERNOON,780,900]
DATA=
TIMEZONE_OFFSET=480
a1227682800,3.91,4.06,3.71,3.77,23623847
1,4.15,4.3,4.1,4.3,64587267
2,3.95,4.17,3.89,4.17,38473877
5,3.94,3.96,3.77,3.88,20492320
6,3.96,3.99,3.78,3.84,21091223
7,4.19,4.2,3.96,3.96,38989121
。。。。。。
转换后(json):
{"ticks":[[0,"2008-11-26"],[20,"2008-12-25"],[40,"2009-02-02"],......],
"data":[[0,3.91,4.06,3.71,3.77],[1,4.15,4.3,4.1,4.3],[2,3.95,4.17,3.89,4.17],......],
"volume":[[0,23623847],[1,64587267],[2,38473877],......]
}
<?php
$handle = @fopen("http://www.google.cn/finance/getprices?q=601111&x=SHA&i=86400&p=1Y&f=d,c,v,o,h,l&df=cpct&auto=1&ts=1259212443409", "r");
if ($handle) {
$data = array();
$ticks = array();
$volume = array();
$columns = array();
$values = array();
$interval =1;
$x = 0;
$lastAbsTime=0;
while (!feof($handle)) {
if($x > 100) break;
$buffer = trim(fgets($handle));
if(strpos($buffer, "EXCHANGE") !== false){
continue;
}
if(strpos($buffer, "INTERVAL") !== false){
$interval = array_pop(explode("=",$buffer));
//echo "INTERVAL=".$interval."<br>";
}
if(strpos($buffer, "COLUMNS") !== false){
$columns = explode(",",array_pop(explode("=",$buffer)));
//echo "INTERVAL=".$columns."<br>";
}
if(array_shift(explode("=",$buffer)) == $buffer){
$values = explode(",",$buffer);
$n=0;
$d = array($x);
foreach ($values as $v) {
//echo "v:".$columns[$n]."<br>";
if ($columns[$n] == "DATE"){
if (floatval($v)==0){
$lastAbsTime = floatval(substr($v,1));
if($x%20 == 0)
$ticks[] = array($x, date("Y-m-d",$lastAbsTime));
}else {
if($x%20 == 0)
$ticks[] = array($x,date("Y-m-d",$lastAbsTime + floatval($v) * $interval));
}// end else if
}
else if ($columns[$n] == "CLOSE")
{
$d[4] = floatval($v);
}
else if ($columns[$n] == "OPEN")
{
$d[1] = floatval($v);
}
else if ($columns[$n] == "LOW"){
$d[3] = floatval($v);
}
else if ($columns[$n] == "HIGH"){
$d[2] = floatval($v);
}
else if ($columns[$n] == "VOLUME"){
$volume[] = array($x,floatval($v));
}
$n++;
}
$data[] = array_values($d);
$x++;
}
}
echo json_encode(array('ticks' => $ticks, 'data' => $data, 'volume' => $volume));
fclose($handle);
}
?>
分钟线数据和日线差不多。谷歌财经也在不断改进,不过数据结构还是比较清晰,比较容易分析。
分享到:
相关推荐
PHP可以配合Google Analytics、Mixpanel等服务,或者自建数据分析系统,实现数据统计和报表生成。 通过以上分析,我们可以看出"PHP财经直播间源码"涵盖了从实时通信、视频流处理到用户管理、支付接口、安全防护等多...
9. **数据分析**:通过集成Google Analytics或其他分析工具,网站可以追踪用户行为,优化功能,并为商业决策提供数据支持。 10. **API接口**:为了获取实时的金融数据,网站可能需要与金融数据提供商的API进行对接...
9. gupiao-caijing.html:股票财经页,可能包含股票市场数据、财经新闻和分析工具。 通过这些文件名,我们可以推测这个仿Google风格的网址站提供了多样的服务,包括搜索、地区服务、游戏、阅读、新闻、电影、音乐和...
在IT行业中,尤其是在数据分析和金融领域,股票查询和分析是一项重要的任务。PHP作为一种流行的服务器端脚本语言,常被用于构建动态网站和处理各种数据。本文将深入探讨使用PHP进行股票数据查询,包括股票价格、五档...
自带新浪新闻采集系统,可以很方便自由的采集新浪国内、国际、社会、娱乐、科技、财经、军事、体育精选新闻。 2.可以自由添加采集参数,并且可以共享采集参数,即可把采集参数导出来,分享给其他人。 3.可以很方便的采集...
综上所述,"stock"主题下的PHP应用涵盖了网络请求、数据处理、前端展示、数据库操作、数据分析等多个方面,是IT技术与金融知识的融合,对于想要涉足金融领域的PHP开发者来说,这是一个极具挑战和价值的方向。
1.自带新浪新闻采集系统,可以很方便自由的采集新浪国内、国际、社会、娱乐、科技、财经、军事、体育精选新闻。 2.可以自由添加采集参数,并且可以共享采集参数,即可把采集参数导出来,分享给其他人。 3.可以很方便的...
该插件可能采用了API接口获取股票数据,如雅虎财经、Google Finance或其他金融数据提供商的API。数据处理和展示可能涉及JavaScript和Ajax技术,以实现动态刷新。同时,插件可能还利用了PHP的cURL库来发送HTTP请求,...
1.自带新浪新闻采集系统,可以很方便自由的采集新浪国内、国际、社会、娱乐、科技、财经、军事、体育精选新闻。 2.可以自由添加采集参数,并且可以共享采集参数,即可把采集参数导出来,分享给其他人。 3.可以很方便的...
这通常通过API接口实现,例如雅虎财经、Google Finance或Alpha Vantage等提供的金融数据API。开发者会使用PHP的cURL库或者file_get_contents函数发送HTTP请求,获取股票的实时价格信息。返回的数据可能是JSON或XML...
1. **Yahoo汇率接口**:Yahoo财经提供了一个公开的API,允许开发者通过HTTP请求获取实时的货币汇率数据。这个接口对于开发货币兑换应用、财务管理工具或者任何需要货币信息的系统都非常有用。 2. **实时汇率转换**...