今天想查一下ETF历史行情数据,用于分析各值ma之间的关系(获取数据并存到自己的数据库是分析的第一步),找了很久,有如下几条:
都不是想要的。
然后一想,为什么不是官网查呢?于是就来到了中证网http://www.cs.com.cn/。
获取etf历史行情数据
300ETF
- 简单信息(可从天天基金网查看) 2012-05-04 基金经理:柳军 类型:ETF-场内 管理人:华泰柏瑞基金 资产规模:457.48亿元
- 访问页面 http://stockdata.cs.com.cn/qcenter/new/stock-exponent.html?en_prod_code=510300.SS时打开F12,点Network,然后点“日K”,此时会请求数据,url是
http://zzw.hsmdb.com/iwin_zzbweb-webapp/quote/v1/kline?get_type=range&prod_code=510300.SS&candle_period=6&fields=open_px,high_px,low_px,close_px,business_amount
发现返回的数据是按天给的。
500ETF
同上。http://stockdata.cs.com.cn/qcenter/new/stock-exponent.html?en_prod_code=510500.SS。
均线
5日均线(MA5)
定义:最近连续5个交易日收盘价之和÷5。
如上页面看300ETF时可以看到有个js是http://zzw.hsmdb.com/iwin_zzbweb-webapp/1.0.32/js/chart/kline_chart_hs.js
,在里面搜索MA5Array
,发现有段代码是
if(i>=4){
var ma5=0.00;
for( var j=0;j<5;j++){
ma5+=parseFloat(data[i-j][4]);
}
MA5Array.push([
parseInt(dateUTC), // the date
parseFloat(ma5/5)
]);
}
即是来计算ma5的。
同里可以计算出ma10/ma20/ma60。(顺带说一句,求ma值的这个方法可以提取一下的)
function ma(data, n, dateUTC) {
if(i>=n){
var ma=0.00;
for( var j=0;j<n;j++){
ma+=parseFloat(data[i-j][4]);
}
MA5Array.push([
parseInt(dateUTC), // the date
parseFloat(ma/n)
]);
}
}
如上是纯手写,可能有误。