hqchart 1.1.14496 → 1.1.14501

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.
@@ -1203,7 +1203,7 @@ if(IFrameSplitOperator.IsBool(option.EnableSelectRect)){if(!option.DragSelectRec
1203
1203
  {if(option.DrawTool.StorageKey&&chart.ChartDrawStorage)chart.ChartDrawStorage.Load(option.DrawTool.StorageKey);}if(option.BeforeOpen)//集合竞价
1204
1204
  {var item=option.BeforeOpen;if(IFrameSplitOperator.IsBool(item.IsShow))chart.IsShowBeforeData=item.IsShow;if(IFrameSplitOperator.IsNumber(item.Width))chart.ExtendWidth.Left=item.Width;if(IFrameSplitOperator.IsBool(item.IsShowMultiDay))chart.IsShowMultiDayBeforeData=item.IsShowMultiDay;if(IFrameSplitOperator.IsNumber(item.MulitiDayWidth))chart.MultiDayExtendWidth.Left=item.MulitiDayWidth;}if(option.AfterClose)//收盘集合竞价
1205
1205
  {var item=option.AfterClose;if(IFrameSplitOperator.IsBool(item.IsShow))chart.IsShowAfterData=item.IsShow;if(IFrameSplitOperator.IsNumber(item.ShareVol))chart.ShareAfterVol=item.ShareVol;if(IFrameSplitOperator.IsNumber(item.Width))chart.ExtendWidth.Right=item.Width;if(IFrameSplitOperator.IsBool(item.IsShowMultiDay))chart.IsShowMultiDayAfterData=item.IsShowMultiDay;if(IFrameSplitOperator.IsNumber(item.MulitiDayWidth))chart.MultiDayExtendWidth.Right=item.MulitiDayWidth;}//图形选中
1206
- if(option.SelectedChart){var item=option.SelectedChart;if(IFrameSplitOperator.IsBool(item.EnableSelected))chart.SelectedChart.EnableSelected=item.EnableSelected;if(IFrameSplitOperator.IsBool(item.EnableMoveOn))chart.SelectedChart.EnableMoveOn=item.EnableMoveOn;}if(chart.ClassName=="MinuteChartContainer"){if(!option.DragSelectRect){option.DragSelectRect={EnableLButton:true};//默认开启区间选中画布
1206
+ if(option.SelectedChart){var item=option.SelectedChart;if(IFrameSplitOperator.IsBool(item.EnableSelected))chart.SelectedChart.EnableSelected=item.EnableSelected;if(IFrameSplitOperator.IsBool(item.EnableMoveOn))chart.SelectedChart.EnableMoveOn=item.EnableMoveOn;}if(chart.ClassName=="MinuteChartContainer"){if(!option.DragSelectRect){option.DragSelectRect={Enable:true};//默认开启区间选中画布
1207
1207
  }if(option.DragSelectRect){var item=option.DragSelectRect;var zindex=10;if(IFrameSplitOperator.IsNumber(item.ZIndex))zindex=item.ZIndex;if(item.Enable)this.CreateExtraCanvasElement(JSChart.RectDragCanvasKey,{ZIndex:zindex});//创建独立的区间选择画布
1208
1208
  }}if(option.EnableYDrag){var item=option.EnableYDrag;if(IFrameSplitOperator.IsBool(item.Left))chart.EnableYDrag.Left=item.Left;if(IFrameSplitOperator.IsBool(item.Right))chart.EnableYDrag.Right=item.Right;if(IFrameSplitOperator.IsBool(item.Wheel))chart.EnableYDrag.Wheel=item.Wheel;if(IFrameSplitOperator.IsNumber(item.WheelYMove))chart.EnableYDrag.WheelYMove=item.WheelYMove;}//分页
1209
1209
  if(option.PageInfo)chart.SetPageInfo(option.PageInfo);chart.Create(windowsCount,option);//创建子窗口
@@ -6028,11 +6028,11 @@ this.MainTitlePaint=null;//主标题
6028
6028
  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;//持仓
6029
6029
  };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)//是否点击了指标标题
6030
6030
  {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;};//多变量输出
6031
- 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);//价格小数位数
6031
+ 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.FormatKLineTitle=function(item,dataInfo){var defaultfloatPrecision=GetfloatPrecision(dataInfo.Symbol);//价格小数位数
6032
6032
  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});}//涨幅
6033
6033
  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))//成交量
6034
6034
  {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))//成交金额
6035
- {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;}//十字光标锁定状态 禁用显示最后一个数据
6035
+ {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.FormatIndexTitle=function(value,dataInfo){if(!value)return null;if(IFrameSplitOperator.IsString(value))return{Text:value,ArrayText:null};if(IFrameSplitOperator.IsNonEmptyArray(value)){var aryText=[];for(var i=0;i<value.length;++i){var item=value[i];if(!item)continue;var textItem={Name:null,Text:null};if(item.Name)textItem.Name=item.Name;if(item.Text)textItem.Text=item.Text;if(item.Color)textItem.Color=item.Color;if(IFrameSplitOperator.IsNumber(item.LeftSpace))textItem.LeftSpace=item.LeftSpace;aryText.push(textItem);}return{Text:null,ArrayText:aryText};}return null;};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;}//十字光标锁定状态 禁用显示最后一个数据
6036
6036
  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;//当前屏数据索引
6037
6037
  }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();/* 测试用
6038
6038
  if (this.TitleRect)
@@ -6053,7 +6053,7 @@ var value=null;var preVaildItem=null;if(item.DataType=="StraightLine")//直线
6053
6053
  {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;//显示最后一个数据
6054
6054
  }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")//多线段数据
6055
6055
  {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")//当前值无效,上一个值延续
6056
- {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(item.DataType=="ChartIndexTitle"){var text=item.Data.Data[dataIndex];if(!IFrameSplitOperator.IsString(text))return null;return{Text:text,ArrayText:null};}else if(g_ScriptIndexChartFactory.Has(item.DataType))//外部挂接
6056
+ {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.FormatKLineTitle(value,item);if(!aryText)return null;return{Text:null,ArrayText:aryText};}else if(item.DataType=="ChartIndexTitle"){var outTitle=this.FormatIndexTitle(value,item);return outTitle;}else if(g_ScriptIndexChartFactory.Has(item.DataType))//外部挂接
6057
6057
  {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")//默认不输出
6058
6058
  return null;var arrowSuper=null;//独立颜色
6059
6059
  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);//动态标题
@@ -6071,8 +6071,8 @@ for(var i=0;i<aryText.length;++i){var item=aryText[i];if(!item.Text)continue;var
6071
6071
  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个指标一行
6072
6072
  {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};//保存下标题的坐标
6073
6073
  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个数据
6074
- {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个像素
6075
- 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};//保存下标题的坐标
6074
+ {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.FormatKLineTitle(value,item);if(!aryText)continue;}else if(item.DataType=="ChartIndexTitle"){var outTitle=this.FormatIndexTitle(value,item);if(!outTitle)continue;valueText=outTitle.Text;aryText=outTitle.ArrayText;}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个像素
6075
+ if(x+textWidth>right)break;if(IFrameSplitOperator.IsNumber(titleItem.LeftSpace))x+=titleItem.LeftSpace*pixelRatio;if(this.OverlayIndexType.BGColor){this.Canvas.fillStyle=this.OverlayIndexType.BGColor;var rtBG={Left:x,Top:y-fontHeight/2,Width:textWidth,Height:fontHeight+lineSpace};//保存下标题的坐标
6076
6076
  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个像素
6077
6077
  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};//保存下标题的坐标
6078
6078
  this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}this.Canvas.fillStyle=item.Color;this.Canvas.fillText(text,x,y,textWidth);x+=textWidth;}}y+=fontHeight+lineSpace;if(y+fontHeight+lineSpace>=bottom)break;}}catch(err){_didIteratorError11=true;_iteratorError11=err;}finally{try{if(!_iteratorNormalCompletion11&&_iterator11.return){_iterator11.return();}}finally{if(_didIteratorError11){throw _iteratorError11;}}}};this.DrawOverlayIndex=function(left)//叠加指标标题
@@ -11932,7 +11932,7 @@ var titleInfo={Data:[],Title:this.Name,Frame:this.OverlayIndex.Frame.Frame,Scrip
11932
11932
  if(hqChart.Frame.SubFrame[windowIndex]){var mainFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(mainFrame)this.OverlayIndex.Frame.Frame.XPointCount=mainFrame.XPointCount;//跟主窗口同步下页面显示数据个数
11933
11933
  }for(var i=0;i<this.OutVar.length;++i){var _item29=this.OutVar[i];if(_item29.IsExData===true)continue;//扩展数据不显示图形
11934
11934
  if(_item29.Type==0){this.CreateLine(hqChart,windowIndex,_item29,i,_item29.Type);}else if(_item29.Type==1){switch(_item29.Draw.DrawType){case'STICKLINE':this.CreateBar(hqChart,windowIndex,_item29,i);break;case'DRAWTEXT':this.CreateDrawTextV2(hqChart,windowIndex,_item29,i);break;case'SUPERDRAWTEXT':this.CreateText(hqChart,windowIndex,_item29,i);break;case'DRAWLINE':this.CreateStraightLine(hqChart,windowIndex,_item29,i);break;case'DRAWBAND':this.CreateBand(hqChart,windowIndex,_item29,i);break;case'DRAWKLINE':this.CreateKLine(hqChart,windowIndex,_item29,i);break;case'DRAWKLINE_IF':this.CreateKLine(hqChart,windowIndex,_item29,i);break;case'POLYLINE':this.CreatePolyLine(hqChart,windowIndex,_item29,i);break;case'DRAWGBK':case"DRAWGBK2":this.CreateBackgroud(hqChart,windowIndex,_item29,i);break;case'DRAWNUMBER':case"DRAWNUMBER_FIX":case'DRAWTEXT_FIX':this.CreateNumberText(hqChart,windowIndex,_item29,i);break;case'DRAWICON':this.CreateIcon(hqChart,windowIndex,_item29,i);break;case"TIPICON":this.CreateTipIcon(hqChart,windowIndex,_item29,i);break;case'DRAWCHANNEL':this.CreateChannel(hqChart,windowIndex,_item29,i);break;case'DRAWTEXT_LINE':this.CreateTextLine(hqChart,windowIndex,_item29,i);break;case"VERTLINE":this.CreateChartVericaltLine(hqChart,windowIndex,_item29,i);break;case"HORLINE":this.CreateChartHorizontalLine(hqChart,windowIndex,_item29,i);break;case'MULTI_LINE':this.CreateMultiLine(hqChart,windowIndex,_item29,i);break;case"MULTI_POINT":this.CreateMultiPoint(hqChart,windowIndex,_item29,i);break;case'MULTI_BAR':this.CreateMultiBar(hqChart,windowIndex,_item29,i);break;case'MULTI_TEXT':this.CreateMultiText(hqChart,windowIndex,_item29,i);break;case'MULTI_SVGICON':this.CreateMultiSVGIcon(hqChart,windowIndex,_item29,i);break;case"DRAWSVG":this.CreateChartDrawSVG(hqChart,windowIndex,_item29,i);break;case"MULTI_HTMLDOM":this.CreateMulitHtmlDom(hqChart,windowIndex,_item29,i);break;case"DRAW_SIMPLE_TABLE":this.CreateSimpleTable(hqChart,windowIndex,_item29,i);break;case"DRAW_SIMPLE_PIE":this.CreateSimplePie(hqChart,windowIndex,_item29,i);break;case"DRAW_SIMPLE_DOUGHNUT":this.CreateSimpleDoughnut(hqChart,windowIndex,_item29,i);break;case"DRAW_SIMPLE_RADAR":this.CreateSimpleRadar(hqChart,windowIndex,_item29,i);break;case"KLINE_BG":this.CreateBackgroud(hqChart,windowIndex,_item29,i);break;case'PARTLINE':this.CreatePartLine(hqChart,windowIndex,_item29,i);break;case"DRAWTEXTABS":case"DRAWTEXTREL":this.CreateDrawText(hqChart,windowIndex,_item29,i);break;case SCRIPT_CHART_NAME.OVERLAY_BARS:this.CreateStackedBar(hqChart,windowIndex,_item29,i);break;case"DRAWCOLORKLINE":this.CreateDrawColorKLine(hqChart,windowIndex,_item29,i);break;default:{var find=g_ScriptIndexChartFactory.Get(_item29.Draw.DrawType);//外部挂接
11935
- if(find&&find.CreateChartCallback)find.CreateChartCallback(hqChart,windowIndex,_item29,i,this);}break;}}else if(_item29.Type==2){this.CreateMACD(hqChart,windowIndex,_item29,i);}else if(_item29.Type==3){this.CreatePointDot(hqChart,windowIndex,_item29,i,hisData);}else if(_item29.Type==4){this.CreateLineStick(hqChart,windowIndex,_item29,i);}else if(_item29.Type==5){this.CreateStick(hqChart,windowIndex,_item29,i);}else if(_item29.Type==6){this.CreateVolStick(hqChart,windowIndex,_item29,i,hisData);}else if(_item29.Type==7){this.CreateLine(hqChart,windowIndex,_item29,i,_item29.Type);}else if(_item29.Type==8){this.CreateLine(hqChart,windowIndex,_item29,i,_item29.Type);}var titleData=titleInfo.Data[i];if(titleData){if(this.FloatPrecision>=0)titleData.FloatPrecision=this.FloatPrecision;if(IFrameSplitOperator.IsNumber(this.StringFormat))titleData.StringFormat=this.StringFormat;}}/*
11935
+ if(find&&find.CreateChartCallback)find.CreateChartCallback(hqChart,windowIndex,_item29,i,this);}break;}}else if(_item29.Type==2){this.CreateMACD(hqChart,windowIndex,_item29,i);}else if(_item29.Type==3){this.CreatePointDot(hqChart,windowIndex,_item29,i,hisData);}else if(_item29.Type==4){this.CreateLineStick(hqChart,windowIndex,_item29,i);}else if(_item29.Type==5){this.CreateStick(hqChart,windowIndex,_item29,i);}else if(_item29.Type==6){this.CreateVolStick(hqChart,windowIndex,_item29,i,hisData);}else if(_item29.Type==7){this.CreateLine(hqChart,windowIndex,_item29,i,_item29.Type);}else if(_item29.Type==8){this.CreateLine(hqChart,windowIndex,_item29,i,_item29.Type);}else if(_item29.Type==10){this.CreateTitle(hqChart,windowIndex,_item29,i);}var titleData=titleInfo.Data[i];if(titleData){if(this.FloatPrecision>=0)titleData.FloatPrecision=this.FloatPrecision;if(IFrameSplitOperator.IsNumber(this.StringFormat))titleData.StringFormat=this.StringFormat;}}/*
11936
11936
  hqChart.TitlePaint[titleIndex].Title=this.Name;
11937
11937
 
11938
11938
  let indexParam='';
@@ -11971,7 +11971,7 @@ this.CreateKLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.
11971
11971
  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);//给一个空的标题
11972
11972
  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;//赋值坐标
11973
11973
  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);
11974
- 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);};//创建图标
11974
+ 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;chart.Identify=overlayIndex.Identify;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.CreateTitle=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartIndexTitle();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);chart.Data.Data=varItem.Data;var titleIndex=windowIndex+1;var titlePaint=hqChart.TitlePaint[titleIndex];var titleData=new DynamicTitleData(chart.Data,chart.Name,chart.Color);titleData.DataType="ChartIndexTitle";titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;this.SetChartIndexName(chart);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);};//创建图标
11975
11975
  this.CreateIcon=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartSingleText();chart.Canvas=hqChart.Canvas;chart.TextAlign='center';chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.DrawVAlign>=0){if(varItem.DrawVAlign==0)chart.Direction=1;else if(varItem.DrawVAlign==1)chart.Direction=0;else if(varItem.DrawVAlign==2)chart.Direction=2;}if(varItem.DrawAlign>=0){if(varItem.DrawAlign==0)chart.TextAlign="left";else if(varItem.DrawAlign==1)chart.TextAlign="center";else if(varItem.DrawAlign==2)chart.TextAlign='right';}if(IFrameSplitOperator.IsNumber(varItem.XOffset))chart.ShowOffset.X=varItem.XOffset;if(IFrameSplitOperator.IsNumber(varItem.YOffset))chart.ShowOffset.Y=varItem.YOffset;chart.Data.Data=varItem.Draw.DrawData;var icon=varItem.Draw.Icon;if(icon.IconFont==true){chart.IconFont={Family:icon.Family,Text:icon.Symbol,Color:icon.Color};}else{chart.Text=icon.Symbol;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else if(icon.Color)chart.Color=icon.Color;else chart.Color='rgb(0,0,0)';}//var titleIndex=windowIndex+1;
11976
11976
  //hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(bar.Data,varItem.Name,bar.Color);
11977
11977
  this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateTipIcon=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartDrawSVG();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.GetKData();chart.Family=varItem.Draw.Icon.Family;chart.TextFont=g_JSChartResource.TIPICON.TextFont;var svgSize=g_JSChartResource.TIPICON.Size;var svgColor=g_JSChartResource.TIPICON.Color;var svgYOffset=0;var svgVAlign=2;//上下对齐方式
@@ -14383,7 +14383,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
14383
14383
  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);};}/********************************************************************************
14384
14384
  * 版本信息输出
14385
14385
  *
14386
- */var HQCHART_VERSION="1.1.14495";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();//把给外界调用的方法暴露出来
14386
+ */var HQCHART_VERSION="1.1.14500";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();//把给外界调用的方法暴露出来
14387
14387
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
14388
14388
  // BaseIndex:BaseIndex,
14389
14389
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.14496",
3
+ "version": "1.1.14501",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -57437,6 +57437,8 @@ HQData.Report_APIIndex=function(data, callback)
57437
57437
  HQData.APIIndex_CHANNEL_V2(data, callback);
57438
57438
  else if (request.Data.indexname=="API_DRAWKLINE")
57439
57439
  HQData.APIIndex_DRAWKLINE(data, callback);
57440
+ else if (request.Data.indexname=="API_TITLE")
57441
+ HQData.APIIndex_TITLE(data, callback);
57440
57442
  }
57441
57443
 
57442
57444
 
@@ -58147,7 +58149,7 @@ HQData.APIIndex_MULTI_BAR=function(data, callback)
58147
58149
  [
58148
58150
  //{Date:20190916, Time: Value:15.5, Value2:0 },
58149
58151
  ],
58150
- Width:10
58152
+ //Width:10
58151
58153
  };
58152
58154
 
58153
58155
  var point2=
@@ -58160,19 +58162,22 @@ HQData.APIIndex_MULTI_BAR=function(data, callback)
58160
58162
  [
58161
58163
  //{Date:20190916, Time: Value:15.5, Value2:0 },
58162
58164
  ],
58163
- Width:10
58165
+ //Width:10
58164
58166
  };
58165
58167
 
58166
58168
  for(var i=0;i<kData.Data.length;++i)
58167
58169
  {
58168
58170
  var item=kData.Data[i];
58169
- point.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2, Value2:item.High});
58170
- point2.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2, Value2:item.Low});
58171
+ ///point.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2, Value2:item.High});
58172
+ ///point2.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2, Value2:item.Low});
58173
+
58174
+ point.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2+HQData.GetRandomTestData(2,10), Value2:item.High});
58175
+ point2.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2-HQData.GetRandomTestData(2,10), Value2:item.Low});
58171
58176
  }
58172
58177
 
58173
58178
 
58174
58179
 
58175
- //barData.Draw.DrawData.push(point);
58180
+ barData.Draw.DrawData.push(point);
58176
58181
  barData.Draw.DrawData.push(point2);
58177
58182
 
58178
58183
  var apiData=
@@ -58354,9 +58359,6 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
58354
58359
  IsShowTitle:true,
58355
58360
  };
58356
58361
 
58357
-
58358
- var textData={ name:"", type:10, color:"rgb(148,0,211)", data:[], isshow:false }; //名字
58359
-
58360
58362
  var aryDate=[];
58361
58363
  var aryTime=[];
58362
58364
  for(var i=100;i<kData.Data.length-100;++i)
@@ -58378,15 +58380,13 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
58378
58380
 
58379
58381
  aryDate.push(kItem.Date);
58380
58382
  aryTime.push(kItem.Time);
58381
-
58382
- textData.data.push(kItem.YClose.toFixed(2));
58383
58383
  }
58384
58384
 
58385
58385
  var apiData=
58386
58386
  {
58387
58387
  code:0,
58388
58388
  stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
58389
- outdata: { date:aryDate, time:aryTime, outvar:[textData, klineData] }
58389
+ outdata: { date:aryDate, time:aryTime, outvar:[ klineData] }
58390
58390
  };
58391
58391
 
58392
58392
  console.log('[HQData.APIIndex_DRAWKLINE] apiData ', apiData);
@@ -58394,3 +58394,45 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
58394
58394
  }
58395
58395
 
58396
58396
 
58397
+ HQData.APIIndex_TITLE=function(data, callback)
58398
+ {
58399
+ data.PreventDefault=true;
58400
+ var hqchart=data.HQChart;
58401
+ var kData=hqchart.GetKData();
58402
+
58403
+ var textData={ name:"标题", type:10, color:"rgb(0,128,128)", data:[], }; //名字
58404
+ var closeData={ name:"收盘价", type:0, color:"rgb(255,165,0)", data:[] } ; //
58405
+
58406
+ var aryDate=[];
58407
+ var aryTime=[];
58408
+ for(var i=0;i<kData.Data.length-30;++i)
58409
+ {
58410
+ var kItem=kData.Data[i];
58411
+
58412
+ closeData.data.push(kItem.Close);
58413
+
58414
+ textData.data.push(
58415
+ [
58416
+ { Name:`收`, Text:`${kItem.Close.toFixed(2)}`, Color:"rgb(200,10,10)",},
58417
+ { Name:`开`, Text:`${kItem.Open.toFixed(2)}`, Color:"rgb(0,200,10)", LeftSpace:2 }
58418
+ ]);
58419
+
58420
+ //textData.data.push(`价格:${kItem.Close.toFixed(2)}`);
58421
+
58422
+ aryDate.push(kItem.Date);
58423
+ aryTime.push(kItem.Time);
58424
+ }
58425
+
58426
+
58427
+ var apiData=
58428
+ {
58429
+ code:0,
58430
+ stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
58431
+ outdata: { date:aryDate, time:aryTime, outvar:[ textData, closeData] }
58432
+ };
58433
+
58434
+ console.log('[HQData.APIIndex_TITLE] apiData ', apiData);
58435
+ callback(apiData);
58436
+ }
58437
+
58438
+
@@ -23021,6 +23021,12 @@ function OverlayScriptIndex(name,script,args,option)
23021
23021
  {
23022
23022
  this.CreateLine(hqChart,windowIndex,item,i, item.Type);
23023
23023
  }
23024
+ else if (item.Type==10)
23025
+ {
23026
+ this.CreateTitle(hqChart,windowIndex,item,i);
23027
+ }
23028
+
23029
+
23024
23030
 
23025
23031
  var titleData=titleInfo.Data[i];
23026
23032
  if (titleData)
@@ -23588,6 +23594,7 @@ function OverlayScriptIndex(name,script,args,option)
23588
23594
  chart.Name=varItem.Name;
23589
23595
  chart.ChartBorder=frame.Frame.ChartBorder;
23590
23596
  chart.ChartFrame=frame.Frame;
23597
+ chart.Identify=overlayIndex.Identify;
23591
23598
  if (varItem.Draw && varItem.Draw.DrawData)
23592
23599
  {
23593
23600
  var drawData=varItem.Draw.DrawData;
@@ -23599,6 +23606,32 @@ function OverlayScriptIndex(name,script,args,option)
23599
23606
  frame.ChartPaint.push(chart);
23600
23607
  }
23601
23608
 
23609
+ this.CreateTitle=function(hqChart,windowIndex,varItem,id)
23610
+ {
23611
+ var overlayIndex=this.OverlayIndex;
23612
+ var frame=overlayIndex.Frame;
23613
+ let chart=new ChartIndexTitle();
23614
+ chart.Canvas=hqChart.Canvas;
23615
+
23616
+ chart.Name=varItem.Name;
23617
+ chart.ChartBorder=frame.Frame.ChartBorder;
23618
+ chart.ChartFrame=frame.Frame;
23619
+ chart.Identify=overlayIndex.Identify;
23620
+
23621
+ if (varItem.Color) chart.Color=this.GetColor(varItem.Color);
23622
+ else chart.Color=this.GetDefaultColor(id);
23623
+ chart.Data.Data=varItem.Data;
23624
+
23625
+ var titleIndex=windowIndex+1;
23626
+ var titlePaint=hqChart.TitlePaint[titleIndex];
23627
+ var titleData=new DynamicTitleData(chart.Data,chart.Name,chart.Color);
23628
+ titleData.DataType="ChartIndexTitle";
23629
+ titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;
23630
+
23631
+ this.SetChartIndexName(chart);
23632
+ frame.ChartPaint.push(chart);
23633
+ }
23634
+
23602
23635
  this.CreateStackedBar=function(hqChart,windowIndex,varItem,id)
23603
23636
  {
23604
23637
  var overlayIndex=this.OverlayIndex;
@@ -946,7 +946,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
946
946
  {
947
947
  if (!option.DragSelectRect)
948
948
  {
949
- option.DragSelectRect={ EnableLButton:true }; //默认开启区间选中画布
949
+ option.DragSelectRect={ Enable:true }; //默认开启区间选中画布
950
950
  }
951
951
 
952
952
  if (option.DragSelectRect)
@@ -58163,7 +58163,7 @@ function DynamicChartTitlePainting()
58163
58163
  return aryText;
58164
58164
  }
58165
58165
 
58166
- this.FromatKLineTitle=function(item, dataInfo)
58166
+ this.FormatKLineTitle=function(item, dataInfo)
58167
58167
  {
58168
58168
  var defaultfloatPrecision=GetfloatPrecision(dataInfo.Symbol);//价格小数位数
58169
58169
  var upperSymbol="";
@@ -58241,6 +58241,35 @@ function DynamicChartTitlePainting()
58241
58241
  return aryText;
58242
58242
  }
58243
58243
 
58244
+ this.FormatIndexTitle=function(value, dataInfo)
58245
+ {
58246
+ if (!value) return null;
58247
+
58248
+ if (IFrameSplitOperator.IsString(value)) return { Text:value, ArrayText:null };
58249
+
58250
+ if (IFrameSplitOperator.IsNonEmptyArray(value))
58251
+ {
58252
+ var aryText=[];
58253
+ for(var i=0;i<value.length;++i)
58254
+ {
58255
+ var item=value[i];
58256
+ if (!item) continue;
58257
+
58258
+ var textItem={ Name:null, Text:null };
58259
+ if (item.Name) textItem.Name=item.Name;
58260
+ if (item.Text) textItem.Text=item.Text;
58261
+ if (item.Color) textItem.Color=item.Color;
58262
+ if (IFrameSplitOperator.IsNumber(item.LeftSpace)) textItem.LeftSpace=item.LeftSpace;
58263
+
58264
+ aryText.push(textItem);
58265
+ }
58266
+
58267
+ return { Text:null, ArrayText:aryText }
58268
+ }
58269
+
58270
+ return null;
58271
+ }
58272
+
58244
58273
  this.GetColor=function(price,yClose)
58245
58274
  {
58246
58275
  if (!IFrameSplitOperator.IsNumber(yClose)) return this.UnchangeColor;
@@ -58738,15 +58767,14 @@ function DynamicChartTitlePainting()
58738
58767
  }
58739
58768
  else if (item.DataType=="DRAWKLINE")
58740
58769
  {
58741
- aryText=this.FromatKLineTitle(value, item);
58770
+ aryText=this.FormatKLineTitle(value, item);
58742
58771
  if (!aryText) return null;
58743
58772
  return { Text:null, ArrayText:aryText };
58744
58773
  }
58745
58774
  else if (item.DataType=="ChartIndexTitle")
58746
58775
  {
58747
- var text=item.Data.Data[dataIndex];
58748
- if (!IFrameSplitOperator.IsString(text)) return null;
58749
- return { Text:text, ArrayText:null };
58776
+ var outTitle=this.FormatIndexTitle(value, item);
58777
+ return outTitle;
58750
58778
  }
58751
58779
  else if (g_ScriptIndexChartFactory.Has(item.DataType)) //外部挂接
58752
58780
  {
@@ -59140,9 +59168,17 @@ function DynamicChartTitlePainting()
59140
59168
  }
59141
59169
  else if (item.DataType=="DRAWKLINE")
59142
59170
  {
59143
- aryText=this.FromatKLineTitle(value, item);
59171
+ aryText=this.FormatKLineTitle(value, item);
59144
59172
  if (!aryText) continue;
59145
59173
  }
59174
+ else if (item.DataType=="ChartIndexTitle")
59175
+ {
59176
+ var outTitle=this.FormatIndexTitle(value, item);
59177
+ if (!outTitle) continue;
59178
+
59179
+ valueText=outTitle.Text;
59180
+ aryText=outTitle.ArrayText;
59181
+ }
59146
59182
  else
59147
59183
  {
59148
59184
  valueText=this.FormatValue(value,item);
@@ -59160,6 +59196,8 @@ function DynamicChartTitlePainting()
59160
59196
  var textWidth=this.Canvas.measureText(text).width+2; //后空2个像素
59161
59197
  if ((x+textWidth)>right) break;
59162
59198
 
59199
+ if (IFrameSplitOperator.IsNumber(titleItem.LeftSpace)) x+=titleItem.LeftSpace*pixelRatio;
59200
+
59163
59201
  if (this.OverlayIndexType.BGColor)
59164
59202
  {
59165
59203
  this.Canvas.fillStyle=this.OverlayIndexType.BGColor;
@@ -1923,6 +1923,8 @@ HQData.Report_APIIndex=function(data, callback)
1923
1923
  HQData.APIIndex_CHANNEL_V2(data, callback);
1924
1924
  else if (request.Data.indexname=="API_DRAWKLINE")
1925
1925
  HQData.APIIndex_DRAWKLINE(data, callback);
1926
+ else if (request.Data.indexname=="API_TITLE")
1927
+ HQData.APIIndex_TITLE(data, callback);
1926
1928
  }
1927
1929
 
1928
1930
 
@@ -2633,7 +2635,7 @@ HQData.APIIndex_MULTI_BAR=function(data, callback)
2633
2635
  [
2634
2636
  //{Date:20190916, Time: Value:15.5, Value2:0 },
2635
2637
  ],
2636
- Width:10
2638
+ //Width:10
2637
2639
  };
2638
2640
 
2639
2641
  var point2=
@@ -2646,19 +2648,22 @@ HQData.APIIndex_MULTI_BAR=function(data, callback)
2646
2648
  [
2647
2649
  //{Date:20190916, Time: Value:15.5, Value2:0 },
2648
2650
  ],
2649
- Width:10
2651
+ //Width:10
2650
2652
  };
2651
2653
 
2652
2654
  for(var i=0;i<kData.Data.length;++i)
2653
2655
  {
2654
2656
  var item=kData.Data[i];
2655
- point.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2, Value2:item.High});
2656
- point2.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2, Value2:item.Low});
2657
+ ///point.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2, Value2:item.High});
2658
+ ///point2.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2, Value2:item.Low});
2659
+
2660
+ point.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2+HQData.GetRandomTestData(2,10), Value2:item.High});
2661
+ point2.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2-HQData.GetRandomTestData(2,10), Value2:item.Low});
2657
2662
  }
2658
2663
 
2659
2664
 
2660
2665
 
2661
- //barData.Draw.DrawData.push(point);
2666
+ barData.Draw.DrawData.push(point);
2662
2667
  barData.Draw.DrawData.push(point2);
2663
2668
 
2664
2669
  var apiData=
@@ -2840,9 +2845,6 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
2840
2845
  IsShowTitle:true,
2841
2846
  };
2842
2847
 
2843
-
2844
- var textData={ name:"", type:10, color:"rgb(148,0,211)", data:[], isshow:false }; //名字
2845
-
2846
2848
  var aryDate=[];
2847
2849
  var aryTime=[];
2848
2850
  for(var i=100;i<kData.Data.length-100;++i)
@@ -2864,15 +2866,13 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
2864
2866
 
2865
2867
  aryDate.push(kItem.Date);
2866
2868
  aryTime.push(kItem.Time);
2867
-
2868
- textData.data.push(kItem.YClose.toFixed(2));
2869
2869
  }
2870
2870
 
2871
2871
  var apiData=
2872
2872
  {
2873
2873
  code:0,
2874
2874
  stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
2875
- outdata: { date:aryDate, time:aryTime, outvar:[textData, klineData] }
2875
+ outdata: { date:aryDate, time:aryTime, outvar:[ klineData] }
2876
2876
  };
2877
2877
 
2878
2878
  console.log('[HQData.APIIndex_DRAWKLINE] apiData ', apiData);
@@ -2880,3 +2880,45 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
2880
2880
  }
2881
2881
 
2882
2882
 
2883
+ HQData.APIIndex_TITLE=function(data, callback)
2884
+ {
2885
+ data.PreventDefault=true;
2886
+ var hqchart=data.HQChart;
2887
+ var kData=hqchart.GetKData();
2888
+
2889
+ var textData={ name:"标题", type:10, color:"rgb(0,128,128)", data:[], }; //名字
2890
+ var closeData={ name:"收盘价", type:0, color:"rgb(255,165,0)", data:[] } ; //
2891
+
2892
+ var aryDate=[];
2893
+ var aryTime=[];
2894
+ for(var i=0;i<kData.Data.length-30;++i)
2895
+ {
2896
+ var kItem=kData.Data[i];
2897
+
2898
+ closeData.data.push(kItem.Close);
2899
+
2900
+ textData.data.push(
2901
+ [
2902
+ { Name:`收`, Text:`${kItem.Close.toFixed(2)}`, Color:"rgb(200,10,10)",},
2903
+ { Name:`开`, Text:`${kItem.Open.toFixed(2)}`, Color:"rgb(0,200,10)", LeftSpace:2 }
2904
+ ]);
2905
+
2906
+ //textData.data.push(`价格:${kItem.Close.toFixed(2)}`);
2907
+
2908
+ aryDate.push(kItem.Date);
2909
+ aryTime.push(kItem.Time);
2910
+ }
2911
+
2912
+
2913
+ var apiData=
2914
+ {
2915
+ code:0,
2916
+ stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
2917
+ outdata: { date:aryDate, time:aryTime, outvar:[ textData, closeData] }
2918
+ };
2919
+
2920
+ console.log('[HQData.APIIndex_TITLE] apiData ', apiData);
2921
+ callback(apiData);
2922
+ }
2923
+
2924
+
@@ -4871,7 +4871,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4871
4871
  {
4872
4872
  if (!option.DragSelectRect)
4873
4873
  {
4874
- option.DragSelectRect={ EnableLButton:true }; //默认开启区间选中画布
4874
+ option.DragSelectRect={ Enable:true }; //默认开启区间选中画布
4875
4875
  }
4876
4876
 
4877
4877
  if (option.DragSelectRect)
@@ -62088,7 +62088,7 @@ function DynamicChartTitlePainting()
62088
62088
  return aryText;
62089
62089
  }
62090
62090
 
62091
- this.FromatKLineTitle=function(item, dataInfo)
62091
+ this.FormatKLineTitle=function(item, dataInfo)
62092
62092
  {
62093
62093
  var defaultfloatPrecision=GetfloatPrecision(dataInfo.Symbol);//价格小数位数
62094
62094
  var upperSymbol="";
@@ -62166,6 +62166,35 @@ function DynamicChartTitlePainting()
62166
62166
  return aryText;
62167
62167
  }
62168
62168
 
62169
+ this.FormatIndexTitle=function(value, dataInfo)
62170
+ {
62171
+ if (!value) return null;
62172
+
62173
+ if (IFrameSplitOperator.IsString(value)) return { Text:value, ArrayText:null };
62174
+
62175
+ if (IFrameSplitOperator.IsNonEmptyArray(value))
62176
+ {
62177
+ var aryText=[];
62178
+ for(var i=0;i<value.length;++i)
62179
+ {
62180
+ var item=value[i];
62181
+ if (!item) continue;
62182
+
62183
+ var textItem={ Name:null, Text:null };
62184
+ if (item.Name) textItem.Name=item.Name;
62185
+ if (item.Text) textItem.Text=item.Text;
62186
+ if (item.Color) textItem.Color=item.Color;
62187
+ if (IFrameSplitOperator.IsNumber(item.LeftSpace)) textItem.LeftSpace=item.LeftSpace;
62188
+
62189
+ aryText.push(textItem);
62190
+ }
62191
+
62192
+ return { Text:null, ArrayText:aryText }
62193
+ }
62194
+
62195
+ return null;
62196
+ }
62197
+
62169
62198
  this.GetColor=function(price,yClose)
62170
62199
  {
62171
62200
  if (!IFrameSplitOperator.IsNumber(yClose)) return this.UnchangeColor;
@@ -62663,15 +62692,14 @@ function DynamicChartTitlePainting()
62663
62692
  }
62664
62693
  else if (item.DataType=="DRAWKLINE")
62665
62694
  {
62666
- aryText=this.FromatKLineTitle(value, item);
62695
+ aryText=this.FormatKLineTitle(value, item);
62667
62696
  if (!aryText) return null;
62668
62697
  return { Text:null, ArrayText:aryText };
62669
62698
  }
62670
62699
  else if (item.DataType=="ChartIndexTitle")
62671
62700
  {
62672
- var text=item.Data.Data[dataIndex];
62673
- if (!IFrameSplitOperator.IsString(text)) return null;
62674
- return { Text:text, ArrayText:null };
62701
+ var outTitle=this.FormatIndexTitle(value, item);
62702
+ return outTitle;
62675
62703
  }
62676
62704
  else if (g_ScriptIndexChartFactory.Has(item.DataType)) //外部挂接
62677
62705
  {
@@ -63065,9 +63093,17 @@ function DynamicChartTitlePainting()
63065
63093
  }
63066
63094
  else if (item.DataType=="DRAWKLINE")
63067
63095
  {
63068
- aryText=this.FromatKLineTitle(value, item);
63096
+ aryText=this.FormatKLineTitle(value, item);
63069
63097
  if (!aryText) continue;
63070
63098
  }
63099
+ else if (item.DataType=="ChartIndexTitle")
63100
+ {
63101
+ var outTitle=this.FormatIndexTitle(value, item);
63102
+ if (!outTitle) continue;
63103
+
63104
+ valueText=outTitle.Text;
63105
+ aryText=outTitle.ArrayText;
63106
+ }
63071
63107
  else
63072
63108
  {
63073
63109
  valueText=this.FormatValue(value,item);
@@ -63085,6 +63121,8 @@ function DynamicChartTitlePainting()
63085
63121
  var textWidth=this.Canvas.measureText(text).width+2; //后空2个像素
63086
63122
  if ((x+textWidth)>right) break;
63087
63123
 
63124
+ if (IFrameSplitOperator.IsNumber(titleItem.LeftSpace)) x+=titleItem.LeftSpace*pixelRatio;
63125
+
63088
63126
  if (this.OverlayIndexType.BGColor)
63089
63127
  {
63090
63128
  this.Canvas.fillStyle=this.OverlayIndexType.BGColor;
@@ -125508,6 +125546,12 @@ function OverlayScriptIndex(name,script,args,option)
125508
125546
  {
125509
125547
  this.CreateLine(hqChart,windowIndex,item,i, item.Type);
125510
125548
  }
125549
+ else if (item.Type==10)
125550
+ {
125551
+ this.CreateTitle(hqChart,windowIndex,item,i);
125552
+ }
125553
+
125554
+
125511
125555
 
125512
125556
  var titleData=titleInfo.Data[i];
125513
125557
  if (titleData)
@@ -126075,6 +126119,7 @@ function OverlayScriptIndex(name,script,args,option)
126075
126119
  chart.Name=varItem.Name;
126076
126120
  chart.ChartBorder=frame.Frame.ChartBorder;
126077
126121
  chart.ChartFrame=frame.Frame;
126122
+ chart.Identify=overlayIndex.Identify;
126078
126123
  if (varItem.Draw && varItem.Draw.DrawData)
126079
126124
  {
126080
126125
  var drawData=varItem.Draw.DrawData;
@@ -126086,6 +126131,32 @@ function OverlayScriptIndex(name,script,args,option)
126086
126131
  frame.ChartPaint.push(chart);
126087
126132
  }
126088
126133
 
126134
+ this.CreateTitle=function(hqChart,windowIndex,varItem,id)
126135
+ {
126136
+ var overlayIndex=this.OverlayIndex;
126137
+ var frame=overlayIndex.Frame;
126138
+ let chart=new ChartIndexTitle();
126139
+ chart.Canvas=hqChart.Canvas;
126140
+
126141
+ chart.Name=varItem.Name;
126142
+ chart.ChartBorder=frame.Frame.ChartBorder;
126143
+ chart.ChartFrame=frame.Frame;
126144
+ chart.Identify=overlayIndex.Identify;
126145
+
126146
+ if (varItem.Color) chart.Color=this.GetColor(varItem.Color);
126147
+ else chart.Color=this.GetDefaultColor(id);
126148
+ chart.Data.Data=varItem.Data;
126149
+
126150
+ var titleIndex=windowIndex+1;
126151
+ var titlePaint=hqChart.TitlePaint[titleIndex];
126152
+ var titleData=new DynamicTitleData(chart.Data,chart.Name,chart.Color);
126153
+ titleData.DataType="ChartIndexTitle";
126154
+ titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;
126155
+
126156
+ this.SetChartIndexName(chart);
126157
+ frame.ChartPaint.push(chart);
126158
+ }
126159
+
126089
126160
  this.CreateStackedBar=function(hqChart,windowIndex,varItem,id)
126090
126161
  {
126091
126162
  var overlayIndex=this.OverlayIndex;
@@ -144248,7 +144319,7 @@ function ScrollBarBGChart()
144248
144319
 
144249
144320
 
144250
144321
 
144251
- var HQCHART_VERSION="1.1.14495";
144322
+ var HQCHART_VERSION="1.1.14500";
144252
144323
 
144253
144324
  function PrintHQChartVersion()
144254
144325
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.14495";
8
+ var HQCHART_VERSION="1.1.14500";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -57455,6 +57455,8 @@ HQData.Report_APIIndex=function(data, callback)
57455
57455
  HQData.APIIndex_CHANNEL_V2(data, callback);
57456
57456
  else if (request.Data.indexname=="API_DRAWKLINE")
57457
57457
  HQData.APIIndex_DRAWKLINE(data, callback);
57458
+ else if (request.Data.indexname=="API_TITLE")
57459
+ HQData.APIIndex_TITLE(data, callback);
57458
57460
  }
57459
57461
 
57460
57462
 
@@ -58165,7 +58167,7 @@ HQData.APIIndex_MULTI_BAR=function(data, callback)
58165
58167
  [
58166
58168
  //{Date:20190916, Time: Value:15.5, Value2:0 },
58167
58169
  ],
58168
- Width:10
58170
+ //Width:10
58169
58171
  };
58170
58172
 
58171
58173
  var point2=
@@ -58178,19 +58180,22 @@ HQData.APIIndex_MULTI_BAR=function(data, callback)
58178
58180
  [
58179
58181
  //{Date:20190916, Time: Value:15.5, Value2:0 },
58180
58182
  ],
58181
- Width:10
58183
+ //Width:10
58182
58184
  };
58183
58185
 
58184
58186
  for(var i=0;i<kData.Data.length;++i)
58185
58187
  {
58186
58188
  var item=kData.Data[i];
58187
- point.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2, Value2:item.High});
58188
- point2.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2, Value2:item.Low});
58189
+ ///point.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2, Value2:item.High});
58190
+ ///point2.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2, Value2:item.Low});
58191
+
58192
+ point.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2+HQData.GetRandomTestData(2,10), Value2:item.High});
58193
+ point2.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2-HQData.GetRandomTestData(2,10), Value2:item.Low});
58189
58194
  }
58190
58195
 
58191
58196
 
58192
58197
 
58193
- //barData.Draw.DrawData.push(point);
58198
+ barData.Draw.DrawData.push(point);
58194
58199
  barData.Draw.DrawData.push(point2);
58195
58200
 
58196
58201
  var apiData=
@@ -58372,9 +58377,6 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
58372
58377
  IsShowTitle:true,
58373
58378
  };
58374
58379
 
58375
-
58376
- var textData={ name:"", type:10, color:"rgb(148,0,211)", data:[], isshow:false }; //名字
58377
-
58378
58380
  var aryDate=[];
58379
58381
  var aryTime=[];
58380
58382
  for(var i=100;i<kData.Data.length-100;++i)
@@ -58396,15 +58398,13 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
58396
58398
 
58397
58399
  aryDate.push(kItem.Date);
58398
58400
  aryTime.push(kItem.Time);
58399
-
58400
- textData.data.push(kItem.YClose.toFixed(2));
58401
58401
  }
58402
58402
 
58403
58403
  var apiData=
58404
58404
  {
58405
58405
  code:0,
58406
58406
  stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
58407
- outdata: { date:aryDate, time:aryTime, outvar:[textData, klineData] }
58407
+ outdata: { date:aryDate, time:aryTime, outvar:[ klineData] }
58408
58408
  };
58409
58409
 
58410
58410
  console.log('[HQData.APIIndex_DRAWKLINE] apiData ', apiData);
@@ -58412,6 +58412,48 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
58412
58412
  }
58413
58413
 
58414
58414
 
58415
+ HQData.APIIndex_TITLE=function(data, callback)
58416
+ {
58417
+ data.PreventDefault=true;
58418
+ var hqchart=data.HQChart;
58419
+ var kData=hqchart.GetKData();
58420
+
58421
+ var textData={ name:"标题", type:10, color:"rgb(0,128,128)", data:[], }; //名字
58422
+ var closeData={ name:"收盘价", type:0, color:"rgb(255,165,0)", data:[] } ; //
58423
+
58424
+ var aryDate=[];
58425
+ var aryTime=[];
58426
+ for(var i=0;i<kData.Data.length-30;++i)
58427
+ {
58428
+ var kItem=kData.Data[i];
58429
+
58430
+ closeData.data.push(kItem.Close);
58431
+
58432
+ textData.data.push(
58433
+ [
58434
+ { Name:`收`, Text:`${kItem.Close.toFixed(2)}`, Color:"rgb(200,10,10)",},
58435
+ { Name:`开`, Text:`${kItem.Open.toFixed(2)}`, Color:"rgb(0,200,10)", LeftSpace:2 }
58436
+ ]);
58437
+
58438
+ //textData.data.push(`价格:${kItem.Close.toFixed(2)}`);
58439
+
58440
+ aryDate.push(kItem.Date);
58441
+ aryTime.push(kItem.Time);
58442
+ }
58443
+
58444
+
58445
+ var apiData=
58446
+ {
58447
+ code:0,
58448
+ stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
58449
+ outdata: { date:aryDate, time:aryTime, outvar:[ textData, closeData] }
58450
+ };
58451
+
58452
+ console.log('[HQData.APIIndex_TITLE] apiData ', apiData);
58453
+ callback(apiData);
58454
+ }
58455
+
58456
+
58415
58457
 
58416
58458
 
58417
58459
  /*暴露外部用的方法*/
@@ -4915,7 +4915,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4915
4915
  {
4916
4916
  if (!option.DragSelectRect)
4917
4917
  {
4918
- option.DragSelectRect={ EnableLButton:true }; //默认开启区间选中画布
4918
+ option.DragSelectRect={ Enable:true }; //默认开启区间选中画布
4919
4919
  }
4920
4920
 
4921
4921
  if (option.DragSelectRect)
@@ -62132,7 +62132,7 @@ function DynamicChartTitlePainting()
62132
62132
  return aryText;
62133
62133
  }
62134
62134
 
62135
- this.FromatKLineTitle=function(item, dataInfo)
62135
+ this.FormatKLineTitle=function(item, dataInfo)
62136
62136
  {
62137
62137
  var defaultfloatPrecision=GetfloatPrecision(dataInfo.Symbol);//价格小数位数
62138
62138
  var upperSymbol="";
@@ -62210,6 +62210,35 @@ function DynamicChartTitlePainting()
62210
62210
  return aryText;
62211
62211
  }
62212
62212
 
62213
+ this.FormatIndexTitle=function(value, dataInfo)
62214
+ {
62215
+ if (!value) return null;
62216
+
62217
+ if (IFrameSplitOperator.IsString(value)) return { Text:value, ArrayText:null };
62218
+
62219
+ if (IFrameSplitOperator.IsNonEmptyArray(value))
62220
+ {
62221
+ var aryText=[];
62222
+ for(var i=0;i<value.length;++i)
62223
+ {
62224
+ var item=value[i];
62225
+ if (!item) continue;
62226
+
62227
+ var textItem={ Name:null, Text:null };
62228
+ if (item.Name) textItem.Name=item.Name;
62229
+ if (item.Text) textItem.Text=item.Text;
62230
+ if (item.Color) textItem.Color=item.Color;
62231
+ if (IFrameSplitOperator.IsNumber(item.LeftSpace)) textItem.LeftSpace=item.LeftSpace;
62232
+
62233
+ aryText.push(textItem);
62234
+ }
62235
+
62236
+ return { Text:null, ArrayText:aryText }
62237
+ }
62238
+
62239
+ return null;
62240
+ }
62241
+
62213
62242
  this.GetColor=function(price,yClose)
62214
62243
  {
62215
62244
  if (!IFrameSplitOperator.IsNumber(yClose)) return this.UnchangeColor;
@@ -62707,15 +62736,14 @@ function DynamicChartTitlePainting()
62707
62736
  }
62708
62737
  else if (item.DataType=="DRAWKLINE")
62709
62738
  {
62710
- aryText=this.FromatKLineTitle(value, item);
62739
+ aryText=this.FormatKLineTitle(value, item);
62711
62740
  if (!aryText) return null;
62712
62741
  return { Text:null, ArrayText:aryText };
62713
62742
  }
62714
62743
  else if (item.DataType=="ChartIndexTitle")
62715
62744
  {
62716
- var text=item.Data.Data[dataIndex];
62717
- if (!IFrameSplitOperator.IsString(text)) return null;
62718
- return { Text:text, ArrayText:null };
62745
+ var outTitle=this.FormatIndexTitle(value, item);
62746
+ return outTitle;
62719
62747
  }
62720
62748
  else if (g_ScriptIndexChartFactory.Has(item.DataType)) //外部挂接
62721
62749
  {
@@ -63109,9 +63137,17 @@ function DynamicChartTitlePainting()
63109
63137
  }
63110
63138
  else if (item.DataType=="DRAWKLINE")
63111
63139
  {
63112
- aryText=this.FromatKLineTitle(value, item);
63140
+ aryText=this.FormatKLineTitle(value, item);
63113
63141
  if (!aryText) continue;
63114
63142
  }
63143
+ else if (item.DataType=="ChartIndexTitle")
63144
+ {
63145
+ var outTitle=this.FormatIndexTitle(value, item);
63146
+ if (!outTitle) continue;
63147
+
63148
+ valueText=outTitle.Text;
63149
+ aryText=outTitle.ArrayText;
63150
+ }
63115
63151
  else
63116
63152
  {
63117
63153
  valueText=this.FormatValue(value,item);
@@ -63129,6 +63165,8 @@ function DynamicChartTitlePainting()
63129
63165
  var textWidth=this.Canvas.measureText(text).width+2; //后空2个像素
63130
63166
  if ((x+textWidth)>right) break;
63131
63167
 
63168
+ if (IFrameSplitOperator.IsNumber(titleItem.LeftSpace)) x+=titleItem.LeftSpace*pixelRatio;
63169
+
63132
63170
  if (this.OverlayIndexType.BGColor)
63133
63171
  {
63134
63172
  this.Canvas.fillStyle=this.OverlayIndexType.BGColor;
@@ -125552,6 +125590,12 @@ function OverlayScriptIndex(name,script,args,option)
125552
125590
  {
125553
125591
  this.CreateLine(hqChart,windowIndex,item,i, item.Type);
125554
125592
  }
125593
+ else if (item.Type==10)
125594
+ {
125595
+ this.CreateTitle(hqChart,windowIndex,item,i);
125596
+ }
125597
+
125598
+
125555
125599
 
125556
125600
  var titleData=titleInfo.Data[i];
125557
125601
  if (titleData)
@@ -126119,6 +126163,7 @@ function OverlayScriptIndex(name,script,args,option)
126119
126163
  chart.Name=varItem.Name;
126120
126164
  chart.ChartBorder=frame.Frame.ChartBorder;
126121
126165
  chart.ChartFrame=frame.Frame;
126166
+ chart.Identify=overlayIndex.Identify;
126122
126167
  if (varItem.Draw && varItem.Draw.DrawData)
126123
126168
  {
126124
126169
  var drawData=varItem.Draw.DrawData;
@@ -126130,6 +126175,32 @@ function OverlayScriptIndex(name,script,args,option)
126130
126175
  frame.ChartPaint.push(chart);
126131
126176
  }
126132
126177
 
126178
+ this.CreateTitle=function(hqChart,windowIndex,varItem,id)
126179
+ {
126180
+ var overlayIndex=this.OverlayIndex;
126181
+ var frame=overlayIndex.Frame;
126182
+ let chart=new ChartIndexTitle();
126183
+ chart.Canvas=hqChart.Canvas;
126184
+
126185
+ chart.Name=varItem.Name;
126186
+ chart.ChartBorder=frame.Frame.ChartBorder;
126187
+ chart.ChartFrame=frame.Frame;
126188
+ chart.Identify=overlayIndex.Identify;
126189
+
126190
+ if (varItem.Color) chart.Color=this.GetColor(varItem.Color);
126191
+ else chart.Color=this.GetDefaultColor(id);
126192
+ chart.Data.Data=varItem.Data;
126193
+
126194
+ var titleIndex=windowIndex+1;
126195
+ var titlePaint=hqChart.TitlePaint[titleIndex];
126196
+ var titleData=new DynamicTitleData(chart.Data,chart.Name,chart.Color);
126197
+ titleData.DataType="ChartIndexTitle";
126198
+ titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;
126199
+
126200
+ this.SetChartIndexName(chart);
126201
+ frame.ChartPaint.push(chart);
126202
+ }
126203
+
126133
126204
  this.CreateStackedBar=function(hqChart,windowIndex,varItem,id)
126134
126205
  {
126135
126206
  var overlayIndex=this.OverlayIndex;
@@ -154077,7 +154148,7 @@ function HQChartScriptWorker()
154077
154148
 
154078
154149
 
154079
154150
 
154080
- var HQCHART_VERSION="1.1.14495";
154151
+ var HQCHART_VERSION="1.1.14500";
154081
154152
 
154082
154153
  function PrintHQChartVersion()
154083
154154
  {