我希望創造一個JavaScript函數,可以放置在一個html的歷史股票數據可以在javascript
我想發送功能的股票代碼,起始日期和結束日期。
我希望函數返回一個2d數組,其中每行是所需庫存的EOD或OHLC數據的一天。
我想使用雅虎,因爲谷歌股票數據將被逐步淘汰。
我已經在其他語言做了這個,但我新的Java腳本,幾乎失去了。
下面的代碼被發現堆棧,是我能找到的最接近,但我不明白如何使用它。
<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,但它是在Python
def get_historical_prices(symbol, start_date, end_date):
"""
Get historical prices for the given ticker symbol.
Date format is 'YYYYMMDD'
Returns a nested list.
"""
url = 'http://ichart.yahoo.com/table.csv?s=%s&' % symbol + \
'd=%s&' % str(int(end_date[4:6]) - 1) + \
'e=%s&' % str(int(end_date[6:8])) + \
'f=%s&' % str(int(end_date[0:4])) + \
'g=d&' + \
'a=%s&' % str(int(start_date[4:6]) - 1) + \
'b=%s&' % str(int(start_date[6:8])) + \
'c=%s&' % str(int(start_date[0:4])) + \
'ignore=.csv'
days = urllib.urlopen(url).readlines()
data = [day[:-2].split(',') for day in days]
return data
很抱歉,如果我要求太多了。由於我是JavaScript新手,但我真的很想學習儘可能多的東西。
所以,你要我們改變在Python代碼爲JavaScript,而你只是坐在回和放鬆。 –
沒有,我一直工作在這一個星期左右,甚至僅僅是從哪裏開始的指針將是有益的。像什麼將一個函數調用頂端代碼的樣子,或者是那裏了urllib.urlopen JavaScript版本()。 – user1002331