hqchart 1.1.12836 → 1.1.12845
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.
- package/lib/umychart.NetworkFilterTest.vue.js +2 -2
- package/lib/umychart.vue.js +13 -13
- package/package.json +1 -1
- package/src/jscommon/umychart.NetworkFilterTest.js +94 -0
- package/src/jscommon/umychart.complier.js +4 -4
- package/src/jscommon/umychart.js +52 -36
- package/src/jscommon/umychart.testdata/60000.sh.BlockTrading.js +967 -0
- package/src/jscommon/umychart.testdata/60000.sh.NewsInteract.js +7732 -0
- package/src/jscommon/umychart.testdata/60000.sh.TradeDetal.js +70 -0
- package/src/jscommon/umychart.testdata.js +94 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +57 -41
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.NetworkFilterTest.vue.js +94 -0
- package/src/jscommon/umychart.vue/umychart.vue.js +57 -41
|
@@ -11,7 +11,7 @@ HQData.RequestRealtimeData(data,callback);break;case'KLineChartContainer::Reques
|
|
|
11
11
|
HQData.RequestFlowCapitalData(data,callback);break;case'KLineChartContainer::ReqeustHistoryMinuteData'://分钟全量数据下载
|
|
12
12
|
HQData.RequestHistoryMinuteData(data,callback);break;case'KLineChartContainer::RequestMinuteRealtimeData'://分钟增量数据更新
|
|
13
13
|
HQData.RequestMinuteRealtimeData(data,callback);break;case"JSSymbolData::GetVariantData"://额外的变量数据
|
|
14
|
-
HQData.RequestIndexVariantData(data,callback);break;}};HQData.RequestMinuteData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol[0];//请求的股票代码
|
|
14
|
+
HQData.RequestIndexVariantData(data,callback);break;case"AnnouncementInfo::RequestData":HQData.AnnouncementInfo_RequestData(data,callback);break;case"PforecastInfo::RequestData":HQData.PforecastInfo_RequestData(data,callback);break;case"InvestorInfo::RequestData":HQData.InvestorInfo_RequestData(data,callback);break;case"ResearchInfo::RequestData":break;case"BlockTrading::RequestData":HQData.BlockTrading_RequestData(data,callback);break;case"TradeDetail::RequestData":HQData.TradeDetail_RequestData(data,callback);break;}};HQData.RequestMinuteData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol[0];//请求的股票代码
|
|
15
15
|
var dayCount=data.Request.Data.daycount;console.log("[HQData::RequestMinuteData] Symbol="+symbol);var hqchartData=MINUTE_1DAY_DATA;hqchartData.stock[0].symbol=symbol;hqchartData.stock[0].name=symbol;callback(hqchartData);};HQData.RequestMinuteDaysData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol;//请求的股票代码
|
|
16
16
|
var dayCount=data.Request.Data.daycount;console.log("[HQData::RequestMinuteDaysData] Symbol="+symbol);var hqchartData=MINUTE_5DAY_DATA;hqchartData.symbol=symbol;hqchartData.name=symbol;callback(hqchartData);};HQData.RequestHistoryData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol;//请求的股票代码
|
|
17
17
|
console.log("[HQData::RequestMinuteDaysData] Symbol="+symbol);var hqchartData=KLINE_DAY_DATA;hqchartData.symbol=symbol;hqchartData.name=symbol;callback(hqchartData);};HQData.RequestFlowCapitalData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol;//请求的股票代码
|
|
@@ -20,4 +20,4 @@ console.log("[HQData::RequestRealtimeData] Symbol="+symbol);var hqchartData=KLIN
|
|
|
20
20
|
console.log("[HQData::RequestHistoryMinuteData] Symbol="+symbol);var hqchartData=KLINE_MINUTE_DATA;hqchartData.name=symbol;hqchartData.symbol=symbol;callback(hqchartData);};HQData.RequestMinuteRealtimeData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol[0];//请求的股票代码
|
|
21
21
|
console.log("[HQData::RequestMinuteRealtimeData] Symbol="+symbol);var hqchartData=JSON.parse((0,_stringify2.default)(KLINE_1MINUTE_DATA));var kItem=hqchartData.data[0];var price=kItem[5];var value=Math.ceil(Math.random()*10)/1000*price;var bUp=Math.ceil(Math.random()*10)>=5;if(bUp)price+=value;else price-=value;kItem[5]=price;kItem[3]=Math.max(price,kItem[3]);kItem[4]=Math.min(price,kItem[4]);hqchartData.name=symbol;hqchartData.symbol=symbol;callback(hqchartData);};HQData.RequestIndexVariantData=function(data,callback){var varName=data.Request.Data.VariantName;//变量名称
|
|
22
22
|
if(varName=="FROMOPEN"){var hqchartData={};//单数据
|
|
23
|
-
hqchartData.Data={Date:20230707,Value:240};hqchartData.DataType=1;callback(hqchartData);}};/*暴露外部用的方法*/exports.default={HQData:HQData};
|
|
23
|
+
hqchartData.Data={Date:20230707,Value:240};hqchartData.DataType=1;callback(hqchartData);}};HQData.AnnouncementInfo_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;var hqchartData={symbol:symbol,report:[]};var kData=data.HQChart.ChartPaint[0].Data;for(var i=0,j=1;i<kData.Data.length;++i){var kItem=kData.Data[i];if(i%10!=4)continue;var itemReport={releasedate:kItem.Date,time:kItem.Time,title:"\u516C\u544A("+j+") xxxx"};hqchartData.report.push(itemReport);++j;}callback(hqchartData);};HQData.PforecastInfo_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;var hqchartData={symbol:symbol,report:[]};var kData=data.HQChart.ChartPaint[0].Data;for(var i=0,j=1;i<kData.Data.length;++i){var kItem=kData.Data[i];if(i%10!=4)continue;var itemReport={date:kItem.Date,time:kItem.Time,title:"\u516C\u544A("+j+") xxxx"};hqchartData.report.push(itemReport);++j;}callback(hqchartData);};HQData.InvestorInfo_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;callback(TEST_NEWSINTERACT_DATA);};HQData.BlockTrading_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;callback(TEST_BLOCK_TRADING_DATA);};HQData.TradeDetail_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;callback(TEST_TRADE_DETAL_DATA);};/*暴露外部用的方法*/exports.default={HQData:HQData};
|
package/lib/umychart.vue.js
CHANGED
|
@@ -4164,9 +4164,9 @@ tooltip.Data=item;tooltip.ChartPaint=this;tooltip.Type=3;//异动信息
|
|
|
4164
4164
|
return true;}}return false;};}//MACD森林线 支持横屏
|
|
4165
4165
|
function ChartMACD(){this.newMethod=IChartPainting;//派生
|
|
4166
4166
|
this.newMethod();delete this.newMethod;this.ClassName="ChartMACD";this.UpColor=g_JSChartResource.UpBarColor;this.DownColor=g_JSChartResource.DownBarColor;this.LineWidth=1;this.DrawSelectedStatus=this.DrawLinePoint;this.ExportData=this.ExportArrayData;this.PtInChart=function(x,y){var dataWidth=this.ChartFrame.DataWidth;var barWidth=this.LineWidth*GetDevicePixelRatio();if(this.barWidth==50)barWidth=null;else if(barWidth>dataWidth)barWidth=dataWidth;if(barWidth<4)barWidth=4;//宽度太小了点不到
|
|
4167
|
-
return this.PtInBar(x,y,{BarWidth:barWidth});};this.
|
|
4168
|
-
|
|
4169
|
-
this.
|
|
4167
|
+
return this.PtInBar(x,y,{BarWidth:barWidth});};this.DrawBars=function(lineWidth,bUpBar){var isMinute=this.IsMinuteFrame();var border=this.ChartBorder.GetBorder();var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;var lockRect=this.GetLockRect();if(lockRect)chartright=lockRect.Left;if(bUpBar)this.Canvas.strokeStyle=this.UpColor;else this.Canvas.strokeStyle=this.DownColor;var yBottom=this.ChartFrame.GetYFromData(0);this.Canvas.beginPath();var drawCount=0;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var value=this.Data.Data[i];if(value==null)continue;if(bUpBar){if(value<0)continue;}else{if(value>=0)continue;}if(isMinute){var x=this.ChartFrame.GetXFromIndex(j);}else{var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;}if(x>chartright)break;var y=this.ChartFrame.GetYFromData(value);var xFix=ToFixedPoint2(lineWidth,x);//毛边修正
|
|
4168
|
+
this.Canvas.moveTo(xFix,yBottom);this.Canvas.lineTo(xFix,y);++drawCount;}if(drawCount>0)this.Canvas.stroke();};this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(this.NotSupportMessage){this.DrawNotSupportmessage();return;}if(this.ChartFrame.IsHScreen===true){this.HScreenDraw();return;}var dataWidth=this.ChartFrame.DataWidth;var lineWidth=this.LineWidth*GetDevicePixelRatio();if(this.LineWidth==50)lineWidth=dataWidth;else if(lineWidth>dataWidth)lineWidth=dataWidth;var backupLineWidth=this.Canvas.lineWidth;this.Canvas.lineWidth=lineWidth;//上下分开画
|
|
4169
|
+
this.DrawBars(lineWidth,true);this.DrawBars(lineWidth,false);this.Canvas.lineWidth=backupLineWidth;};this.HScreenDraw=function(){var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var border=this.ChartBorder.GetHScreenBorder();var chartright=border.BottomEx;var xPointCount=this.ChartFrame.XPointCount;var lockRect=this.GetLockRect();if(lockRect)chartright=lockRect.Top;var yBottom=this.ChartFrame.GetYFromData(0);var lineWidth=this.LineWidth*GetDevicePixelRatio();if(this.LineWidth==50)lineWidth=dataWidth;else if(lineWidth>dataWidth)lineWidth=dataWidth;var backupLineWidth=this.Canvas.lineWidth;this.Canvas.lineWidth=lineWidth;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var value=this.Data.Data[i];if(value==null)continue;var x=this.ChartFrame.GetXFromIndex(j);var y=this.ChartFrame.GetYFromData(value);if(x>chartright)break;this.Canvas.beginPath();this.Canvas.moveTo(yBottom,ToFixedPoint(x));this.Canvas.lineTo(y,ToFixedPoint(x));if(value>=0)this.Canvas.strokeStyle=this.UpColor;else this.Canvas.strokeStyle=this.DownColor;this.Canvas.stroke();this.Canvas.closePath();}this.Canvas.lineWidth=backupLineWidth;};this.GetItemData=function(indexData){if(!indexData)return null;if(!IFrameSplitOperator.IsNumber(indexData.Index))return null;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return null;var index=indexData.Index;if(index<0||index>=this.Data.Data.length)return null;var item=this.Data.Data[index];return[{Value:item,Color:item>0?this.UpColor:this.DownColor,Name:this.Name}];};}//柱子
|
|
4170
4170
|
function ChartBar(){this.newMethod=IChartPainting;//派生
|
|
4171
4171
|
this.newMethod();delete this.newMethod;this.ClassName="ChartBar";this.UpBarColor=g_JSChartResource.UpBarColor;this.DownBarColor=g_JSChartResource.DownBarColor;this.Draw=function(){if(this.ChartFrame.IsMinSize)return;if(this.NotSupportMessage){this.DrawNotSupportmessage();return;}var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var chartright=this.ChartBorder.GetRight();var xPointCount=this.ChartFrame.XPointCount;var xOffset=this.ChartBorder.GetLeft()+distanceWidth/2.0+2.0;var bFirstPoint=true;var drawCount=0;var yBottom=this.ChartFrame.GetYFromData(0);if(dataWidth>=4){yBottom=ToFixedRect(yBottom);//调整为整数
|
|
4172
4172
|
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var value=this.Data.Data[i];if(value==null||value==0)continue;var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=this.ChartFrame.GetXFromIndex(j);var y=this.ChartFrame.GetYFromData(value);if(value>0)this.Canvas.fillStyle=this.UpBarColor;else this.Canvas.fillStyle=this.DownBarColor;//高度调整为整数
|
|
@@ -9256,7 +9256,7 @@ if(MARKET_SUFFIX_NAME.IsHSX(upperSymbol))return this.GetHSX(upperSymbol);if(MARK
|
|
|
9256
9256
|
{var splitData=g_IPETimeData.GetSplitData(upperSymbol);if(!splitData)return null;return this.GetFutures(splitData);}};}//走势图刻度分钟线
|
|
9257
9257
|
function MinuteCoordinateData(){//沪深走势图时间刻度
|
|
9258
9258
|
var SHZE_MINUTE_X_COORDINATE={Full://完整模式
|
|
9259
|
-
[[0,0,"rgb(200,200,200)","09:30"],//[0]=索引 [1]=线段类型 [2]=文字颜色(弃用) [3]=刻度文字 [4]=线段颜色 [5]=背景色
|
|
9259
|
+
[[0,0,"rgb(200,200,200)","09:30"],//[0]=索引 [1]=线段类型(预留) [2]=文字颜色(弃用) [3]=刻度文字 [4]=线段颜色 [5]=背景色
|
|
9260
9260
|
[31,0,"RGB(200,200,200)","10:00"],[61,0,"RGB(200,200,200)","10:30"],[91,0,"RGB(200,200,200)","11:00"],[122,1,"RGB(200,200,200)","13:00"],[152,0,"RGB(200,200,200)","13:30"],[182,0,"RGB(200,200,200)","14:00"],[212,0,"RGB(200,200,200)","14:30"],[242,1,"RGB(200,200,200)","15:00"]],Simple://简洁模式
|
|
9261
9261
|
[[0,0,"rgb(200,200,200)","09:30"],[61,0,"RGB(200,200,200)","10:30"],[122,1,"RGB(200,200,200)","13:00"],[182,0,"RGB(200,200,200)","14:00"],[242,1,"RGB(200,200,200)","15:00"]],Min://最小模式
|
|
9262
9262
|
[[0,0,"rgb(200,200,200)","09:30"],[122,1,"RGB(200,200,200)","13:00"],[242,1,"RGB(200,200,200)","15:00"]],Count:243,MiddleCount:122,GetData:function GetData(width){if(width<200)return this.Min;else if(width<400)return this.Simple;return this.Full;}};//上海股票期权时间刻度
|
|
@@ -11496,7 +11496,7 @@ this.VisitBinaryExpression=function(node){var stack=[];stack.push(node);var temp
|
|
|
11496
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
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
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;};this.GetNodeValue=function(node){switch(node.Type){case Syntax.Literal://数字
|
|
11499
|
-
return node.Value;case Syntax.UnaryExpression:if(node.Operator=='-'){var
|
|
11499
|
+
return node.Value;case Syntax.UnaryExpression:if(node.Operator=='-'){var value=this.GetNodeValue(node.Argument);return this.Algorithm.Subtract(0,value);}return node.Argument.Value;case Syntax.Identifier:var value=this.ReadVariable(node.Name,node);return value;case Syntax.BinaryExpression:case Syntax.LogicalExpression:return this.VisitBinaryExpression(node);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(){};}//脚本说明
|
|
11500
11500
|
function JSExplainer(ast,option){this.AST=ast;this.ErrorHandler=new ErrorHandler();this.ErrorCallback;//执行错误回调
|
|
11501
11501
|
this.UpdateUICallback;this.CallbackParam;this.JobList=[];//执行的任务队列
|
|
11502
11502
|
this.VarTable=new _map2.default();//变量表
|
|
@@ -11532,13 +11532,13 @@ else if(value.indexOf('LINEOVERLAY')==0)isOverlayLine=true;else if(value.indexOf
|
|
|
11532
11532
|
}}else if(itemExpression.Type==Syntax.Literal)//常量
|
|
11533
11533
|
{var aryValue=itemExpression.Value;_varName7=itemExpression.Value.toString();isNoneName=true;this.VarTable.set(_varName7,aryValue);//把常量放到变量表里
|
|
11534
11534
|
}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;_varName7='__temp_sc_'+itemExpression.Callee.Name+'_'+_i147+'__';isNoneName=true;this.VarTable.set(_varName7,_varValue4);}}}else if(itemExpression.Type==Syntax.BinaryExpression){_varName7="__temp_sb_"+_i147+"__";var _aryValue2=itemExpression.Out;isNoneName=true;this.VarTable.set(_varName7,_aryValue2);}}var outValue;if(draw)outValue='\u8F93\u51FA: '+draw;else if(isNoneName)outValue='\u8F93\u51FA: '+this.VarTable.get(_varName7);else outValue='\u8F93\u51FA'+_varName7+': '+this.VarTable.get(_varName7);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&&_varName7)//圆点
|
|
11535
|
-
{outValue+=",画小圆点线";var
|
|
11536
|
-
{outValue+=",画小圆圈线";var
|
|
11537
|
-
{outValue+=",画出柱状线和指标线";var
|
|
11538
|
-
{outValue+=",画柱状线";var
|
|
11539
|
-
{outValue+=",画成交量柱状线";var
|
|
11535
|
+
{outValue+=",画小圆点线";var _value14={Name:_varName7,Draw:outValue,Radius:g_JSChartResource.POINTDOT.Radius,Type:3};this.OutVarTable.push(_value14);}else if(circleDot&&_varName7)//圆点
|
|
11536
|
+
{outValue+=",画小圆圈线";var _value15={Name:_varName7,Draw:outValue,Radius:g_JSChartResource.CIRCLEDOT.Radius,Type:3};this.OutVarTable.push(_value15);}else if(lineStick&&_varName7)//LINESTICK 同时画出柱状线和指标线
|
|
11537
|
+
{outValue+=",画出柱状线和指标线";var _value16={Name:_varName7,Draw:outValue,Type:4};this.OutVarTable.push(_value16);}else if(stick&&_varName7)//STICK 画柱状线
|
|
11538
|
+
{outValue+=",画柱状线";var _value17={Name:_varName7,Draw:outValue,Type:5};this.OutVarTable.push(_value17);}else if(volStick&&_varName7)//VOLSTICK 画彩色柱状线
|
|
11539
|
+
{outValue+=",画成交量柱状线";var _value18={Name:_varName7,Draw:outValue,Type:6};this.OutVarTable.push(_value18);}else if(_varName7&&color){var _value19={Name:_varName7,Data:outValue,Color:color,Type:0};this.OutVarTable.push(_value19);}else if(draw)//画图函数
|
|
11540
11540
|
{var outVar={Name:_drawName,Draw:outValue,Type:1};this.OutVarTable.push(outVar);}else if(colorStick&&_varName7)//CYW: SUM(VAR4,10)/10000, COLORSTICK; 画上下柱子
|
|
11541
|
-
{outValue+=",画彩色柱状线";var
|
|
11541
|
+
{outValue+=",画彩色柱状线";var _value20={Name:_varName7,Draw:outValue,Color:color,Type:2};this.OutVarTable.push(_value20);}else if(_varName7){var _value21={Name:_varName7,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;}};this.VisitSequenceExpression=function(node){for(var _i148 in node.Expression){var _item29=node.Expression[_i148];this.VisitNode(_item29);}};//函数调用
|
|
11542
11542
|
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';}}],//字符串函数
|
|
11543
11543
|
["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)//动态参数
|
|
11544
11544
|
{}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);//绘图函数
|
|
@@ -11553,7 +11553,7 @@ this.VisitBinaryExpression=function(node){var stack=[];stack.push(node);var temp
|
|
|
11553
11553
|
{var leftValue=this.GetNodeValue(value.Left);var rightValue=this.GetNodeValue(value.Right);JSConsole.Complier.Log('[JSExplainer::VisitBinaryExpression] BinaryExpression',value,leftValue,rightValue);value.Out=null;//保存中间值
|
|
11554
11554
|
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;//保存中间值
|
|
11555
11555
|
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.GetNodeValue=function(node){switch(node.Type){case Syntax.Literal://数字
|
|
11556
|
-
return node.Value;case Syntax.UnaryExpression:if(node.Operator=='-'){var
|
|
11556
|
+
return node.Value;case Syntax.UnaryExpression:if(node.Operator=='-'){var _value22=this.GetNodeValue(node.Argument);return'-'+_value22;}return node.Argument.Value;case Syntax.Identifier:var value=this.ReadVariable(node.Name,node);return value;case Syntax.BinaryExpression:case Syntax.LogicalExpression:return this.VisitBinaryExpression(node);case Syntax.CallExpression:return this.VisitCallExpression(node);default:this.ThrowUnexpectedNode(node);}};//读取变量
|
|
11557
11557
|
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);//读取自定义变量
|
|
11558
11558
|
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")//信号过滤
|
|
11559
11559
|
{return this.AUTOFILTER();}this.ThrowUnexpectedNode(node,'变量'+name+'不存在');return name;};this.AUTOFILTER=function(){//TODO:过滤信号
|
|
@@ -13029,7 +13029,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
|
|
|
13029
13029
|
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);};}/********************************************************************************
|
|
13030
13030
|
* 版本信息输出
|
|
13031
13031
|
*
|
|
13032
|
-
*/var HQCHART_VERSION="1.1.
|
|
13032
|
+
*/var HQCHART_VERSION="1.1.12844";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();//把给外界调用的方法暴露出来
|
|
13033
13033
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
13034
13034
|
// BaseIndex:BaseIndex,
|
|
13035
13035
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
|
@@ -48717,6 +48717,29 @@ HQData.NetworkFilter=function(data, callback)
|
|
|
48717
48717
|
case "JSSymbolData::GetVariantData": //额外的变量数据
|
|
48718
48718
|
HQData.RequestIndexVariantData(data,callback);
|
|
48719
48719
|
break;
|
|
48720
|
+
|
|
48721
|
+
case "AnnouncementInfo::RequestData":
|
|
48722
|
+
HQData.AnnouncementInfo_RequestData(data,callback);
|
|
48723
|
+
break;
|
|
48724
|
+
|
|
48725
|
+
case "PforecastInfo::RequestData":
|
|
48726
|
+
HQData.PforecastInfo_RequestData(data,callback);
|
|
48727
|
+
break;
|
|
48728
|
+
|
|
48729
|
+
case "InvestorInfo::RequestData":
|
|
48730
|
+
HQData.InvestorInfo_RequestData(data,callback);
|
|
48731
|
+
break;
|
|
48732
|
+
|
|
48733
|
+
case "ResearchInfo::RequestData":
|
|
48734
|
+
break;
|
|
48735
|
+
|
|
48736
|
+
case "BlockTrading::RequestData":
|
|
48737
|
+
HQData.BlockTrading_RequestData(data,callback);
|
|
48738
|
+
break;
|
|
48739
|
+
|
|
48740
|
+
case "TradeDetail::RequestData":
|
|
48741
|
+
HQData.TradeDetail_RequestData(data,callback);
|
|
48742
|
+
break;
|
|
48720
48743
|
}
|
|
48721
48744
|
}
|
|
48722
48745
|
|
|
@@ -48842,3 +48865,74 @@ HQData.RequestIndexVariantData=function(data,callback)
|
|
|
48842
48865
|
}
|
|
48843
48866
|
|
|
48844
48867
|
}
|
|
48868
|
+
|
|
48869
|
+
HQData.AnnouncementInfo_RequestData=function(data,callback)
|
|
48870
|
+
{
|
|
48871
|
+
data.PreventDefault=true;
|
|
48872
|
+
var symbol=data.Request.Symbol;
|
|
48873
|
+
|
|
48874
|
+
var hqchartData={ symbol:symbol, report:[] };
|
|
48875
|
+
|
|
48876
|
+
var kData=data.HQChart.ChartPaint[0].Data;
|
|
48877
|
+
for(var i=0, j=1;i<kData.Data.length;++i)
|
|
48878
|
+
{
|
|
48879
|
+
var kItem=kData.Data[i];
|
|
48880
|
+
if (i%10!=4) continue;
|
|
48881
|
+
|
|
48882
|
+
var itemReport={ releasedate:kItem.Date, time:kItem.Time, title:`公告(${j}) xxxx`, }
|
|
48883
|
+
|
|
48884
|
+
hqchartData.report.push(itemReport);
|
|
48885
|
+
|
|
48886
|
+
++j;
|
|
48887
|
+
}
|
|
48888
|
+
|
|
48889
|
+
callback(hqchartData);
|
|
48890
|
+
}
|
|
48891
|
+
|
|
48892
|
+
|
|
48893
|
+
HQData.PforecastInfo_RequestData=function(data,callback)
|
|
48894
|
+
{
|
|
48895
|
+
data.PreventDefault=true;
|
|
48896
|
+
var symbol=data.Request.Symbol;
|
|
48897
|
+
|
|
48898
|
+
var hqchartData={ symbol:symbol, report:[] };
|
|
48899
|
+
|
|
48900
|
+
var kData=data.HQChart.ChartPaint[0].Data;
|
|
48901
|
+
for(var i=0, j=1;i<kData.Data.length;++i)
|
|
48902
|
+
{
|
|
48903
|
+
var kItem=kData.Data[i];
|
|
48904
|
+
if (i%10!=4) continue;
|
|
48905
|
+
|
|
48906
|
+
var itemReport={ date:kItem.Date, time:kItem.Time, title:`公告(${j}) xxxx`, }
|
|
48907
|
+
|
|
48908
|
+
hqchartData.report.push(itemReport);
|
|
48909
|
+
|
|
48910
|
+
++j;
|
|
48911
|
+
}
|
|
48912
|
+
|
|
48913
|
+
callback(hqchartData);
|
|
48914
|
+
}
|
|
48915
|
+
|
|
48916
|
+
HQData.InvestorInfo_RequestData=function(data,callback)
|
|
48917
|
+
{
|
|
48918
|
+
data.PreventDefault=true;
|
|
48919
|
+
var symbol=data.Request.Symbol;
|
|
48920
|
+
|
|
48921
|
+
callback(TEST_NEWSINTERACT_DATA);
|
|
48922
|
+
}
|
|
48923
|
+
|
|
48924
|
+
HQData.BlockTrading_RequestData=function(data,callback)
|
|
48925
|
+
{
|
|
48926
|
+
data.PreventDefault=true;
|
|
48927
|
+
var symbol=data.Request.Symbol;
|
|
48928
|
+
|
|
48929
|
+
callback(TEST_BLOCK_TRADING_DATA);
|
|
48930
|
+
}
|
|
48931
|
+
|
|
48932
|
+
HQData.TradeDetail_RequestData=function(data,callback)
|
|
48933
|
+
{
|
|
48934
|
+
data.PreventDefault=true;
|
|
48935
|
+
var symbol=data.Request.Symbol;
|
|
48936
|
+
|
|
48937
|
+
callback(TEST_TRADE_DETAL_DATA);
|
|
48938
|
+
}
|
|
@@ -17966,16 +17966,16 @@ function JSExecute(ast,option)
|
|
|
17966
17966
|
case Syntax.UnaryExpression:
|
|
17967
17967
|
if (node.Operator=='-')
|
|
17968
17968
|
{
|
|
17969
|
-
|
|
17969
|
+
var value=this.GetNodeValue(node.Argument);
|
|
17970
17970
|
return this.Algorithm.Subtract(0,value);
|
|
17971
17971
|
}
|
|
17972
17972
|
return node.Argument.Value;
|
|
17973
17973
|
case Syntax.Identifier:
|
|
17974
|
-
|
|
17974
|
+
var value=this.ReadVariable(node.Name,node);
|
|
17975
17975
|
return value;
|
|
17976
17976
|
case Syntax.BinaryExpression:
|
|
17977
17977
|
case Syntax.LogicalExpression:
|
|
17978
|
-
return node
|
|
17978
|
+
return this.VisitBinaryExpression(node);
|
|
17979
17979
|
case Syntax.CallExpression:
|
|
17980
17980
|
return this.VisitCallExpression(node);
|
|
17981
17981
|
case Syntax.MemberExpression:
|
|
@@ -19027,7 +19027,7 @@ function JSExplainer(ast,option)
|
|
|
19027
19027
|
return value;
|
|
19028
19028
|
case Syntax.BinaryExpression:
|
|
19029
19029
|
case Syntax.LogicalExpression:
|
|
19030
|
-
return node
|
|
19030
|
+
return this.VisitBinaryExpression(node);
|
|
19031
19031
|
case Syntax.CallExpression:
|
|
19032
19032
|
return this.VisitCallExpression(node);
|
|
19033
19033
|
default:
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -33555,49 +33555,37 @@ function ChartMACD()
|
|
|
33555
33555
|
return this.PtInBar(x, y, { BarWidth:barWidth })
|
|
33556
33556
|
}
|
|
33557
33557
|
|
|
33558
|
-
this.
|
|
33558
|
+
this.DrawBars=function(lineWidth, bUpBar)
|
|
33559
33559
|
{
|
|
33560
|
-
if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
|
|
33561
|
-
if (this.IsShowIndexTitleOnly()) return;
|
|
33562
|
-
if (this.IsHideScriptIndex()) return;
|
|
33563
|
-
|
|
33564
|
-
if (this.NotSupportMessage)
|
|
33565
|
-
{
|
|
33566
|
-
this.DrawNotSupportmessage();
|
|
33567
|
-
return;
|
|
33568
|
-
}
|
|
33569
|
-
|
|
33570
|
-
if (this.ChartFrame.IsHScreen===true)
|
|
33571
|
-
{
|
|
33572
|
-
this.HScreenDraw();
|
|
33573
|
-
return;
|
|
33574
|
-
}
|
|
33575
|
-
|
|
33576
33560
|
var isMinute=this.IsMinuteFrame();
|
|
33561
|
+
var border=this.ChartBorder.GetBorder();
|
|
33577
33562
|
var dataWidth=this.ChartFrame.DataWidth;
|
|
33578
33563
|
var distanceWidth=this.ChartFrame.DistanceWidth;
|
|
33579
|
-
var
|
|
33564
|
+
var xPointCount=this.ChartFrame.XPointCount;
|
|
33580
33565
|
var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
33566
|
+
|
|
33581
33567
|
var chartright=border.RightEx;
|
|
33582
|
-
var xPointCount=this.ChartFrame.XPointCount;
|
|
33583
33568
|
var lockRect=this.GetLockRect();
|
|
33584
33569
|
if (lockRect) chartright=lockRect.Left;
|
|
33585
33570
|
|
|
33586
|
-
|
|
33587
|
-
|
|
33571
|
+
if (bUpBar) this.Canvas.strokeStyle=this.UpColor;
|
|
33572
|
+
else this.Canvas.strokeStyle=this.DownColor;
|
|
33573
|
+
|
|
33588
33574
|
var yBottom=this.ChartFrame.GetYFromData(0);
|
|
33589
|
-
|
|
33590
|
-
var
|
|
33591
|
-
if (this.LineWidth==50) lineWidth=dataWidth;
|
|
33592
|
-
else if (lineWidth>dataWidth) lineWidth=dataWidth;
|
|
33593
|
-
|
|
33594
|
-
var backupLineWidth=this.Canvas.lineWidth;
|
|
33595
|
-
this.Canvas.lineWidth=lineWidth;
|
|
33575
|
+
this.Canvas.beginPath();
|
|
33576
|
+
var drawCount=0;
|
|
33596
33577
|
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
|
|
33597
|
-
//for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
|
|
33598
33578
|
{
|
|
33599
33579
|
var value=this.Data.Data[i];
|
|
33600
33580
|
if (value==null) continue;
|
|
33581
|
+
if (bUpBar)
|
|
33582
|
+
{
|
|
33583
|
+
if (value<0) continue;
|
|
33584
|
+
}
|
|
33585
|
+
else
|
|
33586
|
+
{
|
|
33587
|
+
if (value>=0) continue;
|
|
33588
|
+
}
|
|
33601
33589
|
|
|
33602
33590
|
if (isMinute)
|
|
33603
33591
|
{
|
|
@@ -33610,21 +33598,49 @@ function ChartMACD()
|
|
|
33610
33598
|
if (right>chartright) break;
|
|
33611
33599
|
var x=left+(right-left)/2;
|
|
33612
33600
|
}
|
|
33613
|
-
var y=this.ChartFrame.GetYFromData(value);
|
|
33614
33601
|
|
|
33615
33602
|
if (x>chartright) break;
|
|
33616
33603
|
|
|
33604
|
+
var y=this.ChartFrame.GetYFromData(value);
|
|
33617
33605
|
var xFix=ToFixedPoint2(lineWidth, x); //毛边修正
|
|
33618
|
-
this.Canvas.beginPath();
|
|
33619
33606
|
this.Canvas.moveTo(xFix,yBottom);
|
|
33620
33607
|
this.Canvas.lineTo(xFix,y);
|
|
33608
|
+
++drawCount;
|
|
33609
|
+
}
|
|
33621
33610
|
|
|
33622
|
-
|
|
33623
|
-
|
|
33624
|
-
|
|
33625
|
-
|
|
33611
|
+
if (drawCount>0) this.Canvas.stroke();
|
|
33612
|
+
}
|
|
33613
|
+
|
|
33614
|
+
this.Draw=function()
|
|
33615
|
+
{
|
|
33616
|
+
if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
|
|
33617
|
+
if (this.IsShowIndexTitleOnly()) return;
|
|
33618
|
+
if (this.IsHideScriptIndex()) return;
|
|
33619
|
+
|
|
33620
|
+
if (this.NotSupportMessage)
|
|
33621
|
+
{
|
|
33622
|
+
this.DrawNotSupportmessage();
|
|
33623
|
+
return;
|
|
33624
|
+
}
|
|
33625
|
+
|
|
33626
|
+
if (this.ChartFrame.IsHScreen===true)
|
|
33627
|
+
{
|
|
33628
|
+
this.HScreenDraw();
|
|
33629
|
+
return;
|
|
33626
33630
|
}
|
|
33627
33631
|
|
|
33632
|
+
var dataWidth=this.ChartFrame.DataWidth;
|
|
33633
|
+
var lineWidth=this.LineWidth*GetDevicePixelRatio();
|
|
33634
|
+
if (this.LineWidth==50) lineWidth=dataWidth;
|
|
33635
|
+
else if (lineWidth>dataWidth) lineWidth=dataWidth;
|
|
33636
|
+
|
|
33637
|
+
var backupLineWidth=this.Canvas.lineWidth;
|
|
33638
|
+
this.Canvas.lineWidth=lineWidth;
|
|
33639
|
+
|
|
33640
|
+
//上下分开画
|
|
33641
|
+
this.DrawBars(lineWidth, true);
|
|
33642
|
+
this.DrawBars(lineWidth, false);
|
|
33643
|
+
|
|
33628
33644
|
this.Canvas.lineWidth=backupLineWidth;
|
|
33629
33645
|
}
|
|
33630
33646
|
|
|
@@ -88562,7 +88578,7 @@ function MinuteCoordinateData()
|
|
|
88562
88578
|
{
|
|
88563
88579
|
Full: //完整模式
|
|
88564
88580
|
[
|
|
88565
|
-
[0, 0, "rgb(200,200,200)", "09:30"], //[0]=索引 [1]=线段类型 [2]=文字颜色(弃用) [3]=刻度文字 [4]=线段颜色 [5]=背景色
|
|
88581
|
+
[0, 0, "rgb(200,200,200)", "09:30"], //[0]=索引 [1]=线段类型(预留) [2]=文字颜色(弃用) [3]=刻度文字 [4]=线段颜色 [5]=背景色
|
|
88566
88582
|
[31, 0, "RGB(200,200,200)", "10:00"],
|
|
88567
88583
|
[61, 0, "RGB(200,200,200)", "10:30"],
|
|
88568
88584
|
[91, 0, "RGB(200,200,200)", "11:00"],
|