hqchart 1.1.14482 → 1.1.14487

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.
@@ -2182,11 +2182,11 @@ this.OnChangeCorssCursorStatus=function(data,obj){if(data.Type==1){if(!data.IsSh
2182
2182
  {this.HideTooltip();this.CloseTooltipDialog();}}};//手动更新指标 [ {ID:主图指标ID, OverlayID:叠加指标ID }]
2183
2183
  this.UpdateWindowIndexV2=function(aryIndex,option){if(!this.Frame||!this.Frame.SubFrame)return false;var kData=this.GetKData();if(!kData||!IFrameSplitOperator.IsNonEmptyArray(kData.Data))return false;if(!IFrameSplitOperator.IsNonEmptyArray(aryIndex))return false;var setMainIndex=new _set2.default();//主图指标
2184
2184
  var setOverlayIndex=new _set2.default();//附图指标
2185
- for(var i=0;aryIndex.length;++i){var item=aryIndex[i];if(!item)continue;if(item.ID)setMainIndex.set(item.ID);if(item.OverlayID)setOverlayIndex.set(item.OverlayID);}if(setMainIndex.size<=0&&setOverlayIndex.size<0)return false;//K线数据
2185
+ for(var i=0;i<aryIndex.length;++i){var item=aryIndex[i];if(!item)continue;if(item.ID)setMainIndex.add(item.ID);if(item.OverlayID)setOverlayIndex.add(item.OverlayID);}if(setMainIndex.size<=0&&setOverlayIndex.size<0)return false;//K线数据
2186
2186
  var bindData=new ChartData();if(kData)bindData.Data=kData.Data;if(this.IsKLineContainer())//K线
2187
2187
  {bindData.Period=this.Period;bindData.Right=this.Right;}//主图指标
2188
2188
  if(setMainIndex.size>0){for(var i=0;i<this.WindowIndex.length;++i){var item=this.WindowIndex[i];if(!item)continue;if(setMainIndex.has(item.ID)){this.BindIndexData(i,bindData);}}}//叠加指标
2189
- if(setOverlayIndex.size>0){for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i];for(var j=0;j<item.OverlayIndex.length;++j){var overlayItem=item.OverlayIndex[j];if(setOverlayIndex.has(overlayItem.Identify)){this.BindOverlayIndexData(overlayItem,i,hisData);}}}}var bDraw=true;if(option&&option.Draw===false)bDraw=false;if(bDraw){this.UpdataDataoffset();//更新数据偏移
2189
+ if(setOverlayIndex.size>0){for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i];for(var j=0;j<item.OverlayIndex.length;++j){var overlayItem=item.OverlayIndex[j];if(setOverlayIndex.has(overlayItem.Identify)){this.BindOverlayIndexData(overlayItem,i,bindData);}}}}var bDraw=true;if(option&&option.Draw===false)bDraw=false;if(bDraw){this.UpdataDataoffset();//更新数据偏移
2190
2190
  this.UpdateFrameMaxMin();//调整坐标最大 最小值
2191
2191
  this.Draw();}return true;};this.GetKData=function(){return null;};}function GetDevicePixelRatio(){if(typeof window=='undefined')return 1;return window.devicePixelRatio||1;}function GetFontHeight(context,font,word){if(!context)return null;if(font)context.font=font;var text='擎';if(IFrameSplitOperator.IsString(word))text=word;var fontInfo=context.measureText(text);var textHeight=fontInfo.fontBoundingBoxAscent+fontInfo.fontBoundingBoxDescent;if(!IFrameSplitOperator.IsNumber(textHeight))textHeight=fontInfo.width+2*GetDevicePixelRatio();return textHeight;}function IsPhoneWeb(){var userAgentInfo=navigator.userAgent;var Agents=new Array("Android","iPhone","SymbianOS","Windows Phone","iPad","iPod");for(var v=0;v<Agents.length;v++){if(userAgentInfo.indexOf(Agents[v])>0)return true;}return false;}function OnKeyDown(e)//键盘事件
2192
2192
  {if(this.JSChartContainer&&this.JSChartContainer.OnKeyDown)this.JSChartContainer.OnKeyDown(e);}function OnWheel(e)//上下滚动事件
@@ -4075,7 +4075,7 @@ var bSolidBar=this.IsSolidBar(bUp);//实心柱子
4075
4075
  if(bSolidBar){this.Canvas.fillStyle=barColor.Color;this.Canvas.fillRect(yBottom,ToFixedRect(left),height,ToFixedRect(dataWidth));}else{this.Canvas.strokeStyle=barColor.Color;this.Canvas.beginPath();this.Canvas.rect(ToFixedPoint(yBottom),ToFixedPoint(left),height,ToFixedRect(dataWidth));this.Canvas.stroke();}}}else//太细了直接话线
4076
4076
  {var preKItem=null;var barColor=null;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var value=this.Data.Data[i];var kItem=this.HistoryData.Data[i];if(value==null||kItem==null)continue;var y=this.ChartFrame.GetYFromData(value);if(isMinute){var x=this.ChartFrame.GetXFromIndex(j);}else{var left=xOffset;var right=xOffset+dataWidth;var x=left+(right-left)/2;}if(x>chartBottom)break;if(isMinute)barColor=this.GetMinuteBarColor(kItem,preKItem);//分时图颜色单独计算
4077
4077
  else barColor=this.GetBarColor(kItem,value);var bUp=barColor.IsUp;this.Canvas.strokeStyle=barColor.Color;//var x=this.ChartFrame.GetXFromIndex(j);
4078
- this.Canvas.beginPath();this.Canvas.moveTo(y,ToFixedPoint(x));this.Canvas.lineTo(yBottom,ToFixedPoint(x));this.Canvas.stroke();preKItem=kItem;}}};this.GetMaxMin=function(){var xPointCount=this.ChartFrame.XPointCount;var start=this.Data.DataOffset;if(this.ChartFrame.GlobalOption&&this.ChartFrame.GlobalOption.IsValueFullRange){start=0;xPointCount=this.Data.Data.length;}var range={Min:null,Max:null};for(var i=start,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var value=this.Data.Data[i];if(!IFrameSplitOperator.IsNumber(range.Max)||range.Max<value)range.Max=value;if(!IFrameSplitOperator.IsNumber(range.Min)||range.Min>value)range.Min=value;}if(range.Max>0&&range.Min>0)range.Min=0;else if(range.Max<0&&range.Min<0)range.Max=0;return range;};this.GetBarColor=function(kItem,value){if(this.BarColorType===1)//更具正负决定柱子颜色
4078
+ this.Canvas.beginPath();this.Canvas.moveTo(y,ToFixedPoint(x));this.Canvas.lineTo(yBottom,ToFixedPoint(x));this.Canvas.stroke();preKItem=kItem;}}};this.GetMaxMin=function(){var xPointCount=this.ChartFrame.XPointCount;var start=this.Data.DataOffset;if(this.ChartFrame.GlobalOption&&this.ChartFrame.GlobalOption.IsValueFullRange){start=0;xPointCount=this.Data.Data.length;}var range={Min:null,Max:null};for(var i=start,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var value=this.Data.Data[i];if(!IFrameSplitOperator.IsNumber(value))continue;if(!IFrameSplitOperator.IsNumber(range.Max)||range.Max<value)range.Max=value;if(!IFrameSplitOperator.IsNumber(range.Min)||range.Min>value)range.Min=value;}if(range.Max>0&&range.Min>0)range.Min=0;else if(range.Max<0&&range.Min<0)range.Max=0;return range;};this.GetBarColor=function(kItem,value){if(this.BarColorType===1)//更具正负决定柱子颜色
4079
4079
  {if(value>=0)return{Color:this.UpColor,IsUp:true};//颜色, 是否是上涨
4080
4080
  else return{Color:this.DownColor,IsUp:false};}//平盘K线,使用昨收盘比较
4081
4081
  if(kItem.Close>kItem.Open)return{Color:this.UpColor,IsUp:true};//颜色, 是否是上涨
@@ -6002,14 +6002,21 @@ this.SelectedChart;//选中的图形
6002
6002
  this.ArgumentsText;//参数信息
6003
6003
  this.MerginLeft=g_JSChartResource.IndexTitleMerginLeft;//标题输出左边间距
6004
6004
  this.Buttons=[];//按钮
6005
- this.UpDownArrowConfig={UpColor:g_JSChartResource.IndexTitle.UpDownArrow.UpColor,DownColor:g_JSChartResource.IndexTitle.UpDownArrow.DownColor,UnchangeColor:g_JSChartResource.IndexTitle.UpDownArrow.UnchangeColor};//动态标题
6005
+ this.UpDownArrowConfig={UpColor:g_JSChartResource.IndexTitle.UpDownArrow.UpColor,DownColor:g_JSChartResource.IndexTitle.UpDownArrow.DownColor,UnchangeColor:g_JSChartResource.IndexTitle.UpDownArrow.UnchangeColor};//K线标题颜色
6006
+ this.UpColor=g_JSChartResource.UpTextColor;this.DownColor=g_JSChartResource.DownTextColor;this.UnchangeColor=g_JSChartResource.UnchagneTextColor;this.VolColor=g_JSChartResource.Title.VolColor;this.AmountColor=g_JSChartResource.Title.AmountColor;this.DateTimeColor=g_JSChartResource.Title.DateTimeColor;this.NameColor=g_JSChartResource.Title.NameColor;this.PositionColor=g_JSChartResource.Title.PositionColor;//持仓
6007
+ //动态标题
6006
6008
  //动态标题
6007
6009
  this.DynamicTitle={OutName:null,OutValue:null};this.OverlayDynamicTitle=new _map2.default();//key , value={ OutName, OutValue }
6008
6010
  this.IsShowMainIndexTitle=true;//是否显示主图指标标题
6009
6011
  this.MainTitlePaint=null;//主标题
6010
- this.ReloadResource=function(){this.Font=g_JSChartResource.TitleFont;this.TitleColor=g_JSChartResource.DefaultTextColor;this.SelectedColor=g_JSChartResource.IndexTitleSelectedColor;this.OverlayIndexType.BGColor=g_JSChartResource.OverlayIndexTitleBGColor;this.BGColor=g_JSChartResource.IndexTitleBGColor;this.BGBorderColor=g_JSChartResource.IndexTitleBorderColor;this.BGBorderMoveOnColor=g_JSChartResource.IndexTitleBorderMoveOnColor;};this.SetDynamicTitleData=function(outName,args,data){if(!data.OutName)data.OutName=new _map2.default();else data.OutName.clear();if(!data.OutValue)data.OutValue=new _map2.default();else data.OutValue.clear();var mapArgs=new _map2.default();for(var i in args){var item=args[i];mapArgs.set('{'+item.Name+'}',item);}for(var i in outName){var item=outName[i];if(item.DynamicName){var aryFond=item.DynamicName.match(/{\w*}/i);if(!aryFond||aryFond.length<=0){data.OutName.set(item.Name,item.DynamicName);}else{var dyName=item.DynamicName;var bFind=true;for(var j=0;j<aryFond.length;++j){var findItem=aryFond[j];if(mapArgs.has(findItem)){var value=mapArgs.get(findItem).Value;dyName=dyName.replace(findItem,value.toString());}else{bFind=false;break;}}if(bFind)data.OutName.set(item.Name,dyName);}}if(item.DynamicValue){data.OutValue.set(item.Name,item.DynamicValue);}}};this.SetDynamicTitle=function(outName,args,overlayID){if(IFrameSplitOperator.IsString(overlayID)){var dynamicTitle=null;if(this.OverlayDynamicTitle.has(overlayID)){dynamicTitle=this.OverlayDynamicTitle.get(overlayID);}else{dynamicTitle={OutName:null,OutValue:null};this.OverlayDynamicTitle.set(overlayID,dynamicTitle);}this.SetDynamicTitleData(outName,args,dynamicTitle);}else{this.SetDynamicTitleData(outName,args,this.DynamicTitle);}};this.GetDynamicOutName=function(key,overlayID){if(IFrameSplitOperator.IsString(overlayID)){if(!this.OverlayDynamicTitle.has(overlayID))return null;var dynamicTitle=this.OverlayDynamicTitle.get(overlayID);var outName=dynamicTitle.OutName;}else{var outName=this.DynamicTitle.OutName;}if(!outName||outName.size<=0)return null;if(!outName.has(key))return null;return outName.get(key);};this.GetDynamicOutValue=function(key,value){var outValue=this.DynamicTitle.OutValue;if(!outValue||outValue.size<=0)return null;if(!outValue.has(key))return null;var strFormat=outValue.get(key);strFormat=strFormat.replace('{Value}',value);return strFormat;};this.IsClickTitle=function(x,y)//是否点击了指标标题
6012
+ this.ReloadResource=function(){this.Font=g_JSChartResource.TitleFont;this.TitleColor=g_JSChartResource.DefaultTextColor;this.SelectedColor=g_JSChartResource.IndexTitleSelectedColor;this.OverlayIndexType.BGColor=g_JSChartResource.OverlayIndexTitleBGColor;this.BGColor=g_JSChartResource.IndexTitleBGColor;this.BGBorderColor=g_JSChartResource.IndexTitleBorderColor;this.BGBorderMoveOnColor=g_JSChartResource.IndexTitleBorderMoveOnColor;this.UpColor=g_JSChartResource.UpTextColor;this.DownColor=g_JSChartResource.DownTextColor;this.UnchangeColor=g_JSChartResource.UnchagneTextColor;this.VolColor=g_JSChartResource.Title.VolColor;this.AmountColor=g_JSChartResource.Title.AmountColor;this.DateTimeColor=g_JSChartResource.Title.DateTimeColor;this.PositionColor=g_JSChartResource.Title.PositionColor;//持仓
6013
+ };this.SetDynamicTitleData=function(outName,args,data){if(!data.OutName)data.OutName=new _map2.default();else data.OutName.clear();if(!data.OutValue)data.OutValue=new _map2.default();else data.OutValue.clear();var mapArgs=new _map2.default();for(var i in args){var item=args[i];mapArgs.set('{'+item.Name+'}',item);}for(var i in outName){var item=outName[i];if(item.DynamicName){var aryFond=item.DynamicName.match(/{\w*}/i);if(!aryFond||aryFond.length<=0){data.OutName.set(item.Name,item.DynamicName);}else{var dyName=item.DynamicName;var bFind=true;for(var j=0;j<aryFond.length;++j){var findItem=aryFond[j];if(mapArgs.has(findItem)){var value=mapArgs.get(findItem).Value;dyName=dyName.replace(findItem,value.toString());}else{bFind=false;break;}}if(bFind)data.OutName.set(item.Name,dyName);}}if(item.DynamicValue){data.OutValue.set(item.Name,item.DynamicValue);}}};this.SetDynamicTitle=function(outName,args,overlayID){if(IFrameSplitOperator.IsString(overlayID)){var dynamicTitle=null;if(this.OverlayDynamicTitle.has(overlayID)){dynamicTitle=this.OverlayDynamicTitle.get(overlayID);}else{dynamicTitle={OutName:null,OutValue:null};this.OverlayDynamicTitle.set(overlayID,dynamicTitle);}this.SetDynamicTitleData(outName,args,dynamicTitle);}else{this.SetDynamicTitleData(outName,args,this.DynamicTitle);}};this.GetDynamicOutName=function(key,overlayID){if(IFrameSplitOperator.IsString(overlayID)){if(!this.OverlayDynamicTitle.has(overlayID))return null;var dynamicTitle=this.OverlayDynamicTitle.get(overlayID);var outName=dynamicTitle.OutName;}else{var outName=this.DynamicTitle.OutName;}if(!outName||outName.size<=0)return null;if(!outName.has(key))return null;return outName.get(key);};this.GetDynamicOutValue=function(key,value){var outValue=this.DynamicTitle.OutValue;if(!outValue||outValue.size<=0)return null;if(!outValue.has(key))return null;var strFormat=outValue.get(key);strFormat=strFormat.replace('{Value}',value);return strFormat;};this.IsClickTitle=function(x,y)//是否点击了指标标题
6011
6014
  {if(!this.TitleRect)return false;if(x>this.TitleRect.Left&&x<this.TitleRect.Left+this.TitleRect.Width&&y>this.TitleRect.Top&&y<this.TitleRect.Top+this.TitleRect.Height){return true;}return false;};this.FormatValue=function(value,item){if(item.StringFormat==STRING_FORMAT_TYPE.DEFAULT)return IFrameSplitOperator.FormatValueString(value,item.FloatPrecision,this.LanguageID);else if(item.StringFormat==STRING_FORMAT_TYPE.THOUSANDS)return IFrameSplitOperator.FormatValueThousandsString(value,item.FloatPrecision);else if(item.StringFormat==STRING_FORMAT_TYPE.ORIGINAL)return value.toFixed(item.FloatPrecision).toString();else if(item.StringFormat==STRING_FORMAT_TYPE.INTEGER)return IFrameSplitOperator.FromatIntegerString(value,item.FloatPrecision,this.LanguageID);};this.FormatMultiReport=function(data,format){var text="";for(var i in data){var item=data[i];var quarter=item.Quarter;var year=item.Year;var _value2=item.Value;if(text.length>0)text+=',';text+=year.toString();switch(quarter){case 1:text+='一季报 ';break;case 2:text+='半年报 ';break;case 3:text+='三季报 ';break;case 4:text+='年报 ';break;}text+=this.FormatValue(_value2,format);}return text;};this.FromatMultiDataLine=function(value,dataInfo){var text="";if(Array.isArray(value)){for(var i=0;i<value.length;++i){var item=value[i];if(item.Type==0)continue;if(!IFrameSplitOperator.IsNumber(item.Value))continue;var strValue=this.FormatValue(item.Value,dataInfo);if(text.length>0)text+=',';text+=strValue;}}else{if(value.Type!=0&&IFrameSplitOperator.IsNumber(value.Value)){text=this.FormatValue(value.Value,dataInfo);}}if(text.length<=0)return null;return text;};//多变量输出
6012
- this.FromatStackedBarTitle=function(aryBar,dataInfo){if(!IFrameSplitOperator.IsNonEmptyArray(aryBar))return null;if(!IFrameSplitOperator.IsNonEmptyArray(dataInfo.Color))return null;var aryText=[];for(var i=0;i<aryBar.length;++i){var value=aryBar[i];if(!IFrameSplitOperator.IsNumber(value))continue;var item={Text:value.toFixed(2)};if(dataInfo.Name&&dataInfo.Name[i])item.Name=dataInfo.Name[i];item.Color=dataInfo.Color[i];aryText.push(item);}if(aryText.length<=0)return null;return aryText;};this.ForamtMultiLineTitle=function(dataIndex,dataInfo){if(!IFrameSplitOperator.IsNonEmptyArray(dataInfo.Lines))return null;var aryText=[];for(var i=0;i<dataInfo.Lines.length;++i){var line=dataInfo.Lines[i];for(var j=0;j<line.Point.length;++j){var item=line.Point[j];if(item.Index==dataIndex){var item={Text:item.Value.toFixed(2)};if(aryText.length==0)item.Name=dataInfo.Name;item.Color=line.Color;aryText.push(item);break;}}}if(!IFrameSplitOperator.IsNonEmptyArray(aryText))return null;return aryText;};this.ForamtMultiPointTitle=function(dataIndex,dataInfo){if(!dataInfo.GetItemCallback)return null;if(!dataInfo.Data||!IFrameSplitOperator.IsNonEmptyArray(dataInfo.Data.Data))return null;var kItem=dataInfo.Data.Data[dataIndex];if(!kItem)return null;var group=dataInfo.GetItemCallback(kItem);if(!group||!IFrameSplitOperator.IsNonEmptyArray(group.Data))return null;var aryText=[];for(var i=0;i<group.Data.length;++i){var item=group.Data[i];var config=item.ColorConfig;var color=null;if(config.BGColor)color=config.BGColor;else if(config.Color)color=config.Color;if(config.Name)aryText.push({Text:config.Name+':',Color:color});var value=item.Data.Value;if(IFrameSplitOperator.IsString(item.Data.Value))value=ChartData.GetKValue(kItem,item.Data.Value);aryText.push({Text:this.FormatValue(value,dataInfo),Color:color});}if(!IFrameSplitOperator.IsNonEmptyArray(aryText))return null;return aryText;};this.ForamtMultiBarTitle=function(dataIndex,dataInfo){if(!dataInfo.GetItemCallback)return null;if(!dataInfo.Data||!IFrameSplitOperator.IsNonEmptyArray(dataInfo.Data.Data))return null;var kItem=dataInfo.Data.Data[dataIndex];if(!kItem)return null;var group=dataInfo.GetItemCallback(kItem);if(!group||!IFrameSplitOperator.IsNonEmptyArray(group.Data))return null;var aryText=[];for(var i=0;i<group.Data.length;++i){var item=group.Data[i];var config=item.ColorConfig;var color=null;if(config.BGColor)color=config.BGColor;else if(config.Color)color=config.Color;if(config.Name)aryText.push({Text:config.Name+':',Color:color});var value=item.Data.Value;if(IFrameSplitOperator.IsString(item.Data.Value))value=ChartData.GetKValue(kItem,item.Data.Value);var value2=item.Data.Value2;if(IFrameSplitOperator.IsString(item.Data.Value2))value2=ChartData.GetKValue(kItem,item.Data.Value2);aryText.push({Text:'['+this.FormatValue(value,dataInfo)+', '+this.FormatValue(value2,dataInfo)+'] ',Color:color});}if(!IFrameSplitOperator.IsNonEmptyArray(aryText))return null;return aryText;};this.FormatVPVRTitle=function(pt,dataInfo){var chart=dataInfo.Chart;var aryText=[];if(chart.VolType==0){var item={Text:" Up/Down ",Color:this.TitleColor};aryText.push(item);}else{var item={Text:" Total ",Color:this.TitleColor};aryText.push(item);}if(!IFrameSplitOperator.IsNumber(pt.Y))return aryText;var top=this.Frame.ChartBorder.GetTopEx();var bottom=this.Frame.ChartBorder.GetBottomEx();if(pt.Y<top||pt.Y>bottom)return aryText;var yPrice=this.Frame.GetYData(pt.Y);var find=null;for(var i=0;i<dataInfo.Data.Data.length;++i){var item=dataInfo.Data.Data[i];if(yPrice>=item.Price-dataInfo.Data.PriceOffset/2&&yPrice<item.Price+dataInfo.Data.PriceOffset/2){find=item;break;}}if(!find)return null;if(chart.VolType==0){var total=0;for(var i=0;i<find.Vol.length;++i){var volItem=find.Vol[i];if(!IFrameSplitOperator.IsNumber(volItem.Value))continue;var item={Text:IFrameSplitOperator.FormatVolString(volItem.Value,this.LanguageID)};total+=volItem.Value;if(IFrameSplitOperator.IsNumber(volItem.ColorID))item.Color=chart.BarColor[volItem.ColorID];else if(volItem.Color)item.Color=volItem.Color;aryText.push(item);}var item={Text:IFrameSplitOperator.FormatVolString(total,this.LanguageID),Color:this.TitleColor};aryText.push(item);}else{if(find.TotalVol&&IFrameSplitOperator.IsNumber(find.TotalVol.Value)){var item={Text:IFrameSplitOperator.FormatVolString(find.TotalVol.Value,this.LanguageID)};if(IFrameSplitOperator.IsNumber(find.TotalVol.ColorID))item.Color=chart.BarColor[find.TotalVol.ColorID];else if(find.TotalVol.Color)item.Color=find.TotalVol.Color;aryText.push(item);}}return aryText;};this.IsShowLastData=function(){var isShowLastData=false;if(this.DrawStatus&&this.DrawStatus.IsTitleShowLatestData){var status=this.DrawStatus;if(!IFrameSplitOperator.IsNumber(status.FrameID)||status.FrameID<0)isShowLastData=true;else if(status.CorssCursorTouchEnd&&status.IsOnTouch==false)isShowLastData=true;}else if(this.GlobalOption&&this.GlobalOption.IsDisplayLatest){isShowLastData=true;}//十字光标锁定状态 禁用显示最后一个数据
6015
+ this.FromatStackedBarTitle=function(aryBar,dataInfo){if(!IFrameSplitOperator.IsNonEmptyArray(aryBar))return null;if(!IFrameSplitOperator.IsNonEmptyArray(dataInfo.Color))return null;var aryText=[];for(var i=0;i<aryBar.length;++i){var value=aryBar[i];if(!IFrameSplitOperator.IsNumber(value))continue;var item={Text:value.toFixed(2)};if(dataInfo.Name&&dataInfo.Name[i])item.Name=dataInfo.Name[i];item.Color=dataInfo.Color[i];aryText.push(item);}if(aryText.length<=0)return null;return aryText;};this.FromatKLineTitle=function(item,dataInfo){var defaultfloatPrecision=GetfloatPrecision(dataInfo.Symbol);//价格小数位数
6016
+ var upperSymbol="";if(dataInfo.Symbol)upperSymbol=dataInfo.Symbol.toUpperCase();var pixelRatio=GetDevicePixelRatio();var leftSpace=3*pixelRatio;var aryText=[];if(IFrameSplitOperator.IsNumber(item.Date)){var text=IFrameSplitOperator.FormatDateString(item.Date);aryText.push({Text:text,Color:this.DateTimeColor});}if(IFrameSplitOperator.IsNumber(item.Open)){var color=this.GetColor(item.Open,item.YClose);var text=g_JSChartLocalization.GetText('KTitle-Open',this.LanguageID)+item.Open.toFixed(defaultfloatPrecision);aryText.push({Text:text,Color:color,LeftSpace:leftSpace});}if(IFrameSplitOperator.IsNumber(item.High)){var color=this.GetColor(item.High,item.YClose);var text=g_JSChartLocalization.GetText('KTitle-High',this.LanguageID)+item.High.toFixed(defaultfloatPrecision);aryText.push({Text:text,Color:color,LeftSpace:leftSpace});}if(IFrameSplitOperator.IsNumber(item.Low)){var color=this.GetColor(item.Low,item.YClose);var text=g_JSChartLocalization.GetText('KTitle-Low',this.LanguageID)+item.Low.toFixed(defaultfloatPrecision);aryText.push({Text:text,Color:color,LeftSpace:leftSpace});}if(IFrameSplitOperator.IsNumber(item.Close)){var color=this.GetColor(item.Close,item.YClose);var text=g_JSChartLocalization.GetText('KTitle-Close',this.LanguageID)+item.Close.toFixed(defaultfloatPrecision);aryText.push({Text:text,Color:color,LeftSpace:leftSpace});}//涨幅
6017
+ if(item.YFClose>0&&MARKET_SUFFIX_NAME.IsChinaFutures(upperSymbol)){var value=(item.Close-item.YFClose)/item.YFClose*100;var color=this.GetColor(value,0);var text=g_JSChartLocalization.GetText('KTitle-Increase',this.LanguageID)+value.toFixed(2)+'%';aryText.push({Text:text,Color:color,LeftSpace:leftSpace});}else if(item.YClose>0){var value=(item.Close-item.YClose)/item.YClose*100;var color=this.GetColor(value,0);var text=g_JSChartLocalization.GetText('KTitle-Increase',this.LanguageID)+value.toFixed(2)+'%';aryText.push({Text:text,Color:color,LeftSpace:leftSpace});}if(IFrameSplitOperator.IsNumber(item.Vol))//成交量
6018
+ {var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);var vol=item.Vol/unit;var text=g_JSChartLocalization.GetText('KTitle-Vol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);aryText.push({Text:text,Color:this.VolColor,LeftSpace:leftSpace});}if(IFrameSplitOperator.IsNumber(item.Amount))//成交金额
6019
+ {var text=g_JSChartLocalization.GetText('KTitle-Amount',this.LanguageID)+IFrameSplitOperator.FormatValueString(item.Amount,2,this.LanguageID);aryText.push({Text:text,Color:this.AmountColor,LeftSpace:leftSpace});}return aryText;};this.GetColor=function(price,yClose){if(!IFrameSplitOperator.IsNumber(yClose))return this.UnchangeColor;if(price>yClose)return this.UpColor;else if(price<yClose)return this.DownColor;else return this.UnchangeColor;};this.ForamtMultiLineTitle=function(dataIndex,dataInfo){if(!IFrameSplitOperator.IsNonEmptyArray(dataInfo.Lines))return null;var aryText=[];for(var i=0;i<dataInfo.Lines.length;++i){var line=dataInfo.Lines[i];for(var j=0;j<line.Point.length;++j){var item=line.Point[j];if(item.Index==dataIndex){var item={Text:item.Value.toFixed(2)};if(aryText.length==0)item.Name=dataInfo.Name;item.Color=line.Color;aryText.push(item);break;}}}if(!IFrameSplitOperator.IsNonEmptyArray(aryText))return null;return aryText;};this.ForamtMultiPointTitle=function(dataIndex,dataInfo){if(!dataInfo.GetItemCallback)return null;if(!dataInfo.Data||!IFrameSplitOperator.IsNonEmptyArray(dataInfo.Data.Data))return null;var kItem=dataInfo.Data.Data[dataIndex];if(!kItem)return null;var group=dataInfo.GetItemCallback(kItem);if(!group||!IFrameSplitOperator.IsNonEmptyArray(group.Data))return null;var aryText=[];for(var i=0;i<group.Data.length;++i){var item=group.Data[i];var config=item.ColorConfig;var color=null;if(config.BGColor)color=config.BGColor;else if(config.Color)color=config.Color;if(config.Name)aryText.push({Text:config.Name+':',Color:color});var value=item.Data.Value;if(IFrameSplitOperator.IsString(item.Data.Value))value=ChartData.GetKValue(kItem,item.Data.Value);aryText.push({Text:this.FormatValue(value,dataInfo),Color:color});}if(!IFrameSplitOperator.IsNonEmptyArray(aryText))return null;return aryText;};this.ForamtMultiBarTitle=function(dataIndex,dataInfo){if(!dataInfo.GetItemCallback)return null;if(!dataInfo.Data||!IFrameSplitOperator.IsNonEmptyArray(dataInfo.Data.Data))return null;var kItem=dataInfo.Data.Data[dataIndex];if(!kItem)return null;var group=dataInfo.GetItemCallback(kItem);if(!group||!IFrameSplitOperator.IsNonEmptyArray(group.Data))return null;var aryText=[];for(var i=0;i<group.Data.length;++i){var item=group.Data[i];var config=item.ColorConfig;var color=null;if(config.BGColor)color=config.BGColor;else if(config.Color)color=config.Color;if(config.Name)aryText.push({Text:config.Name+':',Color:color});var value=item.Data.Value;if(IFrameSplitOperator.IsString(item.Data.Value))value=ChartData.GetKValue(kItem,item.Data.Value);var value2=item.Data.Value2;if(IFrameSplitOperator.IsString(item.Data.Value2))value2=ChartData.GetKValue(kItem,item.Data.Value2);aryText.push({Text:'['+this.FormatValue(value,dataInfo)+', '+this.FormatValue(value2,dataInfo)+'] ',Color:color});}if(!IFrameSplitOperator.IsNonEmptyArray(aryText))return null;return aryText;};this.FormatVPVRTitle=function(pt,dataInfo){var chart=dataInfo.Chart;var aryText=[];if(chart.VolType==0){var item={Text:" Up/Down ",Color:this.TitleColor};aryText.push(item);}else{var item={Text:" Total ",Color:this.TitleColor};aryText.push(item);}if(!IFrameSplitOperator.IsNumber(pt.Y))return aryText;var top=this.Frame.ChartBorder.GetTopEx();var bottom=this.Frame.ChartBorder.GetBottomEx();if(pt.Y<top||pt.Y>bottom)return aryText;var yPrice=this.Frame.GetYData(pt.Y);var find=null;for(var i=0;i<dataInfo.Data.Data.length;++i){var item=dataInfo.Data.Data[i];if(yPrice>=item.Price-dataInfo.Data.PriceOffset/2&&yPrice<item.Price+dataInfo.Data.PriceOffset/2){find=item;break;}}if(!find)return null;if(chart.VolType==0){var total=0;for(var i=0;i<find.Vol.length;++i){var volItem=find.Vol[i];if(!IFrameSplitOperator.IsNumber(volItem.Value))continue;var item={Text:IFrameSplitOperator.FormatVolString(volItem.Value,this.LanguageID)};total+=volItem.Value;if(IFrameSplitOperator.IsNumber(volItem.ColorID))item.Color=chart.BarColor[volItem.ColorID];else if(volItem.Color)item.Color=volItem.Color;aryText.push(item);}var item={Text:IFrameSplitOperator.FormatVolString(total,this.LanguageID),Color:this.TitleColor};aryText.push(item);}else{if(find.TotalVol&&IFrameSplitOperator.IsNumber(find.TotalVol.Value)){var item={Text:IFrameSplitOperator.FormatVolString(find.TotalVol.Value,this.LanguageID)};if(IFrameSplitOperator.IsNumber(find.TotalVol.ColorID))item.Color=chart.BarColor[find.TotalVol.ColorID];else if(find.TotalVol.Color)item.Color=find.TotalVol.Color;aryText.push(item);}}return aryText;};this.IsShowLastData=function(){var isShowLastData=false;if(this.DrawStatus&&this.DrawStatus.IsTitleShowLatestData){var status=this.DrawStatus;if(!IFrameSplitOperator.IsNumber(status.FrameID)||status.FrameID<0)isShowLastData=true;else if(status.CorssCursorTouchEnd&&status.IsOnTouch==false)isShowLastData=true;}else if(this.GlobalOption&&this.GlobalOption.IsDisplayLatest){isShowLastData=true;}//十字光标锁定状态 禁用显示最后一个数据
6013
6020
  if(this.GlobalOption&&this.GlobalOption.LockCorssCursor&&this.GlobalOption.LockCorssCursor.X.Enable)isShowLastData=false;return isShowLastData;};this.OnDrawTitleEvent=function(){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_INDEXTITLE_DRAW);if(!event)return;var data={Index:null,Data:this.Data,Title:this.Title,Script:this.Script,FrameID:this.Frame.Identify,OverlayIndex:this.OverlayIndex,IsShowTitleOnly:false};if(this.ArgumentsText)data.ArgumentsText=this.ArgumentsText;if(this.Frame&&this.Frame.ChartBorder)data.IsShowTitleOnly=this.Frame.ChartBorder.IsShowTitleOnly;if(IFrameSplitOperator.IsNumber(this.CursorIndex)){var index=Math.abs(this.CursorIndex);index=parseInt(index.toFixed(0));data.Index=index;//当前屏数据索引
6014
6021
  }var pixelTatio=GetDevicePixelRatio();var border=this.Frame.GetBorder();data.Left=border.LeftEx/pixelTatio;data.Top=border.Top/pixelTatio;data.Right=border.RightEx/pixelTatio;event.Callback(event,data,this);};this.IsSelectedChart=function(id){if(!id)return false;if(!this.SelectedChart)return false;if(!this.SelectedChart.Selected)return false;return this.SelectedChart.Selected.Identify==id;};this.Draw=function(moveonPoint,mouseStatus){this.Buttons=[];if(this.Frame.IsMinSize)return;this.IsKLineFrame=this.Frame.IsKLineFrame(false);this.IsMinuteFrame=this.Frame.IsMinuteFrame(false);this.IsDrawTitleBG=this.Frame.IsDrawTitleBG;this.IsShowNameArrow=this.Frame.IsShowNameArrow;this.IsShowUpDownArrow=this.Frame.IsShowTitleArrow;this.TitleArrowType=this.Frame.TitleArrowType;this.IsShowIndexName=this.Frame.IsShowIndexName;this.IsShowOverlayIndexName=this.Frame.IsShowOverlayIndexName;this.OverlayIndexType.Position=this.Frame.OverlayIndexType.Position;this.OverlayIndexType.LineSpace=this.Frame.OverlayIndexType.LineSpace;this.ParamSpace=this.Frame.IndexParamSpace;this.TitleSpace=this.Frame.IndexTitleSpace;this.TitleRect=null;this.GlobalOption=this.Frame.GlobalOption;this.OnDrawTitleEvent();if(this.Frame.IsShowIndexTitle==false)return;if(g_JSChartResource.IsDOMFrameTitle===true)return;if(!this.Data)return;if(this.Frame.ChartBorder.TitleHeight<5)return;if(this.CursorIndex==null&&!(this.GlobalOption&&this.GlobalOption.IsDisplayLatest))return;if(this.Frame.IsHScreen===true){this.Canvas.save();this.HScreenDraw();this.Canvas.restore();/* 测试用
6015
6022
  if (this.TitleRect)
@@ -6030,7 +6037,7 @@ var value=null;var preVaildItem=null;if(item.DataType=="StraightLine")//直线
6030
6037
  {value=item.Data.Data[0];valueText=this.FormatValue(value,item);}else if(item.ChartClassName=="ChartVolProfileVisibleRange"){aryText=this.FormatVPVRTitle(this.LastPoint,item);if(!aryText)return null;return{Text:null,ArrayText:aryText};}else{if(isShowLastData){var dataIndex=item.Data.Data.length-1;//显示最后一个数据
6031
6038
  }else{var index=Math.abs(this.CursorIndex);index=parseInt(index.toFixed(0));if(this.IsKLineFrame)index=this.CursorIndex;var dataIndex=item.Data.DataOffset+index;if(dataIndex>=item.Data.Data.length)dataIndex=item.Data.Data.length-1;if(dataIndex<0)return null;}if(item.DataType=="ChartMultiLine")//多线段数据
6032
6039
  {aryText=this.ForamtMultiLineTitle(dataIndex,item);if(!aryText)return null;return{Text:null,ArrayText:aryText};}else if(item.DataType=="ChartMultiPoint"){aryText=this.ForamtMultiPointTitle(dataIndex,item);if(!aryText)return null;return{Text:null,ArrayText:aryText};}else if(item.DataType=="ChartMultiBar"){aryText=this.ForamtMultiBarTitle(dataIndex,item);if(!aryText)return null;return{Text:null,ArrayText:aryText};}value=item.Data.Data[dataIndex];if(value==null&&item.ChartClassName=="ChartStepLine")//当前值无效,上一个值延续
6033
- {preVaildItem=this.GetPreVaildItem(item.Data.Data,dataIndex);if(!preVaildItem)return null;preText=this.FormatValue(preVaildItem.Item,item);if(item.Name){var dyValue=this.GetDynamicOutValue(item.Name,preText);if(dyValue)preText=dyValue;}valueText='--('+preText+')';return{Text:valueText,ArrayText:aryText};}if(value==null)return null;if(item.DataType=="HistoryData-Vol"){value=value.Vol;valueText=this.FormatValue(value,item);}else if(item.DataType=="MultiReport"){valueText=this.FormatMultiReport(value,item);}else if(item.DataType=="MULTI_POINT_LINE"){valueText=this.FromatMultiDataLine(value,item);if(!valueText)return null;}else if(item.DataType=="ChartStackedBar"){aryText=this.FromatStackedBarTitle(value,item);if(!aryText)return null;return{Text:null,ArrayText:aryText};}else if(g_ScriptIndexChartFactory.Has(item.DataType))//外部挂接
6040
+ {preVaildItem=this.GetPreVaildItem(item.Data.Data,dataIndex);if(!preVaildItem)return null;preText=this.FormatValue(preVaildItem.Item,item);if(item.Name){var dyValue=this.GetDynamicOutValue(item.Name,preText);if(dyValue)preText=dyValue;}valueText='--('+preText+')';return{Text:valueText,ArrayText:aryText};}if(value==null)return null;if(item.DataType=="HistoryData-Vol"){value=value.Vol;valueText=this.FormatValue(value,item);}else if(item.DataType=="MultiReport"){valueText=this.FormatMultiReport(value,item);}else if(item.DataType=="MULTI_POINT_LINE"){valueText=this.FromatMultiDataLine(value,item);if(!valueText)return null;}else if(item.DataType=="ChartStackedBar"){aryText=this.FromatStackedBarTitle(value,item);if(!aryText)return null;return{Text:null,ArrayText:aryText};}else if(item.DataType=="DRAWKLINE"){aryText=this.FromatKLineTitle(value,item);if(!aryText)return null;return{Text:null,ArrayText:aryText};}else if(g_ScriptIndexChartFactory.Has(item.DataType))//外部挂接
6034
6041
  {var find=g_ScriptIndexChartFactory.Get(item.DataType);if(find&&find.FormatTitleCallback)return find.FormatTitleCallback(value,item,dataIndex);}else{if(this.GetEventCallback){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_FORMAT_INDEX_OUT_TEXT);if(event){var data={Item:item,Index:titleIndex,Data:this.Data,FrameID:this.Frame.Identify,DataIndex:dataIndex,Value:value,Out:null};event.Callback(event,data,this);if(data.Out)return data.Out;}}if(item.DataType=="ChartBand")//默认不输出
6035
6042
  return null;var arrowSuper=null;//独立颜色
6036
6043
  if(this.IsShowUpDownArrow){var preValue=null;if(dataIndex-1>=0)preValue=item.Data.Data[dataIndex-1];if(IFrameSplitOperator.IsNumber(preValue)){if(preValue>value)arrowSuper={Text:'↓',TextColor:this.UpDownArrowConfig.DownColor};else if(preValue<value)arrowSuper={Text:'↑',TextColor:this.UpDownArrowConfig.UpColor};else arrowSuper={Text:'→',TextColor:this.UpDownArrowConfig.UnchangeColor};if(this.TitleArrowType==1)arrowSuper.TextColor=item.Color;}}valueText=this.FormatValue(value,item);if(item.Name){var dyValue=this.GetDynamicOutValue(item.Name,valueText);if(dyValue)valueText=dyValue;}if(arrowSuper){var outItem={Name:null,Text:valueText,Color:item.Color,TextEx:[arrowSuper]};if(item.Name){var text=item.Name;var dyTitle=this.GetDynamicOutName(item.Name);//动态标题
@@ -6048,7 +6055,7 @@ for(var i=0;i<aryText.length;++i){var item=aryText[i];if(!item.Text)continue;var
6048
6055
  this.GetPreVaildItem=function(data,start){for(var i=start;i>=0;--i){var item=data[i];if(item)return{Item:item,Index:i};}return null;};this.DrawSelectedLine=function(left,bottom,textWidth){this.Canvas.save();var fontHeight=this.GetFontHeight();this.Canvas.strokeStyle=this.SelectedColor;var lineWidth=4;var lineBottom=ToFixedPoint2(lineWidth,bottom+fontHeight/2);this.Canvas.lineWidth=lineWidth;this.Canvas.beginPath();this.Canvas.moveTo(left,lineBottom);this.Canvas.lineTo(left+textWidth,lineBottom);this.Canvas.stroke();this.Canvas.restore();};this.DrawOverlayIndexSingleLine=function(moveonPoint,mouseStatus)//叠加指标1个指标一行
6049
6056
  {var pixelRatio=GetDevicePixelRatio();var border=this.Frame.GetBorder();if(this.Frame.IsHScreen===true){var left=1;var top=2*pixelRatio;var right=this.Frame.ChartBorder.GetHeight();var bottom=this.Frame.ChartBorder.GetWidthEx();}else{var top=border.TopTitle+2*pixelRatio;if(!this.IsShowMainIndexTitle)top=this.Frame.ChartBorder.GetTop()+2*pixelRatio;var left=this.Frame.ChartBorder.GetLeft()+this.MerginLeft;var right=border.Right;var bottom=border.Bottom;}var lineSpace=this.OverlayIndexType.LineSpace*pixelRatio;var x=left,y=top;var fontHeight=GetFontHeight(this.Canvas,this.Font,"擎");y=top+fontHeight/2;var _iteratorNormalCompletion11=true;var _didIteratorError11=false;var _iteratorError11=undefined;try{for(var _iterator11=(0,_getIterator3.default)(this.OverlayIndex),_step11;!(_iteratorNormalCompletion11=(_step11=_iterator11.next()).done);_iteratorNormalCompletion11=true){item=_step11.value;var overlayItem=item[1];var overlayID=item[0];var toolbarInfo={Width:0,YCenter:y,ID:overlayID};this.DrawOverlayToolbar(overlayItem,toolbarInfo,moveonPoint,mouseStatus);if(!overlayItem.IsShowIndexTitle)continue;if(!overlayItem.Frame.IsShowIndexTitle)continue;x=left+toolbarInfo.Width;this.Canvas.font=this.Font;this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";if(overlayItem.Title&&this.IsShowOverlayIndexName){var textWidth=this.Canvas.measureText(overlayItem.Title).width+2;if(x+textWidth<right){if(this.OverlayIndexType.BGColor){this.Canvas.fillStyle=this.OverlayIndexType.BGColor;var rtBG={Left:x,Top:y-fontHeight/2,Width:textWidth,Height:fontHeight+lineSpace};//保存下标题的坐标
6050
6057
  this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}if(this.IsSelectedChart(overlayID))this.DrawSelectedLine(x,y,textWidth,overlayItem.Title);this.Canvas.fillStyle=this.TitleColor;this.Canvas.fillText(overlayItem.Title,x,y,textWidth);}x+=textWidth;}for(var i=0;i<overlayItem.Data.length;++i){var item=overlayItem.Data[i];if(!item||!item.Data||!item.Data.Data||!item.Name)continue;if(item.IsVisible===false)continue;if(item.Data.Data.length<=0)continue;var value=null;var valueText=null;var aryText=null;if(item.DataType=="StraightLine")//直线只有1个数据
6051
- {value=item.Data.Data[0];valueText=this.FormatValue(value,item);}else{var index=Math.abs(this.CursorIndex-0.5);index=parseInt(index.toFixed(0));if(this.IsKLineFrame)index=this.CursorIndex;var dataIndex=item.Data.DataOffset+index;if(dataIndex>=item.Data.Data.length)dataIndex=item.Data.Data.length-1;if(dataIndex<0)continue;value=item.Data.Data[dataIndex];if(value==null)continue;if(item.DataType=="HistoryData-Vol"){value=value.Vol;valueText=this.FormatValue(value,item);}else if(item.DataType=="MultiReport"){valueText=this.FormatMultiReport(value,item);}else if(item.DataType=="ChartStackedBar"){aryText=this.FromatStackedBarTitle(value,item);if(!aryText)continue;}else if(item.DataType=="ChartMultiPoint"){aryText=this.ForamtMultiPointTitle(dataIndex,item);if(!aryText)continue;}else if(item.DataType=="ChartMultiBar"){aryText=this.ForamtMultiBarTitle(dataIndex,item);if(!aryText)continue;}else{valueText=this.FormatValue(value,item);}}if(aryText){var text;for(var k=0;k<aryText.length;++k){var titleItem=aryText[k];if(titleItem.Name)text=titleItem.Name+":"+titleItem.Text;else text=titleItem.Text;var textWidth=this.Canvas.measureText(text).width+2;//后空2个像素
6058
+ {value=item.Data.Data[0];valueText=this.FormatValue(value,item);}else{var index=Math.abs(this.CursorIndex-0.5);index=parseInt(index.toFixed(0));if(this.IsKLineFrame)index=this.CursorIndex;var dataIndex=item.Data.DataOffset+index;if(dataIndex>=item.Data.Data.length)dataIndex=item.Data.Data.length-1;if(dataIndex<0)continue;value=item.Data.Data[dataIndex];if(value==null)continue;if(item.DataType=="HistoryData-Vol"){value=value.Vol;valueText=this.FormatValue(value,item);}else if(item.DataType=="MultiReport"){valueText=this.FormatMultiReport(value,item);}else if(item.DataType=="ChartStackedBar"){aryText=this.FromatStackedBarTitle(value,item);if(!aryText)continue;}else if(item.DataType=="ChartMultiPoint"){aryText=this.ForamtMultiPointTitle(dataIndex,item);if(!aryText)continue;}else if(item.DataType=="ChartMultiBar"){aryText=this.ForamtMultiBarTitle(dataIndex,item);if(!aryText)continue;}else if(item.DataType=="DRAWKLINE"){aryText=this.FromatKLineTitle(value,item);if(!aryText)continue;}else{valueText=this.FormatValue(value,item);}}if(aryText){var text;for(var k=0;k<aryText.length;++k){var titleItem=aryText[k];if(titleItem.Name)text=titleItem.Name+":"+titleItem.Text;else text=titleItem.Text;var textWidth=this.Canvas.measureText(text).width+2;//后空2个像素
6052
6059
  if(x+textWidth>right)break;if(this.OverlayIndexType.BGColor){this.Canvas.fillStyle=this.OverlayIndexType.BGColor;var rtBG={Left:x,Top:y-fontHeight/2,Width:textWidth,Height:fontHeight+lineSpace};//保存下标题的坐标
6053
6060
  this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}this.Canvas.fillStyle=titleItem.Color;this.Canvas.fillText(text,x,y,textWidth);x+=textWidth;}}else{var text=valueText;if(item.Name){var dyTitle=this.GetDynamicOutName(item.Name,overlayID);if(dyTitle)text=dyTitle+":"+valueText;else text=item.Name+":"+valueText;}var textWidth=this.Canvas.measureText(text).width+2;//后空2个像素
6054
6061
  if(x+textWidth>right)break;if(this.OverlayIndexType.BGColor){this.Canvas.fillStyle=this.OverlayIndexType.BGColor;var rtBG={Left:x,Top:y-fontHeight/2,Width:textWidth,Height:fontHeight+lineSpace};//保存下标题的坐标
@@ -11807,7 +11814,8 @@ chart.Identify=this.Guid;if(varItem.Color)chart.Color=this.GetColor(varItem.Colo
11807
11814
  {}else if(IFrameSplitOperator.IsString(varItem.Name)&&varItem.Name.indexOf("NOTEXT")==0)//标题中包含NOTEXT不绘制标题
11808
11815
  {}else{var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);hqChart.TitlePaint[titleIndex].Data[id]=titleData;this.SetTitleData(titleData,chart);}this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateBand=function(hqChart,windowIndex,varItem,id){var chart=new ChartBand();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.FirstColor=varItem.Draw.Color[0];chart.SecondColor=varItem.Draw.Color[1];chart.Data.Data=varItem.Draw.DrawData;if(IFrameSplitOperator.IsBool(varItem.IsFirstDraw))chart.IsDrawFirst=varItem.IsFirstDraw;var titleIndex=windowIndex+1;var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);titleData.DataType=chart.ClassName;titleData.ExtendData={Color:[chart.FirstColor,chart.SecondColor]};hqChart.TitlePaint[titleIndex].Data[id]=titleData;this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateFillRGN=function(hqChart,windowIndex,varItem,id){var chart=new ChartLineArea();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data.Data=varItem.Draw.DrawData;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);hqChart.ChartPaint.push(chart);};this.CreateFillRGN2=function(hqChart,windowIndex,varItem,id){var chart=new ChartFillRGN();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data.Data=varItem.Draw.DrawData;hqChart.ChartPaint.push(chart);};this.CreateFillBGRGN=function(hqChart,windowIndex,varItem,id){var chart=new ChartFillBGRGN();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data.Data=varItem.Draw.DrawData;hqChart.ChartPaint.push(chart);};this.CreateFLOATRGN=function(hqChart,windowIndex,varItem,id){var chart=new ChartFLOATRGN();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data.Data=varItem.Draw.DrawData;hqChart.ChartPaint.push(chart);};//创建K线图
11809
11816
  this.CreateKLine=function(hqChart,windowIndex,varItem,id){var chart=new ChartKLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.Identify=this.Guid;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data.Data=varItem.Draw.DrawData;chart.IsShowMaxMinPrice=false;chart.IsShowKTooltip=false;if(IFrameSplitOperator.IsNumber(varItem.KLineType))chart.DrawType=varItem.KLineType;if(varItem.Color)//如果设置了颜色,使用外面设置的颜色
11810
- chart.UnchagneColor=chart.DownColor=chart.UpColor=this.GetColor(varItem.Color);if(varItem.Draw.Config){var config=varItem.Draw.Config;if(IFrameSplitOperator.IsBool(config.IsShowMaxMinPrice))chart.IsShowMaxMinPrice=config.IsShowMaxMinPrice;if(IFrameSplitOperator.IsBool(config.IsShowKTooltip))chart.IsShowKTooltip=config.IsShowKTooltip;if(config.Symbol)chart.Symbol=config.Symbol;if(config.Name)chart.Title=config.Name;}this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateOverlayKLine=function(hqChart,windowIndex,varItem,id){var chart=null;if(hqChart.IsKLineContainer())chart=new ChartOverlayKLine();else if(hqChart.IsMinuteContainer())chart=new ChartOverlayMinutePriceLine();else return;chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.Identify=this.Guid;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);//如果设置了颜色,使用外面设置的颜色
11817
+ chart.UnchagneColor=chart.DownColor=chart.UpColor=this.GetColor(varItem.Color);if(varItem.Draw.Config){var config=varItem.Draw.Config;if(IFrameSplitOperator.IsBool(config.IsShowMaxMinPrice))chart.IsShowMaxMinPrice=config.IsShowMaxMinPrice;if(IFrameSplitOperator.IsBool(config.IsShowKTooltip))chart.IsShowKTooltip=config.IsShowKTooltip;if(config.Symbol)chart.Symbol=config.Symbol;if(config.Name)chart.Title=config.Name;}var bShowTitle=false;if(IFrameSplitOperator.IsBool(varItem.IsShowTitle))bShowTitle=varItem.IsShowTitle;if(bShowTitle){var titleIndex=windowIndex+1;var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);//标题
11818
+ titleData.DataType="DRAWKLINE";titleData.Symbol=chart.Symbol;hqChart.TitlePaint[titleIndex].Data[id]=titleData;}this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateOverlayKLine=function(hqChart,windowIndex,varItem,id){var chart=null;if(hqChart.IsKLineContainer())chart=new ChartOverlayKLine();else if(hqChart.IsMinuteContainer())chart=new ChartOverlayMinutePriceLine();else return;chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.Identify=this.Guid;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);//如果设置了颜色,使用外面设置的颜色
11811
11819
  else chart.Color=this.GetDefaultColor(id);chart.Data.Data=varItem.Draw.DrawData;chart.MainData=hqChart.ChartPaint[0].Data;//绑定K线
11812
11820
  hqChart.ChartPaint.push(chart);};this.CreateDrawColorKLine=function(hqChart,windowIndex,varItem,i){var chart=new ChartColorKline();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.DrawName="DRAWCOLORKLINE";chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data.Data=varItem.Draw.DrawData;if(IFrameSplitOperator.IsBool(varItem.Draw.IsEmptyBar))chart.IsEmptyBar=varItem.Draw.IsEmptyBar;if(varItem.Draw.Color)chart.Color=varItem.Draw.Color;hqChart.ChartPaint.push(chart);};this.CreatePolyLine=function(hqChart,windowIndex,varItem,id){var line=new ChartLine();line.Canvas=hqChart.Canvas;line.Name=varItem.Name;line.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;line.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(varItem.Color)line.Color=this.GetColor(varItem.Color);else line.Color=this.GetDefaultColor(id);if(varItem.IsDotLine)line.IsDotLine=true;//虚线
11813
11821
  if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)line.LineWidth=width;}var titleIndex=windowIndex+1;line.Data.Data=varItem.Draw.DrawData;hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(line.Data,' ',line.Color);//给一个空的标题
@@ -11940,7 +11948,7 @@ this.CreateMACD=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.O
11940
11948
  frame.ChartPaint.push(chart);};this.CreateVolStick=function(hqChart,windowIndex,varItem,id,hisData){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartVolStick();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.KLineDrawType=hqChart.KLineDrawType;//设置K线显示类型
11941
11949
  if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.UpColor)chart.UpColor=varItem.UpColor;if(varItem.DownColor)chart.DownColor=varItem.DownColor;if(IFrameSplitOperator.IsNumber(varItem.StickType))chart.BarType=varItem.StickType;if(IFrameSplitOperator.IsNumber(varItem.BarColorType))chart.BarColorType=varItem.BarColorType;if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(IFrameSplitOperator.IsPlusNumber(width))chart.BarWidth=width;}var titleIndex=windowIndex+1;chart.Data.Data=varItem.Data;chart.HistoryData=hisData;this.ReloadChartResource(hqChart,windowIndex,chart);var titlePaint=hqChart.TitlePaint[titleIndex];var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;this.SetTitleData(titleData,chart);this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateBand=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartBand();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.FirstColor=varItem.Draw.Color[0];chart.SecondColor=varItem.Draw.Color[1];chart.Data.Data=varItem.Draw.DrawData;if(IFrameSplitOperator.IsBool(varItem.IsFirstDraw))chart.IsDrawFirst=varItem.IsFirstDraw;this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};//创建K线图
11942
11950
  this.CreateKLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartKLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data.Data=varItem.Draw.DrawData;chart.IsShowMaxMinPrice=false;chart.IsShowKTooltip=false;if(varItem.Color)//如果设置了颜色,使用外面设置的颜色
11943
- chart.UnchagneColor=chart.DownColor=chart.UpColor=this.GetColor(varItem.Color);frame.ChartPaint.push(chart);};this.CreatePolyLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}var titleIndex=windowIndex+1;chart.Data.Data=varItem.Draw.DrawData;var titlePaint=hqChart.TitlePaint[titleIndex];titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=new DynamicTitleData(line.Data,' ',line.Color);//给一个空的标题
11951
+ chart.UnchagneColor=chart.DownColor=chart.UpColor=this.GetColor(varItem.Color);if(varItem.Draw.Config){var config=varItem.Draw.Config;if(IFrameSplitOperator.IsBool(config.IsShowMaxMinPrice))chart.IsShowMaxMinPrice=config.IsShowMaxMinPrice;if(IFrameSplitOperator.IsBool(config.IsShowKTooltip))chart.IsShowKTooltip=config.IsShowKTooltip;if(config.Symbol)chart.Symbol=config.Symbol;if(config.Name)chart.Title=config.Name;}var bShowTitle=false;if(IFrameSplitOperator.IsBool(varItem.IsShowTitle))bShowTitle=varItem.IsShowTitle;if(bShowTitle){var titleIndex=windowIndex+1;chart.Data.Data=varItem.Draw.DrawData;var titlePaint=hqChart.TitlePaint[titleIndex];var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);titleData.DataType="DRAWKLINE";titleData.Symbol=chart.Symbol;titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;}frame.ChartPaint.push(chart);};this.CreatePolyLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}var titleIndex=windowIndex+1;chart.Data.Data=varItem.Draw.DrawData;var titlePaint=hqChart.TitlePaint[titleIndex];titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=new DynamicTitleData(line.Data,' ',line.Color);//给一个空的标题
11944
11952
  frame.ChartPaint.push(chart);};this.CreateNumberText=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartSingleText();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.ReloadResource();chart.TextAlign="center";if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.IsDrawAbove)chart.Direction=1;else chart.Direction=2;if(varItem.Draw.Position)chart.Position=varItem.Draw.Position;//赋值坐标
11945
11953
  var titleIndex=windowIndex+1;chart.Data.Data=varItem.Draw.DrawData.Value;chart.Text=varItem.Draw.DrawData.Text;//hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(bar.Data,varItem.Name,bar.Color);
11946
11954
  this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateTextLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartTextLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;if(varItem.Draw&&varItem.Draw.DrawData){var drawData=varItem.Draw.DrawData;chart.Text=drawData.Text;chart.Line=drawData.Line;chart.Price=drawData.Price;}frame.ChartPaint.push(chart);};this.CreateStackedBar=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartStackedBar();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.BarColor))chart.BarColor=varItem.Draw.BarColor;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.BarName))chart.BarName=varItem.Draw.BarName;if(IFrameSplitOperator.IsNumber(varItem.Draw.LineWidth))chart.LineWidth=varItem.Draw.LineWidth;if(IFrameSplitOperator.IsNumber(varItem.Draw.BarType))chart.BarType=varItem.Draw.BarType;chart.Data.Data=varItem.Draw.DrawData;var titleIndex=windowIndex+1;var titlePaint=hqChart.TitlePaint[titleIndex];var titleData=new DynamicTitleData(chart.Data,chart.BarName,chart.BarColor);titleData.DataType="ChartStackedBar";titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;frame.ChartPaint.push(chart);};this.CreateDrawColorKLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartColorKline();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.DrawName="DRAWCOLORKLINE";chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data.Data=varItem.Draw.DrawData;if(IFrameSplitOperator.IsBool(varItem.Draw.IsEmptyBar))chart.IsEmptyBar=varItem.Draw.IsEmptyBar;if(varItem.Draw.Color)chart.Color=varItem.Draw.Color;frame.ChartPaint.push(chart);};//创建图标
@@ -14355,7 +14363,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
14355
14363
  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);};}/********************************************************************************
14356
14364
  * 版本信息输出
14357
14365
  *
14358
- */var HQCHART_VERSION="1.1.14481";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();//把给外界调用的方法暴露出来
14366
+ */var HQCHART_VERSION="1.1.14486";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();//把给外界调用的方法暴露出来
14359
14367
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
14360
14368
  // BaseIndex:BaseIndex,
14361
14369
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.14482",
3
+ "version": "1.1.14487",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -58350,7 +58350,8 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
58350
58350
  DrawType:"DRAWKLINE",
58351
58351
  DrawData:[],
58352
58352
  Config:{ IsShowMaxMinPrice:true, IsShowKTooltip:true, Symbol:"000001.sh", Name:"上证指数11" }
58353
- }
58353
+ },
58354
+ IsShowTitle:true,
58354
58355
  };
58355
58356
 
58356
58357
  var aryDate=[];
@@ -21336,6 +21336,17 @@ function ScriptIndex(name,script,args,option)
21336
21336
  if (config.Name) chart.Title=config.Name;
21337
21337
  }
21338
21338
 
21339
+ var bShowTitle=false;
21340
+ if (IFrameSplitOperator.IsBool(varItem.IsShowTitle)) bShowTitle=varItem.IsShowTitle;
21341
+ if (bShowTitle)
21342
+ {
21343
+ let titleIndex=windowIndex+1;
21344
+ var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color); //标题
21345
+ titleData.DataType="DRAWKLINE";
21346
+ titleData.Symbol=chart.Symbol;
21347
+ hqChart.TitlePaint[titleIndex].Data[id]=titleData;
21348
+ }
21349
+
21339
21350
  this.SetChartIndexName(chart);
21340
21351
  hqChart.ChartPaint.push(chart);
21341
21352
  }
@@ -23444,7 +23455,7 @@ function OverlayScriptIndex(name,script,args,option)
23444
23455
  {
23445
23456
  var overlayIndex=this.OverlayIndex;
23446
23457
  var frame=overlayIndex.Frame;
23447
- let chart=new ChartKLine();
23458
+ var chart=new ChartKLine();
23448
23459
  chart.Canvas=hqChart.Canvas;
23449
23460
  chart.Name=varItem.Name;
23450
23461
  chart.ChartBorder=frame.Frame.ChartBorder;
@@ -23458,6 +23469,28 @@ function OverlayScriptIndex(name,script,args,option)
23458
23469
  if (varItem.Color) //如果设置了颜色,使用外面设置的颜色
23459
23470
  chart.UnchagneColor=chart.DownColor=chart.UpColor=this.GetColor(varItem.Color);
23460
23471
 
23472
+ if (varItem.Draw.Config)
23473
+ {
23474
+ var config=varItem.Draw.Config;
23475
+ if (IFrameSplitOperator.IsBool(config.IsShowMaxMinPrice)) chart.IsShowMaxMinPrice=config.IsShowMaxMinPrice;
23476
+ if (IFrameSplitOperator.IsBool(config.IsShowKTooltip)) chart.IsShowKTooltip=config.IsShowKTooltip;
23477
+ if (config.Symbol) chart.Symbol=config.Symbol;
23478
+ if (config.Name) chart.Title=config.Name;
23479
+ }
23480
+
23481
+ var bShowTitle=false;
23482
+ if (IFrameSplitOperator.IsBool(varItem.IsShowTitle)) bShowTitle=varItem.IsShowTitle;
23483
+ if (bShowTitle)
23484
+ {
23485
+ var titleIndex=windowIndex+1;
23486
+ chart.Data.Data=varItem.Draw.DrawData;
23487
+ var titlePaint=hqChart.TitlePaint[titleIndex];
23488
+ var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);
23489
+ titleData.DataType="DRAWKLINE";
23490
+ titleData.Symbol=chart.Symbol;
23491
+ titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;
23492
+ }
23493
+
23461
23494
  frame.ChartPaint.push(chart);
23462
23495
  }
23463
23496
 
@@ -10631,13 +10631,13 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10631
10631
  var setMainIndex=new Set(); //主图指标
10632
10632
  var setOverlayIndex=new Set(); //附图指标
10633
10633
 
10634
- for(var i=0;aryIndex.length;++i)
10634
+ for(var i=0;i<aryIndex.length;++i)
10635
10635
  {
10636
10636
  var item=aryIndex[i];
10637
10637
  if (!item) continue;
10638
10638
 
10639
- if (item.ID) setMainIndex.set(item.ID);
10640
- if (item.OverlayID) setOverlayIndex.set(item.OverlayID);
10639
+ if (item.ID) setMainIndex.add(item.ID);
10640
+ if (item.OverlayID) setOverlayIndex.add(item.OverlayID);
10641
10641
  }
10642
10642
 
10643
10643
  if (setMainIndex.size<=0 && setOverlayIndex.size<0) return false;
@@ -10678,7 +10678,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10678
10678
 
10679
10679
  if (setOverlayIndex.has(overlayItem.Identify))
10680
10680
  {
10681
- this.BindOverlayIndexData(overlayItem,i,hisData)
10681
+ this.BindOverlayIndexData(overlayItem,i,bindData)
10682
10682
  }
10683
10683
  }
10684
10684
  }
@@ -35076,6 +35076,8 @@ function ChartVolStick()
35076
35076
  for(var i=start,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
35077
35077
  {
35078
35078
  var value=this.Data.Data[i];
35079
+ if (!IFrameSplitOperator.IsNumber(value)) continue;
35080
+
35079
35081
  if (!IFrameSplitOperator.IsNumber(range.Max) || range.Max<value) range.Max=value;
35080
35082
  if (!IFrameSplitOperator.IsNumber(range.Min) || range.Min>value) range.Min=value
35081
35083
  }
@@ -57782,6 +57784,19 @@ function DynamicChartTitlePainting()
57782
57784
  DownColor:g_JSChartResource.IndexTitle.UpDownArrow.DownColor,
57783
57785
  UnchangeColor:g_JSChartResource.IndexTitle.UpDownArrow.UnchangeColor
57784
57786
  };
57787
+
57788
+
57789
+ //K线标题颜色
57790
+ this.UpColor=g_JSChartResource.UpTextColor;
57791
+ this.DownColor=g_JSChartResource.DownTextColor;
57792
+ this.UnchangeColor=g_JSChartResource.UnchagneTextColor;
57793
+
57794
+ this.VolColor=g_JSChartResource.Title.VolColor;
57795
+ this.AmountColor=g_JSChartResource.Title.AmountColor;
57796
+ this.DateTimeColor=g_JSChartResource.Title.DateTimeColor;
57797
+ this.NameColor = g_JSChartResource.Title.NameColor;
57798
+ this.PositionColor=g_JSChartResource.Title.PositionColor; //持仓
57799
+
57785
57800
 
57786
57801
 
57787
57802
  //动态标题
@@ -57802,6 +57817,15 @@ function DynamicChartTitlePainting()
57802
57817
  this.BGColor=g_JSChartResource.IndexTitleBGColor;
57803
57818
  this.BGBorderColor=g_JSChartResource.IndexTitleBorderColor;
57804
57819
  this.BGBorderMoveOnColor=g_JSChartResource.IndexTitleBorderMoveOnColor;
57820
+
57821
+ this.UpColor=g_JSChartResource.UpTextColor;
57822
+ this.DownColor=g_JSChartResource.DownTextColor;
57823
+ this.UnchangeColor=g_JSChartResource.UnchagneTextColor;
57824
+
57825
+ this.VolColor=g_JSChartResource.Title.VolColor;
57826
+ this.AmountColor=g_JSChartResource.Title.AmountColor;
57827
+ this.DateTimeColor=g_JSChartResource.Title.DateTimeColor;
57828
+ this.PositionColor=g_JSChartResource.Title.PositionColor; //持仓
57805
57829
  }
57806
57830
 
57807
57831
  this.SetDynamicTitleData=function(outName, args, data)
@@ -58025,6 +58049,93 @@ function DynamicChartTitlePainting()
58025
58049
  return aryText;
58026
58050
  }
58027
58051
 
58052
+ this.FromatKLineTitle=function(item, dataInfo)
58053
+ {
58054
+ var defaultfloatPrecision=GetfloatPrecision(dataInfo.Symbol);//价格小数位数
58055
+ var upperSymbol="";
58056
+ if (dataInfo.Symbol) upperSymbol=dataInfo.Symbol.toUpperCase();
58057
+ var pixelRatio=GetDevicePixelRatio();
58058
+ var leftSpace=3*pixelRatio;
58059
+
58060
+ var aryText=[];
58061
+
58062
+
58063
+ if (IFrameSplitOperator.IsNumber(item.Date))
58064
+ {
58065
+ var text=IFrameSplitOperator.FormatDateString(item.Date);
58066
+ aryText.push({ Text:text, Color:this.DateTimeColor });
58067
+ }
58068
+
58069
+ if (IFrameSplitOperator.IsNumber(item.Open))
58070
+ {
58071
+ var color=this.GetColor(item.Open,item.YClose);
58072
+ var text=g_JSChartLocalization.GetText('KTitle-Open',this.LanguageID)+item.Open.toFixed(defaultfloatPrecision);
58073
+ aryText.push({ Text:text, Color:color, LeftSpace:leftSpace});
58074
+ }
58075
+
58076
+ if (IFrameSplitOperator.IsNumber(item.High))
58077
+ {
58078
+ var color=this.GetColor(item.High,item.YClose);
58079
+ var text=g_JSChartLocalization.GetText('KTitle-High',this.LanguageID)+item.High.toFixed(defaultfloatPrecision);
58080
+ aryText.push({ Text:text, Color:color, LeftSpace:leftSpace });
58081
+ }
58082
+
58083
+ if (IFrameSplitOperator.IsNumber(item.Low))
58084
+ {
58085
+ var color=this.GetColor(item.Low,item.YClose);
58086
+ var text=g_JSChartLocalization.GetText('KTitle-Low',this.LanguageID)+item.Low.toFixed(defaultfloatPrecision);
58087
+ aryText.push({ Text:text, Color:color, LeftSpace:leftSpace});
58088
+ }
58089
+
58090
+ if (IFrameSplitOperator.IsNumber(item.Close))
58091
+ {
58092
+ var color=this.GetColor(item.Close,item.YClose);
58093
+ var text=g_JSChartLocalization.GetText('KTitle-Close',this.LanguageID)+item.Close.toFixed(defaultfloatPrecision);
58094
+ aryText.push({ Text:text, Color:color, LeftSpace:leftSpace});
58095
+ }
58096
+
58097
+ //涨幅
58098
+ if (item.YFClose>0 && MARKET_SUFFIX_NAME.IsChinaFutures(upperSymbol))
58099
+ {
58100
+ var value=(item.Close-item.YFClose)/item.YFClose*100;
58101
+ var color = this.GetColor(value, 0);
58102
+ var text = g_JSChartLocalization.GetText('KTitle-Increase',this.LanguageID) + value.toFixed(2)+'%';
58103
+ aryText.push({ Text:text, Color:color, LeftSpace:leftSpace});
58104
+ }
58105
+ else if (item.YClose>0)
58106
+ {
58107
+ var value=(item.Close-item.YClose)/item.YClose*100;
58108
+ var color = this.GetColor(value, 0);
58109
+ var text = g_JSChartLocalization.GetText('KTitle-Increase',this.LanguageID) + value.toFixed(2)+'%';
58110
+ aryText.push({ Text:text, Color:color, LeftSpace:leftSpace});
58111
+ }
58112
+
58113
+ if (IFrameSplitOperator.IsNumber(item.Vol)) //成交量
58114
+ {
58115
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
58116
+ var vol=item.Vol/unit;
58117
+ var text=g_JSChartLocalization.GetText('KTitle-Vol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);
58118
+ aryText.push({ Text:text, Color:this.VolColor, LeftSpace:leftSpace});
58119
+ }
58120
+
58121
+ if (IFrameSplitOperator.IsNumber(item.Amount)) //成交金额
58122
+ {
58123
+ var text=g_JSChartLocalization.GetText('KTitle-Amount',this.LanguageID)+IFrameSplitOperator.FormatValueString(item.Amount,2,this.LanguageID);
58124
+ aryText.push({ Text:text, Color:this.AmountColor, LeftSpace:leftSpace});
58125
+ }
58126
+
58127
+ return aryText;
58128
+ }
58129
+
58130
+ this.GetColor=function(price,yClose)
58131
+ {
58132
+ if (!IFrameSplitOperator.IsNumber(yClose)) return this.UnchangeColor;
58133
+
58134
+ if(price>yClose) return this.UpColor;
58135
+ else if (price<yClose) return this.DownColor;
58136
+ else return this.UnchangeColor;
58137
+ }
58138
+
58028
58139
  this.ForamtMultiLineTitle=function(dataIndex, dataInfo)
58029
58140
  {
58030
58141
  if (!IFrameSplitOperator.IsNonEmptyArray(dataInfo.Lines)) return null;
@@ -58510,6 +58621,12 @@ function DynamicChartTitlePainting()
58510
58621
  if (!aryText) return null;
58511
58622
  return { Text:null, ArrayText:aryText };
58512
58623
  }
58624
+ else if (item.DataType=="DRAWKLINE")
58625
+ {
58626
+ aryText=this.FromatKLineTitle(value, item);
58627
+ if (!aryText) return null;
58628
+ return { Text:null, ArrayText:aryText };
58629
+ }
58513
58630
  else if (g_ScriptIndexChartFactory.Has(item.DataType)) //外部挂接
58514
58631
  {
58515
58632
  var find=g_ScriptIndexChartFactory.Get(item.DataType);
@@ -58900,6 +59017,11 @@ function DynamicChartTitlePainting()
58900
59017
  aryText=this.ForamtMultiBarTitle(dataIndex, item);
58901
59018
  if (!aryText) continue;
58902
59019
  }
59020
+ else if (item.DataType=="DRAWKLINE")
59021
+ {
59022
+ aryText=this.FromatKLineTitle(value, item);
59023
+ if (!aryText) continue;
59024
+ }
58903
59025
  else
58904
59026
  {
58905
59027
  valueText=this.FormatValue(value,item);
@@ -2836,7 +2836,8 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
2836
2836
  DrawType:"DRAWKLINE",
2837
2837
  DrawData:[],
2838
2838
  Config:{ IsShowMaxMinPrice:true, IsShowKTooltip:true, Symbol:"000001.sh", Name:"上证指数11" }
2839
- }
2839
+ },
2840
+ IsShowTitle:true,
2840
2841
  };
2841
2842
 
2842
2843
  var aryDate=[];
@@ -14556,13 +14556,13 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14556
14556
  var setMainIndex=new Set(); //主图指标
14557
14557
  var setOverlayIndex=new Set(); //附图指标
14558
14558
 
14559
- for(var i=0;aryIndex.length;++i)
14559
+ for(var i=0;i<aryIndex.length;++i)
14560
14560
  {
14561
14561
  var item=aryIndex[i];
14562
14562
  if (!item) continue;
14563
14563
 
14564
- if (item.ID) setMainIndex.set(item.ID);
14565
- if (item.OverlayID) setOverlayIndex.set(item.OverlayID);
14564
+ if (item.ID) setMainIndex.add(item.ID);
14565
+ if (item.OverlayID) setOverlayIndex.add(item.OverlayID);
14566
14566
  }
14567
14567
 
14568
14568
  if (setMainIndex.size<=0 && setOverlayIndex.size<0) return false;
@@ -14603,7 +14603,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14603
14603
 
14604
14604
  if (setOverlayIndex.has(overlayItem.Identify))
14605
14605
  {
14606
- this.BindOverlayIndexData(overlayItem,i,hisData)
14606
+ this.BindOverlayIndexData(overlayItem,i,bindData)
14607
14607
  }
14608
14608
  }
14609
14609
  }
@@ -39001,6 +39001,8 @@ function ChartVolStick()
39001
39001
  for(var i=start,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
39002
39002
  {
39003
39003
  var value=this.Data.Data[i];
39004
+ if (!IFrameSplitOperator.IsNumber(value)) continue;
39005
+
39004
39006
  if (!IFrameSplitOperator.IsNumber(range.Max) || range.Max<value) range.Max=value;
39005
39007
  if (!IFrameSplitOperator.IsNumber(range.Min) || range.Min>value) range.Min=value
39006
39008
  }
@@ -61707,6 +61709,19 @@ function DynamicChartTitlePainting()
61707
61709
  DownColor:g_JSChartResource.IndexTitle.UpDownArrow.DownColor,
61708
61710
  UnchangeColor:g_JSChartResource.IndexTitle.UpDownArrow.UnchangeColor
61709
61711
  };
61712
+
61713
+
61714
+ //K线标题颜色
61715
+ this.UpColor=g_JSChartResource.UpTextColor;
61716
+ this.DownColor=g_JSChartResource.DownTextColor;
61717
+ this.UnchangeColor=g_JSChartResource.UnchagneTextColor;
61718
+
61719
+ this.VolColor=g_JSChartResource.Title.VolColor;
61720
+ this.AmountColor=g_JSChartResource.Title.AmountColor;
61721
+ this.DateTimeColor=g_JSChartResource.Title.DateTimeColor;
61722
+ this.NameColor = g_JSChartResource.Title.NameColor;
61723
+ this.PositionColor=g_JSChartResource.Title.PositionColor; //持仓
61724
+
61710
61725
 
61711
61726
 
61712
61727
  //动态标题
@@ -61727,6 +61742,15 @@ function DynamicChartTitlePainting()
61727
61742
  this.BGColor=g_JSChartResource.IndexTitleBGColor;
61728
61743
  this.BGBorderColor=g_JSChartResource.IndexTitleBorderColor;
61729
61744
  this.BGBorderMoveOnColor=g_JSChartResource.IndexTitleBorderMoveOnColor;
61745
+
61746
+ this.UpColor=g_JSChartResource.UpTextColor;
61747
+ this.DownColor=g_JSChartResource.DownTextColor;
61748
+ this.UnchangeColor=g_JSChartResource.UnchagneTextColor;
61749
+
61750
+ this.VolColor=g_JSChartResource.Title.VolColor;
61751
+ this.AmountColor=g_JSChartResource.Title.AmountColor;
61752
+ this.DateTimeColor=g_JSChartResource.Title.DateTimeColor;
61753
+ this.PositionColor=g_JSChartResource.Title.PositionColor; //持仓
61730
61754
  }
61731
61755
 
61732
61756
  this.SetDynamicTitleData=function(outName, args, data)
@@ -61950,6 +61974,93 @@ function DynamicChartTitlePainting()
61950
61974
  return aryText;
61951
61975
  }
61952
61976
 
61977
+ this.FromatKLineTitle=function(item, dataInfo)
61978
+ {
61979
+ var defaultfloatPrecision=GetfloatPrecision(dataInfo.Symbol);//价格小数位数
61980
+ var upperSymbol="";
61981
+ if (dataInfo.Symbol) upperSymbol=dataInfo.Symbol.toUpperCase();
61982
+ var pixelRatio=GetDevicePixelRatio();
61983
+ var leftSpace=3*pixelRatio;
61984
+
61985
+ var aryText=[];
61986
+
61987
+
61988
+ if (IFrameSplitOperator.IsNumber(item.Date))
61989
+ {
61990
+ var text=IFrameSplitOperator.FormatDateString(item.Date);
61991
+ aryText.push({ Text:text, Color:this.DateTimeColor });
61992
+ }
61993
+
61994
+ if (IFrameSplitOperator.IsNumber(item.Open))
61995
+ {
61996
+ var color=this.GetColor(item.Open,item.YClose);
61997
+ var text=g_JSChartLocalization.GetText('KTitle-Open',this.LanguageID)+item.Open.toFixed(defaultfloatPrecision);
61998
+ aryText.push({ Text:text, Color:color, LeftSpace:leftSpace});
61999
+ }
62000
+
62001
+ if (IFrameSplitOperator.IsNumber(item.High))
62002
+ {
62003
+ var color=this.GetColor(item.High,item.YClose);
62004
+ var text=g_JSChartLocalization.GetText('KTitle-High',this.LanguageID)+item.High.toFixed(defaultfloatPrecision);
62005
+ aryText.push({ Text:text, Color:color, LeftSpace:leftSpace });
62006
+ }
62007
+
62008
+ if (IFrameSplitOperator.IsNumber(item.Low))
62009
+ {
62010
+ var color=this.GetColor(item.Low,item.YClose);
62011
+ var text=g_JSChartLocalization.GetText('KTitle-Low',this.LanguageID)+item.Low.toFixed(defaultfloatPrecision);
62012
+ aryText.push({ Text:text, Color:color, LeftSpace:leftSpace});
62013
+ }
62014
+
62015
+ if (IFrameSplitOperator.IsNumber(item.Close))
62016
+ {
62017
+ var color=this.GetColor(item.Close,item.YClose);
62018
+ var text=g_JSChartLocalization.GetText('KTitle-Close',this.LanguageID)+item.Close.toFixed(defaultfloatPrecision);
62019
+ aryText.push({ Text:text, Color:color, LeftSpace:leftSpace});
62020
+ }
62021
+
62022
+ //涨幅
62023
+ if (item.YFClose>0 && MARKET_SUFFIX_NAME.IsChinaFutures(upperSymbol))
62024
+ {
62025
+ var value=(item.Close-item.YFClose)/item.YFClose*100;
62026
+ var color = this.GetColor(value, 0);
62027
+ var text = g_JSChartLocalization.GetText('KTitle-Increase',this.LanguageID) + value.toFixed(2)+'%';
62028
+ aryText.push({ Text:text, Color:color, LeftSpace:leftSpace});
62029
+ }
62030
+ else if (item.YClose>0)
62031
+ {
62032
+ var value=(item.Close-item.YClose)/item.YClose*100;
62033
+ var color = this.GetColor(value, 0);
62034
+ var text = g_JSChartLocalization.GetText('KTitle-Increase',this.LanguageID) + value.toFixed(2)+'%';
62035
+ aryText.push({ Text:text, Color:color, LeftSpace:leftSpace});
62036
+ }
62037
+
62038
+ if (IFrameSplitOperator.IsNumber(item.Vol)) //成交量
62039
+ {
62040
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
62041
+ var vol=item.Vol/unit;
62042
+ var text=g_JSChartLocalization.GetText('KTitle-Vol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);
62043
+ aryText.push({ Text:text, Color:this.VolColor, LeftSpace:leftSpace});
62044
+ }
62045
+
62046
+ if (IFrameSplitOperator.IsNumber(item.Amount)) //成交金额
62047
+ {
62048
+ var text=g_JSChartLocalization.GetText('KTitle-Amount',this.LanguageID)+IFrameSplitOperator.FormatValueString(item.Amount,2,this.LanguageID);
62049
+ aryText.push({ Text:text, Color:this.AmountColor, LeftSpace:leftSpace});
62050
+ }
62051
+
62052
+ return aryText;
62053
+ }
62054
+
62055
+ this.GetColor=function(price,yClose)
62056
+ {
62057
+ if (!IFrameSplitOperator.IsNumber(yClose)) return this.UnchangeColor;
62058
+
62059
+ if(price>yClose) return this.UpColor;
62060
+ else if (price<yClose) return this.DownColor;
62061
+ else return this.UnchangeColor;
62062
+ }
62063
+
61953
62064
  this.ForamtMultiLineTitle=function(dataIndex, dataInfo)
61954
62065
  {
61955
62066
  if (!IFrameSplitOperator.IsNonEmptyArray(dataInfo.Lines)) return null;
@@ -62435,6 +62546,12 @@ function DynamicChartTitlePainting()
62435
62546
  if (!aryText) return null;
62436
62547
  return { Text:null, ArrayText:aryText };
62437
62548
  }
62549
+ else if (item.DataType=="DRAWKLINE")
62550
+ {
62551
+ aryText=this.FromatKLineTitle(value, item);
62552
+ if (!aryText) return null;
62553
+ return { Text:null, ArrayText:aryText };
62554
+ }
62438
62555
  else if (g_ScriptIndexChartFactory.Has(item.DataType)) //外部挂接
62439
62556
  {
62440
62557
  var find=g_ScriptIndexChartFactory.Get(item.DataType);
@@ -62825,6 +62942,11 @@ function DynamicChartTitlePainting()
62825
62942
  aryText=this.ForamtMultiBarTitle(dataIndex, item);
62826
62943
  if (!aryText) continue;
62827
62944
  }
62945
+ else if (item.DataType=="DRAWKLINE")
62946
+ {
62947
+ aryText=this.FromatKLineTitle(value, item);
62948
+ if (!aryText) continue;
62949
+ }
62828
62950
  else
62829
62951
  {
62830
62952
  valueText=this.FormatValue(value,item);
@@ -123558,6 +123680,17 @@ function ScriptIndex(name,script,args,option)
123558
123680
  if (config.Name) chart.Title=config.Name;
123559
123681
  }
123560
123682
 
123683
+ var bShowTitle=false;
123684
+ if (IFrameSplitOperator.IsBool(varItem.IsShowTitle)) bShowTitle=varItem.IsShowTitle;
123685
+ if (bShowTitle)
123686
+ {
123687
+ let titleIndex=windowIndex+1;
123688
+ var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color); //标题
123689
+ titleData.DataType="DRAWKLINE";
123690
+ titleData.Symbol=chart.Symbol;
123691
+ hqChart.TitlePaint[titleIndex].Data[id]=titleData;
123692
+ }
123693
+
123561
123694
  this.SetChartIndexName(chart);
123562
123695
  hqChart.ChartPaint.push(chart);
123563
123696
  }
@@ -125666,7 +125799,7 @@ function OverlayScriptIndex(name,script,args,option)
125666
125799
  {
125667
125800
  var overlayIndex=this.OverlayIndex;
125668
125801
  var frame=overlayIndex.Frame;
125669
- let chart=new ChartKLine();
125802
+ var chart=new ChartKLine();
125670
125803
  chart.Canvas=hqChart.Canvas;
125671
125804
  chart.Name=varItem.Name;
125672
125805
  chart.ChartBorder=frame.Frame.ChartBorder;
@@ -125680,6 +125813,28 @@ function OverlayScriptIndex(name,script,args,option)
125680
125813
  if (varItem.Color) //如果设置了颜色,使用外面设置的颜色
125681
125814
  chart.UnchagneColor=chart.DownColor=chart.UpColor=this.GetColor(varItem.Color);
125682
125815
 
125816
+ if (varItem.Draw.Config)
125817
+ {
125818
+ var config=varItem.Draw.Config;
125819
+ if (IFrameSplitOperator.IsBool(config.IsShowMaxMinPrice)) chart.IsShowMaxMinPrice=config.IsShowMaxMinPrice;
125820
+ if (IFrameSplitOperator.IsBool(config.IsShowKTooltip)) chart.IsShowKTooltip=config.IsShowKTooltip;
125821
+ if (config.Symbol) chart.Symbol=config.Symbol;
125822
+ if (config.Name) chart.Title=config.Name;
125823
+ }
125824
+
125825
+ var bShowTitle=false;
125826
+ if (IFrameSplitOperator.IsBool(varItem.IsShowTitle)) bShowTitle=varItem.IsShowTitle;
125827
+ if (bShowTitle)
125828
+ {
125829
+ var titleIndex=windowIndex+1;
125830
+ chart.Data.Data=varItem.Draw.DrawData;
125831
+ var titlePaint=hqChart.TitlePaint[titleIndex];
125832
+ var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);
125833
+ titleData.DataType="DRAWKLINE";
125834
+ titleData.Symbol=chart.Symbol;
125835
+ titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;
125836
+ }
125837
+
125683
125838
  frame.ChartPaint.push(chart);
125684
125839
  }
125685
125840
 
@@ -143923,7 +144078,7 @@ function ScrollBarBGChart()
143923
144078
 
143924
144079
 
143925
144080
 
143926
- var HQCHART_VERSION="1.1.14481";
144081
+ var HQCHART_VERSION="1.1.14486";
143927
144082
 
143928
144083
  function PrintHQChartVersion()
143929
144084
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.14481";
8
+ var HQCHART_VERSION="1.1.14486";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -58368,7 +58368,8 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
58368
58368
  DrawType:"DRAWKLINE",
58369
58369
  DrawData:[],
58370
58370
  Config:{ IsShowMaxMinPrice:true, IsShowKTooltip:true, Symbol:"000001.sh", Name:"上证指数11" }
58371
- }
58371
+ },
58372
+ IsShowTitle:true,
58372
58373
  };
58373
58374
 
58374
58375
  var aryDate=[];
@@ -14600,13 +14600,13 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14600
14600
  var setMainIndex=new Set(); //主图指标
14601
14601
  var setOverlayIndex=new Set(); //附图指标
14602
14602
 
14603
- for(var i=0;aryIndex.length;++i)
14603
+ for(var i=0;i<aryIndex.length;++i)
14604
14604
  {
14605
14605
  var item=aryIndex[i];
14606
14606
  if (!item) continue;
14607
14607
 
14608
- if (item.ID) setMainIndex.set(item.ID);
14609
- if (item.OverlayID) setOverlayIndex.set(item.OverlayID);
14608
+ if (item.ID) setMainIndex.add(item.ID);
14609
+ if (item.OverlayID) setOverlayIndex.add(item.OverlayID);
14610
14610
  }
14611
14611
 
14612
14612
  if (setMainIndex.size<=0 && setOverlayIndex.size<0) return false;
@@ -14647,7 +14647,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14647
14647
 
14648
14648
  if (setOverlayIndex.has(overlayItem.Identify))
14649
14649
  {
14650
- this.BindOverlayIndexData(overlayItem,i,hisData)
14650
+ this.BindOverlayIndexData(overlayItem,i,bindData)
14651
14651
  }
14652
14652
  }
14653
14653
  }
@@ -39045,6 +39045,8 @@ function ChartVolStick()
39045
39045
  for(var i=start,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
39046
39046
  {
39047
39047
  var value=this.Data.Data[i];
39048
+ if (!IFrameSplitOperator.IsNumber(value)) continue;
39049
+
39048
39050
  if (!IFrameSplitOperator.IsNumber(range.Max) || range.Max<value) range.Max=value;
39049
39051
  if (!IFrameSplitOperator.IsNumber(range.Min) || range.Min>value) range.Min=value
39050
39052
  }
@@ -61751,6 +61753,19 @@ function DynamicChartTitlePainting()
61751
61753
  DownColor:g_JSChartResource.IndexTitle.UpDownArrow.DownColor,
61752
61754
  UnchangeColor:g_JSChartResource.IndexTitle.UpDownArrow.UnchangeColor
61753
61755
  };
61756
+
61757
+
61758
+ //K线标题颜色
61759
+ this.UpColor=g_JSChartResource.UpTextColor;
61760
+ this.DownColor=g_JSChartResource.DownTextColor;
61761
+ this.UnchangeColor=g_JSChartResource.UnchagneTextColor;
61762
+
61763
+ this.VolColor=g_JSChartResource.Title.VolColor;
61764
+ this.AmountColor=g_JSChartResource.Title.AmountColor;
61765
+ this.DateTimeColor=g_JSChartResource.Title.DateTimeColor;
61766
+ this.NameColor = g_JSChartResource.Title.NameColor;
61767
+ this.PositionColor=g_JSChartResource.Title.PositionColor; //持仓
61768
+
61754
61769
 
61755
61770
 
61756
61771
  //动态标题
@@ -61771,6 +61786,15 @@ function DynamicChartTitlePainting()
61771
61786
  this.BGColor=g_JSChartResource.IndexTitleBGColor;
61772
61787
  this.BGBorderColor=g_JSChartResource.IndexTitleBorderColor;
61773
61788
  this.BGBorderMoveOnColor=g_JSChartResource.IndexTitleBorderMoveOnColor;
61789
+
61790
+ this.UpColor=g_JSChartResource.UpTextColor;
61791
+ this.DownColor=g_JSChartResource.DownTextColor;
61792
+ this.UnchangeColor=g_JSChartResource.UnchagneTextColor;
61793
+
61794
+ this.VolColor=g_JSChartResource.Title.VolColor;
61795
+ this.AmountColor=g_JSChartResource.Title.AmountColor;
61796
+ this.DateTimeColor=g_JSChartResource.Title.DateTimeColor;
61797
+ this.PositionColor=g_JSChartResource.Title.PositionColor; //持仓
61774
61798
  }
61775
61799
 
61776
61800
  this.SetDynamicTitleData=function(outName, args, data)
@@ -61994,6 +62018,93 @@ function DynamicChartTitlePainting()
61994
62018
  return aryText;
61995
62019
  }
61996
62020
 
62021
+ this.FromatKLineTitle=function(item, dataInfo)
62022
+ {
62023
+ var defaultfloatPrecision=GetfloatPrecision(dataInfo.Symbol);//价格小数位数
62024
+ var upperSymbol="";
62025
+ if (dataInfo.Symbol) upperSymbol=dataInfo.Symbol.toUpperCase();
62026
+ var pixelRatio=GetDevicePixelRatio();
62027
+ var leftSpace=3*pixelRatio;
62028
+
62029
+ var aryText=[];
62030
+
62031
+
62032
+ if (IFrameSplitOperator.IsNumber(item.Date))
62033
+ {
62034
+ var text=IFrameSplitOperator.FormatDateString(item.Date);
62035
+ aryText.push({ Text:text, Color:this.DateTimeColor });
62036
+ }
62037
+
62038
+ if (IFrameSplitOperator.IsNumber(item.Open))
62039
+ {
62040
+ var color=this.GetColor(item.Open,item.YClose);
62041
+ var text=g_JSChartLocalization.GetText('KTitle-Open',this.LanguageID)+item.Open.toFixed(defaultfloatPrecision);
62042
+ aryText.push({ Text:text, Color:color, LeftSpace:leftSpace});
62043
+ }
62044
+
62045
+ if (IFrameSplitOperator.IsNumber(item.High))
62046
+ {
62047
+ var color=this.GetColor(item.High,item.YClose);
62048
+ var text=g_JSChartLocalization.GetText('KTitle-High',this.LanguageID)+item.High.toFixed(defaultfloatPrecision);
62049
+ aryText.push({ Text:text, Color:color, LeftSpace:leftSpace });
62050
+ }
62051
+
62052
+ if (IFrameSplitOperator.IsNumber(item.Low))
62053
+ {
62054
+ var color=this.GetColor(item.Low,item.YClose);
62055
+ var text=g_JSChartLocalization.GetText('KTitle-Low',this.LanguageID)+item.Low.toFixed(defaultfloatPrecision);
62056
+ aryText.push({ Text:text, Color:color, LeftSpace:leftSpace});
62057
+ }
62058
+
62059
+ if (IFrameSplitOperator.IsNumber(item.Close))
62060
+ {
62061
+ var color=this.GetColor(item.Close,item.YClose);
62062
+ var text=g_JSChartLocalization.GetText('KTitle-Close',this.LanguageID)+item.Close.toFixed(defaultfloatPrecision);
62063
+ aryText.push({ Text:text, Color:color, LeftSpace:leftSpace});
62064
+ }
62065
+
62066
+ //涨幅
62067
+ if (item.YFClose>0 && MARKET_SUFFIX_NAME.IsChinaFutures(upperSymbol))
62068
+ {
62069
+ var value=(item.Close-item.YFClose)/item.YFClose*100;
62070
+ var color = this.GetColor(value, 0);
62071
+ var text = g_JSChartLocalization.GetText('KTitle-Increase',this.LanguageID) + value.toFixed(2)+'%';
62072
+ aryText.push({ Text:text, Color:color, LeftSpace:leftSpace});
62073
+ }
62074
+ else if (item.YClose>0)
62075
+ {
62076
+ var value=(item.Close-item.YClose)/item.YClose*100;
62077
+ var color = this.GetColor(value, 0);
62078
+ var text = g_JSChartLocalization.GetText('KTitle-Increase',this.LanguageID) + value.toFixed(2)+'%';
62079
+ aryText.push({ Text:text, Color:color, LeftSpace:leftSpace});
62080
+ }
62081
+
62082
+ if (IFrameSplitOperator.IsNumber(item.Vol)) //成交量
62083
+ {
62084
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
62085
+ var vol=item.Vol/unit;
62086
+ var text=g_JSChartLocalization.GetText('KTitle-Vol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);
62087
+ aryText.push({ Text:text, Color:this.VolColor, LeftSpace:leftSpace});
62088
+ }
62089
+
62090
+ if (IFrameSplitOperator.IsNumber(item.Amount)) //成交金额
62091
+ {
62092
+ var text=g_JSChartLocalization.GetText('KTitle-Amount',this.LanguageID)+IFrameSplitOperator.FormatValueString(item.Amount,2,this.LanguageID);
62093
+ aryText.push({ Text:text, Color:this.AmountColor, LeftSpace:leftSpace});
62094
+ }
62095
+
62096
+ return aryText;
62097
+ }
62098
+
62099
+ this.GetColor=function(price,yClose)
62100
+ {
62101
+ if (!IFrameSplitOperator.IsNumber(yClose)) return this.UnchangeColor;
62102
+
62103
+ if(price>yClose) return this.UpColor;
62104
+ else if (price<yClose) return this.DownColor;
62105
+ else return this.UnchangeColor;
62106
+ }
62107
+
61997
62108
  this.ForamtMultiLineTitle=function(dataIndex, dataInfo)
61998
62109
  {
61999
62110
  if (!IFrameSplitOperator.IsNonEmptyArray(dataInfo.Lines)) return null;
@@ -62479,6 +62590,12 @@ function DynamicChartTitlePainting()
62479
62590
  if (!aryText) return null;
62480
62591
  return { Text:null, ArrayText:aryText };
62481
62592
  }
62593
+ else if (item.DataType=="DRAWKLINE")
62594
+ {
62595
+ aryText=this.FromatKLineTitle(value, item);
62596
+ if (!aryText) return null;
62597
+ return { Text:null, ArrayText:aryText };
62598
+ }
62482
62599
  else if (g_ScriptIndexChartFactory.Has(item.DataType)) //外部挂接
62483
62600
  {
62484
62601
  var find=g_ScriptIndexChartFactory.Get(item.DataType);
@@ -62869,6 +62986,11 @@ function DynamicChartTitlePainting()
62869
62986
  aryText=this.ForamtMultiBarTitle(dataIndex, item);
62870
62987
  if (!aryText) continue;
62871
62988
  }
62989
+ else if (item.DataType=="DRAWKLINE")
62990
+ {
62991
+ aryText=this.FromatKLineTitle(value, item);
62992
+ if (!aryText) continue;
62993
+ }
62872
62994
  else
62873
62995
  {
62874
62996
  valueText=this.FormatValue(value,item);
@@ -123602,6 +123724,17 @@ function ScriptIndex(name,script,args,option)
123602
123724
  if (config.Name) chart.Title=config.Name;
123603
123725
  }
123604
123726
 
123727
+ var bShowTitle=false;
123728
+ if (IFrameSplitOperator.IsBool(varItem.IsShowTitle)) bShowTitle=varItem.IsShowTitle;
123729
+ if (bShowTitle)
123730
+ {
123731
+ let titleIndex=windowIndex+1;
123732
+ var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color); //标题
123733
+ titleData.DataType="DRAWKLINE";
123734
+ titleData.Symbol=chart.Symbol;
123735
+ hqChart.TitlePaint[titleIndex].Data[id]=titleData;
123736
+ }
123737
+
123605
123738
  this.SetChartIndexName(chart);
123606
123739
  hqChart.ChartPaint.push(chart);
123607
123740
  }
@@ -125710,7 +125843,7 @@ function OverlayScriptIndex(name,script,args,option)
125710
125843
  {
125711
125844
  var overlayIndex=this.OverlayIndex;
125712
125845
  var frame=overlayIndex.Frame;
125713
- let chart=new ChartKLine();
125846
+ var chart=new ChartKLine();
125714
125847
  chart.Canvas=hqChart.Canvas;
125715
125848
  chart.Name=varItem.Name;
125716
125849
  chart.ChartBorder=frame.Frame.ChartBorder;
@@ -125724,6 +125857,28 @@ function OverlayScriptIndex(name,script,args,option)
125724
125857
  if (varItem.Color) //如果设置了颜色,使用外面设置的颜色
125725
125858
  chart.UnchagneColor=chart.DownColor=chart.UpColor=this.GetColor(varItem.Color);
125726
125859
 
125860
+ if (varItem.Draw.Config)
125861
+ {
125862
+ var config=varItem.Draw.Config;
125863
+ if (IFrameSplitOperator.IsBool(config.IsShowMaxMinPrice)) chart.IsShowMaxMinPrice=config.IsShowMaxMinPrice;
125864
+ if (IFrameSplitOperator.IsBool(config.IsShowKTooltip)) chart.IsShowKTooltip=config.IsShowKTooltip;
125865
+ if (config.Symbol) chart.Symbol=config.Symbol;
125866
+ if (config.Name) chart.Title=config.Name;
125867
+ }
125868
+
125869
+ var bShowTitle=false;
125870
+ if (IFrameSplitOperator.IsBool(varItem.IsShowTitle)) bShowTitle=varItem.IsShowTitle;
125871
+ if (bShowTitle)
125872
+ {
125873
+ var titleIndex=windowIndex+1;
125874
+ chart.Data.Data=varItem.Draw.DrawData;
125875
+ var titlePaint=hqChart.TitlePaint[titleIndex];
125876
+ var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);
125877
+ titleData.DataType="DRAWKLINE";
125878
+ titleData.Symbol=chart.Symbol;
125879
+ titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;
125880
+ }
125881
+
125727
125882
  frame.ChartPaint.push(chart);
125728
125883
  }
125729
125884
 
@@ -153743,7 +153898,7 @@ function HQChartScriptWorker()
153743
153898
 
153744
153899
 
153745
153900
 
153746
- var HQCHART_VERSION="1.1.14481";
153901
+ var HQCHART_VERSION="1.1.14486";
153747
153902
 
153748
153903
  function PrintHQChartVersion()
153749
153904
  {