hqchart 1.1.12853 → 1.1.12860

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.
@@ -5808,7 +5808,7 @@ this.Buttons=[];//按钮
5808
5808
  //动态标题
5809
5809
  this.DynamicTitle={OutName:null,OutValue:null};this.OverlayDynamicTitle=new _map2.default();//key , value={ OutName, OutValue }
5810
5810
  this.ReloadResource=function(){this.Font=g_JSChartResource.TitleFont;this.TitleColor=g_JSChartResource.DefaultTextColor;this.OverlayIndexType.BGColor=g_JSChartResource.OverlayIndexTitleBGColor;};this.SetDynamicTitleData=function(outName,args,data){if(!data.OutName)data.OutName=new _map2.default();else data.OutName.clear();if(!data.OutValue)data.OutValue=new _map2.default();else data.OutValue.clear();var mapArgs=new _map2.default();for(var i in args){var item=args[i];mapArgs.set('{'+item.Name+'}',item);}for(var i in outName){var item=outName[i];if(item.DynamicName){var aryFond=item.DynamicName.match(/{\w*}/i);if(!aryFond||aryFond.length<=0){data.OutName.set(item.Name,item.DynamicName);}else{var dyName=item.DynamicName;var bFind=true;for(var j=0;j<aryFond.length;++j){var findItem=aryFond[j];if(mapArgs.has(findItem)){var value=mapArgs.get(findItem).Value;dyName=dyName.replace(findItem,value.toString());}else{bFind=false;break;}}if(bFind)data.OutName.set(item.Name,dyName);}}if(item.DynamicValue){data.OutValue.set(item.Name,item.DynamicValue);}}};this.SetDynamicTitle=function(outName,args,overlayID){if(IFrameSplitOperator.IsString(overlayID)){var dynamicTitle=null;if(this.OverlayDynamicTitle.has(overlayID)){dynamicTitle=this.OverlayDynamicTitle.get(overlayID);}else{dynamicTitle={OutName:null,OutValue:null};this.OverlayDynamicTitle.set(overlayID,dynamicTitle);}this.SetDynamicTitleData(outName,args,dynamicTitle);}else{this.SetDynamicTitleData(outName,args,this.DynamicTitle);}};this.GetDynamicOutName=function(key,overlayID){if(IFrameSplitOperator.IsString(overlayID)){if(!this.OverlayDynamicTitle.has(overlayID))return null;var dynamicTitle=this.OverlayDynamicTitle.get(overlayID);var outName=dynamicTitle.OutName;}else{var outName=this.DynamicTitle.OutName;}if(!outName||outName.size<=0)return null;if(!outName.has(key))return null;return outName.get(key);};this.GetDynamicOutValue=function(key,value){var outValue=this.DynamicTitle.OutValue;if(!outValue||outValue.size<=0)return null;if(!outValue.has(key))return null;var strFormat=outValue.get(key);strFormat=strFormat.replace('{Value}',value);return strFormat;};this.IsClickTitle=function(x,y)//是否点击了指标标题
5811
- {if(!this.TitleRect)return false;if(x>this.TitleRect.Left&&x<this.TitleRect.Left+this.TitleRect.Width&&y>this.TitleRect.Top&&y<this.TitleRect.Top+this.TitleRect.Height){return true;}return false;};this.FormatValue=function(value,item){if(item.StringFormat==STRING_FORMAT_TYPE.DEFAULT)return IFrameSplitOperator.FormatValueString(value,item.FloatPrecision,this.LanguageID);else if(item.StringFormat==STRING_FORMAT_TYPE.THOUSANDS)return IFrameSplitOperator.FormatValueThousandsString(value,item.FloatPrecision);else if(item.StringFormat==STRING_FORMAT_TYPE.ORIGINAL)return value.toFixed(item.FloatPrecision).toString();else if(item.StringFormat==STRING_FORMAT_TYPE.INTEGER)return IFrameSplitOperator.FromatIntegerString(value,item.FloatPrecision,this.LanguageID);};this.FormatMultiReport=function(data,format){var text="";for(var i in data){var item=data[i];var quarter=item.Quarter;var year=item.Year;var _value=item.Value;if(text.length>0)text+=',';text+=year.toString();switch(quarter){case 1:text+='一季报 ';break;case 2:text+='半年报 ';break;case 3:text+='三季报 ';break;case 4:text+='年报 ';break;}text+=this.FormatValue(_value,format);}return text;};this.FromatMultiDataLine=function(value,dataInfo){var text="";if(Array.isArray(value)){for(var i=0;i<value.length;++i){var item=value[i];if(item.Type==0)continue;if(!IFrameSplitOperator.IsNumber(item.Value))continue;var strValue=this.FormatValue(item.Value,dataInfo);if(text.length>0)text+=',';text+=strValue;}}else{if(value.Type!=0&&IFrameSplitOperator.IsNumber(value.Value)){text=this.FormatValue(value.Value,dataInfo);}}if(text.length<=0)return null;return text;};//多变量输出
5811
+ {if(!this.TitleRect)return false;if(x>this.TitleRect.Left&&x<this.TitleRect.Left+this.TitleRect.Width&&y>this.TitleRect.Top&&y<this.TitleRect.Top+this.TitleRect.Height){return true;}return false;};this.FormatValue=function(value,item){if(item.StringFormat==STRING_FORMAT_TYPE.DEFAULT)return IFrameSplitOperator.FormatValueString(value,item.FloatPrecision,this.LanguageID);else if(item.StringFormat==STRING_FORMAT_TYPE.THOUSANDS)return IFrameSplitOperator.FormatValueThousandsString(value,item.FloatPrecision);else if(item.StringFormat==STRING_FORMAT_TYPE.ORIGINAL)return value.toFixed(item.FloatPrecision).toString();else if(item.StringFormat==STRING_FORMAT_TYPE.INTEGER)return IFrameSplitOperator.FromatIntegerString(value,item.FloatPrecision,this.LanguageID);};this.FormatMultiReport=function(data,format){var text="";for(var i in data){var item=data[i];var quarter=item.Quarter;var year=item.Year;var value=item.Value;if(text.length>0)text+=',';text+=year.toString();switch(quarter){case 1:text+='一季报 ';break;case 2:text+='半年报 ';break;case 3:text+='三季报 ';break;case 4:text+='年报 ';break;}text+=this.FormatValue(value,format);}return text;};this.FromatMultiDataLine=function(value,dataInfo){var text="";if(Array.isArray(value)){for(var i=0;i<value.length;++i){var item=value[i];if(item.Type==0)continue;if(!IFrameSplitOperator.IsNumber(item.Value))continue;var strValue=this.FormatValue(item.Value,dataInfo);if(text.length>0)text+=',';text+=strValue;}}else{if(value.Type!=0&&IFrameSplitOperator.IsNumber(value.Value)){text=this.FormatValue(value.Value,dataInfo);}}if(text.length<=0)return null;return text;};//多变量输出
5812
5812
  this.FromatStackedBarTitle=function(aryBar,dataInfo){if(!IFrameSplitOperator.IsNonEmptyArray(aryBar))return null;if(!IFrameSplitOperator.IsNonEmptyArray(dataInfo.Color))return null;var aryText=[];for(var i=0;i<aryBar.length;++i){var value=aryBar[i];if(!IFrameSplitOperator.IsNumber(value))continue;var item={Text:value.toFixed(2)};if(dataInfo.Name&&dataInfo.Name[i])item.Name=dataInfo.Name[i];item.Color=dataInfo.Color[i];aryText.push(item);}if(aryText.length<=0)return null;return aryText;};this.ForamtMultiLineTitle=function(dataIndex,dataInfo){if(!IFrameSplitOperator.IsNonEmptyArray(dataInfo.Lines))return null;var aryText=[];for(var i=0;i<dataInfo.Lines.length;++i){var line=dataInfo.Lines[i];for(var j=0;j<line.Point.length;++j){var item=line.Point[j];if(item.Index==dataIndex){var item={Text:item.Value.toFixed(2)};if(aryText.length==0)item.Name=dataInfo.Name;item.Color=line.Color;aryText.push(item);break;}}}if(!IFrameSplitOperator.IsNonEmptyArray(aryText))return null;return aryText;};this.ForamtMultiPointTitle=function(dataIndex,dataInfo){if(!IFrameSplitOperator.IsNonEmptyArray(dataInfo.PointGroup))return null;var aryText=[];for(var i=0;i<dataInfo.PointGroup.length;++i){var groupItem=dataInfo.PointGroup[i];for(var j=0;j<groupItem.Point.length;++j){var item=groupItem.Point[j];if(item.Index==dataIndex){var item={Text:item.Value.toFixed(2)};if(aryText.length==0)item.Name=dataInfo.Name;item.Color=groupItem.BGColor;aryText.push(item);break;}}}if(!IFrameSplitOperator.IsNonEmptyArray(aryText))return null;return aryText;};this.FormatVPVRTitle=function(pt,dataInfo){var chart=dataInfo.Chart;var aryText=[];if(chart.VolType==0){var item={Text:" Up/Down ",Color:this.TitleColor};aryText.push(item);}else{var item={Text:" Total ",Color:this.TitleColor};aryText.push(item);}if(!IFrameSplitOperator.IsNumber(pt.Y))return aryText;var top=this.Frame.ChartBorder.GetTopEx();var bottom=this.Frame.ChartBorder.GetBottomEx();if(pt.Y<top||pt.Y>bottom)return aryText;var yPrice=this.Frame.GetYData(pt.Y);var find=null;for(var i=0;i<dataInfo.Data.Data.length;++i){var item=dataInfo.Data.Data[i];if(yPrice>=item.Price-dataInfo.Data.PriceOffset/2&&yPrice<item.Price+dataInfo.Data.PriceOffset/2){find=item;break;}}if(!find)return null;if(chart.VolType==0){var total=0;for(var i=0;i<find.Vol.length;++i){var volItem=find.Vol[i];if(!IFrameSplitOperator.IsNumber(volItem.Value))continue;var item={Text:IFrameSplitOperator.FormatVolString(volItem.Value,this.LanguageID)};total+=volItem.Value;if(IFrameSplitOperator.IsNumber(volItem.ColorID))item.Color=chart.BarColor[volItem.ColorID];else if(volItem.Color)item.Color=volItem.Color;aryText.push(item);}var item={Text:IFrameSplitOperator.FormatVolString(total,this.LanguageID),Color:this.TitleColor};aryText.push(item);}else{if(find.TotalVol&&IFrameSplitOperator.IsNumber(find.TotalVol.Value)){var item={Text:IFrameSplitOperator.FormatVolString(find.TotalVol.Value,this.LanguageID)};if(IFrameSplitOperator.IsNumber(find.TotalVol.ColorID))item.Color=chart.BarColor[find.TotalVol.ColorID];else if(find.TotalVol.Color)item.Color=find.TotalVol.Color;aryText.push(item);}}return aryText;};this.IsShowLastData=function(){var isShowLastData=false;if(this.DrawStatus&&this.DrawStatus.IsTitleShowLatestData){var status=this.DrawStatus;if(!IFrameSplitOperator.IsNumber(status.FrameID)||status.FrameID<0)isShowLastData=true;else if(status.CorssCursorTouchEnd&&status.IsOnTouch==false)isShowLastData=true;}else if(this.GlobalOption&&this.GlobalOption.IsDisplayLatest){isShowLastData=true;}return isShowLastData;};this.OnDrawTitleEvent=function(){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_INDEXTITLE_DRAW);if(!event)return;var data={Index:null,Data:this.Data,Title:this.Title,Script:this.Script,FrameID:this.Frame.Identify,OverlayIndex:this.OverlayIndex,IsShowTitleOnly:false};if(this.ArgumentsText)data.ArgumentsText=this.ArgumentsText;if(this.Frame&&this.Frame.ChartBorder)data.IsShowTitleOnly=this.Frame.ChartBorder.IsShowTitleOnly;if(IFrameSplitOperator.IsNumber(this.CursorIndex)){var index=Math.abs(this.CursorIndex);index=parseInt(index.toFixed(0));data.Index=index;//当前屏数据索引
5813
5813
  }var pixelTatio=GetDevicePixelRatio();var border=this.Frame.GetBorder();data.Left=border.LeftEx/pixelTatio;data.Top=border.Top/pixelTatio;data.Right=border.RightEx/pixelTatio;event.Callback(event,data,this);};this.IsSelectedChart=function(id){if(!id)return false;if(!this.SelectedChart)return false;if(!this.SelectedChart.Selected)return false;return this.SelectedChart.Selected.Identify==id;};this.Draw=function(moveonPoint,mouseStatus){this.Buttons=[];if(this.Frame.IsMinSize)return;this.IsKLineFrame=this.Frame.ClassName=='KLineFrame'||this.Frame.ClassName=='KLineHScreenFrame';this.IsDrawTitleBG=this.Frame.IsDrawTitleBG;this.IsShowNameArrow=this.Frame.IsShowNameArrow;this.IsShowUpDownArrow=this.Frame.IsShowTitleArrow;this.IsShowIndexName=this.Frame.IsShowIndexName;this.IsShowOverlayIndexName=this.Frame.IsShowOverlayIndexName;this.OverlayIndexType.Position=this.Frame.OverlayIndexType.Position;this.OverlayIndexType.LineSpace=this.Frame.OverlayIndexType.LineSpace;this.ParamSpace=this.Frame.IndexParamSpace;this.TitleSpace=this.Frame.IndexTitleSpace;this.TitleRect=null;this.GlobalOption=this.Frame.GlobalOption;this.OnDrawTitleEvent();if(this.Frame.IsShowIndexTitle==false)return;if(g_JSChartResource.IsDOMFrameTitle===true)return;if(!this.Data)return;if(this.Frame.ChartBorder.TitleHeight<5)return;if(this.CursorIndex==null&&!(this.GlobalOption&&this.GlobalOption.IsDisplayLatest))return;if(this.Frame.IsHScreen===true){this.Canvas.save();this.HScreenDraw();this.Canvas.restore();/* 测试用
5814
5814
  if (this.TitleRect)
@@ -8679,7 +8679,7 @@ this.newMethod('财务粉饰');delete this.newMethod;this.Index=new Array(new In
8679
8679
  this.ApiUrl=g_JSChartResource.Index.StockHistoryDayApiUrl;this.Index[0].LineColor=g_JSChartResource.Index.LineColor[0];this.Index[1].LineColor='rgb(105,105,105)';this.CreateChart=function(id){if(id==0)return new ChartStraightArea();return new ChartLineMultiData();};this.GetOutData=function(){return{Data:this.Data};};//请求数据
8680
8680
  this.RequestData=function(hqChart,windowIndex,hisData){var self=this;var param={HQChart:hqChart,WindowIndex:windowIndex,HistoryData:hisData};this.Data=[];if(param.HQChart.Period!=2)//周期数据
8681
8681
  {this.NotSupport(param.HQChart,param.WindowIndex,"只支持月线");param.HQChart.Draw();this.SendEvent(hqChart,windowIndex,hisData,"只支持月线");return false;}var aryField=["finance.benford","announcement2.quarter","announcement1.quarter","announcement3.quarter","announcement4.quarter"];var aryCondition=[{item:["date","int32","gte","20130101"]},{item:["announcement1.year","int32","gte",0,"announcement2.year","int32","gte",0,"announcement3.year","int32","gte",0,"announcement4.year","int32","gte",0,"or"]}];//请求数据
8682
- JSNetwork.HttpRequest({url:this.ApiUrl,data:{"symbol":[param.HQChart.Symbol],"field":aryField,"condition":aryCondition},type:"post",dataType:"json",async:true,success:function success(recvData){self.RecvData(recvData,param);self.SendEvent(hqChart,windowIndex,hisData);}});return true;};this.JsonDataToMapSingleData=function(recvData){var stockData=recvData.stock[0].stockday;var mapData=new _map2.default();for(var i in stockData){var item=stockData[i];var indexData=new SingleData();indexData.Date=item.date;indexData.Value=new Array();if(item.finance1!=null&&item.announcement1!=null){var year=item.announcement1.year;var quarter=item.announcement1.quarter;var _value2=item.finance1.benford;indexData.Value.push({Year:year,Quarter:quarter,Value:_value2});}if(item.finance2!=null&&item.announcement2!=null){var _year=item.announcement2.year;var _quarter=item.announcement2.quarter;var _value3=item.finance2.benford;indexData.Value.push({Year:_year,Quarter:_quarter,Value:_value3});}if(item.finance3!=null&&item.announcement3!=null){var _year2=item.announcement3.year;var _quarter2=item.announcement3.quarter;var _value4=item.finance3.benford;indexData.Value.push({Year:_year2,Quarter:_quarter2,Value:_value4});}if(item.finance4!=null&&item.announcement4!=null){var _year3=item.announcement4.year;var _quarter3=item.announcement4.quarter;var _value5=item.finance4.benford;indexData.Value.push({Year:_year3,Quarter:_quarter3,Value:_value5});}mapData.set(indexData.Date,indexData);}var aryData=new Array();var _iteratorNormalCompletion15=true;var _didIteratorError15=false;var _iteratorError15=undefined;try{for(var _iterator15=(0,_getIterator3.default)(mapData),_step15;!(_iteratorNormalCompletion15=(_step15=_iterator15.next()).done);_iteratorNormalCompletion15=true){var item=_step15.value;aryData.push(item[1]);}}catch(err){_didIteratorError15=true;_iteratorError15=err;}finally{try{if(!_iteratorNormalCompletion15&&_iterator15.return){_iterator15.return();}}finally{if(_didIteratorError15){throw _iteratorError15;}}}return aryData;};this.RecvData=function(recvData,param){JSConsole.Chart.Log(recvData);if(recvData.stock==null||recvData.stock.length<=0)return;var aryData=this.JsonDataToMapSingleData(recvData);var aryFittingData=param.HistoryData.GetFittingMonthData(aryData);var bindData=new ChartData();bindData.Data=aryFittingData;bindData.Period=param.HQChart.Period;//周期
8682
+ JSNetwork.HttpRequest({url:this.ApiUrl,data:{"symbol":[param.HQChart.Symbol],"field":aryField,"condition":aryCondition},type:"post",dataType:"json",async:true,success:function success(recvData){self.RecvData(recvData,param);self.SendEvent(hqChart,windowIndex,hisData);}});return true;};this.JsonDataToMapSingleData=function(recvData){var stockData=recvData.stock[0].stockday;var mapData=new _map2.default();for(var i in stockData){var item=stockData[i];var indexData=new SingleData();indexData.Date=item.date;indexData.Value=new Array();if(item.finance1!=null&&item.announcement1!=null){var year=item.announcement1.year;var quarter=item.announcement1.quarter;var value=item.finance1.benford;indexData.Value.push({Year:year,Quarter:quarter,Value:value});}if(item.finance2!=null&&item.announcement2!=null){var _year=item.announcement2.year;var _quarter=item.announcement2.quarter;var _value=item.finance2.benford;indexData.Value.push({Year:_year,Quarter:_quarter,Value:_value});}if(item.finance3!=null&&item.announcement3!=null){var _year2=item.announcement3.year;var _quarter2=item.announcement3.quarter;var _value2=item.finance3.benford;indexData.Value.push({Year:_year2,Quarter:_quarter2,Value:_value2});}if(item.finance4!=null&&item.announcement4!=null){var _year3=item.announcement4.year;var _quarter3=item.announcement4.quarter;var _value3=item.finance4.benford;indexData.Value.push({Year:_year3,Quarter:_quarter3,Value:_value3});}mapData.set(indexData.Date,indexData);}var aryData=new Array();var _iteratorNormalCompletion15=true;var _didIteratorError15=false;var _iteratorError15=undefined;try{for(var _iterator15=(0,_getIterator3.default)(mapData),_step15;!(_iteratorNormalCompletion15=(_step15=_iterator15.next()).done);_iteratorNormalCompletion15=true){var item=_step15.value;aryData.push(item[1]);}}catch(err){_didIteratorError15=true;_iteratorError15=err;}finally{try{if(!_iteratorNormalCompletion15&&_iterator15.return){_iterator15.return();}}finally{if(_didIteratorError15){throw _iteratorError15;}}}return aryData;};this.RecvData=function(recvData,param){JSConsole.Chart.Log(recvData);if(recvData.stock==null||recvData.stock.length<=0)return;var aryData=this.JsonDataToMapSingleData(recvData);var aryFittingData=param.HistoryData.GetFittingMonthData(aryData);var bindData=new ChartData();bindData.Data=aryFittingData;bindData.Period=param.HQChart.Period;//周期
8683
8683
  bindData.Right=param.HQChart.Right;//复权
8684
8684
  this.Data=bindData.GetValue();this.BindData(param.HQChart,param.WindowIndex,param.HistoryData);param.HQChart.UpdataDataoffset();//更新数据偏移
8685
8685
  param.HQChart.UpdateFrameMaxMin();//调整坐标最大 最小值
@@ -9825,7 +9825,7 @@ if(this.Scanner.Index!==this.StartMarker.Index){this.StartMarker.Index=this.Scan
9825
9825
  }this.LookAhead=next;return token;};this.CollectComments=function(){this.Scanner.ScanComments();};this.ParseScript=function(){var node=this.CreateNode();var body=this.ParseDirectivePrologues();while(this.LookAhead.Type!=2/*EOF*/){body.push(this.ParseStatementListItem());}return this.Finalize(node,this.Node.Script(body));};//https://tc39.github.io/ecma262/#sec-directive-prologues-and-the-use-strict-directive
9826
9826
  this.ParseDirective=function(){var token=this.LookAhead;var node=this.CreateNode();var expr=this.ParseExpression();var directive=expr.Type===Syntax.Literal?this.GetTokenRaw(token).slice(1,-1):null;this.ConsumeSemicolon();return this.Finalize(node,directive?this.Node.Directive(expr,directive):this.Node.ExpressionStatement(expr));};this.ParseDirectivePrologues=function(){var firstRestricted=null;var body=[];while(true){var token=this.LookAhead;if(token.Type!=8/*StringLiteral*/)break;var statement=this.ParseDirective();body.push(statement);}return body;};// https://tc39.github.io/ecma262/#sec-block
9827
9827
  this.ParseStatementListItem=function(){var statement=void 0;this.Context.IsAssignmentTarget=true;this.Context.IsBindingElement=true;if(this.LookAhead.Type==4/*Keyword*/){}else{statement=this.ParseStatement();}return statement;};// https://tc39.github.io/ecma262/#sec-ecmascript-language-statements-and-declarations
9828
- this.ParseStatement=function(){var statement=void 0;switch(this.LookAhead.Type){case 1/* BooleanLiteral */:case 5/* NullLiteral */:case 6/* NumericLiteral */:case 8/* StringLiteral */:case 10/* Template */:case 9/* RegularExpression */:statement=this.ParseExpressionStatement();break;case 7/* Punctuator */:var _value6=this.LookAhead.Value;if(_value6==='(')statement=this.ParseExpressionStatement();else if(_value6===';')statement=this.ParseEmptyStatement();else statement=this.ParseExpressionStatement();break;case 3/* Identifier */:statement=this.ParseLabelledStatement();break;case 4/* Keyword */:break;default:statement="error";}return statement;};// https://tc39.github.io/ecma262/#sec-empty-statement
9828
+ this.ParseStatement=function(){var statement=void 0;switch(this.LookAhead.Type){case 1/* BooleanLiteral */:case 5/* NullLiteral */:case 6/* NumericLiteral */:case 8/* StringLiteral */:case 10/* Template */:case 9/* RegularExpression */:statement=this.ParseExpressionStatement();break;case 7/* Punctuator */:var value=this.LookAhead.Value;if(value==='(')statement=this.ParseExpressionStatement();else if(value===';')statement=this.ParseEmptyStatement();else statement=this.ParseExpressionStatement();break;case 3/* Identifier */:statement=this.ParseLabelledStatement();break;case 4/* Keyword */:break;default:statement="error";}return statement;};// https://tc39.github.io/ecma262/#sec-empty-statement
9829
9829
  this.ParseEmptyStatement=function(){var node=this.CreateNode();this.Expect(';');return this.Finalize(node,this.Node.EmptyStatement());};//https://tc39.github.io/ecma262/#sec-labelled-statements
9830
9830
  this.ParseLabelledStatement=function(){var node=this.CreateNode();var expr=this.ParseExpression();this.ConsumeSemicolon();var statement=new this.Node.ExpressionStatement(expr);return this.Finalize(node,statement);};// https://tc39.github.io/ecma262/#sec-comma-operator
9831
9831
  this.ParseExpression=function(){var startToken=this.LookAhead;var expr=this.IsolateCoverGrammar(this.ParseAssignmentExpression);if(this.Match(',')){var expressions=[];expressions.push(expr);while(this.LookAhead.Type!=2/*EOF*/){if(!this.Match(','))break;this.NextToken();expressions.push(this.IsolateCoverGrammar(this.ParseAssignmentExpression));}expr=this.Finalize(this.StartNode(startToken),this.Node.SequenceExpression(expressions));}return expr;};this.ParseAssignmentExpression=function(){var expr=void 0;var startToken=this.LookAhead;var token=startToken;expr=this.ParseConditionalExpression();if(this.MatchAssign()){if(!this.Context.IsAssignmentTarget){var marker=expr.Marker;this.ThrowUnexpectedError(marker.Index,marker.Line,marker.Column,Messages.InvalidLHSInAssignment);}if(!this.Match('=')&&!this.Match(':')){this.Context.IsAssignmentTarget=false;this.Context.IsBindingElement=false;}else{this.ReinterpretExpressionAsPattern(expr);}token=this.NextToken();var operator=token.Value;var right=this.IsolateCoverGrammar(this.ParseAssignmentExpression);expr=this.Finalize(this.StartNode(startToken),this.Node.AssignmentExpression(operator,expr,right));this.Context.FirstCoverInitializedNameError=null;}return expr;};this.ParseConditionalExpression=function(){var startToken=this.LookAhead;var expr=this.InheritCoverGrammar(this.ParseBinaryExpression);return expr;};this.ParseBinaryExpression=function(){var startToken=this.LookAhead;var expr=this.InheritCoverGrammar(this.ParseExponentiationExpression);var token=this.LookAhead;var prec=this.BinaryPrecedence(token);if(prec>0){this.NextToken();this.Context.IsAssignmentTarget=false;this.Context.IsBindingElement=false;var markers=[startToken,this.LookAhead];var left=expr;var right=this.IsolateCoverGrammar(this.ParseExponentiationExpression);var stack=[left,token.Value,right];var precedences=[prec];while(true){prec=this.BinaryPrecedence(this.LookAhead);if(prec<=0)break;while(stack.length>2&&prec<=precedences[precedences.length-1]){right=stack.pop();var operator=stack.pop();precedences.pop();left=stack.pop();markers.pop();var node=this.StartNode(markers[markers.length-1]);stack.push(this.Finalize(node,this.Node.BinaryExpression(operator,left,right)));}//Shift
@@ -11457,7 +11457,7 @@ break;}}JSConsole.Complier.Log('[JSExecute::RunAST]',this.VarTable);return this.
11457
11457
  if(item.Type==Syntax.ExpressionStatement&&item.Expression){if(item.Expression.Type==Syntax.AssignmentExpression){if(item.Expression.Operator==':'&&item.Expression.Left){var assignmentItem=item.Expression;var _varName=assignmentItem.Left.Name;var _outVar=this.VarTable.get(_varName);if(this.VarDrawTable.has(_varName))//绘图函数赋值
11458
11458
  {var draw=this.VarDrawTable.get(_varName);this.OutVarTable.push({Name:draw.Name,Draw:draw,Type:1});}else{var type=0;if(_outVar&&(typeof _outVar==='undefined'?'undefined':(0,_typeof3.default)(_outVar))=='object'&&_outVar.__Type__=='Object'){type=1000;}else if(!this.IsSectionMode&&!Array.isArray(_outVar)){if(typeof _outVar=='string'){var floatValue=parseFloat(_outVar);if(IFrameSplitOperator.IsNumber(floatValue)){_outVar=this.SingleDataToArrayData(floatValue);}else{_outVar=this.SingleDataToArrayData(_outVar);type=1001;}}else _outVar=this.SingleDataToArrayData(_outVar);}this.OutVarTable.push({Name:_varName,Data:_outVar,Type:type});}}}else if(item.Expression.Type==Syntax.CallExpression){var callItem=item.Expression;if(this.Draw.IsDrawFunction(callItem.Callee.Name)){var _draw=callItem.Draw;_draw.Name=callItem.Callee.Name;this.OutVarTable.push({Name:_draw.Name,Draw:_draw,Type:1});}else if(callItem.Callee.Name==="IFC"&&callItem.Draw){var _draw2=callItem.Draw;_draw2.Name=_draw2.DrawType;this.OutVarTable.push({Name:_draw2.Name,Draw:_draw2,Type:1});}else{var _outVar2=callItem.Out;varName='__temp_c_'+callItem.Callee.Name+'_'+i+'__';var type=0;if(!Array.isArray(_outVar2))_outVar2=this.SingleDataToArrayData(_outVar2);this.OutVarTable.push({Name:varName,Data:_outVar2,Type:type,NoneName:true});}}else if(item.Expression.Type==Syntax.Identifier){var _varName2=item.Expression.Name;var _outVar3=this.ReadVariable(_varName2,item.Expression);var type=0;if(_outVar3&&(typeof _outVar3==='undefined'?'undefined':(0,_typeof3.default)(_outVar3))=='object'&&_outVar3.__Type__=='Object'){type=1000;}else if(!this.IsSectionMode&&!Array.isArray(_outVar3)){if(typeof _outVar3=='string')_outVar3=this.SingleDataToArrayData(parseFloat(_outVar3));else _outVar3=this.SingleDataToArrayData(_outVar3);}_varName2="__temp_i_"+i+"__";this.OutVarTable.push({Name:_varName2,Data:_outVar3,Type:type,NoneName:true});}else if(item.Expression.Type==Syntax.Literal)//常量
11459
11459
  {var _outVar4=item.Expression.Value;if(IFrameSplitOperator.IsString(_outVar4)&&_outVar4.indexOf("$")>0)_outVar4=this.SymbolData.GetOtherSymolCacheData({Literal:_outVar4});varName="__temp_li_"+i+"__";var type=0;if(!Array.isArray(_outVar4))_outVar4=this.SingleDataToArrayData(_outVar4);this.OutVarTable.push({Name:varName,Data:_outVar4,Type:type,NoneName:true});}else if(item.Expression.Type==Syntax.BinaryExpression){var varName="__temp_b_"+i+"__";var _outVar5=item.Expression.Out;var type=0;if(!Array.isArray(_outVar5))_outVar5=this.SingleDataToArrayData(_outVar5);this.OutVarTable.push({Name:varName,Data:_outVar5,Type:type,NoneName:true});}else if(item.Expression.Type==Syntax.LogicalExpression)//逻辑语句 如 T1 AND T2
11460
- {var varName="__temp_l_"+i+"__";var _outVar6=item.Expression.Out;var type=0;if(!Array.isArray(_outVar6))_outVar6=this.SingleDataToArrayData(_outVar6);this.OutVarTable.push({Name:varName,Data:_outVar6,Type:type,NoneName:true});}else if(item.Expression.Type==Syntax.UnaryExpression){var varName="__temp_l_"+i+"__";var argument=item.Expression.Argument;var type=0;var _outVar7=null;if(argument.Type==Syntax.Literal){_outVar7=argument.Value;if(!Array.isArray(_outVar7))_outVar7=this.SingleDataToArrayData(_outVar7);}else if(argument.Type==Syntax.Identifier){var _varName3=argument.Name;_outVar7=this.ReadVariable(_varName3,item.Expression);if(!Array.isArray(_outVar7))_outVar7=this.SingleDataToArrayData(_outVar7);}else if(argument.Type==Syntax.BinaryExpression){_outVar7=argument.Out;if(!Array.isArray(_outVar7))_outVar7=this.SingleDataToArrayData(_outVar7);}if(item.Expression.Operator=='-'){if(IFrameSplitOperator.IsNonEmptyArray(_outVar7)){for(var i=0;i<_outVar7.length;++i){_outVar7[i]*=-1;}}}if(_outVar7)this.OutVarTable.push({Name:varName,Data:_outVar7,Type:type,NoneName:true});}else if(item.Expression.Type==Syntax.SequenceExpression){var _varName4=void 0;var _draw3=void 0;var color=void 0,upColor=void 0,downColor=void 0;var lineWidth=void 0;var colorStick=false;var pointDot=false;var upDownDot=false;var circleDot=false;var lineStick=false;var stick=false;var volStick=false;var lineArea=false;var stepLine=false;var isShow=true;var isExData=false;var isDotLine=false;var isOverlayLine=false;//叠加线
11460
+ {var varName="__temp_l_"+i+"__";var _outVar6=item.Expression.Out;var type=0;if(!Array.isArray(_outVar6))_outVar6=this.SingleDataToArrayData(_outVar6);this.OutVarTable.push({Name:varName,Data:_outVar6,Type:type,NoneName:true});}else if(item.Expression.Type==Syntax.UnaryExpression){var varName="__temp_l_"+i+"__";var argument=item.Expression.Argument;var type=0;var _outVar7=null;if(argument.Type==Syntax.Literal){_outVar7=argument.Value;if(!Array.isArray(_outVar7))_outVar7=this.SingleDataToArrayData(_outVar7);}else if(argument.Type==Syntax.Identifier){var _varName3=argument.Name;_outVar7=this.ReadVariable(_varName3,item.Expression);if(!Array.isArray(_outVar7))_outVar7=this.SingleDataToArrayData(_outVar7);}else if(argument.Type==Syntax.BinaryExpression){_outVar7=argument.Out;if(!Array.isArray(_outVar7))_outVar7=this.SingleDataToArrayData(_outVar7);}if(item.Expression.Operator=='-'){if(_outVar7)_outVar7=this.Algorithm.Subtract(0,_outVar7);}if(_outVar7)this.OutVarTable.push({Name:varName,Data:_outVar7,Type:type,NoneName:true});}else if(item.Expression.Type==Syntax.SequenceExpression){var _varName4=void 0;var _draw3=void 0;var color=void 0,upColor=void 0,downColor=void 0;var lineWidth=void 0;var colorStick=false;var pointDot=false;var upDownDot=false;var circleDot=false;var lineStick=false;var stick=false;var volStick=false;var lineArea=false;var stepLine=false;var isShow=true;var isExData=false;var isDotLine=false;var isOverlayLine=false;//叠加线
11461
11461
  var isNoneName=false;var isShowTitle=true;//显示在位置之上,对于DRAWTEXT和DRAWNUMBER等函数有用,放在语句的最后面(不能与LINETHICK等函数共用),比如:
11462
11462
  //DRAWNUMBER(CLOSE>OPEN,HIGH,CLOSE),DRAWABOVE;
11463
11463
  var isDrawAbove=false;var isDrawCenter=false;var isDrawBelow=false;//VALIGN0,VALIGN1,VALIGN2 设置文字垂直对齐方式(上中下)
@@ -11465,24 +11465,24 @@ var isDrawAbove=false;var isDrawCenter=false;var isDrawBelow=false;//VALIGN0,VAL
11465
11465
  var drawAlign=-1,drawVAlign=-1;var fontSize=-1;var bgConfig=null;//背景设置
11466
11466
  var vLineConfig=null;var isFirstDraw=null;var xOffset=null,yOffset=null;for(var _j14=0;_j14<item.Expression.Expression.length;++_j14){var itemExpression=item.Expression.Expression[_j14];if(itemExpression.Type==Syntax.AssignmentExpression&&itemExpression.Operator==':'&&itemExpression.Left){if(_j14==0){_varName4=itemExpression.Left.Name;var varValue=this.VarTable.get(_varName4);if(this.VarDrawTable.has(_varName4))//绘图函数赋值
11467
11467
  {_draw3=this.VarDrawTable.get(_varName4);}else if(!Array.isArray(varValue)){varValue=this.SingleDataToArrayData(varValue);this.VarTable.set(_varName4,varValue);//把常量放到变量表里
11468
- }}else{}}else if(itemExpression.Type==Syntax.Identifier){var _value7=itemExpression.Name;if(_value7==='COLORSTICK')colorStick=true;else if(_value7==='POINTDOT')pointDot=true;else if(_value7==='CIRCLEDOT')circleDot=true;else if(_value7==='DOTLINE')isDotLine=true;else if(_value7=="UPDOWNDOT")upDownDot=true;else if(_value7==='LINESTICK')lineStick=true;else if(_value7==='STICK')stick=true;else if(_value7==='VOLSTICK')volStick=true;else if(_value7=="LINEAREA")lineArea=true;else if(_value7==="DRAWABOVE")isDrawAbove=true;else if(_value7==="DRAWCENTER")isDrawCenter=true;else if(_value7=="DRAWBELOW")isDrawBelow=true;else if(_value7=="STEPLINE")stepLine=true;else if(_value7.indexOf('COLOR')==0)color=_value7;else if(_value7.indexOf("RGBX")==0&&_value7.length==10)color=_value7;//RGBX+“RRGGBB”
11469
- else if(_value7.indexOf('LINETHICK')==0)lineWidth=_value7;else if(_value7=="ALIGN0")drawAlign=0;else if(_value7=="ALIGN1")drawAlign=1;else if(_value7=="ALIGN2")drawAlign=2;else if(_value7=="VALIGN0")drawVAlign=0;else if(_value7=="VALIGN1")drawVAlign=1;else if(_value7=="VALIGN2")drawVAlign=2;else if(_value7.indexOf('NODRAW')==0)isShow=false;else if(_value7.indexOf('EXDATA')==0)isExData=true;//扩展数据, 不显示再图形里面
11470
- else if(_value7.indexOf('LINEOVERLAY')==0)isOverlayLine=true;else if(_value7.indexOf("NOTEXT")==0||_value7.indexOf("NOTITLE")==0)isShowTitle=false;//标题不显示
11471
- else if(_value7.indexOf("FONTSIZE")==0){var strFontSize=_value7.replace("FONTSIZE","");fontSize=parseInt(strFontSize);}else{if(_j14==0){_varName4=itemExpression.Name;var _varValue=this.ReadVariable(_varName4,itemExpression);if(!Array.isArray(_varValue))_varValue=this.SingleDataToArrayData(_varValue);_varName4="__temp_si_"+i+"__";isNoneName=true;this.VarTable.set(_varName4,_varValue);//放到变量表里
11468
+ }}else{}}else if(itemExpression.Type==Syntax.Identifier){var value=itemExpression.Name;if(value==='COLORSTICK')colorStick=true;else if(value==='POINTDOT')pointDot=true;else if(value==='CIRCLEDOT')circleDot=true;else if(value==='DOTLINE')isDotLine=true;else if(value=="UPDOWNDOT")upDownDot=true;else if(value==='LINESTICK')lineStick=true;else if(value==='STICK')stick=true;else if(value==='VOLSTICK')volStick=true;else if(value=="LINEAREA")lineArea=true;else if(value==="DRAWABOVE")isDrawAbove=true;else if(value==="DRAWCENTER")isDrawCenter=true;else if(value=="DRAWBELOW")isDrawBelow=true;else if(value=="STEPLINE")stepLine=true;else if(value.indexOf('COLOR')==0)color=value;else if(value.indexOf("RGBX")==0&&value.length==10)color=value;//RGBX+“RRGGBB”
11469
+ else if(value.indexOf('LINETHICK')==0)lineWidth=value;else if(value=="ALIGN0")drawAlign=0;else if(value=="ALIGN1")drawAlign=1;else if(value=="ALIGN2")drawAlign=2;else if(value=="VALIGN0")drawVAlign=0;else if(value=="VALIGN1")drawVAlign=1;else if(value=="VALIGN2")drawVAlign=2;else if(value.indexOf('NODRAW')==0)isShow=false;else if(value.indexOf('EXDATA')==0)isExData=true;//扩展数据, 不显示再图形里面
11470
+ else if(value.indexOf('LINEOVERLAY')==0)isOverlayLine=true;else if(value.indexOf("NOTEXT")==0||value.indexOf("NOTITLE")==0)isShowTitle=false;//标题不显示
11471
+ else if(value.indexOf("FONTSIZE")==0){var strFontSize=value.replace("FONTSIZE","");fontSize=parseInt(strFontSize);}else{if(_j14==0){_varName4=itemExpression.Name;var _varValue=this.ReadVariable(_varName4,itemExpression);if(!Array.isArray(_varValue))_varValue=this.SingleDataToArrayData(_varValue);_varName4="__temp_si_"+i+"__";isNoneName=true;this.VarTable.set(_varName4,_varValue);//放到变量表里
11472
11472
  }}}else if(itemExpression.Type==Syntax.Literal)//常量
11473
11473
  {if(_j14==0){var aryValue=this.SingleDataToArrayData(itemExpression.Value);_varName4=itemExpression.Value.toString();this.VarTable.set(_varName4,aryValue);//把常量放到变量表里
11474
- }}else if(itemExpression.Type==Syntax.CallExpression){if(_j14==0){if(this.Draw.IsDrawFunction(itemExpression.Callee.Name)){_draw3=itemExpression.Draw;_draw3.Name=itemExpression.Callee.Name;}else{var _varValue2=itemExpression.Out;_varName4='__temp_sc_'+itemExpression.Callee.Name+'_'+i+'__';isNoneName=true;this.VarTable.set(_varName4,_varValue2);}}else{if(itemExpression.Callee.Name=="RGB"||itemExpression.Callee.Name=="RGBA"){color=itemExpression.Out;}else if(itemExpression.Callee.Name=="UPCOLOR"){upColor=itemExpression.Out;}else if(itemExpression.Callee.Name=="DOWNCOLOR"){downColor=itemExpression.Out;}else if(itemExpression.Callee.Name=="XMOVE"){xOffset=itemExpression.Out;}else if(itemExpression.Callee.Name=="YMOVE"){yOffset=itemExpression.Out;}else if(itemExpression.Callee.Name=="FIRSTDRAW"){if(itemExpression.Out===0)isFirstDraw=false;else if(itemExpression.Out===1)isFirstDraw=true;}else if(itemExpression.Callee.Name=="SOUND"){var event=this.GetSoundEvent();if(event){}_varName4=null;}else if(itemExpression.Callee.Name=="ICON"){var drawCond=this.VarTable.get(_varName4);if(drawCond){_draw3=this.GetOutIconData(drawCond,itemExpression.Draw);if(_draw3)_draw3.Name=itemExpression.Callee.Name;}_varName4=null;}else if(itemExpression.Callee.Name=="BACKGROUND"){bgConfig=itemExpression.Draw;_varName4=null;}else if(itemExpression.Callee.Name=="CKLINE"){vLineConfig=itemExpression.Draw;_varName4=null;}}}else if(itemExpression.Type==Syntax.BinaryExpression){if(_j14==0){_varName4="__temp_sb_"+i+"__";var _aryValue=itemExpression.Out;isNoneName=true;this.VarTable.set(_varName4,_aryValue);}}else if(itemExpression.Type==Syntax.UnaryExpression){if(_j14==0){_varName4="__temp_sb_"+i+"__";var argument=itemExpression.Argument;var _aryValue2=null;if(argument.Type==Syntax.Literal){_aryValue2=argument.Value;if(!Array.isArray(_aryValue2))_aryValue2=this.SingleDataToArrayData(_aryValue2);}else if(argument.Type==Syntax.Identifier){var _varName5=argument.Name;_aryValue2=this.ReadVariable(_varName5,item.Expression);if(!Array.isArray(_aryValue2))_aryValue2=this.SingleDataToArrayData(_aryValue2);}else if(argument.Type==Syntax.BinaryExpression){_aryValue2=argument.Out;if(!Array.isArray(_aryValue2))_aryValue2=this.SingleDataToArrayData(_aryValue2);}if(itemExpression.Operator=='-'){if(IFrameSplitOperator.IsNonEmptyArray(_aryValue2)){for(var i=0;i<_aryValue2.length;++i){_aryValue2[i]*=-1;}}}isNoneName=true;this.VarTable.set(_varName4,_aryValue2);}}}if(pointDot&&_varName4)//圆点
11475
- {var _outVar8=this.VarTable.get(_varName4);if(!Array.isArray(_outVar8))_outVar8=this.SingleDataToArrayData(_outVar8);var _value8={Name:_varName4,Data:_outVar8,Radius:g_JSChartResource.POINTDOT.Radius,Type:3};if(color)_value8.Color=color;if(lineWidth)_value8.LineWidth=lineWidth;this.OutVarTable.push(_value8);}else if(circleDot&&_varName4)//圆点
11476
- {var _outVar9=this.VarTable.get(_varName4);if(!Array.isArray(_outVar9))_outVar9=this.SingleDataToArrayData(_outVar9);var _value9={Name:_varName4,Data:_outVar9,Radius:g_JSChartResource.CIRCLEDOT.Radius,Type:3};if(color)_value9.Color=color;if(lineWidth)_value9.LineWidth=lineWidth;this.OutVarTable.push(_value9);}else if(upDownDot&&_varName4)//彩色点
11477
- {var _outVar10=this.VarTable.get(_varName4);if(!Array.isArray(_outVar10))_outVar10=this.SingleDataToArrayData(_outVar10);var _value10={Name:_varName4,Data:_outVar10,Radius:g_JSChartResource.CIRCLEDOT.Radius,Type:3,UpDownDot:true};if(color)_value10.Color=color;if(lineWidth)_value10.LineWidth=lineWidth;this.OutVarTable.push(_value10);}else if(lineStick&&_varName4)//LINESTICK 同时画出柱状线和指标线
11478
- {var _outVar11=this.VarTable.get(_varName4);var _value11={Name:_varName4,Data:_outVar11,Type:4};if(color)_value11.Color=color;if(lineWidth)_value11.LineWidth=lineWidth;this.OutVarTable.push(_value11);}else if(stick&&_varName4)//STICK 画柱状线
11479
- {var _outVar12=this.VarTable.get(_varName4);var _value12={Name:_varName4,Data:_outVar12,Type:5};if(color)_value12.Color=color;if(lineWidth)_value12.LineWidth=lineWidth;this.OutVarTable.push(_value12);}else if(volStick&&_varName4)//VOLSTICK 画彩色柱状线
11480
- {var _outVar13=this.VarTable.get(_varName4);var _value13={Name:_varName4,Data:_outVar13,Type:6};if(color)_value13.Color=color;if(upColor)_value13.UpColor=upColor;if(downColor)_value13.DownColor=downColor;if(lineWidth)_value13.LineWidth=lineWidth;this.OutVarTable.push(_value13);}else if(lineArea&&_varName4)//LINEAREA 面积
11481
- {var _outVar14=this.VarTable.get(_varName4);var _value14={Name:_varName4,Data:_outVar14,Type:9};if(color)_value14.Color=color;if(upColor)_value14.UpColor=upColor;if(downColor)_value14.DownColor=downColor;if(lineWidth)_value14.LineWidth=lineWidth;this.OutVarTable.push(_value14);}else if(colorStick&&_varName4)//CYW: SUM(VAR4,10)/10000, COLORSTICK; 画上下柱子
11482
- {var _outVar15=this.VarTable.get(_varName4);var _value15={Name:_varName4,Data:_outVar15,Color:color,Type:2};if(lineWidth)_value15.LineWidth=lineWidth;if(color)_value15.Color=color;if(upColor)_value15.UpColor=upColor;if(downColor)_value15.DownColor=downColor;this.OutVarTable.push(_value15);}else if(_varName4&&color&&!_draw3){var _outVar16=this.VarTable.get(_varName4);if(!Array.isArray(_outVar16))_outVar16=this.SingleDataToArrayData(_outVar16);var _value16={Name:_varName4,Data:_outVar16,Color:color,Type:0};if(lineWidth)_value16.LineWidth=lineWidth;if(isShow==false)_value16.IsShow=false;if(isExData==true)_value16.IsExData=true;if(isDotLine==true)_value16.IsDotLine=true;if(isOverlayLine==true)_value16.IsOverlayLine=true;if(isNoneName==true)_value16.NoneName=true;if(isShowTitle==false)_value16.IsShowTitle=false;if(stepLine==true)_value16.Type=7;this.OutVarTable.push(_value16);}else if(_draw3)//画图函数
11483
- {var outVar={Name:_draw3.Name,Draw:_draw3,Type:1};if(color)outVar.Color=color;if(isDotLine==true)outVar.IsDotLine=true;if(lineWidth)outVar.LineWidth=lineWidth;if(isDrawAbove)outVar.IsDrawAbove=true;if(isDrawCenter)outVar.IsDrawCenter=true;if(isDrawBelow)outVar.IsDrawBelow=true;if(drawAlign>=0)outVar.DrawAlign=drawAlign;if(drawVAlign>=0)outVar.DrawVAlign=drawVAlign;if(fontSize>0)outVar.DrawFontSize=fontSize;if(bgConfig)outVar.Background=bgConfig;if(vLineConfig)outVar.VerticalLine=vLineConfig;if(IFrameSplitOperator.IsNumber(xOffset))outVar.XOffset=xOffset;if(IFrameSplitOperator.IsNumber(yOffset))outVar.YOffset=yOffset;if(IFrameSplitOperator.IsBool(isFirstDraw))outVar.IsFirstDraw=isFirstDraw;this.OutVarTable.push(outVar);}else if(_varName4){var _outVar17=this.VarTable.get(_varName4);var _value17={Name:_varName4,Data:_outVar17,Type:0};if(color)_value17.Color=color;if(lineWidth)_value17.LineWidth=lineWidth;if(isShow==false)_value17.IsShow=false;if(isExData==true)_value17.IsExData=true;if(isDotLine==true)_value17.IsDotLine=true;if(isOverlayLine==true)_value17.IsOverlayLine=true;if(isShowTitle==false)_value17.IsShowTitle=false;if(stepLine==true)_value17.Type=7;this.OutVarTable.push(_value17);}}}};this.GetOutIconData=function(cond,iconDraw){if(Array.isArray(cond)){for(var i=0;i<cond.length&&i<iconDraw.DrawData.length;++i){var item=cond[i];if(item<=0)iconDraw.DrawData[i]=null;}return iconDraw;}if(cond)return iconDraw;return null;};this.GetSoundEvent=function(){if(!this.GetEventCallback)return null;return this.GetEventCallback(JSCHART_EVENT_ID.ON_PLAY_SOUND);};this.Run=function(){try{var data=this.RunAST();//执行脚本
11474
+ }}else if(itemExpression.Type==Syntax.CallExpression){if(_j14==0){if(this.Draw.IsDrawFunction(itemExpression.Callee.Name)){_draw3=itemExpression.Draw;_draw3.Name=itemExpression.Callee.Name;}else{var _varValue2=itemExpression.Out;_varName4='__temp_sc_'+itemExpression.Callee.Name+'_'+i+'__';isNoneName=true;this.VarTable.set(_varName4,_varValue2);}}else{if(itemExpression.Callee.Name=="RGB"||itemExpression.Callee.Name=="RGBA"){color=itemExpression.Out;}else if(itemExpression.Callee.Name=="UPCOLOR"){upColor=itemExpression.Out;}else if(itemExpression.Callee.Name=="DOWNCOLOR"){downColor=itemExpression.Out;}else if(itemExpression.Callee.Name=="XMOVE"){xOffset=itemExpression.Out;}else if(itemExpression.Callee.Name=="YMOVE"){yOffset=itemExpression.Out;}else if(itemExpression.Callee.Name=="FIRSTDRAW"){if(itemExpression.Out===0)isFirstDraw=false;else if(itemExpression.Out===1)isFirstDraw=true;}else if(itemExpression.Callee.Name=="SOUND"){var event=this.GetSoundEvent();if(event){}_varName4=null;}else if(itemExpression.Callee.Name=="ICON"){var drawCond=this.VarTable.get(_varName4);if(drawCond){_draw3=this.GetOutIconData(drawCond,itemExpression.Draw);if(_draw3)_draw3.Name=itemExpression.Callee.Name;}_varName4=null;}else if(itemExpression.Callee.Name=="BACKGROUND"){bgConfig=itemExpression.Draw;_varName4=null;}else if(itemExpression.Callee.Name=="CKLINE"){vLineConfig=itemExpression.Draw;_varName4=null;}}}else if(itemExpression.Type==Syntax.BinaryExpression){if(_j14==0){_varName4="__temp_sb_"+i+"__";var _aryValue=itemExpression.Out;isNoneName=true;this.VarTable.set(_varName4,_aryValue);}}else if(itemExpression.Type==Syntax.UnaryExpression){if(_j14==0){_varName4="__temp_sb_"+i+"__";var argument=itemExpression.Argument;var _aryValue2=null;if(argument.Type==Syntax.Literal){_aryValue2=argument.Value;if(!Array.isArray(_aryValue2))_aryValue2=this.SingleDataToArrayData(_aryValue2);}else if(argument.Type==Syntax.Identifier){var _varName5=argument.Name;_aryValue2=this.ReadVariable(_varName5,item.Expression);if(!Array.isArray(_aryValue2))_aryValue2=this.SingleDataToArrayData(_aryValue2);}else if(argument.Type==Syntax.BinaryExpression){_aryValue2=argument.Out;if(!Array.isArray(_aryValue2))_aryValue2=this.SingleDataToArrayData(_aryValue2);}if(itemExpression.Operator=='-'){if(_aryValue2)_aryValue2=this.Algorithm.Subtract(0,_aryValue2);}isNoneName=true;this.VarTable.set(_varName4,_aryValue2);}}}if(pointDot&&_varName4)//圆点
11475
+ {var _outVar8=this.VarTable.get(_varName4);if(!Array.isArray(_outVar8))_outVar8=this.SingleDataToArrayData(_outVar8);var _value4={Name:_varName4,Data:_outVar8,Radius:g_JSChartResource.POINTDOT.Radius,Type:3};if(color)_value4.Color=color;if(lineWidth)_value4.LineWidth=lineWidth;this.OutVarTable.push(_value4);}else if(circleDot&&_varName4)//圆点
11476
+ {var _outVar9=this.VarTable.get(_varName4);if(!Array.isArray(_outVar9))_outVar9=this.SingleDataToArrayData(_outVar9);var _value5={Name:_varName4,Data:_outVar9,Radius:g_JSChartResource.CIRCLEDOT.Radius,Type:3};if(color)_value5.Color=color;if(lineWidth)_value5.LineWidth=lineWidth;this.OutVarTable.push(_value5);}else if(upDownDot&&_varName4)//彩色点
11477
+ {var _outVar10=this.VarTable.get(_varName4);if(!Array.isArray(_outVar10))_outVar10=this.SingleDataToArrayData(_outVar10);var _value6={Name:_varName4,Data:_outVar10,Radius:g_JSChartResource.CIRCLEDOT.Radius,Type:3,UpDownDot:true};if(color)_value6.Color=color;if(lineWidth)_value6.LineWidth=lineWidth;this.OutVarTable.push(_value6);}else if(lineStick&&_varName4)//LINESTICK 同时画出柱状线和指标线
11478
+ {var _outVar11=this.VarTable.get(_varName4);var _value7={Name:_varName4,Data:_outVar11,Type:4};if(color)_value7.Color=color;if(lineWidth)_value7.LineWidth=lineWidth;this.OutVarTable.push(_value7);}else if(stick&&_varName4)//STICK 画柱状线
11479
+ {var _outVar12=this.VarTable.get(_varName4);var _value8={Name:_varName4,Data:_outVar12,Type:5};if(color)_value8.Color=color;if(lineWidth)_value8.LineWidth=lineWidth;this.OutVarTable.push(_value8);}else if(volStick&&_varName4)//VOLSTICK 画彩色柱状线
11480
+ {var _outVar13=this.VarTable.get(_varName4);var _value9={Name:_varName4,Data:_outVar13,Type:6};if(color)_value9.Color=color;if(upColor)_value9.UpColor=upColor;if(downColor)_value9.DownColor=downColor;if(lineWidth)_value9.LineWidth=lineWidth;this.OutVarTable.push(_value9);}else if(lineArea&&_varName4)//LINEAREA 面积
11481
+ {var _outVar14=this.VarTable.get(_varName4);var _value10={Name:_varName4,Data:_outVar14,Type:9};if(color)_value10.Color=color;if(upColor)_value10.UpColor=upColor;if(downColor)_value10.DownColor=downColor;if(lineWidth)_value10.LineWidth=lineWidth;this.OutVarTable.push(_value10);}else if(colorStick&&_varName4)//CYW: SUM(VAR4,10)/10000, COLORSTICK; 画上下柱子
11482
+ {var _outVar15=this.VarTable.get(_varName4);var _value11={Name:_varName4,Data:_outVar15,Color:color,Type:2};if(lineWidth)_value11.LineWidth=lineWidth;if(color)_value11.Color=color;if(upColor)_value11.UpColor=upColor;if(downColor)_value11.DownColor=downColor;this.OutVarTable.push(_value11);}else if(_varName4&&color&&!_draw3){var _outVar16=this.VarTable.get(_varName4);if(!Array.isArray(_outVar16))_outVar16=this.SingleDataToArrayData(_outVar16);var _value12={Name:_varName4,Data:_outVar16,Color:color,Type:0};if(lineWidth)_value12.LineWidth=lineWidth;if(isShow==false)_value12.IsShow=false;if(isExData==true)_value12.IsExData=true;if(isDotLine==true)_value12.IsDotLine=true;if(isOverlayLine==true)_value12.IsOverlayLine=true;if(isNoneName==true)_value12.NoneName=true;if(isShowTitle==false)_value12.IsShowTitle=false;if(stepLine==true)_value12.Type=7;this.OutVarTable.push(_value12);}else if(_draw3)//画图函数
11483
+ {var outVar={Name:_draw3.Name,Draw:_draw3,Type:1};if(color)outVar.Color=color;if(isDotLine==true)outVar.IsDotLine=true;if(lineWidth)outVar.LineWidth=lineWidth;if(isDrawAbove)outVar.IsDrawAbove=true;if(isDrawCenter)outVar.IsDrawCenter=true;if(isDrawBelow)outVar.IsDrawBelow=true;if(drawAlign>=0)outVar.DrawAlign=drawAlign;if(drawVAlign>=0)outVar.DrawVAlign=drawVAlign;if(fontSize>0)outVar.DrawFontSize=fontSize;if(bgConfig)outVar.Background=bgConfig;if(vLineConfig)outVar.VerticalLine=vLineConfig;if(IFrameSplitOperator.IsNumber(xOffset))outVar.XOffset=xOffset;if(IFrameSplitOperator.IsNumber(yOffset))outVar.YOffset=yOffset;if(IFrameSplitOperator.IsBool(isFirstDraw))outVar.IsFirstDraw=isFirstDraw;this.OutVarTable.push(outVar);}else if(_varName4){var _outVar17=this.VarTable.get(_varName4);var _value13={Name:_varName4,Data:_outVar17,Type:0};if(color)_value13.Color=color;if(lineWidth)_value13.LineWidth=lineWidth;if(isShow==false)_value13.IsShow=false;if(isExData==true)_value13.IsExData=true;if(isDotLine==true)_value13.IsDotLine=true;if(isOverlayLine==true)_value13.IsOverlayLine=true;if(isShowTitle==false)_value13.IsShowTitle=false;if(stepLine==true)_value13.Type=7;this.OutVarTable.push(_value13);}}}};this.GetOutIconData=function(cond,iconDraw){if(Array.isArray(cond)){for(var i=0;i<cond.length&&i<iconDraw.DrawData.length;++i){var item=cond[i];if(item<=0)iconDraw.DrawData[i]=null;}return iconDraw;}if(cond)return iconDraw;return null;};this.GetSoundEvent=function(){if(!this.GetEventCallback)return null;return this.GetEventCallback(JSCHART_EVENT_ID.ON_PLAY_SOUND);};this.Run=function(){try{var data=this.RunAST();//执行脚本
11484
11484
  JSConsole.Complier.Log('[JSComplier.Run] execute finish',data);if(this.IndexCtrl)this.IndexCtrl.Status=0;if(this.UpdateUICallback){JSConsole.Complier.Log('[JSComplier.Run] invoke UpdateUICallback.');if(this.CallbackParam&&this.CallbackParam.Job&&this.CallbackParam.Job.ID==JS_EXECUTE_JOB_ID.JOB_EXECUTE_INDEX){this.UpdateUICallback(data,this.CallbackParam,this.SymbolData);}else{if(this.CallbackParam&&this.CallbackParam.Self&&this.CallbackParam.Self.ClassName==='ScriptIndexConsole')this.CallbackParam.JSExecute=this;if(this.IsUsePageData==true)this.CallbackParam.Self.IsUsePageData=true;this.UpdateUICallback(data,this.CallbackParam);}}}catch(error){JSConsole.Complier.Log(error);if(error.Job){JSConsole.Complier.Log('[JSComplier.Run] download job and reexectue',error.Job);this.JobList.push(error.Job);this.JobList.push({ID:JS_EXECUTE_JOB_ID.JOB_RUN_SCRIPT});this.Execute();}else if(this.ErrorCallback){if(this.IndexCtrl)this.IndexCtrl.Status=0;this.ErrorCallback(error,this.CallbackParam);}}};this.DebugRun_End=function(){var data=this.OutVarTable;JSConsole.Complier.Log('[JSComplier.DebugRun_End] execute finish',data);if(this.IndexCtrl)this.IndexCtrl.Status=0;if(this.UpdateUICallback){JSConsole.Complier.Log('[JSComplier.DebugRun_End] invoke UpdateUICallback.');if(this.CallbackParam&&this.CallbackParam.Job&&this.CallbackParam.Job.ID==JS_EXECUTE_JOB_ID.JOB_EXECUTE_INDEX){this.UpdateUICallback(data,this.CallbackParam,this.SymbolData);}else{if(this.CallbackParam&&this.CallbackParam.Self&&this.CallbackParam.Self.ClassName==='ScriptIndexConsole')this.CallbackParam.JSExecute=this;if(this.IsUsePageData==true)this.CallbackParam.Self.IsUsePageData=true;this.UpdateUICallback(data,this.CallbackParam);}}};this.DebugRun_Next=function(debugCtrl){var _this44=this;if(debugCtrl.ExeLine<debugCtrl.LineCount){var item=this.AST.Body[debugCtrl.ExeLine];this.RunASTNode(item);++debugCtrl.ExeLine;this.DebugFilter(debugCtrl,function(){_this44.DebugRun_Next(debugCtrl);});}else{this.DebugRun_End();debugCtrl.Status=2;this.DebugFilter(debugCtrl,null);}};//debug模式
11485
- this.DebugRun=function(){var _this45=this;try{if(!this.AST)this.ThrowError();if(!this.AST.Body)this.ThrowError();var debugCtrl={LineCount:this.AST.Body.length,ExeLine:0,Self:this,Status:1};this.DebugFilter(debugCtrl,function(){_this45.DebugRun_Next(debugCtrl);});}catch(error){if(this.ErrorCallback){if(this.IndexCtrl)this.IndexCtrl.Status=0;this.ErrorCallback(error,this.CallbackParam);}}};this.VisitNode=function(node){switch(node.Type){case Syntax.SequenceExpression:this.VisitSequenceExpression(node);break;case Syntax.ExpressionStatement:this.VisitNode(node.Expression);break;case Syntax.AssignmentExpression:this.VisitAssignmentExpression(node);break;case Syntax.BinaryExpression:case Syntax.LogicalExpression:this.VisitBinaryExpression(node);break;case Syntax.CallExpression:this.VisitCallExpression(node);break;case Syntax.UnaryExpression:this.VisitUnaryExpression(node);break;}};this.VisitUnaryExpression=function(node){if(node.Operator=='-'){var tempValue=this.GetNodeValueEx(node.Argument);value=this.Algorithm.Subtract(0,tempValue);}else{value=node.Argument.Value;}return value;};this.VisitSequenceExpression=function(node){for(var _i145 in node.Expression){var _item26=node.Expression[_i145];this.VisitNode(_item26);}};//函数调用
11485
+ this.DebugRun=function(){var _this45=this;try{if(!this.AST)this.ThrowError();if(!this.AST.Body)this.ThrowError();var debugCtrl={LineCount:this.AST.Body.length,ExeLine:0,Self:this,Status:1};this.DebugFilter(debugCtrl,function(){_this45.DebugRun_Next(debugCtrl);});}catch(error){if(this.ErrorCallback){if(this.IndexCtrl)this.IndexCtrl.Status=0;this.ErrorCallback(error,this.CallbackParam);}}};this.VisitNode=function(node){switch(node.Type){case Syntax.SequenceExpression:this.VisitSequenceExpression(node);break;case Syntax.ExpressionStatement:this.VisitNode(node.Expression);break;case Syntax.AssignmentExpression:this.VisitAssignmentExpression(node);break;case Syntax.BinaryExpression:case Syntax.LogicalExpression:this.VisitBinaryExpression(node);break;case Syntax.CallExpression:this.VisitCallExpression(node);break;case Syntax.UnaryExpression:this.VisitUnaryExpression(node);break;}};this.VisitUnaryExpression=function(node){if(node.Operator=='-'){var tempValue=this.GetNodeValueEx(node.Argument);var value=this.Algorithm.Subtract(0,tempValue);}else{var value=node.Argument.Value;}return value;};this.VisitSequenceExpression=function(node){for(var _i145 in node.Expression){var _item26=node.Expression[_i145];this.VisitNode(_item26);}};//函数调用
11486
11486
  this.VisitCallExpression=function(node){var funcName=node.Callee.Name;var args=[];for(var i=0;i<node.Arguments.length;++i){var item=node.Arguments[i];var value;if(funcName==="IFC"&&i>=1)break;//IFC先处理第1个条件参数
11487
11487
  if(item.Type==Syntax.BinaryExpression||item.Type==Syntax.LogicalExpression)value=this.VisitBinaryExpression(item);else if(item.Type==Syntax.CallExpression)value=this.VisitCallExpression(item);else value=this.GetNodeValue(item);args.push(value);}if(funcName==="IFC"){//IFC(X,A,B)若X不为0则执行A,否则执行B.IFC与IF函数的区别:根据X的值来选择性执行A、B表达式.
11488
11488
  var bResult=this.Algorithm.IFC(args[0]);var item=bResult?node.Arguments[1]:node.Arguments[2];var value;if(item.Type==Syntax.BinaryExpression||item.Type==Syntax.LogicalExpression)value=this.VisitBinaryExpression(item);else if(item.Type==Syntax.CallExpression)value=this.VisitCallExpression(item);else value=this.GetNodeValue(item);node.Out=value;if(item.Draw)node.Draw=item.Draw;return node.Out;}//JSConsole.Complier.Log('[JSExecute::VisitCallExpression]' , funcName, '(', args.toString() ,')');
@@ -11491,11 +11491,11 @@ node.Out=this.SymbolData.GetLatestCacheData(args[0]);break;case'STICKLINE':node.
11491
11491
  case"BUY":node.Draw=this.Draw.BUY(args[0],args[1],args[2],args[3]);node.Out=node.Draw.DrawData.Data;break;case"SELL":node.Draw=this.Draw.SELL(args[0],args[1],args[2],args[3]);node.Out=node.Draw.DrawData.Data;break;case"SELLSHORT":node.Draw=this.Draw.SELLSHORT(args[0],args[1],args[2],args[3]);node.Out=node.Draw.DrawData.Data;break;case"BUYSHORT":node.Draw=this.Draw.BUYSHORT(args[0],args[1],args[2],args[3]);node.Out=node.Draw.DrawData.Data;break;default:node.Out=this.Algorithm.CallFunction(funcName,args,node,this.SymbolData);break;}return node.Out;};//赋值
11492
11492
  this.VisitAssignmentExpression=function(node){var left=node.Left;if(left.Type!=Syntax.Identifier)this.ThrowUnexpectedNode(node);var varName=left.Name;var right=node.Right;var value=null,drawValue=null;if(right.Type==Syntax.BinaryExpression||right.Type==Syntax.LogicalExpression)value=this.VisitBinaryExpression(right);else if(right.Type==Syntax.CallExpression){value=this.VisitCallExpression(right);if(right.Draw)drawValue=right.Draw;}else if(right.Type==Syntax.Literal){value=right.Value;if(IFrameSplitOperator.IsString(value)&&right.Value.indexOf("$")>0)value=this.SymbolData.GetOtherSymolCacheData({Literal:value});}else if(right.Type==Syntax.Identifier)//右值是变量
11493
11493
  value=this.ReadVariable(right.Name,right);else if(right.Type==Syntax.MemberExpression)value=this.ReadMemberVariable(right);else if(right.Type==Syntax.UnaryExpression)value=this.VisitUnaryExpression(right);if(JS_EXECUTE_DEBUG_LOG)JSConsole.Complier.Log('[JSExecute::VisitAssignmentExpression]',varName,' = ',value);if(drawValue)this.VarDrawTable.set(varName,drawValue);this.VarTable.set(varName,value);};//逻辑运算
11494
- this.VisitBinaryExpression=function(node){var stack=[];stack.push(node);var temp=null;while(stack.length!=0){temp=stack[stack.length-1];if(temp.Left&&node!=temp.Left&&node!=temp.Right){stack.push(temp.Left);}else if(temp.Right&&node!=temp.Right){stack.push(temp.Right);}else{var _value18=stack.pop();if(_value18.Type==Syntax.BinaryExpression)//只遍历操作符就可以
11495
- {var leftValue=this.GetNodeValue(_value18.Left);var rightValue=this.GetNodeValue(_value18.Right);if(JS_EXECUTE_DEBUG_LOG)JSConsole.Complier.Log('[JSExecute::VisitBinaryExpression] BinaryExpression',_value18,leftValue,rightValue);_value18.Out=null;//保存中间值
11496
- switch(_value18.Operator){case'-':_value18.Out=this.Algorithm.Subtract(leftValue,rightValue);break;case'*':_value18.Out=this.Algorithm.Multiply(leftValue,rightValue);break;case'/':_value18.Out=this.Algorithm.Divide(leftValue,rightValue);break;case'+':_value18.Out=this.Algorithm.Add(leftValue,rightValue);break;case'>':_value18.Out=this.Algorithm.GT(leftValue,rightValue);break;case'>=':_value18.Out=this.Algorithm.GTE(leftValue,rightValue);break;case'<':_value18.Out=this.Algorithm.LT(leftValue,rightValue);break;case'<=':_value18.Out=this.Algorithm.LTE(leftValue,rightValue);break;case'==':case'='://= 比较
11497
- _value18.Out=this.Algorithm.EQ(leftValue,rightValue);break;case'!=':case'<>':_value18.Out=this.Algorithm.NEQ(leftValue,rightValue);break;}if(JS_EXECUTE_DEBUG_LOG)JSConsole.Complier.Log('[JSExecute::VisitBinaryExpression] BinaryExpression',_value18);}else if(_value18.Type==Syntax.LogicalExpression){var _leftValue=this.GetNodeValue(_value18.Left);var _rightValue=this.GetNodeValue(_value18.Right);if(JS_EXECUTE_DEBUG_LOG)JSConsole.Complier.Log('[JSExecute::VisitBinaryExpression] LogicalExpression',_value18,_leftValue,_rightValue);_value18.Out=null;//保存中间值
11498
- switch(_value18.Operator){case'&&':case'AND':_value18.Out=this.Algorithm.And(_leftValue,_rightValue);break;case'||':case'OR':_value18.Out=this.Algorithm.Or(_leftValue,_rightValue);break;}if(JS_EXECUTE_DEBUG_LOG)JSConsole.Complier.Log('[JSExecute::VisitBinaryExpression] LogicalExpression',_value18);}node=temp;}}return node.Out;};//获取节点值,BinaryExpression,LogicalExpression会重新计算
11494
+ this.VisitBinaryExpression=function(node){var stack=[];stack.push(node);var temp=null;while(stack.length!=0){temp=stack[stack.length-1];if(temp.Left&&node!=temp.Left&&node!=temp.Right){stack.push(temp.Left);}else if(temp.Right&&node!=temp.Right){stack.push(temp.Right);}else{var value=stack.pop();if(value.Type==Syntax.BinaryExpression)//只遍历操作符就可以
11495
+ {var leftValue=this.GetNodeValue(value.Left);var rightValue=this.GetNodeValue(value.Right);if(JS_EXECUTE_DEBUG_LOG)JSConsole.Complier.Log('[JSExecute::VisitBinaryExpression] BinaryExpression',value,leftValue,rightValue);value.Out=null;//保存中间值
11496
+ switch(value.Operator){case'-':value.Out=this.Algorithm.Subtract(leftValue,rightValue);break;case'*':value.Out=this.Algorithm.Multiply(leftValue,rightValue);break;case'/':value.Out=this.Algorithm.Divide(leftValue,rightValue);break;case'+':value.Out=this.Algorithm.Add(leftValue,rightValue);break;case'>':value.Out=this.Algorithm.GT(leftValue,rightValue);break;case'>=':value.Out=this.Algorithm.GTE(leftValue,rightValue);break;case'<':value.Out=this.Algorithm.LT(leftValue,rightValue);break;case'<=':value.Out=this.Algorithm.LTE(leftValue,rightValue);break;case'==':case'='://= 比较
11497
+ value.Out=this.Algorithm.EQ(leftValue,rightValue);break;case'!=':case'<>':value.Out=this.Algorithm.NEQ(leftValue,rightValue);break;}if(JS_EXECUTE_DEBUG_LOG)JSConsole.Complier.Log('[JSExecute::VisitBinaryExpression] BinaryExpression',value);}else if(value.Type==Syntax.LogicalExpression){var _leftValue=this.GetNodeValue(value.Left);var _rightValue=this.GetNodeValue(value.Right);if(JS_EXECUTE_DEBUG_LOG)JSConsole.Complier.Log('[JSExecute::VisitBinaryExpression] LogicalExpression',value,_leftValue,_rightValue);value.Out=null;//保存中间值
11498
+ switch(value.Operator){case'&&':case'AND':value.Out=this.Algorithm.And(_leftValue,_rightValue);break;case'||':case'OR':value.Out=this.Algorithm.Or(_leftValue,_rightValue);break;}if(JS_EXECUTE_DEBUG_LOG)JSConsole.Complier.Log('[JSExecute::VisitBinaryExpression] LogicalExpression',value);}node=temp;}}return node.Out;};//获取节点值,BinaryExpression,LogicalExpression会重新计算
11499
11499
  this.GetNodeValueEx=function(item){var value=null;if(item.Type==Syntax.BinaryExpression||item.Type==Syntax.LogicalExpression)value=this.VisitBinaryExpression(item);else if(item.Type==Syntax.CallExpression)value=this.VisitCallExpression(item);else value=this.GetNodeValue(item);return value;};this.GetNodeValue=function(node){switch(node.Type){case Syntax.Literal://数字
11500
11500
  return node.Value;case Syntax.UnaryExpression:var value=this.VisitUnaryExpression(node);return value;case Syntax.Identifier:var value=this.ReadVariable(node.Name,node);return value;case Syntax.BinaryExpression:case Syntax.LogicalExpression:return node.Out;case Syntax.CallExpression:return this.VisitCallExpression(node);case Syntax.MemberExpression:return this.ReadMemberVariable(node);default:this.ThrowUnexpectedNode(node);}};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);};this.ThrowDownloadSF=function(node,job,message){var marker=node.Marker;var msg=message;return this.ErrorHandler.ThrowDownloadJob(marker.Index,marker.Line,marker.Column,msg,job);};this.ThrowError=function(){};}//脚本说明
11501
11501
  function JSExplainer(ast,option){this.AST=ast;this.ErrorHandler=new ErrorHandler();this.ErrorCallback;//执行错误回调
@@ -11524,23 +11524,24 @@ JSConsole.Complier.Log('[JSExplainer.Run] explain finish',data);if(this.UpdateUI
11524
11524
  if(_item28.Type==Syntax.ExpressionStatement&&_item28.Expression){if(_item28.Expression.Type==Syntax.AssignmentExpression){if(_item28.Expression.Operator==':'&&_item28.Expression.Left){var assignmentItem=_item28.Expression;var _varName6=assignmentItem.Left.Name;var _outVar18='\u8F93\u51FA'+_varName6+': '+this.VarTable.get(_varName6);this.OutVarTable.push({Name:_varName6,Data:_outVar18,Type:0});}else if(_item28.Expression.Operator==':='&&_item28.Expression.Left){var _assignmentItem=_item28.Expression;var _varName7=_assignmentItem.Left.Name;var _outVar19='\u8D4B\u503C'+_varName7+': '+this.VarTable.get(_varName7);this.OutVarTable.push({Name:_varName7,Data:_outVar19,Type:0,IsOut:false});}}else if(_item28.Expression.Type==Syntax.CallExpression){var callItem=_item28.Expression;if(this.IsDrawFunction(callItem.Callee.Name)){var _outVar20=callItem.Out;var drawName=callItem.Callee.Name;this.OutVarTable.push({Name:drawName,Draw:'\u8F93\u51FA: '+_outVar20,Type:1});}else{var _outVar21=callItem.Out;varName='__temp_c_'+callItem.Callee.Name+'_'+_i147+'__';this.OutVarTable.push({Name:varName,Data:'\u8F93\u51FA: '+_outVar21,Type:0,NoneName:true});}}else if(_item28.Expression.Type==Syntax.Identifier){var _varName8=_item28.Expression.Name;var _outVar22=this.ReadVariable(_varName8,_item28.Expression);_varName8="__temp_i_"+_i147+"__";this.OutVarTable.push({Name:_varName8,Data:'\u8F93\u51FA: '+_outVar22,Type:0,NoneName:true});}else if(_item28.Expression.Type==Syntax.Literal)//常量
11525
11525
  {var _outVar23=_item28.Expression.Value;if(IFrameSplitOperator.IsString(_outVar23)&&_outVar23.indexOf("$")>0)_outVar23=this.GetOtherSymbolExplain({Literal:_outVar23},_item28);varName="__temp_li_"+_i147+"__";var type=0;this.OutVarTable.push({Name:varName,Data:'\u8F93\u51FA: '+_outVar23,Type:0,NoneName:true});}else if(_item28.Expression.Type==Syntax.BinaryExpression)// CLOSE+OPEN;
11526
11526
  {var varName="__temp_b_"+_i147+"__";var _outVar24=_item28.Expression.Out;this.OutVarTable.push({Name:varName,Data:'\u8F93\u51FA: '+_outVar24,Type:0,NoneName:true});}else if(_item28.Expression.Type==Syntax.LogicalExpression)//逻辑语句 如 T1 AND T2
11527
- {var varName="__temp_l_"+_i147+"__";var _outVar25=_item28.Expression.Out;this.OutVarTable.push({Name:varName,Data:'\u8F93\u51FA: '+_outVar25,Type:0,NoneName:true});}else if(_item28.Expression.Type==Syntax.SequenceExpression){var _varName9=void 0;var _drawName=void 0;var draw=void 0;var color=void 0;var lineWidth=void 0;var colorStick=false;var pointDot=false;var circleDot=false;var lineStick=false;var stick=false;var volStick=false;var isShow=true;var isExData=false;var isDotLine=false;var isOverlayLine=false;//叠加线
11527
+ {var varName="__temp_l_"+_i147+"__";var _outVar25=_item28.Expression.Out;this.OutVarTable.push({Name:varName,Data:'\u8F93\u51FA: '+_outVar25,Type:0,NoneName:true});}else if(_item28.Expression.Type==Syntax.UnaryExpression)//一元运算 如-C, -7, -(C+10)
11528
+ {var varName="__temp_l_"+_i147+"__";var argument=_item28.Expression.Argument;var _outVar26=null;if(argument.Type==Syntax.Literal){_outVar26=argument.Value;}else if(argument.Type==Syntax.Identifier){var _varName9=argument.Name;_outVar26=this.ReadVariable(_varName9,_item28.Expression);}else if(argument.Type==Syntax.BinaryExpression){_outVar26=argument.Out;}if(_item28.Expression.Operator=='-'){_outVar26='-'+_outVar26;}this.OutVarTable.push({Name:varName,Data:'\u8F93\u51FA: '+_outVar26,Type:0,NoneName:true});}else if(_item28.Expression.Type==Syntax.SequenceExpression){var _varName10=void 0;var _drawName=void 0;var draw=void 0;var color=void 0;var lineWidth=void 0;var colorStick=false;var pointDot=false;var circleDot=false;var lineStick=false;var stick=false;var volStick=false;var isShow=true;var isExData=false;var isDotLine=false;var isOverlayLine=false;//叠加线
11528
11529
  var isNoneName=false;var fontSize=-1;var drawAlign=-1,drawVAlign=-1;//显示在位置之上,对于DRAWTEXT和DRAWNUMBER等函数有用,放在语句的最后面(不能与LINETHICK等函数共用),比如:
11529
11530
  //DRAWNUMBER(CLOSE>OPEN,HIGH,CLOSE),DRAWABOVE;
11530
- var isDrawAbove=false;for(var _j15 in _item28.Expression.Expression){var itemExpression=_item28.Expression.Expression[_j15];if(itemExpression.Type==Syntax.AssignmentExpression&&itemExpression.Operator==':'&&itemExpression.Left){_varName9=itemExpression.Left.Name;var varValue=this.VarTable.get(_varName9);this.VarTable.set(_varName9,varValue);//把常量放到变量表里
11531
- }else if(itemExpression.Type==Syntax.Identifier){var _value19=itemExpression.Name;if(_value19==='COLORSTICK')colorStick=true;else if(_value19==='POINTDOT')pointDot=true;else if(_value19==='CIRCLEDOT')circleDot=true;else if(_value19==='DOTLINE')isDotLine=true;else if(_value19==='LINESTICK')lineStick=true;else if(_value19==='STICK')stick=true;else if(_value19==='VOLSTICK')volStick=true;else if(_value19==="DRAWABOVE")isDrawAbove=true;else if(_value19.indexOf('COLOR')==0)color=_value19;else if(_value19.indexOf('LINETHICK')==0)lineWidth=_value19;else if(_value19=="ALIGN0")drawAlign=0;else if(_value19=="ALIGN1")drawAlign=1;else if(_value19=="ALIGN2")drawAlign=2;else if(_value19=="VALIGN0")drawVAlign=0;else if(_value19=="VALIGN1")drawVAlign=1;else if(_value19=="VALIGN2")drawVAlign=2;else if(_value19.indexOf('NODRAW')==0)isShow=false;else if(_value19.indexOf('EXDATA')==0)isExData=true;//扩展数据, 不显示再图形里面
11532
- else if(_value19.indexOf('LINEOVERLAY')==0)isOverlayLine=true;else if(_value19.indexOf("FONTSIZE")==0){var strFontSize=_value19.replace("FONTSIZE","");fontSize=parseInt(strFontSize);}else{_varName9=itemExpression.Name;var _varValue3=this.ReadVariable(_varName9,itemExpression);_varName9="__temp_si_"+_i147+"__";isNoneName=true;this.VarTable.set(_varName9,_varValue3);//放到变量表里
11531
+ var isDrawAbove=false;for(var _j15 in _item28.Expression.Expression){var itemExpression=_item28.Expression.Expression[_j15];if(itemExpression.Type==Syntax.AssignmentExpression&&itemExpression.Operator==':'&&itemExpression.Left){_varName10=itemExpression.Left.Name;var varValue=this.VarTable.get(_varName10);this.VarTable.set(_varName10,varValue);//把常量放到变量表里
11532
+ }else if(itemExpression.Type==Syntax.Identifier){var value=itemExpression.Name;if(value==='COLORSTICK')colorStick=true;else if(value==='POINTDOT')pointDot=true;else if(value==='CIRCLEDOT')circleDot=true;else if(value==='DOTLINE')isDotLine=true;else if(value==='LINESTICK')lineStick=true;else if(value==='STICK')stick=true;else if(value==='VOLSTICK')volStick=true;else if(value==="DRAWABOVE")isDrawAbove=true;else if(value.indexOf('COLOR')==0)color=value;else if(value.indexOf('LINETHICK')==0)lineWidth=value;else if(value=="ALIGN0")drawAlign=0;else if(value=="ALIGN1")drawAlign=1;else if(value=="ALIGN2")drawAlign=2;else if(value=="VALIGN0")drawVAlign=0;else if(value=="VALIGN1")drawVAlign=1;else if(value=="VALIGN2")drawVAlign=2;else if(value.indexOf('NODRAW')==0)isShow=false;else if(value.indexOf('EXDATA')==0)isExData=true;//扩展数据, 不显示再图形里面
11533
+ else if(value.indexOf('LINEOVERLAY')==0)isOverlayLine=true;else if(value.indexOf("FONTSIZE")==0){var strFontSize=value.replace("FONTSIZE","");fontSize=parseInt(strFontSize);}else{_varName10=itemExpression.Name;var _varValue3=this.ReadVariable(_varName10,itemExpression);_varName10="__temp_si_"+_i147+"__";isNoneName=true;this.VarTable.set(_varName10,_varValue3);//放到变量表里
11533
11534
  }}else if(itemExpression.Type==Syntax.Literal)//常量
11534
- {var aryValue=itemExpression.Value;_varName9=itemExpression.Value.toString();isNoneName=true;this.VarTable.set(_varName9,aryValue);//把常量放到变量表里
11535
- }else if(itemExpression.Type==Syntax.CallExpression){if(_j15==0){if(this.IsDrawFunction(itemExpression.Callee.Name)){draw=itemExpression.Out;_drawName=itemExpression.Callee.Name;}else{var _varValue4=itemExpression.Out;_varName9='__temp_sc_'+itemExpression.Callee.Name+'_'+_i147+'__';isNoneName=true;this.VarTable.set(_varName9,_varValue4);}}}else if(itemExpression.Type==Syntax.BinaryExpression){_varName9="__temp_sb_"+_i147+"__";var _aryValue3=itemExpression.Out;isNoneName=true;this.VarTable.set(_varName9,_aryValue3);}}var outValue;if(draw)outValue='\u8F93\u51FA: '+draw;else if(isNoneName)outValue='\u8F93\u51FA: '+this.VarTable.get(_varName9);else outValue='\u8F93\u51FA'+_varName9+': '+this.VarTable.get(_varName9);if(color)outValue+=',\u989C\u8272'+this.GetColorExplain(color);if(lineWidth)outValue+=',\u7EBF\u6BB5\u7C97\u7EC6'+this.GetLineWidthExplain(lineWidth);if(isShow==false)outValue+=",不显示";if(isDotLine==true)outValue+=",画虚线";if(isDrawAbove==true)outValue+=',显示在位置之上';if(pointDot&&_varName9)//圆点
11536
- {outValue+=",画小圆点线";var _value20={Name:_varName9,Draw:outValue,Radius:g_JSChartResource.POINTDOT.Radius,Type:3};this.OutVarTable.push(_value20);}else if(circleDot&&_varName9)//圆点
11537
- {outValue+=",画小圆圈线";var _value21={Name:_varName9,Draw:outValue,Radius:g_JSChartResource.CIRCLEDOT.Radius,Type:3};this.OutVarTable.push(_value21);}else if(lineStick&&_varName9)//LINESTICK 同时画出柱状线和指标线
11538
- {outValue+=",画出柱状线和指标线";var _value22={Name:_varName9,Draw:outValue,Type:4};this.OutVarTable.push(_value22);}else if(stick&&_varName9)//STICK 画柱状线
11539
- {outValue+=",画柱状线";var _value23={Name:_varName9,Draw:outValue,Type:5};this.OutVarTable.push(_value23);}else if(volStick&&_varName9)//VOLSTICK 画彩色柱状线
11540
- {outValue+=",画成交量柱状线";var _value24={Name:_varName9,Draw:outValue,Type:6};this.OutVarTable.push(_value24);}else if(_varName9&&color){var _value25={Name:_varName9,Data:outValue,Color:color,Type:0};this.OutVarTable.push(_value25);}else if(draw)//画图函数
11541
- {var outVar={Name:_drawName,Draw:outValue,Type:1};this.OutVarTable.push(outVar);}else if(colorStick&&_varName9)//CYW: SUM(VAR4,10)/10000, COLORSTICK; 画上下柱子
11542
- {outValue+=",画彩色柱状线";var _value26={Name:_varName9,Draw:outValue,Color:color,Type:2};this.OutVarTable.push(_value26);}else if(_varName9){var _value27={Name:_varName9,Data:outValue,Type:0};this.OutVarTable.push(_value27);}}}}JSConsole.Complier.Log('[JSExplainer::Run]',this.VarTable);return this.OutVarTable;};this.VisitNode=function(node){switch(node.Type){case Syntax.SequenceExpression:this.VisitSequenceExpression(node);break;case Syntax.ExpressionStatement:this.VisitNode(node.Expression);break;case Syntax.AssignmentExpression:this.VisitAssignmentExpression(node);break;case Syntax.BinaryExpression:case Syntax.LogicalExpression:this.VisitBinaryExpression(node);break;case Syntax.CallExpression:this.VisitCallExpression(node);break;case Syntax.UnaryExpression:this.VisitUnaryExpression(node);break;}};this.VisitSequenceExpression=function(node){for(var _i148 in node.Expression){var _item29=node.Expression[_i148];this.VisitNode(_item29);}};this.VisitUnaryExpression=function(node){if(node.Operator=='-'){var _value28=this.GetNodeValueEx(node.Argument);return'-'+_value28;}return node.Argument.Value;};//函数调用
11543
- this.VisitCallExpression=function(node){var funcName=node.Callee.Name;var args=[];for(var _i149 in node.Arguments){var _item30=node.Arguments[_i149];var _value29=void 0;if(_item30.Type==Syntax.BinaryExpression||_item30.Type==Syntax.LogicalExpression)_value29=this.VisitBinaryExpression(_item30);else if(_item30.Type==Syntax.CallExpression)_value29=this.VisitCallExpression(_item30);else _value29=this.GetNodeValue(_item30);args.push(_value29);}JSConsole.Complier.Log('[JSExplainer::VisitCallExpression]',funcName,'(',args.toString(),')');if(g_JSComplierResource.IsCustomFunction(funcName)){var data=this.Algorithm.CallCustomFunction(funcName,args,this.SymbolData,node);node.Out=[];node.Draw=null;if(data){if(data.Out)node.Out=data.Out;if(data.Draw)node.Draw=data.Draw;}return node.Out;}node.Out=this.CallFunctionExplain(funcName,args,node);return node.Out;};this.FUNCTION_INFO_LIST=new _map2.default([["REF",{Name:"REF",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u524D\u7684'+args[0];}}],["REFX",{Name:"REFX",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u540E\u7684'+args[0];}}],["REFV",{Name:"REFV",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u524D\u7684(\u672A\u4F5C\u5E73\u6ED1\u5904\u7406)'+args[0];}}],["REFXV",{Name:"REFXV",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u540E\u7684(\u672A\u4F5C\u5E73\u6ED1\u5904\u7406)'+args[0];}}],["REFDATE",{Name:"REFDATE",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5'+args[0];}}],["COUNT",{Name:"COUNT",Param:{Count:2},ToString:function ToString(args){return'\u7EDF\u8BA1'+args[1]+'\u65E5\u4E2D\u6EE1\u8DB3'+args[0]+'\u7684\u5929\u6570';}}],["BARSLASTCOUNT",{Name:"BARSLASTCOUNT",Param:{Count:1},ToString:function ToString(args){return'\u6761\u4EF6'+args[0]+'\u8FDE\u7EED\u6210\u7ACB\u6B21\u6570';}}],["BARSCOUNT",{Name:"BARSCOUNT",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u6709\u6548\u6570\u636E\u5468\u671F\u6570';}}],["BARSLAST",{Name:"BARSLAST",Param:{Count:1},ToString:function ToString(args){return'\u4E0A\u6B21'+args[0]+'\u4E0D\u4E3A0\u8DDD\u4ECA\u5929\u6570';}}],["BARSNEXT",{Name:"BARSNEXT",Param:{Count:1},ToString:function ToString(args){return'\u4E0B\u6B21'+args[0]+'\u4E0D\u4E3A0\u8DDD\u4ECA\u5929\u6570';}}],["BARSSINCEN",{Name:"BARSSINCEN",Param:{Count:2},ToString:function ToString(args){return'\u5728'+args[1]+'\u5468\u671F\u5185\u9996\u6B21'+args[0]+'\u8DDD\u4ECA\u5929\u6570';}}],["BARSSINCE",{Name:"BARSSINCE",Param:{Count:1},ToString:function ToString(args){return'\u9996\u6B21'+args[0]+'\u8DDD\u4ECA\u5929\u6570';}}],["HHV",{Name:"HHV",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u5185'+args[0]+'\u7684\u6700\u9AD8\u503C';}}],["LLV",{Name:"LLV",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u5185'+args[0]+'\u7684\u6700\u4F4E\u503C';}}],["ZTPRICE",{Name:"ZTPRICE",Param:{Count:2},ToString:function ToString(args){return'计算涨停价';}}],["DTPRICE",{Name:"DTPRICE",Param:{Count:2},ToString:function ToString(args){return'计算跌停价';}}],["BACKSET",{Name:"BACKSET",Param:{Count:2},ToString:function ToString(args){return'\u82E5'+args[0]+'\u5219\u5C06\u6700\u8FD1'+args[1]+'\u5468\u671F\u7F6E\u4E3A1';}}],["HOD",{Name:"HOD",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u5185'+args[0]+'\u7684\u9AD8\u503C\u540D\u6B21';}}],["LOD",{Name:"LOD",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u5185'+args[0]+'\u7684\u4F4E\u503C\u540D\u6B21';}}],["REVERSE",{Name:"REVERSE",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u76F8\u53CD\u6570';}}],["FILTER",{Name:"FILTER",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u8FC7\u6EE4';}}],["FILTERX",{Name:"FILTERX",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u53CD\u5411\u8FC7\u6EE4';}}],["TFILTER",{Name:"TFILTER",Param:{Count:3},ToString:function ToString(args){return'\u4FE1\u53F7\u8FC7\u6EE4(\u591A\u5934)';}}],["SUMBARS",{Name:"SUMBARS",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7D2F\u52A0\u81F3'+args[1]+'\u7684\u5929\u6570';}}],["MA",{Name:"MA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u7B80\u5355\u79FB\u52A8\u5E73\u5747';}}],["SMA",{Name:"SMA",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5['+args[2]+'\u65E5\u6743\u91CD]\u79FB\u52A8\u5E73\u5747';}}],["MEMA",{Name:"MEMA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u5E73\u6ED1\u79FB\u52A8\u5E73\u5747';}}],["EMA",{Name:"EMA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u6307\u6570\u79FB\u52A8\u5E73\u5747';}}],["EXPMA",{Name:"EXPMA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u6307\u6570\u79FB\u52A8\u5E73\u5747';}}],["EXPMEMA",{Name:"EXPMEMA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u6307\u6570\u5E73\u6ED1\u79FB\u52A8\u5E73\u5747';}}],["WMA",{Name:"WMA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u52A0\u6743\u79FB\u52A8\u5E73\u5747';}}],["DMA",{Name:"DMA",Param:{Count:2},ToString:function ToString(args){return'\u4EE5'+args[1]+'\u4E3A\u6743\u91CD'+args[0]+'\u7684\u52A8\u6001\u79FB\u52A8\u5E73\u5747';}}],["XMA",{Name:"XMA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u504F\u79FB\u79FB\u52A8\u5E73\u5747';}}],["RANGE",{Name:"RANGE",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u4F4D\u4E8E'+args[1]+'\u548C'+args[2]+'\u4E4B\u95F4';}}],["CONST",{Name:"CONST",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u6700\u540E\u4E00\u65E5\u503C';}}],["TOPRANGE",{Name:"TOPRANGE",Param:{Count:1},ToString:function ToString(args){return'\u5F53\u524D\u503C\u662F\u8FD1'+args[0]+'\u5468\u671F\u7684\u6700\u5927\u503C';}}],["LOWRANGE",{Name:"LOWRANGE",Param:{Count:1},ToString:function ToString(args){return'\u5F53\u524D\u503C\u662F\u8FD1'+args[0]+'\u5468\u671F\u7684\u6700\u5C0F\u503C';}}],["FINDHIGH",{Name:"FINDHIGH",Param:{Count:4},ToString:function ToString(args){return args[0]+'\u5728'+args[1]+'\u65E5\u524D\u7684'+args[2]+'\u5929\u5185\u7B2C'+args[3]+'\u4E2A\u6700\u9AD8\u4EF7';}}],["FINDHIGHBARS",{Name:"FINDHIGHBARS",Param:{Count:4},ToString:function ToString(args){return args[0]+'\u5728'+args[1]+'\u65E5\u524D\u7684'+args[2]+'\u5929\u5185\u7B2C'+args[3]+'\u4E2A\u6700\u9AD8\u4EF7\u5230\u5F53\u524D\u5468\u671F\u7684\u5468\u671F\u6570';}}],["FINDLOW",{Name:"FINDLOW",Param:{Count:4},ToString:function ToString(args){return args[0]+'\u5728'+args[1]+'\u65E5\u524D\u7684'+args[2]+'\u5929\u5185\u7B2C'+args[3]+'\u4E2A\u6700\u4F4E\u4EF7';}}],["FINDLOWBARS",{Name:"FINDLOWBARS",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u5728'+args[1]+'\u65E5\u524D\u7684'+args[2]+'\u5929\u5185\u7B2C'+args[3]+'\u4E2A\u6700\u4F4E\u4EF7\u5230\u5F53\u524D\u5468\u671F\u7684\u5468\u671F\u6570';}}],["SUM",{Name:"SUM",Param:{Count:2},ToString:function ToString(args){return''+args[0]+args[1]+'\u65E5\u7D2F\u52A0';}}],["MULAR",{Name:"MULAR",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u548C'+args[1]+'\u65E5\u7D2F\u4E58';}}],["AMA",{Name:"AMA",Param:{Count:2},ToString:function ToString(args){return'\u4EE5'+args[1]+'\u4E3A\u6743\u91CD'+args[0]+'\u7684\u81EA\u9002\u5E94\u5747\u7EBF';}}],["TMA",{Name:"TMA",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5['+args[2]+'\u65E5\u6743\u91CD]\u79FB\u52A8\u5E73\u5747';}}],["CROSS",{Name:"CROSS",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u4E0A\u7A7F'+args[1];}}],["LONGCROSS",{Name:"LONGCROSS",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u5C0F\u4E8E'+args[1]+'\u4FDD\u6301'+args[2]+'\u4E2A\u4EA4\u6613\u65E5\u540E\u4EA4\u53C9\u4E0A\u7A7F';}}],["UPNDAY",{Name:"UPNDAY",Param:{Count:2},ToString:function ToString(args){return'\u6700\u8FD1'+args[1]+'\u65E5'+args[0]+'\u8FDE\u6DA8';}}],["DOWNNDAY",{Name:"DOWNNDAY",Param:{Count:2},ToString:function ToString(args){return'\u6700\u8FD1'+args[1]+'\u65E5'+args[0]+'\u8FDE\u8DCC';}}],["NDAY",{Name:"NDAY",Param:{Count:3},ToString:function ToString(args){return'\u6700\u8FD1'+args[2]+'\u65E5'+args[0]+'\u4E00\u76F4\u5927\u4E8E'+args[1];}}],["EXIST",{Name:"EXIST",Param:{Count:2},ToString:function ToString(args){return'\u6700\u8FD1'+args[1]+'\u65E5\u5B58\u5728'+args[0];}}],["EXISTR",{Name:"EXISTR",Param:{Count:3},ToString:function ToString(args){return'\u4ECE\u524D'+args[1]+'\u65E5\u5230\u524D'+args[2]+'\u65E5\u5B58\u5728'+args[0];}}],["EVERY",{Name:"EVERY",Param:{Count:2},ToString:function ToString(args){return'\u6700\u8FD1'+args[1]+'\u65E5\u4E00\u76F4\u5B58\u5728'+args[0];}}],["LAST",{Name:"LAST",Param:{Count:3},ToString:function ToString(args){return'\u4ECE\u524D'+args[1]+'\u65E5\u5230\u524D'+args[2]+'\u65E5\u6301\u7EED'+args[0];}}],["NOT",{Name:"NOT",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u53D6\u53CD';}}],["IF",{Name:"IF",Param:{Count:3},ToString:function ToString(args){return'\u5982\u679C'+args[0]+',\u8FD4\u56DE'+args[1]+',\u5426\u5219\u8FD4\u56DE'+args[2];}}],["IFF",{Name:"IFF",Param:{Count:3},ToString:function ToString(args){return'\u5982\u679C'+args[0]+',\u8FD4\u56DE'+args[1]+',\u5426\u5219\u8FD4\u56DE'+args[2];}}],["IFN",{Name:"IFN",Param:{Count:3},ToString:function ToString(args){return'\u5982\u679C'+args[0]+',\u8FD4\u56DE'+args[1]+',\u5426\u5219\u8FD4\u56DE'+args[2];}}],["IFC",{Name:"IFC",Param:{Count:3},ToString:function ToString(args){return'\u5982\u679C'+args[0]+',\u8FD4\u56DE'+args[1]+',\u5426\u5219\u8FD4\u56DE'+args[2];}}],["TESTSKIP",{Name:"TESTSKIP",Param:{Count:1},ToString:function ToString(args){return'\u5982\u679C\u6EE1\u8DB3\u6761\u4EF6'+args[0]+',\u516C\u5F0F\u8FD4\u56DE';}}],["VALUEWHEN",{Name:"VALUEWHEN",Param:{Count:2},ToString:function ToString(args){return'\u5982\u679C'+args[0]+',\u8FD4\u56DE'+args[1]+',\u5426\u5219\u8FD4\u56DE\u4E0A\u4E2A\u8F93\u51FA\u503C ';}}],["MAX",{Name:"MAX",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u548C'+args[1]+'\u7684\u8F83\u5927\u503C';}}],["MIN",{Name:"MIN",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u548C'+args[1]+'\u7684\u8F83\u5C0F\u503C';}}],["ACOS",{Name:"ACOS",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u53CD\u4F59\u5F26';}}],["ASIN",{Name:"ASIN",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u53CD\u6B63\u5F26';}}],["ATAN",{Name:"ATAN",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u53CD\u6B63\u5207';}}],["COS",{Name:"COS",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u4F59\u5F26';}}],["SIN",{Name:"SIN",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u6B63\u5F26';}}],["TAN",{Name:"TAN",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u6B63\u5207';}}],["EXP",{Name:"EXP",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u6307\u6570';}}],["LN",{Name:"LN",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u81EA\u7136\u5BF9\u6570';}}],["LOG",{Name:"LOG",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u5BF9\u6570';}}],["SQRT",{Name:"SQRT",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u5F00\u65B9';}}],["ABS",{Name:"ABS",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u7EDD\u5BF9\u503C';}}],["POW",{Name:"POW",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u4E58\u5E42';}}],["CEILING",{Name:"CEILING",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u5411\u4E0A\u820D\u5165';}}],["FLOOR",{Name:"FLOOR",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u5411\u4E0A\u820D\u5165';}}],["INTPART",{Name:"INTPART",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u6574\u6570\u90E8\u5206';}}],["BETWEEN",{Name:"BETWEEN",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u4F4D\u4E8E'+args[1]+'\u548C'+args[2]+'\u4E4B\u95F4';}}],["FRACPART",{Name:"FRACPART",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u5C0F\u6570\u90E8\u5206';}}],["ROUND",{Name:"ROUND",Param:{Count:1},ToString:function ToString(args){return'\u5BF9'+args[0]+'(\u8FDB\u884C)\u56DB\u820D\u4E94\u5165';}}],["ROUND2",{Name:"ROUND2",Param:{Count:2},ToString:function ToString(args){return'\u5BF9'+args[0]+'(\u8FDB\u884C)\u56DB\u820D\u4E94\u5165';}}],["SIGN",{Name:"SIGN",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u7B26\u53F7';}}],["MOD",{Name:"MOD",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u5173\u4E8E'+args[1]+'\u7684\u6A21';}}],["RAND",{Name:"RAND",Param:{Count:1},ToString:function ToString(args){return'\u968F\u673A\u6B63\u6574\u6570';}}],["AVEDEV",{Name:"AVEDEV",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u5E73\u5747\u7EDD\u5BF9\u504F\u5DEE';}}],["DEVSQ",{Name:"DEVSQ",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u6570\u636E\u504F\u5DEE\u5E73\u65B9\u548C';}}],["FORCAST",{Name:"FORCAST",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u7EBF\u6027\u56DE\u5F52\u9884\u6D4B\u503C';}}],["TSMA",{Name:"TSMA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u5728'+args[1]+'\u4E2A\u5468\u671F\u5185\u7684\u65F6\u95F4\u5E8F\u5217\u4E09\u89D2\u79FB\u52A8\u5E73\u5747';}}],["SLOPE",{Name:"SLOPE",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u7EBF\u6027\u56DE\u5F52\u659C\u7387';}}],["STD",{Name:"STD",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u4F30\u7B97\u6807\u51C6\u5DEE';}}],["STDP",{Name:"STDP",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u603B\u4F53\u6807\u51C6\u5DEE';}}],["STDDEV",{Name:"STDDEV",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u6807\u51C6\u504F\u5DEE';}}],["VAR",{Name:"VAR",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u4F30\u7B97\u6837\u672C\u65B9\u5DEE';}}],["VARP",{Name:"VARP",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u603B\u4F53\u6837\u672C\u65B9\u5DEE';}}],["COVAR",{Name:"COVAR",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u548C'+args[1]+'\u7684'+args[2]+'\u5468\u671F\u7684\u534F\u65B9\u5DEE';}}],["RELATE",{Name:"RELATE",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u548C'+args[1]+'\u7684'+args[0]+'\u5468\u671F\u7684\u76F8\u5173\u7CFB\u6570';}}],["BETA",{Name:"BETA",Param:{Count:1},ToString:function ToString(args){return'\u03B2(Beta)\u7CFB\u6570';}}],["BETAEX",{Name:"BETAEX",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u548C'+args[1]+'\u7684'+args[2]+'\u5468\u671F\u7684\u76F8\u5173\u653E\u5927\u7CFB\u6570';}}],["COST",{Name:"COST",Param:{Count:1},ToString:function ToString(args){return'\u83B7\u5229\u76D8\u4E3A'+args[0]+'%\u7684\u6210\u672C\u5206\u5E03';}}],["WINNER",{Name:"WINNER",Param:{Count:1},ToString:function ToString(args){return'\u4EE5'+args[0]+'\u8BA1\u7B97\u7684\u83B7\u5229\u76D8\u6BD4\u4F8B';}}],["LWINNER",{Name:"LWINNER",Param:{Count:2},ToString:function ToString(args){return'\u6700\u8FD1'+args[0]+'\u65E5\u90A3\u90E8\u5206\u6210\u672C\u4EE5'+args[1]+'\u4EF7\u683C\u5356\u51FA\u7684\u83B7\u5229\u76D8\u6BD4\u4F8B';}}],["PWINNER",{Name:"PWINNER",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u65E5\u524D\u90A3\u90E8\u5206\u6210\u672C\u4EE5'+args[1]+'\u4EF7\u683C\u5356\u51FA\u7684\u83B7\u5229\u76D8\u6BD4\u4F8B';}}],["COSTEX",{Name:"COSTEX",Param:{Count:2},ToString:function ToString(args){return'\u4F4D\u4E8E\u4EF7\u683C'+args[0]+'\u548C'+args[1]+'\u95F4\u7684\u6210\u672C';}}],["PPART",{Name:"PPART",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u65E5\u524D\u90A3\u90E8\u5206\u6210\u672C\u5360\u603B\u6210\u672C\u7684\u6BD4\u4F8B';}}],["SAR",{Name:"SAR",Param:{Count:3},ToString:function ToString(args){return'\u6B65\u957F\u4E3A'+args[1]+'\u6781\u9650\u503C\u4E3A'+args[0]+'\u7684'+args[2]+'\u65E5\u629B\u7269\u8F6C\u5411';}}],["SARTURN",{Name:"SARTURN",Param:{Count:3},ToString:function ToString(args){return'\u6B65\u957F\u4E3A'+args[1]+'\u6781\u9650\u503C\u4E3A'+args[0]+'\u7684'+args[2]+'\u65E5\u629B\u7269\u8F6C\u5411\u70B9';}}],//字符串函数
11535
+ {var aryValue=itemExpression.Value;_varName10=itemExpression.Value.toString();isNoneName=true;this.VarTable.set(_varName10,aryValue);//把常量放到变量表里
11536
+ }else if(itemExpression.Type==Syntax.CallExpression){if(_j15==0){if(this.IsDrawFunction(itemExpression.Callee.Name)){draw=itemExpression.Out;_drawName=itemExpression.Callee.Name;}else{var _varValue4=itemExpression.Out;_varName10='__temp_sc_'+itemExpression.Callee.Name+'_'+_i147+'__';isNoneName=true;this.VarTable.set(_varName10,_varValue4);}}}else if(itemExpression.Type==Syntax.BinaryExpression){_varName10="__temp_sb_"+_i147+"__";var _aryValue3=itemExpression.Out;isNoneName=true;this.VarTable.set(_varName10,_aryValue3);}else if(itemExpression.Type==Syntax.UnaryExpression){_varName10="__temp_sb_"+_i147+"__";var argument=itemExpression.Argument;var _aryValue4=null;if(argument.Type==Syntax.Literal){_aryValue4=argument.Value;}else if(argument.Type==Syntax.Identifier){var _varName11=argument.Name;_aryValue4=this.ReadVariable(_varName11,_item28.Expression);}else if(argument.Type==Syntax.BinaryExpression){_aryValue4=argument.Out;}if(itemExpression.Operator=='-'){_aryValue4='-'+_aryValue4;}isNoneName=true;this.VarTable.set(_varName10,_aryValue4);}}var outValue;if(draw)outValue='\u8F93\u51FA: '+draw;else if(isNoneName)outValue='\u8F93\u51FA: '+this.VarTable.get(_varName10);else outValue='\u8F93\u51FA'+_varName10+': '+this.VarTable.get(_varName10);if(color)outValue+=',\u989C\u8272'+this.GetColorExplain(color);if(lineWidth)outValue+=',\u7EBF\u6BB5\u7C97\u7EC6'+this.GetLineWidthExplain(lineWidth);if(isShow==false)outValue+=",不显示";if(isDotLine==true)outValue+=",画虚线";if(isDrawAbove==true)outValue+=',显示在位置之上';if(pointDot&&_varName10)//圆点
11537
+ {outValue+=",画小圆点线";var _value14={Name:_varName10,Draw:outValue,Radius:g_JSChartResource.POINTDOT.Radius,Type:3};this.OutVarTable.push(_value14);}else if(circleDot&&_varName10)//圆点
11538
+ {outValue+=",画小圆圈线";var _value15={Name:_varName10,Draw:outValue,Radius:g_JSChartResource.CIRCLEDOT.Radius,Type:3};this.OutVarTable.push(_value15);}else if(lineStick&&_varName10)//LINESTICK 同时画出柱状线和指标线
11539
+ {outValue+=",画出柱状线和指标线";var _value16={Name:_varName10,Draw:outValue,Type:4};this.OutVarTable.push(_value16);}else if(stick&&_varName10)//STICK 画柱状线
11540
+ {outValue+=",画柱状线";var _value17={Name:_varName10,Draw:outValue,Type:5};this.OutVarTable.push(_value17);}else if(volStick&&_varName10)//VOLSTICK 画彩色柱状线
11541
+ {outValue+=",画成交量柱状线";var _value18={Name:_varName10,Draw:outValue,Type:6};this.OutVarTable.push(_value18);}else if(_varName10&&color){var _value19={Name:_varName10,Data:outValue,Color:color,Type:0};this.OutVarTable.push(_value19);}else if(draw)//画图函数
11542
+ {var outVar={Name:_drawName,Draw:outValue,Type:1};this.OutVarTable.push(outVar);}else if(colorStick&&_varName10)//CYW: SUM(VAR4,10)/10000, COLORSTICK; 画上下柱子
11543
+ {outValue+=",画彩色柱状线";var _value20={Name:_varName10,Draw:outValue,Color:color,Type:2};this.OutVarTable.push(_value20);}else if(_varName10){var _value21={Name:_varName10,Data:outValue,Type:0};this.OutVarTable.push(_value21);}}}}JSConsole.Complier.Log('[JSExplainer::Run]',this.VarTable);return this.OutVarTable;};this.VisitNode=function(node){switch(node.Type){case Syntax.SequenceExpression:this.VisitSequenceExpression(node);break;case Syntax.ExpressionStatement:this.VisitNode(node.Expression);break;case Syntax.AssignmentExpression:this.VisitAssignmentExpression(node);break;case Syntax.BinaryExpression:case Syntax.LogicalExpression:this.VisitBinaryExpression(node);break;case Syntax.CallExpression:this.VisitCallExpression(node);break;case Syntax.UnaryExpression:this.VisitUnaryExpression(node);break;}};this.VisitSequenceExpression=function(node){for(var _i148 in node.Expression){var _item29=node.Expression[_i148];this.VisitNode(_item29);}};this.VisitUnaryExpression=function(node){if(node.Operator=='-'){var value=this.GetNodeValueEx(node.Argument);return'-'+value;}return node.Argument.Value;};//函数调用
11544
+ this.VisitCallExpression=function(node){var funcName=node.Callee.Name;var args=[];for(var _i149 in node.Arguments){var _item30=node.Arguments[_i149];var value=void 0;if(_item30.Type==Syntax.BinaryExpression||_item30.Type==Syntax.LogicalExpression)value=this.VisitBinaryExpression(_item30);else if(_item30.Type==Syntax.CallExpression)value=this.VisitCallExpression(_item30);else value=this.GetNodeValue(_item30);args.push(value);}JSConsole.Complier.Log('[JSExplainer::VisitCallExpression]',funcName,'(',args.toString(),')');if(g_JSComplierResource.IsCustomFunction(funcName)){var data=this.Algorithm.CallCustomFunction(funcName,args,this.SymbolData,node);node.Out=[];node.Draw=null;if(data){if(data.Out)node.Out=data.Out;if(data.Draw)node.Draw=data.Draw;}return node.Out;}node.Out=this.CallFunctionExplain(funcName,args,node);return node.Out;};this.FUNCTION_INFO_LIST=new _map2.default([["REF",{Name:"REF",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u524D\u7684'+args[0];}}],["REFX",{Name:"REFX",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u540E\u7684'+args[0];}}],["REFV",{Name:"REFV",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u524D\u7684(\u672A\u4F5C\u5E73\u6ED1\u5904\u7406)'+args[0];}}],["REFXV",{Name:"REFXV",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u540E\u7684(\u672A\u4F5C\u5E73\u6ED1\u5904\u7406)'+args[0];}}],["REFDATE",{Name:"REFDATE",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5'+args[0];}}],["COUNT",{Name:"COUNT",Param:{Count:2},ToString:function ToString(args){return'\u7EDF\u8BA1'+args[1]+'\u65E5\u4E2D\u6EE1\u8DB3'+args[0]+'\u7684\u5929\u6570';}}],["BARSLASTCOUNT",{Name:"BARSLASTCOUNT",Param:{Count:1},ToString:function ToString(args){return'\u6761\u4EF6'+args[0]+'\u8FDE\u7EED\u6210\u7ACB\u6B21\u6570';}}],["BARSCOUNT",{Name:"BARSCOUNT",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u6709\u6548\u6570\u636E\u5468\u671F\u6570';}}],["BARSLAST",{Name:"BARSLAST",Param:{Count:1},ToString:function ToString(args){return'\u4E0A\u6B21'+args[0]+'\u4E0D\u4E3A0\u8DDD\u4ECA\u5929\u6570';}}],["BARSNEXT",{Name:"BARSNEXT",Param:{Count:1},ToString:function ToString(args){return'\u4E0B\u6B21'+args[0]+'\u4E0D\u4E3A0\u8DDD\u4ECA\u5929\u6570';}}],["BARSSINCEN",{Name:"BARSSINCEN",Param:{Count:2},ToString:function ToString(args){return'\u5728'+args[1]+'\u5468\u671F\u5185\u9996\u6B21'+args[0]+'\u8DDD\u4ECA\u5929\u6570';}}],["BARSSINCE",{Name:"BARSSINCE",Param:{Count:1},ToString:function ToString(args){return'\u9996\u6B21'+args[0]+'\u8DDD\u4ECA\u5929\u6570';}}],["HHV",{Name:"HHV",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u5185'+args[0]+'\u7684\u6700\u9AD8\u503C';}}],["LLV",{Name:"LLV",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u5185'+args[0]+'\u7684\u6700\u4F4E\u503C';}}],["ZTPRICE",{Name:"ZTPRICE",Param:{Count:2},ToString:function ToString(args){return'计算涨停价';}}],["DTPRICE",{Name:"DTPRICE",Param:{Count:2},ToString:function ToString(args){return'计算跌停价';}}],["BACKSET",{Name:"BACKSET",Param:{Count:2},ToString:function ToString(args){return'\u82E5'+args[0]+'\u5219\u5C06\u6700\u8FD1'+args[1]+'\u5468\u671F\u7F6E\u4E3A1';}}],["HOD",{Name:"HOD",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u5185'+args[0]+'\u7684\u9AD8\u503C\u540D\u6B21';}}],["LOD",{Name:"LOD",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u5185'+args[0]+'\u7684\u4F4E\u503C\u540D\u6B21';}}],["REVERSE",{Name:"REVERSE",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u76F8\u53CD\u6570';}}],["FILTER",{Name:"FILTER",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u8FC7\u6EE4';}}],["FILTERX",{Name:"FILTERX",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u53CD\u5411\u8FC7\u6EE4';}}],["TFILTER",{Name:"TFILTER",Param:{Count:3},ToString:function ToString(args){return'\u4FE1\u53F7\u8FC7\u6EE4(\u591A\u5934)';}}],["SUMBARS",{Name:"SUMBARS",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7D2F\u52A0\u81F3'+args[1]+'\u7684\u5929\u6570';}}],["MA",{Name:"MA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u7B80\u5355\u79FB\u52A8\u5E73\u5747';}}],["SMA",{Name:"SMA",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5['+args[2]+'\u65E5\u6743\u91CD]\u79FB\u52A8\u5E73\u5747';}}],["MEMA",{Name:"MEMA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u5E73\u6ED1\u79FB\u52A8\u5E73\u5747';}}],["EMA",{Name:"EMA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u6307\u6570\u79FB\u52A8\u5E73\u5747';}}],["EXPMA",{Name:"EXPMA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u6307\u6570\u79FB\u52A8\u5E73\u5747';}}],["EXPMEMA",{Name:"EXPMEMA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u6307\u6570\u5E73\u6ED1\u79FB\u52A8\u5E73\u5747';}}],["WMA",{Name:"WMA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u52A0\u6743\u79FB\u52A8\u5E73\u5747';}}],["DMA",{Name:"DMA",Param:{Count:2},ToString:function ToString(args){return'\u4EE5'+args[1]+'\u4E3A\u6743\u91CD'+args[0]+'\u7684\u52A8\u6001\u79FB\u52A8\u5E73\u5747';}}],["XMA",{Name:"XMA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u504F\u79FB\u79FB\u52A8\u5E73\u5747';}}],["RANGE",{Name:"RANGE",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u4F4D\u4E8E'+args[1]+'\u548C'+args[2]+'\u4E4B\u95F4';}}],["CONST",{Name:"CONST",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u6700\u540E\u4E00\u65E5\u503C';}}],["TOPRANGE",{Name:"TOPRANGE",Param:{Count:1},ToString:function ToString(args){return'\u5F53\u524D\u503C\u662F\u8FD1'+args[0]+'\u5468\u671F\u7684\u6700\u5927\u503C';}}],["LOWRANGE",{Name:"LOWRANGE",Param:{Count:1},ToString:function ToString(args){return'\u5F53\u524D\u503C\u662F\u8FD1'+args[0]+'\u5468\u671F\u7684\u6700\u5C0F\u503C';}}],["FINDHIGH",{Name:"FINDHIGH",Param:{Count:4},ToString:function ToString(args){return args[0]+'\u5728'+args[1]+'\u65E5\u524D\u7684'+args[2]+'\u5929\u5185\u7B2C'+args[3]+'\u4E2A\u6700\u9AD8\u4EF7';}}],["FINDHIGHBARS",{Name:"FINDHIGHBARS",Param:{Count:4},ToString:function ToString(args){return args[0]+'\u5728'+args[1]+'\u65E5\u524D\u7684'+args[2]+'\u5929\u5185\u7B2C'+args[3]+'\u4E2A\u6700\u9AD8\u4EF7\u5230\u5F53\u524D\u5468\u671F\u7684\u5468\u671F\u6570';}}],["FINDLOW",{Name:"FINDLOW",Param:{Count:4},ToString:function ToString(args){return args[0]+'\u5728'+args[1]+'\u65E5\u524D\u7684'+args[2]+'\u5929\u5185\u7B2C'+args[3]+'\u4E2A\u6700\u4F4E\u4EF7';}}],["FINDLOWBARS",{Name:"FINDLOWBARS",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u5728'+args[1]+'\u65E5\u524D\u7684'+args[2]+'\u5929\u5185\u7B2C'+args[3]+'\u4E2A\u6700\u4F4E\u4EF7\u5230\u5F53\u524D\u5468\u671F\u7684\u5468\u671F\u6570';}}],["SUM",{Name:"SUM",Param:{Count:2},ToString:function ToString(args){return''+args[0]+args[1]+'\u65E5\u7D2F\u52A0';}}],["MULAR",{Name:"MULAR",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u548C'+args[1]+'\u65E5\u7D2F\u4E58';}}],["AMA",{Name:"AMA",Param:{Count:2},ToString:function ToString(args){return'\u4EE5'+args[1]+'\u4E3A\u6743\u91CD'+args[0]+'\u7684\u81EA\u9002\u5E94\u5747\u7EBF';}}],["TMA",{Name:"TMA",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5['+args[2]+'\u65E5\u6743\u91CD]\u79FB\u52A8\u5E73\u5747';}}],["CROSS",{Name:"CROSS",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u4E0A\u7A7F'+args[1];}}],["LONGCROSS",{Name:"LONGCROSS",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u5C0F\u4E8E'+args[1]+'\u4FDD\u6301'+args[2]+'\u4E2A\u4EA4\u6613\u65E5\u540E\u4EA4\u53C9\u4E0A\u7A7F';}}],["UPNDAY",{Name:"UPNDAY",Param:{Count:2},ToString:function ToString(args){return'\u6700\u8FD1'+args[1]+'\u65E5'+args[0]+'\u8FDE\u6DA8';}}],["DOWNNDAY",{Name:"DOWNNDAY",Param:{Count:2},ToString:function ToString(args){return'\u6700\u8FD1'+args[1]+'\u65E5'+args[0]+'\u8FDE\u8DCC';}}],["NDAY",{Name:"NDAY",Param:{Count:3},ToString:function ToString(args){return'\u6700\u8FD1'+args[2]+'\u65E5'+args[0]+'\u4E00\u76F4\u5927\u4E8E'+args[1];}}],["EXIST",{Name:"EXIST",Param:{Count:2},ToString:function ToString(args){return'\u6700\u8FD1'+args[1]+'\u65E5\u5B58\u5728'+args[0];}}],["EXISTR",{Name:"EXISTR",Param:{Count:3},ToString:function ToString(args){return'\u4ECE\u524D'+args[1]+'\u65E5\u5230\u524D'+args[2]+'\u65E5\u5B58\u5728'+args[0];}}],["EVERY",{Name:"EVERY",Param:{Count:2},ToString:function ToString(args){return'\u6700\u8FD1'+args[1]+'\u65E5\u4E00\u76F4\u5B58\u5728'+args[0];}}],["LAST",{Name:"LAST",Param:{Count:3},ToString:function ToString(args){return'\u4ECE\u524D'+args[1]+'\u65E5\u5230\u524D'+args[2]+'\u65E5\u6301\u7EED'+args[0];}}],["NOT",{Name:"NOT",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u53D6\u53CD';}}],["IF",{Name:"IF",Param:{Count:3},ToString:function ToString(args){return'\u5982\u679C'+args[0]+',\u8FD4\u56DE'+args[1]+',\u5426\u5219\u8FD4\u56DE'+args[2];}}],["IFF",{Name:"IFF",Param:{Count:3},ToString:function ToString(args){return'\u5982\u679C'+args[0]+',\u8FD4\u56DE'+args[1]+',\u5426\u5219\u8FD4\u56DE'+args[2];}}],["IFN",{Name:"IFN",Param:{Count:3},ToString:function ToString(args){return'\u5982\u679C'+args[0]+',\u8FD4\u56DE'+args[1]+',\u5426\u5219\u8FD4\u56DE'+args[2];}}],["IFC",{Name:"IFC",Param:{Count:3},ToString:function ToString(args){return'\u5982\u679C'+args[0]+',\u8FD4\u56DE'+args[1]+',\u5426\u5219\u8FD4\u56DE'+args[2];}}],["TESTSKIP",{Name:"TESTSKIP",Param:{Count:1},ToString:function ToString(args){return'\u5982\u679C\u6EE1\u8DB3\u6761\u4EF6'+args[0]+',\u516C\u5F0F\u8FD4\u56DE';}}],["VALUEWHEN",{Name:"VALUEWHEN",Param:{Count:2},ToString:function ToString(args){return'\u5982\u679C'+args[0]+',\u8FD4\u56DE'+args[1]+',\u5426\u5219\u8FD4\u56DE\u4E0A\u4E2A\u8F93\u51FA\u503C ';}}],["MAX",{Name:"MAX",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u548C'+args[1]+'\u7684\u8F83\u5927\u503C';}}],["MIN",{Name:"MIN",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u548C'+args[1]+'\u7684\u8F83\u5C0F\u503C';}}],["ACOS",{Name:"ACOS",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u53CD\u4F59\u5F26';}}],["ASIN",{Name:"ASIN",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u53CD\u6B63\u5F26';}}],["ATAN",{Name:"ATAN",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u53CD\u6B63\u5207';}}],["COS",{Name:"COS",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u4F59\u5F26';}}],["SIN",{Name:"SIN",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u6B63\u5F26';}}],["TAN",{Name:"TAN",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u6B63\u5207';}}],["EXP",{Name:"EXP",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u6307\u6570';}}],["LN",{Name:"LN",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u81EA\u7136\u5BF9\u6570';}}],["LOG",{Name:"LOG",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u5BF9\u6570';}}],["SQRT",{Name:"SQRT",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u5F00\u65B9';}}],["ABS",{Name:"ABS",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u7EDD\u5BF9\u503C';}}],["POW",{Name:"POW",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u4E58\u5E42';}}],["CEILING",{Name:"CEILING",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u5411\u4E0A\u820D\u5165';}}],["FLOOR",{Name:"FLOOR",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u5411\u4E0A\u820D\u5165';}}],["INTPART",{Name:"INTPART",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u6574\u6570\u90E8\u5206';}}],["BETWEEN",{Name:"BETWEEN",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u4F4D\u4E8E'+args[1]+'\u548C'+args[2]+'\u4E4B\u95F4';}}],["FRACPART",{Name:"FRACPART",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u5C0F\u6570\u90E8\u5206';}}],["ROUND",{Name:"ROUND",Param:{Count:1},ToString:function ToString(args){return'\u5BF9'+args[0]+'(\u8FDB\u884C)\u56DB\u820D\u4E94\u5165';}}],["ROUND2",{Name:"ROUND2",Param:{Count:2},ToString:function ToString(args){return'\u5BF9'+args[0]+'(\u8FDB\u884C)\u56DB\u820D\u4E94\u5165';}}],["SIGN",{Name:"SIGN",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u7B26\u53F7';}}],["MOD",{Name:"MOD",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u5173\u4E8E'+args[1]+'\u7684\u6A21';}}],["RAND",{Name:"RAND",Param:{Count:1},ToString:function ToString(args){return'\u968F\u673A\u6B63\u6574\u6570';}}],["AVEDEV",{Name:"AVEDEV",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u5E73\u5747\u7EDD\u5BF9\u504F\u5DEE';}}],["DEVSQ",{Name:"DEVSQ",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u6570\u636E\u504F\u5DEE\u5E73\u65B9\u548C';}}],["FORCAST",{Name:"FORCAST",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u7EBF\u6027\u56DE\u5F52\u9884\u6D4B\u503C';}}],["TSMA",{Name:"TSMA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u5728'+args[1]+'\u4E2A\u5468\u671F\u5185\u7684\u65F6\u95F4\u5E8F\u5217\u4E09\u89D2\u79FB\u52A8\u5E73\u5747';}}],["SLOPE",{Name:"SLOPE",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u7EBF\u6027\u56DE\u5F52\u659C\u7387';}}],["STD",{Name:"STD",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u4F30\u7B97\u6807\u51C6\u5DEE';}}],["STDP",{Name:"STDP",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u603B\u4F53\u6807\u51C6\u5DEE';}}],["STDDEV",{Name:"STDDEV",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u6807\u51C6\u504F\u5DEE';}}],["VAR",{Name:"VAR",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u4F30\u7B97\u6837\u672C\u65B9\u5DEE';}}],["VARP",{Name:"VARP",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u603B\u4F53\u6837\u672C\u65B9\u5DEE';}}],["COVAR",{Name:"COVAR",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u548C'+args[1]+'\u7684'+args[2]+'\u5468\u671F\u7684\u534F\u65B9\u5DEE';}}],["RELATE",{Name:"RELATE",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u548C'+args[1]+'\u7684'+args[0]+'\u5468\u671F\u7684\u76F8\u5173\u7CFB\u6570';}}],["BETA",{Name:"BETA",Param:{Count:1},ToString:function ToString(args){return'\u03B2(Beta)\u7CFB\u6570';}}],["BETAEX",{Name:"BETAEX",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u548C'+args[1]+'\u7684'+args[2]+'\u5468\u671F\u7684\u76F8\u5173\u653E\u5927\u7CFB\u6570';}}],["COST",{Name:"COST",Param:{Count:1},ToString:function ToString(args){return'\u83B7\u5229\u76D8\u4E3A'+args[0]+'%\u7684\u6210\u672C\u5206\u5E03';}}],["WINNER",{Name:"WINNER",Param:{Count:1},ToString:function ToString(args){return'\u4EE5'+args[0]+'\u8BA1\u7B97\u7684\u83B7\u5229\u76D8\u6BD4\u4F8B';}}],["LWINNER",{Name:"LWINNER",Param:{Count:2},ToString:function ToString(args){return'\u6700\u8FD1'+args[0]+'\u65E5\u90A3\u90E8\u5206\u6210\u672C\u4EE5'+args[1]+'\u4EF7\u683C\u5356\u51FA\u7684\u83B7\u5229\u76D8\u6BD4\u4F8B';}}],["PWINNER",{Name:"PWINNER",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u65E5\u524D\u90A3\u90E8\u5206\u6210\u672C\u4EE5'+args[1]+'\u4EF7\u683C\u5356\u51FA\u7684\u83B7\u5229\u76D8\u6BD4\u4F8B';}}],["COSTEX",{Name:"COSTEX",Param:{Count:2},ToString:function ToString(args){return'\u4F4D\u4E8E\u4EF7\u683C'+args[0]+'\u548C'+args[1]+'\u95F4\u7684\u6210\u672C';}}],["PPART",{Name:"PPART",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u65E5\u524D\u90A3\u90E8\u5206\u6210\u672C\u5360\u603B\u6210\u672C\u7684\u6BD4\u4F8B';}}],["SAR",{Name:"SAR",Param:{Count:3},ToString:function ToString(args){return'\u6B65\u957F\u4E3A'+args[1]+'\u6781\u9650\u503C\u4E3A'+args[0]+'\u7684'+args[2]+'\u65E5\u629B\u7269\u8F6C\u5411';}}],["SARTURN",{Name:"SARTURN",Param:{Count:3},ToString:function ToString(args){return'\u6B65\u957F\u4E3A'+args[1]+'\u6781\u9650\u503C\u4E3A'+args[0]+'\u7684'+args[2]+'\u65E5\u629B\u7269\u8F6C\u5411\u70B9';}}],//字符串函数
11544
11545
  ["CON2STR",{Name:"CON2STR",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u8F6C\u4E3A\u5B57\u7B26\u4E32';}}],["VAR2STR",{Name:"VAR2STR",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u8F6C\u4E3A\u5B57\u7B26\u4E32';}}],["STR2CON",{Name:"STR2CON",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u8F6C\u4E3A\u6570\u5B57';}}],["STRLEN",{Name:"STRLEN",Param:{Count:1},ToString:function ToString(args){return'\u5F97\u5230'+args[0]+'\u5B57\u7B26\u4E32\u957F\u5EA6';}}],["STRCAT",{Name:"STRCAT",Param:{Count:2},ToString:function ToString(args){return'\u5B57\u7B26\u4E32\u76F8\u52A0';}}],["VARCAT",{Name:"VARCAT",Param:{Count:2},ToString:function ToString(args){return'\u5B57\u7B26\u4E32\u76F8\u52A0';}}],["STRSPACE",{Name:"STRSPACE",Param:{Count:1},ToString:function ToString(args){return'\u5B57\u7B26\u4E32'+args[0]+'\u52A0\u4E00\u7A7A\u683C';}}],["SUBSTR",{Name:"SUBSTR",Param:{Count:3},ToString:function ToString(args){return'\u5B57\u7B26\u4E32'+args[0]+'\u4E2D\u53D6\u4E00\u90E8\u5206';}}],["STRCMP",{Name:"STRCMP",Param:{Count:2},ToString:function ToString(args){return'\u5B57\u7B26\u4E32'+args[0]+'\u548C\u5B57\u7B26\u4E32'+args[1]+'\u6BD4\u8F83';}}],["FINDSTR",{Name:"FINDSTR",Param:{Count:2},ToString:function ToString(args){return'\u5B57\u7B26\u4E32'+args[0]+'\u4E2D\u67E5\u627E\u5B57\u7B26\u4E32'+args[1];}}],["NAMEINCLUDE",{Name:"NAMEINCLUDE",Param:{Count:1},ToString:function ToString(args){return'\u67E5\u627E\u54C1\u79CD\u540D\u79F0\u4E2D\u5305\u542B'+args[0];}}],["CODELIKE",{Name:"CODELIKE",Param:{Count:1},ToString:function ToString(args){return'\u67E5\u627E\u54C1\u79CD\u540D\u79F0\u4E2D\u5305\u542B'+args[0];}}],["INBLOCK",{Name:"AVEDEV",Param:{Count:1},ToString:function ToString(args){return'\u5C5E\u4E8E'+args[0]+'\u677F\u5757';}}],["STKINDI",{Name:"STKINDI",Param:{Dynamic:true},ToString:function ToString(args){return"指标引用";}}],["STRFORMAT",{Name:"STRFORMAT",Param:{Dynamic:true},ToString:function ToString(args){return'\u683C\u5F0F\u5316'+args[0]+'\u5B57\u7B26\u4E32';}}],["NAMELIKE",{Name:"NAMELIKE",Param:{Count:1},ToString:function ToString(args){return'\u54C1\u79CD\u540D\u79F0\u662F\u5426\u4EE5\''+args[0]+'\'\u5F00\u5934';}}],["HHVBARS",{Name:"HHVBARS",Param:{Count:2},ToString:function ToString(args){if(args[1]==0)return'\u5386\u53F2'+args[0]+'\u65B0\u9AD8\u8DDD\u4ECA\u5929\u6570';return args[1]+'\u65E5\u5185'+args[0]+'\u65B0\u9AD8\u8DDD\u4ECA\u5929\u6570';}}],["LLVBARS",{Name:"LLVBARS",Param:{Count:2},ToString:function ToString(args){if(args[1]==0)return'\u5386\u53F2'+args[0]+'\u65B0\u4F4E\u8DDD\u4ECA\u5929\u6570';return args[1]+'\u65E5\u5185'+args[0]+'\u65B0\u4F4E\u8DDD\u4ECA\u5929\u6570';}}]]);this.CallFunctionExplain=function(funcName,args,node){if(this.FUNCTION_INFO_LIST.has(funcName)){var item=this.FUNCTION_INFO_LIST.get(funcName);if(item.Param.Dynamic===true)//动态参数
11545
11546
  {}else{if(item.Param.Count!=args.length)this.ThrowUnexpectedNode(node,'\u51FD\u6570'+funcName+'\u53C2\u6570\u4E2A\u6570\u4E0D\u6B63\u786E. \u9700\u8981'+item.Param.Count+'\u4E2A\u53C2\u6570');}return item.ToString(args);}switch(funcName){case"CALCSTOCKINDEX":return'\u5F15\u7528'+args[0]+'\u7684'+args[1]+'\u6307\u6807\u7B2C'+args[2]+'\u4E2A\u8F93\u51FA\u503C';case"PEAK":case"PEAKBARS":case"ZIG":case"ZIGA":case"TROUGH":case"TROUGHBARS":return this.GetZIGExplain(funcName,args);case"FINANCE":return this.GetFinanceExplain(args);case"DYNAINFO":return this.GetDynainfoExplain(args);case'CLOSE':case'C':case'VOL':case'V':case'OPEN':case'O':case'HIGH':case'H':case'LOW':case'L':case'AMOUNT':case'AMO':return this.GetOtherSymbolExplain({FunctionName:funcName,Args:args},node);//绘图函数
11546
11547
  case"PLOYLINE":return'\u5F53\u6EE1\u8DB3\u6761\u4EF6'+args[0]+'\u65F6\u4EE5'+args[1]+'\u4F4D\u7F6E\u4E3A\u9876\u70B9\u753B\u6298\u7EBF\u8FDE\u63A5';case"DRAWLINE":return'\u5F53\u6EE1\u8DB3\u6761\u4EF6'+args[0]+'\u65F6,\u5728'+args[1]+'\u4F4D\u7F6E\u753B\u76F4\u7EBF\u8D77\u70B9\uFF0C\u5F53\u6EE1\u8DB3\u6761\u4EF6'+args[2]+'\u65F6,\u5728'+args[3]+'\u4F4D\u7F6E\u753B\u76F4\u7EBF\u7EC8\u70B9,'+args[4]+'\u8868\u793A\u662F\u5426\u5EF6\u957F';case"DRAWSL":return'\u5F53\u6EE1\u8DB3\u6761\u4EF6'+args[0]+'\u65F6,\u5728'+args[1]+'\u4F4D\u7F6E\u753B\u659C\u7EBF\u7EBF\u6027\u56DE\u5F52,'+args[2]+'\u659C\u7387,'+args[3]+'\u957F\u5EA6,'+args[4]+'\u65B9\u5411';case"DRAWKLINE":case"DRAWKLINE1":return'K线';case"DRAWICON":return'\u5F53\u6EE1\u8DB3\u6761\u4EF6'+args[0]+'\u65F6,\u5728'+args[1]+'\u4F4D\u7F6E\u753B'+args[2]+'\u53F7\u56FE\u6807';case"DRAWTEXT":return'\u5F53\u6EE1\u8DB3\u6761\u4EF6'+args[0]+'\u65F6,\u5728'+args[1]+'\u4F4D\u7F6E\u4E66\u5199\u6587\u5B57';case"DRAWTEXT_FIX":return'\u5F53\u6EE1\u8DB3\u6761\u4EF6'+args[0]+'\u65F6,\u5728\u6A2A\u8F74'+args[1]+'\u7EB5\u8F74'+args[2]+'\u4F4D\u7F6E\u4E66\u5199\u6587\u5B57';case"DRAWNUMBER":return'\u5F53\u6EE1\u8DB3\u6761\u4EF6'+args[0]+'\u65F6,\u5728'+args[1]+'\u4F4D\u7F6E\u4E66\u5199\u6570\u5B57';case"DRAWNUMBER_FIX":return'\u5F53\u6EE1\u8DB3\u6761\u4EF6'+args[0]+'\u65F6,\u5728\u6A2A\u8F74'+args[1]+'\u7EB5\u8F74'+args[2]+'\u4F4D\u7F6E\u4E66\u5199\u6570\u5B57';case"RGB":return'\u81EA\u5B9A\u8272['+args[0]+','+args[1]+','+args[2]+']';case"RGBA":return'\u81EA\u5B9A\u8272['+args[0]+','+args[1]+','+args[2]+','+args[3]+']';case"DRAWBAND":return'画带状线';case"DRAWRECTREL":return"相对位置上画矩形.";case"DRAWGBK":return"填充背景";case"TIPICON":return'\u5F53\u6EE1\u8DB3\u6761\u4EF6'+args[0]+'\u65F6,\u5728'+args[1]+'\u4F4D\u7F6E\u753B'+args[2]+'\u53F7\u56FE\u6807';case"STICKLINE":var barType="";if(args[4]==-1)barType="虚线空心柱";else if(args[4]==0)barType="实心柱";else barType="实线空心柱";return'\u5F53\u6EE1\u8DB3\u6761\u4EF6'+args[0]+'\u65F6, \u5728'+args[1]+'\u548C'+args[2]+'\u4F4D\u7F6E\u4E4B\u95F4\u753B\u67F1\u72B6\u7EBF,\u5BBD\u5EA6\u4E3A'+args[3]+','+barType;case"SELL":return"卖出平仓";case"BUY":return"买入开仓";case"SELLSHORT":return"卖出开仓";case"BUYSHORT":return"买入平仓";case"YMOVE":return;case"BACKGROUND":return"绘制背景";case"UPCOLOR":return'\u4E0A\u6DA8\u989C\u8272'+args[0];case"DOWNCOLOR":return'\u4E0B\u8DCC\u989C\u8272'+args[0];case"FIRSTDRAW":return"";default:this.ThrowUnexpectedNode(node,'\u51FD\u6570'+funcName+'\u4E0D\u5B58\u5728');}};this.GetDynainfoExplain=function(args){var DATA_NAME_MAP=new _map2.default([[3,"前收盘价"],[4,"开盘价"],[5,"最高价"],[6,"最低价"],[7,"现价"],[8,'总量'],[9,"现量"],[10,"总金额"],[11,"均价"],[12,"日涨跌"],[13,"振幅"],[14,"涨幅"],[15,"开盘时的成交金额"],[16,"前5日每分钟均量"],[17,"量比"],[18,"上涨家数"],[19,"下跌家数"]]);var id=args[0];if(DATA_NAME_MAP.has(id))return DATA_NAME_MAP.get(id);return'\u5373\u65F6\u884C\u60C5['+id+']';};this.GetFinanceExplain=function(args){var DATA_NAME_MAP=new _map2.default([[1,"总股本"],[2,"市场类型"],[3,"沪深品种类型"],[4,"沪深行业代码"],[5,"B股"],[6,"H股"],[7,"流通股本[股]"],[8,"股东人数[户]"],[9,"资产负债率%"],[10,"总资产"],[11,"流动资产"],[12,"固定资产"],[13,"无形资产"],[15,"流动负债"],[16,"少数股东权益"]]);var id=args[0];if(DATA_NAME_MAP.has(id))return DATA_NAME_MAP.get(id);return'\u8D22\u52A1\u6570\u636E['+id+']';};this.GetZIGExplain=function(funcName,args){var value=args[0];if(value==0)value="开盘价";else if(value==1)value="最高价";else if(value==2)value="最低价";else if(value==3)value="收盘价";switch(funcName){case"PEAK":return value+'\u7684'+args[1]+'%\u4E4B\u5B57\u8F6C\u5411\u7684\u524D'+args[2]+'\u4E2A\u6CE2\u5CF0\u503C';case"PEAKBARS":return value+'\u7684'+args[1]+'5%\u4E4B\u5B57\u8F6C\u5411\u7684\u524D'+args[2]+'\u4E2A\u6CE2\u5CF0\u4F4D\u7F6E';case"ZIG":return value+'\u7684'+args[1]+'\u7684\u4E4B\u5B57\u8F6C\u5411';case"ZIGA":return value+'\u53D8\u5316'+args[1]+'\u7684\u4E4B\u5B57\u8F6C\u5411';case"TROUGH":return value+'\u7684'+args[1]+'%\u4E4B\u5B57\u8F6C\u5411\u7684\u524D'+args[2]+'\u4E2A\u6CE2\u8C37\u503C';case"TROUGHBARS":return value+'\u7684'+args[1]+'%\u4E4B\u5B57\u8F6C\u5411\u7684\u524D'+args[2]+'\u4E2A\u6CE2\u8C37\u4F4D\u7F6E';}};this.GetColorExplain=function(colorName){var COLOR_MAP=new _map2.default([['COLORBLACK','黑色'],['COLORBLUE','蓝色'],['COLORGREEN','绿色'],['COLORCYAN','青色'],['COLORRED','红色'],['COLORMAGENTA','洋红色'],['COLORBROWN','棕色'],['COLORLIGRAY','淡灰色'],['COLORGRAY','深灰色'],['COLORLIBLUE','淡蓝色'],['COLORLIGREEN','淡绿色'],['COLORLICYAN','淡青色'],['COLORLIRED','淡红色'],['COLORLIMAGENTA','淡洋红色'],['COLORWHITE','白色'],['COLORYELLOW','黄色']]);if(COLOR_MAP.has(colorName))return COLOR_MAP.get(colorName);//COLOR 自定义色
@@ -11550,11 +11551,11 @@ if(colorName.indexOf('COLOR')==0)return'#'+colorName.substr(5);return'rgb(30,144
11550
11551
  var mapPeriodName=new _map2.default([["MIN1","1分钟"],["MIN5","5分钟"],["MIN15","15分钟"],["MIN30","30分钟"],["MIN60","60分钟"],["DAY","日"],["WEEK","周"],["MONTH","月"],['SEASON',"季"],["YEAR","年"],["WEEK2","双周"],["HALFYEAR","半年"]]);var dataName=valueName;if(mapStockDataName.has(valueName))dataName=mapStockDataName.get(valueName);var periodName=period;if(mapPeriodName.has(period))periodName=mapPeriodName.get(period);return dataName+'[\u53D6'+periodName+'\u6570\u636E]';};this.GetOtherSymbolExplain=function(obj,node){var mapStockDataName=new _map2.default([['CLOSE',"收盘价"],["C","收盘价"],['VOL',"成交量"],['V',"成交量"],['OPEN',"开盘价"],['O',"开盘价"],['HIGH',"最高价"],['H',"最高价"],['LOW',"最低价"],['L',"最低价"],['AMOUNT',"成交金额"],['AMO',"成交金额"],['VOLINSTK',"持仓量"]]);if(obj.FunctionName){var args=obj.Args;var dataName=mapStockDataName.get(obj.FunctionName);return'['+args[0]+']'+dataName;}else if(obj.Literal){var value=obj.Literal.toUpperCase();var args=value.split("$");if(!mapStockDataName.has(args[1]))return"";var symbol=args[0];var dataName=mapStockDataName.get(args[1]);return'['+symbol+']'+dataName;}};this.IsDrawFunction=function(name){var setFunctionName=new _set2.default(["STICKLINE","DRAWTEXT",'SUPERDRAWTEXT','DRAWLINE','DRAWBAND','DRAWKLINE',"DRAWKLINE1",'DRAWKLINE_IF','PLOYLINE','POLYLINE','DRAWNUMBER',"DRAWNUMBER_FIX",'DRAWICON','DRAWCHANNEL','PARTLINE','DRAWTEXT_FIX','DRAWGBK','DRAWTEXT_LINE','DRAWRECTREL',"DRAWTEXTABS",'DRAWOVERLAYLINE',"FILLRGN","FILLRGN2","FILLTOPRGN","FILLBOTTOMRGN","FILLVERTICALRGN","FLOATRGN","DRAWSL","DRAWGBK2","BUY","BUYSHORT","SELL","SELLSHORT"]);if(setFunctionName.has(name))return true;return false;};//赋值
11551
11552
  this.VisitAssignmentExpression=function(node){var left=node.Left;if(left.Type!=Syntax.Identifier)this.ThrowUnexpectedNode(node);var varName=left.Name;var right=node.Right;var value=null;if(right.Type==Syntax.BinaryExpression||right.Type==Syntax.LogicalExpression)value=this.VisitBinaryExpression(right);else if(right.Type==Syntax.CallExpression)value=this.VisitCallExpression(right);else if(right.Type==Syntax.Literal){value=right.Value;if(IFrameSplitOperator.IsString(value)&&right.Value.indexOf("$")>0)value=this.GetOtherSymbolExplain({Literal:value},node);}else if(right.Type==Syntax.Identifier)//右值是变量
11552
11553
  value=this.ReadVariable(right.Name,right);else if(right.Type==Syntax.MemberExpression)value=this.ReadMemberVariable(right);else if(right.Type==Syntax.UnaryExpression)value=this.VisitUnaryExpression(right);JSConsole.Complier.Log('[JSExplainer::VisitAssignmentExpression]',varName,' = ',value);this.VarTable.set(varName,value);};this.ReadMemberVariable=function(node){var obj=node.Object;var member=node.Property;var maiObj=void 0;if(obj.Type==Syntax.BinaryExpression||obj.Type==Syntax.LogicalExpression)maiObj=this.VisitBinaryExpression(obj);else if(obj.Type==Syntax.CallExpression)maiObj=this.VisitCallExpression(obj);else{if(member.Name.indexOf('#')>0){var aryValue=member.Name.split("#");var value=obj.Name+'\u7684'+aryValue[0]+'[\u5468\u671F'+aryValue[1]+']';}else{var value=obj.Name+'\u7684'+member.Name;}return value;}if(!maiObj)return null;var value=maiObj[member.Name];if(value)return value;return null;};//逻辑运算
11553
- this.VisitBinaryExpression=function(node){var stack=[];stack.push(node);var temp=null;while(stack.length!=0){temp=stack[stack.length-1];if(temp.Left&&node!=temp.Left&&node!=temp.Right){stack.push(temp.Left);}else if(temp.Right&&node!=temp.Right){stack.push(temp.Right);}else{var _value30=stack.pop();if(_value30.Type==Syntax.BinaryExpression)//只遍历操作符就可以
11554
- {var leftValue=this.GetNodeValue(_value30.Left);var rightValue=this.GetNodeValue(_value30.Right);JSConsole.Complier.Log('[JSExplainer::VisitBinaryExpression] BinaryExpression',_value30,leftValue,rightValue);_value30.Out=null;//保存中间值
11555
- _value30.Out='('+leftValue+' '+_value30.Operator+' '+rightValue+')';if(leftValue=="收盘价"&&rightValue=="开盘价"){if(_value30.Operator==">")_value30.Out='(收阳线)';else if(_value30.Operator=="<")_value30.Out='(收阴线)';else if(_value30.Operator=="=")_value30.Out='(平盘)';}else if(leftValue=="开盘价"&&rightValue=="收盘价"){if(_value30.Operator=="<")_value30.Out='(收阳线)';else if(_value30.Operator==">")_value30.Out='(收阴线)';else if(_value30.Operator=="=")_value30.Out='(平盘)';}JSConsole.Complier.Log('[JSExplainer::VisitBinaryExpression] BinaryExpression',_value30);}else if(_value30.Type==Syntax.LogicalExpression){var _leftValue2=this.GetNodeValue(_value30.Left);var _rightValue2=this.GetNodeValue(_value30.Right);JSConsole.Complier.Log('[JSExecute::VisitBinaryExpression] LogicalExpression',_value30,_leftValue2,_rightValue2);_value30.Out=null;//保存中间值
11556
- switch(_value30.Operator){case'&&':case'AND':_value30.Out='('+_leftValue2+' \u5E76\u4E14 '+_rightValue2+')';break;case'||':case'OR':_value30.Out='('+_leftValue2+' \u6216\u8005 '+_rightValue2+')';break;}JSConsole.Complier.Log('[JSExplainer::VisitBinaryExpression] LogicalExpression',_value30);}node=temp;}}return node.Out;};this.GetNodeValueEx=function(node){var value=null;if(node.Type==Syntax.BinaryExpression||node.Type==Syntax.LogicalExpression)value=this.VisitBinaryExpression(node);else if(node.Type==Syntax.CallExpression)value=this.VisitCallExpression(node);else value=this.GetNodeValue(node);return value;};this.GetNodeValue=function(node){switch(node.Type){case Syntax.Literal://数字
11557
- return node.Value;case Syntax.UnaryExpression:return this.VisitUnaryExpression(node);case Syntax.Identifier:var _value31=this.ReadVariable(node.Name,node);return _value31;case Syntax.BinaryExpression:case Syntax.LogicalExpression:return node.Out;case Syntax.CallExpression:return this.VisitCallExpression(node);default:this.ThrowUnexpectedNode(node);}};//读取变量
11554
+ this.VisitBinaryExpression=function(node){var stack=[];stack.push(node);var temp=null;while(stack.length!=0){temp=stack[stack.length-1];if(temp.Left&&node!=temp.Left&&node!=temp.Right){stack.push(temp.Left);}else if(temp.Right&&node!=temp.Right){stack.push(temp.Right);}else{var value=stack.pop();if(value.Type==Syntax.BinaryExpression)//只遍历操作符就可以
11555
+ {var leftValue=this.GetNodeValue(value.Left);var rightValue=this.GetNodeValue(value.Right);JSConsole.Complier.Log('[JSExplainer::VisitBinaryExpression] BinaryExpression',value,leftValue,rightValue);value.Out=null;//保存中间值
11556
+ value.Out='('+leftValue+' '+value.Operator+' '+rightValue+')';if(leftValue=="收盘价"&&rightValue=="开盘价"){if(value.Operator==">")value.Out='(收阳线)';else if(value.Operator=="<")value.Out='(收阴线)';else if(value.Operator=="=")value.Out='(平盘)';}else if(leftValue=="开盘价"&&rightValue=="收盘价"){if(value.Operator=="<")value.Out='(收阳线)';else if(value.Operator==">")value.Out='(收阴线)';else if(value.Operator=="=")value.Out='(平盘)';}JSConsole.Complier.Log('[JSExplainer::VisitBinaryExpression] BinaryExpression',value);}else if(value.Type==Syntax.LogicalExpression){var _leftValue2=this.GetNodeValue(value.Left);var _rightValue2=this.GetNodeValue(value.Right);JSConsole.Complier.Log('[JSExecute::VisitBinaryExpression] LogicalExpression',value,_leftValue2,_rightValue2);value.Out=null;//保存中间值
11557
+ switch(value.Operator){case'&&':case'AND':value.Out='('+_leftValue2+' \u5E76\u4E14 '+_rightValue2+')';break;case'||':case'OR':value.Out='('+_leftValue2+' \u6216\u8005 '+_rightValue2+')';break;}JSConsole.Complier.Log('[JSExplainer::VisitBinaryExpression] LogicalExpression',value);}node=temp;}}return node.Out;};this.GetNodeValueEx=function(node){var value=null;if(node.Type==Syntax.BinaryExpression||node.Type==Syntax.LogicalExpression)value=this.VisitBinaryExpression(node);else if(node.Type==Syntax.CallExpression)value=this.VisitCallExpression(node);else value=this.GetNodeValue(node);return value;};this.GetNodeValue=function(node){switch(node.Type){case Syntax.Literal://数字
11558
+ return node.Value;case Syntax.UnaryExpression:return this.VisitUnaryExpression(node);case Syntax.Identifier:var value=this.ReadVariable(node.Name,node);return value;case Syntax.BinaryExpression:case Syntax.LogicalExpression:return node.Out;case Syntax.CallExpression:return this.VisitCallExpression(node);default:this.ThrowUnexpectedNode(node);}};//读取变量
11558
11559
  this.ReadVariable=function(name,node){if(this.ConstVarTable.has(name)){var data=this.ConstVarTable.get(name);return data;}if(g_JSComplierResource.IsCustomVariant(name))return this.ReadCustomVariant(name,node);//读取自定义变量
11559
11560
  if(this.VarTable.has(name))return this.VarTable.get(name);if(name.indexOf('#')>0){var aryPeriod=name.split('#');return this.SymbolPeriodExplain(aryPeriod[0],aryPeriod[1]);}if(name=="AUTOFILTER")//信号过滤
11560
11561
  {return this.AUTOFILTER();}this.ThrowUnexpectedNode(node,'变量'+name+'不存在');return name;};this.AUTOFILTER=function(){//TODO:过滤信号
@@ -13030,7 +13031,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
13030
13031
  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);};}/********************************************************************************
13031
13032
  * 版本信息输出
13032
13033
  *
13033
- */var HQCHART_VERSION="1.1.12852";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
13034
+ */var HQCHART_VERSION="1.1.12859";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
13034
13035
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
13035
13036
  // BaseIndex:BaseIndex,
13036
13037
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.12853",
3
+ "version": "1.1.12860",
4
4
  "description": "stock chart",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -16980,13 +16980,7 @@ function JSExecute(ast,option)
16980
16980
 
16981
16981
  if (item.Expression.Operator=='-')
16982
16982
  {
16983
- if (IFrameSplitOperator.IsNonEmptyArray(outVar))
16984
- {
16985
- for(var i=0;i<outVar.length;++i)
16986
- {
16987
- outVar[i]*=-1;
16988
- }
16989
- }
16983
+ if (outVar) outVar=this.Algorithm.Subtract(0,outVar);
16990
16984
  }
16991
16985
 
16992
16986
  if (outVar) this.OutVarTable.push({Name:varName, Data:outVar,Type:type, NoneName:true});
@@ -17221,13 +17215,7 @@ function JSExecute(ast,option)
17221
17215
 
17222
17216
  if (itemExpression.Operator=='-')
17223
17217
  {
17224
- if (IFrameSplitOperator.IsNonEmptyArray(aryValue))
17225
- {
17226
- for(var i=0;i<aryValue.length;++i)
17227
- {
17228
- aryValue[i]*=-1;
17229
- }
17230
- }
17218
+ if (aryValue) aryValue=this.Algorithm.Subtract(0,aryValue);
17231
17219
  }
17232
17220
 
17233
17221
  isNoneName=true;
@@ -17526,11 +17514,11 @@ function JSExecute(ast,option)
17526
17514
  if (node.Operator=='-')
17527
17515
  {
17528
17516
  var tempValue=this.GetNodeValueEx(node.Argument);
17529
- value=this.Algorithm.Subtract(0,tempValue);
17517
+ var value=this.Algorithm.Subtract(0,tempValue);
17530
17518
  }
17531
17519
  else
17532
17520
  {
17533
- value=node.Argument.Value;
17521
+ var value=node.Argument.Value;
17534
17522
  }
17535
17523
 
17536
17524
  return value;
@@ -18281,6 +18269,32 @@ function JSExplainer(ast,option)
18281
18269
  let outVar=item.Expression.Out;
18282
18270
  this.OutVarTable.push({Name:varName, Data:`输出: ${outVar}`,Type:0, NoneName:true});
18283
18271
  }
18272
+ else if (item.Expression.Type==Syntax.UnaryExpression) //一元运算 如-C, -7, -(C+10)
18273
+ {
18274
+ var varName="__temp_l_"+i+"__";
18275
+ var argument=item.Expression.Argument;
18276
+ let outVar=null;
18277
+ if (argument.Type==Syntax.Literal)
18278
+ {
18279
+ outVar=argument.Value;
18280
+ }
18281
+ else if (argument.Type==Syntax.Identifier)
18282
+ {
18283
+ let varName=argument.Name;
18284
+ outVar=this.ReadVariable(varName,item.Expression);
18285
+ }
18286
+ else if (argument.Type==Syntax.BinaryExpression)
18287
+ {
18288
+ outVar=argument.Out;
18289
+ }
18290
+
18291
+ if (item.Expression.Operator=='-')
18292
+ {
18293
+ outVar=`-${outVar}`;
18294
+ }
18295
+
18296
+ this.OutVarTable.push({Name:varName, Data:`输出: ${outVar}`,Type:0, NoneName:true});
18297
+ }
18284
18298
  else if (item.Expression.Type==Syntax.SequenceExpression)
18285
18299
  {
18286
18300
  let varName;
@@ -18384,6 +18398,33 @@ function JSExplainer(ast,option)
18384
18398
  isNoneName=true;
18385
18399
  this.VarTable.set(varName,aryValue);
18386
18400
  }
18401
+ else if (itemExpression.Type==Syntax.UnaryExpression)
18402
+ {
18403
+ varName="__temp_sb_"+i+"__";
18404
+ var argument=itemExpression.Argument;
18405
+ let aryValue=null;
18406
+ if (argument.Type==Syntax.Literal)
18407
+ {
18408
+ aryValue=argument.Value;
18409
+ }
18410
+ else if (argument.Type==Syntax.Identifier)
18411
+ {
18412
+ let varName=argument.Name;
18413
+ aryValue=this.ReadVariable(varName,item.Expression);
18414
+ }
18415
+ else if (argument.Type==Syntax.BinaryExpression)
18416
+ {
18417
+ aryValue=argument.Out;
18418
+ }
18419
+
18420
+ if (itemExpression.Operator=='-')
18421
+ {
18422
+ aryValue=`-${aryValue}`;
18423
+ }
18424
+
18425
+ isNoneName=true;
18426
+ this.VarTable.set(varName,aryValue);
18427
+ }
18387
18428
  }
18388
18429
 
18389
18430
  var outValue;
@@ -112584,13 +112584,7 @@ function JSExecute(ast,option)
112584
112584
 
112585
112585
  if (item.Expression.Operator=='-')
112586
112586
  {
112587
- if (IFrameSplitOperator.IsNonEmptyArray(outVar))
112588
- {
112589
- for(var i=0;i<outVar.length;++i)
112590
- {
112591
- outVar[i]*=-1;
112592
- }
112593
- }
112587
+ if (outVar) outVar=this.Algorithm.Subtract(0,outVar);
112594
112588
  }
112595
112589
 
112596
112590
  if (outVar) this.OutVarTable.push({Name:varName, Data:outVar,Type:type, NoneName:true});
@@ -112825,13 +112819,7 @@ function JSExecute(ast,option)
112825
112819
 
112826
112820
  if (itemExpression.Operator=='-')
112827
112821
  {
112828
- if (IFrameSplitOperator.IsNonEmptyArray(aryValue))
112829
- {
112830
- for(var i=0;i<aryValue.length;++i)
112831
- {
112832
- aryValue[i]*=-1;
112833
- }
112834
- }
112822
+ if (aryValue) aryValue=this.Algorithm.Subtract(0,aryValue);
112835
112823
  }
112836
112824
 
112837
112825
  isNoneName=true;
@@ -113130,11 +113118,11 @@ function JSExecute(ast,option)
113130
113118
  if (node.Operator=='-')
113131
113119
  {
113132
113120
  var tempValue=this.GetNodeValueEx(node.Argument);
113133
- value=this.Algorithm.Subtract(0,tempValue);
113121
+ var value=this.Algorithm.Subtract(0,tempValue);
113134
113122
  }
113135
113123
  else
113136
113124
  {
113137
- value=node.Argument.Value;
113125
+ var value=node.Argument.Value;
113138
113126
  }
113139
113127
 
113140
113128
  return value;
@@ -113885,6 +113873,32 @@ function JSExplainer(ast,option)
113885
113873
  let outVar=item.Expression.Out;
113886
113874
  this.OutVarTable.push({Name:varName, Data:`输出: ${outVar}`,Type:0, NoneName:true});
113887
113875
  }
113876
+ else if (item.Expression.Type==Syntax.UnaryExpression) //一元运算 如-C, -7, -(C+10)
113877
+ {
113878
+ var varName="__temp_l_"+i+"__";
113879
+ var argument=item.Expression.Argument;
113880
+ let outVar=null;
113881
+ if (argument.Type==Syntax.Literal)
113882
+ {
113883
+ outVar=argument.Value;
113884
+ }
113885
+ else if (argument.Type==Syntax.Identifier)
113886
+ {
113887
+ let varName=argument.Name;
113888
+ outVar=this.ReadVariable(varName,item.Expression);
113889
+ }
113890
+ else if (argument.Type==Syntax.BinaryExpression)
113891
+ {
113892
+ outVar=argument.Out;
113893
+ }
113894
+
113895
+ if (item.Expression.Operator=='-')
113896
+ {
113897
+ outVar=`-${outVar}`;
113898
+ }
113899
+
113900
+ this.OutVarTable.push({Name:varName, Data:`输出: ${outVar}`,Type:0, NoneName:true});
113901
+ }
113888
113902
  else if (item.Expression.Type==Syntax.SequenceExpression)
113889
113903
  {
113890
113904
  let varName;
@@ -113988,6 +114002,33 @@ function JSExplainer(ast,option)
113988
114002
  isNoneName=true;
113989
114003
  this.VarTable.set(varName,aryValue);
113990
114004
  }
114005
+ else if (itemExpression.Type==Syntax.UnaryExpression)
114006
+ {
114007
+ varName="__temp_sb_"+i+"__";
114008
+ var argument=itemExpression.Argument;
114009
+ let aryValue=null;
114010
+ if (argument.Type==Syntax.Literal)
114011
+ {
114012
+ aryValue=argument.Value;
114013
+ }
114014
+ else if (argument.Type==Syntax.Identifier)
114015
+ {
114016
+ let varName=argument.Name;
114017
+ aryValue=this.ReadVariable(varName,item.Expression);
114018
+ }
114019
+ else if (argument.Type==Syntax.BinaryExpression)
114020
+ {
114021
+ aryValue=argument.Out;
114022
+ }
114023
+
114024
+ if (itemExpression.Operator=='-')
114025
+ {
114026
+ aryValue=`-${aryValue}`;
114027
+ }
114028
+
114029
+ isNoneName=true;
114030
+ this.VarTable.set(varName,aryValue);
114031
+ }
113991
114032
  }
113992
114033
 
113993
114034
  var outValue;
@@ -131985,7 +132026,7 @@ function ScrollBarBGChart()
131985
132026
 
131986
132027
 
131987
132028
 
131988
- var HQCHART_VERSION="1.1.12852";
132029
+ var HQCHART_VERSION="1.1.12859";
131989
132030
 
131990
132031
  function PrintHQChartVersion()
131991
132032
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.12852";
8
+ var HQCHART_VERSION="1.1.12859";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -112628,13 +112628,7 @@ function JSExecute(ast,option)
112628
112628
 
112629
112629
  if (item.Expression.Operator=='-')
112630
112630
  {
112631
- if (IFrameSplitOperator.IsNonEmptyArray(outVar))
112632
- {
112633
- for(var i=0;i<outVar.length;++i)
112634
- {
112635
- outVar[i]*=-1;
112636
- }
112637
- }
112631
+ if (outVar) outVar=this.Algorithm.Subtract(0,outVar);
112638
112632
  }
112639
112633
 
112640
112634
  if (outVar) this.OutVarTable.push({Name:varName, Data:outVar,Type:type, NoneName:true});
@@ -112869,13 +112863,7 @@ function JSExecute(ast,option)
112869
112863
 
112870
112864
  if (itemExpression.Operator=='-')
112871
112865
  {
112872
- if (IFrameSplitOperator.IsNonEmptyArray(aryValue))
112873
- {
112874
- for(var i=0;i<aryValue.length;++i)
112875
- {
112876
- aryValue[i]*=-1;
112877
- }
112878
- }
112866
+ if (aryValue) aryValue=this.Algorithm.Subtract(0,aryValue);
112879
112867
  }
112880
112868
 
112881
112869
  isNoneName=true;
@@ -113174,11 +113162,11 @@ function JSExecute(ast,option)
113174
113162
  if (node.Operator=='-')
113175
113163
  {
113176
113164
  var tempValue=this.GetNodeValueEx(node.Argument);
113177
- value=this.Algorithm.Subtract(0,tempValue);
113165
+ var value=this.Algorithm.Subtract(0,tempValue);
113178
113166
  }
113179
113167
  else
113180
113168
  {
113181
- value=node.Argument.Value;
113169
+ var value=node.Argument.Value;
113182
113170
  }
113183
113171
 
113184
113172
  return value;
@@ -113929,6 +113917,32 @@ function JSExplainer(ast,option)
113929
113917
  let outVar=item.Expression.Out;
113930
113918
  this.OutVarTable.push({Name:varName, Data:`输出: ${outVar}`,Type:0, NoneName:true});
113931
113919
  }
113920
+ else if (item.Expression.Type==Syntax.UnaryExpression) //一元运算 如-C, -7, -(C+10)
113921
+ {
113922
+ var varName="__temp_l_"+i+"__";
113923
+ var argument=item.Expression.Argument;
113924
+ let outVar=null;
113925
+ if (argument.Type==Syntax.Literal)
113926
+ {
113927
+ outVar=argument.Value;
113928
+ }
113929
+ else if (argument.Type==Syntax.Identifier)
113930
+ {
113931
+ let varName=argument.Name;
113932
+ outVar=this.ReadVariable(varName,item.Expression);
113933
+ }
113934
+ else if (argument.Type==Syntax.BinaryExpression)
113935
+ {
113936
+ outVar=argument.Out;
113937
+ }
113938
+
113939
+ if (item.Expression.Operator=='-')
113940
+ {
113941
+ outVar=`-${outVar}`;
113942
+ }
113943
+
113944
+ this.OutVarTable.push({Name:varName, Data:`输出: ${outVar}`,Type:0, NoneName:true});
113945
+ }
113932
113946
  else if (item.Expression.Type==Syntax.SequenceExpression)
113933
113947
  {
113934
113948
  let varName;
@@ -114032,6 +114046,33 @@ function JSExplainer(ast,option)
114032
114046
  isNoneName=true;
114033
114047
  this.VarTable.set(varName,aryValue);
114034
114048
  }
114049
+ else if (itemExpression.Type==Syntax.UnaryExpression)
114050
+ {
114051
+ varName="__temp_sb_"+i+"__";
114052
+ var argument=itemExpression.Argument;
114053
+ let aryValue=null;
114054
+ if (argument.Type==Syntax.Literal)
114055
+ {
114056
+ aryValue=argument.Value;
114057
+ }
114058
+ else if (argument.Type==Syntax.Identifier)
114059
+ {
114060
+ let varName=argument.Name;
114061
+ aryValue=this.ReadVariable(varName,item.Expression);
114062
+ }
114063
+ else if (argument.Type==Syntax.BinaryExpression)
114064
+ {
114065
+ aryValue=argument.Out;
114066
+ }
114067
+
114068
+ if (itemExpression.Operator=='-')
114069
+ {
114070
+ aryValue=`-${aryValue}`;
114071
+ }
114072
+
114073
+ isNoneName=true;
114074
+ this.VarTable.set(varName,aryValue);
114075
+ }
114035
114076
  }
114036
114077
 
114037
114078
  var outValue;
@@ -132143,7 +132184,7 @@ function HQChartScriptWorker()
132143
132184
 
132144
132185
 
132145
132186
 
132146
- var HQCHART_VERSION="1.1.12852";
132187
+ var HQCHART_VERSION="1.1.12859";
132147
132188
 
132148
132189
  function PrintHQChartVersion()
132149
132190
  {