`
gavin
  • 浏览: 83484 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

PHP分析谷歌财经数据

阅读更多
在试用开源的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);
}
?>

分钟线数据和日线差不多。谷歌财经也在不断改进,不过数据结构还是比较清晰,比较容易分析。
1
1
分享到:
评论

相关推荐

    php财经直播间源码

    PHP可以配合Google Analytics、Mixpanel等服务,或者自建数据分析系统,实现数据统计和报表生成。 通过以上分析,我们可以看出"PHP财经直播间源码"涵盖了从实时通信、视频流处理到用户管理、支付接口、安全防护等多...

    基于PHP的金融投资企业控股网站.zip

    9. **数据分析**:通过集成Google Analytics或其他分析工具,网站可以追踪用户行为,优化功能,并为商业决策提供数据支持。 10. **API接口**:为了获取实时的金融数据,网站可能需要与金融数据提供商的API进行对接...

    仿Google风格网址站代码

    9. gupiao-caijing.html:股票财经页,可能包含股票市场数据、财经新闻和分析工具。 通过这些文件名,我们可以推测这个仿Google风格的网址站提供了多样的服务,包括搜索、地区服务、游戏、阅读、新闻、电影、音乐和...

    stock:主要是股票的查询,价格,五档、K线等数据的查询

    在IT行业中,尤其是在数据分析和金融领域,股票查询和分析是一项重要的任务。PHP作为一种流行的服务器端脚本语言,常被用于构建动态网站和处理各种数据。本文将深入探讨使用PHP进行股票数据查询,包括股票价格、五档...

    PHP168建站系统

    自带新浪新闻采集系统,可以很方便自由的采集新浪国内、国际、社会、娱乐、科技、财经、军事、体育精选新闻。 2.可以自由添加采集参数,并且可以共享采集参数,即可把采集参数导出来,分享给其他人。 3.可以很方便的采集...

    stock

    综上所述,"stock"主题下的PHP应用涵盖了网络请求、数据处理、前端展示、数据库操作、数据分析等多个方面,是IT技术与金融知识的融合,对于想要涉足金融领域的PHP开发者来说,这是一个极具挑战和价值的方向。

    PHP168整站|PHP168整站 v4.0下载_源码下载

    1.自带新浪新闻采集系统,可以很方便自由的采集新浪国内、国际、社会、娱乐、科技、财经、军事、体育精选新闻。 2.可以自由添加采集参数,并且可以共享采集参数,即可把采集参数导出来,分享给其他人。 3.可以很方便的...

    Joomla 股票插件

    该插件可能采用了API接口获取股票数据,如雅虎财经、Google Finance或其他金融数据提供商的API。数据处理和展示可能涉及JavaScript和Ajax技术,以实现动态刷新。同时,插件可能还利用了PHP的cURL库来发送HTTP请求,...

    PHP168整站源码 v4.0 SP3

    1.自带新浪新闻采集系统,可以很方便自由的采集新浪国内、国际、社会、娱乐、科技、财经、军事、体育精选新闻。 2.可以自由添加采集参数,并且可以共享采集参数,即可把采集参数导出来,分享给其他人。 3.可以很方便的...

    stocks-to-rss:股票价格到RSS

    这通常通过API接口实现,例如雅虎财经、Google Finance或Alpha Vantage等提供的金融数据API。开发者会使用PHP的cURL库或者file_get_contents函数发送HTTP请求,获取股票的实时价格信息。返回的数据可能是JSON或XML...

    利用yahoo汇率接口实现实时汇率转换示例 汇率转换器

    1. **Yahoo汇率接口**:Yahoo财经提供了一个公开的API,允许开发者通过HTTP请求获取实时的货币汇率数据。这个接口对于开发货币兑换应用、财务管理工具或者任何需要货币信息的系统都非常有用。 2. **实时汇率转换**...

Global site tag (gtag.js) - Google Analytics