hqchart 1.1.15719 → 1.1.15730

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.
@@ -1699,7 +1699,9 @@ SUSP_ID:1//停牌
1699
1699
  //十字光标状态
1700
1700
  };var JSCHART_CORSSCURSOR_STATUS_ID={NONE_ID:0,LINE_ID:1,LEFT_TEXT_ID:2,LEFT_INTER_TEXT_ID:4,RIGHT_TEXT_ID:8,RIGHT_INTER_TEXT_ID:16,BOTTOM_TEXT_ID:32};var JSCHART_TEMPORARY_ATTRIBUTE={MAINFRAME:{BOTTOMSPACE:"MainFrame-BottomSpace",//主图底部预留空间,单位像素
1701
1701
  TOPSPACE:"MainFrame-TopSpace",//主图顶部预留空间,单位像素
1702
- SHOWLEFTTEXT:"MainFrame-ShowLeftText",SHOWRIGHTTEXT:"MainFrame-ShowRightText",SPLITTYPE:"MainFrame-SplitType"//0=自动分割 1=数据的最大最小值分割 2=堆积图(0-100)
1702
+ SHOWLEFTTEXT:"MainFrame-ShowLeftText",SHOWRIGHTTEXT:"MainFrame-ShowRightText",SPLITTYPE:"MainFrame-SplitType",//0=自动分割 1=数据的最大最小值分割 2=堆积图(0-100)
1703
+ HRESERVED:"MainFrame-HorizontalReserved",//上下预留空间 { Top:, Bottom: }
1704
+ TITLEHEIGHT:"MainFrame-TitleHeight"//标题栏高度
1703
1705
  }};function PhoneDBClick(){this.Start=[];this.Clear=function(){this.Start=[];};this.AddTouchStart=function(x,y,time){if(this.Start.length>0){var item=this.Start[this.Start.length-1];var spanTime=time-item.Time;if(spanTime>0&&spanTime<300){this.Start.push({X:x,Y:y,Time:time});}else{this.Start=[];}}else{this.Start.push({X:x,Y:y,Time:time});}};this.IsVaildDBClick=function(){if(this.Start.length==2)return true;return false;};this.AddTouchEnd=function(time){if(this.Start.length<=0)return;var item=this.Start[this.Start.length-1];var spanTime=time-item.Time;if(spanTime>=0&&spanTime<150){}else{this.Start=[];}};}/*
1704
1706
  图形控件
1705
1707
  */function JSChartContainer(uielement,OffscreenElement,cacheElement){var _this9=this;this.ClassName='JSChartContainer';var _self=this;this.Frame;//框架画法
@@ -2345,8 +2347,7 @@ this.GetExtendChartByClassNameV2=function(name){var aryChart=[];for(var i=0;i<th
2345
2347
  this.DeleteExtendChart=function(data){if(data.Index>=this.ExtendChartPaint.length)return;if(this.ExtendChartPaint[data.Index]!=data.Chart)return;if(typeof data.Chart.Clear=='function')data.Chart.Clear();this.ExtendChartPaint.splice(data.Index,1);};//删除扩展画法
2346
2348
  this.DeleteExtendChartByID=function(id){for(var i=0;i<this.ExtendChartPaint.length;++i){var item=this.ExtendChartPaint[i];if(item.ID==id){this.ExtendChartPaint.splice(i,1);return true;}}return false;};//全屏提示信息 { Title:提示信息, Draw:false/true 是否立即重绘, }
2347
2349
  this.EnableSplashScreen=function(enable,option){if(!this.ChartSplashPaint)return;this.ChartSplashPaint.EnableSplash(enable);if(option&&option.Draw===false)return;if(enable)this.DrawSplashScreen(option);else this.Draw();};this.SetSplashScreen=function(option){if(!option)return;if(IFrameSplitOperator.IsBool(option.Enable))this.ChartSplashPaint.EnableSplash(option.Enable);if(option.Title)this.ChartSplashPaint.SetTitle(option.Title);if(option.Draw)this.Draw();};this.IsEnableSplashScreen=function(){if(!this.ChartSplashPaint)return false;return this.ChartSplashPaint.IsEnableSplash;};//设置指标窗口属性 windowItem=SetOption.Windows[i], frameItem=SetOption.Frames[i];
2348
- this.SetSubFrameAttribute=function(subFrame,windowItem,frameItem){if(!subFrame||!subFrame.Frame)return;var frame=subFrame.Frame;var pixelRatio=GetDevicePixelRatio();if(windowItem){if(IFrameSplitOperator.IsBool(windowItem.Modify))frame.ModifyIndex=windowItem.Modify;if(IFrameSplitOperator.IsBool(windowItem.Change))frame.ChangeIndex=windowItem.Change;if(IFrameSplitOperator.IsBool(windowItem.Close))frame.CloseIndex=windowItem.Close;if(IFrameSplitOperator.IsBool(windowItem.Overlay))frame.OverlayIndex=windowItem.Overlay;if(IFrameSplitOperator.IsBool(windowItem.Export))frame.ExportData=windowItem.Export;if(IFrameSplitOperator.IsBool(windowItem.MaxMin))frame.MaxMinWindow=windowItem.MaxMin;if(IFrameSplitOperator.IsBool(windowItem.TitleWindow))frame.TitleWindow=windowItem.TitleWindow;if(IFrameSplitOperator.IsBool(windowItem.AddIndexWindow))frame.AddIndexWindow=windowItem.AddIndexWindow;if(IFrameSplitOperator.IsBool(windowItem.IndexHelp))frame.IndexHelp=windowItem.IndexHelp;if(IFrameSplitOperator.IsBool(windowItem.IsDrawTitleBG))frame.IsDrawTitleBG=windowItem.IsDrawTitleBG;if(IFrameSplitOperator.IsBool(windowItem.IsShowNameArrow))frame.IsShowNameArrow=windowItem.IsShowNameArrow;if(IFrameSplitOperator.IsNumber(windowItem.TitleHeight))frame.ChartBorder.TitleHeight=windowItem.TitleHeight;else windowItem.TitleHeight=frame.ChartBorder.TitleHeight;if(IFrameSplitOperator.IsBool(windowItem.IsShowTitleArrow))frame.IsShowTitleArrow=windowItem.IsShowTitleArrow;if(IFrameSplitOperator.IsNumber(windowItem.TitleArrowType))frame.TitleArrowType=windowItem.TitleArrowType;if(IFrameSplitOperator.IsBool(windowItem.IsShowIndexName))frame.IsShowIndexName=windowItem.IsShowIndexName;if(IFrameSplitOperator.IsBool(windowItem.IsSinlgeLine))frame.IsSinlgeLine=windowItem.IsSinlgeLine;if(IFrameSplitOperator.IsBool(windowItem.IsShowOverlayIndexName))frame.IsShowOverlayIndexName=windowItem.IsShowOverlayIndexName;if(IFrameSplitOperator.IsNumber(windowItem.IndexParamSpace))frame.IndexParamSpace=windowItem.IndexParamSpace;if(IFrameSplitOperator.IsNumber(windowItem.IndexTitleSpace))frame.IndexTitleSpace=windowItem.IndexTitleSpace;if(!IFrameSplitOperator.IsUndefined(windowItem.HorizontalReserved))frame.HorizontalReserved=windowItem.HorizontalReserved;//Y轴上下预留
2349
- if(windowItem.OverlayIndexType){if(IFrameSplitOperator.IsNumber(windowItem.OverlayIndexType.Position))frame.OverlayIndexType.Position=windowItem.OverlayIndexType.Position;if(IFrameSplitOperator.IsNumber(windowItem.OverlayIndexType.LineSpace))frame.OverlayIndexType.LineSpace=windowItem.OverlayIndexType.LineSpace;}}if(frameItem){if(frameItem.SplitCount)frame.YSplitOperator.SplitCount=frameItem.SplitCount;//Y轴刻度线个数
2350
+ this.SetSubFrameAttribute=function(subFrame,windowItem,frameItem){if(!subFrame||!subFrame.Frame)return;var frame=subFrame.Frame;var pixelRatio=GetDevicePixelRatio();if(windowItem){if(IFrameSplitOperator.IsBool(windowItem.Modify))frame.ModifyIndex=windowItem.Modify;if(IFrameSplitOperator.IsBool(windowItem.Change))frame.ChangeIndex=windowItem.Change;if(IFrameSplitOperator.IsBool(windowItem.Close))frame.CloseIndex=windowItem.Close;if(IFrameSplitOperator.IsBool(windowItem.Overlay))frame.OverlayIndex=windowItem.Overlay;if(IFrameSplitOperator.IsBool(windowItem.Export))frame.ExportData=windowItem.Export;if(IFrameSplitOperator.IsBool(windowItem.MaxMin))frame.MaxMinWindow=windowItem.MaxMin;if(IFrameSplitOperator.IsBool(windowItem.TitleWindow))frame.TitleWindow=windowItem.TitleWindow;if(IFrameSplitOperator.IsBool(windowItem.AddIndexWindow))frame.AddIndexWindow=windowItem.AddIndexWindow;if(IFrameSplitOperator.IsBool(windowItem.IndexHelp))frame.IndexHelp=windowItem.IndexHelp;if(IFrameSplitOperator.IsBool(windowItem.IsDrawTitleBG))frame.IsDrawTitleBG=windowItem.IsDrawTitleBG;if(IFrameSplitOperator.IsBool(windowItem.IsShowNameArrow))frame.IsShowNameArrow=windowItem.IsShowNameArrow;if(IFrameSplitOperator.IsNumber(windowItem.TitleHeight))frame.ChartBorder.TitleHeight=windowItem.TitleHeight;else windowItem.TitleHeight=frame.ChartBorder.TitleHeight;if(IFrameSplitOperator.IsBool(windowItem.IsShowTitleArrow))frame.IsShowTitleArrow=windowItem.IsShowTitleArrow;if(IFrameSplitOperator.IsNumber(windowItem.TitleArrowType))frame.TitleArrowType=windowItem.TitleArrowType;if(IFrameSplitOperator.IsBool(windowItem.IsShowIndexName))frame.IsShowIndexName=windowItem.IsShowIndexName;if(IFrameSplitOperator.IsBool(windowItem.IsSinlgeLine))frame.IsSinlgeLine=windowItem.IsSinlgeLine;if(IFrameSplitOperator.IsBool(windowItem.IsShowOverlayIndexName))frame.IsShowOverlayIndexName=windowItem.IsShowOverlayIndexName;if(IFrameSplitOperator.IsNumber(windowItem.IndexParamSpace))frame.IndexParamSpace=windowItem.IndexParamSpace;if(IFrameSplitOperator.IsNumber(windowItem.IndexTitleSpace))frame.IndexTitleSpace=windowItem.IndexTitleSpace;if(windowItem.OverlayIndexType){if(IFrameSplitOperator.IsNumber(windowItem.OverlayIndexType.Position))frame.OverlayIndexType.Position=windowItem.OverlayIndexType.Position;if(IFrameSplitOperator.IsNumber(windowItem.OverlayIndexType.LineSpace))frame.OverlayIndexType.LineSpace=windowItem.OverlayIndexType.LineSpace;}}if(frameItem){if(frameItem.SplitCount)frame.YSplitOperator.SplitCount=frameItem.SplitCount;//Y轴刻度线个数
2350
2351
  if(frameItem.StringFormat)frame.YSplitOperator.StringFormat=frameItem.StringFormat;//Y轴文字格式
2351
2352
  if(IFrameSplitOperator.IsNumber(frameItem.FloatPrecision))frame.YSplitOperator.FloatPrecision=frameItem.FloatPrecision;//Y轴小数位数
2352
2353
  if(frameItem.Custom)frame.YSplitOperator.Custom=frameItem.Custom;//Y轴自定义刻度
@@ -2357,8 +2358,9 @@ if(frameItem.IsYReverse===true)frame.CoordinateType=1;//反转坐标
2357
2358
  if(IFrameSplitOperator.IsNumber(frameItem.PercentageTextFormat))frame.YSplitOperator.PercentageTextFormat=frameItem.PercentageTextFormat;//百分比坐标格式
2358
2359
  if(frameItem.DefaultYMaxMin)frame.YSplitOperator.DefaultYMaxMin=frameItem.DefaultYMaxMin;//指定最大最小值
2359
2360
  if(IFrameSplitOperator.IsBool(frameItem.EnableRemoveZero))frame.YSplitOperator.EnableRemoveZero=frameItem.EnableRemoveZero;//Y轴文字小数位是否自动抹0
2360
- if(IFrameSplitOperator.IsPlusNumber(frameItem.MinYDistance))frame.MinYDistance=frameItem.MinYDistance;if(IFrameSplitOperator.IsNumber(frameItem.BorderLine))frame.BorderLine=frameItem.BorderLine;if(IFrameSplitOperator.IsBool(frameItem.IsDrawTitleBottomLine))frame.IsDrawTitleBottomLine=frameItem.IsDrawTitleBottomLine;if(IFrameSplitOperator.IsBool(frameItem.IsShowIndexTitle))frame.IsShowIndexTitle=frameItem.IsShowIndexTitle;if(frameItem.ClientBGColor)frame.ClientBGColor=frameItem.ClientBGColor;if(frameItem.Toolbar){var subItem=frameItem.Toolbar.Margin;if(subItem&&IFrameSplitOperator.IsNumber(subItem.Right))frame.ToolbarConfig.Margin.Right=subItem.Right;}//分时图属性
2361
- if(IFrameSplitOperator.IsBool(frameItem.CloseBeforeButton))frameItem.IsShowCloseButton=frameItem.CloseBeforeButton;if(frame.YSplitOperator.RightTextConfig)//主图右侧坐标设置
2361
+ if(IFrameSplitOperator.IsPlusNumber(frameItem.MinYDistance))frame.MinYDistance=frameItem.MinYDistance;if(IFrameSplitOperator.IsNumber(frameItem.BorderLine))frame.BorderLine=frameItem.BorderLine;if(IFrameSplitOperator.IsBool(frameItem.IsDrawTitleBottomLine))frame.IsDrawTitleBottomLine=frameItem.IsDrawTitleBottomLine;if(IFrameSplitOperator.IsBool(frameItem.IsShowIndexTitle))frame.IsShowIndexTitle=frameItem.IsShowIndexTitle;if(frameItem.ClientBGColor)frame.ClientBGColor=frameItem.ClientBGColor;if(frameItem.Toolbar){var subItem=frameItem.Toolbar.Margin;if(subItem&&IFrameSplitOperator.IsNumber(subItem.Right))frame.ToolbarConfig.Margin.Right=subItem.Right;}if(!IFrameSplitOperator.IsUndefined(frameItem.HorizontalReserved))frame.HorizontalReserved=frameItem.HorizontalReserved;//Y轴上下预留
2362
+ //分时图属性
2363
+ if(IFrameSplitOperator.IsBool(frameItem.CloseBeforeButton))frame.IsShowCloseButton=frameItem.CloseBeforeButton;if(frame.YSplitOperator.RightTextConfig)//主图右侧坐标设置
2362
2364
  {if(IFrameSplitOperator.IsNumber(frameItem.RightTextFormat))//废弃(兼容版本)
2363
2365
  {frame.YSplitOperator.RightTextConfig.Format=frameItem.RightTextFormat;if(frameItem.RightTextFormat==2)frame.MultiTextFormat=1;}if(frameItem.RightText)//主图右侧坐标设置(新版本)
2364
2366
  {var subItem=frameItem.RightText;if(IFrameSplitOperator.IsNumber(subItem.Format))frame.YSplitOperator.RightTextConfig.Format=subItem.Format;if(subItem.Format==2)frame.MultiTextFormat=1;if(subItem.Percentage&&IFrameSplitOperator.IsNumber(subItem.Percentage.Dec))frame.YSplitOperator.RightTextConfig.Percentage.Dec=subItem.Percentage.Dec;}}}if(frame.DivFrameToolbar)frame.DivFrameToolbar.UpdateButton();//更新div工具条
@@ -2523,7 +2525,7 @@ this.UpdateTradeStatusData=function(data,option){if(option){//是否清空
2523
2525
  if(option.IsClear===true)this.GlobalOption.TradeStatus=null;}if(!data)return false;if(IFrameSplitOperator.IsNumber(data.Date)&&IFrameSplitOperator.IsNumber(data.Time)&&IFrameSplitOperator.IsNumber(data.Status)){this.GlobalOption.TradeStatus={Date:data.Date,Time:data.Time,Status:data.Status};return true;}return false;};//键盘下按暂停更新
2524
2526
  this.IsPauseUpdateByKeyboard=function(){if(!this.IsPressKeyboard)return false;if(!this.PressKeyboardConfig)return false;if(!this.PressKeyboardConfig.PauseUpdate)return false;return true;},//启动|关闭锁指标 aryIndex=[{ IndexID:指标ID, LockData:{IsLocked:} } ]
2525
2527
  this.EnableLockIndex=function(aryIndex){if(!IFrameSplitOperator.IsNonEmptyArray(aryIndex))return false;var mapIndex=new _map2.default();for(var i=0;i<aryIndex.length;++i){var item=aryIndex[i];if(item.IndexID&&item.LockData)mapIndex.set(item.IndexID,item);}var aryUpdate=[];for(var i=0;i<this.WindowIndex.length;++i){var item=this.WindowIndex[i];if(!item)continue;if(mapIndex.has(item.ID)){var mapItem=mapIndex.get(item.ID);item.SetLock(mapItem.LockData);//设置锁
2526
- aryUpdate.push({ID:i});}}for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i];if(!IFrameSplitOperator.IsNonEmptyArray(item.OverlayIndex))continue;for(var j=0;j<item.OverlayIndex.length;++j){var overlayItem=item.OverlayIndex[j];var script=overlayItem.Script;if(mapIndex.has(script.ID)){var mapItem=mapIndex.get(script.ID);script.SetLock(mapItem.LockData);aryUpdate.push({OverlayID:overlayItem.Identify});}}}if(!IFrameSplitOperator.IsNonEmptyArray(aryUpdate))return false;this.UpdateWindowIndexV2(aryUpdate);return true;};this.TryClickLock=function(x,y){if(!this.Frame||!IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame))return false;for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i];var chartLock=item.Frame.LockPaint;if(!chartLock||!chartLock.LockRect)continue;var tooltip=new TooltipData();if(!chartLock.GetTooltipData(x,y,tooltip))continue;tooltip.HQChart=this;var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_INDEX_LOCK);if(event&&event.Callback){var sendData={FrameID:item.Frame.Identify,Data:tooltip};event.Callback(event,sendData,this);}if(tooltip.Data.Callback)tooltip.Data.Callback(tooltip);return true;}return false;};this.RecvOverlayIndex=function(identify,data){var overlayIndex=this.GetOverlayIndexByIdentify(identify);if(overlayIndex==null){console.warn('[JSChartContainer::RecvOverlayIndex] can\'t find overlay index. [identify='+identify+']');return;}var script=overlayIndex.OverlayItem.Script;if(!script)return;if(typeof script.RecvSubscribeData!="function")return;var kData=this.GetKData();if(!kData)return;script.RecvSubscribeData(data,this,overlayIndex.WindowIndex,kData);};this.UpdateIndexTemporaryAttribute=function(windowIndex,aryAttribute){if(windowIndex<0)return;if(!IFrameSplitOperator.IsNonEmptyArray(aryAttribute))return;if(!this.Frame||!IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame))return;var mainFrame=this.Frame.SubFrame[windowIndex].Frame;this.IndexTemporaryAttribute[windowIndex]=[];var aryTemporaryAttribute=this.IndexTemporaryAttribute[windowIndex];for(var i=0;i<aryAttribute.length;++i){var item=aryAttribute[i];if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.BOTTOMSPACE){var backup=mainFrame.ChartBorder.BottomSpace;mainFrame.ChartBorder.BottomSpace=item.Value;aryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TOPSPACE){var backup=mainFrame.ChartBorder.TopSpace;mainFrame.ChartBorder.TopSpace=item.Value;aryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWLEFTTEXT){var backup=mainFrame.YSplitOperator.IsShowLeftText;mainFrame.YSplitOperator.IsShowLeftText=item.Value;aryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWRIGHTTEXT){var backup=mainFrame.YSplitOperator.IsShowRightText;mainFrame.YSplitOperator.IsShowRightText=item.Value;aryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SPLITTYPE){var backup=mainFrame.YSplitOperator.SplitType;mainFrame.YSplitOperator.SplitType=item.Value;aryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}}};this.RestoreIndexTemporaryAttribute=function(windowIndex){if(windowIndex<0)return;if(!this.Frame||!IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame))return;var aryTemporaryAttribute=this.IndexTemporaryAttribute[windowIndex];if(!IFrameSplitOperator.IsNonEmptyArray(aryTemporaryAttribute))return;var mainFrame=this.Frame.SubFrame[windowIndex].Frame;for(var i=0;i<aryTemporaryAttribute.length;++i){var item=aryTemporaryAttribute[i];if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.BOTTOMSPACE){mainFrame.ChartBorder.BottomSpace=item.BackupValue;}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TOPSPACE){mainFrame.ChartBorder.TopSpace=item.BackupValue;}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWLEFTTEXT){mainFrame.YSplitOperator.IsShowLeftText=item.BackupValue;}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWRIGHTTEXT){mainFrame.YSplitOperator.IsShowRightText=item.BackupValue;}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SPLITTYPE){mainFrame.YSplitOperator.SplitType=item.BackupValue;}}};}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)//键盘事件
2528
+ aryUpdate.push({ID:i});}}for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i];if(!IFrameSplitOperator.IsNonEmptyArray(item.OverlayIndex))continue;for(var j=0;j<item.OverlayIndex.length;++j){var overlayItem=item.OverlayIndex[j];var script=overlayItem.Script;if(mapIndex.has(script.ID)){var mapItem=mapIndex.get(script.ID);script.SetLock(mapItem.LockData);aryUpdate.push({OverlayID:overlayItem.Identify});}}}if(!IFrameSplitOperator.IsNonEmptyArray(aryUpdate))return false;this.UpdateWindowIndexV2(aryUpdate);return true;};this.TryClickLock=function(x,y){if(!this.Frame||!IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame))return false;for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i];var chartLock=item.Frame.LockPaint;if(!chartLock||!chartLock.LockRect)continue;var tooltip=new TooltipData();if(!chartLock.GetTooltipData(x,y,tooltip))continue;tooltip.HQChart=this;var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_INDEX_LOCK);if(event&&event.Callback){var sendData={FrameID:item.Frame.Identify,Data:tooltip};event.Callback(event,sendData,this);}if(tooltip.Data.Callback)tooltip.Data.Callback(tooltip);return true;}return false;};this.RecvOverlayIndex=function(identify,data){var overlayIndex=this.GetOverlayIndexByIdentify(identify);if(overlayIndex==null){console.warn('[JSChartContainer::RecvOverlayIndex] can\'t find overlay index. [identify='+identify+']');return;}var script=overlayIndex.OverlayItem.Script;if(!script)return;if(typeof script.RecvSubscribeData!="function")return;var kData=this.GetKData();if(!kData)return;script.RecvSubscribeData(data,this,overlayIndex.WindowIndex,kData);};this.UpdateIndexTemporaryAttribute=function(windowIndex,aryAttribute){if(windowIndex<0)return;if(!IFrameSplitOperator.IsNonEmptyArray(aryAttribute))return;if(!this.Frame||!IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame))return;var mainFrame=this.Frame.SubFrame[windowIndex].Frame;this.IndexTemporaryAttribute[windowIndex]=[];var aryTemporaryAttribute=this.IndexTemporaryAttribute[windowIndex];for(var i=0;i<aryAttribute.length;++i){var item=aryAttribute[i];if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.BOTTOMSPACE){var backup=mainFrame.ChartBorder.BottomSpace;mainFrame.ChartBorder.BottomSpace=item.Value;aryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TOPSPACE){var backup=mainFrame.ChartBorder.TopSpace;mainFrame.ChartBorder.TopSpace=item.Value;aryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWLEFTTEXT){var backup=mainFrame.YSplitOperator.IsShowLeftText;mainFrame.YSplitOperator.IsShowLeftText=item.Value;aryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWRIGHTTEXT){var backup=mainFrame.YSplitOperator.IsShowRightText;mainFrame.YSplitOperator.IsShowRightText=item.Value;aryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SPLITTYPE){var backup=mainFrame.YSplitOperator.SplitType;mainFrame.YSplitOperator.SplitType=item.Value;aryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.HRESERVED){var backup=mainFrame.HorizontalReserved;mainFrame.HorizontalReserved=item.Value;aryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TITLEHEIGHT){var backup=mainFrame.ChartBorder.TitleHeight;mainFrame.ChartBorder.TitleHeight=item.Value;aryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}}};this.RestoreIndexTemporaryAttribute=function(windowIndex){if(windowIndex<0)return;if(!this.Frame||!IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame))return;var aryTemporaryAttribute=this.IndexTemporaryAttribute[windowIndex];if(!IFrameSplitOperator.IsNonEmptyArray(aryTemporaryAttribute))return;var mainFrame=this.Frame.SubFrame[windowIndex].Frame;for(var i=0;i<aryTemporaryAttribute.length;++i){var item=aryTemporaryAttribute[i];if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.BOTTOMSPACE){mainFrame.ChartBorder.BottomSpace=item.BackupValue;}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TOPSPACE){mainFrame.ChartBorder.TopSpace=item.BackupValue;}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWLEFTTEXT){mainFrame.YSplitOperator.IsShowLeftText=item.BackupValue;}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWRIGHTTEXT){mainFrame.YSplitOperator.IsShowRightText=item.BackupValue;}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SPLITTYPE){mainFrame.YSplitOperator.SplitType=item.BackupValue;}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.HRESERVED){mainFrame.HorizontalReserved=item.BackupValue;}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TITLEHEIGHT){mainFrame.ChartBorder.TitleHeight=item.BackupValue;}}};}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)//键盘事件
2527
2529
  {if(this.JSChartContainer&&this.JSChartContainer.OnKeyDown)this.JSChartContainer.OnKeyDown(e);}function OnKeyUp(e)//键盘事件
2528
2530
  {if(this.JSChartContainer&&this.JSChartContainer.OnKeyUp)this.JSChartContainer.OnKeyUp(e);}function OnWheel(e)//上下滚动事件
2529
2531
  {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;}function IsRectOverlap(rt,rt2){if(Math.max(rt.Left,rt2.Left)<Math.min(rt.Right,rt2.Right)&&Math.max(rt.Top,rt2.Top)<Math.min(rt.Bottom,rt2.Bottom))return true;return false;}//获取文字高度和宽度
@@ -3316,8 +3318,8 @@ this.UpdateFrameMaxMin=function()//调整坐标最大 最小值
3316
3318
  {this.Frame.XYSplit=true;return;}if(this.Frame.YSpecificMaxMin)//固定坐标
3317
3319
  {value.Max=this.Frame.YSpecificMaxMin.Max;value.Min=this.Frame.YSpecificMaxMin.Min;}else{for(var i=0;i<this.ChartPaint.length;++i){var paint=this.ChartPaint[i];if(paint.IsShow==false)continue;//隐藏的图形不计算
3318
3320
  var range=paint.GetMaxMin();if(range==null||range.Max==null||range.Min==null)continue;if(IFrameSplitOperator.IsNumber(range.Max)){if(value.Max==null||value.Max<range.Max)value.Max=range.Max;}if(IFrameSplitOperator.IsNumber(range.Min)){if(value.Min==null||value.Min>range.Min)value.Min=range.Min;}}}if(!IFrameSplitOperator.IsNumber(this.Frame.YMaxMin.Max)||this.Frame.YMaxMin.Max!=value.Max){this.Frame.YMaxMin.Max=value.Max;this.Frame.XYSplit=true;}if(!IFrameSplitOperator.IsNumber(this.Frame.YMaxMin.Min)||this.Frame.YMaxMin.Min!=value.Min){this.Frame.YMaxMin.Min=value.Min;this.Frame.XYSplit=true;}if(this.Frame.XYSplit){var max=10,min=0;if(value.Max!=null)max=value.Max;if(value.Min!=null)min=value.Min;this.Frame.HorizontalMax=max;this.Frame.HorizontalMin=min;}else{this.Frame.XYSplit=true;}};this.UpdateTemporaryAttribute=function(mainFrame,aryAttribute)//更新临时属性
3319
- {if(!IFrameSplitOperator.IsNonEmptyArray(aryAttribute))return;for(var i=0;i<aryAttribute.length;++i){var item=aryAttribute[i];if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.BOTTOMSPACE){var backup=mainFrame.ChartBorder.BottomSpace;mainFrame.ChartBorder.BottomSpace=item.Value;this.AryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TOPSPACE){var backup=mainFrame.ChartBorder.TopSpace;mainFrame.ChartBorder.TopSpace=item.Value;this.AryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWLEFTTEXT){var backup=mainFrame.YSplitOperator.IsShowLeftText;mainFrame.YSplitOperator.IsShowLeftText=item.Value;this.AryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWRIGHTTEXT){var backup=mainFrame.YSplitOperator.IsShowRightText;mainFrame.YSplitOperator.IsShowRightText=item.Value;this.AryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}}};this.RestoreTemporaryAttribute=function(mainFrame)//还原临时属性
3320
- {if(!IFrameSplitOperator.IsNonEmptyArray(this.AryTemporaryAttribute))return;for(var i=0;i<this.AryTemporaryAttribute.length;++i){var item=this.AryTemporaryAttribute[i];if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.BOTTOMSPACE){mainFrame.ChartBorder.BottomSpace=item.BackupValue;}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TOPSPACE){mainFrame.ChartBorder.TopSpace=item.BackupValue;}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWLEFTTEXT){mainFrame.YSplitOperator.IsShowLeftText=item.BackupValue;}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWRIGHTTEXT){mainFrame.YSplitOperator.IsShowRightText=item.BackupValue;}}this.AryTemporaryAttribute=[];};}//行情框架
3321
+ {if(!IFrameSplitOperator.IsNonEmptyArray(aryAttribute))return;for(var i=0;i<aryAttribute.length;++i){var item=aryAttribute[i];if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.BOTTOMSPACE){var backup=mainFrame.ChartBorder.BottomSpace;mainFrame.ChartBorder.BottomSpace=item.Value;this.AryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TOPSPACE){var backup=mainFrame.ChartBorder.TopSpace;mainFrame.ChartBorder.TopSpace=item.Value;this.AryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWLEFTTEXT){var backup=mainFrame.YSplitOperator.IsShowLeftText;mainFrame.YSplitOperator.IsShowLeftText=item.Value;this.AryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWRIGHTTEXT){var backup=mainFrame.YSplitOperator.IsShowRightText;mainFrame.YSplitOperator.IsShowRightText=item.Value;this.AryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.HRESERVED){var backup=mainFrame.HorizontalReserved;mainFrame.HorizontalReserved=item.Value;this.AryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TITLEHEIGHT){var backup=mainFrame.ChartBorder.TitleHeight;mainFrame.ChartBorder.TitleHeight=item.Value;this.AryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}}};this.RestoreTemporaryAttribute=function(mainFrame)//还原临时属性
3322
+ {if(!IFrameSplitOperator.IsNonEmptyArray(this.AryTemporaryAttribute))return;for(var i=0;i<this.AryTemporaryAttribute.length;++i){var item=this.AryTemporaryAttribute[i];if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.BOTTOMSPACE){mainFrame.ChartBorder.BottomSpace=item.BackupValue;}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TOPSPACE){mainFrame.ChartBorder.TopSpace=item.BackupValue;}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWLEFTTEXT){mainFrame.YSplitOperator.IsShowLeftText=item.BackupValue;}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWRIGHTTEXT){mainFrame.YSplitOperator.IsShowRightText=item.BackupValue;}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.HRESERVED){mainFrame.HorizontalReserved=item.BackupValue;}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TITLEHEIGHT){mainFrame.ChartBorder.TitleHeight=item.BackupValue;this.AryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}}this.AryTemporaryAttribute=[];};}//行情框架
3321
3323
  function HQTradeFrame(){this.SubFrame=new Array();//SubFrameItem 数组
3322
3324
  this.SizeChange=true;//大小是否改变
3323
3325
  this.ChartBorder;this.Canvas;//画布
@@ -8524,9 +8526,11 @@ this.ChartPaint[0].TradeData=null;//交易系统数据取消
8524
8526
  var title=this.TitlePaint[1];if(title){title.TradeIndex=null;title.ColorIndex=null;}this.UpdataDataoffset();//更新数据偏移
8525
8527
  this.UpdateFrameMaxMin();//调整坐标最大 最小值
8526
8528
  this.Draw();};this.SetFrameToolbar=function(windowIndex,window){if(!window||!this.Frame.SubFrame[windowIndex]||!this.Frame.SubFrame[windowIndex].Frame)return;var frame=this.Frame.SubFrame[windowIndex].Frame;var bChanged=false;if(IFrameSplitOperator.IsBool(window.Modify)){frame.ModifyIndex=window.Modify;bChanged=true;}if(IFrameSplitOperator.IsBool(window.Change)){frame.ChangeIndex=window.Change;bChanged=true;}if(IFrameSplitOperator.IsBool(window.Close)){frame.CloseIndex=window.Close;bChanged=true;}if(IFrameSplitOperator.IsBool(window.Overlay)){frame.OverlayIndex=window.Overlay;bChanged=true;}//工具栏变 先刷新工具栏
8527
- if(bChanged){frame.SizeChange=true;frame.DrawToolbar();}};this.SetFrameAttribute=function(windowIndex,attr){if(!this.Frame.SubFrame[windowIndex]||!this.Frame.SubFrame[windowIndex].Frame)return;if(!attr)return;var frame=this.Frame.SubFrame[windowIndex].Frame;if(!IFrameSplitOperator.IsUndefined(attr.HorizontalReserved))frame.HorizontalReserved=attr.HorizontalReserved;//Y轴上下预留
8529
+ if(bChanged){frame.SizeChange=true;frame.DrawToolbar();}};//TODO:准备废弃
8530
+ this.SetFrameAttribute=function(windowIndex,attr){if(!this.Frame.SubFrame[windowIndex]||!this.Frame.SubFrame[windowIndex].Frame)return;if(!attr)return;var frame=this.Frame.SubFrame[windowIndex].Frame;if(!IFrameSplitOperator.IsUndefined(attr.HorizontalReserved))frame.HorizontalReserved=attr.HorizontalReserved;//Y轴上下预留
8528
8531
  if(IFrameSplitOperator.IsNumber(attr.TitleHeight))frame.ChartBorder.TitleHeight=attr.TitleHeight;//指标标题高度
8529
- };this.ResetFrameAttribute=function(windowIndex){if(!this.Frame.SubFrame[windowIndex]||!this.Frame.SubFrame[windowIndex].Frame)return;var frame=this.Frame.SubFrame[windowIndex].Frame;frame.HorizontalReserved=null;};//切换成 脚本指标
8532
+ };//TODO:准备废弃
8533
+ this.ResetFrameAttribute=function(windowIndex){if(!this.Frame.SubFrame[windowIndex]||!this.Frame.SubFrame[windowIndex].Frame)return;var frame=this.Frame.SubFrame[windowIndex].Frame;frame.HorizontalReserved=null;};//切换成 脚本指标
8530
8534
  this.ChangeScriptIndex=function(windowIndex,indexData,option){this.DeleteIndexPaint(windowIndex,true);this.RestoreIndexTemporaryAttribute(windowIndex);//恢复临时属性
8531
8535
  this.WindowIndex[windowIndex]=new ScriptIndex(indexData.Name,indexData.Script,indexData.Args,indexData);//脚本执行
8532
8536
  this.ResetFrameAttribute(windowIndex);this.Frame.ClearYCoordinateMaxMin(windowIndex);if(option){if(option.Window){this.SetFrameToolbar(windowIndex,option.Window);this.SetFrameAttribute(windowIndex,option.Window);//窗口属性
@@ -11841,7 +11845,7 @@ this.CallFunction=function(name,args,node,symbolData){switch(name){case'MAX':cas
11841
11845
  return this.REFX(args[0],args[1]);case'ABS':return this.ABS(args[0]);case'MA':return this.MA(args[0],args[1]);case"EMA":return this.EMA(args[0],args[1]);case"SMA":return this.SMA(args[0],args[1],args[2]);case"DMA":return this.DMA(args[0],args[1]);case"XMA":return this.XMA(args[0],args[1]);case'EXPMA':return this.EXPMA(args[0],args[1]);case'EXPMEMA':return this.EXPMEMA(args[0],args[1]);case'COUNT':return this.COUNT(args[0],args[1]);case'LLV':return this.LLV(args[0],args[1]);case"LV":return this.LV(args[0],args[1]);case'LLVBARS':return this.LLVBARS(args[0],args[1]);case'HHV':return this.HHV(args[0],args[1]);case'HV':return this.HV(args[0],args[1]);case'HHVBARS':return this.HHVBARS(args[0],args[1]);case'MULAR':return this.MULAR(args[0],args[1]);case'CROSS':return this.CROSS(args[0],args[1]);case'LONGCROSS':return this.LONGCROSS(args[0],args[1],args[2]);case"ISVALID":return this.ISVALID(args[0]);case"CROSSDOWN":return this.CROSSDOWN(args[0],args[1]);case"CROSSUP":return this.CROSSUP(args[0],args[1]);case'AVEDEV':return this.AVEDEV(args[0],args[1]);case'STD':return this.STD(args[0],args[1]);case"STDDEV":return this.STDDEV(args[0],args[1]);case'IF':case'IFF':case"IFELSE":return this.IF(args[0],args[1],args[2]);case'IFN':return this.IFN(args[0],args[1],args[2]);case'NOT':return this.NOT(args[0]);case'SUM':return this.SUM(args[0],args[1]);case'RANGE':return this.RANGE(args[0],args[1],args[2]);case'EXIST':return this.EXIST(args[0],args[1]);case'EXISTR':return this.EXISTR(args[0],args[1],args[2]);case'FILTER':return this.FILTER(args[0],args[1]);case'TFILTER':return this.TFILTER(args[0],args[1],args[2]);case"FILTERX":return this.FILTERX(args[0],args[1],node);case'SLOPE':return this.SLOPE(args[0],args[1]);case'BARSLAST':return this.BARSLAST(args[0]);case"BARSLASTS"://this.ThrowUnexpectedNode(node,`函数'BARSLASTS'还在开发中`, name);
11842
11846
  return this.BARSLASTS(args[0],args[1],node);case'BARSCOUNT':return this.BARSCOUNT(args[0]);case'BARSSINCEN':return this.BARSSINCEN(args[0],args[1]);case'BARSSINCE':return this.BARSSINCE(args[0]);case'LAST':return this.LAST(args[0],args[1],args[2]);case'EVERY':return this.EVERY(args[0],args[1]);case'DEVSQ':return this.DEVSQ(args[0],args[1]);case'ZIG':return this.ZIG(args[0],args[1]);case'TROUGHBARS':return this.TROUGHBARS(args[0],args[1],args[2]);case"TROUGH":return this.TROUGH(args[0],args[1],args[2]);case'PEAKBARS':return this.PEAKBARS(args[0],args[1],args[2]);case'PEAK':return this.PEAK(args[0],args[1],args[2]);case'COST':return this.COST(args[0]);case'WINNER':return this.WINNER(args[0],node);case'PPART':return this.PPART(args[0],node);case"COSTEX":return this.COSTEX(args[0],args[1],node);case"LWINNER":return this.LWINNER(args[0],args[1],node);case"PWINNER":return this.PWINNER(args[0],args[1],node);case'FORCAST':return this.FORCAST(args[0],args[1]);case"TSMA":return this.TSMA(args[0],args[1]);case'STDP':return this.STDP(args[0],args[1]);case'VAR':return this.VAR(args[0],args[1]);case'VARP':return this.VARP(args[0],args[1]);case'UPNDAY':return this.UPNDAY(args[0],args[1]);case'DOWNNDAY':return this.DOWNNDAY(args[0],args[1]);case'NDAY':return this.NDAY(args[0],args[1],args[2]);case'RELATE':return this.RELATE(args[0],args[1],args[2]);case'COVAR':return this.COVAR(args[0],args[1],args[2]);case'BETA':return this.BETA(args[0]);case'BETA2':return this.BETA2(args[0],args[1],args[2]);case'WMA':return this.WMA(args[0],args[1]);case'MEMA':return this.MEMA(args[0],args[1]);case'SUMBARS':return this.SUMBARS(args[0],args[1]);case'REVERSE':return this.REVERSE(args[0]);case'SAR':return this.SAR(args[0],args[1],args[2]);case'SARTURN':return this.SARTURN(args[0],args[1],args[2]);case'BACKSET':return this.BACKSET(args[0],args[1]);case'BETWEEN':return this.BETWEEN(args[0],args[1],args[2]);case'STRCAT':return this.STRCAT(args[0],args[1]);case"STRCAT6":return this.STRCAT6(args[0],args[1],args[2],args[3],args[4],args[5]);case'CON2STR':return this.CON2STR(args[0],args[1]);case"VAR2STR":return this.VAR2STR(args[0],args[1]);case"VARCAT":return this.VARCAT(args[0],args[1]);case"VARCAT6":return this.VARCAT6(args[0],args[1],args[2],args[3],args[4],args[5]);case"STRSPACE":return this.STRSPACE(args[0]);case"FINDSTR":return this.FINDSTR(args[0],args[1]);case"STRCMP":return this.STRCMP(args[0],args[1]);case"STRLEN":return this.STRLEN(args[0]);case"STRFORMAT":return this.STRFORMAT(args[0],args,node);case'DTPRICE':return this.DTPRICE(args[0],args[1]);case'ZTPRICE':return this.ZTPRICE(args[0],args[1]);case'MOD':return this.MOD(args[0],args[1]);case'POW':return this.POW(args[0],args[1]);case'CEILING':return this.CEILING(args[0]);case'FLOOR':return this.FLOOR(args[0]);case'FRACPART':return this.FRACPART(args[0]);case"SIGN":return this.SIGN(args[0]);case'BARSLASTCOUNT':return this.BARSLASTCOUNT(args[0]);case'INTPART':return this.INTPART(args[0]);case"CONST":return this.CONST(args[0]);case"TOPRANGE":return this.TOPRANGE(args[0]);case"LOWRANGE":return this.LOWRANGE(args[0]);case"FINDLOW":return this.FINDLOW(args[0],args[1],args[2],args[3]);case"FINDLOWBARS":return this.FINDLOWBARS(args[0],args[1],args[2],args[3]);case"FINDHIGH":return this.FINDHIGH(args[0],args[1],args[2],args[3]);case"FINDHIGHBARS":return this.FINDHIGHBARS(args[0],args[1],args[2],args[3]);case"BARSNEXT":return this.BARSNEXT(args[0]);case"HOD":return this.HOD(args[0],args[1]);case"LOD":return this.LOD(args[0],args[1]);case"AMA":return this.AMA(args[0],args[1]);case"TMA":return this.TMA(args[0],args[1],args[2]);case"ROUND":return this.ROUND(args[0]);case"ROUND2":return this.ROUND2(args[0],args[1]);case"TRMA":return this.TRMA(args[0],args[1]);case"VALUEWHEN":return this.VALUEWHEN(args[0],args[1]);case"HARMEAN":return this.HARMEAN(args[0],args[1]);case"DATETODAY":return this.DATETODAY(args[0]);case"DAYTODATE":return this.DAYTODATE(args[0]);case"TIMETOSEC":return this.TIMETOSEC(args[0]);case"SECTOTIME":return this.SECTOTIME(args[0]);case"ANY":return this.ANY(args[0],args[1]);case"ALL":return this.ALL(args[0],args[1]);case"TESTSKIP":return this.TESTSKIP(args[0],node);case"SUMBARS":return this.SUMBARS(args[0],args[1]);case"ALIGNRIGHT":return this.ALIGNRIGHT(args[0]);//三角函数
11843
11847
  case'ATAN':return this.Trigonometric(args[0],Math.atan);case'ACOS':return this.ACOS(args[0]);case'ASIN':return this.ASIN(args[0]);case'COS':return this.Trigonometric(args[0],Math.cos);case'SIN':return this.Trigonometric(args[0],Math.sin);case'TAN':return this.Trigonometric(args[0],Math.tan);case'LN':return this.Trigonometric(args[0],Math.log);case'LOG':return this.Trigonometric(args[0],_log2.default);case'EXP':return this.Trigonometric(args[0],Math.exp);case'SQRT':return this.Trigonometric(args[0],Math.sqrt);case"RAND":return this.RAND(args[0]);default:this.ThrowUnexpectedNode(node,'函数'+name+'不存在',name);}};//调用自定义函数 返回数据格式{Out:输出数据, Draw:绘图数据(可选)}
11844
- this.CallCustomFunction=function(name,args,symbolData,node){var functionInfo=g_JSComplierResource.CustomFunction.Data.get(name);var dwonloadData=symbolData.GetStockCacheData({CustomName:name,Node:node});if(!functionInfo.Invoke)return{Out:dwonloadData};JSConsole.Complier.Log('[JSAlgorithm::CallCustomFunction] call custom function functionInfo=',functionInfo);var self=this;var obj={Name:name,Args:args,Symbol:symbolData.Symbol,Period:symbolData.Period,Right:symbolData.Right,KData:symbolData.Data,//K线数据
11848
+ this.CallCustomFunction=function(name,args,symbolData,node){var functionInfo=g_JSComplierResource.CustomFunction.Data.get(name);var dwonloadData=null;if(functionInfo.IsDownload)dwonloadData=symbolData.GetStockCacheData({CustomName:name,Node:node});if(!functionInfo.Invoke)return{Out:dwonloadData};JSConsole.Complier.Log('[JSAlgorithm::CallCustomFunction] call custom function functionInfo=',functionInfo);var self=this;var obj={Name:name,Args:args,Symbol:symbolData.Symbol,Period:symbolData.Period,Right:symbolData.Right,KData:symbolData.Data,//K线数据
11845
11849
  DownloadData:dwonloadData,ThrowError:function ThrowError(error){self.ThrowUnexpectedNode(node,error);}};return functionInfo.Invoke(obj);};this.ThrowUnexpectedNode=function(node,message,word){var marker=node.Marker;var msg=message||"执行异常";return this.ErrorHandler.ThrowError(marker.Index,marker.Line,marker.Column,msg,word);};}//是否有是有效的数字
11846
11850
  JSAlgorithm.prototype.IsNumber=function(value){if(value==null)return false;if(isNaN(value))return false;return true;};//是否有是有效的除数
11847
11851
  JSAlgorithm.prototype.IsDivideNumber=function(value){if(value==null)return false;if(isNaN(value))return false;if(value==0)return false;return true;};//取模
@@ -12092,7 +12096,7 @@ this.HORLINE=function(condition,data,type,extend){var drawData={Data:[],LineType
12092
12096
  //{ Color:背景色, Border:边框颜色, Margin=[上,下,左, 右] }
12093
12097
  this.BACKGROUND=function(color,borderColor,left,right,top,bottom){var bg={Margin:[0,1,1,1]};if(color)bg.Color=color;if(borderColor)bg.Border=borderColor;if(IFrameSplitOperator.IsNumber(left))bg.Margin[2]=left;if(IFrameSplitOperator.IsNumber(right))bg.Margin[3]=right;if(IFrameSplitOperator.IsNumber(top))bg.Margin[0]=top;if(IFrameSplitOperator.IsNumber(bottom))bg.Margin[1]=bottom;return bg;};//该函数和DRAWTEXT, DRAWICON连用
12094
12098
  //{ color:线段颜色, lineWidth:宽度 lineType:线段样式0=直线 1=虚线}
12095
- this.CKLINE=function(color,lineWidth,lineType,lineDotted){var drawData={Color:color,LineWidth:1,LineType:0,LineDot:[3,3]};if(IFrameSplitOperator.IsPlusNumber(lineWidth))drawData.LineWidth=lineWidth;if(IFrameSplitOperator.IsPlusNumber(lineType))drawData.LineType=lineType;if(lineDotted){var ary=lineDotted.split(',');var dotted=[];for(var i in ary){var item=ary[i];if(!item)continue;var value=parseInt(ary[i]);if(value<=0)continue;dotted.push(value);}if(dotted.length>0)drawData.LineDotted=dotted;}drawData.Data=[];for(var i=0;i<this.SymbolData.Data.Data.length;++i){var item=this.SymbolData.Data.Data[i];drawData.Data[i]={High:item.High,Low:item.Low};}return drawData;};//多头建仓(买入开仓).
12099
+ this.CKLINE=function(color,lineWidth,lineType,lineDotted){var drawData={Color:color,LineWidth:1,LineType:0,LineDot:[3,3]};if(IFrameSplitOperator.IsPlusNumber(lineWidth))drawData.LineWidth=lineWidth;if(IFrameSplitOperator.IsPlusNumber(lineType))drawData.LineType=lineType;if(lineDotted){var ary=lineDotted.split(',');var dotted=[];for(var i in ary){var item=ary[i];if(!item)continue;var value=parseInt(ary[i]);if(value<=0)continue;dotted.push(value);}if(dotted.length>0)drawData.LineDotted=dotted;}drawData.Data=[];for(var i=0;i<this.SymbolData.Data.Data.length;++i){var item=this.SymbolData.Data.Data[i];drawData.Data[i]={High:item.High,Low:item.Low,Close:item.Close};}return drawData;};//多头建仓(买入开仓).
12096
12100
  //参数1为触发条件,参数2为标记放置位置.此函数只适用于特定版本交易模式下.
12097
12101
  //例如: BUY(CROSS(A,B),LOW),当A上穿B时,在LOW处画标记,同时突出提示或直接下单,如果LOW改为DRAWNULL,就不画标记.(分时图上不支持)
12098
12102
  this.BUY=function(condition,data,iconSymbol,color){var iconInfo={Color:"rgb(0,255,0)",Type:"SVG",Icon:'\uE660'};if(IFrameSplitOperator.IsString(iconSymbol))iconInfo.Icon=iconSymbol;if(color)iconInfo.Color=color;var result=this.CalculateTradeData(condition,data,iconInfo);result.DrawType='BUY';return result;};this.BUYSHORT=function(condition,data,iconSymbol,color){var iconInfo={Color:"rgb(0,255,0)",Type:"SVG",Icon:'\uE660'};if(IFrameSplitOperator.IsString(iconSymbol))iconInfo.Icon=iconSymbol;if(color)iconInfo.Color=color;var result=this.CalculateTradeData(condition,data,iconInfo);result.DrawType='BUYSHORT';return result;};//多头平仓(卖出平仓).
@@ -16326,7 +16330,7 @@ if(this.MouseOnItem){if(this.MouseOnItem.Data==item)color=this.TextConfig.MouseO
16326
16330
  */this.Canvas.restore();this.ResizeDataCount(endIndex);};this.ResizeDataCount=function(startIndex){if(!IFrameSplitOperator.IsNumber(startIndex))return;if(startIndex<=0)return;if(this.LimitCount<=0)return;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.AryText))return;if(this.Data.AryText.length<=this.LimitCount)return;var delCount=this.Data.AryText.length-this.LimitCount;for(var i=0;i<delCount&&i<startIndex;++i){this.Data.AryText.shift();}};this.GetTooltipData=function(x,y,tooltip){var rtClient=this.GetClientRect();if(x>=rtClient.Left&&x<=rtClient.Right){for(var i=0;i<this.AryRect.length;++i){var item=this.AryRect[i];if(Path2DHelper.PtInRect(x,y,item.Rect)){tooltip.Data=item;tooltip.ChartPaint=this;tooltip.Type=1;return true;}}}return false;};this.ScrollStep=function(defaultStep){if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.AryText))return false;if(!this.FirstItem)return false;var moveStep=this.MoveStep;if(IFrameSplitOperator.IsNumber(defaultStep))moveStep=defaultStep;var rtClient=this.GetClientRect();var left=rtClient.Left;var right=rtClient.Right;var width=this.FirstItem.Move.Width;var xOffset=this.FirstItem.Move.XOffset+moveStep;if(right-xOffset+width<left){var startIndex=this.GetDataIndex(this.FirstItem);nextIndex=startIndex-1;if(nextIndex<0){var index=this.Data.AryText.length-1;this.FirstItem=this.Data.AryText[index];this.FirstItem.Move={XOffset:0};}else{this.FirstItem=this.Data.AryText[nextIndex];this.FirstItem.Move={XOffset:xOffset-width};}}else{this.FirstItem.Move.XOffset=xOffset;}return true;};}/********************************************************************************
16327
16331
  * 版本信息输出
16328
16332
  *
16329
- */var HQCHART_VERSION="1.1.15718";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();//把给外界调用的方法暴露出来
16333
+ */var HQCHART_VERSION="1.1.15729";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();//把给外界调用的方法暴露出来
16330
16334
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
16331
16335
  // BaseIndex:BaseIndex,
16332
16336
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.15719",
3
+ "version": "1.1.15730",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -9580,7 +9580,8 @@ function JSAlgorithm(errorHandler,symbolData)
9580
9580
  this.CallCustomFunction=function(name, args, symbolData, node)
9581
9581
  {
9582
9582
  var functionInfo=g_JSComplierResource.CustomFunction.Data.get(name);
9583
- var dwonloadData=symbolData.GetStockCacheData({ CustomName:name, Node:node });
9583
+ var dwonloadData=null;
9584
+ if (functionInfo.IsDownload) dwonloadData=symbolData.GetStockCacheData({ CustomName:name, Node:node });
9584
9585
  if (!functionInfo.Invoke)
9585
9586
  return { Out: dwonloadData }
9586
9587
 
@@ -11748,7 +11749,7 @@ function JSDraw(errorHandler,symbolData)
11748
11749
  for(var i=0;i<this.SymbolData.Data.Data.length;++i)
11749
11750
  {
11750
11751
  var item=this.SymbolData.Data.Data[i];
11751
- drawData.Data[i]={ High:item.High, Low:item.Low };
11752
+ drawData.Data[i]={ High:item.High, Low:item.Low, Close:item.Close };
11752
11753
  }
11753
11754
 
11754
11755
  return drawData;
@@ -3083,6 +3083,8 @@ var JSCHART_TEMPORARY_ATTRIBUTE=
3083
3083
  SHOWLEFTTEXT:"MainFrame-ShowLeftText",
3084
3084
  SHOWRIGHTTEXT:"MainFrame-ShowRightText",
3085
3085
  SPLITTYPE:"MainFrame-SplitType", //0=自动分割 1=数据的最大最小值分割 2=堆积图(0-100)
3086
+ HRESERVED:"MainFrame-HorizontalReserved", //上下预留空间 { Top:, Bottom: }
3087
+ TITLEHEIGHT:"MainFrame-TitleHeight", //标题栏高度
3086
3088
  }
3087
3089
  }
3088
3090
 
@@ -10542,7 +10544,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10542
10544
  if (IFrameSplitOperator.IsBool(windowItem.IsShowOverlayIndexName)) frame.IsShowOverlayIndexName=windowItem.IsShowOverlayIndexName;
10543
10545
  if (IFrameSplitOperator.IsNumber(windowItem.IndexParamSpace)) frame.IndexParamSpace=windowItem.IndexParamSpace;
10544
10546
  if (IFrameSplitOperator.IsNumber(windowItem.IndexTitleSpace)) frame.IndexTitleSpace=windowItem.IndexTitleSpace;
10545
- if (!IFrameSplitOperator.IsUndefined(windowItem.HorizontalReserved)) frame.HorizontalReserved=windowItem.HorizontalReserved; //Y轴上下预留
10547
+
10546
10548
 
10547
10549
  if (windowItem.OverlayIndexType)
10548
10550
  {
@@ -10602,8 +10604,10 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10602
10604
  if (subItem && IFrameSplitOperator.IsNumber(subItem.Right)) frame.ToolbarConfig.Margin.Right=subItem.Right;
10603
10605
  }
10604
10606
 
10607
+ if (!IFrameSplitOperator.IsUndefined(frameItem.HorizontalReserved)) frame.HorizontalReserved=frameItem.HorizontalReserved; //Y轴上下预留
10608
+
10605
10609
  //分时图属性
10606
- if (IFrameSplitOperator.IsBool(frameItem.CloseBeforeButton)) frameItem.IsShowCloseButton=frameItem.CloseBeforeButton;
10610
+ if (IFrameSplitOperator.IsBool(frameItem.CloseBeforeButton)) frame.IsShowCloseButton=frameItem.CloseBeforeButton;
10607
10611
  if (frame.YSplitOperator.RightTextConfig) //主图右侧坐标设置
10608
10612
  {
10609
10613
  if (IFrameSplitOperator.IsNumber(frameItem.RightTextFormat)) //废弃(兼容版本)
@@ -12931,6 +12935,18 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
12931
12935
  mainFrame.YSplitOperator.SplitType=item.Value;
12932
12936
  aryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
12933
12937
  }
12938
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.HRESERVED)
12939
+ {
12940
+ var backup=mainFrame.HorizontalReserved;
12941
+ mainFrame.HorizontalReserved=item.Value;
12942
+ aryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
12943
+ }
12944
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TITLEHEIGHT)
12945
+ {
12946
+ var backup=mainFrame.ChartBorder.TitleHeight;
12947
+ mainFrame.ChartBorder.TitleHeight=item.Value;
12948
+ aryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
12949
+ }
12934
12950
 
12935
12951
  }
12936
12952
  }
@@ -12966,6 +12982,14 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
12966
12982
  {
12967
12983
  mainFrame.YSplitOperator.SplitType=item.BackupValue;
12968
12984
  }
12985
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.HRESERVED)
12986
+ {
12987
+ mainFrame.HorizontalReserved=item.BackupValue;
12988
+ }
12989
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TITLEHEIGHT)
12990
+ {
12991
+ mainFrame.ChartBorder.TitleHeight=item.BackupValue;
12992
+ }
12969
12993
  }
12970
12994
 
12971
12995
  }
@@ -21939,6 +21963,19 @@ function OverlayIndexItem()
21939
21963
  mainFrame.YSplitOperator.IsShowRightText=item.Value;
21940
21964
  this.AryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
21941
21965
  }
21966
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.HRESERVED)
21967
+ {
21968
+ var backup=mainFrame.HorizontalReserved;
21969
+ mainFrame.HorizontalReserved=item.Value;
21970
+ this.AryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
21971
+ }
21972
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TITLEHEIGHT)
21973
+ {
21974
+ var backup=mainFrame.ChartBorder.TitleHeight;
21975
+ mainFrame.ChartBorder.TitleHeight=item.Value;
21976
+ this.AryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
21977
+ }
21978
+
21942
21979
  }
21943
21980
  }
21944
21981
 
@@ -21965,6 +22002,15 @@ function OverlayIndexItem()
21965
22002
  {
21966
22003
  mainFrame.YSplitOperator.IsShowRightText=item.BackupValue;
21967
22004
  }
22005
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.HRESERVED)
22006
+ {
22007
+ mainFrame.HorizontalReserved=item.BackupValue;
22008
+ }
22009
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TITLEHEIGHT)
22010
+ {
22011
+ mainFrame.ChartBorder.TitleHeight=item.BackupValue;
22012
+ this.AryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
22013
+ }
21968
22014
  }
21969
22015
 
21970
22016
  this.AryTemporaryAttribute=[];
@@ -88885,6 +88931,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
88885
88931
  }
88886
88932
  }
88887
88933
 
88934
+ //TODO:准备废弃
88888
88935
  this.SetFrameAttribute=function(windowIndex, attr)
88889
88936
  {
88890
88937
  if (!this.Frame.SubFrame[windowIndex] || !this.Frame.SubFrame[windowIndex].Frame) return;
@@ -88896,6 +88943,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
88896
88943
  if (IFrameSplitOperator.IsNumber(attr.TitleHeight)) frame.ChartBorder.TitleHeight=attr.TitleHeight; //指标标题高度
88897
88944
  }
88898
88945
 
88946
+ //TODO:准备废弃
88899
88947
  this.ResetFrameAttribute=function(windowIndex)
88900
88948
  {
88901
88949
  if (!this.Frame.SubFrame[windowIndex] || !this.Frame.SubFrame[windowIndex].Frame) return;
@@ -7181,6 +7181,8 @@ var JSCHART_TEMPORARY_ATTRIBUTE=
7181
7181
  SHOWLEFTTEXT:"MainFrame-ShowLeftText",
7182
7182
  SHOWRIGHTTEXT:"MainFrame-ShowRightText",
7183
7183
  SPLITTYPE:"MainFrame-SplitType", //0=自动分割 1=数据的最大最小值分割 2=堆积图(0-100)
7184
+ HRESERVED:"MainFrame-HorizontalReserved", //上下预留空间 { Top:, Bottom: }
7185
+ TITLEHEIGHT:"MainFrame-TitleHeight", //标题栏高度
7184
7186
  }
7185
7187
  }
7186
7188
 
@@ -14640,7 +14642,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14640
14642
  if (IFrameSplitOperator.IsBool(windowItem.IsShowOverlayIndexName)) frame.IsShowOverlayIndexName=windowItem.IsShowOverlayIndexName;
14641
14643
  if (IFrameSplitOperator.IsNumber(windowItem.IndexParamSpace)) frame.IndexParamSpace=windowItem.IndexParamSpace;
14642
14644
  if (IFrameSplitOperator.IsNumber(windowItem.IndexTitleSpace)) frame.IndexTitleSpace=windowItem.IndexTitleSpace;
14643
- if (!IFrameSplitOperator.IsUndefined(windowItem.HorizontalReserved)) frame.HorizontalReserved=windowItem.HorizontalReserved; //Y轴上下预留
14645
+
14644
14646
 
14645
14647
  if (windowItem.OverlayIndexType)
14646
14648
  {
@@ -14700,8 +14702,10 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14700
14702
  if (subItem && IFrameSplitOperator.IsNumber(subItem.Right)) frame.ToolbarConfig.Margin.Right=subItem.Right;
14701
14703
  }
14702
14704
 
14705
+ if (!IFrameSplitOperator.IsUndefined(frameItem.HorizontalReserved)) frame.HorizontalReserved=frameItem.HorizontalReserved; //Y轴上下预留
14706
+
14703
14707
  //分时图属性
14704
- if (IFrameSplitOperator.IsBool(frameItem.CloseBeforeButton)) frameItem.IsShowCloseButton=frameItem.CloseBeforeButton;
14708
+ if (IFrameSplitOperator.IsBool(frameItem.CloseBeforeButton)) frame.IsShowCloseButton=frameItem.CloseBeforeButton;
14705
14709
  if (frame.YSplitOperator.RightTextConfig) //主图右侧坐标设置
14706
14710
  {
14707
14711
  if (IFrameSplitOperator.IsNumber(frameItem.RightTextFormat)) //废弃(兼容版本)
@@ -17029,6 +17033,18 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
17029
17033
  mainFrame.YSplitOperator.SplitType=item.Value;
17030
17034
  aryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
17031
17035
  }
17036
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.HRESERVED)
17037
+ {
17038
+ var backup=mainFrame.HorizontalReserved;
17039
+ mainFrame.HorizontalReserved=item.Value;
17040
+ aryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
17041
+ }
17042
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TITLEHEIGHT)
17043
+ {
17044
+ var backup=mainFrame.ChartBorder.TitleHeight;
17045
+ mainFrame.ChartBorder.TitleHeight=item.Value;
17046
+ aryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
17047
+ }
17032
17048
 
17033
17049
  }
17034
17050
  }
@@ -17064,6 +17080,14 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
17064
17080
  {
17065
17081
  mainFrame.YSplitOperator.SplitType=item.BackupValue;
17066
17082
  }
17083
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.HRESERVED)
17084
+ {
17085
+ mainFrame.HorizontalReserved=item.BackupValue;
17086
+ }
17087
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TITLEHEIGHT)
17088
+ {
17089
+ mainFrame.ChartBorder.TitleHeight=item.BackupValue;
17090
+ }
17067
17091
  }
17068
17092
 
17069
17093
  }
@@ -26037,6 +26061,19 @@ function OverlayIndexItem()
26037
26061
  mainFrame.YSplitOperator.IsShowRightText=item.Value;
26038
26062
  this.AryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
26039
26063
  }
26064
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.HRESERVED)
26065
+ {
26066
+ var backup=mainFrame.HorizontalReserved;
26067
+ mainFrame.HorizontalReserved=item.Value;
26068
+ this.AryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
26069
+ }
26070
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TITLEHEIGHT)
26071
+ {
26072
+ var backup=mainFrame.ChartBorder.TitleHeight;
26073
+ mainFrame.ChartBorder.TitleHeight=item.Value;
26074
+ this.AryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
26075
+ }
26076
+
26040
26077
  }
26041
26078
  }
26042
26079
 
@@ -26063,6 +26100,15 @@ function OverlayIndexItem()
26063
26100
  {
26064
26101
  mainFrame.YSplitOperator.IsShowRightText=item.BackupValue;
26065
26102
  }
26103
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.HRESERVED)
26104
+ {
26105
+ mainFrame.HorizontalReserved=item.BackupValue;
26106
+ }
26107
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TITLEHEIGHT)
26108
+ {
26109
+ mainFrame.ChartBorder.TitleHeight=item.BackupValue;
26110
+ this.AryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
26111
+ }
26066
26112
  }
26067
26113
 
26068
26114
  this.AryTemporaryAttribute=[];
@@ -92983,6 +93029,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
92983
93029
  }
92984
93030
  }
92985
93031
 
93032
+ //TODO:准备废弃
92986
93033
  this.SetFrameAttribute=function(windowIndex, attr)
92987
93034
  {
92988
93035
  if (!this.Frame.SubFrame[windowIndex] || !this.Frame.SubFrame[windowIndex].Frame) return;
@@ -92994,6 +93041,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
92994
93041
  if (IFrameSplitOperator.IsNumber(attr.TitleHeight)) frame.ChartBorder.TitleHeight=attr.TitleHeight; //指标标题高度
92995
93042
  }
92996
93043
 
93044
+ //TODO:准备废弃
92997
93045
  this.ResetFrameAttribute=function(windowIndex)
92998
93046
  {
92999
93047
  if (!this.Frame.SubFrame[windowIndex] || !this.Frame.SubFrame[windowIndex].Frame) return;
@@ -123267,7 +123315,8 @@ function JSAlgorithm(errorHandler,symbolData)
123267
123315
  this.CallCustomFunction=function(name, args, symbolData, node)
123268
123316
  {
123269
123317
  var functionInfo=g_JSComplierResource.CustomFunction.Data.get(name);
123270
- var dwonloadData=symbolData.GetStockCacheData({ CustomName:name, Node:node });
123318
+ var dwonloadData=null;
123319
+ if (functionInfo.IsDownload) dwonloadData=symbolData.GetStockCacheData({ CustomName:name, Node:node });
123271
123320
  if (!functionInfo.Invoke)
123272
123321
  return { Out: dwonloadData }
123273
123322
 
@@ -125435,7 +125484,7 @@ function JSDraw(errorHandler,symbolData)
125435
125484
  for(var i=0;i<this.SymbolData.Data.Data.length;++i)
125436
125485
  {
125437
125486
  var item=this.SymbolData.Data.Data[i];
125438
- drawData.Data[i]={ High:item.High, Low:item.Low };
125487
+ drawData.Data[i]={ High:item.High, Low:item.Low, Close:item.Close };
125439
125488
  }
125440
125489
 
125441
125490
  return drawData;
@@ -159164,7 +159213,7 @@ function ScrollBarBGChart()
159164
159213
 
159165
159214
 
159166
159215
 
159167
- var HQCHART_VERSION="1.1.15718";
159216
+ var HQCHART_VERSION="1.1.15729";
159168
159217
 
159169
159218
  function PrintHQChartVersion()
159170
159219
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.15718";
8
+ var HQCHART_VERSION="1.1.15729";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -7225,6 +7225,8 @@ var JSCHART_TEMPORARY_ATTRIBUTE=
7225
7225
  SHOWLEFTTEXT:"MainFrame-ShowLeftText",
7226
7226
  SHOWRIGHTTEXT:"MainFrame-ShowRightText",
7227
7227
  SPLITTYPE:"MainFrame-SplitType", //0=自动分割 1=数据的最大最小值分割 2=堆积图(0-100)
7228
+ HRESERVED:"MainFrame-HorizontalReserved", //上下预留空间 { Top:, Bottom: }
7229
+ TITLEHEIGHT:"MainFrame-TitleHeight", //标题栏高度
7228
7230
  }
7229
7231
  }
7230
7232
 
@@ -14684,7 +14686,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14684
14686
  if (IFrameSplitOperator.IsBool(windowItem.IsShowOverlayIndexName)) frame.IsShowOverlayIndexName=windowItem.IsShowOverlayIndexName;
14685
14687
  if (IFrameSplitOperator.IsNumber(windowItem.IndexParamSpace)) frame.IndexParamSpace=windowItem.IndexParamSpace;
14686
14688
  if (IFrameSplitOperator.IsNumber(windowItem.IndexTitleSpace)) frame.IndexTitleSpace=windowItem.IndexTitleSpace;
14687
- if (!IFrameSplitOperator.IsUndefined(windowItem.HorizontalReserved)) frame.HorizontalReserved=windowItem.HorizontalReserved; //Y轴上下预留
14689
+
14688
14690
 
14689
14691
  if (windowItem.OverlayIndexType)
14690
14692
  {
@@ -14744,8 +14746,10 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14744
14746
  if (subItem && IFrameSplitOperator.IsNumber(subItem.Right)) frame.ToolbarConfig.Margin.Right=subItem.Right;
14745
14747
  }
14746
14748
 
14749
+ if (!IFrameSplitOperator.IsUndefined(frameItem.HorizontalReserved)) frame.HorizontalReserved=frameItem.HorizontalReserved; //Y轴上下预留
14750
+
14747
14751
  //分时图属性
14748
- if (IFrameSplitOperator.IsBool(frameItem.CloseBeforeButton)) frameItem.IsShowCloseButton=frameItem.CloseBeforeButton;
14752
+ if (IFrameSplitOperator.IsBool(frameItem.CloseBeforeButton)) frame.IsShowCloseButton=frameItem.CloseBeforeButton;
14749
14753
  if (frame.YSplitOperator.RightTextConfig) //主图右侧坐标设置
14750
14754
  {
14751
14755
  if (IFrameSplitOperator.IsNumber(frameItem.RightTextFormat)) //废弃(兼容版本)
@@ -17073,6 +17077,18 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
17073
17077
  mainFrame.YSplitOperator.SplitType=item.Value;
17074
17078
  aryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
17075
17079
  }
17080
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.HRESERVED)
17081
+ {
17082
+ var backup=mainFrame.HorizontalReserved;
17083
+ mainFrame.HorizontalReserved=item.Value;
17084
+ aryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
17085
+ }
17086
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TITLEHEIGHT)
17087
+ {
17088
+ var backup=mainFrame.ChartBorder.TitleHeight;
17089
+ mainFrame.ChartBorder.TitleHeight=item.Value;
17090
+ aryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
17091
+ }
17076
17092
 
17077
17093
  }
17078
17094
  }
@@ -17108,6 +17124,14 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
17108
17124
  {
17109
17125
  mainFrame.YSplitOperator.SplitType=item.BackupValue;
17110
17126
  }
17127
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.HRESERVED)
17128
+ {
17129
+ mainFrame.HorizontalReserved=item.BackupValue;
17130
+ }
17131
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TITLEHEIGHT)
17132
+ {
17133
+ mainFrame.ChartBorder.TitleHeight=item.BackupValue;
17134
+ }
17111
17135
  }
17112
17136
 
17113
17137
  }
@@ -26081,6 +26105,19 @@ function OverlayIndexItem()
26081
26105
  mainFrame.YSplitOperator.IsShowRightText=item.Value;
26082
26106
  this.AryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
26083
26107
  }
26108
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.HRESERVED)
26109
+ {
26110
+ var backup=mainFrame.HorizontalReserved;
26111
+ mainFrame.HorizontalReserved=item.Value;
26112
+ this.AryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
26113
+ }
26114
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TITLEHEIGHT)
26115
+ {
26116
+ var backup=mainFrame.ChartBorder.TitleHeight;
26117
+ mainFrame.ChartBorder.TitleHeight=item.Value;
26118
+ this.AryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
26119
+ }
26120
+
26084
26121
  }
26085
26122
  }
26086
26123
 
@@ -26107,6 +26144,15 @@ function OverlayIndexItem()
26107
26144
  {
26108
26145
  mainFrame.YSplitOperator.IsShowRightText=item.BackupValue;
26109
26146
  }
26147
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.HRESERVED)
26148
+ {
26149
+ mainFrame.HorizontalReserved=item.BackupValue;
26150
+ }
26151
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TITLEHEIGHT)
26152
+ {
26153
+ mainFrame.ChartBorder.TitleHeight=item.BackupValue;
26154
+ this.AryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
26155
+ }
26110
26156
  }
26111
26157
 
26112
26158
  this.AryTemporaryAttribute=[];
@@ -93027,6 +93073,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
93027
93073
  }
93028
93074
  }
93029
93075
 
93076
+ //TODO:准备废弃
93030
93077
  this.SetFrameAttribute=function(windowIndex, attr)
93031
93078
  {
93032
93079
  if (!this.Frame.SubFrame[windowIndex] || !this.Frame.SubFrame[windowIndex].Frame) return;
@@ -93038,6 +93085,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
93038
93085
  if (IFrameSplitOperator.IsNumber(attr.TitleHeight)) frame.ChartBorder.TitleHeight=attr.TitleHeight; //指标标题高度
93039
93086
  }
93040
93087
 
93088
+ //TODO:准备废弃
93041
93089
  this.ResetFrameAttribute=function(windowIndex)
93042
93090
  {
93043
93091
  if (!this.Frame.SubFrame[windowIndex] || !this.Frame.SubFrame[windowIndex].Frame) return;
@@ -123311,7 +123359,8 @@ function JSAlgorithm(errorHandler,symbolData)
123311
123359
  this.CallCustomFunction=function(name, args, symbolData, node)
123312
123360
  {
123313
123361
  var functionInfo=g_JSComplierResource.CustomFunction.Data.get(name);
123314
- var dwonloadData=symbolData.GetStockCacheData({ CustomName:name, Node:node });
123362
+ var dwonloadData=null;
123363
+ if (functionInfo.IsDownload) dwonloadData=symbolData.GetStockCacheData({ CustomName:name, Node:node });
123315
123364
  if (!functionInfo.Invoke)
123316
123365
  return { Out: dwonloadData }
123317
123366
 
@@ -125479,7 +125528,7 @@ function JSDraw(errorHandler,symbolData)
125479
125528
  for(var i=0;i<this.SymbolData.Data.Data.length;++i)
125480
125529
  {
125481
125530
  var item=this.SymbolData.Data.Data[i];
125482
- drawData.Data[i]={ High:item.High, Low:item.Low };
125531
+ drawData.Data[i]={ High:item.High, Low:item.Low, Close:item.Close };
125483
125532
  }
125484
125533
 
125485
125534
  return drawData;
@@ -175526,7 +175575,7 @@ function ChartScrollText()
175526
175575
 
175527
175576
 
175528
175577
 
175529
- var HQCHART_VERSION="1.1.15718";
175578
+ var HQCHART_VERSION="1.1.15729";
175530
175579
 
175531
175580
  function PrintHQChartVersion()
175532
175581
  {