hqchart 1.1.15029 → 1.1.15037

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.
@@ -7771,7 +7771,7 @@ this.ChartSplashPaint.Frame=this.Frame;this.CreateChildWindow(windowCount);this.
7771
7771
  if(this.EnableIndexChartDrag)this.CreateExtendChart("DragMovePaint");this.CreateDragSelectRect(option?option.DragSelectRect:null);//子窗口动态标题
7772
7772
  for(var i in this.Frame.SubFrame){var titlePaint=new DynamicChartTitlePainting();titlePaint.Frame=this.Frame.SubFrame[i].Frame;titlePaint.Canvas=this.Canvas;titlePaint.LanguageID=this.LanguageID;titlePaint.GetEventCallback=function(id){return _this24.GetEventCallback(id);};titlePaint.SelectedChart=this.SelectedChart;titlePaint.HQChart=this;this.TitlePaint.push(titlePaint);}this.ChartCorssCursor.StringFormatX.Frame=this.Frame.SubFrame[0].Frame;this.ChartCorssCursor.StringFormatY.Frame=this.Frame;if(option)this.AddDefaultEventListener(option.Listener);this.InitalPopMinuteChart(option);};this.InitalPopMinuteChart=function(option){if(!option)return false;if(option.PopMinuteChart&&option.PopMinuteChart.Enable)//新的配置格式
7773
7773
  {var item=option.PopMinuteChart;this.PopMinuteChart=new JSPopMinuteChart();this.PopMinuteChart.Inital(this,item);this.PopMinuteChart.Create();return true;}else if(option.KLine&&option.KLine.KLineDoubleClick===true)//旧的格式 不要使用了
7774
- {this.PopMinuteChart=new JSPopMinuteChart();this.PopMinuteChart.Inital(this);this.PopMinuteChart.Create();return true;}return false;};this.DestroyPopMinuteChart=function(){if(!this.PopMinuteChart)return;this.PopMinuteChart.Destroy();this.PopMinuteChart=null;};this.ClosePopMinuteChart=function(){if(!this.PopMinuteChart)return;this.PopMinuteChart.Close();};this.ShowMinuteChartDialog=function(data,x,y){if(!this.PopMinuteChart)return;if(!ChartData.IsDayPeriod(this.Period,true))return;//只支持日K
7774
+ {this.PopMinuteChart=new JSPopMinuteChart();this.PopMinuteChart.Inital(this);this.PopMinuteChart.Create();return true;}return false;};this.DestroyPopMinuteChart=function(){if(!this.PopMinuteChart)return;this.PopMinuteChart.Destroy();this.PopMinuteChart=null;};this.ClosePopMinuteChart=function(){if(!this.PopMinuteChart)return;this.PopMinuteChart.Close();};this.ShowMinuteChartDialog=function(data,x,y){if(!this.PopMinuteChart)return;if(this.Period!==0)return;//只支持日K
7775
7775
  if(!data.Tooltip||!data.Chart)return;var pixelRatio=GetDevicePixelRatio();var rtClient=this.UIElement.getBoundingClientRect();var rtScroll=GetScrollPosition();x+=rtClient.left+rtScroll.Left;y+=rtClient.top+rtScroll.Top;var item=data.Tooltip.Data;var date=item.Date;var symbol=null;if(data.Tooltip.ChartPaint&&data.Tooltip.ChartPaint.Name=="DRAWKLINE"){if(item.Symbol)symbol=item.Symbol;else if(data.Tooltip.Symbol)symbol=data.Tooltip.Symbol;}else{symbol=data.Chart.Symbol;}if(!symbol)return;this.PopMinuteChart.Show({Date:date,Symbol:symbol,Data:data.Tooltip.Data,Chart:data.Tooltip.ChartPaint},x/pixelRatio,y/pixelRatio);};//Alt+W 区间统计
7776
7776
  //Alt+数字 切换多个窗口
7777
7777
  //Ctrl+I
@@ -8319,15 +8319,12 @@ this.ChangeIndexWindowCount=function(count,option){var _this29=this;if(count<=0)
8319
8319
  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;}this.Frame.SetSizeChage(true);this.ResetFrameXYSplit();this.UpdateFrameMaxMin();//调整坐标最大 最小值
8320
8320
  this.Draw();}else{//创建新的指标窗口
8321
8321
  var pixelRatio=GetDevicePixelRatio();for(var i=currentLength;i<count;++i){var subFrame=this.CreateSubFrameItem(i);subFrame.Frame.ChartBorder.TitleHeight*=pixelRatio;this.Frame.SubFrame[i]=subFrame;var titlePaint=new DynamicChartTitlePainting();titlePaint.Frame=this.Frame.SubFrame[i].Frame;titlePaint.Canvas=this.Canvas;titlePaint.LanguageID=this.LanguageID;titlePaint.GetEventCallback=function(id){return _this29.GetEventCallback(id);};titlePaint.SelectedChart=this.SelectedChart;titlePaint.HQChart=this;this.TitlePaint[i+1]=titlePaint;}//最后一个显示X轴坐标
8322
- 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;}this.Frame.SetSizeChage(true);this.ResetFrameXYSplit();this.UpdateFrameMaxMin();//调整坐标最大 最小值
8322
+ 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;}this.SetSizeChange(true);this.ResetFrameXYSplit();this.UpdateFrameMaxMin();//调整坐标最大 最小值
8323
8323
  this.Draw();//创建指标
8324
8324
  var indexName=[{Index:"RSI"},{Index:"MACD"},{Index:"VOL"},{Index:"UOS"},{Index:"CHO"},{Index:"BRAR"}];//增加的指标名字
8325
8325
  if(option&&option.Windows.length>0)indexName=option.Windows;//外部设置增加窗口的默认指标
8326
- var scriptData=new JSIndexScript();for(var i=currentLength;i<count;++i){var item=indexName[i%indexName.length];var name=item.Index;var indexInfo=scriptData.Get(name);var args=indexInfo.Args;if(item.Args)args=item.Args;var indexData={Name:indexInfo.Name,Script:indexInfo.Script,Args:args,ID:item.Index,//扩展属性 可以是空
8327
- KLineType:indexInfo.KLineType,YSpecificMaxMin:indexInfo.YSpecificMaxMin,YSplitScale:indexInfo.YSplitScale,FloatPrecision:indexInfo.FloatPrecision,Condition:indexInfo.Condition,OutName:indexInfo.OutName};this.WindowIndex[i]=new ScriptIndex(indexData.Name,indexData.Script,indexData.Args,indexData);//脚本执行
8328
- var subFrame=this.Frame.SubFrame[i];if(item.Modify!=null)this.Frame.SubFrame[i].Frame.ModifyIndex=item.Modify;if(item.Change!=null)this.Frame.SubFrame[i].Frame.ChangeIndex=item.Change;if(item.Close!=null)this.Frame.SubFrame[i].Frame.CloseIndex=item.Close;if(item.Overlay!=null)chart.Frame.SubFrame[i].Frame.OverlayIndex=item.Overlay;if(item.IsDrawTitleBG==true)this.Frame.SubFrame[i].Frame.IsDrawTitleBG=item.IsDrawTitleBG;if(IFrameSplitOperator.IsBool(item.IsShowNameArrow))this.Frame.SubFrame[i].Frame.IsShowNameArrow=item.IsShowNameArrow;if(IFrameSplitOperator.IsNumber(item.TitleHeight))this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;else item.TitleHeight=this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;if(IFrameSplitOperator.IsBool(item.IsShowTitleArrow))subFrame.Frame.IsShowTitleArrow=item.IsShowTitleArrow;if(IFrameSplitOperator.IsNumber(item.TitleArrowType))subFrame.Frame.TitleArrowType=item.TitleArrowType;if(item.IsShowIndexName==false)this.Frame.SubFrame[i].Frame.IsShowIndexName=false;if(item.IsShowOverlayIndexName==false)this.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;if(IFrameSplitOperator.IsNumber(item.IndexParamSpace))this.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;if(IFrameSplitOperator.IsNumber(item.IndexTitleSpace))this.Frame.SubFrame[i].Frame.IndexTitleSpace=item.IndexTitleSpace;if(item.IsShowXLine==false)this.Frame.SubFrame[i].Frame.IsShowXLine=false;if(item.IsShowYLine==false)this.Frame.SubFrame[i].Frame.IsShowYLine=false;if(IFrameSplitOperator.IsBool(item.IsShowIndexTitle))this.Frame.SubFrame[i].Frame.IsShowIndexTitle=item.IsShowIndexTitle;if(IFrameSplitOperator.IsBool(item.IsShowLeftText)){subFrame.Frame.IsShowYText[0]=item.IsShowLeftText;subFrame.Frame.YSplitOperator.IsShowLeftText=item.IsShowLeftText;//显示左边刻度
8329
- }if(IFrameSplitOperator.IsBool(item.IsShowRightText)){subFrame.Frame.IsShowYText[1]=item.IsShowRightText;subFrame.Frame.YSplitOperator.IsShowRightText=item.IsShowRightText;//显示右边刻度
8330
- }if(item.OverlayIndexType){if(IFrameSplitOperator.IsNumber(item.OverlayIndexType.Position))subFrame.Frame.OverlayIndexType.Position=item.OverlayIndexType.Position;if(IFrameSplitOperator.IsNumber(item.OverlayIndexType.LineSpace))subFrame.Frame.OverlayIndexType.LineSpace=item.OverlayIndexType.LineSpace;}var bindData=this.ChartPaint[0].Data;this.BindIndexData(i,bindData);//执行脚本
8326
+ var scriptData=new JSIndexScript();for(var i=currentLength;i<count;++i){var item=indexName[i%indexName.length];var name=item.Index;var indexInfo=scriptData.Get(name);if(indexInfo){JSIndexScript.ModifyAttribute(indexInfo,item);this.WindowIndex[i]=new ScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo);//脚本执行
8327
+ }var subFrame=this.Frame.SubFrame[i];var frameItem=null;if(option&&option.Frame&&option.Frame.length>i)frameItem=option.Frame[i];this.SetSubFrameAttribute(subFrame,item,frameItem);var bindData=this.ChartPaint[0].Data;this.BindIndexData(i,bindData);//执行脚本
8331
8328
  }//this.UpdataDataoffset(); //更新数据偏移
8332
8329
  }};this.ChangeIndexTemplate=function(option)//切换指标模板 可以设置指标窗口个数 每个窗口的指标
8333
8330
  {var _this30=this;if(!option.Windows)return;var count=option.Windows.length;if(count<=0)return;var currentLength=this.Frame.SubFrame.length;var period=null,right=null,symbol=null;if(option.Symbol)symbol=option.Symbol;if(option.KLine){if(IFrameSplitOperator.IsNumber(option.KLine.Period)&&option.KLine.Period!=this.Period)period=option.KLine.Period;//周期
@@ -9027,14 +9024,14 @@ this.UpdataDataoffset();//更新数据偏移
9027
9024
  this.UpdateFrameMaxMin();//调整坐标最大 最小值
9028
9025
  this.Draw();};this.ChangeIndex=function(windowIndex,indexName,option){if(this.Frame.SubFrame.length<3)return;if(option&&option.API)return this.ChangeAPIIndex(windowIndex,option);//查找系统指标
9029
9026
  var scriptData=new JSIndexScript();var indexInfo=scriptData.Get(indexName);if(!indexInfo)return;if(windowIndex<2)windowIndex=2;if(windowIndex>=this.Frame.SubFrame.length)windowIndex=2;JSIndexScript.ModifyAttribute(indexInfo,option);return this.ChangeScriptIndex(windowIndex,indexInfo,option);};//设置指标窗口个数
9030
- this.ChangeIndexWindowCount=function(count){var _this38=this;if(count<2)return;//1,2个窗口固定的不能动
9027
+ this.ChangeIndexWindowCount=function(count,option){var _this38=this;if(count<2)return;//1,2个窗口固定的不能动
9031
9028
  if(this.Frame.SubFrame.length==count)return;var currentLength=this.Frame.SubFrame.length;if(currentLength>count){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);for(var i=currentLength-1;i>=count;--i){this.DeleteIndexPaint(i);this.DeleteChartPaintExtend({WindowIndex:i});var item=this.Frame.SubFrame[i].Frame;if(item.ClearToolbar)item.ClearToolbar();if(event&&event.Callback){var sendData={SubFrame:this.Frame.SubFrame[i],WindowIndex:i};event.Callback(event,sendData,this);}}this.Frame.SubFrame.splice(count,currentLength-count);this.WindowIndex.splice(count,currentLength-count);this.TitlePaint.splice(count+1,currentLength-count);}else{//创建新的指标窗口
9032
9029
  var mainFrame=this.Frame.SubFrame[0].Frame;for(var i=currentLength;i<count;++i){var subFrame=this.CreateSubFrameItem(i,mainFrame);this.Frame.SubFrame[i]=subFrame;var titlePaint=new DynamicChartTitlePainting();titlePaint.Frame=this.Frame.SubFrame[i].Frame;titlePaint.Canvas=this.Canvas;titlePaint.LanguageID=this.LanguageID;titlePaint.GetEventCallback=function(id){return _this38.GetEventCallback(id);};titlePaint.SelectedChart=this.SelectedChart;titlePaint.MainTitlePaint=this.TitlePaint[0];titlePaint.HQChart=this;this.TitlePaint[i+1]=titlePaint;}//创建指标
9033
- var indexName=["RSI","MACD","DMA","DMI","KDJ","WR"];var scriptData=new JSIndexScript();for(var i=currentLength;i<count;++i){var name=indexName[i%indexName.length];var indexInfo=scriptData.Get(name);this.WindowIndex[i]=new ScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo);//脚本执行
9030
+ var indexName=[{Index:"RSI"},{Index:"MACD"},{Index:"DMA"},{Index:"DMI"},{Index:"KDJ"},{Index:"WR"}];var scriptData=new JSIndexScript();for(var i=currentLength;i<count;++i){var item=indexName[i%indexName.length];var indexInfo=scriptData.Get(item.Index);JSIndexScript.ModifyAttribute(indexInfo,item);this.WindowIndex[i]=new ScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo);//脚本执行
9034
9031
  var bindData=this.SourceData;this.BindIndexData(i,bindData);//执行脚本
9035
9032
  }//最后一个显示X轴坐标
9036
9033
  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;}this.UpdataDataoffset();//更新数据偏移
9037
- }this.UpdateXShowText();this.Frame.SetSizeChage(true);this.ResetFrameXYSplit();this.UpdateFrameMaxMin();//调整坐标最大 最小值
9034
+ }this.UpdateXShowText();this.SetSizeChange(true);this.ResetFrameXYSplit();this.UpdateFrameMaxMin();//调整坐标最大 最小值
9038
9035
  this.Draw();};this.ChangeIndexTemplate=function(option)//切换指标模板 可以设置指标窗口个数 每个窗口的指标, 只能从第3个指标窗口开始设置,前面2个指标窗口固定无法设置
9039
9036
  {var _this39=this;if(!Array.isArray(option.Windows))return;var count=option.Windows.length;var currentLength=this.Frame.SubFrame.length;var startWindowIndex=2;count+=startWindowIndex;var dayCount=null,symbol=null;if(IFrameSplitOperator.IsNumber(option.DayCount)&&option.DayCount!=this.DayCount)dayCount=option.DayCount;//天数
9040
9037
  if(option.Symbol)symbol=option.Symbol;var bRefreshData=dayCount!=null||symbol!=null;//清空所有的指标图型
@@ -15329,7 +15326,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
15329
15326
  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);};}/********************************************************************************
15330
15327
  * 版本信息输出
15331
15328
  *
15332
- */var HQCHART_VERSION="1.1.15028";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();//把给外界调用的方法暴露出来
15329
+ */var HQCHART_VERSION="1.1.15036";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();//把给外界调用的方法暴露出来
15333
15330
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
15334
15331
  // BaseIndex:BaseIndex,
15335
15332
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.15029",
3
+ "version": "1.1.15037",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -82317,7 +82317,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
82317
82317
  this.ShowMinuteChartDialog=function(data, x,y)
82318
82318
  {
82319
82319
  if (!this.PopMinuteChart) return;
82320
- if (!ChartData.IsDayPeriod(this.Period,true)) return; //只支持日K
82320
+ if (this.Period!==0) return; //只支持日K
82321
82321
  if (!data.Tooltip || !data.Chart) return;
82322
82322
 
82323
82323
  var pixelRatio=GetDevicePixelRatio();
@@ -85789,7 +85789,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
85789
85789
  else item.XSplitOperator.ShowText=false;
85790
85790
  }
85791
85791
 
85792
- this.Frame.SetSizeChage(true);
85792
+ this.SetSizeChange(true);
85793
85793
  this.ResetFrameXYSplit();
85794
85794
  this.UpdateFrameMaxMin(); //调整坐标最大 最小值
85795
85795
  this.Draw();
@@ -85805,57 +85805,16 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
85805
85805
  var item=indexName[i%indexName.length];
85806
85806
  var name=item.Index;
85807
85807
  let indexInfo = scriptData.Get(name);
85808
- var args=indexInfo.Args;
85809
- if (item.Args) args=item.Args;
85810
- let indexData =
85811
- {
85812
- Name:indexInfo.Name, Script:indexInfo.Script, Args: args, ID:item.Index,
85813
- //扩展属性 可以是空
85814
- KLineType:indexInfo.KLineType, YSpecificMaxMin:indexInfo.YSpecificMaxMin, YSplitScale:indexInfo.YSplitScale,
85815
- FloatPrecision:indexInfo.FloatPrecision, Condition:indexInfo.Condition,
85816
- OutName:indexInfo.OutName
85817
- };
85818
-
85819
- this.WindowIndex[i]=new ScriptIndex(indexData.Name,indexData.Script,indexData.Args,indexData); //脚本执行
85820
-
85821
- var subFrame=this.Frame.SubFrame[i];
85822
- if (item.Modify!=null) this.Frame.SubFrame[i].Frame.ModifyIndex=item.Modify;
85823
- if (item.Change!=null) this.Frame.SubFrame[i].Frame.ChangeIndex=item.Change;
85824
- if (item.Close!=null) this.Frame.SubFrame[i].Frame.CloseIndex=item.Close;
85825
- if (item.Overlay!=null) chart.Frame.SubFrame[i].Frame.OverlayIndex=item.Overlay;
85826
- if (item.IsDrawTitleBG==true) this.Frame.SubFrame[i].Frame.IsDrawTitleBG=item.IsDrawTitleBG;
85827
- if (IFrameSplitOperator.IsBool(item.IsShowNameArrow)) this.Frame.SubFrame[i].Frame.IsShowNameArrow=item.IsShowNameArrow;
85828
-
85829
- if (IFrameSplitOperator.IsNumber(item.TitleHeight)) this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;
85830
- else item.TitleHeight=this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;
85831
- if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) subFrame.Frame.IsShowTitleArrow=item.IsShowTitleArrow;
85832
- if (IFrameSplitOperator.IsNumber(item.TitleArrowType)) subFrame.Frame.TitleArrowType=item.TitleArrowType;
85833
- if (item.IsShowIndexName==false) this.Frame.SubFrame[i].Frame.IsShowIndexName=false;
85834
- if (item.IsShowOverlayIndexName==false) this.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
85835
- if (IFrameSplitOperator.IsNumber(item.IndexParamSpace)) this.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;
85836
- if (IFrameSplitOperator.IsNumber(item.IndexTitleSpace)) this.Frame.SubFrame[i].Frame.IndexTitleSpace=item.IndexTitleSpace;
85837
-
85838
- if (item.IsShowXLine==false) this.Frame.SubFrame[i].Frame.IsShowXLine=false;
85839
- if (item.IsShowYLine==false) this.Frame.SubFrame[i].Frame.IsShowYLine=false;
85840
- if (IFrameSplitOperator.IsBool(item.IsShowIndexTitle)) this.Frame.SubFrame[i].Frame.IsShowIndexTitle=item.IsShowIndexTitle;
85841
-
85842
-
85843
- if (IFrameSplitOperator.IsBool(item.IsShowLeftText))
85808
+ if (indexInfo)
85844
85809
  {
85845
- subFrame.Frame.IsShowYText[0]=item.IsShowLeftText;
85846
- subFrame.Frame.YSplitOperator.IsShowLeftText=item.IsShowLeftText; //显示左边刻度
85847
- }
85848
- if (IFrameSplitOperator.IsBool(item.IsShowRightText))
85849
- {
85850
- subFrame.Frame.IsShowYText[1]=item.IsShowRightText;
85851
- subFrame.Frame.YSplitOperator.IsShowRightText=item.IsShowRightText; //显示右边刻度
85810
+ JSIndexScript.ModifyAttribute(indexInfo,item);
85811
+ this.WindowIndex[i]=new ScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo); //脚本执行
85852
85812
  }
85853
85813
 
85854
- if (item.OverlayIndexType)
85855
- {
85856
- if (IFrameSplitOperator.IsNumber(item.OverlayIndexType.Position)) subFrame.Frame.OverlayIndexType.Position=item.OverlayIndexType.Position;
85857
- if (IFrameSplitOperator.IsNumber(item.OverlayIndexType.LineSpace)) subFrame.Frame.OverlayIndexType.LineSpace=item.OverlayIndexType.LineSpace;
85858
- }
85814
+ var subFrame=this.Frame.SubFrame[i];
85815
+ var frameItem=null;
85816
+ if(option && option.Frame && option.Frame.length>i) frameItem=option.Frame[i];
85817
+ this.SetSubFrameAttribute(subFrame, item, frameItem);
85859
85818
 
85860
85819
  var bindData=this.ChartPaint[0].Data;
85861
85820
  this.BindIndexData(i,bindData); //执行脚本
@@ -92633,7 +92592,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
92633
92592
  }
92634
92593
 
92635
92594
  //设置指标窗口个数
92636
- this.ChangeIndexWindowCount=function(count)
92595
+ this.ChangeIndexWindowCount=function(count, option)
92637
92596
  {
92638
92597
  if (count<2) return; //1,2个窗口固定的不能动
92639
92598
  if (this.Frame.SubFrame.length==count) return;
@@ -92680,12 +92639,13 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
92680
92639
  }
92681
92640
 
92682
92641
  //创建指标
92683
- const indexName=["RSI","MACD","DMA","DMI","KDJ","WR"];
92642
+ const indexName=[{Index:"RSI"},{Index:"MACD"},{Index:"DMA"},{Index:"DMI"},{Index:"KDJ"},{Index:"WR"} ];
92684
92643
  let scriptData = new JSIndexScript();
92685
92644
  for(var i=currentLength;i<count;++i)
92686
92645
  {
92687
- var name=indexName[i%indexName.length];
92688
- let indexInfo = scriptData.Get(name);
92646
+ var item=indexName[i%indexName.length];
92647
+ var indexInfo = scriptData.Get(item.Index);
92648
+ JSIndexScript.ModifyAttribute(indexInfo,item);
92689
92649
  this.WindowIndex[i] = new ScriptIndex(indexInfo.Name, indexInfo.Script, indexInfo.Args,indexInfo); //脚本执行
92690
92650
  var bindData=this.SourceData;
92691
92651
  this.BindIndexData(i,bindData); //执行脚本
@@ -92703,7 +92663,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
92703
92663
  }
92704
92664
 
92705
92665
  this.UpdateXShowText();
92706
- this.Frame.SetSizeChage(true);
92666
+ this.SetSizeChange(true);
92707
92667
  this.ResetFrameXYSplit();
92708
92668
  this.UpdateFrameMaxMin(); //调整坐标最大 最小值
92709
92669
  this.Draw();
@@ -86413,7 +86413,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
86413
86413
  this.ShowMinuteChartDialog=function(data, x,y)
86414
86414
  {
86415
86415
  if (!this.PopMinuteChart) return;
86416
- if (!ChartData.IsDayPeriod(this.Period,true)) return; //只支持日K
86416
+ if (this.Period!==0) return; //只支持日K
86417
86417
  if (!data.Tooltip || !data.Chart) return;
86418
86418
 
86419
86419
  var pixelRatio=GetDevicePixelRatio();
@@ -89885,7 +89885,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
89885
89885
  else item.XSplitOperator.ShowText=false;
89886
89886
  }
89887
89887
 
89888
- this.Frame.SetSizeChage(true);
89888
+ this.SetSizeChange(true);
89889
89889
  this.ResetFrameXYSplit();
89890
89890
  this.UpdateFrameMaxMin(); //调整坐标最大 最小值
89891
89891
  this.Draw();
@@ -89901,57 +89901,16 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
89901
89901
  var item=indexName[i%indexName.length];
89902
89902
  var name=item.Index;
89903
89903
  let indexInfo = scriptData.Get(name);
89904
- var args=indexInfo.Args;
89905
- if (item.Args) args=item.Args;
89906
- let indexData =
89907
- {
89908
- Name:indexInfo.Name, Script:indexInfo.Script, Args: args, ID:item.Index,
89909
- //扩展属性 可以是空
89910
- KLineType:indexInfo.KLineType, YSpecificMaxMin:indexInfo.YSpecificMaxMin, YSplitScale:indexInfo.YSplitScale,
89911
- FloatPrecision:indexInfo.FloatPrecision, Condition:indexInfo.Condition,
89912
- OutName:indexInfo.OutName
89913
- };
89914
-
89915
- this.WindowIndex[i]=new ScriptIndex(indexData.Name,indexData.Script,indexData.Args,indexData); //脚本执行
89916
-
89917
- var subFrame=this.Frame.SubFrame[i];
89918
- if (item.Modify!=null) this.Frame.SubFrame[i].Frame.ModifyIndex=item.Modify;
89919
- if (item.Change!=null) this.Frame.SubFrame[i].Frame.ChangeIndex=item.Change;
89920
- if (item.Close!=null) this.Frame.SubFrame[i].Frame.CloseIndex=item.Close;
89921
- if (item.Overlay!=null) chart.Frame.SubFrame[i].Frame.OverlayIndex=item.Overlay;
89922
- if (item.IsDrawTitleBG==true) this.Frame.SubFrame[i].Frame.IsDrawTitleBG=item.IsDrawTitleBG;
89923
- if (IFrameSplitOperator.IsBool(item.IsShowNameArrow)) this.Frame.SubFrame[i].Frame.IsShowNameArrow=item.IsShowNameArrow;
89924
-
89925
- if (IFrameSplitOperator.IsNumber(item.TitleHeight)) this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;
89926
- else item.TitleHeight=this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;
89927
- if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) subFrame.Frame.IsShowTitleArrow=item.IsShowTitleArrow;
89928
- if (IFrameSplitOperator.IsNumber(item.TitleArrowType)) subFrame.Frame.TitleArrowType=item.TitleArrowType;
89929
- if (item.IsShowIndexName==false) this.Frame.SubFrame[i].Frame.IsShowIndexName=false;
89930
- if (item.IsShowOverlayIndexName==false) this.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
89931
- if (IFrameSplitOperator.IsNumber(item.IndexParamSpace)) this.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;
89932
- if (IFrameSplitOperator.IsNumber(item.IndexTitleSpace)) this.Frame.SubFrame[i].Frame.IndexTitleSpace=item.IndexTitleSpace;
89933
-
89934
- if (item.IsShowXLine==false) this.Frame.SubFrame[i].Frame.IsShowXLine=false;
89935
- if (item.IsShowYLine==false) this.Frame.SubFrame[i].Frame.IsShowYLine=false;
89936
- if (IFrameSplitOperator.IsBool(item.IsShowIndexTitle)) this.Frame.SubFrame[i].Frame.IsShowIndexTitle=item.IsShowIndexTitle;
89937
-
89938
-
89939
- if (IFrameSplitOperator.IsBool(item.IsShowLeftText))
89904
+ if (indexInfo)
89940
89905
  {
89941
- subFrame.Frame.IsShowYText[0]=item.IsShowLeftText;
89942
- subFrame.Frame.YSplitOperator.IsShowLeftText=item.IsShowLeftText; //显示左边刻度
89943
- }
89944
- if (IFrameSplitOperator.IsBool(item.IsShowRightText))
89945
- {
89946
- subFrame.Frame.IsShowYText[1]=item.IsShowRightText;
89947
- subFrame.Frame.YSplitOperator.IsShowRightText=item.IsShowRightText; //显示右边刻度
89906
+ JSIndexScript.ModifyAttribute(indexInfo,item);
89907
+ this.WindowIndex[i]=new ScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo); //脚本执行
89948
89908
  }
89949
89909
 
89950
- if (item.OverlayIndexType)
89951
- {
89952
- if (IFrameSplitOperator.IsNumber(item.OverlayIndexType.Position)) subFrame.Frame.OverlayIndexType.Position=item.OverlayIndexType.Position;
89953
- if (IFrameSplitOperator.IsNumber(item.OverlayIndexType.LineSpace)) subFrame.Frame.OverlayIndexType.LineSpace=item.OverlayIndexType.LineSpace;
89954
- }
89910
+ var subFrame=this.Frame.SubFrame[i];
89911
+ var frameItem=null;
89912
+ if(option && option.Frame && option.Frame.length>i) frameItem=option.Frame[i];
89913
+ this.SetSubFrameAttribute(subFrame, item, frameItem);
89955
89914
 
89956
89915
  var bindData=this.ChartPaint[0].Data;
89957
89916
  this.BindIndexData(i,bindData); //执行脚本
@@ -96729,7 +96688,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96729
96688
  }
96730
96689
 
96731
96690
  //设置指标窗口个数
96732
- this.ChangeIndexWindowCount=function(count)
96691
+ this.ChangeIndexWindowCount=function(count, option)
96733
96692
  {
96734
96693
  if (count<2) return; //1,2个窗口固定的不能动
96735
96694
  if (this.Frame.SubFrame.length==count) return;
@@ -96776,12 +96735,13 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96776
96735
  }
96777
96736
 
96778
96737
  //创建指标
96779
- const indexName=["RSI","MACD","DMA","DMI","KDJ","WR"];
96738
+ const indexName=[{Index:"RSI"},{Index:"MACD"},{Index:"DMA"},{Index:"DMI"},{Index:"KDJ"},{Index:"WR"} ];
96780
96739
  let scriptData = new JSIndexScript();
96781
96740
  for(var i=currentLength;i<count;++i)
96782
96741
  {
96783
- var name=indexName[i%indexName.length];
96784
- let indexInfo = scriptData.Get(name);
96742
+ var item=indexName[i%indexName.length];
96743
+ var indexInfo = scriptData.Get(item.Index);
96744
+ JSIndexScript.ModifyAttribute(indexInfo,item);
96785
96745
  this.WindowIndex[i] = new ScriptIndex(indexInfo.Name, indexInfo.Script, indexInfo.Args,indexInfo); //脚本执行
96786
96746
  var bindData=this.SourceData;
96787
96747
  this.BindIndexData(i,bindData); //执行脚本
@@ -96799,7 +96759,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96799
96759
  }
96800
96760
 
96801
96761
  this.UpdateXShowText();
96802
- this.Frame.SetSizeChage(true);
96762
+ this.SetSizeChange(true);
96803
96763
  this.ResetFrameXYSplit();
96804
96764
  this.UpdateFrameMaxMin(); //调整坐标最大 最小值
96805
96765
  this.Draw();
@@ -153176,7 +153136,7 @@ function ScrollBarBGChart()
153176
153136
 
153177
153137
 
153178
153138
 
153179
- var HQCHART_VERSION="1.1.15028";
153139
+ var HQCHART_VERSION="1.1.15036";
153180
153140
 
153181
153141
  function PrintHQChartVersion()
153182
153142
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.15028";
8
+ var HQCHART_VERSION="1.1.15036";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -86457,7 +86457,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
86457
86457
  this.ShowMinuteChartDialog=function(data, x,y)
86458
86458
  {
86459
86459
  if (!this.PopMinuteChart) return;
86460
- if (!ChartData.IsDayPeriod(this.Period,true)) return; //只支持日K
86460
+ if (this.Period!==0) return; //只支持日K
86461
86461
  if (!data.Tooltip || !data.Chart) return;
86462
86462
 
86463
86463
  var pixelRatio=GetDevicePixelRatio();
@@ -89929,7 +89929,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
89929
89929
  else item.XSplitOperator.ShowText=false;
89930
89930
  }
89931
89931
 
89932
- this.Frame.SetSizeChage(true);
89932
+ this.SetSizeChange(true);
89933
89933
  this.ResetFrameXYSplit();
89934
89934
  this.UpdateFrameMaxMin(); //调整坐标最大 最小值
89935
89935
  this.Draw();
@@ -89945,57 +89945,16 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
89945
89945
  var item=indexName[i%indexName.length];
89946
89946
  var name=item.Index;
89947
89947
  let indexInfo = scriptData.Get(name);
89948
- var args=indexInfo.Args;
89949
- if (item.Args) args=item.Args;
89950
- let indexData =
89951
- {
89952
- Name:indexInfo.Name, Script:indexInfo.Script, Args: args, ID:item.Index,
89953
- //扩展属性 可以是空
89954
- KLineType:indexInfo.KLineType, YSpecificMaxMin:indexInfo.YSpecificMaxMin, YSplitScale:indexInfo.YSplitScale,
89955
- FloatPrecision:indexInfo.FloatPrecision, Condition:indexInfo.Condition,
89956
- OutName:indexInfo.OutName
89957
- };
89958
-
89959
- this.WindowIndex[i]=new ScriptIndex(indexData.Name,indexData.Script,indexData.Args,indexData); //脚本执行
89960
-
89961
- var subFrame=this.Frame.SubFrame[i];
89962
- if (item.Modify!=null) this.Frame.SubFrame[i].Frame.ModifyIndex=item.Modify;
89963
- if (item.Change!=null) this.Frame.SubFrame[i].Frame.ChangeIndex=item.Change;
89964
- if (item.Close!=null) this.Frame.SubFrame[i].Frame.CloseIndex=item.Close;
89965
- if (item.Overlay!=null) chart.Frame.SubFrame[i].Frame.OverlayIndex=item.Overlay;
89966
- if (item.IsDrawTitleBG==true) this.Frame.SubFrame[i].Frame.IsDrawTitleBG=item.IsDrawTitleBG;
89967
- if (IFrameSplitOperator.IsBool(item.IsShowNameArrow)) this.Frame.SubFrame[i].Frame.IsShowNameArrow=item.IsShowNameArrow;
89968
-
89969
- if (IFrameSplitOperator.IsNumber(item.TitleHeight)) this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;
89970
- else item.TitleHeight=this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;
89971
- if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) subFrame.Frame.IsShowTitleArrow=item.IsShowTitleArrow;
89972
- if (IFrameSplitOperator.IsNumber(item.TitleArrowType)) subFrame.Frame.TitleArrowType=item.TitleArrowType;
89973
- if (item.IsShowIndexName==false) this.Frame.SubFrame[i].Frame.IsShowIndexName=false;
89974
- if (item.IsShowOverlayIndexName==false) this.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
89975
- if (IFrameSplitOperator.IsNumber(item.IndexParamSpace)) this.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;
89976
- if (IFrameSplitOperator.IsNumber(item.IndexTitleSpace)) this.Frame.SubFrame[i].Frame.IndexTitleSpace=item.IndexTitleSpace;
89977
-
89978
- if (item.IsShowXLine==false) this.Frame.SubFrame[i].Frame.IsShowXLine=false;
89979
- if (item.IsShowYLine==false) this.Frame.SubFrame[i].Frame.IsShowYLine=false;
89980
- if (IFrameSplitOperator.IsBool(item.IsShowIndexTitle)) this.Frame.SubFrame[i].Frame.IsShowIndexTitle=item.IsShowIndexTitle;
89981
-
89982
-
89983
- if (IFrameSplitOperator.IsBool(item.IsShowLeftText))
89948
+ if (indexInfo)
89984
89949
  {
89985
- subFrame.Frame.IsShowYText[0]=item.IsShowLeftText;
89986
- subFrame.Frame.YSplitOperator.IsShowLeftText=item.IsShowLeftText; //显示左边刻度
89987
- }
89988
- if (IFrameSplitOperator.IsBool(item.IsShowRightText))
89989
- {
89990
- subFrame.Frame.IsShowYText[1]=item.IsShowRightText;
89991
- subFrame.Frame.YSplitOperator.IsShowRightText=item.IsShowRightText; //显示右边刻度
89950
+ JSIndexScript.ModifyAttribute(indexInfo,item);
89951
+ this.WindowIndex[i]=new ScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo); //脚本执行
89992
89952
  }
89993
89953
 
89994
- if (item.OverlayIndexType)
89995
- {
89996
- if (IFrameSplitOperator.IsNumber(item.OverlayIndexType.Position)) subFrame.Frame.OverlayIndexType.Position=item.OverlayIndexType.Position;
89997
- if (IFrameSplitOperator.IsNumber(item.OverlayIndexType.LineSpace)) subFrame.Frame.OverlayIndexType.LineSpace=item.OverlayIndexType.LineSpace;
89998
- }
89954
+ var subFrame=this.Frame.SubFrame[i];
89955
+ var frameItem=null;
89956
+ if(option && option.Frame && option.Frame.length>i) frameItem=option.Frame[i];
89957
+ this.SetSubFrameAttribute(subFrame, item, frameItem);
89999
89958
 
90000
89959
  var bindData=this.ChartPaint[0].Data;
90001
89960
  this.BindIndexData(i,bindData); //执行脚本
@@ -96773,7 +96732,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96773
96732
  }
96774
96733
 
96775
96734
  //设置指标窗口个数
96776
- this.ChangeIndexWindowCount=function(count)
96735
+ this.ChangeIndexWindowCount=function(count, option)
96777
96736
  {
96778
96737
  if (count<2) return; //1,2个窗口固定的不能动
96779
96738
  if (this.Frame.SubFrame.length==count) return;
@@ -96820,12 +96779,13 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96820
96779
  }
96821
96780
 
96822
96781
  //创建指标
96823
- const indexName=["RSI","MACD","DMA","DMI","KDJ","WR"];
96782
+ const indexName=[{Index:"RSI"},{Index:"MACD"},{Index:"DMA"},{Index:"DMI"},{Index:"KDJ"},{Index:"WR"} ];
96824
96783
  let scriptData = new JSIndexScript();
96825
96784
  for(var i=currentLength;i<count;++i)
96826
96785
  {
96827
- var name=indexName[i%indexName.length];
96828
- let indexInfo = scriptData.Get(name);
96786
+ var item=indexName[i%indexName.length];
96787
+ var indexInfo = scriptData.Get(item.Index);
96788
+ JSIndexScript.ModifyAttribute(indexInfo,item);
96829
96789
  this.WindowIndex[i] = new ScriptIndex(indexInfo.Name, indexInfo.Script, indexInfo.Args,indexInfo); //脚本执行
96830
96790
  var bindData=this.SourceData;
96831
96791
  this.BindIndexData(i,bindData); //执行脚本
@@ -96843,7 +96803,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96843
96803
  }
96844
96804
 
96845
96805
  this.UpdateXShowText();
96846
- this.Frame.SetSizeChage(true);
96806
+ this.SetSizeChange(true);
96847
96807
  this.ResetFrameXYSplit();
96848
96808
  this.UpdateFrameMaxMin(); //调整坐标最大 最小值
96849
96809
  this.Draw();
@@ -165022,7 +164982,7 @@ function HQChartScriptWorker()
165022
164982
 
165023
164983
 
165024
164984
 
165025
- var HQCHART_VERSION="1.1.15028";
164985
+ var HQCHART_VERSION="1.1.15036";
165026
164986
 
165027
164987
  function PrintHQChartVersion()
165028
164988
  {