2026-05-29 19:54:56 +08:00

749 lines
39 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//算移动均线
function MovingAverage(data, i, n) {
if (i >= n - 1) {
var sum = 0;
for (j = 0; j <= n - 1; j++) {
sum = sum + parseFloat(data[i - j].ClosingPrice);
}
return sum / n;
}
else {
return null;
}
}
//起始时间设置
function GetStartTime(datetime) {
var dt = new Date(datetime);
dt.setHours(9);
dt.setMinutes(0);
dt.setSeconds(0);
return dt.getTime();
}
function GetEndTime(datetime) {
var dt = new Date(datetime);
dt.setHours(23);
dt.setMinutes(59);
dt.setSeconds(0);
return dt.getTime();
}
/*数据筛选重置*/
function Fill(data, summary, sysdatetime) {
//从默认开始时间到当前服务器时间段的数据
var result = [];
if (data.length > 0) {
//如果有分时数据
var length = data.length
for (i = 0; i < length; i++) {
var currenttime = data[i].Time * 1000;
var currentprice = data[i].Price;
var currentvolume = data[i].Volume;
var lasttime, lastprice;
if (i == 0) //第一条数据
{
lasttime = GetStartTime(currenttime);
lastprice = summary.OpenPrice;
//第一条的时间大于默认开始时间 则补齐默认时间到开始时间的数据
if (currenttime > GetStartTime(currenttime)) {
for (t = GetStartTime(currenttime); t < currenttime; t = t + 60000) {
result.push([t, lastprice, 0]);
}
}
result.push([currenttime, currentprice, currentvolume]);
}
else //从第二条数据开始
{
lasttime = data[i - 1].Time * 1000;
lastprice = data[i - 1].Price;
//如果时间差大于一分钟
if (currenttime - lasttime > 60000) {
for (t = lasttime + 60000; t < currenttime; t = t + 60000) {
result.push([t, lastprice, 0]);
}
}
result.push([currenttime, currentprice, currentvolume]);
}
}
var lastitem = result[result.length - 1];
var lastitemtime = lastitem[0];
var lastitemprice = lastitem[1];
//补齐数据
if (GetStartTime(lastitemtime) == GetStartTime(sysdatetime)) { //当天
//补齐最后一条数据时间到当前时间的数据
for (t = lastitemtime + 60000; t <= sysdatetime; t = t + 60000) {
result.push([t, lastitemprice, 0]);
}
//补齐当前时间到当天收盘时间的空数据 (让分时图时间轴显示的时间区间是整个交易时间)
var len = result.length;
for (t = result[len - 1][0] + 60000; t <= GetEndTime(sysdatetime); t = t + 60000) {
result.push([t, null, null]);
}
} else { //不是当天
//补齐最后一条数据时间到收盘时间的数据
for (t = lastitemtime + 60000; t <= GetEndTime(lastitemtime); t = t + 60000) {
result.push([t, lastitemprice, null]);
}
}
} else {
//如果没有分时数据
/*if (isOpen) { //开盘*/
//开盘价到当前时间的数据
for (t = GetStartTime(sysdatetime); t <= sysdatetime; t = t + 60000) {
result.push([t, summary.OpenPrice, 0]);
}
//补齐当前时间到当天收盘时间的空数据(让分时图时间轴显示的时间区间是整个交易时间)
var len = result.length;
for (t = result[len - 1][0] + 60000; t <= GetEndTime(sysdatetime); t = t + 60000) {
result.push([t, null, null]);
}
/*} else { //没开盘
// $("#loading").html("暂未开放交易").css("color", "#FF0000").css("font-size", "12px");
;
}*/
}
return result;
}
//获取数画图
function Candle(data) {// 编码 地址 日K应该是多天的数据以前的到现在的 "ChangePrice": '',"ChangeRate": ''
var result=data;
//循环处理 "ChangePrice ChangeRate"
var dataEdit=result.data.KLineList;
for(var i=0;i<dataEdit.length;i++){
var temp=dataEdit[i];
dataEdit[i].ChangePrice=dataEdit[i].ClosingPrice-dataEdit[i].OpeningPrice ;//涨跌额
dataEdit[i].ChangeRate=dataEdit[i].ChangePrice*1/dataEdit[i].OpeningPrice*1;//涨跌幅
}
var summary = result.data.MarketInfo;
var data = result.data.KLineList;
if (data.length == 0) {
$("#loading").html("暂未开放交易").css("color", "#FF0000").css("font-size", "12px");
}
//画图 日K
new highStockChart('kline', data);
/*},
error: function (XMLHttpRequest, textStatus, errorThrown) {
//alert("获取数据异常,请稍候再试!")
}
});*/
}
function Minute(data) {//分时刷新
console.log("分时线测试数据");
console.log(data);
var result = '{"data":{"TimeShare":[{"Time":1495069200,"Price":0.01480,"Volume":20600},{"Time":1495069260,"Price":0.01470,"Volume":54100},{"Time":1495069320,"Price":0.01470,"Volume":92600},{"Time":1495069380,"Price":0.01470,"Volume":82300},{"Time":1495069440,"Price":0.01460,"Volume":80500},{"Time":1495069500,"Price":0.01460,"Volume":85700},{"Time":1495069560,"Price":0.01480,"Volume":135300},{"Time":1495069620,"Price":0.01480,"Volume":92800},{"Time":1495069680,"Price":0.01470,"Volume":71700},{"Time":1495069740,"Price":0.01470,"Volume":86300},{"Time":1495069800,"Price":0.01470,"Volume":89000},{"Time":1495069860,"Price":0.01480,"Volume":88900},{"Time":1495069920,"Price":0.01480,"Volume":98100},{"Time":1495069980,"Price":0.01490,"Volume":121700},{"Time":1495070040,"Price":0.01480,"Volume":104500},{"Time":1495070100,"Price":0.01480,"Volume":77200},{"Time":1495070160,"Price":0.01480,"Volume":136500},{"Time":1495070220,"Price":0.01490,"Volume":274200},{"Time":1495070280,"Price":0.01500,"Volume":247600},{"Time":1495070340,"Price":0.01500,"Volume":144900},{"Time":1495070400,"Price":0.01510,"Volume":145700},{"Time":1495070460,"Price":0.01520,"Volume":156100},{"Time":1495070520,"Price":0.01530,"Volume":240000},{"Time":1495070580,"Price":0.01540,"Volume":267700},{"Time":1495070640,"Price":0.01550,"Volume":350200},{"Time":1495070700,"Price":0.01540,"Volume":217600},{"Time":1495070760,"Price":0.01540,"Volume":181700},{"Time":1495070820,"Price":0.01540,"Volume":355500},{"Time":1495070880,"Price":0.01530,"Volume":306100},{"Time":1495070940,"Price":0.01510,"Volume":717400},{"Time":1495071000,"Price":0.01500,"Volume":508000},{"Time":1495071060,"Price":0.01510,"Volume":711100},{"Time":1495071120,"Price":0.01500,"Volume":305400},{"Time":1495071180,"Price":0.01490,"Volume":92400},{"Time":1495071240,"Price":0.01490,"Volume":80400},{"Time":1495071300,"Price":0.01490,"Volume":213000},{"Time":1495071360,"Price":0.01490,"Volume":68500},{"Time":1495071420,"Price":0.01500,"Volume":82600},{"Time":1495071480,"Price":0.01510,"Volume":99700},{"Time":1495071540,"Price":0.01500,"Volume":153600},{"Time":1495071600,"Price":0.01500,"Volume":71500},{"Time":1495071660,"Price":0.01500,"Volume":161400},{"Time":1495071720,"Price":0.01500,"Volume":144900},{"Time":1495071780,"Price":0.01500,"Volume":123100},{"Time":1495071840,"Price":0.01500,"Volume":385300},{"Time":1495071900,"Price":0.01500,"Volume":342400},{"Time":1495071960,"Price":0.01510,"Volume":97500},{"Time":1495072020,"Price":0.01500,"Volume":94100},{"Time":1495072080,"Price":0.01510,"Volume":100300},{"Time":1495072140,"Price":0.01500,"Volume":73300},{"Time":1495072200,"Price":0.01500,"Volume":308300},{"Time":1495072260,"Price":0.01490,"Volume":273100},{"Time":1495072320,"Price":0.01500,"Volume":76500},{"Time":1495072380,"Price":0.01500,"Volume":86300},{"Time":1495072440,"Price":0.01500,"Volume":62700},{"Time":1495072500,"Price":0.01500,"Volume":67000},{"Time":1495072560,"Price":0.01500,"Volume":95200},{"Time":1495072620,"Price":0.01500,"Volume":81000},{"Time":1495072680,"Price":0.01500,"Volume":54700},{"Time":1495072740,"Price":0.01500,"Volume":88300},{"Time":1495072800,"Price":0.01500,"Volume":80700},{"Time":1495072860,"Price":0.01500,"Volume":71400},{"Time":1495072920,"Price":0.01500,"Volume":81000},{"Time":1495072980,"Price":0.01500,"Volume":67600},{"Time":1495073040,"Price":0.01500,"Volume":104300},{"Time":1495073100,"Price":0.01500,"Volume":82800},{"Time":1495073160,"Price":0.01500,"Volume":76200},{"Time":1495073220,"Price":0.01500,"Volume":61800},{"Time":1495073280,"Price":0.01500,"Volume":79500},{"Time":1495073340,"Price":0.01490,"Volume":93700},{"Time":1495073400,"Price":0.01500,"Volume":138500},{"Time":1495073460,"Price":0.01500,"Volume":71800},{"Time":1495073520,"Price":0.01500,"Volume":78000},{"Time":1495073580,"Price":0.01500,"Volume":56100},{"Time":1495073640,"Price":0.01490,"Volume":102400},{"Time":1495073700,"Price":0.01490,"Volume":113000},{"Time":1495073760,"Price":0.01490,"Volume":138300},{"Time":1495073820,"Price":0.01490,"Volume":92300},{"Time":1495073880,"Price":0.01490,"Volume":52900},{"Time":1495073940,"Price":0.01490,"Volume":61200},{"Time":1495074000,"Price":0.01480,"Volume":51400},{"Time":1495074060,"Price":0.01490,"Volume":69900},{"Time":1495074120,"Price":0.01490,"Volume":52900},{"Time":1495074180,"Price":0.01480,"Volume":50800},{"Time":1495074240,"Price":0.01480,"Volume":49900},{"Time":1495074300,"Price":0.01480,"Volume":44900},{"Time":1495074360,"Price":0.01480,"Volume":41700},{"Time":1495074420,"Price":0.01480,"Volume":39500},{"Time":1495074480,"Price":0.01480,"Volume":59800},{"Time":1495074540,"Price":0.01490,"Volume":39700},{"Time":1495074600,"Price":0.01470,"Volume":83800},{"Time":1495074660,"Price":0.01480,"Volume":51600},{"Time":1495074720,"Price":0.01480,"Volume":60000},{"Time":1495074780,"Price":0.01480,"Volume":75200},{"Time":1495074840,"Price":0.01480,"Volume":49200},{"Time":1495074900,"Price":0.01480,"Volume":64800},{"Time":1495074960,"Price":0.01480,"Volume":48500},{"Time":1495075020,"Price":0.01480,"Volume":43600},{"Time":1495075080,"Price":0.01480,"Volume":49700},{"Time":1495075140,"Price":0.01480,"Volume":49500},{"Time":1495075200,"Price":0.01480,"Volume":68600},{"Time":1495075260,"Price":0.01470,"Volume":38200},{"Time":1495075320,"Price":0.01470,"Volume":40400},{"Time":1495075380,"Price":0.01470,"Volume":38700},{"Time":1495075440,"Price":0.01460,"Volume":41500},{"Time":1495075500,"Price":0.01460,"Volume":28800},{"Time":1495075560,"Price":0.01460,"Volume":34400},{"Time":1495075620,"Price":0.01460,"Volume":49000},{"Time":1495075680,"Price":0.01460,"Volume":53500},{"Time":1495075740,"Price":0.01440,"Volume":500700},{"Time":1495075800,"Price":0.01440,"Volume":520400},{"Time":1495075860,"Price":0.01440,"Volume":64700},{"Time":1495075920,"Price":0.01440,"Volume":37400},{"Time":1495075980,"Price":0.01440,"Volume":32200},{"Time":1495076040,"Price":0.01440,"Volume":381900},{"Time":1495076100,"Price":0.01430,"Volume":173700},{"Time":1495076160,"Price":0.01420,"Volume":299800},{"Time":1495076220,"Price":0.01420,"Volume":38900},{"Time":1495076280,"Price":0.01420,"Volume":293800},{"Time":1495076340,"Price":0.01420,"Volume":346600},{"Time":1495076400,"Price":0.01420,"Volume":227700},{"Time":1495076460,"Price":0.01410,"Volume":125800},{"Time":1495076520,"Price":0.01410,"Volume":35100},{"Time":1495076580,"Price":0.01410,"Volume":60800},{"Time":1495076640,"Price":0.01420,"Volume":47600},{"Time":1495076700,"Price":0.01410,"Volume":108200},{"Time":1495076760,"Price":0.01420,"Volume":54700},{"Time":1495076820,"Price":0.01420,"Volume":48100},{"Time":1495076880,"Price":0.01420,"Volume":153800},{"Time":1495076940,"Price":0.01430,"Volume":64400},{"Time":1495077000,"Price":0.01420,"Volume":56500},{"Time":1495077060,"Price":0.01420,"Volume":53900},{"Time":1495077120,"Price":0.01430,"Volume":36900},{"Time":1495077180,"Price":0.01420,"Volume":37400},{"Time":1495077240,"Price":0.01410,"Volume":112200},{"Time":1495077300,"Price":0.01400,"Volume":1029100},{"Time":1495077360,"Price":0.01380,"Volume":1002000},{"Time":1495077420,"Price":0.01390,"Volume":54200},{"Time":1495077480,"Price":0.01390,"Volume":35800},{"Time":1495077540,"Price":0.01390,"Volume":44500},{"Time":1495077600,"Price":0.01360,"Volume":416800},{"Time":1495077660,"Price":0.01390,"Volume":264800},{"Time":1495077720,"Price":0.01390,"Volume":69200},{"Time":1495077780,"Price":0.01370,"Volume":83600},{"Time":1495077840,"Price":0.01360,"Volume":64000},{"Time":1495077900,"Price":0.01370,"Volume":75700},{"Time":1495077960,"Price":0.01370,"Volume":110300},{"Time":1495078020,"Price":0.01370,"Volume":443900},{"Time":1495078080,"Price":0.01370,"Volume":430700},{"Time":1495078140,"Price":0.01370,"Volume":52700},{"Time":1495078200,"Price":0.01370,"Volume":353500},{"Time":1495078260,"Price":0.01370,"Volume":347700},{"Time":1495078320,"Price":0.01370,"Volume":36400},{"Time":1495078380,"Price":0.01380,"Volume":724600},{"Time":1495078440,"Price":0.01390,"Volume":32900},{"Time":1495078500,"Price":0.01400,"Volume":51500},{"Time":1495078560,"Price":0.01400,"Volume":49700},{"Time":1495078620,"Price":0.01400,"Volume":37700},{"Time":1495078680,"Price":0.01400,"Volume":245400},{"Time":1495078740,"Price":0.01410,"Volume":240900},{"Time":1495078800,"Price":0.01430,"Volume":277900},{"Time":1495078860,"Price":0.01440,"Volume":81400},{"Time":1495078920,"Price":0.01450,"Volume":81900},{"Time":1495078980,"Price":0.01450,"Volume":162200},{"Time":1495079040,"Price":0.01430,"Volume":141300},{"Time":1495079100,"Price":0.01430,"Volume":62300},{"Time":1495079160,"Price":0.01430,"Volume":82600},{"Time":1495079220,"Price":0.01420,"Volume":31900},{"Time":1495079280,"Price":0.01430,"Volume":31700},{"Time":1495079340,"Price":0.01430,"Volume":25700},{"Time":1495079400,"Price":0.01450,"Volume":141100},{"Time":1495079460,"Price":0.01440,"Volume":22300},{"Time":1495079520,"Price":0.01430,"Volume":17900},{"Time":1495079580,"Price":0.01430,"Volume":682800},{"Time":1495079640,"Price":0.01430,"Volume":701400},{"Time":1495079700,"Price":0.01420,"Volume":40700},{"Time":1495079760,"Price":0.01420,"Volume":23000},{"Time":1495079820,"Price":0.01430,"Volume":32100},{"Time":1495079880,"Price":0.01430,"Volume":56100},{"Time":1495079940,"Price":0.01420,"Volume":269800},{"Time":1495080000,"Price":0.01420,"Volume":34900},{"Time":1495080060,"Price":0.01420,"Volume":39700},{"Time":1495080120,"Price":0.01420,"Volume":29100},{"Time":1495080180,"Price":0.01420,"Volume":363900},{"Time":1495080240,"Price":0.01420,"Volume":24500},{"Time":1495080300,"Price":0.01420,"Volume":24300},{"Time":1495080360,"Price":0.01430,"Volume":22300},{"Time":1495080420,"Price":0.01420,"Volume":51100},{"Time":1495080480,"Price":0.01420,"Volume":40000},{"Time":1495080540,"Price":0.01420,"Volume":45400},{"Time":1495080600,"Price":0.01420,"Volume":306700},{"Time":1495080660,"Price":0.01420,"Volume":26100},{"Time":1495080720,"Price":0.01420,"Volume":53300},{"Time":1495080780,"Price":0.01430,"Volume":72100},{"Time":1495080840,"Price":0.01430,"Volume":18600},{"Time":1495080900,"Price":0.01430,"Volume":34400},{"Time":1495080960,"Price":0.01430,"Volume":84100},{"Time":1495081020,"Price":0.01450,"Volume":124600},{"Time":1495081080,"Price":0.01440,"Volume":481400},{"Time":1495081140,"Price":0.01460,"Volume":201400},{"Time":1495081200,"Price":0.01460,"Volume":65600},{"Time":1495081260,"Price":0.01460,"Volume":199900},{"Time":1495081320,"Price":0.01440,"Volume":99800},{"Time":1495081380,"Price":0.01440,"Volume":105000},{"Time":1495081440,"Price":0.01440,"Volume":32400},{"Time":1495081500,"Price":0.01440,"Volume":55200},{"Time":1495081560,"Price":0.01440,"Volume":74400},{"Time":1495081620,"Price":0.01440,"Volume":44900},{"Time":1495081680,"Price":0.01440,"Volume":20500},{"Time":1495081740,"Price":0.01440,"Volume":33200},{"Time":1495081800,"Price":0.01440,"Volume":27700},{"Time":1495081860,"Price":0.01450,"Volume":40300},{"Time":1495081920,"Price":0.01450,"Volume":23300},{"Time":1495081980,"Price":0.01440,"Volume":15700},{"Time":1495082040,"Price":0.01460,"Volume":56600},{"Time":1495082100,"Price":0.01470,"Volume":34700},{"Time":1495082160,"Price":0.01470,"Volume":22900},{"Time":1495082220,"Price":0.01470,"Volume":31600},{"Time":1495082280,"Price":0.01470,"Volume":35600},{"Time":1495082340,"Price":0.01470,"Volume":1208100},{"Time":1495082400,"Price":0.01450,"Volume":114000},{"Time":1495082460,"Price":0.01450,"Volume":17100},{"Time":1495082520,"Price":0.01440,"Volume":40600},{"Time":1495082580,"Price":0.01450,"Volume":24400},{"Time":1495082640,"Price":0.01450,"Volume":33600},{"Time":1495082700,"Price":0.01440,"Volume":26000},{"Time":1495082760,"Price":0.01440,"Volume":23900},{"Time":1495082820,"Price":0.01440,"Volume":37100},{"Time":1495082880,"Price":0.01440,"Volume":16600},{"Time":1495082940,"Price":0.01440,"Volume":20800},{"Time":1495083000,"Price":0.01440,"Volume":22900},{"Time":1495083060,"Price":0.01440,"Volume":14800},{"Time":1495083120,"Price":0.01450,"Volume":36500},{"Time":1495083180,"Price":0.01480,"Volume":180300},{"Time":1495083240,"Price":0.01500,"Volume":636800},{"Time":1495083300,"Price":0.01500,"Volume":66800},{"Time":1495083360,"Price":0.01500,"Volume":102300},{"Time":1495083420,"Price":0.01490,"Volume":135500},{"Time":1495083480,"Price":0.01490,"Volume":51600},{"Time":1495083540,"Price":0.01490,"Volume":202400},{"Time":1495083600,"Price":0.01490,"Volume":162900},{"Time":1495083660,"Price":0.01460,"Volume":32900},{"Time":1495083720,"Price":0.01480,"Volume":42000},{"Time":1495083780,"Price":0.01490,"Volume":65600},{"Time":1495083840,"Price":0.01480,"Volume":33900},{"Time":1495083900,"Price":0.01480,"Volume":47800},{"Time":1495083960,"Price":0.01470,"Volume":26800},{"Time":1495084020,"Price":0.01480,"Volume":48900},{"Time":1495084080,"Price":0.01490,"Volume":76000},{"Time":1495084140,"Price":0.01490,"Volume":31800},{"Time":1495084200,"Price":0.01490,"Volume":92900},{"Time":1495084260,"Price":0.01480,"Volume":31400},{"Time":1495084320,"Price":0.01480,"Volume":32900},{"Time":1495084380,"Price":0.01490,"Volume":46300},{"Time":1495084440,"Price":0.01500,"Volume":257600},{"Time":1495084500,"Price":0.01490,"Volume":49900},{"Time":1495084560,"Price":0.01490,"Volume":41700},{"Time":1495084620,"Price":0.01490,"Volume":41100},{"Time":1495084680,"Price":0.01490,"Volume":43600},{"Time":1495084740,"Price":0.01490,"Volume":46800},{"Time":1495084800,"Price":0.01490,"Volume":36200},{"Time":1495084860,"Price":0.01490,"Volume":88600},{"Time":1495084920,"Price":0.01490,"Volume":54600},{"Time":1495084980,"Price":0.01490,"Volume":57500},{"Time":1495085040,"Price":0.01490,"Volume":53300},{"Time":1495085100,"Price":0.01490,"Volume":64800},{"Time":1495085160,"Price":0.01490,"Volume":61100},{"Time":1495085220,"Price":0.01490,"Volume":92600},{"Time":1495085280,"Price":0.01490,"Volume":89300},{"Time":1495085340,"Price":0.01490,"Volume":62400},{"Time":1495085400,"Price":0.01490,"Volume":33200},{"Time":1495085460,"Price":0.01480,"Volume":16500},{"Time":1495085520,"Price":0.01490,"Volume":38000},{"Time":1495085580,"Price":0.01490,"Volume":27600},{"Time":1495085640,"Price":0.01490,"Volume":41300},{"Time":1495085700,"Price":0.01480,"Volume":25100},{"Time":1495085760,"Price":0.01490,"Volume":28900},{"Time":1495085820,"Price":0.01490,"Volume":20700},{"Time":1495085880,"Price":0.01490,"Volume":22800},{"Time":1495085940,"Price":0.01500,"Volume":55800},{"Time":1495086000,"Price":0.01500,"Volume":51800},{"Time":1495086060,"Price":0.01500,"Volume":65500},{"Time":1495086120,"Price":0.01500,"Volume":44900},{"Time":1495086180,"Price":0.01500,"Volume":86900},{"Time":1495086240,"Price":0.01510,"Volume":72800},{"Time":1495086300,"Price":0.01510,"Volume":55900},{"Time":1495086360,"Price":0.01510,"Volume":55500},{"Time":1495086420,"Price":0.01510,"Volume":39600},{"Time":1495086480,"Price":0.01510,"Volume":35700},{"Time":1495086540,"Price":0.01510,"Volume":62100},{"Time":1495086600,"Price":0.01520,"Volume":168700},{"Time":1495086660,"Price":0.01510,"Volume":219900},{"Time":1495086720,"Price":0.01520,"Volume":86200},{"Time":1495086780,"Price":0.01510,"Volume":124300},{"Time":1495086840,"Price":0.01510,"Volume":170800},{"Time":1495086900,"Price":0.01510,"Volume":94200},{"Time":1495086960,"Price":0.01510,"Volume":40000},{"Time":1495087020,"Price":0.01510,"Volume":50300},{"Time":1495087080,"Price":0.01510,"Volume":357700},{"Time":1495087140,"Price":0.01490,"Volume":327200},{"Time":1495087200,"Price":0.01490,"Volume":186900},{"Time":1495087260,"Price":0.01480,"Volume":91800},{"Time":1495087320,"Price":0.01480,"Volume":391000},{"Time":1495087380,"Price":0.01470,"Volume":474100},{"Time":1495087440,"Price":0.01470,"Volume":155900},{"Time":1495087500,"Price":0.01470,"Volume":61800},{"Time":1495087560,"Price":0.01480,"Volume":76200},{"Time":1495087620,"Price":0.01490,"Volume":35500},{"Time":1495087680,"Price":0.01480,"Volume":23800},{"Time":1495087740,"Price":0.01490,"Volume":76600},{"Time":1495087800,"Price":0.01490,"Volume":111900},{"Time":1495087860,"Price":0.01490,"Volume":94500},{"Time":1495087920,"Price":0.01490,"Volume":56400},{"Time":1495087980,"Price":0.01490,"Volume":310700},{"Time":1495088040,"Price":0.01500,"Volume":124800},{"Time":1495088100,"Price":0.01500,"Volume":34400},{"Time":1495088160,"Price":0.01500,"Volume":63400},{"Time":1495088220,"Price":0.01490,"Volume":35400},{"Time":1495088280,"Price":0.01500,"Volume":93300},{"Time":1495088340,"Price":0.01500,"Volume":42100},{"Time":1495088400,"Price":0.01500,"Volume":42500},{"Time":1495088460,"Price":0.01500,"Volume":59400},{"Time":1495088520,"Price":0.01500,"Volume":102100},{"Time":1495088580,"Price":0.01500,"Volume":116500},{"Time":1495088640,"Price":0.01490,"Volume":84000},{"Time":1495088700,"Price":0.01490,"Volume":28300},{"Time":1495088760,"Price":0.01490,"Volume":29400},{"Time":1495088820,"Price":0.01490,"Volume":34500},{"Time":1495088880,"Price":0.01490,"Volume":35300},{"Time":1495088940,"Price":0.01490,"Volume":26900},{"Time":1495089000,"Price":0.01490,"Volume":29900},{"Time":1495089060,"Price":0.01500,"Volume":30800},{"Time":1495089120,"Price":0.01500,"Volume":98900},{"Time":1495089180,"Price":0.01500,"Volume":85300},{"Time":1495089240,"Price":0.01500,"Volume":50000},{"Time":1495089300,"Price":0.01500,"Volume":20700},{"Time":1495089360,"Price":0.01500,"Volume":40500},{"Time":1495089420,"Price":0.01490,"Volume":22600},{"Time":1495089480,"Price":0.01500,"Volume":84200},{"Time":1495089540,"Price":0.01500,"Volume":48000},{"Time":1495089600,"Price":0.01500,"Volume":59400},{"Time":1495089660,"Price":0.01500,"Volume":34200},{"Time":1495089720,"Price":0.01500,"Volume":41800},{"Time":1495089780,"Price":0.01490,"Volume":32100},{"Time":1495089840,"Price":0.01490,"Volume":30900},{"Time":1495089900,"Price":0.01490,"Volume":28600},{"Time":1495089960,"Price":0.01490,"Volume":35500},{"Time":1495090020,"Price":0.01490,"Volume":23300},{"Time":1495090080,"Price":0.01490,"Volume":28700},{"Time":1495090140,"Price":0.01490,"Volume":40500},{"Time":1495090200,"Price":0.01490,"Volume":23900},{"Time":1495090260,"Price":0.01490,"Volume":21400},{"Time":1495090320,"Price":0.01490,"Volume":24000},{"Time":1495090380,"Price":0.01500,"Volume":28400},{"Time":1495090440,"Price":0.01500,"Volume":34100},{"Time":1495090500,"Price":0.01500,"Volume":27600},{"Time":1495090560,"Price":0.01500,"Volume":30900},{"Time":1495090620,"Price":0.01500,"Volume":48300},{"Time":1495090680,"Price":0.01500,"Volume":26300},{"Time":1495090740,"Price":0.01500,"Volume":45700},{"Time":1495090800,"Price":0.01510,"Volume":332000},{"Time":1495090860,"Price":0.01510,"Volume":39400},{"Time":1495090920,"Price":0.01510,"Volume":71500},{"Time":1495090980,"Price":0.01510,"Volume":393200},{"Time":1495091040,"Price":0.01500,"Volume":358600},{"Time":1495091100,"Price":0.01510,"Volume":54500},{"Time":1495091160,"Price":0.01500,"Volume":55800},{"Time":1495091220,"Price":0.01500,"Volume":50200},{"Time":1495091280,"Price":0.01510,"Volume":35700},{"Time":1495091340,"Price":0.01520,"Volume":28800},{"Time":1495091400,"Price":0.01500,"Volume":33800},{"Time":1495091460,"Price":0.01510,"Volume":53300},{"Time":1495091520,"Price":0.01500,"Volume":29500},{"Time":1495091580,"Price":0.01500,"Volume":21000},{"Time":1495091640,"Price":0.01490,"Volume":23600},{"Time":1495091700,"Price":0.01500,"Volume":31700},{"Time":1495091760,"Price":0.01490,"Volume":15700},{"Time":1495091820,"Price":0.01490,"Volume":26100},{"Time":1495091880,"Price":0.01490,"Volume":28100},{"Time":1495091940,"Price":0.01500,"Volume":28700},{"Time":1495092000,"Price":0.01500,"Volume":28800},{"Time":1495092060,"Price":0.01500,"Volume":34800},{"Time":1495092120,"Price":0.01500,"Volume":37100},{"Time":1495092180,"Price":0.01500,"Volume":28900},{"Time":1495092240,"Price":0.01500,"Volume":27500},{"Time":1495092300,"Price":0.01510,"Volume":33400},{"Time":1495092360,"Price":0.01510,"Volume":148600},{"Time":1495092420,"Price":0.01510,"Volume":45300},{"Time":1495092480,"Price":0.01500,"Volume":157700},{"Time":1495092540,"Price":0.01500,"Volume":31000},{"Time":1495092600,"Price":0.01500,"Volume":35600},{"Time":1495092660,"Price":0.01490,"Volume":90000},{"Time":1495092720,"Price":0.01490,"Volume":69200},{"Time":1495092780,"Price":0.01490,"Volume":85700},{"Time":1495092840,"Price":0.01490,"Volume":74600},{"Time":1495092900,"Price":0.01490,"Volume":41400},{"Time":1495092960,"Price":0.01490,"Volume":50100},{"Time":1495093020,"Price":0.01490,"Volume":27900},{"Time":1495093080,"Price":0.01490,"Volume":24200},{"Time":1495093140,"Price":0.01490,"Volume":32100},{"Time":1495093200,"Price":0.01490,"Volume":22200},{"Time":1495093260,"Price":0.01490,"Volume":34100},{"Time":1495093320,"Price":0.01490,"Volume":46100},{"Time":1495093380,"Price":0.01490,"Volume":46100},{"Time":1495093440,"Price":0.01490,"Volume":16700},{"Time":1495093500,"Price":0.01490,"Volume":916600},{"Time":1495093560,"Price":0.01490,"Volume":37800},{"Time":1495093620,"Price":0.01490,"Volume":23300},{"Time":1495093680,"Price":0.01490,"Volume":31800},{"Time":1495093740,"Price":0.01490,"Volume":50000},{"Time":1495093800,"Price":0.01490,"Volume":58700},{"Time":1495093860,"Price":0.01490,"Volume":112600},{"Time":1495093920,"Price":0.01490,"Volume":87600},{"Time":1495093980,"Price":0.01490,"Volume":79800},{"Time":1495094040,"Price":0.01490,"Volume":40600},{"Time":1495094100,"Price":0.01490,"Volume":38100},{"Time":1495094160,"Price":0.01500,"Volume":25300},{"Time":1495094220,"Price":0.01490,"Volume":27400},{"Time":1495094280,"Price":0.01490,"Volume":28900},{"Time":1495094340,"Price":0.01490,"Volume":188900},{"Time":1495094400,"Price":0.01500,"Volume":27600},{"Time":1495094460,"Price":0.01500,"Volume":26300},{"Time":1495094520,"Price":0.01500,"Volume":36600},{"Time":1495094580,"Price":0.01500,"Volume":27900},{"Time":1495094640,"Price":0.01500,"Volume":49300},{"Time":1495094700,"Price":0.01500,"Volume":56600},{"Time":1495094760,"Price":0.01500,"Volume":49600},{"Time":1495094820,"Price":0.01500,"Volume":50000},{"Time":1495094880,"Price":0.01500,"Volume":29300},{"Time":1495094940,"Price":0.01500,"Volume":36200},{"Time":1495095000,"Price":0.01500,"Volume":34400},{"Time":1495095060,"Price":0.01500,"Volume":43000},{"Time":1495095120,"Price":0.01500,"Volume":38500},{"Time":1495095180,"Price":0.01500,"Volume":24000}],"MarketInfo":{"ProductId":9,"ProductName":"辣椒","ProductCode":"800004","IncreaseRate":0,"Increase":0,"Price":0.01500,"OpenPrice":0.01480,"HighestPrice":0.01560,"LowestPrice":0.01360,"LimitUp":0.01630,"LimitDown":0.01330,"Volume":46649300,"ProductImage":null},"SysDT":1495095212}}';
result=JSON.parse(result);
var summary = result.data.MarketInfo;
var timeshare = result.data.TimeShare;
/*for(var i=0;i<timeshare.length;i++){
timeshare[i].Price=0.0149*Math.random();
timeshare[i].Volume=28700*Math.random();
}*/
var sysdatetime = Math.floor(result.data.SysDT/1000);//这个是自己添加的时间数据
//分时区间
var fuckMin = summary.LimitDown;
var fuckMax = summary.LimitUp;
//玫瑰花花的分时区间
if (summary.ProductId == "800008") {
var _fuck_ = 0;
if (Math.abs(summary.HighestPrice - summary.OpenPrice) - Math.abs(summary.LowestPrice - summary.OpenPrice) > 0) {
_fuck_ = Math.abs(summary.HighestPrice - summary.OpenPrice);
} else {
_fuck_ = Math.abs(summary.LowestPrice - summary.OpenPrice);
}
fuckMin = summary.OpenPrice - _fuck_;
fuckMax = summary.OpenPrice + _fuck_;
if (fuckMin < 0) {
fuckMin = 0;
}
}
var data = Fill(timeshare, summary, sysdatetime);
Highcharts.theme = {
xAxis: {
gridLineColor: '#E7F2F8',
gridLineWidth: 1,
},
global: {
useUTC: false
}
};
Highcharts.setOptions(Highcharts.theme);
var prices = [];
var volumes = [];
for (i = 0; i < data.length; i++) {
prices.push([
data[i][0], // the date
data[i][1], // price
]);
volumes.push([
data[i][0], // the date
data[i][2] // the volume
]);
}
// 分时
$('#kline').highcharts('StockChart', {
chart: {
plotBorderColor: '#E7F2F8',
plotBorderWidth: 0,
},
tooltip: {
formatter: function () {
if (this.y == undefined) {
return;
}
var price = this.points[0].point.y;//var price = this.points[0].point.y.toFixed(4);
var volume = this.points[1].point.y;
var date = Highcharts.dateFormat('%Y-%m-%d', this.x);
var time = Highcharts.dateFormat('%H:%M', this.x);
if (volume > 10000 * 10000) {
volume = (volume * 0.0001 * 0.0001).toFixed(4) + "亿";
} else if (volume > 10000) {
volume = (volume * 0.0001).toFixed(4) + "万";
}
var tip = '日期:' + date + '<br/>';
tip = tip + '时间:' + time + '<br/>';
tip = tip + '价格:' + price + '<br/>';
tip = tip + '成交:' + volume + '<br/>';
return tip;
}
},
credits: {
enabled: false
},
title: {
enabled: false
},
subtitle: {
enabled: false
},
yAxis: {
gapGridLineWidth: 1,
gridLineColor: '#E7F2F8',
},
exporting: {
enabled: false
},
scrollbar: {
enabled: false
},
navigator: {
enabled: false
},
rangeSelector: {
enabled: false
},
yAxis: [
{
height: '80%',
lineWidth: 1,
gapGridLineWidth: 1,
gridLineColor: '#E7F2F8',
//min: summary.LimitDown,
//max: summary.LimitUp,
min: fuckMin,
max: fuckMax,
}, {
top: '85%',
height: '15%',
offset: 0,
lineWidth: 1,
gapGridLineWidth: 1,
gridLineColor: '#E7F2F8',
}],
series: [{
type: 'area',
name: 'prices',
data: prices,
lineWidth: 0.8,
gapSize: 5,
tooltip: {
valueDecimals: 4
},
fillColor: {
linearGradient: {
x1: 0,
y1: 0,
x2: 0,
y2: 1
},
stops: [
[0, Highcharts.Color(Highcharts.getOptions().colors[0]).setOpacity(0).get('rgba')],
[1, Highcharts.Color(Highcharts.getOptions().colors[0]).setOpacity(0.3).get('rgba')]
]
},
dataGrouping: {
enabled: false
},
animation: false
}, {
gapSize: 5,
type: 'column',
name: 'Volume',
data: volumes,
yAxis: 1,
color: '#7CB5EC',
dataGrouping: {
enabled: false
},
animation: false
}]
});
/*},
error: function (XMLHttpRequest, textStatus, errorThrown) {
//alert("获取数据异常,请稍候再试!")
}
});*/
}
/*画图设置 参数重置*/
var highStockChart = function (divid, data) {
// console.log("highStockChart 画图");
// console.log(data);
//开盘价^最高价^最低价^收盘价^成交量^成交额^涨跌幅^五日均线^十日均线^三十日均线
var open, high, low, close, y, zde, zdf;
//定义数组
var ohlcArray = [], volumeArray = [], MA5Array = [], MA10Array = [], MA30Array = [], zdfArray = [], zdeArray = [];
//修改colum条的颜色重写了源码方法
var originalDrawPoints = Highcharts.seriesTypes.column.prototype.drawPoints;
Highcharts.seriesTypes.column.prototype.drawPoints = function () {
var merge = Highcharts.merge,
series = this,
chart = this.chart,
points = series.points,
i = points.length;
while (i--) {
var candlePoint = chart.series[0].points[i];
if (candlePoint.open != undefined && candlePoint.close != undefined) { //如果是K线图 改变矩形条颜色,否则不变
var color = '#888888';
if (candlePoint.open < candlePoint.close) {
color = '#DD2200';
}
else if (candlePoint.open > candlePoint.close) {
color = '#33AA11'
}
var seriesPointAttr = merge(series.pointAttr);
seriesPointAttr[''].fill = color;
seriesPointAttr.hover.fill = Highcharts.Color(color).brighten(0.3).get();
seriesPointAttr.select.fill = color;
} else {
var seriesPointAttr = merge(series.pointAttr);
}
points[i].pointAttr = seriesPointAttr;
}
originalDrawPoints.call(this);
}
//修改candlestick条的颜色重写了源码方法
var originalDrawPoints1 = Highcharts.seriesTypes.candlestick.prototype.drawPoints;
Highcharts.seriesTypes.candlestick.prototype.drawPoints = function () {
var merge = Highcharts.merge,
series = this,
chart = this.chart,
points = series.points,
i = points.length;
while (i--) {
var candlePoint = chart.series[0].points[i];
if (candlePoint.open != undefined && candlePoint.close != undefined) { //如果是K线图 改变矩形条颜色,否则不变
var color = '#888888';
if (candlePoint.open < candlePoint.close) {
color = '#DD2200';
}
else if (candlePoint.open > candlePoint.close) {
color = '#33AA11'
}
var seriesPointAttr = merge(series.pointAttr);
/*报错屏蔽一下 手机拖动一下*/
seriesPointAttr[''].stroke = color;
seriesPointAttr[''].fill = color;
} else {
var seriesPointAttr = merge(series.pointAttr);
}
points[i].pointAttr = seriesPointAttr;
}
originalDrawPoints1.call(this);
}
//常量本地化
Highcharts.setOptions({
global: {
useUTC: false
},
lang: {
rangeSelectorFrom: "日期:",
rangeSelectorTo: "至",
rangeSelectorZoom: "范围",
loading: '加载中...',
shortMonths: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
weekdays: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
},
});
//把当前最新K线数据加载进来
var length = data.length - 1;
for (i = 0; i < data.length; i++) {
ohlcArray.push([
parseInt(data[i].Date * 1000), // the date
parseFloat(data[i].OpeningPrice), // open
parseFloat(data[i].HighestPrice), // high
parseFloat(data[i].LowestPrice), // low
parseFloat(data[i].ClosingPrice) // close
]);
MA5Array.push([
parseInt(data[i].Date * 1000), // the date
MovingAverage(data, i, 5)
]);
MA10Array.push([
parseInt(data[i].Date * 1000),
MovingAverage(data, i, 10)
]);
MA30Array.push([
parseInt(data[i].Date * 1000),
MovingAverage(data, i, 30)
]);
volumeArray.push([
parseInt(data[i].Date * 1000), // the date
parseInt(data[i].Volume) // 成交量
]);
}
var last = data.length - 1;
if (last + 1 <= 90 && $(window).width() > 768) {
for (i = 1; i <= 90 - last - 1; i++) {
var date = data[last].Date * 1000 + i * 24 * 60 * 60 * 1000;
ohlcArray.push([
date, // the date
null, // open
null, // high
null, // low
null // close
]);
}
}
//开始绘图
return new Highcharts.StockChart({
chart: {
renderTo: divid,
margin: [10, 10, 15, 10],
plotBorderColor: '#E7F2F8',
plotBorderWidth: 0,
events: {
load: function () {
var length = ohlcArray.length - 1;
}
}
},
loading: {
labelStyle: {
position: 'relative',
top: '10em',
zindex: 1000
}
},
credits: {
enabled: false
},
rangeSelector: {
enabled: false,
},
plotOptions: {
//修改蜡烛颜色
candlestick: {
color: '#33AA11',
upColor: '#DD2200',
lineColor: '#33AA11',
upLineColor: '#DD2200',
maker: {
states: {
hover: {
enabled: false,
}
}
},
},
//去掉曲线和蜡烛上的hover事件
series: {
states: {
hover: {
enabled: false
}
},
line: {
marker: {
enabled: false
}
}
}
},
//格式化悬浮框
tooltip: {
formatter: function () {
if (this.y == undefined) {
return;
}
for (var i = 0; i < data.length; i++) {
if (this.x == data[i].Date * 1000) {
zde = parseFloat(data[i].ClosingPrice - data[i].OpeningPrice).toFixed(4);
//zdf = parseFloat((data[i].ClosingPrice - data[i].OpeningPrice) / data[i].OpeningPrice).toFixed(4);
zdf = (data[i].ClosingPrice - data[i].OpeningPrice) / data[i].OpeningPrice;
}
}
open = this.points[0].point.open.toFixed(4);
high = this.points[0].point.high.toFixed(4);
low = this.points[0].point.low.toFixed(4);
close = this.points[0].point.close.toFixed(4);
y = this.points[1].point.y;
var tip = '<b>' + Highcharts.dateFormat('%Y-%m-%d %A', this.x) + '</b><br/>';
tip += '开盘价:' + open + '<br/>';
tip += '收盘价:' + close + '<br/>';
tip += '最高价:' + high + '<br/>';
tip += '最低价:' + low + '<br/>';
if (open < close) {
tip += '涨跌额:<span style="color:#F56363;">' + zde + '</span><br/>';
tip += '涨跌幅:<span style="color:#F56363;">' + (zdf * 100).toFixed(2) + '%</span><br/>';
} else if (open > close) {
tip += '涨跌额:<span style="color:#5B910B;">' + zde + '</span><br/>';
tip += '涨跌幅:<span style="color:#5B910B;">' + (zdf * 100).toFixed(2) + '%</span><br/>';
} else {
tip += '涨跌额:<span>' + zde + '</span><br/>';
tip += '涨跌幅:<span>' + (zdf * 100).toFixed(2) + '%</span><br/>';
}
if (y > 10000 * 10000) {
tip += "成交量:" + (y * 0.00000001).toFixed(4) + "亿<br/>";
} else if (y > 10000) {
tip += "成交量:" + (y * 0.0001).toFixed(4) + "万<br/>";
}else if(y =='null'){
tip += "成交量:" + 0 + "<br/>";
} else {
tip += "成交量:" + y + "<br/>";
}
return tip;
},
crosshairs: {
//dashStyle: 'dash'
},
borderColor: 'white',
shadow: true
},
title: {
enabled: false
},
subtitle: {
enabled: false
},
exporting: {
enabled: false
},
scrollbar: {
//enabled: false
},
navigator: {
//enabled: false,
adaptToUpdatedData: false,
xAxis: {
labels: {
formatter: function (e) {
return Highcharts.dateFormat('%m-%d', this.value);
}
}
},
handles: {
backgroundColor: '#808080',
},
// margin: 0
},
xAxis: {
type: 'datetime',
tickLength: 0,
events: {
afterSetExtremes: function (e) {
var minTime = Highcharts.dateFormat("%Y-%m-%d", e.min);
var maxTime = Highcharts.dateFormat("%Y-%m-%d", e.max);
var chart = this.chart;
}
},
labels: {
formatter: function (e) {
return Highcharts.dateFormat('%m-%d', this.value);
alert('a')
}
}
},
yAxis: [{
title: {
enable: false
},
height: '74%',
lineWidth: 1,
gridLineColor: '#346691',
gridLineWidth: 0.1,
opposite: true,
}, {
title: {
enable: false
},
top: '80%',
height: '20%',
offset: 0,
gridLineColor: '#346691',
gridLineWidth: 0.1,
lineWidth: 1,
}],
series: [
{
type: 'candlestick',
id: "candlestick",
name: "kline",
data: ohlcArray,
dataGrouping: {
enabled: false
},
animation: false,
//pointWidth: 5,
}
,
{
type: 'column',
name: '成交量',
data: volumeArray,
yAxis: 1,
dataGrouping: {
enabled: false
},
animation: false,
//pointWidth: 5,
},
{
type: 'spline',
name: 'MA5',
color: '#1aadce',
data: MA5Array,
lineWidth: 1,
dataGrouping: {
enabled: false
},
animation: false
},
{
type: 'spline',
name: 'MA10',
data: MA10Array,
color: '#FF7F00',
threshold: null,
lineWidth: 1,
dataGrouping: {
enabled: false
},
animation: false
},
{
type: 'spline',
name: 'MA30',
data: MA30Array,
color: '#910000',
threshold: null,
lineWidth: 1,
dataGrouping: {
enabled: false
},
animation: false
}
]
});
}