获取javascript中的历史股票数据
我希望创建一个可以放在.html文件中的javascript函数 我想向函数发送股票符号、开始日期和结束日期 我想让函数返回一个2d数组,其中每一行都是所请求库存的EOD或OHLC数据的一天 我想使用雅虎,因为谷歌股票数据将被淘汰 我已经用其他语言完成了这项工作,但我对java脚本还不熟悉,而且几乎迷路了 下面的代码是在堆栈上找到的,是我能找到的最接近的代码,但我不知道如何使用它获取javascript中的历史股票数据,javascript,python,finance,yahoo-finance,quantitative-finance,Javascript,Python,Finance,Yahoo Finance,Quantitative Finance,我希望创建一个可以放在.html文件中的javascript函数 我想向函数发送股票符号、开始日期和结束日期 我想让函数返回一个2d数组,其中每一行都是所请求库存的EOD或OHLC数据的一天 我想使用雅虎,因为谷歌股票数据将被淘汰 我已经用其他语言完成了这项工作,但我对java脚本还不熟悉,而且几乎迷路了 下面的代码是在堆栈上找到的,是我能找到的最接近的代码,但我不知道如何使用它 <script type="text/javascript" src="jquery-1.5.1.js">
<script type="text/javascript" src="jquery-1.5.1.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var symbol='goog';
var callback = function(data) {
var price=data.query.results.span[0].content;
alert('Stock Price: ' + price);
};
var url = 'http://query.yahooapis.com/v1/public/yql';
// this is the lovely YQL query (html encoded) which lets us get the stock price:
// select * from html where url="http://finance.yahoo.com/q?s=goog" and xpath='//span[@id="yfs_l10_goog"]'
var data = "q=select%20*%20from%20html%20where%20url%3D%22http%3A%2F%2Ffinance.yahoo.com%2Fq%3Fs%3D" + symbol + "%22%20and%20xpath%3D'%2F%2Fspan%5B%40id%3D%22yfs_l10_" + symbol + "%22%5D'&format=json";
$.getJSON(url, data, callback);
});
对不起,如果我要求太多。因为我是javascript新手,但我真的很有兴趣尽可能多地学习。首先对javascript进行一点解释:
$(document).ready(function() {
//... lines
});
这是一个jquery(请参阅$(文档))事件处理程序(文档准备就绪时将调用它)。勇气:
var symbol='goog';
var callback = function(data) {
var price=data.query.results.span[0].content;
alert('Stock Price: ' + price);
};
callback
现在是一个包含一个参数的闭包。作为一个闭包,它需要它的上下文,所以当它被调用时,它可以访问它范围内的任何内容。在这里,它不使用任何超出其范围的内容,因此它的行为与普通函数一样。它所做的只是建立一个对话框,其中包含给定数据对象的某些部分
var url = 'http://query.yahooapis.com/v1/public/yql';
var data = /* stuff */;
它们只是设置了请求,该请求被提供给jquerygetJSON
方法:
$.getJSON(url, data, callback);
在内部,jquery将数据
请求发送到url
,当它收到响应时,它将调用带有响应的回调
,有点像这样的伪代码:
response = queryURL(url,data);
callback(response);
因此,结构是创建一个查询对象,并将其与目标url一起传递给jquery,以便为您完成这项艰巨的工作。您还可以创建一个只需要一个参数的函数,并在jquery得到响应时将其传递给jquery调用。这些被称为回调
要实现python,只需拆分url(http://ichart.yahoo.com/table.csv
),并使用相同的结构。将更新内容(页面上的视图等)的逻辑放在回调
函数中,或者更好地使用它来触发一些更新机制
查看从yahoo返回的json对象中的内容的最简单方法是使用Firebug或Chrome中的调试工具在
回调中设置断点,并查看其结构。您应该能够从该结构中看到如何访问yahoo returns对象中的各个值。因此,您希望我们将您的代码从Python转换为JavaScript,而您只是坐下来放松一下。不,我已经为此工作了大约一周,哪怕只是一个从何处开始的指针都会很有帮助。比如对顶层代码的函数调用是什么样子,或者是否存在urllib.urlopen()的javascript版本。
response = queryURL(url,data);
callback(response);