hqchart 1.1.12525 → 1.1.12540

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5726,7 +5726,7 @@ this.Canvas.strokeStyle=this.PointColor;if(isMoveOn)this.Canvas.lineWidth=1*pixe
5726
5726
  {this.Canvas.beginPath();this.Canvas.arc(item.X,item.Y,this.PointRadius*pixel,0,360,false);this.Canvas.fill();//画实心圆
5727
5727
  this.Canvas.closePath();}}this.Canvas.restore();};//计算2个点线的,左右的延长线的点
5728
5728
  this.CalculateExtendLinePoint=function(ptStart,ptEnd){var result={};var left=this.Frame.ChartBorder.GetLeft();var right=this.Frame.ChartBorder.GetRight();var top=this.Frame.ChartBorder.GetTopEx();var bottom=this.Frame.ChartBorder.GetBottom();var a=ptEnd.X-ptStart.X;var b=ptEnd.Y-ptStart.Y;if(a>0){var b2=bottom-ptStart.Y;var a2=a*b2/b;var pt=new Point();pt.X=ptStart.X+a2;pt.Y=bottom;result.End=pt;var b2=ptEnd.Y-top;var a2=a*b2/b;var pt2=new Point();pt2.Y=top;pt2.X=ptEnd.X-a2;result.Start=pt2;}else{var b2=bottom-ptStart.Y;var a2=Math.abs(a)*b2/b;var pt=new Point();pt.X=ptStart.X-a2;;pt.Y=bottom;result.End=pt;var b2=ptEnd.Y-top;var a2=Math.abs(a)*b2/b;var pt2=new Point();pt2.Y=top;pt2.X=ptEnd.X+a2;result.Start=pt2;}return result;};//计算2个点线的,点0->点1->延长线的点
5729
- this.CalculateExtendLineEndPoint=function(aryPoint){var left=this.Frame.ChartBorder.GetLeft();var right=this.Frame.ChartBorder.GetRight();var bottom=this.Frame.ChartBorder.GetBottomEx();var top=this.Frame.ChartBorder.GetTopEx();var a=aryPoint[1].X-aryPoint[0].X;var b=aryPoint[1].Y-aryPoint[0].Y;if(a>0){var a1=right-aryPoint[0].X;var b1=a1*b/a;var y=b1+aryPoint[0].Y;if(y>=top&&y<=bottom){var pt=new Point();pt.X=right;pt.Y=y;return pt;}if(b>0){var b2=bottom-aryPoint[0].Y;var a2=a*b2/b;var x=a2+aryPoint[0].X;var pt2=new Point();pt2.X=x;pt2.Y=bottom;return pt2;}else{var b2=top-aryPoint[0].Y;var a2=a*b2/b;var x=a2+aryPoint[0].X;var pt2=new Point();pt2.X=x;pt2.Y=top;return pt2;}}else{var a1=aryPoint[0].X-left;var b1=a1*b/Math.abs(a);var y=b1+aryPoint[0].Y;if(y>=top&&y<=bottom){var pt=new Point();pt.X=left;pt.Y=y;return pt;}if(b>0){var b2=bottom-aryPoint[0].Y;var a2=a*b2/b;var x=a2+aryPoint[0].X;var pt2=new Point();pt2.X=x;pt2.Y=bottom;return pt2;}else{var b2=top-aryPoint[0].Y;var a2=a*b2/b;var x=a2+aryPoint[0].X;var pt2=new Point();pt2.X=x;pt2.Y=top;return pt2;}}};//坐标是否在点上 返回在第几个点上
5729
+ this.CalculateExtendLineEndPoint=function(aryPoint){var left=this.Frame.ChartBorder.GetLeft();var right=this.Frame.ChartBorder.GetRight();var bottom=this.Frame.ChartBorder.GetBottomEx();var top=this.Frame.ChartBorder.GetTopEx();var a=aryPoint[1].X-aryPoint[0].X;var b=aryPoint[1].Y-aryPoint[0].Y;if(a>0){var a1=right-aryPoint[0].X;var b1=a1*b/a;var y=b1+aryPoint[0].Y;if(y>=top&&y<=bottom){var pt=new Point();pt.X=right;pt.Y=y;return pt;}if(b>0){var b2=bottom-aryPoint[0].Y;var a2=a*b2/b;var x=a2+aryPoint[0].X;var pt2=new Point();pt2.X=x;pt2.Y=bottom;return pt2;}else if(b==0){var pt2=new Point();pt2.X=right;pt2.Y=aryPoint[0].Y;return pt2;}else{var b2=top-aryPoint[0].Y;var a2=a*b2/b;var x=a2+aryPoint[0].X;var pt2=new Point();pt2.X=x;pt2.Y=top;return pt2;}}else{var a1=aryPoint[0].X-left;var b1=a1*b/Math.abs(a);var y=b1+aryPoint[0].Y;if(y>=top&&y<=bottom){var pt=new Point();pt.X=left;pt.Y=y;return pt;}if(b>0){var b2=bottom-aryPoint[0].Y;var a2=a*b2/b;var x=a2+aryPoint[0].X;var pt2=new Point();pt2.X=x;pt2.Y=bottom;return pt2;}else if(b==0){var pt2=new Point();pt2.X=left;pt2.Y=aryPoint[0].Y;return pt2;}else{var b2=top-aryPoint[0].Y;var a2=a*b2/b;var x=a2+aryPoint[0].X;var pt2=new Point();pt2.X=x;pt2.Y=top;return pt2;}}};//坐标是否在点上 返回在第几个点上
5730
5730
  this.IsPointInXYValue=function(x,y,option){if(!this.Frame)return-1;var data=this.Frame.Data;if(!data)return-1;if(!this.Value)return-1;var radius=5;if(option&&IFrameSplitOperator.IsNumber(option.Zoom))radius+=option.Zoom;else if(this.Option&&IFrameSplitOperator.IsNumber(this.Option.Zoom))radius+=this.Option.Zoom;var isHScreen=this.Frame.IsHScreen;radius*=GetDevicePixelRatio();for(var i=0;i<this.Value.length;++i)//是否在点上
5731
5731
  {var item=this.Value[i];var pt=new Point();if(isHScreen){pt.Y=this.Frame.GetXFromIndex(item.XValue-data.DataOffset);pt.X=this.Frame.GetYFromData(item.YValue);}else{pt.X=this.Frame.GetXFromIndex(item.XValue-data.DataOffset);pt.Y=this.Frame.GetYFromData(item.YValue);}this.Canvas.beginPath();this.Canvas.arc(pt.X,pt.Y,radius,0,360);if(this.Canvas.isPointInPath(x,y))return i;}return-1;};//坐标是否在线段上 返回在第几个线段上
5732
5732
  this.IsPointInLine=function(x,y,option){if(!this.LinePoint)return-1;var lineWidth=5;if(option&&IFrameSplitOperator.IsNumber(option.Zoom))lineWidth+=option.Zoom;else if(this.Option&&IFrameSplitOperator.IsNumber(this.Option.Zoom))lineWidth+=this.Option.Zoom;var pixel=GetDevicePixelRatio();lineWidth*=pixel;for(var i=0;i<this.LinePoint.length;++i){var item=this.LinePoint[i];var ptStart=item.Start;var ptEnd=item.End;this.Canvas.beginPath();if(ptStart.X==ptEnd.X)//竖线
@@ -6209,13 +6209,14 @@ if(this.ExtendLine.Right)xRight=this.Frame.ChartBorder.GetRight();if(this.Extend
6209
6209
  var clrArea=null;this.Canvas.font=this.Font;if(this.ExtendLine.Left)this.Canvas.textAlign="left";else this.Canvas.textAlign="right";this.Canvas.textBaseline="bottom";for(var i=0;i<aryArea.length;++i){var item=aryArea[i];var y=yBottom-height*item.Value;//var yValue=baseValue+diffValue*item.Value;
6210
6210
  yValue=this.Frame.GetYData(y,false);y=ToFixedPoint(y);if(this.EnableBGColor&&IFrameSplitOperator.IsNumber(yPre)){var rtBG={Left:xLeft,Right:xRight,Top:yPre,Bottom:y};rtBG.Width=rtBG.Right-rtBG.Left;rtBG.Height=rtBG.Bottom-rtBG.Top;this.Canvas.fillStyle=clrArea;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}this.Canvas.strokeStyle=item.Color;this.Canvas.beginPath();this.Canvas.moveTo(xLeft,y);this.Canvas.lineTo(xRight,y);this.Canvas.stroke();var line={Start:{X:xLeft,Y:y},End:{X:xRight,Y:y}};this.LinePoint.push(line);//文字
6211
6211
  var text=item.Value+' ('+yValue.toFixed(2)+')';this.Canvas.fillStyle=item.Color;if(this.ExtendLine.Left)this.Canvas.fillText(text,xLeft+2,y-2);else this.Canvas.fillText(text,xLeft-2,y-2);yPre=y;clrArea=IChartDrawPicture.ColorToRGBA(item.Color,this.AreaConfig.Opacity);}};}function ChartFibSpeedResistanceFan(){this.newMethod=IChartDrawPicture;//派生
6212
- this.newMethod();delete this.newMethod;this.ClassName='ChartFibSpeedResistanceFan';this.PointCount=2;this.Font=12*GetDevicePixelRatio()+"px 微软雅黑";this.IsPointIn=this.IsPointIn_XYValue_Line;this.GetXYCoordinate=this.GetXYCoordinate_default;this.PointToValue_Default=this.PointToValue;this.OnlyMoveXIndex=true;this.IsSupportMagnet=true;this.LineWidth=1;this.EnableBGColor=true;this.AreaConfig={AryYData:[{Value:0,Color:"rgb(128,128,128)",Enable:true},{Value:0.25,Color:"rgb(242,52,69)",Enable:true},{Value:0.382,Color:"rgb(255,152,0)",Enable:true},{Value:0.5,Color:"rgb(76,175,80)",Enable:true},{Value:0.618,Color:"rgb(8,153,129)",Enable:true},{Value:0.75,Color:"rgb(0,188,212)",Enable:true},{Value:1,Color:"rgb(120,123,134)",Enable:true}],AryXData:[{Value:0,Color:"rgb(128,128,128)",Enable:true},{Value:0.25,Color:"rgb(242,52,69)",Enable:true},{Value:0.382,Color:"rgb(255,152,0)",Enable:true},{Value:0.5,Color:"rgb(76,175,80)",Enable:true},{Value:0.618,Color:"rgb(8,153,129)",Enable:true},{Value:0.75,Color:"rgb(0,188,212)",Enable:true},{Value:1,Color:"rgb(120,123,134)",Enable:true}],Opacity:0.3};this.Draw=function(){this.LinePoint=[];if(this.IsFrameMinSize())return;var bCheckXY=false;var drawPoint=this.CalculateDrawPoint({IsCheckX:bCheckXY,IsCheckY:bCheckXY});if(!drawPoint)return;if(drawPoint.length!=2)return;this.ClipFrame();var ptStart=drawPoint[0];var ptEnd=drawPoint[1];this.SetLineWidth();this.DrawBlock(ptEnd,ptStart);this.RestoreLineWidth();this.DrawPoint(drawPoint);//画点
6212
+ this.newMethod();delete this.newMethod;this.ClassName='ChartFibSpeedResistanceFan';this.PointCount=2;this.Font=12*GetDevicePixelRatio()+"px 微软雅黑";this.IsPointIn=this.IsPointIn_XYValue_Line;this.GetXYCoordinate=this.GetXYCoordinate_default;this.PointToValue_Default=this.PointToValue;this.OnlyMoveXIndex=true;this.IsSupportMagnet=true;this.LineWidth=1;this.EnableBGColor=true;this.AreaConfig={AryYData:[{Value:0,Color:"rgb(128,128,128)",Enable:true},{Value:0.25,Color:"rgb(242,52,69)",Enable:true},{Value:0.382,Color:"rgb(255,152,0)",Enable:true},{Value:0.5,Color:"rgb(76,175,80)",Enable:true},{Value:0.618,Color:"rgb(8,153,129)",Enable:true},{Value:0.75,Color:"rgb(0,188,212)",Enable:true},{Value:1,Color:"rgb(120,123,134)",Enable:true}],AryXData:[{Value:0,Color:"rgb(128,128,128)",Enable:true},{Value:0.25,Color:"rgb(242,52,69)",Enable:true},{Value:0.382,Color:"rgb(255,152,0)",Enable:true},{Value:0.5,Color:"rgb(76,175,80)",Enable:true},{Value:0.618,Color:"rgb(8,153,129)",Enable:true},{Value:0.75,Color:"rgb(0,188,212)",Enable:true},{Value:1,Color:"rgb(120,123,134)",Enable:true}],Opacity:0.3};this.SetOption=function(option){if(!option)return;if(option.Font)this.Font=option.Font;if(option.LineWidth)this.LineWidth=option.LineWidth;if(IFrameSplitOperator.IsBool(option.EnableBGColor))this.EnableBGColor=option.EnableBGColor;if(option.AreaConfig)this.AreaConfig=option.AreaConfig;};//导出成存储格式
6213
+ this.ExportStorageData=function(){var storageData=this.ExportBaseData();storageData.Value=[];for(var i=0;i<this.Value.length&&i<this.PointCount;++i){var item=this.Value[i];storageData.Value.push({XValue:item.XValue,YValue:item.YValue});}storageData.Font=this.Font;storageData.EnableBGColor=this.EnableBGColor;storageData.AreaConfig=CloneData(this.AreaConfig);return storageData;};this.ImportStorageData=function(storageData){if(storageData.Font)this.Font=storageData.Font;if(IFrameSplitOperator.IsBool(storageData.EnableBGColor))this.EnableBGColor=storageData.EnableBGColor;if(storageData.AreaConfig)this.AreaConfig=storageData.AreaConfig;};this.Draw=function(){this.LinePoint=[];if(this.IsFrameMinSize())return;var bCheckXY=false;var drawPoint=this.CalculateDrawPoint({IsCheckX:bCheckXY,IsCheckY:bCheckXY});if(!drawPoint)return;if(drawPoint.length!=2)return;this.ClipFrame();var ptStart=drawPoint[0];var ptEnd=drawPoint[1];this.SetLineWidth();this.DrawBlock(ptEnd,ptStart);this.RestoreLineWidth();this.DrawPoint(drawPoint);//画点
6213
6214
  this.Canvas.restore();};//获取在第几象限
6214
6215
  this.GetQuadrant=function(ptStart,ptEnd){if(ptStart.X<ptEnd.X&&ptStart.Y>ptEnd.Y)return 1;else if(ptStart.X>ptEnd.X&&ptStart.Y>ptEnd.Y)return 2;else if(ptStart.X<ptEnd.X&&ptStart.Y<ptEnd.Y)return 4;else return 3;};this.DrawBlock=function(ptStart,ptEnd){var center=ptEnd;var xDiff=ptEnd.X-ptStart.X;var yDiff=ptEnd.Y-ptStart.Y;var quadrant=this.GetQuadrant(center,ptStart);//象限
6215
6216
  var aryYData=this.GetArrayAreaConfig(this.AreaConfig.AryYData);var ptPre=null;//上一个点
6216
- var clrArea=null;this.Canvas.font=this.Font;var textOffset=4;if(quadrant==1||quadrant==4){this.Canvas.textAlign="right";textOffset=-4;}else{this.Canvas.textAlign="left";textOffset=4;}this.Canvas.textBaseline="middle";for(var i=0;i<aryYData.length;++i){var item=aryYData[i];var y=item.Value*yDiff+ptStart.Y;var pt=this.CalculateExtendLineEndPoint([center,{X:ptStart.X,Y:y}]);if(ptPre){this.Canvas.beginPath();this.Canvas.moveTo(center.X,center.Y);this.Canvas.lineTo(ptPre.X,ptPre.Y);this.Canvas.lineTo(pt.X,pt.Y);this.Canvas.closePath();this.Canvas.fillStyle=clrArea;this.Canvas.fill();}this.Canvas.strokeStyle=item.Color;this.Canvas.beginPath();this.Canvas.moveTo(center.X,center.Y);this.Canvas.lineTo(pt.X,pt.Y);this.Canvas.stroke();this.LinePoint.push({Start:center,End:pt});if(item.Value!=1){this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(center.X,y);this.Canvas.lineTo(ptStart.X,y);this.Canvas.stroke();}ptPre=pt;clrArea=IChartDrawPicture.ColorToRGBA(item.Color,this.AreaConfig.Opacity);//文字
6217
+ var clrArea=null;this.Canvas.font=this.Font;var border=this.Frame.GetBorder();var ptLeftTop={X:border.Left,Y:border.TopEx};var ptRightTop={X:border.Right,Y:border.TopEx};var ptLeftBottom={X:border.Left,Y:border.BottomEx};var ptRightBottom={X:border.Right,Y:border.BottomEx};var textOffset=4;if(quadrant==1||quadrant==4){this.Canvas.textAlign="right";textOffset=-4;}else{this.Canvas.textAlign="left";textOffset=4;}this.Canvas.textBaseline="middle";for(var i=0;i<aryYData.length;++i){var item=aryYData[i];var y=item.Value*yDiff+ptStart.Y;var pt=this.CalculateExtendLineEndPoint([center,{X:ptStart.X,Y:y}]);if(ptPre){this.Canvas.beginPath();this.Canvas.moveTo(center.X,center.Y);this.Canvas.lineTo(ptPre.X,ptPre.Y);if(quadrant==1){if(ptPre.X>=ptRightTop.X&&pt.X<ptRightTop.X){this.Canvas.lineTo(ptRightTop.X,ptRightTop.Y);}}else if(quadrant==2){if(ptPre.X<=ptLeftTop.X&&pt.X>ptLeftTop.X){this.Canvas.lineTo(ptLeftTop.X,ptLeftTop.Y);}}else if(quadrant==3){if(ptPre.X<=ptLeftBottom.X&&pt.X>ptLeftBottom.X){this.Canvas.lineTo(ptLeftBottom.X,ptLeftBottom.Y);}}else if(quadrant==4){if(ptPre.X>=ptRightBottom.X&&pt.X<ptRightBottom.X){this.Canvas.lineTo(ptRightBottom.X,ptRightBottom.Y);}}this.Canvas.lineTo(pt.X,pt.Y);this.Canvas.closePath();this.Canvas.fillStyle=clrArea;this.Canvas.fill();}this.Canvas.strokeStyle=item.Color;this.Canvas.beginPath();this.Canvas.moveTo(center.X,center.Y);this.Canvas.lineTo(pt.X,pt.Y);this.Canvas.stroke();this.LinePoint.push({Start:center,End:pt});if(item.Value!=1){this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(center.X,y);this.Canvas.lineTo(ptStart.X,y);this.Canvas.stroke();}ptPre=pt;clrArea=IChartDrawPicture.ColorToRGBA(item.Color,this.AreaConfig.Opacity);//文字
6217
6218
  var text=''+item.Value;this.Canvas.fillStyle=item.Color;this.Canvas.fillText(text,center.X+textOffset,y);}var aryXData=this.GetArrayAreaConfig(this.AreaConfig.AryXData);var ptPre=null;this.Canvas.textAlign="center";if(quadrant==3||quadrant==4){this.Canvas.textBaseline="bottom";textOffset=-5;}else{this.Canvas.textBaseline="top";textOffset=5;}for(var i=0;i<aryXData.length;++i){var item=aryXData[i];var x=item.Value*xDiff+ptStart.X;var pt=this.CalculateExtendLineEndPoint([center,{X:x,Y:ptStart.Y}]);if(ptPre)//面积
6218
- {this.Canvas.beginPath();this.Canvas.moveTo(center.X,center.Y);this.Canvas.lineTo(ptPre.X,ptPre.Y);this.Canvas.lineTo(pt.X,pt.Y);this.Canvas.closePath();this.Canvas.fillStyle=clrArea;this.Canvas.fill();}this.Canvas.strokeStyle=item.Color;this.Canvas.beginPath();this.Canvas.moveTo(center.X,center.Y);this.Canvas.lineTo(pt.X,pt.Y);this.Canvas.stroke();this.LinePoint.push({Start:center,End:pt});if(item.Value!=1){this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(x,center.Y);this.Canvas.lineTo(x,ptStart.Y);this.Canvas.stroke();}ptPre=pt;clrArea=IChartDrawPicture.ColorToRGBA(item.Color,this.AreaConfig.Opacity);//文字
6219
+ {this.Canvas.beginPath();this.Canvas.moveTo(center.X,center.Y);this.Canvas.lineTo(ptPre.X,ptPre.Y);if(quadrant==1){if(ptPre.X<ptRightTop.X&&pt.X>=ptRightTop.X){this.Canvas.lineTo(ptRightTop.X,ptRightTop.Y);}}else if(quadrant==2){if(ptPre.X>ptLeftTop.X&&pt.X<=ptLeftTop.X){this.Canvas.lineTo(ptLeftTop.X,ptLeftTop.Y);}}else if(quadrant==3){if(ptPre.X>ptLeftBottom.X&&pt.X<=ptLeftBottom.X){this.Canvas.lineTo(ptLeftBottom.X,ptLeftBottom.Y);}}else if(quadrant==4){if(ptPre.X<ptRightBottom.X&&pt.X>=ptRightBottom.X){this.Canvas.lineTo(ptRightBottom.X,ptRightBottom.Y);}}this.Canvas.lineTo(pt.X,pt.Y);this.Canvas.closePath();this.Canvas.fillStyle=clrArea;this.Canvas.fill();}this.Canvas.strokeStyle=item.Color;this.Canvas.beginPath();this.Canvas.moveTo(center.X,center.Y);this.Canvas.lineTo(pt.X,pt.Y);this.Canvas.stroke();this.LinePoint.push({Start:center,End:pt});if(item.Value!=1){this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(x,center.Y);this.Canvas.lineTo(x,ptStart.Y);this.Canvas.stroke();}ptPre=pt;clrArea=IChartDrawPicture.ColorToRGBA(item.Color,this.AreaConfig.Opacity);//文字
6219
6220
  var text=''+item.Value;this.Canvas.fillStyle=item.Color;this.Canvas.fillText(text,x,center.Y+textOffset);}};this.GetArrayAreaConfig=function(aryData){var aryArea=[];for(var i=0;i<aryData.length;++i){var item=aryData[i];if(item.Enable)aryArea.push(item);}aryArea.sort(function(left,right){return right.Value-left.Value;});return aryArea;};}function ChartDrawStorage(){this.DrawData=new _map2.default();//画图工具数据 key=symbol-Period, value=Map() Key:Guid, Value:{Guid, Symbol, Period, ClassName, Value}
6220
6221
  this.StorageKey;this.GetEventCallback;//事件回调
6221
6222
  this.Load=function(key)//从本地读取画图工具
@@ -7920,9 +7921,11 @@ if(isFutures&&yClearing&&item.Close)item.Increase=(item.Close-yClearing)/yCleari
7920
7921
  //上次价格
7921
7922
  if(IFrameSplitOperator.IsNumber(jsData.price))preClose=jsData.price;if(IFrameSplitOperator.IsNumber(jsData.avprice)&&item.AvPrice===jsData.avprice)preAvPrice=jsData.avprice;if(jsData.ExtendData)item.ExtendData=jsData.ExtendData;//扩展数据
7922
7923
  aryMinuteData[i]=item;}return aryMinuteData;};//分钟增量数据 stock: [ { date:, yclose:, yclearing: , minute:[ [],]} 0=日期 1=时间 2=开 3=高 4=低 5=收 6=均价 7=量 8=金额 9=涨幅 10=涨跌 11=领先指标 ]
7923
- MinuteChartContainer.JsonDataToUpdateMinuteData=function(data){if(!data||!data.stock)return null;var stock=data.stock[0];if(!IFrameSplitOperator.IsNumber(stock.date))return null;var symbol=data.stock[0].symbol;var upperSymbol=symbol.toUpperCase();var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);var minuteData={Date:stock.date,Data:[],Symbol:symbol,Name:stock.name};var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_DAY_EXTENDDATA;//扩展数据序号
7924
- if(IFrameSplitOperator.IsNumber(stock.high))minuteData.High=stock.high;if(IFrameSplitOperator.IsNumber(stock.low))minuteData.Low=stock.low;if(IFrameSplitOperator.IsNumber(stock.yclose))minuteData.YClose=stock.yclose;if(IFrameSplitOperator.IsNumber(stock.YClearing))minuteData.YClearing=stock.yclearing;if(IFrameSplitOperator.IsNonEmptyArray(data.stock[0].minute)){for(var i=0;i<stock.minute.length;++i){var jsData=stock.minute[i];var item=new MinuteData();item.Date=jsData[0];item.Time=jsData[1];item.Open=jsData[2];item.High=jsData[3];item.Low=jsData[4];item.Close=jsData[5];item.AvPrice=jsData[6];item.Vol=jsData[7];item.Amount=jsData[8];if(IFrameSplitOperator.IsNumber(jsData[9]))item.Increase=jsData[9];if(IFrameSplitOperator.IsNumber(jsData[10]))item.Risefall=jsData[10];if(IFrameSplitOperator.IsNumber(jsData[11]))item.Lead=jsData[11];if(jsData[extendDataIndex])item.ExtendData=jsData[extendDataIndex];item.DateTime=item.Date.toString()+" "+item.Time.toString();if(isSHSZ)item.Vol=item.Vol/100;//沪深股票原始单位股
7924
+ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data){if(!data||!data.stock)return null;var stock=data.stock[0];if(!IFrameSplitOperator.IsNumber(stock.date))return null;var symbol=data.stock[0].symbol;var upperSymbol=symbol.toUpperCase();var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol);//国内期货, 纽约期货交易所
7925
+ var minuteData={Date:stock.date,Data:[],Symbol:symbol,Name:stock.name};var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_DAY_EXTENDDATA;//扩展数据序号
7926
+ if(IFrameSplitOperator.IsNumber(stock.high))minuteData.High=stock.high;if(IFrameSplitOperator.IsNumber(stock.low))minuteData.Low=stock.low;if(IFrameSplitOperator.IsNumber(stock.yclose))minuteData.YClose=stock.yclose;if(IFrameSplitOperator.IsNumber(stock.YClearing))minuteData.YClearing=stock.yclearing;if(IFrameSplitOperator.IsNonEmptyArray(stock.minute)){for(var i=0;i<stock.minute.length;++i){var jsData=stock.minute[i];var item=new MinuteData();item.YClearing=minuteData.YClearing;item.YClose=minuteData.YClose;item.Date=jsData[0];item.Time=jsData[1];item.Open=jsData[2];item.High=jsData[3];item.Low=jsData[4];item.Close=jsData[5];item.AvPrice=jsData[6];item.Vol=jsData[7];item.Amount=jsData[8];if(IFrameSplitOperator.IsNumber(jsData[9]))item.Increase=jsData[9];if(IFrameSplitOperator.IsNumber(jsData[10]))item.Risefall=jsData[10];if(IFrameSplitOperator.IsNumber(jsData[11]))item.Lead=jsData[11];if(jsData[extendDataIndex])item.ExtendData=jsData[extendDataIndex];item.DateTime=item.Date.toString()+" "+item.Time.toString();if(isSHSZ)item.Vol=item.Vol/100;//沪深股票原始单位股
7925
7927
  if(IFrameSplitOperator.IsNumber(minuteData.YClose)&&item.Close)item.Increase=(item.Close-minuteData.YClose)/minuteData.YClose*100;//涨幅 (最新价格-昨收)/昨收*100;
7928
+ if(isFutures&&minuteData.YClearing&&item.Close)item.Increase=(item.Close-minuteData.YClearing)/minuteData.YClearing*100;//涨幅 (最新价格-昨结算价)/昨结算价*100;
7926
7929
  minuteData.Data.push(item);}}return minuteData;};MinuteChartContainer.JsonDataToMinuteLineColorData=function(data){if(!data||!data.stock[0])return null;var stockItem=data.stock[0];if(!stockItem.linecolor||!IFrameSplitOperator.IsNonEmptyArray(stockItem.linecolor.data))return null;var aryLineColor=[];for(var i in stockItem.linecolor.data){var item=stockItem.linecolor.data[i];if(!IFrameSplitOperator.IsNumber(item.type)||!IFrameSplitOperator.IsNumber(item.date)||!IFrameSplitOperator.IsNumber(item.start)||!IFrameSplitOperator.IsNumber(item.end)||!item.color)continue;if(item.start>=item.end)continue;var newItem={Type:item.type,Date:item.date,Start:item.start,End:item.end,Color:item.color};if(IFrameSplitOperator.IsPlusNumber(item.linewidth))newItem.LineWidth=item.linewidth;aryLineColor.push(newItem);}return aryLineColor;};//获取最后的数据更新时间
7927
7930
  MinuteChartContainer.JsonDataToMinuteLastUpdateTime=function(data){if(!data||!data.stock[0])return null;var stock=data.stock[0];if(!IFrameSplitOperator.IsNumber(stock.date)||!IFrameSplitOperator.IsNumber(stock.time))return null;return{Date:stock.date,Time:stock.time};};MinuteChartContainer.JsonDataToHistoryMinuteLastUpdateTime=function(data){if(!data||!data.updatetime)return null;var item=data.updatetime;if(!IFrameSplitOperator.IsNumber(item.date)||!IFrameSplitOperator.IsNumber(item.time))return null;return{Date:item.date,Time:item.time};};//多日日线数据API 转化成array[];
7928
7931
  MinuteChartContainer.JsonDataToMinuteDataArray=function(data){var symbol=data.symbol;var upperSymbol=symbol.toUpperCase();var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);var isSHO=MARKET_SUFFIX_NAME.IsSHO(upperSymbol);//上海股票期权
@@ -12638,7 +12641,7 @@ function HQChartScriptWorker(){this.Create=function(){var _this60=this;addEventL
12638
12641
  hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,Stock:{Symbol:message.Symbol},Request:{MaxDataCount:500,MaxMinuteDayCount:5},Period:message.Period,Right:message.Right,Data:hisData};if(IFrameSplitOperator.IsNumber(message.HQDataType))stockObj.HQDataType=message.HQDataType;indexConsole.ExecuteScript(stockObj);};this.OnRecvMessage=function(message){var data=message.data;if(!data)return;if(data.ID==JSCHART_WORKER_MESSAGE_ID.EXECUTE_SCRIPT){if(!IFrameSplitOperator.IsNonEmptyArray(data.AryIndex))return;for(var i=0;i<data.AryIndex.length;++i){var item=data.AryIndex[i];this.ExecuteScript(item,data);}}};this.OnExecuteFinish=function(data,indexInfo,jsExectute){var message={Data:data,IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.FINISH_EXECUTE_SCRIPT};postMessage(message);};this.OnExecuteError=function(error,indexInfo){var message={IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.ERROR_EXECUTE_SCRIPT,Error:error};postMessage(message);};}/********************************************************************************
12639
12642
  * 版本信息输出
12640
12643
  *
12641
- */var HQCHART_VERSION="1.1.12523";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
12644
+ */var HQCHART_VERSION="1.1.12539";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
12642
12645
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
12643
12646
  // BaseIndex:BaseIndex,
12644
12647
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "hqchart",
3
3
  "description": "stock chart",
4
4
  "author": "jones2000",
5
- "version": "1.1.12525",
5
+ "version": "1.1.12540",
6
6
  "main": "lib/main.js",
7
7
  "private": false,
8
8
  "license": "Apache License 2.0",
@@ -51412,6 +51412,13 @@ function IChartDrawPicture()
51412
51412
  pt2.Y=bottom;
51413
51413
  return pt2;
51414
51414
  }
51415
+ else if (b==0)
51416
+ {
51417
+ var pt2=new Point();
51418
+ pt2.X=right;
51419
+ pt2.Y=aryPoint[0].Y;
51420
+ return pt2;
51421
+ }
51415
51422
  else
51416
51423
  {
51417
51424
  var b2=top-aryPoint[0].Y;
@@ -51449,6 +51456,13 @@ function IChartDrawPicture()
51449
51456
  pt2.Y=bottom;
51450
51457
  return pt2;
51451
51458
  }
51459
+ else if (b==0)
51460
+ {
51461
+ var pt2=new Point();
51462
+ pt2.X=left;
51463
+ pt2.Y=aryPoint[0].Y;
51464
+ return pt2;
51465
+ }
51452
51466
  else
51453
51467
  {
51454
51468
  var b2=top-aryPoint[0].Y;
@@ -59755,6 +59769,42 @@ function ChartFibSpeedResistanceFan()
59755
59769
  Opacity:0.3
59756
59770
  }
59757
59771
 
59772
+ this.SetOption=function(option)
59773
+ {
59774
+ if (!option) return;
59775
+
59776
+ if (option.Font) this.Font=option.Font;
59777
+ if (option.LineWidth) this.LineWidth=option.LineWidth;
59778
+ if (IFrameSplitOperator.IsBool(option.EnableBGColor)) this.EnableBGColor=option.EnableBGColor;
59779
+ if (option.AreaConfig) this.AreaConfig=option.AreaConfig;
59780
+ }
59781
+
59782
+ //导出成存储格式
59783
+ this.ExportStorageData=function()
59784
+ {
59785
+ var storageData=this.ExportBaseData();
59786
+
59787
+ storageData.Value=[];
59788
+ for(var i=0;i<this.Value.length && i<this.PointCount;++i)
59789
+ {
59790
+ var item=this.Value[i];
59791
+ storageData.Value.push( { XValue:item.XValue, YValue:item.YValue } );
59792
+ }
59793
+
59794
+ storageData.Font=this.Font;
59795
+ storageData.EnableBGColor=this.EnableBGColor;
59796
+ storageData.AreaConfig=CloneData(this.AreaConfig);
59797
+
59798
+ return storageData;
59799
+ }
59800
+
59801
+ this.ImportStorageData=function(storageData)
59802
+ {
59803
+ if (storageData.Font) this.Font=storageData.Font;
59804
+ if (IFrameSplitOperator.IsBool(storageData.EnableBGColor)) this.EnableBGColor=storageData.EnableBGColor;
59805
+ if (storageData.AreaConfig) this.AreaConfig=storageData.AreaConfig;
59806
+ }
59807
+
59758
59808
  this.Draw=function()
59759
59809
  {
59760
59810
  this.LinePoint=[];
@@ -59797,6 +59847,13 @@ function ChartFibSpeedResistanceFan()
59797
59847
  var ptPre=null; //上一个点
59798
59848
  var clrArea=null;
59799
59849
  this.Canvas.font=this.Font;
59850
+
59851
+ var border=this.Frame.GetBorder();
59852
+ var ptLeftTop={ X:border.Left, Y:border.TopEx };
59853
+ var ptRightTop={X:border.Right, Y:border.TopEx };
59854
+ var ptLeftBottom={ X:border.Left, Y:border.BottomEx };
59855
+ var ptRightBottom={ X:border.Right, Y:border.BottomEx };
59856
+
59800
59857
  var textOffset=4;
59801
59858
  if (quadrant==1 || quadrant==4)
59802
59859
  {
@@ -59808,6 +59865,8 @@ function ChartFibSpeedResistanceFan()
59808
59865
  this.Canvas.textAlign="left";
59809
59866
  textOffset=4;
59810
59867
  }
59868
+
59869
+
59811
59870
  this.Canvas.textBaseline="middle";
59812
59871
  for(var i=0;i<aryYData.length;++i)
59813
59872
  {
@@ -59821,6 +59880,36 @@ function ChartFibSpeedResistanceFan()
59821
59880
  this.Canvas.beginPath();
59822
59881
  this.Canvas.moveTo(center.X,center.Y);
59823
59882
  this.Canvas.lineTo(ptPre.X,ptPre.Y);
59883
+
59884
+ if (quadrant==1)
59885
+ {
59886
+ if (ptPre.X>=ptRightTop.X && pt.X<ptRightTop.X)
59887
+ {
59888
+ this.Canvas.lineTo(ptRightTop.X,ptRightTop.Y);
59889
+ }
59890
+ }
59891
+ else if (quadrant==2)
59892
+ {
59893
+ if (ptPre.X<=ptLeftTop.X && pt.X>ptLeftTop.X)
59894
+ {
59895
+ this.Canvas.lineTo(ptLeftTop.X,ptLeftTop.Y);
59896
+ }
59897
+ }
59898
+ else if (quadrant==3)
59899
+ {
59900
+ if (ptPre.X<=ptLeftBottom.X && pt.X>ptLeftBottom.X)
59901
+ {
59902
+ this.Canvas.lineTo(ptLeftBottom.X,ptLeftBottom.Y);
59903
+ }
59904
+ }
59905
+ else if (quadrant==4)
59906
+ {
59907
+ if (ptPre.X>=ptRightBottom.X && pt.X<ptRightBottom.X)
59908
+ {
59909
+ this.Canvas.lineTo(ptRightBottom.X,ptRightBottom.Y);
59910
+ }
59911
+ }
59912
+
59824
59913
  this.Canvas.lineTo(pt.X,pt.Y);
59825
59914
  this.Canvas.closePath();
59826
59915
  this.Canvas.fillStyle=clrArea;
@@ -59879,6 +59968,36 @@ function ChartFibSpeedResistanceFan()
59879
59968
  this.Canvas.beginPath();
59880
59969
  this.Canvas.moveTo(center.X,center.Y);
59881
59970
  this.Canvas.lineTo(ptPre.X,ptPre.Y);
59971
+
59972
+ if (quadrant==1)
59973
+ {
59974
+ if (ptPre.X<ptRightTop.X && pt.X>=ptRightTop.X)
59975
+ {
59976
+ this.Canvas.lineTo(ptRightTop.X,ptRightTop.Y);
59977
+ }
59978
+ }
59979
+ else if (quadrant==2)
59980
+ {
59981
+ if (ptPre.X>ptLeftTop.X && pt.X<=ptLeftTop.X)
59982
+ {
59983
+ this.Canvas.lineTo(ptLeftTop.X,ptLeftTop.Y);
59984
+ }
59985
+ }
59986
+ else if (quadrant==3)
59987
+ {
59988
+ if (ptPre.X>ptLeftBottom.X && pt.X<=ptLeftBottom.X)
59989
+ {
59990
+ this.Canvas.lineTo(ptLeftBottom.X,ptLeftBottom.Y);
59991
+ }
59992
+ }
59993
+ else if (quadrant==4)
59994
+ {
59995
+ if (ptPre.X<ptRightBottom.X && pt.X>=ptRightBottom.X)
59996
+ {
59997
+ this.Canvas.lineTo(ptRightBottom.X,ptRightBottom.Y);
59998
+ }
59999
+ }
60000
+
59882
60001
  this.Canvas.lineTo(pt.X,pt.Y);
59883
60002
  this.Canvas.closePath();
59884
60003
  this.Canvas.fillStyle=clrArea;
@@ -75991,6 +76110,7 @@ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
75991
76110
  var symbol=data.stock[0].symbol;
75992
76111
  var upperSymbol=symbol.toUpperCase();
75993
76112
  var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);
76113
+ var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
75994
76114
  var minuteData={ Date:stock.date, Data:[] , Symbol:symbol, Name:stock.name };
75995
76115
  var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_DAY_EXTENDDATA; //扩展数据序号
75996
76116
  if (IFrameSplitOperator.IsNumber(stock.high)) minuteData.High=stock.high;
@@ -75998,13 +76118,15 @@ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
75998
76118
  if (IFrameSplitOperator.IsNumber(stock.yclose)) minuteData.YClose=stock.yclose;
75999
76119
  if (IFrameSplitOperator.IsNumber(stock.YClearing)) minuteData.YClearing=stock.yclearing;
76000
76120
 
76001
- if (IFrameSplitOperator.IsNonEmptyArray(data.stock[0].minute))
76121
+ if (IFrameSplitOperator.IsNonEmptyArray(stock.minute))
76002
76122
  {
76003
76123
  for(var i=0;i<stock.minute.length;++i)
76004
76124
  {
76005
76125
  var jsData=stock.minute[i];
76006
76126
  var item=new MinuteData();
76007
76127
 
76128
+ item.YClearing=minuteData.YClearing;
76129
+ item.YClose=minuteData.YClose;
76008
76130
  item.Date=jsData[0];
76009
76131
  item.Time=jsData[1];
76010
76132
  item.Open=jsData[2];
@@ -76026,6 +76148,10 @@ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
76026
76148
  if (IFrameSplitOperator.IsNumber(minuteData.YClose) && item.Close)
76027
76149
  item.Increase=(item.Close-minuteData.YClose)/minuteData.YClose*100; //涨幅 (最新价格-昨收)/昨收*100;
76028
76150
 
76151
+ if (isFutures && minuteData.YClearing && item.Close)
76152
+ item.Increase=(item.Close-minuteData.YClearing)/minuteData.YClearing*100; //涨幅 (最新价格-昨结算价)/昨结算价*100;
76153
+
76154
+
76029
76155
  minuteData.Data.push(item);
76030
76156
  }
76031
76157
  }
@@ -55492,6 +55492,13 @@ function IChartDrawPicture()
55492
55492
  pt2.Y=bottom;
55493
55493
  return pt2;
55494
55494
  }
55495
+ else if (b==0)
55496
+ {
55497
+ var pt2=new Point();
55498
+ pt2.X=right;
55499
+ pt2.Y=aryPoint[0].Y;
55500
+ return pt2;
55501
+ }
55495
55502
  else
55496
55503
  {
55497
55504
  var b2=top-aryPoint[0].Y;
@@ -55529,6 +55536,13 @@ function IChartDrawPicture()
55529
55536
  pt2.Y=bottom;
55530
55537
  return pt2;
55531
55538
  }
55539
+ else if (b==0)
55540
+ {
55541
+ var pt2=new Point();
55542
+ pt2.X=left;
55543
+ pt2.Y=aryPoint[0].Y;
55544
+ return pt2;
55545
+ }
55532
55546
  else
55533
55547
  {
55534
55548
  var b2=top-aryPoint[0].Y;
@@ -63835,6 +63849,42 @@ function ChartFibSpeedResistanceFan()
63835
63849
  Opacity:0.3
63836
63850
  }
63837
63851
 
63852
+ this.SetOption=function(option)
63853
+ {
63854
+ if (!option) return;
63855
+
63856
+ if (option.Font) this.Font=option.Font;
63857
+ if (option.LineWidth) this.LineWidth=option.LineWidth;
63858
+ if (IFrameSplitOperator.IsBool(option.EnableBGColor)) this.EnableBGColor=option.EnableBGColor;
63859
+ if (option.AreaConfig) this.AreaConfig=option.AreaConfig;
63860
+ }
63861
+
63862
+ //导出成存储格式
63863
+ this.ExportStorageData=function()
63864
+ {
63865
+ var storageData=this.ExportBaseData();
63866
+
63867
+ storageData.Value=[];
63868
+ for(var i=0;i<this.Value.length && i<this.PointCount;++i)
63869
+ {
63870
+ var item=this.Value[i];
63871
+ storageData.Value.push( { XValue:item.XValue, YValue:item.YValue } );
63872
+ }
63873
+
63874
+ storageData.Font=this.Font;
63875
+ storageData.EnableBGColor=this.EnableBGColor;
63876
+ storageData.AreaConfig=CloneData(this.AreaConfig);
63877
+
63878
+ return storageData;
63879
+ }
63880
+
63881
+ this.ImportStorageData=function(storageData)
63882
+ {
63883
+ if (storageData.Font) this.Font=storageData.Font;
63884
+ if (IFrameSplitOperator.IsBool(storageData.EnableBGColor)) this.EnableBGColor=storageData.EnableBGColor;
63885
+ if (storageData.AreaConfig) this.AreaConfig=storageData.AreaConfig;
63886
+ }
63887
+
63838
63888
  this.Draw=function()
63839
63889
  {
63840
63890
  this.LinePoint=[];
@@ -63877,6 +63927,13 @@ function ChartFibSpeedResistanceFan()
63877
63927
  var ptPre=null; //上一个点
63878
63928
  var clrArea=null;
63879
63929
  this.Canvas.font=this.Font;
63930
+
63931
+ var border=this.Frame.GetBorder();
63932
+ var ptLeftTop={ X:border.Left, Y:border.TopEx };
63933
+ var ptRightTop={X:border.Right, Y:border.TopEx };
63934
+ var ptLeftBottom={ X:border.Left, Y:border.BottomEx };
63935
+ var ptRightBottom={ X:border.Right, Y:border.BottomEx };
63936
+
63880
63937
  var textOffset=4;
63881
63938
  if (quadrant==1 || quadrant==4)
63882
63939
  {
@@ -63888,6 +63945,8 @@ function ChartFibSpeedResistanceFan()
63888
63945
  this.Canvas.textAlign="left";
63889
63946
  textOffset=4;
63890
63947
  }
63948
+
63949
+
63891
63950
  this.Canvas.textBaseline="middle";
63892
63951
  for(var i=0;i<aryYData.length;++i)
63893
63952
  {
@@ -63901,6 +63960,36 @@ function ChartFibSpeedResistanceFan()
63901
63960
  this.Canvas.beginPath();
63902
63961
  this.Canvas.moveTo(center.X,center.Y);
63903
63962
  this.Canvas.lineTo(ptPre.X,ptPre.Y);
63963
+
63964
+ if (quadrant==1)
63965
+ {
63966
+ if (ptPre.X>=ptRightTop.X && pt.X<ptRightTop.X)
63967
+ {
63968
+ this.Canvas.lineTo(ptRightTop.X,ptRightTop.Y);
63969
+ }
63970
+ }
63971
+ else if (quadrant==2)
63972
+ {
63973
+ if (ptPre.X<=ptLeftTop.X && pt.X>ptLeftTop.X)
63974
+ {
63975
+ this.Canvas.lineTo(ptLeftTop.X,ptLeftTop.Y);
63976
+ }
63977
+ }
63978
+ else if (quadrant==3)
63979
+ {
63980
+ if (ptPre.X<=ptLeftBottom.X && pt.X>ptLeftBottom.X)
63981
+ {
63982
+ this.Canvas.lineTo(ptLeftBottom.X,ptLeftBottom.Y);
63983
+ }
63984
+ }
63985
+ else if (quadrant==4)
63986
+ {
63987
+ if (ptPre.X>=ptRightBottom.X && pt.X<ptRightBottom.X)
63988
+ {
63989
+ this.Canvas.lineTo(ptRightBottom.X,ptRightBottom.Y);
63990
+ }
63991
+ }
63992
+
63904
63993
  this.Canvas.lineTo(pt.X,pt.Y);
63905
63994
  this.Canvas.closePath();
63906
63995
  this.Canvas.fillStyle=clrArea;
@@ -63959,6 +64048,36 @@ function ChartFibSpeedResistanceFan()
63959
64048
  this.Canvas.beginPath();
63960
64049
  this.Canvas.moveTo(center.X,center.Y);
63961
64050
  this.Canvas.lineTo(ptPre.X,ptPre.Y);
64051
+
64052
+ if (quadrant==1)
64053
+ {
64054
+ if (ptPre.X<ptRightTop.X && pt.X>=ptRightTop.X)
64055
+ {
64056
+ this.Canvas.lineTo(ptRightTop.X,ptRightTop.Y);
64057
+ }
64058
+ }
64059
+ else if (quadrant==2)
64060
+ {
64061
+ if (ptPre.X>ptLeftTop.X && pt.X<=ptLeftTop.X)
64062
+ {
64063
+ this.Canvas.lineTo(ptLeftTop.X,ptLeftTop.Y);
64064
+ }
64065
+ }
64066
+ else if (quadrant==3)
64067
+ {
64068
+ if (ptPre.X>ptLeftBottom.X && pt.X<=ptLeftBottom.X)
64069
+ {
64070
+ this.Canvas.lineTo(ptLeftBottom.X,ptLeftBottom.Y);
64071
+ }
64072
+ }
64073
+ else if (quadrant==4)
64074
+ {
64075
+ if (ptPre.X<ptRightBottom.X && pt.X>=ptRightBottom.X)
64076
+ {
64077
+ this.Canvas.lineTo(ptRightBottom.X,ptRightBottom.Y);
64078
+ }
64079
+ }
64080
+
63962
64081
  this.Canvas.lineTo(pt.X,pt.Y);
63963
64082
  this.Canvas.closePath();
63964
64083
  this.Canvas.fillStyle=clrArea;
@@ -80071,6 +80190,7 @@ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
80071
80190
  var symbol=data.stock[0].symbol;
80072
80191
  var upperSymbol=symbol.toUpperCase();
80073
80192
  var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);
80193
+ var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
80074
80194
  var minuteData={ Date:stock.date, Data:[] , Symbol:symbol, Name:stock.name };
80075
80195
  var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_DAY_EXTENDDATA; //扩展数据序号
80076
80196
  if (IFrameSplitOperator.IsNumber(stock.high)) minuteData.High=stock.high;
@@ -80078,13 +80198,15 @@ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
80078
80198
  if (IFrameSplitOperator.IsNumber(stock.yclose)) minuteData.YClose=stock.yclose;
80079
80199
  if (IFrameSplitOperator.IsNumber(stock.YClearing)) minuteData.YClearing=stock.yclearing;
80080
80200
 
80081
- if (IFrameSplitOperator.IsNonEmptyArray(data.stock[0].minute))
80201
+ if (IFrameSplitOperator.IsNonEmptyArray(stock.minute))
80082
80202
  {
80083
80203
  for(var i=0;i<stock.minute.length;++i)
80084
80204
  {
80085
80205
  var jsData=stock.minute[i];
80086
80206
  var item=new MinuteData();
80087
80207
 
80208
+ item.YClearing=minuteData.YClearing;
80209
+ item.YClose=minuteData.YClose;
80088
80210
  item.Date=jsData[0];
80089
80211
  item.Time=jsData[1];
80090
80212
  item.Open=jsData[2];
@@ -80106,6 +80228,10 @@ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
80106
80228
  if (IFrameSplitOperator.IsNumber(minuteData.YClose) && item.Close)
80107
80229
  item.Increase=(item.Close-minuteData.YClose)/minuteData.YClose*100; //涨幅 (最新价格-昨收)/昨收*100;
80108
80230
 
80231
+ if (isFutures && minuteData.YClearing && item.Close)
80232
+ item.Increase=(item.Close-minuteData.YClearing)/minuteData.YClearing*100; //涨幅 (最新价格-昨结算价)/昨结算价*100;
80233
+
80234
+
80109
80235
  minuteData.Data.push(item);
80110
80236
  }
80111
80237
  }
@@ -128943,7 +129069,7 @@ function ScrollBarBGChart()
128943
129069
 
128944
129070
 
128945
129071
 
128946
- var HQCHART_VERSION="1.1.12523";
129072
+ var HQCHART_VERSION="1.1.12539";
128947
129073
 
128948
129074
  function PrintHQChartVersion()
128949
129075
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.12523";
8
+ var HQCHART_VERSION="1.1.12539";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -55536,6 +55536,13 @@ function IChartDrawPicture()
55536
55536
  pt2.Y=bottom;
55537
55537
  return pt2;
55538
55538
  }
55539
+ else if (b==0)
55540
+ {
55541
+ var pt2=new Point();
55542
+ pt2.X=right;
55543
+ pt2.Y=aryPoint[0].Y;
55544
+ return pt2;
55545
+ }
55539
55546
  else
55540
55547
  {
55541
55548
  var b2=top-aryPoint[0].Y;
@@ -55573,6 +55580,13 @@ function IChartDrawPicture()
55573
55580
  pt2.Y=bottom;
55574
55581
  return pt2;
55575
55582
  }
55583
+ else if (b==0)
55584
+ {
55585
+ var pt2=new Point();
55586
+ pt2.X=left;
55587
+ pt2.Y=aryPoint[0].Y;
55588
+ return pt2;
55589
+ }
55576
55590
  else
55577
55591
  {
55578
55592
  var b2=top-aryPoint[0].Y;
@@ -63879,6 +63893,42 @@ function ChartFibSpeedResistanceFan()
63879
63893
  Opacity:0.3
63880
63894
  }
63881
63895
 
63896
+ this.SetOption=function(option)
63897
+ {
63898
+ if (!option) return;
63899
+
63900
+ if (option.Font) this.Font=option.Font;
63901
+ if (option.LineWidth) this.LineWidth=option.LineWidth;
63902
+ if (IFrameSplitOperator.IsBool(option.EnableBGColor)) this.EnableBGColor=option.EnableBGColor;
63903
+ if (option.AreaConfig) this.AreaConfig=option.AreaConfig;
63904
+ }
63905
+
63906
+ //导出成存储格式
63907
+ this.ExportStorageData=function()
63908
+ {
63909
+ var storageData=this.ExportBaseData();
63910
+
63911
+ storageData.Value=[];
63912
+ for(var i=0;i<this.Value.length && i<this.PointCount;++i)
63913
+ {
63914
+ var item=this.Value[i];
63915
+ storageData.Value.push( { XValue:item.XValue, YValue:item.YValue } );
63916
+ }
63917
+
63918
+ storageData.Font=this.Font;
63919
+ storageData.EnableBGColor=this.EnableBGColor;
63920
+ storageData.AreaConfig=CloneData(this.AreaConfig);
63921
+
63922
+ return storageData;
63923
+ }
63924
+
63925
+ this.ImportStorageData=function(storageData)
63926
+ {
63927
+ if (storageData.Font) this.Font=storageData.Font;
63928
+ if (IFrameSplitOperator.IsBool(storageData.EnableBGColor)) this.EnableBGColor=storageData.EnableBGColor;
63929
+ if (storageData.AreaConfig) this.AreaConfig=storageData.AreaConfig;
63930
+ }
63931
+
63882
63932
  this.Draw=function()
63883
63933
  {
63884
63934
  this.LinePoint=[];
@@ -63921,6 +63971,13 @@ function ChartFibSpeedResistanceFan()
63921
63971
  var ptPre=null; //上一个点
63922
63972
  var clrArea=null;
63923
63973
  this.Canvas.font=this.Font;
63974
+
63975
+ var border=this.Frame.GetBorder();
63976
+ var ptLeftTop={ X:border.Left, Y:border.TopEx };
63977
+ var ptRightTop={X:border.Right, Y:border.TopEx };
63978
+ var ptLeftBottom={ X:border.Left, Y:border.BottomEx };
63979
+ var ptRightBottom={ X:border.Right, Y:border.BottomEx };
63980
+
63924
63981
  var textOffset=4;
63925
63982
  if (quadrant==1 || quadrant==4)
63926
63983
  {
@@ -63932,6 +63989,8 @@ function ChartFibSpeedResistanceFan()
63932
63989
  this.Canvas.textAlign="left";
63933
63990
  textOffset=4;
63934
63991
  }
63992
+
63993
+
63935
63994
  this.Canvas.textBaseline="middle";
63936
63995
  for(var i=0;i<aryYData.length;++i)
63937
63996
  {
@@ -63945,6 +64004,36 @@ function ChartFibSpeedResistanceFan()
63945
64004
  this.Canvas.beginPath();
63946
64005
  this.Canvas.moveTo(center.X,center.Y);
63947
64006
  this.Canvas.lineTo(ptPre.X,ptPre.Y);
64007
+
64008
+ if (quadrant==1)
64009
+ {
64010
+ if (ptPre.X>=ptRightTop.X && pt.X<ptRightTop.X)
64011
+ {
64012
+ this.Canvas.lineTo(ptRightTop.X,ptRightTop.Y);
64013
+ }
64014
+ }
64015
+ else if (quadrant==2)
64016
+ {
64017
+ if (ptPre.X<=ptLeftTop.X && pt.X>ptLeftTop.X)
64018
+ {
64019
+ this.Canvas.lineTo(ptLeftTop.X,ptLeftTop.Y);
64020
+ }
64021
+ }
64022
+ else if (quadrant==3)
64023
+ {
64024
+ if (ptPre.X<=ptLeftBottom.X && pt.X>ptLeftBottom.X)
64025
+ {
64026
+ this.Canvas.lineTo(ptLeftBottom.X,ptLeftBottom.Y);
64027
+ }
64028
+ }
64029
+ else if (quadrant==4)
64030
+ {
64031
+ if (ptPre.X>=ptRightBottom.X && pt.X<ptRightBottom.X)
64032
+ {
64033
+ this.Canvas.lineTo(ptRightBottom.X,ptRightBottom.Y);
64034
+ }
64035
+ }
64036
+
63948
64037
  this.Canvas.lineTo(pt.X,pt.Y);
63949
64038
  this.Canvas.closePath();
63950
64039
  this.Canvas.fillStyle=clrArea;
@@ -64003,6 +64092,36 @@ function ChartFibSpeedResistanceFan()
64003
64092
  this.Canvas.beginPath();
64004
64093
  this.Canvas.moveTo(center.X,center.Y);
64005
64094
  this.Canvas.lineTo(ptPre.X,ptPre.Y);
64095
+
64096
+ if (quadrant==1)
64097
+ {
64098
+ if (ptPre.X<ptRightTop.X && pt.X>=ptRightTop.X)
64099
+ {
64100
+ this.Canvas.lineTo(ptRightTop.X,ptRightTop.Y);
64101
+ }
64102
+ }
64103
+ else if (quadrant==2)
64104
+ {
64105
+ if (ptPre.X>ptLeftTop.X && pt.X<=ptLeftTop.X)
64106
+ {
64107
+ this.Canvas.lineTo(ptLeftTop.X,ptLeftTop.Y);
64108
+ }
64109
+ }
64110
+ else if (quadrant==3)
64111
+ {
64112
+ if (ptPre.X>ptLeftBottom.X && pt.X<=ptLeftBottom.X)
64113
+ {
64114
+ this.Canvas.lineTo(ptLeftBottom.X,ptLeftBottom.Y);
64115
+ }
64116
+ }
64117
+ else if (quadrant==4)
64118
+ {
64119
+ if (ptPre.X<ptRightBottom.X && pt.X>=ptRightBottom.X)
64120
+ {
64121
+ this.Canvas.lineTo(ptRightBottom.X,ptRightBottom.Y);
64122
+ }
64123
+ }
64124
+
64006
64125
  this.Canvas.lineTo(pt.X,pt.Y);
64007
64126
  this.Canvas.closePath();
64008
64127
  this.Canvas.fillStyle=clrArea;
@@ -80115,6 +80234,7 @@ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
80115
80234
  var symbol=data.stock[0].symbol;
80116
80235
  var upperSymbol=symbol.toUpperCase();
80117
80236
  var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);
80237
+ var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
80118
80238
  var minuteData={ Date:stock.date, Data:[] , Symbol:symbol, Name:stock.name };
80119
80239
  var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_DAY_EXTENDDATA; //扩展数据序号
80120
80240
  if (IFrameSplitOperator.IsNumber(stock.high)) minuteData.High=stock.high;
@@ -80122,13 +80242,15 @@ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
80122
80242
  if (IFrameSplitOperator.IsNumber(stock.yclose)) minuteData.YClose=stock.yclose;
80123
80243
  if (IFrameSplitOperator.IsNumber(stock.YClearing)) minuteData.YClearing=stock.yclearing;
80124
80244
 
80125
- if (IFrameSplitOperator.IsNonEmptyArray(data.stock[0].minute))
80245
+ if (IFrameSplitOperator.IsNonEmptyArray(stock.minute))
80126
80246
  {
80127
80247
  for(var i=0;i<stock.minute.length;++i)
80128
80248
  {
80129
80249
  var jsData=stock.minute[i];
80130
80250
  var item=new MinuteData();
80131
80251
 
80252
+ item.YClearing=minuteData.YClearing;
80253
+ item.YClose=minuteData.YClose;
80132
80254
  item.Date=jsData[0];
80133
80255
  item.Time=jsData[1];
80134
80256
  item.Open=jsData[2];
@@ -80150,6 +80272,10 @@ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
80150
80272
  if (IFrameSplitOperator.IsNumber(minuteData.YClose) && item.Close)
80151
80273
  item.Increase=(item.Close-minuteData.YClose)/minuteData.YClose*100; //涨幅 (最新价格-昨收)/昨收*100;
80152
80274
 
80275
+ if (isFutures && minuteData.YClearing && item.Close)
80276
+ item.Increase=(item.Close-minuteData.YClearing)/minuteData.YClearing*100; //涨幅 (最新价格-昨结算价)/昨结算价*100;
80277
+
80278
+
80153
80279
  minuteData.Data.push(item);
80154
80280
  }
80155
80281
  }
@@ -129096,7 +129222,7 @@ function HQChartScriptWorker()
129096
129222
 
129097
129223
 
129098
129224
 
129099
- var HQCHART_VERSION="1.1.12523";
129225
+ var HQCHART_VERSION="1.1.12539";
129100
129226
 
129101
129227
  function PrintHQChartVersion()
129102
129228
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.12508";
8
+ var HQCHART_VERSION="1.1.12538";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -9134,6 +9134,12 @@ function MinuteChartContainer(uielement)
9134
9134
 
9135
9135
  this.RecvMinuteData = function (data)
9136
9136
  {
9137
+ if (data.data && data.data.dataType===1) //增量更新数据模式
9138
+ {
9139
+ this.RecvUpdateMinuteData(data.data);
9140
+ return;
9141
+ }
9142
+
9137
9143
  var aryMinuteData = MinuteChartContainer.JsonDataToMinuteData(data.data);
9138
9144
 
9139
9145
  if (this.DayCount > 1) //多日走势图
@@ -9205,6 +9211,135 @@ function MinuteChartContainer(uielement)
9205
9211
  this.AutoUpdate();
9206
9212
  }
9207
9213
 
9214
+ this.RecvUpdateMinuteData=function(data)
9215
+ {
9216
+ var minuteData=MinuteChartContainer.JsonDataToUpdateMinuteData(data);
9217
+
9218
+ if (this.DayCount > 1) //多日走势图
9219
+ {
9220
+ this.UpdateLatestMinuteDataV2(minuteData);
9221
+ this.UpdateHistoryMinuteUI();
9222
+ this.RecvMinuteDataEvent();
9223
+ this.RequestOverlayMinuteData(); //更新最新叠加数据
9224
+ this.BindAllOverlayIndexData(this.SourceData);
9225
+ if (typeof (this.UpdateUICallback) == 'function') this.UpdateUICallback('RecvMinuteData', this);
9226
+ this.AutoUpdate();
9227
+ return;
9228
+ }
9229
+
9230
+ this.UpdateLatestMinuteDataV2(minuteData);
9231
+ var sourceData=this.SourceData;
9232
+ var aryMinuteData=this.SourceData.Data;
9233
+ var upperSymbol = this.Symbol.toUpperCase();
9234
+ var isFutures = MARKET_SUFFIX_NAME.IsFutures(upperSymbol);
9235
+ var yClose=minuteData.YClose;
9236
+ if (data.stock[0].yclearing && isFutures) yClose = data.stock[0].yclearing; //期货使用前结算价
9237
+ this.CaclutateLimitPrice(yClose, data.stock[0].limitprice); //计算涨停价格
9238
+ var extendData = { High: data.stock[0].high, Low: data.stock[0].low };
9239
+ this.BindMainData(sourceData, yClose, extendData);
9240
+
9241
+ for (var i=0;i<this.Frame.SubFrame.length;++i) //把股票代码设置到X轴刻度类里
9242
+ {
9243
+ var item = this.Frame.SubFrame[i];
9244
+ item.Frame.XSplitOperator.Symbol = this.Symbol;
9245
+ item.Frame.XSplitOperator.DayCount = 1;
9246
+ item.Frame.XSplitOperator.Operator(); //调整X轴个数
9247
+ item.Frame.YSplitOperator.Symbol = this.Symbol;
9248
+ }
9249
+
9250
+ //计算指标
9251
+ if (this.Frame.SubFrame.length > 2)
9252
+ {
9253
+ var bindData = new ChartData();
9254
+ bindData.Data = aryMinuteData;
9255
+ for (var i = 2; i < this.Frame.SubFrame.length; ++i)
9256
+ {
9257
+ this.BindIndexData(i, bindData);
9258
+ }
9259
+ }
9260
+
9261
+ var chartInfo = this.GetChartMinuteInfo();
9262
+ if (chartInfo) chartInfo.SourceData = this.SourceData; //数据绑定到信息地雷上
9263
+ this.RecvMinuteDataEvent();
9264
+ this.RequestMinuteInfoData();
9265
+ this.RequestOverlayMinuteData();//请求叠加数据 (主数据下载完再下载)
9266
+
9267
+ this.UpdateFrameMaxMin(); //调整坐标最大 最小值
9268
+ this.Frame.SetSizeChage(true);
9269
+ this.Draw();
9270
+
9271
+ this.BindAllOverlayIndexData(this.SourceData);
9272
+
9273
+ if (typeof (this.UpdateUICallback) == 'function') this.UpdateUICallback('RecvMinuteData', this);
9274
+
9275
+ this.AutoUpdate();
9276
+ }
9277
+
9278
+ //更新最新的几条数据
9279
+ this.UpdateLatestMinuteDataV2=function(minuteData)
9280
+ {
9281
+ if (this.DayCount>1)
9282
+ {
9283
+ if (!this.DayData) return;
9284
+
9285
+ var findItem=null;
9286
+ for(var i=0; i<this.DayData.length; ++i)
9287
+ {
9288
+ var item=this.DayData[i];
9289
+ if (item.Date===date)
9290
+ {
9291
+ findItem=item;
9292
+ break;
9293
+ }
9294
+ }
9295
+
9296
+ if (!findItem) return;
9297
+
9298
+ var findIndex=-1;
9299
+ var firstItem=minuteData.Data[0];
9300
+ for(var i=0;i<findItem.Data.length;++i)
9301
+ {
9302
+ var item=findItem.Data[i];
9303
+
9304
+ if (item.Date==firstItem.Date && item.Time==firstItem.Time)
9305
+ {
9306
+ findIndex=i;
9307
+ break;
9308
+ }
9309
+ }
9310
+
9311
+ if (findIndex<0) findIndex=findItem.Data.length;
9312
+ for(var i=0, j=findIndex; i<minuteData.Data.length; ++i, ++j)
9313
+ {
9314
+ var item=minuteData.Data[i];
9315
+ findItem.Data[j]=item;
9316
+ }
9317
+ }
9318
+ else
9319
+ {
9320
+ if (!this.SourceData) return;
9321
+ var findIndex=-1;
9322
+ var firstItem=minuteData.Data[0];
9323
+ for(var i=0;i<this.SourceData.Data.length;++i)
9324
+ {
9325
+ var item=this.SourceData.Data[i];
9326
+ if (item.Date==firstItem.Date && item.Time==firstItem.Time)
9327
+ {
9328
+ findIndex=i;
9329
+ break;
9330
+ }
9331
+ }
9332
+
9333
+ if (findIndex<0) findIndex=this.SourceData.Data.length;
9334
+ for(var i=0, j=findIndex; i<minuteData.Data.length; ++i, ++j)
9335
+ {
9336
+ var item=minuteData.Data[i];
9337
+ this.SourceData.Data[j]=item;
9338
+ }
9339
+ }
9340
+
9341
+ }
9342
+
9208
9343
  //请求叠加数据 (主数据下载完再下载))
9209
9344
  this.RequestOverlayMinuteData = function ()
9210
9345
  {
@@ -9938,6 +10073,67 @@ MinuteChartContainer.JsonDataToMinuteDataArray = function (data)
9938
10073
  return result;
9939
10074
  }
9940
10075
 
10076
+ //分钟增量数据 stock: [ { date:, yclose:, yclearing: , minute:[ [],]} 0=日期 1=时间 2=开 3=高 4=低 5=收 6=均价 7=量 8=金额 9=涨幅 10=涨跌 11=领先指标 ]
10077
+ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
10078
+ {
10079
+ if (!data || !data.stock) return null;
10080
+ var stock=data.stock[0];
10081
+ if (!IFrameSplitOperator.IsNumber(stock.date)) return null;
10082
+
10083
+ var symbol=data.stock[0].symbol;
10084
+ var upperSymbol=symbol.toUpperCase();
10085
+ var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);
10086
+ var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
10087
+ var minuteData={ Date:stock.date, Data:[] , Symbol:symbol, Name:stock.name };
10088
+ var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_DAY_EXTENDDATA; //扩展数据序号
10089
+ if (IFrameSplitOperator.IsNumber(stock.high)) minuteData.High=stock.high;
10090
+ if (IFrameSplitOperator.IsNumber(stock.low)) minuteData.Low=stock.low;
10091
+ if (IFrameSplitOperator.IsNumber(stock.yclose)) minuteData.YClose=stock.yclose;
10092
+ if (IFrameSplitOperator.IsNumber(stock.YClearing)) minuteData.YClearing=stock.yclearing;
10093
+
10094
+ if (IFrameSplitOperator.IsNumber(stock.high)) minuteData.High=stock.high;
10095
+ if (IFrameSplitOperator.IsNumber(stock.low)) minuteData.Low=stock.low;
10096
+ if (IFrameSplitOperator.IsNumber(stock.yclose)) minuteData.YClose=stock.yclose;
10097
+ if (IFrameSplitOperator.IsNumber(stock.YClearing)) minuteData.YClearing=stock.yclearing;
10098
+
10099
+ if (!IFrameSplitOperator.IsNonEmptyArray(stock.minute)) return minuteData;
10100
+
10101
+ for(var i=0;i<stock.minute.length;++i)
10102
+ {
10103
+ var jsData=stock.minute[i];
10104
+ var item=new MinuteData();
10105
+
10106
+ item.YClearing=minuteData.YClearing;
10107
+ item.YClose=minuteData.YClose;
10108
+ item.Date=jsData[0];
10109
+ item.Time=jsData[1];
10110
+ item.Open=jsData[2];
10111
+ item.High=jsData[3];
10112
+ item.Low=jsData[4];
10113
+ item.Close=jsData[5];
10114
+ item.AvPrice=jsData[6];
10115
+ item.Vol=jsData[7];
10116
+ item.Amount=jsData[8];
10117
+ if (IFrameSplitOperator.IsNumber(jsData[9])) item.Increase=jsData[9];
10118
+ if (IFrameSplitOperator.IsNumber(jsData[10])) item.Risefall=jsData[10];
10119
+ if (IFrameSplitOperator.IsNumber(jsData[11])) item.Lead=jsData[11];
10120
+
10121
+ if (jsData[extendDataIndex]) item.ExtendData=jsData[extendDataIndex];
10122
+ item.DateTime=item.Date.toString()+" "+item.Time.toString();
10123
+ if (isSHSZ) item.Vol=item.Vol/100; //沪深股票原始单位股
10124
+
10125
+ if (IFrameSplitOperator.IsNumber(minuteData.YClose) && item.Close)
10126
+ item.Increase=(item.Close-minuteData.YClose)/minuteData.YClose*100; //涨幅 (最新价格-昨收)/昨收*100;
10127
+
10128
+ if (isFutures && minuteData.YClearing && item.Close)
10129
+ item.Increase=(item.Close-minuteData.YClearing)/minuteData.YClearing*100; //涨幅 (最新价格-昨结算价)/昨结算价*100;
10130
+
10131
+ minuteData.Data.push(item);
10132
+ }
10133
+
10134
+ return minuteData;
10135
+ }
10136
+
9941
10137
  /*
9942
10138
  历史分钟走势图
9943
10139
  */