hqchart 1.1.12560 → 1.1.12570

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.
@@ -2436,8 +2436,9 @@ this.GetXData=function(x,isLimit){var distanceWidth=this.DistanceWidth;var dataW
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}`);
2438
2438
  var width=this.GetFrameWidth()-g_JSChartResource.FrameMargin;if(this.ZoomIndex>=0&&this.LastCalculateStatus.Width==width&&this.LastCalculateStatus.XPointCount==this.XPointCount)//宽度没变 尝试使用原来的柱子宽度
2439
- {var caclWidth=this.DistanceWidth/2+g_JSChartResource.FrameLeftMargin+(this.DataWidth+this.DistanceWidth)*(this.XPointCount-1);var caclWidth2=(this.DataWidth+this.DistanceWidth)*this.XPointCount;if(caclWidth<=width)//当前的柱子宽度够用 就不调整了
2440
- return;}this.LastCalculateStatus.Width=width;this.LastCalculateStatus.XPointCount=this.XPointCount;for(var i=0;i<ZOOM_SEED.length;++i){if((ZOOM_SEED[i][0]+ZOOM_SEED[i][1])*this.XPointCount<width){this.ZoomIndex=i;this.DataWidth=ZOOM_SEED[i][0];this.DistanceWidth=ZOOM_SEED[i][1];this.TrimKLineDataWidth(width);JSConsole.Chart.Log('[KLineFrame::CalculateDataWidth] ZOOM_SEED, DataWidth, DistanceWidth, XPointCount',ZOOM_SEED[this.ZoomIndex],this.DataWidth,this.DistanceWidth,this.XPointCount);return;}}//太多了 就平均分了
2439
+ {var caclWidth=this.DistanceWidth/2+g_JSChartResource.FrameLeftMargin+(this.DataWidth+this.DistanceWidth)*(this.XPointCount-1);var caclWidth2=(this.DataWidth+this.DistanceWidth)*this.XPointCount;if(this.DataWidth<2){if(caclWidth2<=width)//当前的柱子宽度够用 就不调整了
2440
+ return;}else{if(caclWidth<=width)//当前的柱子宽度够用 就不调整了
2441
+ return;}}this.LastCalculateStatus.Width=width;this.LastCalculateStatus.XPointCount=this.XPointCount;for(var i=0;i<ZOOM_SEED.length;++i){if((ZOOM_SEED[i][0]+ZOOM_SEED[i][1])*this.XPointCount<width){this.ZoomIndex=i;this.DataWidth=ZOOM_SEED[i][0];this.DistanceWidth=ZOOM_SEED[i][1];this.TrimKLineDataWidth(width);JSConsole.Chart.Log('[KLineFrame::CalculateDataWidth] ZOOM_SEED, DataWidth, DistanceWidth, XPointCount',ZOOM_SEED[this.ZoomIndex],this.DataWidth,this.DistanceWidth,this.XPointCount);return;}}//太多了 就平均分了
2441
2442
  this.ZoomIndex=ZOOM_SEED.length-1;this.DataWidth=width/this.XPointCount;this.DistanceWidth=0;};this.OnSize=function(obj){var width=this.GetFrameWidth()-g_JSChartResource.FrameMargin;var xPointCount=0;var y=this.DistanceWidth/2+g_JSChartResource.FrameLeftMargin+(this.DataWidth+this.DistanceWidth);for(;y<width;y+=this.DataWidth+this.DistanceWidth,++xPointCount){}obj.CurCount=this.XPointCount;obj.CalcCount=xPointCount;obj.DataWidth=this.DataWidth;obj.DistanceWidth=this.DistanceWidth;obj.Changed=false;this.LastCalculateStatus.Width=width;if(obj.CurCount==obj.CalcCount)return obj;this.XPointCount=xPointCount;this.LastCalculateStatus.XPointCount=this.XPointCount;if(this.Data){this.Data.DataOffset+=obj.CurCount-obj.CalcCount;if(this.Data.DataOffset<0)this.Data.DataOffset=0;obj.Changed=true;}return obj;};this.SetDataWidth=function(dataWidth){var zoomIndex=ZOOM_SEED.length-1;for(var i in ZOOM_SEED){var item=ZOOM_SEED[i];if(item[0]<=dataWidth){zoomIndex=parseInt(i)-1;break;}}this.ZoomIndex=zoomIndex;this.DataWidth=ZOOM_SEED[this.ZoomIndex][0];this.DistanceWidth=ZOOM_SEED[this.ZoomIndex][1];var width=this.GetFrameWidth()-g_JSChartResource.FrameMargin;var xPointCount=0;var y=this.DistanceWidth/2+g_JSChartResource.FrameLeftMargin+(this.DataWidth+this.DistanceWidth);for(;y<=width;y+=this.DataWidth+this.DistanceWidth,++xPointCount){}this.XPointCount=xPointCount;this.LastCalculateStatus.XPointCount=this.XPointCount;this.LastCalculateStatus.Width=width;var obj={XPointCount:this.XPointCount,DataWidth:this.DataWidth,DistanceWidth:this.DistanceWidth};return obj;};this.TrimKLineDataWidth=function(width){var dataWidth=ZOOM_SEED[this.ZoomIndex][0];var distanceWidth=ZOOM_SEED[this.ZoomIndex][1];if(dataWidth==1&&distanceWidth==0){this.DataWidth=width/this.XPointCount;return;}while(true){if((this.DistanceWidth+this.DataWidth)*this.XPointCount+this.DistanceWidth>width){this.DistanceWidth-=0.01;break;}this.DistanceWidth+=0.01;}};//当前坐标信息 是否覆盖最大 最小值输出
2442
2443
  this.IsOverlayMaxMin=function(obj){if(!this.ChartKLine)return false;if(!this.ChartKLine.Max||!this.ChartKLine.Min)return false;var textWidth=this.Canvas.measureText(obj.Text.Value).width+4;//刻度文字宽度
2443
2444
  if(obj.Text.TextAlign==='right')obj.X-=textWidth;var max=this.ChartKLine.Max,min=this.ChartKLine.Min;var isOverlayMax=false,isOverlayMin=false;var textHeight=20;//字体高度
@@ -2540,8 +2541,8 @@ this.Canvas.beginPath();this.Canvas.moveTo(left,ToFixedPoint(x));this.Canvas.lin
2540
2541
  this.Canvas.beginPath();this.Canvas.moveTo(left,ToFixedPoint(x));this.Canvas.lineTo(right,ToFixedPoint(x));this.Canvas.stroke();this.Canvas.setLineDash([]);}else//实线
2541
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轴数值
2542
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轴数值
2543
- 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;if(isLimit==false){if(y<left){var index=-1;var xPoint=left-(distanceWidth/2+dataWidth+distanceWidth);while(index>-10000){if(xPoint<=y)break;xPoint-=dataWidth+distanceWidth;--index;}return index;}else{var index=0;var xPoint=left+distanceWidth/2+dataWidth+distanceWidth;while(index<10000)//自己算x的数值
2544
- {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<10000&&index+1<this.XPointCount)//自己算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的数值
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的数值
2545
2546
  {if(xPoint>y)break;xPoint+=dataWidth+distanceWidth;++index;}return index;}//return (y-this.ChartBorder.GetTop())*(this.XPointCount*1.0/this.ChartBorder.GetHeight());
2546
2547
  };this.DrawBottons=function(){};//计算数据宽度
2547
2548
  /*
@@ -7130,7 +7131,7 @@ if(IFrameSplitOperator.IsBool(item.IsShowToolbar))frame.IsShowToolbar=item.IsSho
7130
7131
  }overlayFrame.Frame=frame;if(apiItem){var apiIndex=new APIScriptIndex(apiItem.Name,apiItem.Script,apiItem.Args,obj,true);apiIndex.OverlayIndex={IsOverlay:true,Identify:overlayFrame.Identify,WindowIndex:windowIndex,Frame:overlayFrame};//叠加指标信息
7131
7132
  overlayFrame.Script=apiIndex;}else if(indexInfo){var args=indexInfo.Args;if(obj.Args)args=obj.Args;//外部可以设置参数
7132
7133
  var indexData={Name:indexInfo.Name,Script:indexInfo.Script,Args:args,ID:indexName,//扩展属性 可以是空
7133
- KLineType:indexInfo.KLineType,YSpecificMaxMin:indexInfo.YSpecificMaxMin,YSplitScale:indexInfo.YSplitScale,FloatPrecision:indexInfo.FloatPrecision,Condition:indexInfo.Condition,OutName:indexInfo.OutName};if(IFrameSplitOperator.IsNumber(obj.FloatPrecision))indexData.FloatPrecision=obj.FloatPrecision;var scriptIndex=new OverlayScriptIndex(indexData.Name,indexData.Script,indexData.Args,indexData);//脚本执行
7134
+ KLineType:indexInfo.KLineType,YSpecificMaxMin:indexInfo.YSpecificMaxMin,YSplitScale:indexInfo.YSplitScale,FloatPrecision:indexInfo.FloatPrecision,Condition:indexInfo.Condition,OutName:indexInfo.OutName};if(IFrameSplitOperator.IsNumber(obj.FloatPrecision))indexData.FloatPrecision=obj.FloatPrecision;if(IFrameSplitOperator.IsNumber(obj.StringFormat))indexData.StringFormat=obj.StringFormat;var scriptIndex=new OverlayScriptIndex(indexData.Name,indexData.Script,indexData.Args,indexData);//脚本执行
7134
7135
  scriptIndex.OverlayIndex={IsOverlay:true,Identify:overlayFrame.Identify,WindowIndex:windowIndex,Frame:overlayFrame};//叠加指标信息
7135
7136
  overlayFrame.Script=scriptIndex;}else{var scriptIndex=indexCustom.Create();scriptIndex.OverlayIndex={IsOverlay:true,Identify:overlayFrame.Identify,WindowIndex:windowIndex,Frame:overlayFrame};//叠加指标信息
7136
7137
  scriptIndex.Create(this,windowIndex);overlayFrame.Script=scriptIndex;}subFrame.OverlayIndex.push(overlayFrame);return overlayFrame;};this.DeleteOverlayWindowsIndex=function(identify)//删除叠加指标
@@ -11414,7 +11415,7 @@ if(IFrameSplitOperator.IsNumber(this.YSplitType))this.OverlayIndex.Frame.Frame.Y
11414
11415
  var titleInfo={Data:[],Title:this.Name,Frame:this.OverlayIndex.Frame.Frame,Script:this};var indexParam='';for(var i in this.Arguments){var _item34=this.Arguments[i];if(indexParam.length>0)indexParam+=',';indexParam+=_item34.Value.toString();}if(indexParam.length>0)titleInfo.Title=this.Name+'('+indexParam+')';var titleIndex=windowIndex+1;var titlePaint=hqChart.TitlePaint[titleIndex];titlePaint.OverlayIndex.set(this.OverlayIndex.Identify,titleInfo);this.OverlayIndex.Frame.Frame.Title=titleInfo.Title;//给子框架设置标题
11415
11416
  if(this.OutName&&this.OutName.length>0&&this.Arguments&&this.Arguments.length>0){titlePaint.SetDynamicTitle(this.OutName,this.Arguments,this.OverlayIndex.Identify);}for(var i=0;i<this.OutVar.length;++i){var _item35=this.OutVar[i];if(_item35.IsExData===true)continue;//扩展数据不显示图形
11416
11417
  if(_item35.Type==0){this.CreateLine(hqChart,windowIndex,_item35,i,_item35.Type);}else if(_item35.Type==1){switch(_item35.Draw.DrawType){case'STICKLINE':this.CreateBar(hqChart,windowIndex,_item35,i);break;case'DRAWTEXT':this.CreateDrawTextV2(hqChart,windowIndex,_item35,i);break;case'SUPERDRAWTEXT':this.CreateText(hqChart,windowIndex,_item35,i);break;case'DRAWLINE':this.CreateStraightLine(hqChart,windowIndex,_item35,i);break;case'DRAWBAND':this.CreateBand(hqChart,windowIndex,_item35,i);break;case'DRAWKLINE':this.CreateKLine(hqChart,windowIndex,_item35,i);break;case'DRAWKLINE_IF':this.CreateKLine(hqChart,windowIndex,_item35,i);break;case'POLYLINE':this.CreatePolyLine(hqChart,windowIndex,_item35,i);break;case'DRAWNUMBER':case"DRAWNUMBER_FIX":case'DRAWTEXT_FIX':this.CreateNumberText(hqChart,windowIndex,_item35,i);break;case'DRAWICON':this.CreateIcon(hqChart,windowIndex,_item35,i);break;case'DRAWCHANNEL':this.CreateChannel(hqChart,windowIndex,_item35,i);break;case'DRAWTEXT_LINE':this.CreateTextLine(hqChart,windowIndex,_item35,i);break;case"VERTLINE":this.CreateChartVericaltLine(hqChart,windowIndex,_item35,i);break;case"HORLINE":this.CreateChartHorizontalLine(hqChart,windowIndex,_item35,i);break;case'MULTI_LINE':this.CreateMultiLine(hqChart,windowIndex,_item35,i);break;case"MULTI_POINT":this.CreateMultiPoint(hqChart,windowIndex,_item35,i);break;case'MULTI_BAR':this.CreateMultiBar(hqChart,windowIndex,_item35,i);break;case'MULTI_TEXT':this.CreateMultiText(hqChart,windowIndex,_item35,i);break;case'MULTI_SVGICON':this.CreateMultiSVGIcon(hqChart,windowIndex,_item35,i);break;case"DRAWSVG":this.CreateChartDrawSVG(hqChart,windowIndex,_item35,i);break;case"MULTI_HTMLDOM":this.CreateMulitHtmlDom(hqChart,windowIndex,_item35,i);break;case"KLINE_BG":this.CreateBackgroud(hqChart,windowIndex,_item35,i);break;case'PARTLINE':this.CreatePartLine(hqChart,windowIndex,_item35,i);break;case"DRAWTEXTABS":case"DRAWTEXTREL":this.CreateDrawText(hqChart,windowIndex,_item35,i);break;case SCRIPT_CHART_NAME.OVERLAY_BARS:this.CreateStackedBar(hqChart,windowIndex,_item35,i);break;default:{var find=g_ScriptIndexChartFactory.Get(_item35.Draw.DrawType);//外部挂接
11417
- if(find&&find.CreateChartCallback)find.CreateChartCallback(hqChart,windowIndex,_item35,i,this);}break;}}else if(_item35.Type==2){this.CreateMACD(hqChart,windowIndex,_item35,i);}else if(_item35.Type==3){this.CreatePointDot(hqChart,windowIndex,_item35,i,hisData);}else if(_item35.Type==4){this.CreateLineStick(hqChart,windowIndex,_item35,i);}else if(_item35.Type==5){this.CreateStick(hqChart,windowIndex,_item35,i);}else if(_item35.Type==6){this.CreateVolStick(hqChart,windowIndex,_item35,i,hisData);}else if(_item35.Type==7){this.CreateLine(hqChart,windowIndex,_item35,i,_item35.Type);}else if(_item35.Type==8){this.CreateLine(hqChart,windowIndex,_item35,i,_item35.Type);}var titleData=titleInfo.Data[i];if(titleData){if(this.FloatPrecision>=0)titleData.FloatPrecision=this.FloatPrecision;}}/*
11418
+ if(find&&find.CreateChartCallback)find.CreateChartCallback(hqChart,windowIndex,_item35,i,this);}break;}}else if(_item35.Type==2){this.CreateMACD(hqChart,windowIndex,_item35,i);}else if(_item35.Type==3){this.CreatePointDot(hqChart,windowIndex,_item35,i,hisData);}else if(_item35.Type==4){this.CreateLineStick(hqChart,windowIndex,_item35,i);}else if(_item35.Type==5){this.CreateStick(hqChart,windowIndex,_item35,i);}else if(_item35.Type==6){this.CreateVolStick(hqChart,windowIndex,_item35,i,hisData);}else if(_item35.Type==7){this.CreateLine(hqChart,windowIndex,_item35,i,_item35.Type);}else if(_item35.Type==8){this.CreateLine(hqChart,windowIndex,_item35,i,_item35.Type);}var titleData=titleInfo.Data[i];if(titleData){if(this.FloatPrecision>=0)titleData.FloatPrecision=this.FloatPrecision;if(IFrameSplitOperator.IsNumber(this.StringFormat))titleData.StringFormat=this.StringFormat;}}/*
11418
11419
  hqChart.TitlePaint[titleIndex].Title=this.Name;
11419
11420
 
11420
11421
  let indexParam='';
@@ -12656,7 +12657,7 @@ function HQChartScriptWorker(){this.Create=function(){var _this60=this;addEventL
12656
12657
  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);};}/********************************************************************************
12657
12658
  * 版本信息输出
12658
12659
  *
12659
- */var HQCHART_VERSION="1.1.12559";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();//把给外界调用的方法暴露出来
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();//把给外界调用的方法暴露出来
12660
12661
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
12661
12662
  // BaseIndex:BaseIndex,
12662
12663
  // 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.12560",
5
+ "version": "1.1.12570",
6
6
  "main": "lib/main.js",
7
7
  "private": false,
8
8
  "license": "Apache License 2.0",
@@ -48784,7 +48784,19 @@ HQData.RequestMinuteRealtimeData=function(data,callback)
48784
48784
 
48785
48785
  console.log(`[HQData::RequestMinuteRealtimeData] Symbol=${symbol}`);
48786
48786
 
48787
- var hqchartData=KLINE_1MINUTE_DATA;
48787
+ var hqchartData=JSON.parse(JSON.stringify(KLINE_1MINUTE_DATA));
48788
+
48789
+ var kItem=hqchartData.data[0];
48790
+ var price=kItem[5];
48791
+ var value=Math.ceil(Math.random()*10)/1000*price;
48792
+ var bUp=Math.ceil(Math.random()*10)>=5;
48793
+
48794
+ if (bUp) price+=value;
48795
+ else price-=value;
48796
+ kItem[5]=price;
48797
+ kItem[3]=Math.max(price, kItem[3]);
48798
+ kItem[4]=Math.min(price, kItem[4]);
48799
+
48788
48800
  hqchartData.name=symbol;
48789
48801
  hqchartData.symbol=symbol;
48790
48802
  callback(hqchartData);
@@ -21336,6 +21336,7 @@ function OverlayScriptIndex(name,script,args,option)
21336
21336
  if (titleData)
21337
21337
  {
21338
21338
  if (this.FloatPrecision>=0) titleData.FloatPrecision=this.FloatPrecision;
21339
+ if (IFrameSplitOperator.IsNumber(this.StringFormat)) titleData.StringFormat=this.StringFormat;
21339
21340
  }
21340
21341
  }
21341
21342
 
@@ -13626,8 +13626,16 @@ function KLineFrame()
13626
13626
  {
13627
13627
  var caclWidth=(this.DistanceWidth/2+g_JSChartResource.FrameLeftMargin)+(this.DataWidth + this.DistanceWidth)*(this.XPointCount-1);
13628
13628
  var caclWidth2=(this.DataWidth + this.DistanceWidth) * this.XPointCount;
13629
- if (caclWidth<= width) //当前的柱子宽度够用 就不调整了
13630
- return;
13629
+ if (this.DataWidth<2)
13630
+ {
13631
+ if (caclWidth2<= width) //当前的柱子宽度够用 就不调整了
13632
+ return;
13633
+ }
13634
+ else
13635
+ {
13636
+ if (caclWidth<= width) //当前的柱子宽度够用 就不调整了
13637
+ return;
13638
+ }
13631
13639
  }
13632
13640
 
13633
13641
  this.LastCalculateStatus.Width=width;
@@ -15402,14 +15410,14 @@ function KLineHScreenFrame()
15402
15410
  var right=border.BottomEx;
15403
15411
  var distanceWidth=this.DistanceWidth;
15404
15412
  var dataWidth=this.DataWidth;
15405
-
15413
+ var maxDataCount=10000*50;
15406
15414
  if (isLimit==false)
15407
15415
  {
15408
15416
  if (y<left)
15409
15417
  {
15410
15418
  var index=-1;
15411
15419
  var xPoint=left-(distanceWidth/2+dataWidth+distanceWidth);
15412
- while(index>-10000)
15420
+ while(index>-maxDataCount)
15413
15421
  {
15414
15422
  if (xPoint<=y)
15415
15423
  break;
@@ -15423,7 +15431,7 @@ function KLineHScreenFrame()
15423
15431
  {
15424
15432
  var index=0;
15425
15433
  var xPoint=left+distanceWidth/2+dataWidth+distanceWidth;
15426
- while(index<10000) //自己算x的数值
15434
+ while(index<maxDataCount) //自己算x的数值
15427
15435
  {
15428
15436
  if (xPoint>=y) break;
15429
15437
  xPoint+=(dataWidth+distanceWidth);
@@ -15440,7 +15448,7 @@ function KLineHScreenFrame()
15440
15448
 
15441
15449
  var index=0;
15442
15450
  var xPoint=left+distanceWidth/2+ dataWidth+distanceWidth;
15443
- while(xPoint<right && index<10000 && index+1<this.XPointCount) //自己算x的数值
15451
+ while(xPoint<right && index<maxDataCount && index+1<this.XPointCount) //自己算x的数值
15444
15452
  {
15445
15453
  if (xPoint>y) break;
15446
15454
  xPoint+=(dataWidth+distanceWidth);
@@ -67891,6 +67899,7 @@ function KLineChartContainer(uielement,OffscreenElement)
67891
67899
  };
67892
67900
 
67893
67901
  if (IFrameSplitOperator.IsNumber(obj.FloatPrecision)) indexData.FloatPrecision=obj.FloatPrecision;
67902
+ if (IFrameSplitOperator.IsNumber(obj.StringFormat)) indexData.StringFormat=obj.StringFormat;
67894
67903
 
67895
67904
  var scriptIndex=new OverlayScriptIndex(indexData.Name,indexData.Script,indexData.Args,indexData); //脚本执行
67896
67905
  scriptIndex.OverlayIndex={ IsOverlay:true, Identify:overlayFrame.Identify, WindowIndex:windowIndex, Frame:overlayFrame }; //叠加指标信息
@@ -131,7 +131,19 @@ HQData.RequestMinuteRealtimeData=function(data,callback)
131
131
 
132
132
  console.log(`[HQData::RequestMinuteRealtimeData] Symbol=${symbol}`);
133
133
 
134
- var hqchartData=KLINE_1MINUTE_DATA;
134
+ var hqchartData=JSON.parse(JSON.stringify(KLINE_1MINUTE_DATA));
135
+
136
+ var kItem=hqchartData.data[0];
137
+ var price=kItem[5];
138
+ var value=Math.ceil(Math.random()*10)/1000*price;
139
+ var bUp=Math.ceil(Math.random()*10)>=5;
140
+
141
+ if (bUp) price+=value;
142
+ else price-=value;
143
+ kItem[5]=price;
144
+ kItem[3]=Math.max(price, kItem[3]);
145
+ kItem[4]=Math.min(price, kItem[4]);
146
+
135
147
  hqchartData.name=symbol;
136
148
  hqchartData.symbol=symbol;
137
149
  callback(hqchartData);
@@ -17706,8 +17706,16 @@ function KLineFrame()
17706
17706
  {
17707
17707
  var caclWidth=(this.DistanceWidth/2+g_JSChartResource.FrameLeftMargin)+(this.DataWidth + this.DistanceWidth)*(this.XPointCount-1);
17708
17708
  var caclWidth2=(this.DataWidth + this.DistanceWidth) * this.XPointCount;
17709
- if (caclWidth<= width) //当前的柱子宽度够用 就不调整了
17710
- return;
17709
+ if (this.DataWidth<2)
17710
+ {
17711
+ if (caclWidth2<= width) //当前的柱子宽度够用 就不调整了
17712
+ return;
17713
+ }
17714
+ else
17715
+ {
17716
+ if (caclWidth<= width) //当前的柱子宽度够用 就不调整了
17717
+ return;
17718
+ }
17711
17719
  }
17712
17720
 
17713
17721
  this.LastCalculateStatus.Width=width;
@@ -19482,14 +19490,14 @@ function KLineHScreenFrame()
19482
19490
  var right=border.BottomEx;
19483
19491
  var distanceWidth=this.DistanceWidth;
19484
19492
  var dataWidth=this.DataWidth;
19485
-
19493
+ var maxDataCount=10000*50;
19486
19494
  if (isLimit==false)
19487
19495
  {
19488
19496
  if (y<left)
19489
19497
  {
19490
19498
  var index=-1;
19491
19499
  var xPoint=left-(distanceWidth/2+dataWidth+distanceWidth);
19492
- while(index>-10000)
19500
+ while(index>-maxDataCount)
19493
19501
  {
19494
19502
  if (xPoint<=y)
19495
19503
  break;
@@ -19503,7 +19511,7 @@ function KLineHScreenFrame()
19503
19511
  {
19504
19512
  var index=0;
19505
19513
  var xPoint=left+distanceWidth/2+dataWidth+distanceWidth;
19506
- while(index<10000) //自己算x的数值
19514
+ while(index<maxDataCount) //自己算x的数值
19507
19515
  {
19508
19516
  if (xPoint>=y) break;
19509
19517
  xPoint+=(dataWidth+distanceWidth);
@@ -19520,7 +19528,7 @@ function KLineHScreenFrame()
19520
19528
 
19521
19529
  var index=0;
19522
19530
  var xPoint=left+distanceWidth/2+ dataWidth+distanceWidth;
19523
- while(xPoint<right && index<10000 && index+1<this.XPointCount) //自己算x的数值
19531
+ while(xPoint<right && index<maxDataCount && index+1<this.XPointCount) //自己算x的数值
19524
19532
  {
19525
19533
  if (xPoint>y) break;
19526
19534
  xPoint+=(dataWidth+distanceWidth);
@@ -71971,6 +71979,7 @@ function KLineChartContainer(uielement,OffscreenElement)
71971
71979
  };
71972
71980
 
71973
71981
  if (IFrameSplitOperator.IsNumber(obj.FloatPrecision)) indexData.FloatPrecision=obj.FloatPrecision;
71982
+ if (IFrameSplitOperator.IsNumber(obj.StringFormat)) indexData.StringFormat=obj.StringFormat;
71974
71983
 
71975
71984
  var scriptIndex=new OverlayScriptIndex(indexData.Name,indexData.Script,indexData.Args,indexData); //脚本执行
71976
71985
  scriptIndex.OverlayIndex={ IsOverlay:true, Identify:overlayFrame.Identify, WindowIndex:windowIndex, Frame:overlayFrame }; //叠加指标信息
@@ -115028,6 +115037,7 @@ function OverlayScriptIndex(name,script,args,option)
115028
115037
  if (titleData)
115029
115038
  {
115030
115039
  if (this.FloatPrecision>=0) titleData.FloatPrecision=this.FloatPrecision;
115040
+ if (IFrameSplitOperator.IsNumber(this.StringFormat)) titleData.StringFormat=this.StringFormat;
115031
115041
  }
115032
115042
  }
115033
115043
 
@@ -129441,7 +129451,7 @@ function ScrollBarBGChart()
129441
129451
 
129442
129452
 
129443
129453
 
129444
- var HQCHART_VERSION="1.1.12559";
129454
+ var HQCHART_VERSION="1.1.12569";
129445
129455
 
129446
129456
  function PrintHQChartVersion()
129447
129457
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.12559";
8
+ var HQCHART_VERSION="1.1.12569";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -48784,7 +48784,19 @@ HQData.RequestMinuteRealtimeData=function(data,callback)
48784
48784
 
48785
48785
  console.log(`[HQData::RequestMinuteRealtimeData] Symbol=${symbol}`);
48786
48786
 
48787
- var hqchartData=KLINE_1MINUTE_DATA;
48787
+ var hqchartData=JSON.parse(JSON.stringify(KLINE_1MINUTE_DATA));
48788
+
48789
+ var kItem=hqchartData.data[0];
48790
+ var price=kItem[5];
48791
+ var value=Math.ceil(Math.random()*10)/1000*price;
48792
+ var bUp=Math.ceil(Math.random()*10)>=5;
48793
+
48794
+ if (bUp) price+=value;
48795
+ else price-=value;
48796
+ kItem[5]=price;
48797
+ kItem[3]=Math.max(price, kItem[3]);
48798
+ kItem[4]=Math.min(price, kItem[4]);
48799
+
48788
48800
  hqchartData.name=symbol;
48789
48801
  hqchartData.symbol=symbol;
48790
48802
  callback(hqchartData);
@@ -17750,8 +17750,16 @@ function KLineFrame()
17750
17750
  {
17751
17751
  var caclWidth=(this.DistanceWidth/2+g_JSChartResource.FrameLeftMargin)+(this.DataWidth + this.DistanceWidth)*(this.XPointCount-1);
17752
17752
  var caclWidth2=(this.DataWidth + this.DistanceWidth) * this.XPointCount;
17753
- if (caclWidth<= width) //当前的柱子宽度够用 就不调整了
17754
- return;
17753
+ if (this.DataWidth<2)
17754
+ {
17755
+ if (caclWidth2<= width) //当前的柱子宽度够用 就不调整了
17756
+ return;
17757
+ }
17758
+ else
17759
+ {
17760
+ if (caclWidth<= width) //当前的柱子宽度够用 就不调整了
17761
+ return;
17762
+ }
17755
17763
  }
17756
17764
 
17757
17765
  this.LastCalculateStatus.Width=width;
@@ -19526,14 +19534,14 @@ function KLineHScreenFrame()
19526
19534
  var right=border.BottomEx;
19527
19535
  var distanceWidth=this.DistanceWidth;
19528
19536
  var dataWidth=this.DataWidth;
19529
-
19537
+ var maxDataCount=10000*50;
19530
19538
  if (isLimit==false)
19531
19539
  {
19532
19540
  if (y<left)
19533
19541
  {
19534
19542
  var index=-1;
19535
19543
  var xPoint=left-(distanceWidth/2+dataWidth+distanceWidth);
19536
- while(index>-10000)
19544
+ while(index>-maxDataCount)
19537
19545
  {
19538
19546
  if (xPoint<=y)
19539
19547
  break;
@@ -19547,7 +19555,7 @@ function KLineHScreenFrame()
19547
19555
  {
19548
19556
  var index=0;
19549
19557
  var xPoint=left+distanceWidth/2+dataWidth+distanceWidth;
19550
- while(index<10000) //自己算x的数值
19558
+ while(index<maxDataCount) //自己算x的数值
19551
19559
  {
19552
19560
  if (xPoint>=y) break;
19553
19561
  xPoint+=(dataWidth+distanceWidth);
@@ -19564,7 +19572,7 @@ function KLineHScreenFrame()
19564
19572
 
19565
19573
  var index=0;
19566
19574
  var xPoint=left+distanceWidth/2+ dataWidth+distanceWidth;
19567
- while(xPoint<right && index<10000 && index+1<this.XPointCount) //自己算x的数值
19575
+ while(xPoint<right && index<maxDataCount && index+1<this.XPointCount) //自己算x的数值
19568
19576
  {
19569
19577
  if (xPoint>y) break;
19570
19578
  xPoint+=(dataWidth+distanceWidth);
@@ -72015,6 +72023,7 @@ function KLineChartContainer(uielement,OffscreenElement)
72015
72023
  };
72016
72024
 
72017
72025
  if (IFrameSplitOperator.IsNumber(obj.FloatPrecision)) indexData.FloatPrecision=obj.FloatPrecision;
72026
+ if (IFrameSplitOperator.IsNumber(obj.StringFormat)) indexData.StringFormat=obj.StringFormat;
72018
72027
 
72019
72028
  var scriptIndex=new OverlayScriptIndex(indexData.Name,indexData.Script,indexData.Args,indexData); //脚本执行
72020
72029
  scriptIndex.OverlayIndex={ IsOverlay:true, Identify:overlayFrame.Identify, WindowIndex:windowIndex, Frame:overlayFrame }; //叠加指标信息
@@ -115072,6 +115081,7 @@ function OverlayScriptIndex(name,script,args,option)
115072
115081
  if (titleData)
115073
115082
  {
115074
115083
  if (this.FloatPrecision>=0) titleData.FloatPrecision=this.FloatPrecision;
115084
+ if (IFrameSplitOperator.IsNumber(this.StringFormat)) titleData.StringFormat=this.StringFormat;
115075
115085
  }
115076
115086
  }
115077
115087
 
@@ -129594,7 +129604,7 @@ function HQChartScriptWorker()
129594
129604
 
129595
129605
 
129596
129606
 
129597
- var HQCHART_VERSION="1.1.12559";
129607
+ var HQCHART_VERSION="1.1.12569";
129598
129608
 
129599
129609
  function PrintHQChartVersion()
129600
129610
  {