Google visualization 在这种情况下,为什么移动平均线无法按预期显示
我试图在我的蜡烛棒图表上画SMA 这是我的密码Google visualization 在这种情况下,为什么移动平均线无法按预期显示,google-visualization,Google Visualization,我试图在我的蜡烛棒图表上画SMA 这是我的密码 google.load("visualization", "1", { packages: ["corechart"] }); google.setOnLoadCallback(drawChart); var mydata = [ ['13-Oct', 1097.95, 1113.45, 1109.95, 1132], ['14-Oct', 1095.6, 1101.15, 1113.45, 1117], ['
google.load("visualization", "1", {
packages: ["corechart"]
});
google.setOnLoadCallback(drawChart);
var mydata = [
['13-Oct', 1097.95, 1113.45, 1109.95, 1132],
['14-Oct', 1095.6, 1101.15, 1113.45, 1117],
['15-Oct', 1092.1, 1129.2, 1116, 1132],
['16-Oct', 1130, 1170.3, 1130, 1182.4],
['19-Oct', 1144.5, 1162.15, 1174, 1182.2]
];
function drawChart() {
var data = google.visualization.arrayToDataTable(mydata, true);
var options = {
legend: 'none',
colors: ['red', 'brown'],
candlestick: {
fallingColor: {
fill: "orange",
strokeWidth: 0.5,
stroke: 'black'
},
risingColor: {
fill: "yellowgreen",
strokeWidth: 0.5,
stroke: 'black'
}
}
};
var days = 5;
var view = new google.visualization.DataView(data);
view.setColumns([0, 1, 2, 3, 4, {
type: 'number',
label: days + '-day Moving Average',
calc: function (dt, row) {
// calculate average of closing value for last x days,
// if we are x or more days into the data set
if (row >= days - 1) {
var total = 0;
for (var i = 0; i < data; i++) {
total += data.getValue(row - i, 3);
}
var avg = total / days;
return {v: avg, f: avg.toFixed(2)};
}
else {
// return null for < x days
return null;
}
}
}]);
var chart = new google.visualization.CandlestickChart(document.getElementById('chart_div'));
chart.draw(view, {
height: 400,
width: 600,
chartArea: {
left: '7%',
width: '70%'
},
series: {
0: {
type: 'candlesticks'
},
1: {
type: 'line'
}
}
});
}
google.load(“可视化”,“1”{
软件包:[“corechart”]
});
setOnLoadCallback(drawChart);
var mydata=[
[10月13日,1097.951113.451109.951132],
[10月14日,1095.61101.15113.451117],
[10月15日,1092.1119.211132],
[10月16日,11301170.31130、1182.4],
[10月19日,1144.51162.1511741182.2]
];
函数绘图图(){
var data=google.visualization.arrayToDataTable(mydata,true);
变量选项={
图例:“无”,
颜色:[“红色”、“棕色”],
烛台:{
fallingColor:{
填充:“橙色”,
冲程宽度:0.5,
笔画:“黑色”
},
risingColor:{
填充:“黄绿色”,
冲程宽度:0.5,
笔画:“黑色”
}
}
};
var天数=5天;
var view=newgoogle.visualization.DataView(数据);
view.setColumns([0,1,2,3,4,{
键入:“编号”,
标签:天+“-天移动平均线”,
计算:函数(dt,行){
//计算过去x天的平均收盘价,
//如果我们进入数据集中x天或更长时间
如果(行>=天-1){
var合计=0;
对于(变量i=0;i
你能告诉我如何使SMA正确可见吗
在添加SMA之前,一切都与我的数据点一起工作
这是我的小提琴
您的SMA行不可见,因为计算列在前四行返回null
,在最后一行返回零
在calc
函数中,行
从零开始。对于
days=5
,if(row>=days-1)
直到最后一行才通过
我有点不明白你想如何计算移动平均线,但我试了一下
使用数据中的第四列,我计算了平均值
第0行:值:1109.95第1行:值:1111.70-->(1109.95+1113.45)/2
第2行:值:1113.13-->(1109.95+1113.45+1116.00)/3
等等
google.load(“可视化”,“1”,“{packages:[“corechart”]});
setOnLoadCallback(drawChart);
var mydata=[
[10月13日,1097.951113.451109.951132],
[10月14日,1095.61101.15113.451117],
[10月15日,1092.1119.211132],
[10月16日,11301170.31130、1182.4],
[10月19日,1144.51162.1511741182.2]
];
函数绘图图(){
var data=google.visualization.arrayToDataTable(mydata,true);
变量天数=mydata.length;
var view=newgoogle.visualization.DataView(数据);
view.setColumns([0,1,2,3,4,{
键入:“编号”,
标签:天+“-天移动平均线”,
计算:函数(dt,行){
//计算过去x天的平均收盘价,
//如果我们进入数据集中x天或更长时间
var平均值=0;
var合计=0;
对于(var i=0;i您的SMA行不可见,因为计算列在前四行返回null
,在最后一行返回零
在calc
函数中,行
从零开始。
对于days=5
,if(row>=days-1)
直到最后一行才通过
我有点不明白你想如何计算移动平均线,但我试了一下
使用数据中的第四列,我计算了平均值
第0行:值:1109.95
第1行:值:1111.70-->(1109.95+1113.45)/2
第2行:值:1113.13-->(1109.95+1113.45+1116.00)/3
等等
google.load(“可视化”,“1”,“{packages:[“corechart”]});
setOnLoadCallback(drawChart);
var mydata=[
[10月13日,1097.951113.451109.951132],
[10月14日,1095.61101.15113.451117],
[10月15日,1092.1119.211132],
[10月16日,11301170.31130、1182.4],
[10月19日,1144.51162.1511741182.2]
];
函数绘图图(){
var data=google.visualization.arrayToDataTable(mydata,true);
变量天数=mydata.length;
var view=newgoogle.visualization.DataView(数据);
view.setColumns([0,1,2,3,4,{
键入:“编号”,
标签:天+“-天移动平均线”,
计算:函数(dt,行){
//计算过去x天的平均收盘价,
//如果我们进入数据集中x天或更长时间
var平均值=0;
var合计=0;
对于(var i=0;我希望这有帮助,如果这是不正确的,请描述移动平均线的精确计算……非常感谢,我能够成功地生成烛台图,但当我需要显示SimpleMovingAreage时,也会是这种方式,例如,对于3个数据点,例如100、105、106,它将是100+105+106/3h正是您所做的。我需要立即显示5、10、30天的SMA,这可能吗?我已经修改了答案,使用数据中的行数来确定天数,所以这个答案是