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.
- package/lib/umychart.vue.js +10 -7
- package/package.json +1 -1
- package/src/jscommon/umychart.js +127 -1
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +128 -2
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +128 -2
- package/src/jscommon/umychart.wechat/umychart.version.wechat.js +1 -1
- package/src/jscommon/umychart.wechat/umychart.wechat.3.0.js +196 -0
package/lib/umychart.vue.js
CHANGED
|
@@ -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.
|
|
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
|
|
7924
|
-
|
|
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.
|
|
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
package/src/jscommon/umychart.js
CHANGED
|
@@ -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(
|
|
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(
|
|
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.
|
|
129072
|
+
var HQCHART_VERSION="1.1.12539";
|
|
128947
129073
|
|
|
128948
129074
|
function PrintHQChartVersion()
|
|
128949
129075
|
{
|
|
@@ -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(
|
|
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.
|
|
129225
|
+
var HQCHART_VERSION="1.1.12539";
|
|
129100
129226
|
|
|
129101
129227
|
function PrintHQChartVersion()
|
|
129102
129228
|
{
|
|
@@ -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
|
*/
|