hqchart 1.1.12997 → 1.1.13001
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
CHANGED
|
@@ -3137,7 +3137,7 @@ if(this.GetEventCallback){eventUnchangeKLine=this.GetEventCallback(JSCHART_EVENT
|
|
|
3137
3137
|
{if(i<this.ColorData.length)upColor=downColor=unchagneColor=this.ColorData[i]>0?this.UpColor:this.DownColor;else upColor=downColor=unchagneColor=this.DownColor;}if(this.IsThinAKBar==false&&dataWidth>=9){var coordinateInfo={YLow:yLow,YHigh:yHigh,YOpen:yOpen,YClose:yClose,X:x,Left:left,Right:right};var colorInfo={UpColor:upColor,DownColor:downColor,UnchangeColor:unchagneColor};this.DrawAKBar(data,dataWidth,isHScreen,coordinateInfo,colorInfo);}else{this.Canvas.beginPath();//最高-最低
|
|
3138
3138
|
if(isHScreen){if(data.High==data.Low&&dataWidth<4){this.Canvas.moveTo(yHigh,ToFixedPoint(x));this.Canvas.lineTo(yLow-1,ToFixedPoint(x));}else{this.Canvas.moveTo(yHigh,ToFixedPoint(x));this.Canvas.lineTo(yLow,ToFixedPoint(x));}}else{if(data.High==data.Low&&dataWidth<4){this.Canvas.moveTo(ToFixedPoint(x),yHigh);this.Canvas.lineTo(ToFixedPoint(x),yLow+1);}else{this.Canvas.moveTo(ToFixedPoint(x),yHigh);this.Canvas.lineTo(ToFixedPoint(x),yLow);}}this.Canvas.stroke();if(dataWidth>=4){this.Canvas.beginPath();//开盘
|
|
3139
3139
|
if(isHScreen){this.Canvas.moveTo(ToFixedPoint(yOpen),left);this.Canvas.lineTo(ToFixedPoint(yOpen),x);}else{this.Canvas.moveTo(left,ToFixedPoint(yOpen));this.Canvas.lineTo(x,ToFixedPoint(yOpen));}this.Canvas.stroke();this.Canvas.beginPath();//收盘
|
|
3140
|
-
if(isHScreen){this.Canvas.moveTo(ToFixedPoint(yClose),right);this.Canvas.lineTo(ToFixedPoint(yClose),x);}else{this.Canvas.moveTo(right,ToFixedPoint(yClose));this.Canvas.lineTo(x,ToFixedPoint(yClose));}this.Canvas.stroke();}}if(this.Data.DataType==0){var infoItem={Xleft:left,XRight:right,YMax:yHigh,XCenter:x,YMin:yLow,DayData:data,Index:j};this.DrawInfo(infoItem);}if(this.PriceGap.Enable&&preKItemInfo){this.
|
|
3140
|
+
if(isHScreen){this.Canvas.moveTo(ToFixedPoint(yClose),right);this.Canvas.lineTo(ToFixedPoint(yClose),x);}else{this.Canvas.moveTo(right,ToFixedPoint(yClose));this.Canvas.lineTo(x,ToFixedPoint(yClose));}this.Canvas.stroke();}}if(this.Data.DataType==0){var infoItem={Xleft:left,XRight:right,YMax:yHigh,XCenter:x,YMin:yLow,DayData:data,Index:j};this.DrawInfo(infoItem);}if(this.PriceGap.Enable&&preKItemInfo){this.CheckPriceGap(kItemInfo);var value=this.IsPriceGap(kItemInfo,preKItemInfo);if(value>0)this.AryPriceGapCache.push({Data:[preKItemInfo,kItemInfo],Type:value});}preKItemInfo=kItemInfo;}this.PtMax=ptMax;this.PtMin=ptMin;};this.DrawAKBar=function(data,dataWidth,isHScreen,coordinateInfo,colorInfo){var barWidth=dataWidth/3;var left=ToFixedRect(coordinateInfo.Left);var aryX=[left,ToFixedRect(left+barWidth),ToFixedRect(left+barWidth*2),ToFixedRect(left+barWidth*3)];var yHigh=coordinateInfo.YHigh,yLow=coordinateInfo.YLow,yOpen=coordinateInfo.YOpen,yClose=coordinateInfo.YClose;if(data.Open<data.Close){this.Canvas.strokeStyle=colorInfo.UpColor;//阳线
|
|
3141
3141
|
this.Canvas.fillStyle=colorInfo.UpColor;}else if(data.Open>data.Close){this.Canvas.strokeStyle=colorInfo.DownColor;//阳线
|
|
3142
3142
|
this.Canvas.fillStyle=colorInfo.DownColor;}else{this.Canvas.strokeStyle=colorInfo.UnchangeColor;//平线
|
|
3143
3143
|
this.Canvas.fillStyle=colorInfo.UnchangeColor;}//最高-最低
|
|
@@ -3145,9 +3145,9 @@ if(isHScreen){if(data.High==data.Low){var yTop=yHigh-barWidth/2;this.Canvas.fill
|
|
|
3145
3145
|
var yTop=yOpen-barWidth/2;if(isHScreen){this.Canvas.fillRect(yTop,aryX[0],barWidth,aryX[1]-aryX[0]);}else{this.Canvas.fillRect(aryX[0],yTop,aryX[1]-aryX[0],barWidth);}//收盘
|
|
3146
3146
|
var yTop=yClose-barWidth/2;if(isHScreen){this.Canvas.fillRect(yTop,aryX[2],barWidth,aryX[3]-aryX[2]);}else{this.Canvas.fillRect(aryX[2],yTop,aryX[3]-aryX[2],barWidth);}};this.DrawCloseArea=function()//收盘价面积图
|
|
3147
3147
|
{var isHScreen=this.ChartFrame.IsHScreen===true;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;if(isHScreen){var border=this.ChartBorder.GetHScreenBorder();var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.BottomEx;var borderLeft=border.TopEx;}else{var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;var borderLeft=border.LeftEx;}var bFirstPoint=true;var firstPoint=null;this.Canvas.beginPath();this.Canvas.strokeStyle=this.CloseLineColor;if(IFrameSplitOperator.IsNumber(this.CloseLineWidth))this.Canvas.lineWidth=this.CloseLineWidth;var ptLast=null;if(this.Data.DataOffset>0)//把最左边的一个点连上
|
|
3148
|
-
{var data=this.Data.Data[this.Data.DataOffset-1];if(data&&IFrameSplitOperator.IsNumber(data.Close)){var x=borderLeft;var yClose=this.GetYFromData(data.Close,false);if(isHScreen){this.Canvas.moveTo(yClose,x);firstPoint={X:yClose,Y:x};}else{this.Canvas.moveTo(x,yClose);firstPoint={X:x,Y:yClose};}bFirstPoint=false;}}this.ShowRange.Start=this.Data.DataOffset;this.ShowRange.End=this.ShowRange.Start;this.ShowRange.DataCount=0;this.ShowRange.ShowCount=xPointCount;this.DrawKRange.Start=this.Data.DataOffset;var preKItemInfo=null;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth,++this.ShowRange.DataCount){var data=this.Data.Data[i];this.ShowRange.End=i;if(data.Open==null||data.High==null||data.Low==null||data.Close==null)continue;var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;var yClose=this.GetYFromData(data.Close,false);this.DrawKRange.End=i;if(bFirstPoint){if(isHScreen){this.Canvas.moveTo(yClose,x);firstPoint={X:yClose,Y:x};}else{this.Canvas.moveTo(x,yClose);firstPoint={X:x,Y:yClose};}bFirstPoint=false;}else{if(isHScreen)this.Canvas.lineTo(yClose,x);else this.Canvas.lineTo(x,yClose);}if(i==this.Data.Data.length-1){ptLast={X:x,Y:yClose,XLeft:left,XRight:right,KItem:data,ChartRight:chartright};}if(this.PriceGap.Enable){var yLow=this.GetYFromData(data.Low,false);var yHigh=this.GetYFromData(data.High,false);var yOpen=this.GetYFromData(data.Open,false);var kItemInfo={Data:data,Coordinate:{X:x,Low:yLow,High:yHigh,Close:yClose,Open:yOpen,Left:left,Right:right}};if(preKItemInfo){this.
|
|
3148
|
+
{var data=this.Data.Data[this.Data.DataOffset-1];if(data&&IFrameSplitOperator.IsNumber(data.Close)){var x=borderLeft;var yClose=this.GetYFromData(data.Close,false);if(isHScreen){this.Canvas.moveTo(yClose,x);firstPoint={X:yClose,Y:x};}else{this.Canvas.moveTo(x,yClose);firstPoint={X:x,Y:yClose};}bFirstPoint=false;}}this.ShowRange.Start=this.Data.DataOffset;this.ShowRange.End=this.ShowRange.Start;this.ShowRange.DataCount=0;this.ShowRange.ShowCount=xPointCount;this.DrawKRange.Start=this.Data.DataOffset;var preKItemInfo=null;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth,++this.ShowRange.DataCount){var data=this.Data.Data[i];this.ShowRange.End=i;if(data.Open==null||data.High==null||data.Low==null||data.Close==null)continue;var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;var yClose=this.GetYFromData(data.Close,false);this.DrawKRange.End=i;if(bFirstPoint){if(isHScreen){this.Canvas.moveTo(yClose,x);firstPoint={X:yClose,Y:x};}else{this.Canvas.moveTo(x,yClose);firstPoint={X:x,Y:yClose};}bFirstPoint=false;}else{if(isHScreen)this.Canvas.lineTo(yClose,x);else this.Canvas.lineTo(x,yClose);}if(i==this.Data.Data.length-1){ptLast={X:x,Y:yClose,XLeft:left,XRight:right,KItem:data,ChartRight:chartright};}if(this.PriceGap.Enable){var yLow=this.GetYFromData(data.Low,false);var yHigh=this.GetYFromData(data.High,false);var yOpen=this.GetYFromData(data.Open,false);var kItemInfo={Data:data,Coordinate:{X:x,Low:yLow,High:yHigh,Close:yClose,Open:yOpen,Left:left,Right:right}};if(preKItemInfo){this.CheckPriceGap(kItemInfo);var value=this.IsPriceGap(kItemInfo,preKItemInfo);if(value>0)this.AryPriceGapCache.push({Data:[preKItemInfo,kItemInfo],Type:value});}preKItemInfo=kItemInfo;}}this.DrawLastPointEvent(ptLast);//通知外部绘制最后一个点
|
|
3149
3149
|
if(bFirstPoint)return;this.Canvas.stroke();if(isHScreen){this.Canvas.lineTo(border.Left,x);this.Canvas.lineTo(border.Left,firstPoint.Y);}else{this.Canvas.lineTo(x,border.Bottom);this.Canvas.lineTo(firstPoint.X,border.Bottom);}this.Canvas.closePath();if(Array.isArray(this.CloseLineAreaColor)){if(isHScreen){var gradient=this.Canvas.createLinearGradient(this.ChartBorder.GetRightEx(),this.ChartBorder.GetTop(),this.ChartBorder.GetLeft(),this.ChartBorder.GetTop());gradient.addColorStop(0,this.CloseLineAreaColor[0]);gradient.addColorStop(1,this.CloseLineAreaColor[1]);this.Canvas.fillStyle=gradient;}else{var _gradient=this.Canvas.createLinearGradient(firstPoint.X,this.ChartBorder.GetTopEx(),firstPoint.X,this.ChartBorder.GetBottom());_gradient.addColorStop(0,this.CloseLineAreaColor[0]);_gradient.addColorStop(1,this.CloseLineAreaColor[1]);this.Canvas.fillStyle=_gradient;}}else{this.Canvas.fillStyle=this.CloseLineAreaColor;}this.Canvas.fill();};this.DrawCloseLine=function()//收盘价线
|
|
3150
|
-
{var isHScreen=this.ChartFrame.IsHScreen===true;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;if(isHScreen){var border=this.ChartBorder.GetHScreenBorder();var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.BottomEx;}else{var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;}var bFirstPoint=true;this.Canvas.beginPath();this.Canvas.strokeStyle=this.CloseLineColor;if(IFrameSplitOperator.IsNumber(this.CloseLineWidth))this.Canvas.lineWidth=this.CloseLineWidth;this.ShowRange.Start=this.Data.DataOffset;this.ShowRange.End=this.ShowRange.Start;this.ShowRange.DataCount=0;this.ShowRange.ShowCount=xPointCount;this.DrawKRange.Start=this.Data.DataOffset;var preKItemInfo=null;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth,++this.ShowRange.DataCount){var data=this.Data.Data[i];this.ShowRange.End=i;if(data.Open==null||data.High==null||data.Low==null||data.Close==null)continue;var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;var yClose=this.GetYFromData(data.Close,false);this.DrawKRange.End=i;if(bFirstPoint){if(isHScreen)this.Canvas.moveTo(yClose,x);else this.Canvas.moveTo(x,yClose);bFirstPoint=false;}else{if(isHScreen)this.Canvas.lineTo(yClose,x);else this.Canvas.lineTo(x,yClose);}if(this.PriceGap.Enable){var yLow=this.GetYFromData(data.Low,false);var yHigh=this.GetYFromData(data.High,false);var yOpen=this.GetYFromData(data.Open,false);var kItemInfo={Data:data,Coordinate:{X:x,Low:yLow,High:yHigh,Close:yClose,Open:yOpen,Left:left,Right:right}};if(preKItemInfo){this.
|
|
3150
|
+
{var isHScreen=this.ChartFrame.IsHScreen===true;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;if(isHScreen){var border=this.ChartBorder.GetHScreenBorder();var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.BottomEx;}else{var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;}var bFirstPoint=true;this.Canvas.beginPath();this.Canvas.strokeStyle=this.CloseLineColor;if(IFrameSplitOperator.IsNumber(this.CloseLineWidth))this.Canvas.lineWidth=this.CloseLineWidth;this.ShowRange.Start=this.Data.DataOffset;this.ShowRange.End=this.ShowRange.Start;this.ShowRange.DataCount=0;this.ShowRange.ShowCount=xPointCount;this.DrawKRange.Start=this.Data.DataOffset;var preKItemInfo=null;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth,++this.ShowRange.DataCount){var data=this.Data.Data[i];this.ShowRange.End=i;if(data.Open==null||data.High==null||data.Low==null||data.Close==null)continue;var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;var yClose=this.GetYFromData(data.Close,false);this.DrawKRange.End=i;if(bFirstPoint){if(isHScreen)this.Canvas.moveTo(yClose,x);else this.Canvas.moveTo(x,yClose);bFirstPoint=false;}else{if(isHScreen)this.Canvas.lineTo(yClose,x);else this.Canvas.lineTo(x,yClose);}if(this.PriceGap.Enable){var yLow=this.GetYFromData(data.Low,false);var yHigh=this.GetYFromData(data.High,false);var yOpen=this.GetYFromData(data.Open,false);var kItemInfo={Data:data,Coordinate:{X:x,Low:yLow,High:yHigh,Close:yClose,Open:yOpen,Left:left,Right:right}};if(preKItemInfo){this.CheckPriceGap(kItemInfo);var value=this.IsPriceGap(kItemInfo,preKItemInfo);if(value>0)this.AryPriceGapCache.push({Data:[preKItemInfo,kItemInfo],Type:value});}preKItemInfo=kItemInfo;}}if(bFirstPoint==false)this.Canvas.stroke();};this.DrawKBar=function()//蜡烛头
|
|
3151
3151
|
{var isHScreen=this.ChartFrame.IsHScreen===true;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;var xPointCount=this.ChartFrame.XPointCount;if(isHScreen){var border=this.ChartBorder.GetHScreenBorder();xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;chartright=border.BottomEx;}var ptMax={X:null,Y:null,Value:null,Align:'left'};var ptMin={X:null,Y:null,Value:null,Align:'left'};var upColor=this.UpColor;var downColor=this.DownColor;var unchagneColor=this.UnchagneColor;this.ShowRange.Start=this.Data.DataOffset;this.ShowRange.End=this.ShowRange.Start;this.ShowRange.DataCount=0;this.ShowRange.ShowCount=xPointCount;var ptLast=null;this.DrawKRange.Start=this.Data.DataOffset;var eventUnchangeKLine=null;//定制平盘K线颜色事件
|
|
3152
3152
|
if(this.GetEventCallback){eventUnchangeKLine=this.GetEventCallback(JSCHART_EVENT_ID.ON_CUSTOM_UNCHANGE_KLINE_COLOR);}var preKItemInfo=null;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth,++this.ShowRange.DataCount){var data=this.Data.Data[i];this.ShowRange.End=i;if(data.Open==null||data.High==null||data.Low==null||data.Close==null)continue;var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;var yLow=this.GetYFromData(data.Low,false);var yHigh=this.GetYFromData(data.High,false);var yOpen=this.GetYFromData(data.Open,false);var yClose=this.GetYFromData(data.Close,false);var y=yHigh;var kItemInfo={Data:data,Coordinate:{X:x,Low:yLow,High:yHigh,Close:yClose,Open:yOpen,Left:left,Right:right}};this.DrawKRange.End=i;if(ptMax.Value==null||ptMax.Value<data.High)//求最大值
|
|
3153
3153
|
{ptMax.X=x;ptMax.Y=yHigh;ptMax.Value=data.High;ptMax.Align=j<xPointCount/2?'left':'right';}if(ptMin.Value==null||ptMin.Value>data.Low)//求最小值
|
|
@@ -3161,7 +3161,7 @@ if(this.GetEventCallback){eventUnchangeKLine=this.GetEventCallback(JSCHART_EVENT
|
|
|
3161
3161
|
{yTop=Math.min(yHigh,yTop-5);yBottom=Math.max(yLow,yBottom+5);}if(data.IsNonTrade){yTop=yHigh;yBottom=yLow;}var rect=new Rect(left,yTop,dataWidth,yBottom-yTop);//this.Canvas.fillStyle="rgb(0,0,100)";
|
|
3162
3162
|
//this.Canvas.fillRect(rect.X,rect.Y,rect.Width,rect.Height);
|
|
3163
3163
|
this.TooltipRect.push([i,rect]);//[0]数据索引 [1]数据区域
|
|
3164
|
-
}if(this.Data.DataType==0||this.Data.DataType==1){var infoItem={Xleft:left,XRight:right,XCenter:x,YMax:yHigh,YMin:yLow,DayData:data,Index:j};this.DrawInfo(infoItem);}if(i==this.Data.Data.length-1){ptLast={X:x,Y:yClose,XLeft:left,XRight:right,KItem:data,ChartRight:chartright};}if(this.PriceGap.Enable&&preKItemInfo){this.
|
|
3164
|
+
}if(this.Data.DataType==0||this.Data.DataType==1){var infoItem={Xleft:left,XRight:right,XCenter:x,YMax:yHigh,YMin:yLow,DayData:data,Index:j};this.DrawInfo(infoItem);}if(i==this.Data.Data.length-1){ptLast={X:x,Y:yClose,XLeft:left,XRight:right,KItem:data,ChartRight:chartright};}if(this.PriceGap.Enable&&preKItemInfo){this.CheckPriceGap(kItemInfo);var value=this.IsPriceGap(kItemInfo,preKItemInfo);if(value>0)this.AryPriceGapCache.push({Data:[preKItemInfo,kItemInfo],Type:value});}preKItemInfo=kItemInfo;}this.DrawLastPointEvent(ptLast);//通知外部绘制最后一个点
|
|
3165
3165
|
this.PtMax=ptMax;this.PtMin=ptMin;};this.DrawKBar_Up=function(data,dataWidth,upColor,drawType,x,y,left,right,yLow,yHigh,yOpen,yClose,isHScreen)//阳线
|
|
3166
3166
|
{var isEmptyBar=drawType==3||drawType==6;if(dataWidth>=4){if(isEmptyBar){if(dataWidth%2!=0)dataWidth-=1;}this.Canvas.strokeStyle=upColor;if(data.High>data.Close)//上影线
|
|
3167
3167
|
{this.Canvas.beginPath();if(isHScreen){this.Canvas.moveTo(ToFixedPoint(y),ToFixedPoint(x));this.Canvas.lineTo(ToFixedPoint(drawType==3?Math.max(yClose,yOpen):yClose),ToFixedPoint(x));}else{if(isEmptyBar){var xFixed=left+dataWidth/2;this.Canvas.moveTo(ToFixedPoint(xFixed),ToFixedPoint(y));this.Canvas.lineTo(ToFixedPoint(xFixed),ToFixedPoint(Math.min(yClose,yOpen)));}else{this.Canvas.moveTo(ToFixedPoint(x),ToFixedPoint(y));this.Canvas.lineTo(ToFixedPoint(x),ToFixedPoint(yClose));}}this.Canvas.stroke();y=yClose;}else{y=yClose;}this.Canvas.fillStyle=upColor;if(isHScreen){if(Math.abs(yOpen-y)<1){this.Canvas.fillRect(ToFixedRect(y),ToFixedRect(left),1,ToFixedRect(dataWidth));//高度小于1,统一使用高度1
|
|
@@ -3564,10 +3564,10 @@ this.DrawPriceGap=function(){if(!IFrameSplitOperator.IsNonEmptyArray(this.AryPri
|
|
|
3564
3564
|
{if(isHScreen){rect={Left:start.Coordinate.Low,Right:end.Coordinate.High,Top:start.Coordinate.X,Bottom:border.Bottom};rect.Width=rect.Right-rect.Left;rect.Height=rect.Bottom-rect.Top;rtText={Left:start.Coordinate.Low+2,Top:start.Coordinate.Right+2,Height:textHeight};rtText.Bottom=rtText.Top+rtText.Height;}else{rect={Left:start.Coordinate.X,Right:border.Right,Top:start.Coordinate.Low,Bottom:end.Coordinate.High};rect.Width=rect.Right-rect.Left;rect.Height=rect.Bottom-rect.Top;rtText={Left:start.Coordinate.Right+2,Bottom:rect.Top,Right:rect.Right,Height:textHeight};rtText.Top=rtText.Bottom-rtText.Height;}text=start.Data.Low.toFixed(decNum)+'-'+end.Data.High.toFixed(decNum);}else{continue;}if(!rect)return;this.Canvas.fillStyle=this.PriceGapStyple.Line.Color;this.Canvas.fillRect(rect.Left,rect.Top,rect.Width,rect.Height);if(rtText){var textWidth=this.Canvas.measureText(text).width;rtText.Width=textWidth;rtText.Right=rtText.Left+rtText.Width;this.Canvas.fillStyle=this.PriceGapStyple.Text.Color;if(isHScreen){this.Canvas.save();this.Canvas.translate(rtText.Left,rtText.Top);this.Canvas.rotate(90*Math.PI/180);this.Canvas.fillText(text,0,0);this.Canvas.restore();}else{if(rtText.Right>rect.Right){rtText.Right=rect.Right;rtText.Left=rtText.Right-rtText.Width;}this.Canvas.fillStyle=this.PriceGapStyple.Text.Color;this.Canvas.fillText(text,rtText.Left,rtText.Bottom);}//this.Canvas.fillStyle="rgb(250,250,250)"
|
|
3565
3565
|
//this.Canvas.fillRect(rtText.Left, rtText.Top, rtText.Width, rtText.Height);
|
|
3566
3566
|
}}};//是否有缺口
|
|
3567
|
-
this.
|
|
3567
|
+
this.IsPriceGap=function(item,preItem){if(!preItem||!item)return 0;if(preItem.Data.Low>item.Data.High)return 2;//下缺口
|
|
3568
3568
|
if(preItem.Data.High<item.Data.Low)return 1;//上缺口
|
|
3569
3569
|
return-1;};//检测缺口是不回补了
|
|
3570
|
-
this.
|
|
3570
|
+
this.CheckPriceGap=function(kItemInfo){var kItem=kItemInfo.Data;for(var i=0;i<this.AryPriceGapCache.length;++i){var item=this.AryPriceGapCache[i];var start=item.Data[0];var end=item.Data[1];if(item.Type==1)//上缺口
|
|
3571
3571
|
{if(kItem.Low<=start.Data.High){this.AryPriceGapCache.splice(i,1);--i;continue;}if(kItem.Low<end.Data.Low)item.Data[1]=kItemInfo;}else if(item.Type==2)//下缺口
|
|
3572
3572
|
{if(kItem.High>=start.Data.Low){this.AryPriceGapCache.splice(i,1);--i;continue;}if(kItem.High>end.Data.High)item.Data[1]=kItemInfo;}}};}function ChartColorKline(){this.newMethod=IChartPainting;//派生
|
|
3573
3573
|
this.newMethod();delete this.newMethod;this.ClassName='ChartColorKline';//类名
|
|
@@ -12624,7 +12624,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
|
|
|
12624
12624
|
this.ExecuteScript(item,data);}this.Status=0;}};this.OnExecuteFinish=function(data,indexInfo,jsExectute,jobInfo){var message={Data:data,IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.FINISH_EXECUTE_SCRIPT,JobInfo:jobInfo};postMessage(message);};this.OnExecuteError=function(error,indexInfo,jobData){var message={IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.ERROR_EXECUTE_SCRIPT,Error:error};postMessage(message);};}/********************************************************************************
|
|
12625
12625
|
* 版本信息输出
|
|
12626
12626
|
*
|
|
12627
|
-
*/var HQCHART_VERSION="1.1.
|
|
12627
|
+
*/var HQCHART_VERSION="1.1.13000";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();//把给外界调用的方法暴露出来
|
|
12628
12628
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
12629
12629
|
// BaseIndex:BaseIndex,
|
|
12630
12630
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
package/src/jscommon/umychart.js
CHANGED
|
@@ -22814,9 +22814,9 @@ function ChartKLine()
|
|
|
22814
22814
|
|
|
22815
22815
|
if (this.PriceGap.Enable && preKItemInfo)
|
|
22816
22816
|
{
|
|
22817
|
-
this.
|
|
22817
|
+
this.CheckPriceGap(kItemInfo);
|
|
22818
22818
|
|
|
22819
|
-
var value=this.
|
|
22819
|
+
var value=this.IsPriceGap(kItemInfo,preKItemInfo);
|
|
22820
22820
|
if (value>0)
|
|
22821
22821
|
this.AryPriceGapCache.push({ Data:[preKItemInfo, kItemInfo], Type:value });
|
|
22822
22822
|
}
|
|
@@ -23007,8 +23007,8 @@ function ChartKLine()
|
|
|
23007
23007
|
|
|
23008
23008
|
if (preKItemInfo)
|
|
23009
23009
|
{
|
|
23010
|
-
this.
|
|
23011
|
-
var value=this.
|
|
23010
|
+
this.CheckPriceGap(kItemInfo);
|
|
23011
|
+
var value=this.IsPriceGap(kItemInfo,preKItemInfo);
|
|
23012
23012
|
if (value>0) this.AryPriceGapCache.push({ Data:[preKItemInfo, kItemInfo], Type:value });
|
|
23013
23013
|
}
|
|
23014
23014
|
|
|
@@ -23123,8 +23123,8 @@ function ChartKLine()
|
|
|
23123
23123
|
|
|
23124
23124
|
if (preKItemInfo)
|
|
23125
23125
|
{
|
|
23126
|
-
this.
|
|
23127
|
-
var value=this.
|
|
23126
|
+
this.CheckPriceGap(kItemInfo);
|
|
23127
|
+
var value=this.IsPriceGap(kItemInfo,preKItemInfo);
|
|
23128
23128
|
if (value>0) this.AryPriceGapCache.push({ Data:[preKItemInfo, kItemInfo], Type:value });
|
|
23129
23129
|
}
|
|
23130
23130
|
|
|
@@ -23297,9 +23297,9 @@ function ChartKLine()
|
|
|
23297
23297
|
|
|
23298
23298
|
if (this.PriceGap.Enable && preKItemInfo)
|
|
23299
23299
|
{
|
|
23300
|
-
this.
|
|
23300
|
+
this.CheckPriceGap(kItemInfo);
|
|
23301
23301
|
|
|
23302
|
-
var value=this.
|
|
23302
|
+
var value=this.IsPriceGap(kItemInfo,preKItemInfo);
|
|
23303
23303
|
if (value>0)
|
|
23304
23304
|
this.AryPriceGapCache.push({ Data:[preKItemInfo, kItemInfo], Type:value });
|
|
23305
23305
|
}
|
|
@@ -26931,7 +26931,7 @@ function ChartKLine()
|
|
|
26931
26931
|
}
|
|
26932
26932
|
|
|
26933
26933
|
//是否有缺口
|
|
26934
|
-
this.
|
|
26934
|
+
this.IsPriceGap=function(item, preItem)
|
|
26935
26935
|
{
|
|
26936
26936
|
if (!preItem || !item) return 0;
|
|
26937
26937
|
|
|
@@ -26943,7 +26943,7 @@ function ChartKLine()
|
|
|
26943
26943
|
}
|
|
26944
26944
|
|
|
26945
26945
|
//检测缺口是不回补了
|
|
26946
|
-
this.
|
|
26946
|
+
this.CheckPriceGap=function(kItemInfo)
|
|
26947
26947
|
{
|
|
26948
26948
|
var kItem=kItemInfo.Data;
|
|
26949
26949
|
for(var i=0;i<this.AryPriceGapCache.length;++i)
|
|
@@ -26706,9 +26706,9 @@ function ChartKLine()
|
|
|
26706
26706
|
|
|
26707
26707
|
if (this.PriceGap.Enable && preKItemInfo)
|
|
26708
26708
|
{
|
|
26709
|
-
this.
|
|
26709
|
+
this.CheckPriceGap(kItemInfo);
|
|
26710
26710
|
|
|
26711
|
-
var value=this.
|
|
26711
|
+
var value=this.IsPriceGap(kItemInfo,preKItemInfo);
|
|
26712
26712
|
if (value>0)
|
|
26713
26713
|
this.AryPriceGapCache.push({ Data:[preKItemInfo, kItemInfo], Type:value });
|
|
26714
26714
|
}
|
|
@@ -26899,8 +26899,8 @@ function ChartKLine()
|
|
|
26899
26899
|
|
|
26900
26900
|
if (preKItemInfo)
|
|
26901
26901
|
{
|
|
26902
|
-
this.
|
|
26903
|
-
var value=this.
|
|
26902
|
+
this.CheckPriceGap(kItemInfo);
|
|
26903
|
+
var value=this.IsPriceGap(kItemInfo,preKItemInfo);
|
|
26904
26904
|
if (value>0) this.AryPriceGapCache.push({ Data:[preKItemInfo, kItemInfo], Type:value });
|
|
26905
26905
|
}
|
|
26906
26906
|
|
|
@@ -27015,8 +27015,8 @@ function ChartKLine()
|
|
|
27015
27015
|
|
|
27016
27016
|
if (preKItemInfo)
|
|
27017
27017
|
{
|
|
27018
|
-
this.
|
|
27019
|
-
var value=this.
|
|
27018
|
+
this.CheckPriceGap(kItemInfo);
|
|
27019
|
+
var value=this.IsPriceGap(kItemInfo,preKItemInfo);
|
|
27020
27020
|
if (value>0) this.AryPriceGapCache.push({ Data:[preKItemInfo, kItemInfo], Type:value });
|
|
27021
27021
|
}
|
|
27022
27022
|
|
|
@@ -27189,9 +27189,9 @@ function ChartKLine()
|
|
|
27189
27189
|
|
|
27190
27190
|
if (this.PriceGap.Enable && preKItemInfo)
|
|
27191
27191
|
{
|
|
27192
|
-
this.
|
|
27192
|
+
this.CheckPriceGap(kItemInfo);
|
|
27193
27193
|
|
|
27194
|
-
var value=this.
|
|
27194
|
+
var value=this.IsPriceGap(kItemInfo,preKItemInfo);
|
|
27195
27195
|
if (value>0)
|
|
27196
27196
|
this.AryPriceGapCache.push({ Data:[preKItemInfo, kItemInfo], Type:value });
|
|
27197
27197
|
}
|
|
@@ -30823,7 +30823,7 @@ function ChartKLine()
|
|
|
30823
30823
|
}
|
|
30824
30824
|
|
|
30825
30825
|
//是否有缺口
|
|
30826
|
-
this.
|
|
30826
|
+
this.IsPriceGap=function(item, preItem)
|
|
30827
30827
|
{
|
|
30828
30828
|
if (!preItem || !item) return 0;
|
|
30829
30829
|
|
|
@@ -30835,7 +30835,7 @@ function ChartKLine()
|
|
|
30835
30835
|
}
|
|
30836
30836
|
|
|
30837
30837
|
//检测缺口是不回补了
|
|
30838
|
-
this.
|
|
30838
|
+
this.CheckPriceGap=function(kItemInfo)
|
|
30839
30839
|
{
|
|
30840
30840
|
var kItem=kItemInfo.Data;
|
|
30841
30841
|
for(var i=0;i<this.AryPriceGapCache.length;++i)
|
|
@@ -129545,7 +129545,7 @@ function ScrollBarBGChart()
|
|
|
129545
129545
|
|
|
129546
129546
|
|
|
129547
129547
|
|
|
129548
|
-
var HQCHART_VERSION="1.1.
|
|
129548
|
+
var HQCHART_VERSION="1.1.13000";
|
|
129549
129549
|
|
|
129550
129550
|
function PrintHQChartVersion()
|
|
129551
129551
|
{
|
|
@@ -26750,9 +26750,9 @@ function ChartKLine()
|
|
|
26750
26750
|
|
|
26751
26751
|
if (this.PriceGap.Enable && preKItemInfo)
|
|
26752
26752
|
{
|
|
26753
|
-
this.
|
|
26753
|
+
this.CheckPriceGap(kItemInfo);
|
|
26754
26754
|
|
|
26755
|
-
var value=this.
|
|
26755
|
+
var value=this.IsPriceGap(kItemInfo,preKItemInfo);
|
|
26756
26756
|
if (value>0)
|
|
26757
26757
|
this.AryPriceGapCache.push({ Data:[preKItemInfo, kItemInfo], Type:value });
|
|
26758
26758
|
}
|
|
@@ -26943,8 +26943,8 @@ function ChartKLine()
|
|
|
26943
26943
|
|
|
26944
26944
|
if (preKItemInfo)
|
|
26945
26945
|
{
|
|
26946
|
-
this.
|
|
26947
|
-
var value=this.
|
|
26946
|
+
this.CheckPriceGap(kItemInfo);
|
|
26947
|
+
var value=this.IsPriceGap(kItemInfo,preKItemInfo);
|
|
26948
26948
|
if (value>0) this.AryPriceGapCache.push({ Data:[preKItemInfo, kItemInfo], Type:value });
|
|
26949
26949
|
}
|
|
26950
26950
|
|
|
@@ -27059,8 +27059,8 @@ function ChartKLine()
|
|
|
27059
27059
|
|
|
27060
27060
|
if (preKItemInfo)
|
|
27061
27061
|
{
|
|
27062
|
-
this.
|
|
27063
|
-
var value=this.
|
|
27062
|
+
this.CheckPriceGap(kItemInfo);
|
|
27063
|
+
var value=this.IsPriceGap(kItemInfo,preKItemInfo);
|
|
27064
27064
|
if (value>0) this.AryPriceGapCache.push({ Data:[preKItemInfo, kItemInfo], Type:value });
|
|
27065
27065
|
}
|
|
27066
27066
|
|
|
@@ -27233,9 +27233,9 @@ function ChartKLine()
|
|
|
27233
27233
|
|
|
27234
27234
|
if (this.PriceGap.Enable && preKItemInfo)
|
|
27235
27235
|
{
|
|
27236
|
-
this.
|
|
27236
|
+
this.CheckPriceGap(kItemInfo);
|
|
27237
27237
|
|
|
27238
|
-
var value=this.
|
|
27238
|
+
var value=this.IsPriceGap(kItemInfo,preKItemInfo);
|
|
27239
27239
|
if (value>0)
|
|
27240
27240
|
this.AryPriceGapCache.push({ Data:[preKItemInfo, kItemInfo], Type:value });
|
|
27241
27241
|
}
|
|
@@ -30867,7 +30867,7 @@ function ChartKLine()
|
|
|
30867
30867
|
}
|
|
30868
30868
|
|
|
30869
30869
|
//是否有缺口
|
|
30870
|
-
this.
|
|
30870
|
+
this.IsPriceGap=function(item, preItem)
|
|
30871
30871
|
{
|
|
30872
30872
|
if (!preItem || !item) return 0;
|
|
30873
30873
|
|
|
@@ -30879,7 +30879,7 @@ function ChartKLine()
|
|
|
30879
30879
|
}
|
|
30880
30880
|
|
|
30881
30881
|
//检测缺口是不回补了
|
|
30882
|
-
this.
|
|
30882
|
+
this.CheckPriceGap=function(kItemInfo)
|
|
30883
30883
|
{
|
|
30884
30884
|
var kItem=kItemInfo.Data;
|
|
30885
30885
|
for(var i=0;i<this.AryPriceGapCache.length;++i)
|
|
@@ -129703,7 +129703,7 @@ function HQChartScriptWorker()
|
|
|
129703
129703
|
|
|
129704
129704
|
|
|
129705
129705
|
|
|
129706
|
-
var HQCHART_VERSION="1.1.
|
|
129706
|
+
var HQCHART_VERSION="1.1.13000";
|
|
129707
129707
|
|
|
129708
129708
|
function PrintHQChartVersion()
|
|
129709
129709
|
{
|