hqchart 1.1.12955 → 1.1.12963

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.
@@ -68,7 +68,7 @@ this.Get=function(id){if(!this.DataMap.has(id))return null;return this.DataMap.g
68
68
  ]);}JSIndexScript.AddIndex=function(aryIndex)//添加自定义指标
69
69
  {for(var i in aryIndex){g_CustomIndex.Add(aryIndex[i]);}};//修改指标属性
70
70
  JSIndexScript.ModifyAttribute=function(indexInfo,attribute){if(!attribute)return;if(attribute.Args)indexInfo.Args=attribute.Args;//外部可以设置参数
71
- if(IFrameSplitOperator.IsNumber(attribute.FloatPrecision))indexInfo.FloatPrecision=attribute.FloatPrecision;if(IFrameSplitOperator.IsNumber(attribute.StringFormat))indexInfo.StringFormat=attribute.StringFormat;if(IFrameSplitOperator.IsBool(attribute.IsSync))indexInfo.IsSync=attribute.IsSync;if(IFrameSplitOperator.IsBool(attribute.IsShortTitle))indexInfo.IsShortTitle=attribute.IsShortTitle;if(attribute.TitleFont)indexInfo.TitleFont=attribute.TitleFont;if(attribute.Lock)indexInfo.Lock=attribute.Lock;if(IFrameSplitOperator.IsNumber(attribute.YSplitType))indexInfo.YSplitType=attribute.YSplitType;if(IFrameSplitOperator.IsBool(attribute.IsShowIndexTitle))indexInfo.IsShowIndexTitle=attribute.IsShowIndexTitle;if(attribute.YAxis){var item=attribute.YAxis;if(!indexInfo.YAxis)indexInfo.YAxis={};if(IFrameSplitOperator.IsNumber(item.FloatPrecision))indexInfo.YAxis.FloatPrecision=item.FloatPrecision;if(IFrameSplitOperator.IsNumber(item.StringFormat))indexInfo.YAxis.StringFormat=item.StringFormat;if(IFrameSplitOperator.IsBool(item.EnableRemoveZero))indexInfo.YAxis.EnableRemoveZero=item.EnableRemoveZero;}};JSIndexScript.prototype.Get=function(id){var data=g_CustomIndex.Get(id);if(data)return data;var func=this.DataMap.get(id);if(func){var data=func();data.ID=id;return data;}return null;};JSIndexScript.prototype.Search=function(name){var result=[];var reg=new RegExp(name,'i');this.DataMap.forEach(function(value,key){if(key.indexOf('交易系统-')!=0&&key.indexOf('五彩K线-')!=0&&key.search(reg)>=0)result.push(key);});return result;};JSIndexScript.prototype.MA=function(){var data={Name:'MA',Description:'均线',IsMainIndex:true,StringFormat:2,Args:[{Name:'M1',Value:5},{Name:'M2',Value:10},{Name:'M3',Value:20}],OutName:[{Name:'MA1',DynamicName:"MA{M1}"},{Name:'MA2',DynamicName:"MA{M2}"},{Name:'MA3',DynamicName:"MA{M3}"}],Script://脚本
71
+ if(IFrameSplitOperator.IsNumber(attribute.FloatPrecision))indexInfo.FloatPrecision=attribute.FloatPrecision;if(IFrameSplitOperator.IsNumber(attribute.StringFormat))indexInfo.StringFormat=attribute.StringFormat;if(IFrameSplitOperator.IsBool(attribute.IsSync))indexInfo.IsSync=attribute.IsSync;if(IFrameSplitOperator.IsBool(attribute.IsShortTitle))indexInfo.IsShortTitle=attribute.IsShortTitle;if(attribute.TitleFont)indexInfo.TitleFont=attribute.TitleFont;if(attribute.Lock)indexInfo.Lock=attribute.Lock;if(IFrameSplitOperator.IsNumber(attribute.YSplitType))indexInfo.YSplitType=attribute.YSplitType;if(IFrameSplitOperator.IsBool(attribute.IsShowIndexTitle))indexInfo.IsShowIndexTitle=attribute.IsShowIndexTitle;if(IFrameSplitOperator.IsNumber(attribute.KLineType))indexInfo.KLineType=attribute.KLineType;if(attribute.YAxis){var item=attribute.YAxis;if(!indexInfo.YAxis)indexInfo.YAxis={};if(IFrameSplitOperator.IsNumber(item.FloatPrecision))indexInfo.YAxis.FloatPrecision=item.FloatPrecision;if(IFrameSplitOperator.IsNumber(item.StringFormat))indexInfo.YAxis.StringFormat=item.StringFormat;if(IFrameSplitOperator.IsBool(item.EnableRemoveZero))indexInfo.YAxis.EnableRemoveZero=item.EnableRemoveZero;}};JSIndexScript.prototype.Get=function(id){var data=g_CustomIndex.Get(id);if(data)return data;var func=this.DataMap.get(id);if(func){var data=func();data.ID=id;return data;}return null;};JSIndexScript.prototype.Search=function(name){var result=[];var reg=new RegExp(name,'i');this.DataMap.forEach(function(value,key){if(key.indexOf('交易系统-')!=0&&key.indexOf('五彩K线-')!=0&&key.search(reg)>=0)result.push(key);});return result;};JSIndexScript.prototype.MA=function(){var data={Name:'MA',Description:'均线',IsMainIndex:true,StringFormat:2,Args:[{Name:'M1',Value:5},{Name:'M2',Value:10},{Name:'M3',Value:20}],OutName:[{Name:'MA1',DynamicName:"MA{M1}"},{Name:'MA2',DynamicName:"MA{M2}"},{Name:'MA3',DynamicName:"MA{M3}"}],Script://脚本
72
72
  'MA1:MA(CLOSE,M1);\n\
73
73
  MA2:MA(CLOSE,M2);\n\
74
74
  MA3:MA(CLOSE,M3);'};return data;};JSIndexScript.prototype.MA4=function(){var data={Name:'MA',Description:'均线',IsMainIndex:true,StringFormat:2,Args:[{Name:'M1',Value:5},{Name:'M2',Value:10},{Name:'M3',Value:20},{Name:'M4',Value:60}],OutName:[{Name:'MA1',DynamicName:"MA{M1}"},{Name:'MA2',DynamicName:"MA{M2}"},{Name:'MA3',DynamicName:"MA{M3}"},{Name:'MA4',DynamicName:"MA{M4}"}],Script://脚本
@@ -2130,7 +2130,12 @@ for(var i=0;i<this.OverlayChartPaint.length;++i){var item=this.OverlayChartPaint
2130
2130
  for(var i=0,j=0,k=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i];for(j=0;j<item.OverlayIndex.length;++j){var overlayItem=item.OverlayIndex[j];if(IFrameSplitOperator.IsNonEmptyArray(overlayItem.ChartPaint)){for(k=0;k<overlayItem.ChartPaint.length;++k){var chart=overlayItem.ChartPaint[k];if(!chart||!chart.ExportData)continue;var data=chart.ExportData(aryKData,range);if(data&&IFrameSplitOperator.IsNonEmptyArray(data)){for(var index=0;index<data.length;++index){var subItem=data[index];if(chart.IndexName)aryData.push({Name:subItem.Name+'('+chart.IndexName+')',Data:subItem.Data});else aryData.push(subItem);}}}}}}if(option&&option.Type=="CSV"){return this.ExportDataToCSV(aryData);}return aryData;};//重置指标计数器
2131
2131
  this.ClearIndexRunCount=function(){//主图指标
2132
2132
  for(var i=0;i<this.WindowIndex.length;++i){var item=this.WindowIndex[i];if(!item)continue;item.RunCount=0;}//叠加指标
2133
- 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(overlayItem.Script)overlayItem.Script.RunCount=0;}}};}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)//键盘事件
2133
+ 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(overlayItem.Script)overlayItem.Script.RunCount=0;}}};//获取当前的显示的指标 包含叠加指标
2134
+ this.GetIndexInfo=function(){var aryIndex=[];for(var i=0,j=0;i<this.WindowIndex.length;++i){var item=this.WindowIndex[i];if(!item)continue;var info={Name:item.Name,WindowIndex:i,IsOverlay:false};if(item.ID)info.ID=item.ID;if(IFrameSplitOperator.IsNonEmptyArray(item.Arguments))//参数
2135
+ {info.Args=[];for(j=0;j<item.Arguments.length;++j){var argItem=item.Arguments[j];info.Args.push({Name:argItem.Name,Value:argItem.Value});}}aryIndex.push(info);}this.GetOverlayIndexInfo(aryIndex);//叠加指标
2136
+ return aryIndex;};//叠加指标
2137
+ this.GetOverlayIndexInfo=function(aryIndex){for(var i=0,j=0,k=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i];if(!IFrameSplitOperator.IsNonEmptyArray(item.OverlayIndex))continue;for(j=0;j<item.OverlayIndex.length;++j){var overlayItem=item.OverlayIndex[j];if(!overlayItem.Script)continue;var indexData=overlayItem.Script;var info={Name:indexData.Name,ID:indexData.ID,WindowIndex:i,IsOverlay:true,Identify:overlayItem.Identify};if(IFrameSplitOperator.IsNonEmptyArray(indexData.Arguments))//参数
2138
+ {info.Args=[];for(k=0;k<indexData.Arguments.length;++k){var argItem=indexData.Arguments[k];info.Args.push({Name:argItem.Name,Value:argItem.Value});}}aryIndex.push(info);}}};}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)//键盘事件
2134
2139
  {if(this.JSChartContainer&&this.JSChartContainer.OnKeyDown)this.JSChartContainer.OnKeyDown(e);}function OnWheel(e)//上下滚动事件
2135
2140
  {if(this.JSChartContainer&&this.JSChartContainer.OnWheel)this.JSChartContainer.OnWheel(e);}function ToFixed(number,precision){var b=1;if(isNaN(number))return number;if(number<0)b=-1;var multiplier=Math.pow(10,precision);var value=Math.round(Math.abs(number)*multiplier)/multiplier*b;if(/^(\d+(?:\.\d+)?)(e)([\-]?\d+)$/.test(value))var s=value.toFixed2(precision);else var s=value.toString();var rs=s.indexOf('.');if(rs<0&&precision>0){rs=s.length;s+='.';}while(s.length<=rs+precision){s+='0';}return s;}Number.prototype.toFixed2=Number.prototype.toFixed;//备份下老的
2136
2141
  Number.prototype.toFixed=function(precision){return ToFixed(this,precision);};function Guid(){function S4(){return((1+Math.random())*0x10000|0).toString(16).substring(1);}return"guid"+(S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4());}function GetScrollPosition(){var scrollPos={};var scrollTop=0;var scrollLeft=0;if(document.documentElement&&document.documentElement.scrollTop){scrollTop=document.documentElement.scrollTop;scrollLeft=document.documentElement.scrollLeft;}else if(document.body){scrollTop=document.body.scrollTop;scrollLeft=document.body.scrollLeft;}scrollPos.Top=scrollTop;scrollPos.Left=scrollLeft;return scrollPos;}//修正线段有毛刺
@@ -2405,7 +2410,8 @@ divToolbar.innerHTML=spanIcon;var chart=this.ChartBorder.UIElement.JSChartContai
2405
2410
  (0,_jquery2.default)("#"+divToolbar.id+" .index_param").click({Chart:this.ChartBorder.UIElement.JSChartContainer,Identify:this.Identify},this.ModifyIndexEvent);if(!this.ChangeIndex)//隐藏'换指标'
2406
2411
  {(0,_jquery2.default)("#"+divToolbar.id+" .index_change").hide();}else if(typeof this.ChangeIndexEvent=='function'){(0,_jquery2.default)("#"+divToolbar.id+" .index_change").click({Chart:this.ChartBorder.UIElement.JSChartContainer,Identify:this.Identify,IsOverlay:false},this.ChangeIndexEvent);}(0,_jquery2.default)("#"+divToolbar.id+" .index_close").click({Chart:this.ChartBorder.UIElement.JSChartContainer,Identify:this.Identify},function(event){var hqChart=event.data.Chart;var id=event.data.Identify;hqChart.RemoveIndexWindow(id);});divToolbar.style.display="block";};//手绘,不用DOM,使用DOM太麻烦了
2407
2412
  this.DrawToolbarV2=function(moveonPoint,mouseStatus){if(g_JSChartResource.IsDOMFrameToolbar===true)return;if(this.Identify==0&&this.IsShowCloseButton)this.DrawCloseBeforeButton(moveonPoint,mouseStatus);//盘前集合竞价关闭按钮
2408
- if(this.ChartBorder.TitleHeight<5)return;if(this.Identify==0||this.Identify==1)return;var aryButton=[];if(this.CloseIndex)aryButton.push({ID:JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW,Style:this.CloseWindowButton});if(this.MaxMinWindow)aryButton.push({ID:JSCHART_BUTTON_ID.MAX_MIN_WINDOW,Style:this.MaxMinWindowButton});if(this.TitleWindow)aryButton.push({ID:JSCHART_BUTTON_ID.TITLE_WINDOW,Style:this.TitleWindowButton});if(this.ExportData)aryButton.push({ID:JSCHART_BUTTON_ID.EXPORT_DATA,Style:this.ExportDataButton});if(this.OverlayIndex)aryButton.push({ID:JSCHART_BUTTON_ID.OVERLAY_INDEX,Style:this.OverlayIndexButton});if(this.ChangeIndex)aryButton.push({ID:JSCHART_BUTTON_ID.CHANGE_INDEX,Style:this.ChangeIndexButton});if(this.ModifyIndex)aryButton.push({ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM,Style:this.ModifyIndexParamButton});if(IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar)){for(var i=0;i<this.CustomToolbar.length;++i){var item=this.CustomToolbar[i];if(item.ID&&item.Style)aryButton.push({ID:item.ID,Style:item.Style,TooltipText:item.TooltipText});}}this.DrawTitleButton(aryButton,moveonPoint,mouseStatus);};this.DrawCloseBeforeButton=function(moveonPoint,mouseStatus){if(this.Identify!=0)return;var border=this.ChartBorder.GetBorder();if(border.DayBorder)return;if(this.ChartBorder.LeftExtendWidth<10)return;var rtButton={Left:border.Left,Top:border.TopEx,Width:this.BeforeCloseIcon.Size,Height:this.BeforeCloseIcon.Size};rtButton.Right=rtButton.Left+this.BeforeCloseIcon.Size;rtButton.Bottom=rtButton.Top+this.BeforeCloseIcon.Size;var item={Rect:rtButton,Name:"集合竞价关闭按钮",ID:JSCHART_BUTTON_ID.CLOSE_BEFOREOPEN_ID};var color=this.BeforeCloseIcon.Color;if(moveonPoint&&moveonPoint.X>=rtButton.Left&&moveonPoint.X<rtButton.Right&&moveonPoint.Y>=rtButton.Top&&moveonPoint.Y<=rtButton.Bottom){color=this.BeforeCloseIcon.MoveOnColor;if(mouseStatus)mouseStatus.MouseOnToolbar={Rect:rtButton,Item:item,Frame:this,Point:{X:moveonPoint.X,Y:moveonPoint.Y}};}var font=this.BeforeCloseIcon.Size+'px '+this.BeforeCloseIcon.Family;this.Canvas.font=font;this.Canvas.fillStyle=color;this.Canvas.textAlign='left';this.Canvas.textBaseline='top';this.Canvas.fillText(this.BeforeCloseIcon.Text,border.Left,border.TopEx);this.Buttons.push(item);};this.DrawMultiDayBeforeDataBG=function(border){var dayBorder=border.DayBorder;var top=ToFixedPoint(border.Top);var bottom=ToFixedPoint(border.Bottom);var height=bottom-top;this.Canvas.strokeStyle=this.MultiDayBorderPen;for(var i=0;i<dayBorder.length;++i){var drawCount=0;var item=dayBorder[i];var left=ToFixedPoint(item.Left);var right=ToFixedPoint(item.LeftEx);var width=right-left;if(width>3)//盘前
2413
+ if(this.ChartBorder.TitleHeight<5)return;var aryButton=[];if(this.Identify!=0&&this.Identify!=1)//价格图和成交量图只有自定义按钮
2414
+ {if(this.CloseIndex)aryButton.push({ID:JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW,Style:this.CloseWindowButton});if(this.MaxMinWindow)aryButton.push({ID:JSCHART_BUTTON_ID.MAX_MIN_WINDOW,Style:this.MaxMinWindowButton});if(this.TitleWindow)aryButton.push({ID:JSCHART_BUTTON_ID.TITLE_WINDOW,Style:this.TitleWindowButton});if(this.ExportData)aryButton.push({ID:JSCHART_BUTTON_ID.EXPORT_DATA,Style:this.ExportDataButton});if(this.OverlayIndex)aryButton.push({ID:JSCHART_BUTTON_ID.OVERLAY_INDEX,Style:this.OverlayIndexButton});if(this.ChangeIndex)aryButton.push({ID:JSCHART_BUTTON_ID.CHANGE_INDEX,Style:this.ChangeIndexButton});if(this.ModifyIndex)aryButton.push({ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM,Style:this.ModifyIndexParamButton});}if(IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar)){for(var i=0;i<this.CustomToolbar.length;++i){var item=this.CustomToolbar[i];if(item.ID&&item.Style)aryButton.push({ID:item.ID,Style:item.Style,TooltipText:item.TooltipText});}}this.DrawTitleButton(aryButton,moveonPoint,mouseStatus);};this.DrawCloseBeforeButton=function(moveonPoint,mouseStatus){if(this.Identify!=0)return;var border=this.ChartBorder.GetBorder();if(border.DayBorder)return;if(this.ChartBorder.LeftExtendWidth<10)return;var rtButton={Left:border.Left,Top:border.TopEx,Width:this.BeforeCloseIcon.Size,Height:this.BeforeCloseIcon.Size};rtButton.Right=rtButton.Left+this.BeforeCloseIcon.Size;rtButton.Bottom=rtButton.Top+this.BeforeCloseIcon.Size;var item={Rect:rtButton,Name:"集合竞价关闭按钮",ID:JSCHART_BUTTON_ID.CLOSE_BEFOREOPEN_ID};var color=this.BeforeCloseIcon.Color;if(moveonPoint&&moveonPoint.X>=rtButton.Left&&moveonPoint.X<rtButton.Right&&moveonPoint.Y>=rtButton.Top&&moveonPoint.Y<=rtButton.Bottom){color=this.BeforeCloseIcon.MoveOnColor;if(mouseStatus)mouseStatus.MouseOnToolbar={Rect:rtButton,Item:item,Frame:this,Point:{X:moveonPoint.X,Y:moveonPoint.Y}};}var font=this.BeforeCloseIcon.Size+'px '+this.BeforeCloseIcon.Family;this.Canvas.font=font;this.Canvas.fillStyle=color;this.Canvas.textAlign='left';this.Canvas.textBaseline='top';this.Canvas.fillText(this.BeforeCloseIcon.Text,border.Left,border.TopEx);this.Buttons.push(item);};this.DrawMultiDayBeforeDataBG=function(border){var dayBorder=border.DayBorder;var top=ToFixedPoint(border.Top);var bottom=ToFixedPoint(border.Bottom);var height=bottom-top;this.Canvas.strokeStyle=this.MultiDayBorderPen;for(var i=0;i<dayBorder.length;++i){var drawCount=0;var item=dayBorder[i];var left=ToFixedPoint(item.Left);var right=ToFixedPoint(item.LeftEx);var width=right-left;if(width>3)//盘前
2409
2415
  {this.Canvas.fillStyle=this.BeforeBGColor;this.Canvas.fillRect(left,top,width,height);++drawCount;}var left=ToFixedPoint(item.RightEx);var right=ToFixedPoint(item.Right);var width=right-left;if(width>3)//盘后
2410
2416
  {this.Canvas.fillStyle=this.AfterBGColor;this.Canvas.fillRect(left,top,width,height);++drawCount;}if(drawCount==2&&i!=dayBorder.length-1){this.Canvas.beginPath();this.Canvas.moveTo(right,top);this.Canvas.lineTo(right,bottom);this.Canvas.stroke();}}};this.DrawCallAuctionVertical=function(verticalInfo,callAuctionData,border,isBeforeClose){if(!callAuctionData)return;var top=border.TopTitle;var bottom=border.Bottom;var left=border.Left;var right=border.LeftEx;var pixelRatio=GetDevicePixelRatio();//获取设备的分辨率
2411
2417
  var xPrev=null;//上一个坐标x的值
@@ -7351,9 +7357,7 @@ var aryOverlayIndex=[];if(IFrameSplitOperator.IsNonEmptyArray(option.OverlayInde
7351
7357
  this.ResetFrameXYSplit();this.UpdateFrameMaxMin();//调整坐标最大 最小值
7352
7358
  this.Draw();}else{if(!symbol)symbol=this.Symbol;var optionData={KLine:{}};if(IFrameSplitOperator.IsNumber(period))optionData.KLine.Period=period;if(IFrameSplitOperator.IsNumber(right))optionData.KLine.Right=right;this.ChangeSymbol(symbol,optionData);}};this.RemoveIndexWindow=function(id,option){JSConsole.Chart.Log('[KLineChartContainer::RemoveIndexWindow] remove id',id);if(id==0){if(option&&option.DeleteMainIndex)//删除指标
7353
7359
  {this.DeleteIndexPaint(id);this.WindowIndex[id]=null;this.Frame.SetSizeChage(true);this.UpdateFrameMaxMin();this.ResetFrameXYSplit();this.Draw();}return;}if(!this.Frame.SubFrame)return;if(id>=this.Frame.SubFrame.length)return;this.Frame.RestoreIndexWindows();var delFrame=this.Frame.SubFrame[id].Frame;this.DeleteIndexPaint(id);this.Frame.SubFrame[id].Frame.ClearToolbar();var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);if(event&&event.Callback){var sendData={SubFrame:this.Frame.SubFrame[id],WindowIndex:id};event.Callback(event,sendData,this);}this.Frame.SubFrame.splice(id,1);this.WindowIndex.splice(id,1);this.TitlePaint.splice(id+1,1);//删除对应的动态标题
7354
- for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i].Frame;if(i==this.Frame.SubFrame.length-1)item.XSplitOperator.ShowText=true;else item.XSplitOperator.ShowText=false;item.Identify=i;}if(this.ChartDrawPicture.length>0){var aryDrawPicture=[];for(var i in this.ChartDrawPicture){var item=this.ChartDrawPicture[i];if(item.Frame==delFrame)continue;aryDrawPicture.push(item);}this.ChartDrawPicture=aryDrawPicture;}this.Frame.SetSizeChage(true);this.UpdateFrameMaxMin();this.ResetFrameXYSplit();this.Draw();};//获取当前的显示的指标
7355
- this.GetIndexInfo=function(){var aryIndex=[];for(var i in this.WindowIndex){var item=this.WindowIndex[i];var info={Name:item.Name};if(item.ID)info.ID=item.ID;if(item.Arguments)//参数
7356
- {info.Args=[];for(var i in item.Arguments){var argItem=item.Arguments[i];info.Args.push({Name:argItem.Name,Value:argItem.Value});}}aryIndex.push(info);}return aryIndex;};this.CreateExtendChart=function(name,option)//创建扩展图形
7360
+ for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i].Frame;if(i==this.Frame.SubFrame.length-1)item.XSplitOperator.ShowText=true;else item.XSplitOperator.ShowText=false;item.Identify=i;}if(this.ChartDrawPicture.length>0){var aryDrawPicture=[];for(var i in this.ChartDrawPicture){var item=this.ChartDrawPicture[i];if(item.Frame==delFrame)continue;aryDrawPicture.push(item);}this.ChartDrawPicture=aryDrawPicture;}this.Frame.SetSizeChage(true);this.UpdateFrameMaxMin();this.ResetFrameXYSplit();this.Draw();};this.CreateExtendChart=function(name,option)//创建扩展图形
7357
7361
  {var chart;switch(name){case'筹码分布':chart=new StockChip();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.Left=this.Frame.ChartBorder.Right;//左边间距使用当前框架间距
7358
7362
  chart.SetOption(option);this.ExtendChartPaint.push(chart);this.Frame.ChartBorder.Right+=chart.Width;//创建筹码需要增加右边的间距
7359
7363
  return chart;case'画图工具':chart=new DrawToolsButton();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.Left=this.Frame.ChartBorder.Right;//左边间距使用当前框架间距
@@ -8123,8 +8127,7 @@ for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i];fo
8123
8127
  this.BindOverlayIndexData=function(overlayItem,windowIndex,hisData,option){if(!overlayItem.Script)return;if(typeof overlayItem.Script.RequestData=='function'){overlayItem.Script.RequestData(this,windowIndex,hisData);return;}if(typeof overlayItem.Script.ExecuteScript=='function'){overlayItem.Script.ExecuteScript(this,windowIndex,hisData);return;}overlayItem.Script.BindData(this,windowIndex,hisData);};//获取子窗口的所有画法
8124
8128
  this.GetChartPaint=function(windowIndex){var paint=new Array();for(var i in this.ChartPaint){if(i<3)continue;//分钟 均线 成交量 3个线不能改
8125
8129
  var item=this.ChartPaint[i];if(item.ChartFrame==this.Frame.SubFrame[windowIndex].Frame)paint.push(item);}return paint;};//创建指定窗口指标
8126
- this.CreateWindowIndex=function(windowIndex){this.WindowIndex[windowIndex].Create(this,windowIndex);};//获取当前的显示的指标
8127
- this.GetIndexInfo=function(){var aryIndex=[];for(var i in this.WindowIndex){var item=this.WindowIndex[i];var info={Name:item.Name};if(item.ID)info.ID=item.ID;aryIndex.push(info);}return aryIndex;};this.OnTouchFinished=function(){if(this.CorssCursorTouchEnd===true)//手势离开十字光标消失
8130
+ this.CreateWindowIndex=function(windowIndex){this.WindowIndex[windowIndex].Create(this,windowIndex);};this.OnTouchFinished=function(){if(this.CorssCursorTouchEnd===true)//手势离开十字光标消失
8128
8131
  {this.DrawDynamicInfo();return;}/* 以后放日线的tooltip
8129
8132
  for(var i in this.ExtendChartPaint)
8130
8133
  {
@@ -12812,7 +12815,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
12812
12815
  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);};}/********************************************************************************
12813
12816
  * 版本信息输出
12814
12817
  *
12815
- */var HQCHART_VERSION="1.1.12954";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
12818
+ */var HQCHART_VERSION="1.1.12962";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
12816
12819
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
12817
12820
  // BaseIndex:BaseIndex,
12818
12821
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.12955",
3
+ "version": "1.1.12963",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -182,6 +182,7 @@ JSIndexScript.ModifyAttribute=function(indexInfo, attribute)
182
182
  if (attribute.Lock) indexInfo.Lock=attribute.Lock;
183
183
  if (IFrameSplitOperator.IsNumber(attribute.YSplitType)) indexInfo.YSplitType=attribute.YSplitType;
184
184
  if (IFrameSplitOperator.IsBool(attribute.IsShowIndexTitle)) indexInfo.IsShowIndexTitle=attribute.IsShowIndexTitle;
185
+ if (IFrameSplitOperator.IsNumber(attribute.KLineType)) indexInfo.KLineType=attribute.KLineType;
185
186
 
186
187
  if (attribute.YAxis)
187
188
  {
@@ -8773,6 +8773,65 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8773
8773
  }
8774
8774
  }
8775
8775
  }
8776
+
8777
+ //获取当前的显示的指标 包含叠加指标
8778
+ this.GetIndexInfo=function()
8779
+ {
8780
+ var aryIndex=[];
8781
+ for(var i=0, j=0; i<this.WindowIndex.length; ++i)
8782
+ {
8783
+ var item=this.WindowIndex[i];
8784
+ if (!item) continue;
8785
+
8786
+ var info={ Name:item.Name, WindowIndex:i, IsOverlay:false };
8787
+ if (item.ID) info.ID=item.ID;
8788
+ if (IFrameSplitOperator.IsNonEmptyArray(item.Arguments)) //参数
8789
+ {
8790
+ info.Args=[];
8791
+ for(j=0;j<item.Arguments.length;++j)
8792
+ {
8793
+ var argItem=item.Arguments[j];
8794
+ info.Args.push( { Name:argItem.Name, Value:argItem.Value} );
8795
+ }
8796
+ }
8797
+
8798
+ aryIndex.push(info);
8799
+ }
8800
+
8801
+ this.GetOverlayIndexInfo(aryIndex); //叠加指标
8802
+
8803
+ return aryIndex;
8804
+ }
8805
+
8806
+ //叠加指标
8807
+ this.GetOverlayIndexInfo=function(aryIndex)
8808
+ {
8809
+ for(var i=0, j=0, k=0; i<this.Frame.SubFrame.length; ++i)
8810
+ {
8811
+ var item=this.Frame.SubFrame[i];
8812
+ if (!IFrameSplitOperator.IsNonEmptyArray(item.OverlayIndex)) continue;
8813
+
8814
+ for(j=0; j<item.OverlayIndex.length; ++j)
8815
+ {
8816
+ var overlayItem=item.OverlayIndex[j];
8817
+ if (!overlayItem.Script) continue;
8818
+ var indexData=overlayItem.Script;
8819
+ var info={ Name:indexData.Name, ID:indexData.ID, WindowIndex:i, IsOverlay:true, Identify:overlayItem.Identify };
8820
+
8821
+ if (IFrameSplitOperator.IsNonEmptyArray(indexData.Arguments)) //参数
8822
+ {
8823
+ info.Args=[];
8824
+ for(k=0;k<indexData.Arguments.length;++k)
8825
+ {
8826
+ var argItem=indexData.Arguments[k];
8827
+ info.Args.push( { Name:argItem.Name, Value:argItem.Value} );
8828
+ }
8829
+ }
8830
+
8831
+ aryIndex.push(info);
8832
+ }
8833
+ }
8834
+ }
8776
8835
  }
8777
8836
 
8778
8837
  function GetDevicePixelRatio()
@@ -11955,16 +12014,18 @@ function MinuteFrame()
11955
12014
  if (this.Identify==0 && this.IsShowCloseButton) this.DrawCloseBeforeButton(moveonPoint, mouseStatus); //盘前集合竞价关闭按钮
11956
12015
 
11957
12016
  if (this.ChartBorder.TitleHeight<5) return;
11958
- if (this.Identify==0 || this.Identify==1) return;
11959
12017
 
11960
12018
  var aryButton=[];
11961
- if (this.CloseIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW, Style:this.CloseWindowButton });
11962
- if (this.MaxMinWindow) aryButton.push({ ID:JSCHART_BUTTON_ID.MAX_MIN_WINDOW, Style:this.MaxMinWindowButton })
11963
- if (this.TitleWindow) aryButton.push({ ID:JSCHART_BUTTON_ID.TITLE_WINDOW, Style:this.TitleWindowButton });
11964
- if (this.ExportData) aryButton.push( {ID:JSCHART_BUTTON_ID.EXPORT_DATA, Style:this.ExportDataButton});
11965
- if (this.OverlayIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.OVERLAY_INDEX, Style:this.OverlayIndexButton });
11966
- if (this.ChangeIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.CHANGE_INDEX, Style:this.ChangeIndexButton });
11967
- if (this.ModifyIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM, Style:this.ModifyIndexParamButton });
12019
+ if (this.Identify!=0 && this.Identify!=1) //价格图和成交量图只有自定义按钮
12020
+ {
12021
+ if (this.CloseIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW, Style:this.CloseWindowButton });
12022
+ if (this.MaxMinWindow) aryButton.push({ ID:JSCHART_BUTTON_ID.MAX_MIN_WINDOW, Style:this.MaxMinWindowButton })
12023
+ if (this.TitleWindow) aryButton.push({ ID:JSCHART_BUTTON_ID.TITLE_WINDOW, Style:this.TitleWindowButton });
12024
+ if (this.ExportData) aryButton.push( {ID:JSCHART_BUTTON_ID.EXPORT_DATA, Style:this.ExportDataButton});
12025
+ if (this.OverlayIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.OVERLAY_INDEX, Style:this.OverlayIndexButton });
12026
+ if (this.ChangeIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.CHANGE_INDEX, Style:this.ChangeIndexButton });
12027
+ if (this.ModifyIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM, Style:this.ModifyIndexParamButton });
12028
+ }
11968
12029
 
11969
12030
  if (IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar))
11970
12031
  {
@@ -68559,31 +68620,6 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
68559
68620
  this.Draw();
68560
68621
  }
68561
68622
 
68562
- //获取当前的显示的指标
68563
- this.GetIndexInfo=function()
68564
- {
68565
- var aryIndex=[];
68566
- for(var i in this.WindowIndex)
68567
- {
68568
- var item=this.WindowIndex[i];
68569
- var info={Name:item.Name};
68570
- if (item.ID) info.ID=item.ID;
68571
- if (item.Arguments) //参数
68572
- {
68573
- info.Args=[];
68574
- for(var i in item.Arguments)
68575
- {
68576
- var argItem=item.Arguments[i];
68577
- info.Args.push( {Name:argItem.Name, Value:argItem.Value} );
68578
- }
68579
- }
68580
-
68581
- aryIndex.push(info);
68582
- }
68583
-
68584
- return aryIndex;
68585
- }
68586
-
68587
68623
  this.CreateExtendChart=function(name, option) //创建扩展图形
68588
68624
  {
68589
68625
  var chart;
@@ -76228,21 +76264,6 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
76228
76264
  this.WindowIndex[windowIndex].Create(this,windowIndex);
76229
76265
  }
76230
76266
 
76231
- //获取当前的显示的指标
76232
- this.GetIndexInfo=function()
76233
- {
76234
- var aryIndex=[];
76235
- for(var i in this.WindowIndex)
76236
- {
76237
- var item=this.WindowIndex[i];
76238
- var info={Name:item.Name};
76239
- if (item.ID) info.ID=item.ID;
76240
- aryIndex.push(info);
76241
- }
76242
-
76243
- return aryIndex;
76244
- }
76245
-
76246
76267
  this.OnTouchFinished=function()
76247
76268
  {
76248
76269
  if (this.CorssCursorTouchEnd===true) //手势离开十字光标消失
@@ -194,6 +194,7 @@ JSIndexScript.ModifyAttribute=function(indexInfo, attribute)
194
194
  if (attribute.Lock) indexInfo.Lock=attribute.Lock;
195
195
  if (IFrameSplitOperator.IsNumber(attribute.YSplitType)) indexInfo.YSplitType=attribute.YSplitType;
196
196
  if (IFrameSplitOperator.IsBool(attribute.IsShowIndexTitle)) indexInfo.IsShowIndexTitle=attribute.IsShowIndexTitle;
197
+ if (IFrameSplitOperator.IsNumber(attribute.KLineType)) indexInfo.KLineType=attribute.KLineType;
197
198
 
198
199
  if (attribute.YAxis)
199
200
  {
@@ -12966,6 +12967,65 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
12966
12967
  }
12967
12968
  }
12968
12969
  }
12970
+
12971
+ //获取当前的显示的指标 包含叠加指标
12972
+ this.GetIndexInfo=function()
12973
+ {
12974
+ var aryIndex=[];
12975
+ for(var i=0, j=0; i<this.WindowIndex.length; ++i)
12976
+ {
12977
+ var item=this.WindowIndex[i];
12978
+ if (!item) continue;
12979
+
12980
+ var info={ Name:item.Name, WindowIndex:i, IsOverlay:false };
12981
+ if (item.ID) info.ID=item.ID;
12982
+ if (IFrameSplitOperator.IsNonEmptyArray(item.Arguments)) //参数
12983
+ {
12984
+ info.Args=[];
12985
+ for(j=0;j<item.Arguments.length;++j)
12986
+ {
12987
+ var argItem=item.Arguments[j];
12988
+ info.Args.push( { Name:argItem.Name, Value:argItem.Value} );
12989
+ }
12990
+ }
12991
+
12992
+ aryIndex.push(info);
12993
+ }
12994
+
12995
+ this.GetOverlayIndexInfo(aryIndex); //叠加指标
12996
+
12997
+ return aryIndex;
12998
+ }
12999
+
13000
+ //叠加指标
13001
+ this.GetOverlayIndexInfo=function(aryIndex)
13002
+ {
13003
+ for(var i=0, j=0, k=0; i<this.Frame.SubFrame.length; ++i)
13004
+ {
13005
+ var item=this.Frame.SubFrame[i];
13006
+ if (!IFrameSplitOperator.IsNonEmptyArray(item.OverlayIndex)) continue;
13007
+
13008
+ for(j=0; j<item.OverlayIndex.length; ++j)
13009
+ {
13010
+ var overlayItem=item.OverlayIndex[j];
13011
+ if (!overlayItem.Script) continue;
13012
+ var indexData=overlayItem.Script;
13013
+ var info={ Name:indexData.Name, ID:indexData.ID, WindowIndex:i, IsOverlay:true, Identify:overlayItem.Identify };
13014
+
13015
+ if (IFrameSplitOperator.IsNonEmptyArray(indexData.Arguments)) //参数
13016
+ {
13017
+ info.Args=[];
13018
+ for(k=0;k<indexData.Arguments.length;++k)
13019
+ {
13020
+ var argItem=indexData.Arguments[k];
13021
+ info.Args.push( { Name:argItem.Name, Value:argItem.Value} );
13022
+ }
13023
+ }
13024
+
13025
+ aryIndex.push(info);
13026
+ }
13027
+ }
13028
+ }
12969
13029
  }
12970
13030
 
12971
13031
  function GetDevicePixelRatio()
@@ -16148,16 +16208,18 @@ function MinuteFrame()
16148
16208
  if (this.Identify==0 && this.IsShowCloseButton) this.DrawCloseBeforeButton(moveonPoint, mouseStatus); //盘前集合竞价关闭按钮
16149
16209
 
16150
16210
  if (this.ChartBorder.TitleHeight<5) return;
16151
- if (this.Identify==0 || this.Identify==1) return;
16152
16211
 
16153
16212
  var aryButton=[];
16154
- if (this.CloseIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW, Style:this.CloseWindowButton });
16155
- if (this.MaxMinWindow) aryButton.push({ ID:JSCHART_BUTTON_ID.MAX_MIN_WINDOW, Style:this.MaxMinWindowButton })
16156
- if (this.TitleWindow) aryButton.push({ ID:JSCHART_BUTTON_ID.TITLE_WINDOW, Style:this.TitleWindowButton });
16157
- if (this.ExportData) aryButton.push( {ID:JSCHART_BUTTON_ID.EXPORT_DATA, Style:this.ExportDataButton});
16158
- if (this.OverlayIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.OVERLAY_INDEX, Style:this.OverlayIndexButton });
16159
- if (this.ChangeIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.CHANGE_INDEX, Style:this.ChangeIndexButton });
16160
- if (this.ModifyIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM, Style:this.ModifyIndexParamButton });
16213
+ if (this.Identify!=0 && this.Identify!=1) //价格图和成交量图只有自定义按钮
16214
+ {
16215
+ if (this.CloseIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW, Style:this.CloseWindowButton });
16216
+ if (this.MaxMinWindow) aryButton.push({ ID:JSCHART_BUTTON_ID.MAX_MIN_WINDOW, Style:this.MaxMinWindowButton })
16217
+ if (this.TitleWindow) aryButton.push({ ID:JSCHART_BUTTON_ID.TITLE_WINDOW, Style:this.TitleWindowButton });
16218
+ if (this.ExportData) aryButton.push( {ID:JSCHART_BUTTON_ID.EXPORT_DATA, Style:this.ExportDataButton});
16219
+ if (this.OverlayIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.OVERLAY_INDEX, Style:this.OverlayIndexButton });
16220
+ if (this.ChangeIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.CHANGE_INDEX, Style:this.ChangeIndexButton });
16221
+ if (this.ModifyIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM, Style:this.ModifyIndexParamButton });
16222
+ }
16161
16223
 
16162
16224
  if (IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar))
16163
16225
  {
@@ -72752,31 +72814,6 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
72752
72814
  this.Draw();
72753
72815
  }
72754
72816
 
72755
- //获取当前的显示的指标
72756
- this.GetIndexInfo=function()
72757
- {
72758
- var aryIndex=[];
72759
- for(var i in this.WindowIndex)
72760
- {
72761
- var item=this.WindowIndex[i];
72762
- var info={Name:item.Name};
72763
- if (item.ID) info.ID=item.ID;
72764
- if (item.Arguments) //参数
72765
- {
72766
- info.Args=[];
72767
- for(var i in item.Arguments)
72768
- {
72769
- var argItem=item.Arguments[i];
72770
- info.Args.push( {Name:argItem.Name, Value:argItem.Value} );
72771
- }
72772
- }
72773
-
72774
- aryIndex.push(info);
72775
- }
72776
-
72777
- return aryIndex;
72778
- }
72779
-
72780
72817
  this.CreateExtendChart=function(name, option) //创建扩展图形
72781
72818
  {
72782
72819
  var chart;
@@ -80421,21 +80458,6 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
80421
80458
  this.WindowIndex[windowIndex].Create(this,windowIndex);
80422
80459
  }
80423
80460
 
80424
- //获取当前的显示的指标
80425
- this.GetIndexInfo=function()
80426
- {
80427
- var aryIndex=[];
80428
- for(var i in this.WindowIndex)
80429
- {
80430
- var item=this.WindowIndex[i];
80431
- var info={Name:item.Name};
80432
- if (item.ID) info.ID=item.ID;
80433
- aryIndex.push(info);
80434
- }
80435
-
80436
- return aryIndex;
80437
- }
80438
-
80439
80461
  this.OnTouchFinished=function()
80440
80462
  {
80441
80463
  if (this.CorssCursorTouchEnd===true) //手势离开十字光标消失
@@ -129403,7 +129425,7 @@ function ScrollBarBGChart()
129403
129425
 
129404
129426
 
129405
129427
 
129406
- var HQCHART_VERSION="1.1.12954";
129428
+ var HQCHART_VERSION="1.1.12962";
129407
129429
 
129408
129430
  function PrintHQChartVersion()
129409
129431
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.12954";
8
+ var HQCHART_VERSION="1.1.12962";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -238,6 +238,7 @@ JSIndexScript.ModifyAttribute=function(indexInfo, attribute)
238
238
  if (attribute.Lock) indexInfo.Lock=attribute.Lock;
239
239
  if (IFrameSplitOperator.IsNumber(attribute.YSplitType)) indexInfo.YSplitType=attribute.YSplitType;
240
240
  if (IFrameSplitOperator.IsBool(attribute.IsShowIndexTitle)) indexInfo.IsShowIndexTitle=attribute.IsShowIndexTitle;
241
+ if (IFrameSplitOperator.IsNumber(attribute.KLineType)) indexInfo.KLineType=attribute.KLineType;
241
242
 
242
243
  if (attribute.YAxis)
243
244
  {
@@ -13010,6 +13011,65 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
13010
13011
  }
13011
13012
  }
13012
13013
  }
13014
+
13015
+ //获取当前的显示的指标 包含叠加指标
13016
+ this.GetIndexInfo=function()
13017
+ {
13018
+ var aryIndex=[];
13019
+ for(var i=0, j=0; i<this.WindowIndex.length; ++i)
13020
+ {
13021
+ var item=this.WindowIndex[i];
13022
+ if (!item) continue;
13023
+
13024
+ var info={ Name:item.Name, WindowIndex:i, IsOverlay:false };
13025
+ if (item.ID) info.ID=item.ID;
13026
+ if (IFrameSplitOperator.IsNonEmptyArray(item.Arguments)) //参数
13027
+ {
13028
+ info.Args=[];
13029
+ for(j=0;j<item.Arguments.length;++j)
13030
+ {
13031
+ var argItem=item.Arguments[j];
13032
+ info.Args.push( { Name:argItem.Name, Value:argItem.Value} );
13033
+ }
13034
+ }
13035
+
13036
+ aryIndex.push(info);
13037
+ }
13038
+
13039
+ this.GetOverlayIndexInfo(aryIndex); //叠加指标
13040
+
13041
+ return aryIndex;
13042
+ }
13043
+
13044
+ //叠加指标
13045
+ this.GetOverlayIndexInfo=function(aryIndex)
13046
+ {
13047
+ for(var i=0, j=0, k=0; i<this.Frame.SubFrame.length; ++i)
13048
+ {
13049
+ var item=this.Frame.SubFrame[i];
13050
+ if (!IFrameSplitOperator.IsNonEmptyArray(item.OverlayIndex)) continue;
13051
+
13052
+ for(j=0; j<item.OverlayIndex.length; ++j)
13053
+ {
13054
+ var overlayItem=item.OverlayIndex[j];
13055
+ if (!overlayItem.Script) continue;
13056
+ var indexData=overlayItem.Script;
13057
+ var info={ Name:indexData.Name, ID:indexData.ID, WindowIndex:i, IsOverlay:true, Identify:overlayItem.Identify };
13058
+
13059
+ if (IFrameSplitOperator.IsNonEmptyArray(indexData.Arguments)) //参数
13060
+ {
13061
+ info.Args=[];
13062
+ for(k=0;k<indexData.Arguments.length;++k)
13063
+ {
13064
+ var argItem=indexData.Arguments[k];
13065
+ info.Args.push( { Name:argItem.Name, Value:argItem.Value} );
13066
+ }
13067
+ }
13068
+
13069
+ aryIndex.push(info);
13070
+ }
13071
+ }
13072
+ }
13013
13073
  }
13014
13074
 
13015
13075
  function GetDevicePixelRatio()
@@ -16192,16 +16252,18 @@ function MinuteFrame()
16192
16252
  if (this.Identify==0 && this.IsShowCloseButton) this.DrawCloseBeforeButton(moveonPoint, mouseStatus); //盘前集合竞价关闭按钮
16193
16253
 
16194
16254
  if (this.ChartBorder.TitleHeight<5) return;
16195
- if (this.Identify==0 || this.Identify==1) return;
16196
16255
 
16197
16256
  var aryButton=[];
16198
- if (this.CloseIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW, Style:this.CloseWindowButton });
16199
- if (this.MaxMinWindow) aryButton.push({ ID:JSCHART_BUTTON_ID.MAX_MIN_WINDOW, Style:this.MaxMinWindowButton })
16200
- if (this.TitleWindow) aryButton.push({ ID:JSCHART_BUTTON_ID.TITLE_WINDOW, Style:this.TitleWindowButton });
16201
- if (this.ExportData) aryButton.push( {ID:JSCHART_BUTTON_ID.EXPORT_DATA, Style:this.ExportDataButton});
16202
- if (this.OverlayIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.OVERLAY_INDEX, Style:this.OverlayIndexButton });
16203
- if (this.ChangeIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.CHANGE_INDEX, Style:this.ChangeIndexButton });
16204
- if (this.ModifyIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM, Style:this.ModifyIndexParamButton });
16257
+ if (this.Identify!=0 && this.Identify!=1) //价格图和成交量图只有自定义按钮
16258
+ {
16259
+ if (this.CloseIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW, Style:this.CloseWindowButton });
16260
+ if (this.MaxMinWindow) aryButton.push({ ID:JSCHART_BUTTON_ID.MAX_MIN_WINDOW, Style:this.MaxMinWindowButton })
16261
+ if (this.TitleWindow) aryButton.push({ ID:JSCHART_BUTTON_ID.TITLE_WINDOW, Style:this.TitleWindowButton });
16262
+ if (this.ExportData) aryButton.push( {ID:JSCHART_BUTTON_ID.EXPORT_DATA, Style:this.ExportDataButton});
16263
+ if (this.OverlayIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.OVERLAY_INDEX, Style:this.OverlayIndexButton });
16264
+ if (this.ChangeIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.CHANGE_INDEX, Style:this.ChangeIndexButton });
16265
+ if (this.ModifyIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM, Style:this.ModifyIndexParamButton });
16266
+ }
16205
16267
 
16206
16268
  if (IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar))
16207
16269
  {
@@ -72796,31 +72858,6 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
72796
72858
  this.Draw();
72797
72859
  }
72798
72860
 
72799
- //获取当前的显示的指标
72800
- this.GetIndexInfo=function()
72801
- {
72802
- var aryIndex=[];
72803
- for(var i in this.WindowIndex)
72804
- {
72805
- var item=this.WindowIndex[i];
72806
- var info={Name:item.Name};
72807
- if (item.ID) info.ID=item.ID;
72808
- if (item.Arguments) //参数
72809
- {
72810
- info.Args=[];
72811
- for(var i in item.Arguments)
72812
- {
72813
- var argItem=item.Arguments[i];
72814
- info.Args.push( {Name:argItem.Name, Value:argItem.Value} );
72815
- }
72816
- }
72817
-
72818
- aryIndex.push(info);
72819
- }
72820
-
72821
- return aryIndex;
72822
- }
72823
-
72824
72861
  this.CreateExtendChart=function(name, option) //创建扩展图形
72825
72862
  {
72826
72863
  var chart;
@@ -80465,21 +80502,6 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
80465
80502
  this.WindowIndex[windowIndex].Create(this,windowIndex);
80466
80503
  }
80467
80504
 
80468
- //获取当前的显示的指标
80469
- this.GetIndexInfo=function()
80470
- {
80471
- var aryIndex=[];
80472
- for(var i in this.WindowIndex)
80473
- {
80474
- var item=this.WindowIndex[i];
80475
- var info={Name:item.Name};
80476
- if (item.ID) info.ID=item.ID;
80477
- aryIndex.push(info);
80478
- }
80479
-
80480
- return aryIndex;
80481
- }
80482
-
80483
80505
  this.OnTouchFinished=function()
80484
80506
  {
80485
80507
  if (this.CorssCursorTouchEnd===true) //手势离开十字光标消失
@@ -129561,7 +129583,7 @@ function HQChartScriptWorker()
129561
129583
 
129562
129584
 
129563
129585
 
129564
- var HQCHART_VERSION="1.1.12954";
129586
+ var HQCHART_VERSION="1.1.12962";
129565
129587
 
129566
129588
  function PrintHQChartVersion()
129567
129589
  {