hqchart 1.1.13694 → 1.1.13705

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.
@@ -1177,7 +1177,7 @@ option.CorssCursor={};option.CorssCursor.TitleHeight=chart.ChartCorssCursor.Text
1177
1177
  }if(item.IsShowRightText===false||item.IsShowRightText===true){chart.Frame.SubFrame[i].Frame.IsShowYText[1]=item.IsShowRightText;chart.Frame.SubFrame[i].Frame.YSplitOperator.IsShowRightText=item.IsShowRightText;//显示右边刻度
1178
1178
  }if(item.TopSpace>=0)chart.Frame.SubFrame[i].Frame.ChartBorder.TopSpace=item.TopSpace*pixelRatio;if(item.BottomSpace>=0)chart.Frame.SubFrame[i].Frame.ChartBorder.BottomSpace=item.BottomSpace*pixelRatio;if(item.RightTextPosition>0)chart.Frame.SubFrame[i].Frame.YTextPosition[1]=item.RightTextPosition;if(item.LeftTextPosition>0)chart.Frame.SubFrame[i].Frame.YTextPosition[0]=item.LeftTextPosition;if(item.IsShowXLine==false)chart.Frame.SubFrame[i].Frame.IsShowXLine=item.IsShowXLine;if(item.IsShowYLine==false)chart.Frame.SubFrame[i].Frame.IsShowYLine=item.IsShowYLine;if(IFrameSplitOperator.IsNumber(item.YTextBaseline))chart.Frame.SubFrame[i].Frame.YTextBaseline=item.YTextBaseline;if(item.YCoordinateType>0)chart.Frame.SubFrame[0].Frame.YSplitOperator.CoordinateType=item.YCoordinateType;if(item.IsYReverse==true)chart.Frame.SubFrame[0].Frame.CoordinateType=1;//反转坐标
1179
1179
  if(IFrameSplitOperator.IsNumber(item.PercentageTextFormat))subFrame.YSplitOperator.PercentageTextFormat=item.PercentageTextFormat;//百分比坐标格式
1180
- if(item.DefaultYMaxMin)chart.Frame.SubFrame[i].Frame.YSplitOperator.DefaultYMaxMin=item.DefaultYMaxMin;if(IFrameSplitOperator.IsBool(item.EnableRemoveZero))chart.Frame.SubFrame[i].Frame.YSplitOperator.EnableRemoveZero=item.EnableRemoveZero;if(IFrameSplitOperator.IsPlusNumber(item.MinYDistance))chart.Frame.SubFrame[i].Frame.MinYDistance=item.MinYDistance;if(IFrameSplitOperator.IsNumber(item.BorderLine))chart.Frame.SubFrame[i].Frame.BorderLine=item.BorderLine;if(IFrameSplitOperator.IsBool(item.IsShowIndexTitle))chart.Frame.SubFrame[i].Frame.IsShowIndexTitle=item.IsShowIndexTitle;if(IFrameSplitOperator.IsBool(item.IsDrawTitleBottomLine))subFrame.IsDrawTitleBottomLine=item.IsDrawTitleBottomLine;if(IFrameSplitOperator.IsBool(item.IsShowNameArrow))chart.Frame.SubFrame[i].Frame.IsShowNameArrow=item.IsShowNameArrow;if(item.ClientBGColor)subFrame.ClientBGColor=item.ClientBGColor;}}if(option.KLine){var item=option.KLine;var klineChart=chart.ChartPaint[0];if(option.KLine.ShowKLine==false)klineChart.IsShow=false;if(option.KLine.InfoPosition>0)klineChart.InfoPosition=option.KLine.InfoPosition;if(IFrameSplitOperator.IsBool(item.IsShowMaxMinPrice))klineChart.IsShowMaxMinPrice=item.IsShowMaxMinPrice;if(item.PriceGap){if(IFrameSplitOperator.IsBool(item.PriceGap.Enable))klineChart.PriceGap.Enable=item.PriceGap.Enable;if(IFrameSplitOperator.IsNumber(item.PriceGap.Count))klineChart.PriceGap.Count=item.PriceGap.Count;}}if(option.KLineTitle){var item=option.KLineTitle;if(option.KLineTitle.IsShowName==false)chart.TitlePaint[0].IsShowName=false;if(option.KLineTitle.IsShowSettingInfo==false)chart.TitlePaint[0].IsShowSettingInfo=false;if(option.KLineTitle.IsShow==false)chart.TitlePaint[0].IsShow=false;if(IFrameSplitOperator.IsBool(item.IsTitleShowLatestData))chart.IsTitleShowLatestData=item.IsTitleShowLatestData;}//叠加股票
1180
+ if(item.DefaultYMaxMin)chart.Frame.SubFrame[i].Frame.YSplitOperator.DefaultYMaxMin=item.DefaultYMaxMin;if(IFrameSplitOperator.IsBool(item.EnableRemoveZero))chart.Frame.SubFrame[i].Frame.YSplitOperator.EnableRemoveZero=item.EnableRemoveZero;if(IFrameSplitOperator.IsPlusNumber(item.MinYDistance))chart.Frame.SubFrame[i].Frame.MinYDistance=item.MinYDistance;if(IFrameSplitOperator.IsNumber(item.BorderLine))chart.Frame.SubFrame[i].Frame.BorderLine=item.BorderLine;if(IFrameSplitOperator.IsBool(item.IsShowIndexTitle))chart.Frame.SubFrame[i].Frame.IsShowIndexTitle=item.IsShowIndexTitle;if(IFrameSplitOperator.IsBool(item.IsDrawTitleBottomLine))subFrame.IsDrawTitleBottomLine=item.IsDrawTitleBottomLine;if(IFrameSplitOperator.IsBool(item.IsShowNameArrow))chart.Frame.SubFrame[i].Frame.IsShowNameArrow=item.IsShowNameArrow;if(item.ClientBGColor)subFrame.ClientBGColor=item.ClientBGColor;}}if(option.KLine){var item=option.KLine;var klineChart=chart.ChartPaint[0];if(option.KLine.ShowKLine==false)klineChart.IsShow=false;if(option.KLine.InfoPosition>0)klineChart.InfoPosition=option.KLine.InfoPosition;if(IFrameSplitOperator.IsBool(item.IsShowMaxMinPrice))klineChart.IsShowMaxMinPrice=item.IsShowMaxMinPrice;if(IFrameSplitOperator.IsNumber(item.OneLimitBarType))klineChart.OneLimitBarType=item.OneLimitBarType;if(item.PriceGap){if(IFrameSplitOperator.IsBool(item.PriceGap.Enable))klineChart.PriceGap.Enable=item.PriceGap.Enable;if(IFrameSplitOperator.IsNumber(item.PriceGap.Count))klineChart.PriceGap.Count=item.PriceGap.Count;}}if(option.KLineTitle){var item=option.KLineTitle;if(option.KLineTitle.IsShowName==false)chart.TitlePaint[0].IsShowName=false;if(option.KLineTitle.IsShowSettingInfo==false)chart.TitlePaint[0].IsShowSettingInfo=false;if(option.KLineTitle.IsShow==false)chart.TitlePaint[0].IsShow=false;if(IFrameSplitOperator.IsBool(item.IsTitleShowLatestData))chart.IsTitleShowLatestData=item.IsTitleShowLatestData;}//叠加股票
1181
1181
  if(option.Overlay){for(var i=0;i<option.Overlay.length;++i){var item=option.Overlay[i];chart.OverlaySymbol(item.Symbol,item);}}if(option.ExtendChart){for(var i=0;i<option.ExtendChart.length;++i){var item=option.ExtendChart[i];chart.CreateExtendChart(item.Name,item);}}//创建子窗口的指标
1182
1182
  var scriptData=new JSIndexScript();if(option.ColorIndex)//五彩K线
1183
1183
  {var item=option.ColorIndex;var indexInfo=scriptData.Get(item.Index);if(indexInfo){indexInfo.ID=item.Index;chart.ColorIndex=new ScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo);//脚本执行
@@ -3334,6 +3334,7 @@ this.ShowRange={};//K线显示范围 { Start:, End:, DataCount:, ShowCount: }
3334
3334
  this.CustomKLine;//自定义K线, key=date*1000000+time, key={ Color:, DrawType: }
3335
3335
  this.DrawKRange={Start:null,End:null};//当前屏K线的索引{ Start: , End:}
3336
3336
  this.IsThinAKBar=true;//美国线 柱子是否是线段 (false=柱子)
3337
+ this.OneLimitBarType=0;//一字板颜色类型 4个价格全部都在同一个价位上 0=使用平盘颜色 1=跟昨收比较
3337
3338
  this.HighLowBarColor=g_JSChartResource.HighLowBarColor;this.HighLowTextConfig={FontName:g_JSChartResource.HighLowText.FontName,MaxSize:g_JSChartResource.HighLowText.MaxSize,MinSize:g_JSChartResource.HighLowText.MinSize,Color:g_JSChartResource.HighLowText.Color,//未用
3338
3339
  MaxText:g_JSChartResource.HighLowText.MaxText};this.HLCAreaConfig={HighLineColor:g_JSChartResource.HLCArea.HighLineColor,LowLineColor:g_JSChartResource.HLCArea.LowLineColor,CloseLineColor:g_JSChartResource.HLCArea.CloseLineColor,LineWidth:g_JSChartResource.HLCArea.LineWidth,UpAreaColor:g_JSChartResource.HLCArea.UpAreaColor,DownAreaColor:g_JSChartResource.HLCArea.DownAreaColor//虚线柱子
3339
3340
  };this.VirtualBarConfig={Color:g_JSChartResource.VirtualKLine.Color,LineDash:g_JSChartResource.VirtualKLine.LineDash};//DrawType==14 自定义图形
@@ -3410,9 +3411,12 @@ else this.Canvas.fillRect(ToFixedRect(y),ToFixedRect(left),ToFixedRect(yClose-y)
3410
3411
  }else{if(isEmptyBar)//空心柱
3411
3412
  {this.Canvas.beginPath();this.Canvas.rect(ToFixedPoint(left),ToFixedPoint(Math.min(y,yClose)),ToFixedRect(dataWidth),ToFixedRect(Math.abs(yClose-y)));this.Canvas.stroke();}else{this.Canvas.fillRect(ToFixedRect(left),ToFixedRect(Math.min(y,yClose)),ToFixedRect(dataWidth),ToFixedRect(Math.abs(yClose-y)));}}}if(data.Open>data.Low)//下影线
3412
3413
  {this.Canvas.beginPath();if(isHScreen){this.Canvas.moveTo(ToFixedPoint(y),ToFixedPoint(x));this.Canvas.lineTo(ToFixedPoint(yLow),ToFixedPoint(x));}else{if(isEmptyBar){var xFixed=left+dataWidth/2;this.Canvas.moveTo(ToFixedPoint(xFixed),ToFixedPoint(Math.max(yClose,yOpen)));this.Canvas.lineTo(ToFixedPoint(xFixed),ToFixedPoint(yLow));}else{this.Canvas.moveTo(ToFixedPoint(x),ToFixedPoint(y));this.Canvas.lineTo(ToFixedPoint(x),ToFixedPoint(yLow));}}this.Canvas.stroke();}}else{this.Canvas.beginPath();if(isHScreen){this.Canvas.moveTo(yHigh,ToFixedPoint(x));this.Canvas.lineTo(yLow,ToFixedPoint(x));}else{this.Canvas.moveTo(ToFixedPoint(x),yHigh);this.Canvas.lineTo(ToFixedPoint(x),yLow);}this.Canvas.strokeStyle=downColor;this.Canvas.stroke();}};this.DrawKBar_Unchagne=function(data,dataWidth,unchagneColor,drawType,x,y,left,right,yLow,yHigh,yOpen,yClose,isHScreen)//平线
3413
- {if(dataWidth>=4){if(dataWidth%2!=0)dataWidth-=1;this.Canvas.strokeStyle=unchagneColor;this.Canvas.beginPath();if(data.High>data.Close)//上影线
3414
+ {if(this.OneLimitBarType===1&&this.IsOneLimitBar(data))//一字板
3415
+ {unchagneColor=this.GetOneLimitBarColor(data);}if(dataWidth>=4){if(dataWidth%2!=0)dataWidth-=1;this.Canvas.strokeStyle=unchagneColor;this.Canvas.beginPath();if(data.High>data.Close)//上影线
3414
3416
  {if(isHScreen){this.Canvas.moveTo(y,ToFixedPoint(x));this.Canvas.lineTo(yOpen,ToFixedPoint(x));}else{var xFixed=ToFixedPoint(left+dataWidth/2);this.Canvas.moveTo(xFixed,y);this.Canvas.lineTo(xFixed,yOpen);}y=yOpen;}else{y=yOpen;}if(isHScreen){this.Canvas.moveTo(ToFixedPoint(y),ToFixedPoint(left));this.Canvas.lineTo(ToFixedPoint(y),ToFixedPoint(right));}else{this.Canvas.moveTo(ToFixedPoint(left),ToFixedPoint(y));this.Canvas.lineTo(ToFixedPoint(left+dataWidth),ToFixedPoint(y));}if(data.Open>data.Low)//下影线
3415
- {if(isHScreen){this.Canvas.moveTo(ToFixedPoint(y),ToFixedPoint(x));this.Canvas.lineTo(ToFixedPoint(yLow),ToFixedPoint(x));}else{var xFixed=ToFixedPoint(left+dataWidth/2);this.Canvas.moveTo(xFixed,ToFixedPoint(y));this.Canvas.lineTo(xFixed,ToFixedPoint(yLow));}}this.Canvas.stroke();}else{this.Canvas.beginPath();if(isHScreen){if(data.High==data.Low){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){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.strokeStyle=unchagneColor;this.Canvas.stroke();}};this.DrawKBar_Custom=function(data,dataWidth,barColor,drawType,option,x,y,left,right,yLow,yHigh,yOpen,yClose,border,isHScreen){if(option.BGColor)//画背景色
3417
+ {if(isHScreen){this.Canvas.moveTo(ToFixedPoint(y),ToFixedPoint(x));this.Canvas.lineTo(ToFixedPoint(yLow),ToFixedPoint(x));}else{var xFixed=ToFixedPoint(left+dataWidth/2);this.Canvas.moveTo(xFixed,ToFixedPoint(y));this.Canvas.lineTo(xFixed,ToFixedPoint(yLow));}}this.Canvas.stroke();}else{this.Canvas.beginPath();if(isHScreen){if(data.High==data.Low){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){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.strokeStyle=unchagneColor;this.Canvas.stroke();}};//是否是一字板
3418
+ this.IsOneLimitBar=function(kItem){if(kItem.Open==kItem.Close&&kItem.High==kItem.Low&&kItem.Open==kItem.High)return true;return false;};//一字板颜色 和昨收比较
3419
+ this.GetOneLimitBarColor=function(kItem){if(!kItem||!IFrameSplitOperator.IsNumber(kItem.YClose))return this.UnchagneColor;if(kItem.Close>kItem.YClose)return this.UpColor;else if(kItem.Close<kItem.YClose)return this.DownColor;else return this.UnchagneColor;};this.DrawKBar_Custom=function(data,dataWidth,barColor,drawType,option,x,y,left,right,yLow,yHigh,yOpen,yClose,border,isHScreen){if(option.BGColor)//画背景色
3416
3420
  {this.Canvas.fillStyle=option.BGColor;var distanceWidth=this.ChartFrame.DistanceWidth;if(isHScreen){var yLeft=left-distanceWidth/2;var yRight=right+distanceWidth/2;var xTop=border.RightEx;var xBottom=border.LeftEx;this.Canvas.fillRect(ToFixedRect(xBottom),ToFixedRect(yLeft),ToFixedRect(xTop-xBottom),ToFixedRect(yRight-yLeft));}else{var xLeft=left-distanceWidth/2;var xRight=right+distanceWidth/2;var yTop=border.TopEx;var yBottom=border.BottomEx;this.Canvas.fillRect(ToFixedRect(xLeft),ToFixedRect(yTop),ToFixedRect(xRight-xLeft),ToFixedRect(yBottom-yTop));}}if(dataWidth>=4){this.Canvas.strokeStyle=barColor;if(data.High>data.Close)//上影线
3417
3421
  {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{this.Canvas.moveTo(ToFixedPoint(x),ToFixedPoint(y));this.Canvas.lineTo(ToFixedPoint(x),ToFixedPoint(drawType==3?Math.min(yClose,yOpen):yClose));}this.Canvas.stroke();y=yClose;}else{y=yClose;}this.Canvas.fillStyle=barColor;if(isHScreen){if(Math.abs(yOpen-y)<1){this.Canvas.fillRect(ToFixedRect(y),ToFixedRect(left),1,ToFixedRect(dataWidth));//高度小于1,统一使用高度1
3418
3422
  }else{if(drawType==3)//空心柱
@@ -11159,7 +11163,7 @@ Explain:'财务数据FINONE(ID,Y,MMDD)',JobID:jobItem.ID,Request:{Url:self.Stock
11159
11163
  }var apiDownload=new DownloadFinOneData({Job:jobItem,Symbol:this.Symbol,Url:this.StockHistoryDayApiUrl,Args:aryArgs,DataKey:key,Callback:function Callback(recvData,jobItem,key){self.RecvStockValue(recvData,jobItem,key,1);self.Execute.RunNextJob();},ErrorCallback:function ErrorCallback(strError){self.AddStockValueError(key,strError);}});apiDownload.Download();};this.GetStockDataKey=function(jobItem,aryArgs){var key=jobItem.FunctionName;if(aryArgs.length>0){key+="(";for(var i=0;i<aryArgs.length;++i){if(i>0)key+=",";key+=aryArgs[i].toString();}key+=")";}return key;};this.GetFinValue=function(jobItem){var aryArgs=this.JobArgumentsToArray(jobItem,1);var lID=aryArgs[0];var key=this.GetStockDataKey(jobItem,aryArgs);if(this.StockData.has(key))return this.Execute.RunNextJob();var self=this;if(this.NetworkFilter){var dateRange=this.Data.GetDateRange();var obj={Name:'JSSymbolData::GetFinValue',//类名::
11160
11164
  Explain:'财务数据FINVALUE(ID)',JobID:jobItem.ID,Request:{Url:self.StockHistoryDayApiUrl,Type:'POST',Data:{id:lID,symbol:this.Symbol,daterange:dateRange}},Self:this,PreventDefault:false};this.NetworkFilter(obj,function(recvData){self.RecvStockValue(recvData,jobItem,key,0);self.Execute.RunNextJob();});if(obj.PreventDefault==true)return;//已被上层替换,不调用默认的网络请求
11161
11165
  }var apiDownload=new DownloadFinValueData({Job:jobItem,Symbol:this.Symbol,Url:this.StockHistoryDayApiUrl,Args:aryArgs,DataKey:key,Callback:function Callback(recvData,jobItem,key){self.RecvStockValue(recvData,jobItem,key,0);self.Execute.RunNextJob();},ErrorCallback:function ErrorCallback(strError){self.AddStockValueError(key,strError);}});apiDownload.Download();};this.GetFinance=function(jobItem){var aryArgs=this.JobArgumentsToArray(jobItem,1);var lID=aryArgs[0];var key=this.GetStockDataKey(jobItem,aryArgs);if(this.StockData.has(key))return this.Execute.RunNextJob();var self=this;if(this.NetworkFilter){var dateRange=this.Data.GetDateRange();var obj={Name:'JSSymbolData::GetFinance',//类名::
11162
- Explain:'财务数据FINANCE(ID)',JobID:jobItem.ID,Request:{Url:self.RealtimeApiUrl,Type:'POST',Data:{id:lID,symbol:this.Symbol,daterange:dateRange}},Self:this,PreventDefault:false};this.NetworkFilter(obj,function(recvData){self.RecvStockValue(recvData,jobItem,key,0);self.Execute.RunNextJob();});if(obj.PreventDefault==true)return;//已被上层替换,不调用默认的网络请求
11166
+ Explain:'财务数据FINANCE(ID)',JobID:jobItem.ID,Request:{Url:self.RealtimeApiUrl,Type:'POST',Data:{id:lID,symbol:this.Symbol,daterange:dateRange}},Self:this,PreventDefault:false};this.NetworkFilter(obj,function(recvData){if(recvData.Error)self.AddStockValueError(key,recvData.Error);else self.RecvStockValue(recvData,jobItem,key,0);self.Execute.RunNextJob();});if(obj.PreventDefault==true)return;//已被上层替换,不调用默认的网络请求
11163
11167
  }var apiDownload=new DownloadFinanceData({Job:jobItem,Symbol:this.Symbol,Url:this.StockHistoryDayApiUrl,RealtimeUrl:this.RealtimeApiUrl,Args:aryArgs,DataKey:key,Callback:function Callback(recvData,jobItem,key){self.RecvStockValue(recvData,jobItem,key,0);self.Execute.RunNextJob();},ErrorCallback:function ErrorCallback(strError){self.AddStockValueError(key,strError);}});apiDownload.Download();};this.GetGPJYValue=function(jobItem){var aryArgs=this.JobArgumentsToArray(jobItem,3);var key=this.GetStockDataKey(jobItem,aryArgs);if(this.StockData.has(key))return this.Execute.RunNextJob();var self=this;//TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理
11164
11168
  var dataType=aryArgs[2]==1?0:2;if(this.NetworkFilter){var dateRange=this.Data.GetDateRange();var obj={Name:'JSSymbolData::GetGPJYValue',//类名::
11165
11169
  Explain:'股票交易类数据GPJYVALUE(ID,N,TYPE)',JobID:jobItem.ID,Request:{Url:self.StockHistoryDayApiUrl,Type:'POST',Data:{Args:aryArgs,symbol:this.Symbol,daterange:dateRange}},Self:this,PreventDefault:false};this.NetworkFilter(obj,function(recvData){self.RecvStockValue(recvData,jobItem,key,dataType);self.Execute.RunNextJob();});if(obj.PreventDefault==true)return;//已被上层替换,不调用默认的网络请求
@@ -13734,7 +13738,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
13734
13738
  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);};}/********************************************************************************
13735
13739
  * 版本信息输出
13736
13740
  *
13737
- */var HQCHART_VERSION="1.1.13693";function PrintHQChartVersion(){var logo='\n\n*************************************************************************************************************************************************************************** \n* \n* :%@@- \n* :@@@@- \n* =@@@@ :#@@@ .:+#@@@#=: :=*@@@@@@#+-. *@@@@. \n* :@@@@@ .@@@@@ .#@@@@@@@@@@@- +@@@@@@@@@@@@@+ @@@@@ -%@@* \n* +@@@@% #@@@@# *@@@@@@@@@@@@@@%. =@@@@@@@@@@@@@@@- @@@@@ -@@@@+ \n* %@@@@* @@@@@+ .%@@@@@@@@@@@@@@@@%: #@@@@@@@@@@@@@@@% @@@@# *@@@@= \n* @@@@@= @@@@@- .%@@@@@@@*++*%@@@@@@% .%@@@@@@@%*+==+**= -@@@@+ #@@@@- \n* @@@@@. @@@@@. #@@@@@%= =@@@@@@* %@@@@@@#: *@@@@- :::. .-+*###+: ::: .+##+: -%%@@@@@%%%% \n* .@@@@@ .@@@@@. +@@@@@% .@@@@@@ *@@@@@@: %@@@@: +@@@@@%. :%@@@@@@@@@@: *@@@ :@@@@@* @@@@@@@@@@@@ \n* :@@@@@ :@@@@@ @@@@@% :@@@@@+ @@@@@@: %@@@@-@@@@@@@@@. @@@@@@@@@@@@@. :@@@%-@@@@@@.:@@@@@@@@@@@# \n* -@@@@% -@@@@@ =@@@@@. %@@@@% %@@@@@- %@@@@@@@@@@@@@@* %@@@@@@@@@@@@+ -@@@@@@@@@@# -@@@@@@@@@@@. \n* +@@@@%=========#@@@@% @@@@@# :@@@@@ .@@@@@% @@@@@@@@%@@@@@@@ -%+:. .#@@@@* +@@@@@@@%%@. .::+@@@@#:: \n* #@@@@@@@@@@@@@@@@@@@# .@@@@@ .@@@@@ :@@@@@. @@@@@@#. #@@@@@. -@@@@* #@@@@@@: *@@@@+ \n* %@@@@@@@@@@@@@@@@@@@+ :@@@@@ .@@@@@ -@@@@@ @@@@@+ @@@@@. :@@@@* @@@@@% #@@@@- \n* @@@@@@@@@@@@@@@@@@@@: :@@@@% :@@@@@ +@@@@% -@@@@+ @@@@@ -@@@@+ @@@@@. @@@@@. \n* .@@@@@@@@@@@@@@@@@@@@ :@@@@% -@@@@% *@@@@% #@@@@. @@@@@ .=*#%%%@@@@@= :@@@@# @@@@@. \n* -@@@@@:::::::::=@@@@@ :@@@@@ @@@@@* +@@@@% @@@@@ @@@@% -#@@@@@@@@@@@@: -@@@@* @@@@@ \n* =@@@@% =@@@@% .@@@@@ :@@@@@. -@@@@% @@@@@ .@@@@* +@@@@@@@@@@@@@@. =@@@@+ .@@@@@ \n* +@@@@# +@@@@# @@@@@# %@@@@% :@@@@@ .@@@@% =@@@@= -@@@@@*-:..%@@@@ +@@@@= :@@@@# \n* *@@@@* *@@@@* +@@@@@: #@@@@@+ .@@@@@@ :@@@@% *@@@@- @@@@@. @@@@% #@@@@: =@@@@+ \n* %@@@@= %@@@@+ @@@@@@- .%@@@@@# #@@@@@# :@@@@% #@@@@: @@@@% @@@@* %@@@@. #@@@@- \n* @@@@@- @@@@@= =@@@@@@#=...-*@@@@@@@: @@@@@@%=. :+**. :@@@@* %@@@@. .@@@@* *@@@@= @@@@@ %@@@@+ \n* .@@@@@: .@@@@@: *@@@@@@@@@@@@@@@@@@@# =@@@@@@@@%%%@@@@@@ +@@@@- @@@@@ .@@@@@: :%@@@@@- .@@@@% %@@@@@*+- \n* :@@@@@ :@@@@@ +@@@@@@@@@@@@@@@@@@@# =@@@@@@@@@@@@@@@@% %@@@@ @@@@@ @@@@@@@@@@@@@@@: -@@@@* *@@@@@@@@- \n* =@@@@@ -@@@@@ :@@@@@@@@@@@@@@@@@@@# :@@@@@@@@@@@@@@@% @@@@@ %@@@% #@@@@@@@@@#@@@@. +@@@@- .@@@@@@@@# \n* *@@@@# =@@@@% :#@@@@@@@#: :@@@@@= =@@@@@@@@@@@+. @@@@@ :@@@+ *@@@@@@@- %@@@ *@@@= =@@@@@@@* \n* =++++- -++++= .:::. .=*+: :-=+++=:. ****= .=+. .-++=: :+++ -+=: .-=+=:. \n* \n* \n* HQChart \n* Ver: '+HQCHART_VERSION+' \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n************************************************************************************************************************************************************************** \n ';console.log(logo);}PrintHQChartVersion();//把给外界调用的方法暴露出来
13741
+ */var HQCHART_VERSION="1.1.13704";function PrintHQChartVersion(){var logo='\n\n*************************************************************************************************************************************************************************** \n* \n* :%@@- \n* :@@@@- \n* =@@@@ :#@@@ .:+#@@@#=: :=*@@@@@@#+-. *@@@@. \n* :@@@@@ .@@@@@ .#@@@@@@@@@@@- +@@@@@@@@@@@@@+ @@@@@ -%@@* \n* +@@@@% #@@@@# *@@@@@@@@@@@@@@%. =@@@@@@@@@@@@@@@- @@@@@ -@@@@+ \n* %@@@@* @@@@@+ .%@@@@@@@@@@@@@@@@%: #@@@@@@@@@@@@@@@% @@@@# *@@@@= \n* @@@@@= @@@@@- .%@@@@@@@*++*%@@@@@@% .%@@@@@@@%*+==+**= -@@@@+ #@@@@- \n* @@@@@. @@@@@. #@@@@@%= =@@@@@@* %@@@@@@#: *@@@@- :::. .-+*###+: ::: .+##+: -%%@@@@@%%%% \n* .@@@@@ .@@@@@. +@@@@@% .@@@@@@ *@@@@@@: %@@@@: +@@@@@%. :%@@@@@@@@@@: *@@@ :@@@@@* @@@@@@@@@@@@ \n* :@@@@@ :@@@@@ @@@@@% :@@@@@+ @@@@@@: %@@@@-@@@@@@@@@. @@@@@@@@@@@@@. :@@@%-@@@@@@.:@@@@@@@@@@@# \n* -@@@@% -@@@@@ =@@@@@. %@@@@% %@@@@@- %@@@@@@@@@@@@@@* %@@@@@@@@@@@@+ -@@@@@@@@@@# -@@@@@@@@@@@. \n* +@@@@%=========#@@@@% @@@@@# :@@@@@ .@@@@@% @@@@@@@@%@@@@@@@ -%+:. .#@@@@* +@@@@@@@%%@. .::+@@@@#:: \n* #@@@@@@@@@@@@@@@@@@@# .@@@@@ .@@@@@ :@@@@@. @@@@@@#. #@@@@@. -@@@@* #@@@@@@: *@@@@+ \n* %@@@@@@@@@@@@@@@@@@@+ :@@@@@ .@@@@@ -@@@@@ @@@@@+ @@@@@. :@@@@* @@@@@% #@@@@- \n* @@@@@@@@@@@@@@@@@@@@: :@@@@% :@@@@@ +@@@@% -@@@@+ @@@@@ -@@@@+ @@@@@. @@@@@. \n* .@@@@@@@@@@@@@@@@@@@@ :@@@@% -@@@@% *@@@@% #@@@@. @@@@@ .=*#%%%@@@@@= :@@@@# @@@@@. \n* -@@@@@:::::::::=@@@@@ :@@@@@ @@@@@* +@@@@% @@@@@ @@@@% -#@@@@@@@@@@@@: -@@@@* @@@@@ \n* =@@@@% =@@@@% .@@@@@ :@@@@@. -@@@@% @@@@@ .@@@@* +@@@@@@@@@@@@@@. =@@@@+ .@@@@@ \n* +@@@@# +@@@@# @@@@@# %@@@@% :@@@@@ .@@@@% =@@@@= -@@@@@*-:..%@@@@ +@@@@= :@@@@# \n* *@@@@* *@@@@* +@@@@@: #@@@@@+ .@@@@@@ :@@@@% *@@@@- @@@@@. @@@@% #@@@@: =@@@@+ \n* %@@@@= %@@@@+ @@@@@@- .%@@@@@# #@@@@@# :@@@@% #@@@@: @@@@% @@@@* %@@@@. #@@@@- \n* @@@@@- @@@@@= =@@@@@@#=...-*@@@@@@@: @@@@@@%=. :+**. :@@@@* %@@@@. .@@@@* *@@@@= @@@@@ %@@@@+ \n* .@@@@@: .@@@@@: *@@@@@@@@@@@@@@@@@@@# =@@@@@@@@%%%@@@@@@ +@@@@- @@@@@ .@@@@@: :%@@@@@- .@@@@% %@@@@@*+- \n* :@@@@@ :@@@@@ +@@@@@@@@@@@@@@@@@@@# =@@@@@@@@@@@@@@@@% %@@@@ @@@@@ @@@@@@@@@@@@@@@: -@@@@* *@@@@@@@@- \n* =@@@@@ -@@@@@ :@@@@@@@@@@@@@@@@@@@# :@@@@@@@@@@@@@@@% @@@@@ %@@@% #@@@@@@@@@#@@@@. +@@@@- .@@@@@@@@# \n* *@@@@# =@@@@% :#@@@@@@@#: :@@@@@= =@@@@@@@@@@@+. @@@@@ :@@@+ *@@@@@@@- %@@@ *@@@= =@@@@@@@* \n* =++++- -++++= .:::. .=*+: :-=+++=:. ****= .=+. .-++=: :+++ -+=: .-=+=:. \n* \n* \n* HQChart \n* Ver: '+HQCHART_VERSION+' \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n************************************************************************************************************************************************************************** \n ';console.log(logo);}PrintHQChartVersion();//把给外界调用的方法暴露出来
13738
13742
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
13739
13743
  // BaseIndex:BaseIndex,
13740
13744
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.13694",
3
+ "version": "1.1.13705",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -43229,10 +43229,10 @@ var KLINE_CAPITAL_DATA={
43229
43229
  [
43230
43230
  20230821,
43231
43231
  7.07,
43232
- 7.06,
43233
43232
  7.11,
43234
- 6.96,
43235
- 6.96,
43233
+ 7.11,
43234
+ 7.11,
43235
+ 7.11,
43236
43236
  42517681,
43237
43237
  298419531
43238
43238
  ],
@@ -49185,6 +49185,12 @@ HQData.RequestIndexVariantData=function(data,callback)
49185
49185
  }
49186
49186
  callback(hqchartData);
49187
49187
  }
49188
+ else
49189
+ {
49190
+ var error= `变量'${varName}' 没有对接数据. [HQData.RequestIndexVariantData]`;
49191
+ var hqchartData={ Error:error };
49192
+ callback(hqchartData);
49193
+ }
49188
49194
 
49189
49195
  }
49190
49196
 
@@ -49207,6 +49213,11 @@ HQData.CustomFunction_RequestData=function(data, callback)
49207
49213
  hqchartData.Data.push({ Date:kItem.Date, Time:kItem.Time, Value:kItem.Vol/3 });
49208
49214
  }
49209
49215
  }
49216
+ else
49217
+ {
49218
+ var error= `函数'${funcName}' 没有对接数据. [HQData.CustomFunction_RequestData]`;
49219
+ var hqchartData={ Error:error };
49220
+ }
49210
49221
 
49211
49222
  callback(hqchartData);
49212
49223
  }
@@ -49229,7 +49240,9 @@ HQData.CustomVarData_RequestData=function(data, callback)
49229
49240
  }
49230
49241
  else
49231
49242
  {
49232
- throw `${varName} 没有对接. [HQData.CustomVarData_RequestData]`
49243
+ var error= `变量'${varName}' 没有对接数据. [HQData.CustomVarData_RequestData]`;
49244
+ var hqchartData={ Error:error };
49245
+ callback(hqchartData);
49233
49246
  }
49234
49247
 
49235
49248
 
@@ -49383,7 +49396,14 @@ HQData.Finance_RequestData=function(data,callback)
49383
49396
  var id=data.Request.Data.id;
49384
49397
  var hqchartData=null;
49385
49398
  if (id==7) // 流通股本(随时间可能有变化)
49399
+ {
49386
49400
  hqchartData=TEST_FINANCE_7.data;
49401
+ }
49402
+ else
49403
+ {
49404
+ var error= `Finance(${id}) 没有对接数据. [HQData.Finance_RequestData]`;
49405
+ hqchartData={ Error:error };
49406
+ }
49387
49407
 
49388
49408
  if (hqchartData) callback(hqchartData);
49389
49409
  }
@@ -14397,7 +14397,8 @@ function JSSymbolData(ast,option,jsExecute)
14397
14397
  };
14398
14398
  this.NetworkFilter(obj, function(recvData)
14399
14399
  {
14400
- self.RecvStockValue(recvData,jobItem,key,0);
14400
+ if (recvData.Error) self.AddStockValueError(key,recvData.Error);
14401
+ else self.RecvStockValue(recvData,jobItem,key,0);
14401
14402
  self.Execute.RunNextJob();
14402
14403
  });
14403
14404
 
@@ -571,6 +571,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
571
571
  if (option.KLine.ShowKLine == false) klineChart.IsShow = false;
572
572
  if (option.KLine.InfoPosition>0) klineChart.InfoPosition=option.KLine.InfoPosition;
573
573
  if (IFrameSplitOperator.IsBool(item.IsShowMaxMinPrice)) klineChart.IsShowMaxMinPrice=item.IsShowMaxMinPrice;
574
+ if (IFrameSplitOperator.IsNumber(item.OneLimitBarType)) klineChart.OneLimitBarType=item.OneLimitBarType;
574
575
  if (item.PriceGap)
575
576
  {
576
577
  if (IFrameSplitOperator.IsBool(item.PriceGap.Enable)) klineChart.PriceGap.Enable=item.PriceGap.Enable;
@@ -23922,7 +23923,8 @@ function ChartKLine()
23922
23923
  this.CustomKLine; //自定义K线, key=date*1000000+time, key={ Color:, DrawType: }
23923
23924
  this.DrawKRange={ Start:null, End:null }; //当前屏K线的索引{ Start: , End:}
23924
23925
 
23925
- this.IsThinAKBar=true; //美国线 柱子是否是线段 (false=柱子)
23926
+ this.IsThinAKBar=true; //美国线 柱子是否是线段 (false=柱子)
23927
+ this.OneLimitBarType=0; //一字板颜色类型 4个价格全部都在同一个价位上 0=使用平盘颜色 1=跟昨收比较
23926
23928
 
23927
23929
  this.HighLowBarColor=g_JSChartResource.HighLowBarColor;
23928
23930
  this.HighLowTextConfig=
@@ -25020,6 +25022,11 @@ function ChartKLine()
25020
25022
 
25021
25023
  this.DrawKBar_Unchagne=function(data, dataWidth, unchagneColor, drawType, x, y, left, right, yLow, yHigh, yOpen, yClose, isHScreen) //平线
25022
25024
  {
25025
+ if (this.OneLimitBarType===1&& this.IsOneLimitBar(data)) //一字板
25026
+ {
25027
+ unchagneColor=this.GetOneLimitBarColor(data);
25028
+ }
25029
+
25023
25030
  if (dataWidth>=4)
25024
25031
  {
25025
25032
  if ((dataWidth%2)!=0) dataWidth-=1;
@@ -25107,6 +25114,23 @@ function ChartKLine()
25107
25114
  }
25108
25115
  }
25109
25116
 
25117
+ //是否是一字板
25118
+ this.IsOneLimitBar=function(kItem)
25119
+ {
25120
+ if (kItem.Open==kItem.Close && kItem.High==kItem.Low && kItem.Open==kItem.High) return true;
25121
+ return false;
25122
+ }
25123
+
25124
+ //一字板颜色 和昨收比较
25125
+ this.GetOneLimitBarColor=function(kItem)
25126
+ {
25127
+ if (!kItem || !IFrameSplitOperator.IsNumber(kItem.YClose)) return this.UnchagneColor;
25128
+
25129
+ if (kItem.Close>kItem.YClose) return this.UpColor;
25130
+ else if (kItem.Close<kItem.YClose) return this.DownColor;
25131
+ else return this.UnchagneColor;
25132
+ }
25133
+
25110
25134
  this.DrawKBar_Custom=function(data, dataWidth, barColor, drawType, option, x, y, left, right, yLow, yHigh, yOpen, yClose, border, isHScreen)
25111
25135
  {
25112
25136
  if (option.BGColor) //画背景色
@@ -29943,10 +29943,10 @@ var KLINE_DAY_DATA={
29943
29943
  [
29944
29944
  20230821,
29945
29945
  7.07,
29946
- 7.06,
29947
29946
  7.11,
29948
- 6.96,
29949
- 6.96,
29947
+ 7.11,
29948
+ 7.11,
29949
+ 7.11,
29950
29950
  42517681,
29951
29951
  298419531
29952
29952
  ],
@@ -510,6 +510,12 @@ HQData.RequestIndexVariantData=function(data,callback)
510
510
  }
511
511
  callback(hqchartData);
512
512
  }
513
+ else
514
+ {
515
+ var error= `变量'${varName}' 没有对接数据. [HQData.RequestIndexVariantData]`;
516
+ var hqchartData={ Error:error };
517
+ callback(hqchartData);
518
+ }
513
519
 
514
520
  }
515
521
 
@@ -532,6 +538,11 @@ HQData.CustomFunction_RequestData=function(data, callback)
532
538
  hqchartData.Data.push({ Date:kItem.Date, Time:kItem.Time, Value:kItem.Vol/3 });
533
539
  }
534
540
  }
541
+ else
542
+ {
543
+ var error= `函数'${funcName}' 没有对接数据. [HQData.CustomFunction_RequestData]`;
544
+ var hqchartData={ Error:error };
545
+ }
535
546
 
536
547
  callback(hqchartData);
537
548
  }
@@ -554,7 +565,9 @@ HQData.CustomVarData_RequestData=function(data, callback)
554
565
  }
555
566
  else
556
567
  {
557
- throw `${varName} 没有对接. [HQData.CustomVarData_RequestData]`
568
+ var error= `变量'${varName}' 没有对接数据. [HQData.CustomVarData_RequestData]`;
569
+ var hqchartData={ Error:error };
570
+ callback(hqchartData);
558
571
  }
559
572
 
560
573
 
@@ -708,7 +721,14 @@ HQData.Finance_RequestData=function(data,callback)
708
721
  var id=data.Request.Data.id;
709
722
  var hqchartData=null;
710
723
  if (id==7) // 流通股本(随时间可能有变化)
724
+ {
711
725
  hqchartData=TEST_FINANCE_7.data;
726
+ }
727
+ else
728
+ {
729
+ var error= `Finance(${id}) 没有对接数据. [HQData.Finance_RequestData]`;
730
+ hqchartData={ Error:error };
731
+ }
712
732
 
713
733
  if (hqchartData) callback(hqchartData);
714
734
  }
@@ -4496,6 +4496,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4496
4496
  if (option.KLine.ShowKLine == false) klineChart.IsShow = false;
4497
4497
  if (option.KLine.InfoPosition>0) klineChart.InfoPosition=option.KLine.InfoPosition;
4498
4498
  if (IFrameSplitOperator.IsBool(item.IsShowMaxMinPrice)) klineChart.IsShowMaxMinPrice=item.IsShowMaxMinPrice;
4499
+ if (IFrameSplitOperator.IsNumber(item.OneLimitBarType)) klineChart.OneLimitBarType=item.OneLimitBarType;
4499
4500
  if (item.PriceGap)
4500
4501
  {
4501
4502
  if (IFrameSplitOperator.IsBool(item.PriceGap.Enable)) klineChart.PriceGap.Enable=item.PriceGap.Enable;
@@ -27847,7 +27848,8 @@ function ChartKLine()
27847
27848
  this.CustomKLine; //自定义K线, key=date*1000000+time, key={ Color:, DrawType: }
27848
27849
  this.DrawKRange={ Start:null, End:null }; //当前屏K线的索引{ Start: , End:}
27849
27850
 
27850
- this.IsThinAKBar=true; //美国线 柱子是否是线段 (false=柱子)
27851
+ this.IsThinAKBar=true; //美国线 柱子是否是线段 (false=柱子)
27852
+ this.OneLimitBarType=0; //一字板颜色类型 4个价格全部都在同一个价位上 0=使用平盘颜色 1=跟昨收比较
27851
27853
 
27852
27854
  this.HighLowBarColor=g_JSChartResource.HighLowBarColor;
27853
27855
  this.HighLowTextConfig=
@@ -28945,6 +28947,11 @@ function ChartKLine()
28945
28947
 
28946
28948
  this.DrawKBar_Unchagne=function(data, dataWidth, unchagneColor, drawType, x, y, left, right, yLow, yHigh, yOpen, yClose, isHScreen) //平线
28947
28949
  {
28950
+ if (this.OneLimitBarType===1&& this.IsOneLimitBar(data)) //一字板
28951
+ {
28952
+ unchagneColor=this.GetOneLimitBarColor(data);
28953
+ }
28954
+
28948
28955
  if (dataWidth>=4)
28949
28956
  {
28950
28957
  if ((dataWidth%2)!=0) dataWidth-=1;
@@ -29032,6 +29039,23 @@ function ChartKLine()
29032
29039
  }
29033
29040
  }
29034
29041
 
29042
+ //是否是一字板
29043
+ this.IsOneLimitBar=function(kItem)
29044
+ {
29045
+ if (kItem.Open==kItem.Close && kItem.High==kItem.Low && kItem.Open==kItem.High) return true;
29046
+ return false;
29047
+ }
29048
+
29049
+ //一字板颜色 和昨收比较
29050
+ this.GetOneLimitBarColor=function(kItem)
29051
+ {
29052
+ if (!kItem || !IFrameSplitOperator.IsNumber(kItem.YClose)) return this.UnchagneColor;
29053
+
29054
+ if (kItem.Close>kItem.YClose) return this.UpColor;
29055
+ else if (kItem.Close<kItem.YClose) return this.DownColor;
29056
+ else return this.UnchagneColor;
29057
+ }
29058
+
29035
29059
  this.DrawKBar_Custom=function(data, dataWidth, barColor, drawType, option, x, y, left, right, yLow, yHigh, yOpen, yClose, border, isHScreen)
29036
29060
  {
29037
29061
  if (option.BGColor) //画背景色
@@ -112372,7 +112396,8 @@ function JSSymbolData(ast,option,jsExecute)
112372
112396
  };
112373
112397
  this.NetworkFilter(obj, function(recvData)
112374
112398
  {
112375
- self.RecvStockValue(recvData,jobItem,key,0);
112399
+ if (recvData.Error) self.AddStockValueError(key,recvData.Error);
112400
+ else self.RecvStockValue(recvData,jobItem,key,0);
112376
112401
  self.Execute.RunNextJob();
112377
112402
  });
112378
112403
 
@@ -137750,7 +137775,7 @@ function ScrollBarBGChart()
137750
137775
 
137751
137776
 
137752
137777
 
137753
- var HQCHART_VERSION="1.1.13693";
137778
+ var HQCHART_VERSION="1.1.13704";
137754
137779
 
137755
137780
  function PrintHQChartVersion()
137756
137781
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.13693";
8
+ var HQCHART_VERSION="1.1.13704";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -43229,10 +43229,10 @@ var KLINE_CAPITAL_DATA={
43229
43229
  [
43230
43230
  20230821,
43231
43231
  7.07,
43232
- 7.06,
43233
43232
  7.11,
43234
- 6.96,
43235
- 6.96,
43233
+ 7.11,
43234
+ 7.11,
43235
+ 7.11,
43236
43236
  42517681,
43237
43237
  298419531
43238
43238
  ],
@@ -49185,6 +49185,12 @@ HQData.RequestIndexVariantData=function(data,callback)
49185
49185
  }
49186
49186
  callback(hqchartData);
49187
49187
  }
49188
+ else
49189
+ {
49190
+ var error= `变量'${varName}' 没有对接数据. [HQData.RequestIndexVariantData]`;
49191
+ var hqchartData={ Error:error };
49192
+ callback(hqchartData);
49193
+ }
49188
49194
 
49189
49195
  }
49190
49196
 
@@ -49207,6 +49213,11 @@ HQData.CustomFunction_RequestData=function(data, callback)
49207
49213
  hqchartData.Data.push({ Date:kItem.Date, Time:kItem.Time, Value:kItem.Vol/3 });
49208
49214
  }
49209
49215
  }
49216
+ else
49217
+ {
49218
+ var error= `函数'${funcName}' 没有对接数据. [HQData.CustomFunction_RequestData]`;
49219
+ var hqchartData={ Error:error };
49220
+ }
49210
49221
 
49211
49222
  callback(hqchartData);
49212
49223
  }
@@ -49229,7 +49240,9 @@ HQData.CustomVarData_RequestData=function(data, callback)
49229
49240
  }
49230
49241
  else
49231
49242
  {
49232
- throw `${varName} 没有对接. [HQData.CustomVarData_RequestData]`
49243
+ var error= `变量'${varName}' 没有对接数据. [HQData.CustomVarData_RequestData]`;
49244
+ var hqchartData={ Error:error };
49245
+ callback(hqchartData);
49233
49246
  }
49234
49247
 
49235
49248
 
@@ -49383,7 +49396,14 @@ HQData.Finance_RequestData=function(data,callback)
49383
49396
  var id=data.Request.Data.id;
49384
49397
  var hqchartData=null;
49385
49398
  if (id==7) // 流通股本(随时间可能有变化)
49399
+ {
49386
49400
  hqchartData=TEST_FINANCE_7.data;
49401
+ }
49402
+ else
49403
+ {
49404
+ var error= `Finance(${id}) 没有对接数据. [HQData.Finance_RequestData]`;
49405
+ hqchartData={ Error:error };
49406
+ }
49387
49407
 
49388
49408
  if (hqchartData) callback(hqchartData);
49389
49409
  }
@@ -4540,6 +4540,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4540
4540
  if (option.KLine.ShowKLine == false) klineChart.IsShow = false;
4541
4541
  if (option.KLine.InfoPosition>0) klineChart.InfoPosition=option.KLine.InfoPosition;
4542
4542
  if (IFrameSplitOperator.IsBool(item.IsShowMaxMinPrice)) klineChart.IsShowMaxMinPrice=item.IsShowMaxMinPrice;
4543
+ if (IFrameSplitOperator.IsNumber(item.OneLimitBarType)) klineChart.OneLimitBarType=item.OneLimitBarType;
4543
4544
  if (item.PriceGap)
4544
4545
  {
4545
4546
  if (IFrameSplitOperator.IsBool(item.PriceGap.Enable)) klineChart.PriceGap.Enable=item.PriceGap.Enable;
@@ -27891,7 +27892,8 @@ function ChartKLine()
27891
27892
  this.CustomKLine; //自定义K线, key=date*1000000+time, key={ Color:, DrawType: }
27892
27893
  this.DrawKRange={ Start:null, End:null }; //当前屏K线的索引{ Start: , End:}
27893
27894
 
27894
- this.IsThinAKBar=true; //美国线 柱子是否是线段 (false=柱子)
27895
+ this.IsThinAKBar=true; //美国线 柱子是否是线段 (false=柱子)
27896
+ this.OneLimitBarType=0; //一字板颜色类型 4个价格全部都在同一个价位上 0=使用平盘颜色 1=跟昨收比较
27895
27897
 
27896
27898
  this.HighLowBarColor=g_JSChartResource.HighLowBarColor;
27897
27899
  this.HighLowTextConfig=
@@ -28989,6 +28991,11 @@ function ChartKLine()
28989
28991
 
28990
28992
  this.DrawKBar_Unchagne=function(data, dataWidth, unchagneColor, drawType, x, y, left, right, yLow, yHigh, yOpen, yClose, isHScreen) //平线
28991
28993
  {
28994
+ if (this.OneLimitBarType===1&& this.IsOneLimitBar(data)) //一字板
28995
+ {
28996
+ unchagneColor=this.GetOneLimitBarColor(data);
28997
+ }
28998
+
28992
28999
  if (dataWidth>=4)
28993
29000
  {
28994
29001
  if ((dataWidth%2)!=0) dataWidth-=1;
@@ -29076,6 +29083,23 @@ function ChartKLine()
29076
29083
  }
29077
29084
  }
29078
29085
 
29086
+ //是否是一字板
29087
+ this.IsOneLimitBar=function(kItem)
29088
+ {
29089
+ if (kItem.Open==kItem.Close && kItem.High==kItem.Low && kItem.Open==kItem.High) return true;
29090
+ return false;
29091
+ }
29092
+
29093
+ //一字板颜色 和昨收比较
29094
+ this.GetOneLimitBarColor=function(kItem)
29095
+ {
29096
+ if (!kItem || !IFrameSplitOperator.IsNumber(kItem.YClose)) return this.UnchagneColor;
29097
+
29098
+ if (kItem.Close>kItem.YClose) return this.UpColor;
29099
+ else if (kItem.Close<kItem.YClose) return this.DownColor;
29100
+ else return this.UnchagneColor;
29101
+ }
29102
+
29079
29103
  this.DrawKBar_Custom=function(data, dataWidth, barColor, drawType, option, x, y, left, right, yLow, yHigh, yOpen, yClose, border, isHScreen)
29080
29104
  {
29081
29105
  if (option.BGColor) //画背景色
@@ -112416,7 +112440,8 @@ function JSSymbolData(ast,option,jsExecute)
112416
112440
  };
112417
112441
  this.NetworkFilter(obj, function(recvData)
112418
112442
  {
112419
- self.RecvStockValue(recvData,jobItem,key,0);
112443
+ if (recvData.Error) self.AddStockValueError(key,recvData.Error);
112444
+ else self.RecvStockValue(recvData,jobItem,key,0);
112420
112445
  self.Execute.RunNextJob();
112421
112446
  });
112422
112447
 
@@ -142266,7 +142291,7 @@ function HQChartScriptWorker()
142266
142291
 
142267
142292
 
142268
142293
 
142269
- var HQCHART_VERSION="1.1.13693";
142294
+ var HQCHART_VERSION="1.1.13704";
142270
142295
 
142271
142296
  function PrintHQChartVersion()
142272
142297
  {