hqchart 1.1.12570 → 1.1.12575

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.
@@ -2430,8 +2430,8 @@ for(var i=0;i<this.CustomToolbar.length;++i){var item=this.CustomToolbar[i];if(i
2430
2430
  }}return aryLeftButton;};this.DrawFrame=function(){if(!this.IsMinSize){this.SplitXYCoordinate();if(this.SizeChange==true){this.CalculateDataWidth();if(this.Logarithmic)this.SplitLogarithmicXYCoordinate();}if(this.BeforeDrawXYCallback)this.BeforeDrawXYCallback(this);this.DrawTitleBG();this.DrawHorizontal();this.DrawVertical();}if(this.SizeChange==true||this.ReDrawToolbar==true){this.DrawToolbar();//大小变动才画工具条
2431
2431
  this.ReDrawToolbar=false;}};//isLimit 是否限制在当前屏坐标下
2432
2432
  this.GetXFromIndex=function(index,isLimit){if(isLimit===false){if(index>=0){var offset=this.ChartBorder.GetLeft()+g_JSChartResource.FrameLeftMargin+this.DistanceWidth/2+this.DataWidth/2;for(var i=1;i<=index;++i){offset+=this.DistanceWidth+this.DataWidth;}}else{var offset=this.ChartBorder.GetLeft()+g_JSChartResource.FrameLeftMargin-(this.DistanceWidth/2+this.DataWidth+this.DistanceWidth);var absIndex=Math.abs(index);for(var i=1;i<absIndex;++i){offset-=this.DistanceWidth+this.DataWidth;}}}else{if(index<0)index=0;if(index>this.xPointCount-1)index=this.xPointCount-1;var offset=this.ChartBorder.GetLeft()+g_JSChartResource.FrameLeftMargin+this.DistanceWidth/2+this.DataWidth/2;for(var i=1;i<=index;++i){offset+=this.DistanceWidth+this.DataWidth;}}return offset;};//X坐标转x轴数值 isLimit=是否限制在当前屏坐标下
2433
- this.GetXData=function(x,isLimit){var distanceWidth=this.DistanceWidth;var dataWidth=this.DataWidth;var left=this.ChartBorder.GetLeft()+g_JSChartResource.FrameLeftMargin;if(isLimit==false){if(x<this.ChartBorder.GetLeft()){var index=-1;var xPoint=this.ChartBorder.GetLeft()-(distanceWidth/2+dataWidth+distanceWidth);while(index>-10000){if(xPoint<=x)break;xPoint-=dataWidth+distanceWidth;--index;}return index;}else{var index=0;var xPoint=left+distanceWidth/2+dataWidth+distanceWidth;while(index<10000)//自己算x的数值
2434
- {if(xPoint>=x)break;xPoint+=dataWidth+distanceWidth;++index;}return index;}}else{if(x<=this.ChartBorder.GetLeft())return 0;if(x>=this.ChartBorder.GetRight())return this.XPointCount-1;var right=this.ChartBorder.GetRight()-g_JSChartResource.FrameRightMargin;var index=0;var xPoint=left+distanceWidth/2+dataWidth+distanceWidth;while(xPoint<right&&index<10000&&index+1<this.XPointCount)//自己算x的数值
2433
+ this.GetXData=function(x,isLimit){var distanceWidth=this.DistanceWidth;var dataWidth=this.DataWidth;var left=this.ChartBorder.GetLeft()+g_JSChartResource.FrameLeftMargin;var maxDataCount=10000*50;if(isLimit==false){if(x<this.ChartBorder.GetLeft()){var index=-1;var xPoint=this.ChartBorder.GetLeft()-(distanceWidth/2+dataWidth+distanceWidth);while(index>-maxDataCount){if(xPoint<=x)break;xPoint-=dataWidth+distanceWidth;--index;}return index;}else{var index=0;var xPoint=left+distanceWidth/2+dataWidth+distanceWidth;while(index<maxDataCount)//自己算x的数值
2434
+ {if(xPoint>=x)break;xPoint+=dataWidth+distanceWidth;++index;}return index;}}else{if(x<=this.ChartBorder.GetLeft())return 0;if(x>=this.ChartBorder.GetRight())return this.XPointCount-1;var right=this.ChartBorder.GetRight()-g_JSChartResource.FrameRightMargin;var index=0;var xPoint=left+distanceWidth/2+dataWidth+distanceWidth;while(xPoint<right&&index<maxDataCount&&index+1<this.XPointCount)//自己算x的数值
2435
2435
  {if(xPoint>=x)break;xPoint+=dataWidth+distanceWidth;++index;}//var test=(x-this.ChartBorder.GetLeft())*(this.XPointCount*1.0/this.ChartBorder.GetWidth());
2436
2436
  return index;}};//计算数据宽度
2437
2437
  this.CalculateDataWidth=function(){if(this.XPointCount<2)return;//JSConsole.Chart.Log(`[KLineFrame::CalculateDataWidth] ZoomIndex=${this.ZoomIndex}, XPointCount=${this.XPointCount}, DataWidth=${this.DataWidth}, DistanceWidth=${this.DistanceWidth}`);
@@ -2541,7 +2541,7 @@ this.Canvas.beginPath();this.Canvas.moveTo(left,ToFixedPoint(x));this.Canvas.lin
2541
2541
  this.Canvas.beginPath();this.Canvas.moveTo(left,ToFixedPoint(x));this.Canvas.lineTo(right,ToFixedPoint(x));this.Canvas.stroke();this.Canvas.setLineDash([]);}else//实线
2542
2542
  {this.Canvas.beginPath();this.Canvas.moveTo(left,ToFixedPoint(x));this.Canvas.lineTo(right,ToFixedPoint(x));this.Canvas.stroke();}}if(this.VerticalInfo[i].Message[0]!=null){if(this.VerticalInfo[i].Font!=null)this.Canvas.font=this.VerticalInfo[i].Font;this.Canvas.fillStyle=this.VerticalInfo[i].TextColor;var testWidth=this.Canvas.measureText(this.VerticalInfo[i].Message[0]).width;if(x<testWidth/2){this.Canvas.textAlign="left";this.Canvas.textBaseline="top";}else{this.Canvas.textAlign="center";this.Canvas.textBaseline="top";}var xText=left,yText=x;this.Canvas.save();this.Canvas.translate(xText,yText);this.Canvas.rotate(90*Math.PI/180);this.Canvas.fillText(this.VerticalInfo[i].Message[0],0,this.XBottomOffset);this.Canvas.restore();}xPrev=x;}};//Y坐标转y轴数值
2543
2543
  this.GetYData=function(x,isLimit){var border=this.ChartBorder.GetHScreenBorder();if(isLimit===false){var width=border.RightEx-border.LeftEx;return(x-border.LeftEx)/width*(this.HorizontalMax-this.HorizontalMin)+this.HorizontalMin;}else{if(x<border.LeftEx)return this.HorizontalMin;if(x>border.RightEx)return this.HorizontalMax;var width=border.RightEx-border.LeftEx;return(x-border.LeftEx)/width*(this.HorizontalMax-this.HorizontalMin)+this.HorizontalMin;}};//X坐标转x轴数值
2544
- this.GetXData=function(y,isLimit){var border=this.ChartBorder.GetHScreenBorder();var left=border.TopEx+g_JSChartResource.FrameLeftMargin;var right=border.BottomEx;var distanceWidth=this.DistanceWidth;var dataWidth=this.DataWidth;var maxDataCount=10000*50;if(isLimit==false){if(y<left){var index=-1;var xPoint=left-(distanceWidth/2+dataWidth+distanceWidth);while(index>-maxDataCount){if(xPoint<=y)break;xPoint-=dataWidth+distanceWidth;--index;}return index;}else{var index=0;var xPoint=left+distanceWidth/2+dataWidth+distanceWidth;while(index<maxDataCount)//自己算x的数值
2544
+ this.GetXData=function(y,isLimit){var border=this.ChartBorder.GetHScreenBorder();var left=border.TopEx+g_JSChartResource.FrameLeftMargin;var right=border.BottomEx;var distanceWidth=this.DistanceWidth;var dataWidth=this.DataWidth;var maxDataCount=10000*10;if(isLimit==false){if(y<left){var index=-1;var xPoint=left-(distanceWidth/2+dataWidth+distanceWidth);while(index>-maxDataCount){if(xPoint<=y)break;xPoint-=dataWidth+distanceWidth;--index;}return index;}else{var index=0;var xPoint=left+distanceWidth/2+dataWidth+distanceWidth;while(index<maxDataCount)//自己算x的数值
2545
2545
  {if(xPoint>=y)break;xPoint+=dataWidth+distanceWidth;++index;}return index;}}else{if(y<=border.TopEx)return 0;if(y>=border.BottomEx)return this.XPointCount-1;var index=0;var xPoint=left+distanceWidth/2+dataWidth+distanceWidth;while(xPoint<right&&index<maxDataCount&&index+1<this.XPointCount)//自己算x的数值
2546
2546
  {if(xPoint>y)break;xPoint+=dataWidth+distanceWidth;++index;}return index;}//return (y-this.ChartBorder.GetTop())*(this.XPointCount*1.0/this.ChartBorder.GetHeight());
2547
2547
  };this.DrawBottons=function(){};//计算数据宽度
@@ -4342,7 +4342,7 @@ var aryText=[];var result={AryText:aryText};var text,title,color;text=IFrameSpli
4342
4342
  {title=g_JSChartLocalization.GetText('Tooltip-High',this.LanguageID);color=this.KLineTitlePaint.GetColor(item.High,item.YClose);text=item.High.toFixed(defaultfloatPrecision);aryText.push({Title:title,TitleColor:this.TitleColor,Text:text,Color:color});}if(IFrameSplitOperator.IsNumber(item.Low))//低
4343
4343
  {title=g_JSChartLocalization.GetText('Tooltip-Low',this.LanguageID);color=this.KLineTitlePaint.GetColor(item.Low,item.YClose);text=item.Low.toFixed(defaultfloatPrecision);aryText.push({Title:title,TitleColor:this.TitleColor,Text:text,Color:color});}if(IFrameSplitOperator.IsNumber(item.Close))//收
4344
4344
  {title=g_JSChartLocalization.GetText('Tooltip-Close',this.LanguageID);color=this.KLineTitlePaint.GetColor(item.Close,item.YClose);text=item.Close.toFixed(defaultfloatPrecision);aryText.push({Title:title,TitleColor:this.TitleColor,Text:text,Color:color});}//涨幅
4345
- title=g_JSChartLocalization.GetText('Tooltip-Increase',this.LanguageID);if(item.YFClose!=0&&MARKET_SUFFIX_NAME.IsChinaFutures(upperSymbol)){var value=(item.Close-item.YFClose)/item.YFClose*100;color=this.KLineTitlePaint.GetColor(value,0);text=value.toFixed(2)+'%';}else if(item.YClose!=0){var value=(item.Close-item.YClose)/item.YClose*100;color=this.KLineTitlePaint.GetColor(value,0);text=value.toFixed(2)+'%';}else{text='--.--';color=this.KLineTitlePaint.GetColor(0,0);}aryText.push({Title:title,TitleColor:this.TitleColor,Text:text,Color:color});if(IFrameSplitOperator.IsNumber(item.Vol)){title=g_JSChartLocalization.GetText('Tooltip-Vol',this.LanguageID);var vol=item.Vol;if(upperSymbol&&MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol))vol/=100;//A股统一转成手
4345
+ title=g_JSChartLocalization.GetText('Tooltip-Increase',this.LanguageID);if(IFrameSplitOperator.IsNumber(item.YFClose)&&MARKET_SUFFIX_NAME.IsChinaFutures(upperSymbol)){var value=(item.Close-item.YFClose)/item.YFClose*100;color=this.KLineTitlePaint.GetColor(value,0);text=value.toFixed(2)+'%';}else if(IFrameSplitOperator.IsNumber(item.YClose)){var value=(item.Close-item.YClose)/item.YClose*100;color=this.KLineTitlePaint.GetColor(value,0);text=value.toFixed(2)+'%';}else{text='--.--';color=this.KLineTitlePaint.GetColor(0,0);}aryText.push({Title:title,TitleColor:this.TitleColor,Text:text,Color:color});if(IFrameSplitOperator.IsNumber(item.Vol)){title=g_JSChartLocalization.GetText('Tooltip-Vol',this.LanguageID);var vol=item.Vol;if(upperSymbol&&MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol))vol/=100;//A股统一转成手
4346
4346
  text=IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);aryText.push({Title:title,TitleColor:this.TitleColor,Text:text,Color:this.VolColor});}if(IFrameSplitOperator.IsNumber(item.Amount)){title=g_JSChartLocalization.GetText('Tooltip-Amount',this.LanguageID);var text=IFrameSplitOperator.FormatValueString(item.Amount,2,this.LanguageID);aryText.push({Title:title,TitleColor:this.TitleColor,Text:text,Color:this.AmountColor});}//换手率
4347
4347
  if(MARKET_SUFFIX_NAME.IsSHSZStockA(this.HQChart.Symbol)&&item.FlowCapital>0){title=g_JSChartLocalization.GetText('Tooltip-Exchange',this.LanguageID);var value=item.Vol/item.FlowCapital*100;var text=value.toFixed(2)+'%';aryText.push({Title:title,TitleColor:this.TitleColor,Text:text,Color:this.TitleColor});}//持仓量
4348
4348
  if(MARKET_SUFFIX_NAME.IsFutures(upperSymbol)&&IFrameSplitOperator.IsNumber(item.Position)){title=g_JSChartLocalization.GetText('Tooltip-Position',this.LanguageID);var text=IFrameSplitOperator.FromatIntegerString(item.Position,2,this.LanguageID);aryText.push({Title:title,TitleColor:this.TitleColor,Text:text,Color:this.TitleColor});}return result;};this.DrawTooltipData=function(titleData){if(!titleData||!IFrameSplitOperator.IsNonEmptyArray(titleData.AryText))return;var pixelRatio=GetDevicePixelRatio();var left=this.GetLeft()+2*pixelRatio;var top=this.GetTop()+3*pixelRatio;if(this.IsHScreen){this.Canvas.save();var x=this.GetLeft()+this.Height,y=this.GetTop();this.Canvas.translate(x,y);this.Canvas.rotate(90*Math.PI/180);//x, y 作为原点
@@ -5363,9 +5363,10 @@ this.Operator=function(){var data=this.Value.Data;if(!data)return false;this.Wid
5363
5363
 
5364
5364
  this.Height=this.LineCount*this.LineHeight;
5365
5365
  return true;
5366
- */};this.GenerateTitleHtml=function(data){var lineCount=0;var strHtml="",text;if(data.Name){text='<span style=\'color:rgb(0,0,0);font:\u5FAE\u8F6F\u96C5\u9ED1;font-size:12px;text-align:center;display: block;\'>'+data.Name+'</span>';strHtml+=text;++lineCount;}if(data.Title){text='<span class=\'tooltip-title\'>'+data.Title+'</span>';strHtml+=text;++lineCount;}if(IFrameSplitOperator.IsNonEmptyArray(data.AryText)){for(var i=0;i<data.AryText.length;++i){var item=data.AryText[i];if(i>0)strHtml+='<br/>';var text='<span class=\'tooltip-con\'>'+item.Title+'</span><span class=\'tooltip-num\' style=\'color:'+item.Color+';\'>'+item.Text+'</span>';strHtml+=text;++lineCount;}}return{Html:strHtml,LineCount:lineCount};};this.GetFormatTitle=function(data){if(!data)return null;var upperSymbol=this.Symbol.toUpperCase();var defaultfloatPrecision=GetfloatPrecision(this.Symbol);//价格小数位数
5367
- var date=new Date(parseInt(data.Date/10000),data.Date/100%100-1,data.Date%100);var strDate=IFrameSplitOperator.FormatDateString(data.Date);var title2=g_JSChartLocalization.GetText(WEEK_NAME[date.getDay()],this.LanguageID);var isTickPeriod=ChartData.IsTickPeriod(this.Value.ChartPaint.Data.Period);if(ChartData.IsMinutePeriod(this.Value.ChartPaint.Data.Period,true))// 分钟周期
5368
- {title2=IFrameSplitOperator.FormatTimeString(data.Time);}else if(ChartData.IsSecondPeriod(this.Value.ChartPaint.Data.Period)||isTickPeriod){title2=IFrameSplitOperator.FormatTimeString(data.Time,'HH:MM:SS');}else if(ChartData.IsMilliSecondPeriod(this.Value.ChartPaint.Data.Period)){title2=IFrameSplitOperator.FormatTimeString(data.Time,'HH:MM:SS.fff');}var result={AryText:null,Title:strDate+'&nbsp&nbsp'+title2,Name:null};if(isTickPeriod){var aryText=[{Title:g_JSChartLocalization.GetText('DivTooltip-Price',this.LanguageID),Text:IFrameSplitOperator.IsNumber(data.Open)?data.Open.toFixed(defaultfloatPrecision):'--',Color:this.GetColor(data.Open,data.YClose)}];if(IFrameSplitOperator.IsNumber(data.YClose)){var increase=(data.Close-data.YClose)/data.YClose*100;var item={Title:g_JSChartLocalization.GetText('DivTooltip-Increase',this.LanguageID),Text:increase.toFixed(2)+'%',Color:this.GetColor(increase,0)};aryText.push(item);}result.AryText=aryText;}else if(data.IsNonTrade){}else{var vol=data.Vol;if(upperSymbol&&MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol))vol/=100;//A股统一转成手
5366
+ */};this.GenerateTitleHtml=function(data){var lineCount=0;var strHtml="",text;if(data.Name){text='<span style=\'color:rgb(0,0,0);font:\u5FAE\u8F6F\u96C5\u9ED1;font-size:12px;text-align:center;display: block;\'>'+data.Name+'</span>';strHtml+=text;++lineCount;}if(data.Title){if(Array.isArray(data.Title)){for(var i=0;i<data.Title.length;++i){var item=data.Title[i];text='<span class=\'tooltip-title\'>'+item+'</span>';strHtml+=text;++lineCount;}}else{text='<span class=\'tooltip-title\'>'+data.Title+'</span>';strHtml+=text;++lineCount;}}if(IFrameSplitOperator.IsNonEmptyArray(data.AryText)){for(var i=0;i<data.AryText.length;++i){var item=data.AryText[i];if(i>0)strHtml+='<br/>';var text='<span class=\'tooltip-con\'>'+item.Title+'</span><span class=\'tooltip-num\' style=\'color:'+item.Color+';\'>'+item.Text+'</span>';strHtml+=text;++lineCount;}}return{Html:strHtml,LineCount:lineCount};};this.GetFormatTitle=function(data){if(!data)return null;var upperSymbol=this.Symbol.toUpperCase();var defaultfloatPrecision=GetfloatPrecision(this.Symbol);//价格小数位数
5367
+ var date=new Date(parseInt(data.Date/10000),data.Date/100%100-1,data.Date%100);var strDate=IFrameSplitOperator.FormatDateString(data.Date);var title=strDate,value;var isTickPeriod=ChartData.IsTickPeriod(this.Value.ChartPaint.Data.Period);if(ChartData.IsDayPeriod(this.Value.ChartPaint.Data.Period,true))//日线
5368
+ {value=g_JSChartLocalization.GetText(WEEK_NAME[date.getDay()],this.LanguageID);title=strDate+'&nbsp&nbsp'+value;}else if(ChartData.IsMinutePeriod(this.Value.ChartPaint.Data.Period,true))// 分钟周期
5369
+ {value=IFrameSplitOperator.FormatTimeString(data.Time);title=strDate+'&nbsp&nbsp'+value;}else if(ChartData.IsSecondPeriod(this.Value.ChartPaint.Data.Period)||isTickPeriod){value=IFrameSplitOperator.FormatTimeString(data.Time,'HH:MM:SS');title=strDate+'&nbsp&nbsp'+value;}else if(ChartData.IsMilliSecondPeriod(this.Value.ChartPaint.Data.Period)){value=IFrameSplitOperator.FormatTimeString(data.Time,'HH:MM:SS.fff');title=[strDate+'&nbsp&nbsp'+g_JSChartLocalization.GetText(WEEK_NAME[date.getDay()],this.LanguageID),value];}var result={AryText:null,Title:title,Name:null};if(isTickPeriod){var aryText=[{Title:g_JSChartLocalization.GetText('DivTooltip-Price',this.LanguageID),Text:IFrameSplitOperator.IsNumber(data.Open)?data.Open.toFixed(defaultfloatPrecision):'--',Color:this.GetColor(data.Open,data.YClose)}];if(IFrameSplitOperator.IsNumber(data.YClose)){var increase=(data.Close-data.YClose)/data.YClose*100;var item={Title:g_JSChartLocalization.GetText('DivTooltip-Increase',this.LanguageID),Text:increase.toFixed(2)+'%',Color:this.GetColor(increase,0)};aryText.push(item);}result.AryText=aryText;}else if(data.IsNonTrade){}else{var vol=data.Vol;if(upperSymbol&&MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol))vol/=100;//A股统一转成手
5369
5370
  var eventUnchangeKLine=null;//定制平盘K线颜色事件
5370
5371
  if(this.GetEventCallback)eventUnchangeKLine=this.GetEventCallback(JSCHART_EVENT_ID.ON_CUSTOM_UNCHANGE_KLINE_TITLE_COLOR);var aryText=[{Title:g_JSChartLocalization.GetText('DivTooltip-Open',this.LanguageID),Text:IFrameSplitOperator.IsNumber(data.Open)?data.Open.toFixed(defaultfloatPrecision):'--',Color:this.GetPriceColor("DivTooltip-Open",data.Open,data.YClose,data,eventUnchangeKLine)},{Title:g_JSChartLocalization.GetText('DivTooltip-High',this.LanguageID),Text:IFrameSplitOperator.IsNumber(data.High)?data.High.toFixed(defaultfloatPrecision):'--',Color:this.GetPriceColor("DivTooltip-High",data.High,data.YClose,data,eventUnchangeKLine)},{Title:g_JSChartLocalization.GetText('DivTooltip-Low',this.LanguageID),Text:IFrameSplitOperator.IsNumber(data.Low)?data.Low.toFixed(defaultfloatPrecision):'--',Color:this.GetPriceColor('DivTooltip-Low',data.Low,data.YClose,data,eventUnchangeKLine)},{Title:g_JSChartLocalization.GetText('DivTooltip-Close',this.LanguageID),Text:IFrameSplitOperator.IsNumber(data.Close)?data.Close.toFixed(defaultfloatPrecision):'--',Color:this.GetPriceColor('DivTooltip-Close',data.Close,data.YClose,data,eventUnchangeKLine)},{Title:g_JSChartLocalization.GetText('DivTooltip-Vol',this.LanguageID),Text:IFrameSplitOperator.IsNumber(vol)?IFrameSplitOperator.FormatValueString(vol,2,this.LanguageID):'--',Color:this.VolColor},{Title:g_JSChartLocalization.GetText('DivTooltip-Amount',this.LanguageID),Text:IFrameSplitOperator.IsNumber(data.Amount)?IFrameSplitOperator.FormatValueString(data.Amount,2,this.LanguageID):'--',Color:this.AmountColor}];if(IFrameSplitOperator.IsNumber(data.YClose)){var increase=(data.Close-data.YClose)/data.YClose*100;var item={Title:g_JSChartLocalization.GetText('DivTooltip-Increase',this.LanguageID),Text:increase.toFixed(2)+'%',Color:this.GetColor(increase,0)};aryText.push(item);}if(MARKET_SUFFIX_NAME.IsSHSZStockA(this.Symbol)&&data.FlowCapital>0)//换手率
5371
5372
  {var value=data.Vol/data.FlowCapital*100;var item={Title:g_JSChartLocalization.GetText('DivTooltip-Exchange',this.LanguageID),Text:value.toFixed(2)+'%',Color:this.TurnoverRateColor};aryText.push(item);}if(MARKET_SUFFIX_NAME.IsFutures(upperSymbol)&&IFrameSplitOperator.IsNumber(data.Position)){var item={Title:g_JSChartLocalization.GetText('DivTooltip-Position',this.LanguageID),Text:''+data.Position,Color:this.PositionColor};}//叠加股票
@@ -11724,7 +11725,7 @@ IndexTitleColor:"rgb(190, 190 ,190)",//指标名字颜色
11724
11725
  IndexTitleBGColor:'rgb(0,0,0)',//指标名字背景色
11725
11726
  IndexTitleBorderColor:'rgb(211, 211, 211)',//指标名字边框颜色
11726
11727
  IndexTitleBorderMoveOnColor:'rgb(30,144,255)',//指标名字边框颜色(鼠标在上面)
11727
- UpTextColor:"rgb(238,21,21)",DownTextColor:"rgb(25,158,0)",UnchagneTextColor:"rgb(190, 190 ,190)",CloseLineColor:'rgb(178,34,34)',Title:{TradeIndexColor:'rgb(105,105,105)',//交易指标颜色
11728
+ UpTextColor:"rgb(238,21,21)",DownTextColor:"rgb(25,158,0)",UnchagneTextColor:"rgb(190, 190 ,190)",CloseLineColor:'rgb(250,250,250)',Title:{TradeIndexColor:'rgb(105,105,105)',//交易指标颜色
11728
11729
  ColorIndexColor:'rgb(112,128,144)',//五彩K线颜色
11729
11730
  VolColor:"rgb(190, 190 ,190)",//标题成交量
11730
11731
  AmountColor:"rgb(190, 190 ,190)",//成交金额
@@ -12657,7 +12658,7 @@ function HQChartScriptWorker(){this.Create=function(){var _this60=this;addEventL
12657
12658
  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);};}/********************************************************************************
12658
12659
  * 版本信息输出
12659
12660
  *
12660
- */var HQCHART_VERSION="1.1.12569";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();//把给外界调用的方法暴露出来
12661
+ */var HQCHART_VERSION="1.1.12573";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();//把给外界调用的方法暴露出来
12661
12662
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
12662
12663
  // BaseIndex:BaseIndex,
12663
12664
  // 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.12570",
5
+ "version": "1.1.12575",
6
6
  "main": "lib/main.js",
7
7
  "private": false,
8
8
  "license": "Apache License 2.0",
@@ -13563,14 +13563,14 @@ function KLineFrame()
13563
13563
  var distanceWidth=this.DistanceWidth;
13564
13564
  var dataWidth=this.DataWidth;
13565
13565
  var left=this.ChartBorder.GetLeft()+g_JSChartResource.FrameLeftMargin;
13566
-
13566
+ var maxDataCount=10000*50;
13567
13567
  if (isLimit==false)
13568
13568
  {
13569
13569
  if (x<this.ChartBorder.GetLeft())
13570
13570
  {
13571
13571
  var index=-1;
13572
13572
  var xPoint=this.ChartBorder.GetLeft()-(distanceWidth/2+dataWidth+distanceWidth);
13573
- while(index>-10000)
13573
+ while(index>-maxDataCount)
13574
13574
  {
13575
13575
  if (xPoint<=x)
13576
13576
  break;
@@ -13584,7 +13584,7 @@ function KLineFrame()
13584
13584
  {
13585
13585
  var index=0;
13586
13586
  var xPoint=left+distanceWidth/2+dataWidth+distanceWidth;
13587
- while(index<10000) //自己算x的数值
13587
+ while(index<maxDataCount) //自己算x的数值
13588
13588
  {
13589
13589
  if (xPoint>=x) break;
13590
13590
  xPoint+=(dataWidth+distanceWidth);
@@ -13602,7 +13602,7 @@ function KLineFrame()
13602
13602
  var right=this.ChartBorder.GetRight()-g_JSChartResource.FrameRightMargin;
13603
13603
  var index=0;
13604
13604
  var xPoint=left+distanceWidth/2+dataWidth+distanceWidth;
13605
- while(xPoint<right && index<10000 && index+1<this.XPointCount) //自己算x的数值
13605
+ while(xPoint<right && index<maxDataCount && index+1<this.XPointCount) //自己算x的数值
13606
13606
  {
13607
13607
  if (xPoint>=x) break;
13608
13608
  xPoint+=(dataWidth+distanceWidth);
@@ -15410,7 +15410,7 @@ function KLineHScreenFrame()
15410
15410
  var right=border.BottomEx;
15411
15411
  var distanceWidth=this.DistanceWidth;
15412
15412
  var dataWidth=this.DataWidth;
15413
- var maxDataCount=10000*50;
15413
+ var maxDataCount=10000*10;
15414
15414
  if (isLimit==false)
15415
15415
  {
15416
15416
  if (y<left)
@@ -37839,13 +37839,13 @@ function KLineTooltipPaint()
37839
37839
 
37840
37840
  //涨幅
37841
37841
  title=g_JSChartLocalization.GetText('Tooltip-Increase',this.LanguageID);
37842
- if (item.YFClose!=0 && MARKET_SUFFIX_NAME.IsChinaFutures(upperSymbol))
37842
+ if (IFrameSplitOperator.IsNumber(item.YFClose) && MARKET_SUFFIX_NAME.IsChinaFutures(upperSymbol))
37843
37843
  {
37844
37844
  var value=(item.Close-item.YFClose)/item.YFClose*100;
37845
37845
  color = this.KLineTitlePaint.GetColor(value, 0);
37846
37846
  text = value.toFixed(2)+'%';
37847
37847
  }
37848
- else if (item.YClose!=0)
37848
+ else if (IFrameSplitOperator.IsNumber(item.YClose))
37849
37849
  {
37850
37850
  var value=(item.Close-item.YClose)/item.YClose*100;
37851
37851
  color = this.KLineTitlePaint.GetColor(value, 0);
@@ -47424,9 +47424,22 @@ function HistoryDataStringFormat()
47424
47424
 
47425
47425
  if (data.Title)
47426
47426
  {
47427
- text=`<span class='tooltip-title'>${data.Title}</span>`;
47428
- strHtml+=text;
47429
- ++lineCount;
47427
+ if (Array.isArray(data.Title))
47428
+ {
47429
+ for(var i=0;i<data.Title.length;++i)
47430
+ {
47431
+ var item=data.Title[i];
47432
+ text=`<span class='tooltip-title'>${item}</span>`;
47433
+ strHtml+=text;
47434
+ ++lineCount;
47435
+ }
47436
+ }
47437
+ else
47438
+ {
47439
+ text=`<span class='tooltip-title'>${data.Title}</span>`;
47440
+ strHtml+=text;
47441
+ ++lineCount;
47442
+ }
47430
47443
  }
47431
47444
 
47432
47445
  if (IFrameSplitOperator.IsNonEmptyArray(data.AryText))
@@ -47453,22 +47466,36 @@ function HistoryDataStringFormat()
47453
47466
  var date=new Date(parseInt(data.Date/10000),(data.Date/100%100-1),data.Date%100);
47454
47467
  var strDate=IFrameSplitOperator.FormatDateString(data.Date);
47455
47468
 
47456
- var title2=g_JSChartLocalization.GetText(WEEK_NAME[date.getDay()],this.LanguageID);
47469
+ var title=strDate,value;
47457
47470
  var isTickPeriod=ChartData.IsTickPeriod(this.Value.ChartPaint.Data.Period);
47458
- if (ChartData.IsMinutePeriod(this.Value.ChartPaint.Data.Period,true)) // 分钟周期
47471
+ if (ChartData.IsDayPeriod(this.Value.ChartPaint.Data.Period,true)) //日线
47459
47472
  {
47460
- title2=IFrameSplitOperator.FormatTimeString(data.Time);
47473
+ value=g_JSChartLocalization.GetText(WEEK_NAME[date.getDay()],this.LanguageID);
47474
+ title=`${strDate}&nbsp&nbsp${value}`;
47475
+ }
47476
+ else if (ChartData.IsMinutePeriod(this.Value.ChartPaint.Data.Period,true)) // 分钟周期
47477
+ {
47478
+ value=IFrameSplitOperator.FormatTimeString(data.Time);
47479
+ title=`${strDate}&nbsp&nbsp${value}`;
47461
47480
  }
47462
47481
  else if (ChartData.IsSecondPeriod(this.Value.ChartPaint.Data.Period) || isTickPeriod)
47463
47482
  {
47464
- title2=IFrameSplitOperator.FormatTimeString(data.Time,'HH:MM:SS');
47483
+ value=IFrameSplitOperator.FormatTimeString(data.Time,'HH:MM:SS');
47484
+ title=`${strDate}&nbsp&nbsp${value}`;
47465
47485
  }
47466
47486
  else if (ChartData.IsMilliSecondPeriod(this.Value.ChartPaint.Data.Period))
47467
47487
  {
47468
- title2=IFrameSplitOperator.FormatTimeString(data.Time,'HH:MM:SS.fff');
47488
+ value=IFrameSplitOperator.FormatTimeString(data.Time,'HH:MM:SS.fff');
47489
+ title=
47490
+ [
47491
+ `${strDate}&nbsp&nbsp${g_JSChartLocalization.GetText(WEEK_NAME[date.getDay()],this.LanguageID)}`,
47492
+ value
47493
+ ];
47469
47494
  }
47470
47495
 
47471
- var result={ AryText:null, Title:`${strDate}&nbsp&nbsp${title2}`, Name:null };
47496
+ var result={ AryText:null, Title:title, Name:null };
47497
+
47498
+
47472
47499
  if (isTickPeriod)
47473
47500
  {
47474
47501
  var aryText=
@@ -90,7 +90,7 @@ function GetBlackStyle()
90
90
  UpTextColor: "rgb(238,21,21)",
91
91
  DownTextColor: "rgb(25,158,0)",
92
92
  UnchagneTextColor: "rgb(190, 190 ,190)",
93
- CloseLineColor: 'rgb(178,34,34)',
93
+ CloseLineColor: 'rgb(250,250,250)',
94
94
 
95
95
  Title:
96
96
  {