hqchart 1.1.12649 → 1.1.12655
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.vue.js +17 -12
- package/package.json +1 -1
- package/src/jscommon/umychart.complier.js +47 -20
- package/src/jscommon/umychart.js +11 -5
- package/src/jscommon/umychart.resource/js/codemirror/javascript.js +2 -1
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +59 -26
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +59 -26
package/lib/umychart.vue.js
CHANGED
|
@@ -3943,7 +3943,9 @@ if(this.Position.Type==0)this.Canvas.textAlign='left';else if(this.Position.Type
|
|
|
3943
3943
|
var xRect=x-margin[0];var yRect=y-margin[2];var bgWidth=textWidth+margin[2]+margin[3];var bgHeight=drawInfo.Font.Height+margin[0]+margin[1];if(this.TextBG.Color){this.Canvas.fillStyle=this.TextBG.Color;this.Canvas.fillRect(xRect,yRect,bgHeight,bgWidth);}if(this.TextBG.Border){this.Canvas.strokeStyle=this.TextBG.Border;this.Canvas.strokeRect(ToFixedPoint(xRect),ToFixedPoint(yRect),ToFixedRect(bgHeight),ToFixedRect(bgWidth));}}this.Canvas.textBaseline="bottom";this.Canvas.textAlign="left";this.Canvas.fillStyle=drawInfo.Text.Color;this.Canvas.save();this.Canvas.translate(x,y);this.Canvas.rotate(90*Math.PI/180);this.Canvas.fillText(text,0,0);this.Canvas.restore();}else{var x=drawInfo.X;var y=drawInfo.Y;if(drawInfo.Text.Align=="right")x=x-textWidth;else if(drawInfo.Text.Align=="center")x=x-textWidth/2;if(drawInfo.Text.Baseline=="top")y+=drawInfo.Font.Height;else if(drawInfo.Text.Baseline=="middle")y+=drawInfo.Font.Height/2;if(this.TextBG&&(this.TextBG.Color||this.TextBG.Border)){var margin=this.TextBG.Margin;//0=上 1=下 2=左 3=右
|
|
3944
3944
|
var xRect=x-margin[2];var yRect=y-drawInfo.Font.Height-margin[1];var bgWidth=textWidth+margin[2]+margin[3];var bgHeight=drawInfo.Font.Height+margin[0]+margin[1];if(this.TextBG.Color){this.Canvas.fillStyle=this.TextBG.Color;this.Canvas.fillRect(xRect,yRect,bgWidth,bgHeight);}if(this.TextBG.Border){this.Canvas.strokeStyle=this.TextBG.Border;this.Canvas.strokeRect(ToFixedPoint(xRect),ToFixedPoint(yRect),ToFixedRect(bgWidth),ToFixedRect(bgHeight));}}this.Canvas.textBaseline="bottom";this.Canvas.textAlign="left";this.Canvas.fillStyle=drawInfo.Text.Color;this.Canvas.fillText(text,x,y);}};}function ChartTradeIcon(){this.newMethod=IChartPainting;//派生
|
|
3945
3945
|
this.newMethod();delete this.newMethod;this.ClassName='ChartTradeIcon';//类名
|
|
3946
|
-
this.TextAlign='center';this.TextBaseline='middle';this.SVG={Family:"iconfont",Size:12};this.AryIcon;this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(!this.Data||!this.Data.Data)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryIcon))return;this.Canvas.font=this.SVG.Size+'px '+this.SVG.Family;this.Canvas.textAlign=this.TextAlign;this.Canvas.textBaseline='middle';var yOffset=0;if(this.TradeType=="BUY"||this.TradeType=="BUYSHORT"){this.Canvas.textBaseline="top";yOffset
|
|
3946
|
+
this.TextAlign='center';this.TextBaseline='middle';this.SVG={Family:"iconfont",Size:12};this.AryIcon;this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(!this.Data||!this.Data.Data)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryIcon))return;var bHScreen=this.ChartFrame.IsHScreen===true;this.Canvas.font=this.SVG.Size+'px '+this.SVG.Family;this.Canvas.textAlign=this.TextAlign;this.Canvas.textBaseline='middle';var yOffset=0;if(this.TradeType=="BUY"||this.TradeType=="BUYSHORT"){this.Canvas.textBaseline="top";yOffset+=bHScreen?-2:2;}else if(this.TradeType=="SELL"||this.TradeType=="SELLSHORT"){this.Canvas.textBaseline="bottom";yOffset=bHScreen?2:-2;}var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var chartright=this.ChartBorder.GetRight();var xPointCount=this.ChartFrame.XPointCount;var border=this.ChartFrame.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;if(bHScreen){chartright=this.ChartBorder.GetBottom();//top=this.ChartBorder.GetRightEx();
|
|
3947
|
+
//bottom=this.ChartBorder.GetLeftEx();
|
|
3948
|
+
xOffset=this.ChartBorder.GetTop()+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;}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(!IFrameSplitOperator.IsNumber(value))continue;if(value<=0)continue;var iconItem=this.AryIcon[i];if(!IFrameSplitOperator.IsNumber(iconItem.Value)||!iconItem.Icon)continue;var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;var y=this.GetYFromData(iconItem.Value,false);this.Canvas.fillStyle=iconItem.Color;if(dataWidth>2)x=ToFixedPoint(x);this.DrawTradeIcon(iconItem.Icon,x,y+yOffset,bHScreen);}};this.DrawTradeIcon=function(text,x,y,isHScreen){if(isHScreen){this.Canvas.save();this.Canvas.translate(y,x);this.Canvas.rotate(90*Math.PI/180);this.Canvas.fillText(text,0,0);this.Canvas.restore();}else{this.Canvas.fillText(text,x,y);}};this.GetMaxMin=function(){var range={Max:null,Min:null};if(!this.Data||!this.Data.Data)return range;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryIcon))return range;var xPointCount=this.ChartFrame.XPointCount;var start=this.Data.DataOffset;if(this.ChartFrame.GlobalOption&&this.ChartFrame.GlobalOption.IsValueFullRange){start=0;xPointCount=this.Data.Data.length;}for(var i=start,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var value=this.Data.Data[i];if(!IFrameSplitOperator.IsNumber(value))continue;if(value<=0)continue;var iconItem=this.AryIcon[i];if(!IFrameSplitOperator.IsNumber(iconItem.Value)||!iconItem.Icon)continue;if(range.Max==null)range.Max=iconItem.Value;else if(range.Max<iconItem.Value)range.Max=iconItem.Value;if(range.Min==null)range.Min=iconItem.Value;else if(range.Min>iconItem.Value)range.Min=iconItem.Value;}return range;};}function ChartDrawText(){this.newMethod=IChartPainting;//派生
|
|
3947
3949
|
this.newMethod();delete this.newMethod;this.ClassName='ChartDrawText';//类名
|
|
3948
3950
|
this.Color="rgb(255,193,37)";//线段颜色
|
|
3949
3951
|
this.TextFont="14px 微软雅黑";//线段宽度
|
|
@@ -10617,7 +10619,8 @@ this.DRAWGBK=function(condition,color,color2,colorAngle){var drawData={Color:[],
|
|
|
10617
10619
|
//例如:
|
|
10618
10620
|
//DRAWGBK_DIV(C>O,RGB(0,255,0),RGB(255,0,0),0,0);
|
|
10619
10621
|
this.DRAWGBK_DIV=function(condition,color,color2,colorType,fillType){var drawData={AryColor:[color,color2],ColorType:colorType,FillType:fillType,Data:[]};var result={DrawData:drawData,DrawType:'DRAWGBK_DIV'};if(!this.SymbolData||!this.SymbolData.Data||!IFrameSplitOperator.IsNonEmptyArray(this.SymbolData.Data.Data))return result;var aryKData=this.SymbolData.Data.Data;if(Array.isArray(condition)){for(var i=0;i<aryKData.length;++i){var condItem=condition[i];var item=null;if(condItem){var kItem=aryKData[i];if(fillType==1)item={AryValue:[kItem.High,kItem.Low]};else if(fillType==2)item={AryValue:[kItem.Open,kItem.Close]};else item={AryValue:null};}drawData.Data[i]=item;}}else{if(condition){for(var i=0;i<aryKData.length;++i){var kItem=aryKData[i];var item=null;if(fillType==1)item={AryValue:[kItem.High,kItem.Low]};else if(fillType==2)item={AryValue:[kItem.Open,kItem.Close]};else item={AryValue:null};drawData.Data[i]=item;}}}return result;};//画文字 及线段
|
|
10620
|
-
this.DRAWTEXT_LINE=function(condition,price,text,textcolor,fontSize,linetype,linecolor){var drawData={Text:{Title:text,Color:textcolor},Line:{Type:linetype,Color:linecolor}};if(fontSize<=0)fontSize=12;drawData.Text.Font=fontSize*GetDevicePixelRatio()+'px 微软雅黑';var result={DrawData:null,DrawType:'DRAWTEXT_LINE'};if(Array.isArray(condition)){
|
|
10622
|
+
this.DRAWTEXT_LINE=function(condition,price,text,textcolor,fontSize,linetype,linecolor){var drawData={Text:{Title:text,Color:textcolor},Line:{Type:linetype,Color:linecolor}};if(fontSize<=0)fontSize=12;drawData.Text.Font=fontSize*GetDevicePixelRatio()+'px 微软雅黑';var result={DrawData:null,DrawType:'DRAWTEXT_LINE'};if(Array.isArray(condition)){var item=null;if(IFrameSplitOperator.IsNonEmptyArray(condition))item=condition[condition.length-1];//取最后一个数值
|
|
10623
|
+
if(item){if(Array.isArray(price))drawData.Price=price[condition.length-1];else drawData.Price=price;result.DrawData=drawData;}}else{if(condition){if(Array.isArray(price)){var value=null;if(price.length>0)value=price[price.length-1];drawData.Price=value;}else{drawData.Price=price;}result.DrawData=drawData;}}return result;};// 相对位置上画矩形.
|
|
10621
10624
|
//用法: DRAWRECTREL(LEFT,TOP,RIGHT,BOTTOM,COLOR),以图形窗口(LEFT,TOP)为左上角,(RIGHT,BOTTOM)为右下角绘制矩形,坐标单位是窗口沿水平和垂直方向的1/1000,取值范围是0—999,超出范围则可能显示在图形窗口外,矩形中间填充颜色COLOR,COLOR为0表示不填充.
|
|
10622
10625
|
//例如: DRAWRECTREL(0,0,500,500,RGB(255,255,0))表示在图形最左上部1/4位置用黄色绘制矩形
|
|
10623
10626
|
this.DRAWRECTREL=function(left,top,right,bottom,color){var drawData={Rect:{Left:Math.min(left,right),Top:Math.min(top,bottom),Right:Math.max(right,left),Bottom:Math.max(bottom,top)},Color:color};if(color==0)drawData.Color=null;var result={DrawData:drawData,DrawType:'DRAWRECTREL'};return result;};//DRAWTEXTREL(X,Y,TEXT),在图形窗口(X,Y)坐标位置书写文字TEXT,坐标单位是窗口沿水平和垂直方向的1/1000,X、Y取值范围是0—999,超出范围则可能显示在图形窗口外。
|
|
@@ -11304,17 +11307,17 @@ else if(value.indexOf('LINEOVERLAY')==0)isOverlayLine=true;else if(value.indexOf
|
|
|
11304
11307
|
}}else if(itemExpression.Type==Syntax.Literal)//常量
|
|
11305
11308
|
{var aryValue=itemExpression.Value;_varName7=itemExpression.Value.toString();isNoneName=true;this.VarTable.set(_varName7,aryValue);//把常量放到变量表里
|
|
11306
11309
|
}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+'_'+_i146+'__';isNoneName=true;this.VarTable.set(_varName7,_varValue4);}}}else if(itemExpression.Type==Syntax.BinaryExpression){_varName7="__temp_sb_"+_i146+"__";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)//圆点
|
|
11307
|
-
{outValue+=",画小圆点线";var _value15={Name:_varName7,
|
|
11308
|
-
{outValue+=",画小圆圈线";var _value16={Name:_varName7,
|
|
11309
|
-
{outValue+=",画出柱状线和指标线";var _value17={Name:_varName7,
|
|
11310
|
-
{outValue+=",画柱状线";var _value18={Name:_varName7,
|
|
11311
|
-
{outValue+=",画成交量柱状线";var _value19={Name:_varName7,
|
|
11312
|
-
{var outVar={Name:_drawName,
|
|
11313
|
-
{outValue+=",画彩色柱状线";var _value21={Name:_varName7,
|
|
11310
|
+
{outValue+=",画小圆点线";var _value15={Name:_varName7,Draw:outValue,Radius:g_JSChartResource.POINTDOT.Radius,Type:3};this.OutVarTable.push(_value15);}else if(circleDot&&_varName7)//圆点
|
|
11311
|
+
{outValue+=",画小圆圈线";var _value16={Name:_varName7,Draw:outValue,Radius:g_JSChartResource.CIRCLEDOT.Radius,Type:3};this.OutVarTable.push(_value16);}else if(lineStick&&_varName7)//LINESTICK 同时画出柱状线和指标线
|
|
11312
|
+
{outValue+=",画出柱状线和指标线";var _value17={Name:_varName7,Draw:outValue,Type:4};this.OutVarTable.push(_value17);}else if(stick&&_varName7)//STICK 画柱状线
|
|
11313
|
+
{outValue+=",画柱状线";var _value18={Name:_varName7,Draw:outValue,Type:5};this.OutVarTable.push(_value18);}else if(volStick&&_varName7)//VOLSTICK 画彩色柱状线
|
|
11314
|
+
{outValue+=",画成交量柱状线";var _value19={Name:_varName7,Draw:outValue,Type:6};this.OutVarTable.push(_value19);}else if(_varName7&&color){var _value20={Name:_varName7,Data:outValue,Color:color,Type:0};this.OutVarTable.push(_value20);}else if(draw)//画图函数
|
|
11315
|
+
{var outVar={Name:_drawName,Draw:outValue,Type:1};this.OutVarTable.push(outVar);}else if(colorStick&&_varName7)//CYW: SUM(VAR4,10)/10000, COLORSTICK; 画上下柱子
|
|
11316
|
+
{outValue+=",画彩色柱状线";var _value21={Name:_varName7,Draw:outValue,Color:color,Type:2};this.OutVarTable.push(_value21);}else if(_varName7){var _value22={Name:_varName7,Data:outValue,Type:0};this.OutVarTable.push(_value22);}}}}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 _i147 in node.Expression){var _item28=node.Expression[_i147];this.VisitNode(_item28);}};//函数调用
|
|
11314
11317
|
this.VisitCallExpression=function(node){var funcName=node.Callee.Name;var args=[];for(var _i148 in node.Arguments){var _item29=node.Arguments[_i148];var value=void 0;if(_item29.Type==Syntax.BinaryExpression||_item29.Type==Syntax.LogicalExpression)value=this.VisitBinaryExpression(_item29);else if(_item29.Type==Syntax.CallExpression)value=this.VisitCallExpression(_item29);else value=this.GetNodeValue(_item29);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';}}],//字符串函数
|
|
11315
11318
|
["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];}}],["NAMEINCLUD",{Name:"NAMEINCLUD",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';}}],["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)//动态参数
|
|
11316
11319
|
{}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);//绘图函数
|
|
11317
|
-
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"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;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 自定义色
|
|
11320
|
+
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];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 自定义色
|
|
11318
11321
|
//格式为COLOR+“RRGGBB”:RR、GG、BB表示红色、绿色和蓝色的分量,每种颜色的取值范围是00-FF,采用了16进制。
|
|
11319
11322
|
//例如:MA5:MA(CLOSE,5),COLOR00FFFF 表示纯红色与纯绿色的混合色:COLOR808000表示淡蓝色和淡绿色的混合色。
|
|
11320
11323
|
if(colorName.indexOf('COLOR')==0)return'#'+colorName.substr(5);return'rgb(30,144,255)';};this.GetLineWidthExplain=function(lineWidth){var width=parseInt(lineWidth.replace("LINETHICK",""));if(IFrameSplitOperator.IsPlusNumber(width))return width;return 1;};this.SymbolPeriodExplain=function(valueName,period){var mapStockDataName=new _map2.default([['CLOSE',"收盘价"],["C","收盘价"],['VOL',"成交量"],['V',"成交量"],['OPEN',"开盘价"],['O',"开盘价"],['HIGH',"最高价"],['H',"最高价"],['LOW',"最低价"],['L',"最低价"],['AMOUNT',"成交金额"],['AMO',"成交金额"],['VOLINSTK',"持仓量"]]);//MIN1,MIN5,MIN15,MIN30,MIN60,DAY,WEEK,MONTH,SEASON,YEAR
|
|
@@ -11459,7 +11462,9 @@ if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK","
|
|
|
11459
11462
|
hqChart.ChartPaint.push(line);};this.CreateChartSlopeLine=function(hqChart,windowIndex,varItem,id){var line=new ChartSlopeLine();line.Canvas=hqChart.Canvas;line.Name=varItem.Name;line.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;line.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(varItem.Color)line.Color=this.GetColor(varItem.Color);else line.Color=this.GetDefaultColor(id);if(varItem.IsDotLine)line.IsDotLine=true;//虚线
|
|
11460
11463
|
if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)line.LineWidth=width;}var titleIndex=windowIndex+1;line.Data.Data=varItem.Draw.DrawData.Data;line.Option=varItem.Draw.DrawData.Option;hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(line.Data,null,line.Color);//给一个空的标题
|
|
11461
11464
|
hqChart.ChartPaint.push(line);};this.CreateChartVericaltLine=function(hqChart,windowIndex,varItem,id){var chart=new ChartVericaltLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}this.SetChartLineDash(chart,varItem.Draw.DrawData);chart.Data.Data=varItem.Draw.DrawData.Data;hqChart.ChartPaint.push(chart);};this.SetChartLineDash=function(chart,option){if(IFrameSplitOperator.IsNumber(option.LineType)){var lineType=option.LineType;var pixelRatio=GetDevicePixelRatio();switch(lineType){case 1:chart.LineType=[10*pixelRatio,10*pixelRatio];break;case 2:chart.LineType=[0,10*pixelRatio];chart.LineCap="square";break;case 3:chart.LineType=[10*pixelRatio,3*pixelRatio,3*pixelRatio,3*pixelRatio];break;case 4:chart.LineType=[10*pixelRatio,3*pixelRatio,3*pixelRatio,3*pixelRatio,3*pixelRatio,3*pixelRatio];break;}}else if(IFrameSplitOperator.IsString(option.LineType)){var aryString=option.LineType.split(',');var aryLinType=[];for(var i=0;i<aryString.length;++i){aryLinType.push(parseInt(aryString[i]));}chart.LineType=aryLinType;}};this.CreateChartHorizontalLine=function(hqChart,windowIndex,varItem,id){var chart=new ChartHorizontalLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}this.SetChartLineDash(chart,varItem.Draw.DrawData);chart.ExtendType=varItem.Draw.DrawData.Extend;chart.Data.Data=varItem.Draw.DrawData.Data;hqChart.ChartPaint.push(chart);};this.CreateBackgroud=function(hqChart,windowIndex,varItem,id){var chart=new ChartBackground();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(varItem.Draw&&varItem.Draw.DrawData){var drawData=varItem.Draw.DrawData;chart.Color=drawData.Color;chart.ColorAngle=drawData.Angle;if(drawData.Data)chart.Data.Data=drawData.Data;}hqChart.ChartPaint.push(chart);};this.CreateBackgroundDiv=function(hqChart,windowIndex,varItem,id){var chart=new ChartBackgroundDiv();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(varItem.Draw&&varItem.Draw.DrawData){var drawData=varItem.Draw.DrawData;chart.AryColor=drawData.AryColor;chart.ColorType=drawData.ColorType;if(drawData.Data)chart.Data.Data=drawData.Data;}hqChart.ChartPaint.push(chart);};this.CreateLineMultiData=function(hqChart,windowIndex,varItem,id){var chart=new ChartLineMultiData();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(varItem.Draw&&varItem.Draw.DrawData){var drawData=varItem.Draw.DrawData;chart.Color=drawData.Color;if(drawData.PointColor)chart.PointColor=drawData.PointColor;if(IFrameSplitOperator.IsPlusNumber(drawData.PointRadius))chart.PointRadius=drawData.PointRadius;if(IFrameSplitOperator.IsPlusNumber(drawData.LineWidth))chart.LineWidth=drawData.LineWidth;if(drawData.Data)chart.Data.Data=drawData.Data;}var titleIndex=windowIndex+1;var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);//标题
|
|
11462
|
-
titleData.DataType="MULTI_POINT_LINE";hqChart.TitlePaint[titleIndex].Data[id]=titleData;hqChart.ChartPaint.push(chart);};this.CreateTradeIcon=function(hqChart,windowIndex,varItem,id){var chart=new ChartTradeIcon();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data.Data=varItem.Draw.DrawData.Data;chart.AryIcon=varItem.Draw.DrawData.Icons;chart.TradeType=varItem.Draw.DrawType
|
|
11465
|
+
titleData.DataType="MULTI_POINT_LINE";hqChart.TitlePaint[titleIndex].Data[id]=titleData;hqChart.ChartPaint.push(chart);};this.CreateTradeIcon=function(hqChart,windowIndex,varItem,id){var chart=new ChartTradeIcon();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data.Data=varItem.Draw.DrawData.Data;chart.AryIcon=varItem.Draw.DrawData.Icons;chart.TradeType=varItem.Draw.DrawType;//修改颜色
|
|
11466
|
+
if(varItem.Color&&IFrameSplitOperator.IsNonEmptyArray(chart.AryIcon)){for(var i=0;i<chart.AryIcon.length;++i){var item=chart.AryIcon[i];if(!item||!item.Color)continue;item.Color=varItem.Color;}}//图片大小
|
|
11467
|
+
if(varItem.DrawFontSize>0)chart.SVG.Size=varItem.DrawFontSize*GetDevicePixelRatio();//图标大小
|
|
11463
11468
|
hqChart.ChartPaint.push(chart);};this.CreateTextLine=function(hqChart,windowIndex,varItem,id){var chart=new ChartTextLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(varItem.Draw&&varItem.Draw.DrawData){var drawData=varItem.Draw.DrawData;chart.Text=drawData.Text;chart.Line=drawData.Line;chart.Price=drawData.Price;}hqChart.ChartPaint.push(chart);};this.CreateNumberText=function(hqChart,windowIndex,varItem,id){var chartText=new ChartSingleText();chartText.Canvas=hqChart.Canvas;chartText.Name=varItem.Name;chartText.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chartText.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chartText.ReloadResource();chartText.TextAlign="center";if(varItem.Color)chartText.Color=this.GetColor(varItem.Color);else chartText.Color=this.GetDefaultColor(id);if(varItem.IsDrawAbove)chartText.Direction=1;else chartText.Direction=2;if(varItem.Draw.Position)chartText.Position=varItem.Draw.Position;//赋值坐标
|
|
11464
11469
|
var titleIndex=windowIndex+1;chartText.Data.Data=varItem.Draw.DrawData.Value;chartText.Text=varItem.Draw.DrawData.Text;//hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(bar.Data,varItem.Name,bar.Color);
|
|
11465
11470
|
hqChart.ChartPaint.push(chartText);};this.CreateDrawText=function(hqChart,windowIndex,varItem,id){var chartText=new ChartSingleText();chartText.Canvas=hqChart.Canvas;chartText.Name=varItem.Name;chartText.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chartText.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chartText.ReloadResource();if(varItem.Color)chartText.Color=this.GetColor(varItem.Color);else chartText.Color=this.GetDefaultColor(id);if(varItem.IsDrawAbove)chartText.Direction=1;else chartText.Direction=0;if(varItem.DrawFontSize>0)chartText.TextFont=varItem.DrawFontSize*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1';//临时用下吧
|
|
@@ -12791,7 +12796,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
|
|
|
12791
12796
|
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);};}/********************************************************************************
|
|
12792
12797
|
* 版本信息输出
|
|
12793
12798
|
*
|
|
12794
|
-
*/var HQCHART_VERSION="1.1.
|
|
12799
|
+
*/var HQCHART_VERSION="1.1.12654";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();//把给外界调用的方法暴露出来
|
|
12795
12800
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
12796
12801
|
// BaseIndex:BaseIndex,
|
|
12797
12802
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
|
@@ -10826,25 +10826,31 @@ function JSDraw(errorHandler,symbolData)
|
|
|
10826
10826
|
|
|
10827
10827
|
if (Array.isArray(condition))
|
|
10828
10828
|
{
|
|
10829
|
-
|
|
10829
|
+
var item=null;
|
|
10830
|
+
if (IFrameSplitOperator.IsNonEmptyArray(condition))
|
|
10831
|
+
item=condition[condition.length-1]; //取最后一个数值
|
|
10832
|
+
|
|
10833
|
+
if (item)
|
|
10830
10834
|
{
|
|
10831
|
-
|
|
10832
|
-
|
|
10833
|
-
|
|
10834
|
-
if (Array.isArray(price)) drawData.Price=price[i];
|
|
10835
|
-
else drawData.Price=price;
|
|
10836
|
-
result.DrawData=drawData;
|
|
10837
|
-
|
|
10838
|
-
break;
|
|
10839
|
-
}
|
|
10835
|
+
if (Array.isArray(price)) drawData.Price=price[condition.length-1];
|
|
10836
|
+
else drawData.Price=price;
|
|
10837
|
+
result.DrawData=drawData;
|
|
10840
10838
|
}
|
|
10841
10839
|
}
|
|
10842
10840
|
else
|
|
10843
10841
|
{
|
|
10844
10842
|
if (condition)
|
|
10845
10843
|
{
|
|
10846
|
-
if (Array.isArray(price))
|
|
10847
|
-
|
|
10844
|
+
if (Array.isArray(price))
|
|
10845
|
+
{
|
|
10846
|
+
var value=null;
|
|
10847
|
+
if (price.length>0) value=price[price.length-1];
|
|
10848
|
+
drawData.Price=value;
|
|
10849
|
+
}
|
|
10850
|
+
else
|
|
10851
|
+
{
|
|
10852
|
+
drawData.Price=price;
|
|
10853
|
+
}
|
|
10848
10854
|
result.DrawData=drawData;
|
|
10849
10855
|
}
|
|
10850
10856
|
}
|
|
@@ -18269,31 +18275,31 @@ function JSExplainer(ast,option)
|
|
|
18269
18275
|
if (pointDot && varName) //圆点
|
|
18270
18276
|
{
|
|
18271
18277
|
outValue+=",画小圆点线";
|
|
18272
|
-
let value={Name:varName,
|
|
18278
|
+
let value={Name:varName, Draw:outValue, Radius:g_JSChartResource.POINTDOT.Radius, Type:3};
|
|
18273
18279
|
this.OutVarTable.push(value);
|
|
18274
18280
|
}
|
|
18275
18281
|
else if (circleDot && varName) //圆点
|
|
18276
18282
|
{
|
|
18277
18283
|
outValue+=",画小圆圈线";
|
|
18278
|
-
let value={Name:varName,
|
|
18284
|
+
let value={Name:varName, Draw:outValue, Radius:g_JSChartResource.CIRCLEDOT.Radius, Type:3};
|
|
18279
18285
|
this.OutVarTable.push(value);
|
|
18280
18286
|
}
|
|
18281
18287
|
else if (lineStick && varName) //LINESTICK 同时画出柱状线和指标线
|
|
18282
18288
|
{
|
|
18283
18289
|
outValue+=",画出柱状线和指标线";
|
|
18284
|
-
let value={Name:varName,
|
|
18290
|
+
let value={Name:varName, Draw:outValue, Type:4};
|
|
18285
18291
|
this.OutVarTable.push(value);
|
|
18286
18292
|
}
|
|
18287
18293
|
else if (stick && varName) //STICK 画柱状线
|
|
18288
18294
|
{
|
|
18289
18295
|
outValue+=",画柱状线";
|
|
18290
|
-
let value={Name:varName,
|
|
18296
|
+
let value={Name:varName, Draw:outValue, Type:5};
|
|
18291
18297
|
this.OutVarTable.push(value);
|
|
18292
18298
|
}
|
|
18293
18299
|
else if (volStick && varName) //VOLSTICK 画彩色柱状线
|
|
18294
18300
|
{
|
|
18295
18301
|
outValue+=",画成交量柱状线";
|
|
18296
|
-
let value={Name:varName,
|
|
18302
|
+
let value={Name:varName, Draw:outValue, Type:6};
|
|
18297
18303
|
this.OutVarTable.push(value);
|
|
18298
18304
|
}
|
|
18299
18305
|
else if (varName && color)
|
|
@@ -18303,13 +18309,13 @@ function JSExplainer(ast,option)
|
|
|
18303
18309
|
}
|
|
18304
18310
|
else if (draw) //画图函数
|
|
18305
18311
|
{
|
|
18306
|
-
var outVar={ Name:drawName,
|
|
18312
|
+
var outVar={ Name:drawName, Draw:outValue, Type:1 };
|
|
18307
18313
|
this.OutVarTable.push(outVar);
|
|
18308
18314
|
}
|
|
18309
18315
|
else if (colorStick && varName) //CYW: SUM(VAR4,10)/10000, COLORSTICK; 画上下柱子
|
|
18310
18316
|
{
|
|
18311
18317
|
outValue+=",画彩色柱状线";
|
|
18312
|
-
let value={Name:varName,
|
|
18318
|
+
let value={Name:varName, Draw:outValue, Color:color, Type:2};
|
|
18313
18319
|
this.OutVarTable.push(value);
|
|
18314
18320
|
}
|
|
18315
18321
|
else if (varName)
|
|
@@ -18635,6 +18641,8 @@ function JSExplainer(ast,option)
|
|
|
18635
18641
|
return `当满足条件${args[0]}时,在横轴${args[1]}纵轴${args[2]}位置书写数字`;
|
|
18636
18642
|
case "RGB":
|
|
18637
18643
|
return `自定色[${args[0]},${args[1]},${args[2]}]`;
|
|
18644
|
+
case "RGBA":
|
|
18645
|
+
return `自定色[${args[0]},${args[1]},${args[2]},${args[3]}]`;
|
|
18638
18646
|
case "DRAWBAND":
|
|
18639
18647
|
return '画带状线';
|
|
18640
18648
|
case "DRAWRECTREL":
|
|
@@ -18661,6 +18669,12 @@ function JSExplainer(ast,option)
|
|
|
18661
18669
|
|
|
18662
18670
|
case "YMOVE":
|
|
18663
18671
|
return;
|
|
18672
|
+
case "BACKGROUND":
|
|
18673
|
+
return "绘制背景";
|
|
18674
|
+
case "UPCOLOR":
|
|
18675
|
+
return `上涨颜色${args[0]}`;
|
|
18676
|
+
case "DOWNCOLOR":
|
|
18677
|
+
return `下跌颜色${args[0]}`;
|
|
18664
18678
|
|
|
18665
18679
|
default:
|
|
18666
18680
|
this.ThrowUnexpectedNode(node,`函数${funcName}不存在`);
|
|
@@ -20488,7 +20502,20 @@ function ScriptIndex(name,script,args,option)
|
|
|
20488
20502
|
chart.AryIcon=varItem.Draw.DrawData.Icons;
|
|
20489
20503
|
chart.TradeType=varItem.Draw.DrawType;
|
|
20490
20504
|
|
|
20491
|
-
|
|
20505
|
+
//修改颜色
|
|
20506
|
+
if (varItem.Color && IFrameSplitOperator.IsNonEmptyArray(chart.AryIcon))
|
|
20507
|
+
{
|
|
20508
|
+
for(var i=0;i<chart.AryIcon.length;++i)
|
|
20509
|
+
{
|
|
20510
|
+
var item=chart.AryIcon[i];
|
|
20511
|
+
if (!item || !item.Color) continue;
|
|
20512
|
+
|
|
20513
|
+
item.Color=varItem.Color;
|
|
20514
|
+
}
|
|
20515
|
+
}
|
|
20516
|
+
|
|
20517
|
+
//图片大小
|
|
20518
|
+
if (varItem.DrawFontSize>0) chart.SVG.Size=varItem.DrawFontSize*GetDevicePixelRatio(); //图标大小
|
|
20492
20519
|
|
|
20493
20520
|
hqChart.ChartPaint.push(chart);
|
|
20494
20521
|
}
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -30542,6 +30542,7 @@ function ChartTradeIcon()
|
|
|
30542
30542
|
if(!this.Data || !this.Data.Data) return;
|
|
30543
30543
|
if (!IFrameSplitOperator.IsNonEmptyArray(this.AryIcon)) return;
|
|
30544
30544
|
|
|
30545
|
+
var bHScreen=(this.ChartFrame.IsHScreen===true);
|
|
30545
30546
|
this.Canvas.font=`${this.SVG.Size}px ${this.SVG.Family}`;
|
|
30546
30547
|
this.Canvas.textAlign=this.TextAlign;
|
|
30547
30548
|
this.Canvas.textBaseline='middle';
|
|
@@ -30549,22 +30550,27 @@ function ChartTradeIcon()
|
|
|
30549
30550
|
if (this.TradeType=="BUY" || this.TradeType=="BUYSHORT")
|
|
30550
30551
|
{
|
|
30551
30552
|
this.Canvas.textBaseline="top";
|
|
30552
|
-
yOffset
|
|
30553
|
+
yOffset+=(bHScreen?-2:2);
|
|
30553
30554
|
}
|
|
30554
30555
|
else if (this.TradeType=="SELL" || this.TradeType=="SELLSHORT")
|
|
30555
30556
|
{
|
|
30556
30557
|
this.Canvas.textBaseline="bottom";
|
|
30557
|
-
yOffset
|
|
30558
|
+
yOffset=(bHScreen?2:-2);
|
|
30558
30559
|
}
|
|
30559
|
-
|
|
30560
|
-
var bHScreen=(this.ChartFrame.IsHScreen===true);
|
|
30560
|
+
|
|
30561
30561
|
var dataWidth=this.ChartFrame.DataWidth;
|
|
30562
30562
|
var distanceWidth=this.ChartFrame.DistanceWidth;
|
|
30563
30563
|
var chartright=this.ChartBorder.GetRight();
|
|
30564
|
-
if (bHScreen) chartright=this.ChartBorder.GetBottom();
|
|
30565
30564
|
var xPointCount=this.ChartFrame.XPointCount;
|
|
30566
30565
|
var border=this.ChartFrame.GetBorder();
|
|
30567
30566
|
var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
30567
|
+
if (bHScreen)
|
|
30568
|
+
{
|
|
30569
|
+
chartright=this.ChartBorder.GetBottom();
|
|
30570
|
+
//top=this.ChartBorder.GetRightEx();
|
|
30571
|
+
//bottom=this.ChartBorder.GetLeftEx();
|
|
30572
|
+
xOffset=this.ChartBorder.GetTop()+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
30573
|
+
}
|
|
30568
30574
|
|
|
30569
30575
|
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
|
|
30570
30576
|
{
|
|
@@ -131,8 +131,9 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
|
131
131
|
"FONTSIZE21":LINE_WIDTH_NAME,"FONTSIZE22":LINE_WIDTH_NAME,"FONTSIZE23":LINE_WIDTH_NAME,"FONTSIZE24":LINE_WIDTH_NAME,"FONTSIZE25":LINE_WIDTH_NAME,
|
|
132
132
|
|
|
133
133
|
"VALIGN0":LINE_WIDTH_NAME,"VALIGN1":LINE_WIDTH_NAME,"VALIGN2":LINE_WIDTH_NAME,
|
|
134
|
+
"ALIGN0":LINE_WIDTH_NAME,"ALIGN1":LINE_WIDTH_NAME,"ALIGN2":LINE_WIDTH_NAME,
|
|
134
135
|
|
|
135
|
-
'COLORSTICK':DRAW_NAME,'CIRCLEDOT':DRAW_NAME,'POINTDOT':DRAW_NAME,'LINESTICK':DRAW_NAME,'STICK':DRAW_NAME,'NODRAW':DRAW_NAME,
|
|
136
|
+
'COLORSTICK':DRAW_NAME,'CIRCLEDOT':DRAW_NAME,'POINTDOT':DRAW_NAME,'LINESTICK':DRAW_NAME,'STICK':DRAW_NAME,'NODRAW':DRAW_NAME,"NOTEXT":DRAW_NAME,"NOTITLE":DRAW_NAME,
|
|
136
137
|
"LINEAREA":DRAW_NAME,
|
|
137
138
|
|
|
138
139
|
"BUY":DRAW_NAME,"SELL":DRAW_NAME,"SELLSHORT":DRAW_NAME,"BUYSHORT":DRAW_NAME,"TIPICON":DRAW_NAME,"AUTOFILTER":FUNCTION_NAME,
|
|
@@ -34622,6 +34622,7 @@ function ChartTradeIcon()
|
|
|
34622
34622
|
if(!this.Data || !this.Data.Data) return;
|
|
34623
34623
|
if (!IFrameSplitOperator.IsNonEmptyArray(this.AryIcon)) return;
|
|
34624
34624
|
|
|
34625
|
+
var bHScreen=(this.ChartFrame.IsHScreen===true);
|
|
34625
34626
|
this.Canvas.font=`${this.SVG.Size}px ${this.SVG.Family}`;
|
|
34626
34627
|
this.Canvas.textAlign=this.TextAlign;
|
|
34627
34628
|
this.Canvas.textBaseline='middle';
|
|
@@ -34629,22 +34630,27 @@ function ChartTradeIcon()
|
|
|
34629
34630
|
if (this.TradeType=="BUY" || this.TradeType=="BUYSHORT")
|
|
34630
34631
|
{
|
|
34631
34632
|
this.Canvas.textBaseline="top";
|
|
34632
|
-
yOffset
|
|
34633
|
+
yOffset+=(bHScreen?-2:2);
|
|
34633
34634
|
}
|
|
34634
34635
|
else if (this.TradeType=="SELL" || this.TradeType=="SELLSHORT")
|
|
34635
34636
|
{
|
|
34636
34637
|
this.Canvas.textBaseline="bottom";
|
|
34637
|
-
yOffset
|
|
34638
|
+
yOffset=(bHScreen?2:-2);
|
|
34638
34639
|
}
|
|
34639
|
-
|
|
34640
|
-
var bHScreen=(this.ChartFrame.IsHScreen===true);
|
|
34640
|
+
|
|
34641
34641
|
var dataWidth=this.ChartFrame.DataWidth;
|
|
34642
34642
|
var distanceWidth=this.ChartFrame.DistanceWidth;
|
|
34643
34643
|
var chartright=this.ChartBorder.GetRight();
|
|
34644
|
-
if (bHScreen) chartright=this.ChartBorder.GetBottom();
|
|
34645
34644
|
var xPointCount=this.ChartFrame.XPointCount;
|
|
34646
34645
|
var border=this.ChartFrame.GetBorder();
|
|
34647
34646
|
var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
34647
|
+
if (bHScreen)
|
|
34648
|
+
{
|
|
34649
|
+
chartright=this.ChartBorder.GetBottom();
|
|
34650
|
+
//top=this.ChartBorder.GetRightEx();
|
|
34651
|
+
//bottom=this.ChartBorder.GetLeftEx();
|
|
34652
|
+
xOffset=this.ChartBorder.GetTop()+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
34653
|
+
}
|
|
34648
34654
|
|
|
34649
34655
|
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
|
|
34650
34656
|
{
|
|
@@ -104892,25 +104898,31 @@ function JSDraw(errorHandler,symbolData)
|
|
|
104892
104898
|
|
|
104893
104899
|
if (Array.isArray(condition))
|
|
104894
104900
|
{
|
|
104895
|
-
|
|
104901
|
+
var item=null;
|
|
104902
|
+
if (IFrameSplitOperator.IsNonEmptyArray(condition))
|
|
104903
|
+
item=condition[condition.length-1]; //取最后一个数值
|
|
104904
|
+
|
|
104905
|
+
if (item)
|
|
104896
104906
|
{
|
|
104897
|
-
|
|
104898
|
-
|
|
104899
|
-
|
|
104900
|
-
if (Array.isArray(price)) drawData.Price=price[i];
|
|
104901
|
-
else drawData.Price=price;
|
|
104902
|
-
result.DrawData=drawData;
|
|
104903
|
-
|
|
104904
|
-
break;
|
|
104905
|
-
}
|
|
104907
|
+
if (Array.isArray(price)) drawData.Price=price[condition.length-1];
|
|
104908
|
+
else drawData.Price=price;
|
|
104909
|
+
result.DrawData=drawData;
|
|
104906
104910
|
}
|
|
104907
104911
|
}
|
|
104908
104912
|
else
|
|
104909
104913
|
{
|
|
104910
104914
|
if (condition)
|
|
104911
104915
|
{
|
|
104912
|
-
if (Array.isArray(price))
|
|
104913
|
-
|
|
104916
|
+
if (Array.isArray(price))
|
|
104917
|
+
{
|
|
104918
|
+
var value=null;
|
|
104919
|
+
if (price.length>0) value=price[price.length-1];
|
|
104920
|
+
drawData.Price=value;
|
|
104921
|
+
}
|
|
104922
|
+
else
|
|
104923
|
+
{
|
|
104924
|
+
drawData.Price=price;
|
|
104925
|
+
}
|
|
104914
104926
|
result.DrawData=drawData;
|
|
104915
104927
|
}
|
|
104916
104928
|
}
|
|
@@ -112335,31 +112347,31 @@ function JSExplainer(ast,option)
|
|
|
112335
112347
|
if (pointDot && varName) //圆点
|
|
112336
112348
|
{
|
|
112337
112349
|
outValue+=",画小圆点线";
|
|
112338
|
-
let value={Name:varName,
|
|
112350
|
+
let value={Name:varName, Draw:outValue, Radius:g_JSChartResource.POINTDOT.Radius, Type:3};
|
|
112339
112351
|
this.OutVarTable.push(value);
|
|
112340
112352
|
}
|
|
112341
112353
|
else if (circleDot && varName) //圆点
|
|
112342
112354
|
{
|
|
112343
112355
|
outValue+=",画小圆圈线";
|
|
112344
|
-
let value={Name:varName,
|
|
112356
|
+
let value={Name:varName, Draw:outValue, Radius:g_JSChartResource.CIRCLEDOT.Radius, Type:3};
|
|
112345
112357
|
this.OutVarTable.push(value);
|
|
112346
112358
|
}
|
|
112347
112359
|
else if (lineStick && varName) //LINESTICK 同时画出柱状线和指标线
|
|
112348
112360
|
{
|
|
112349
112361
|
outValue+=",画出柱状线和指标线";
|
|
112350
|
-
let value={Name:varName,
|
|
112362
|
+
let value={Name:varName, Draw:outValue, Type:4};
|
|
112351
112363
|
this.OutVarTable.push(value);
|
|
112352
112364
|
}
|
|
112353
112365
|
else if (stick && varName) //STICK 画柱状线
|
|
112354
112366
|
{
|
|
112355
112367
|
outValue+=",画柱状线";
|
|
112356
|
-
let value={Name:varName,
|
|
112368
|
+
let value={Name:varName, Draw:outValue, Type:5};
|
|
112357
112369
|
this.OutVarTable.push(value);
|
|
112358
112370
|
}
|
|
112359
112371
|
else if (volStick && varName) //VOLSTICK 画彩色柱状线
|
|
112360
112372
|
{
|
|
112361
112373
|
outValue+=",画成交量柱状线";
|
|
112362
|
-
let value={Name:varName,
|
|
112374
|
+
let value={Name:varName, Draw:outValue, Type:6};
|
|
112363
112375
|
this.OutVarTable.push(value);
|
|
112364
112376
|
}
|
|
112365
112377
|
else if (varName && color)
|
|
@@ -112369,13 +112381,13 @@ function JSExplainer(ast,option)
|
|
|
112369
112381
|
}
|
|
112370
112382
|
else if (draw) //画图函数
|
|
112371
112383
|
{
|
|
112372
|
-
var outVar={ Name:drawName,
|
|
112384
|
+
var outVar={ Name:drawName, Draw:outValue, Type:1 };
|
|
112373
112385
|
this.OutVarTable.push(outVar);
|
|
112374
112386
|
}
|
|
112375
112387
|
else if (colorStick && varName) //CYW: SUM(VAR4,10)/10000, COLORSTICK; 画上下柱子
|
|
112376
112388
|
{
|
|
112377
112389
|
outValue+=",画彩色柱状线";
|
|
112378
|
-
let value={Name:varName,
|
|
112390
|
+
let value={Name:varName, Draw:outValue, Color:color, Type:2};
|
|
112379
112391
|
this.OutVarTable.push(value);
|
|
112380
112392
|
}
|
|
112381
112393
|
else if (varName)
|
|
@@ -112701,6 +112713,8 @@ function JSExplainer(ast,option)
|
|
|
112701
112713
|
return `当满足条件${args[0]}时,在横轴${args[1]}纵轴${args[2]}位置书写数字`;
|
|
112702
112714
|
case "RGB":
|
|
112703
112715
|
return `自定色[${args[0]},${args[1]},${args[2]}]`;
|
|
112716
|
+
case "RGBA":
|
|
112717
|
+
return `自定色[${args[0]},${args[1]},${args[2]},${args[3]}]`;
|
|
112704
112718
|
case "DRAWBAND":
|
|
112705
112719
|
return '画带状线';
|
|
112706
112720
|
case "DRAWRECTREL":
|
|
@@ -112727,6 +112741,12 @@ function JSExplainer(ast,option)
|
|
|
112727
112741
|
|
|
112728
112742
|
case "YMOVE":
|
|
112729
112743
|
return;
|
|
112744
|
+
case "BACKGROUND":
|
|
112745
|
+
return "绘制背景";
|
|
112746
|
+
case "UPCOLOR":
|
|
112747
|
+
return `上涨颜色${args[0]}`;
|
|
112748
|
+
case "DOWNCOLOR":
|
|
112749
|
+
return `下跌颜色${args[0]}`;
|
|
112730
112750
|
|
|
112731
112751
|
default:
|
|
112732
112752
|
this.ThrowUnexpectedNode(node,`函数${funcName}不存在`);
|
|
@@ -114554,7 +114574,20 @@ function ScriptIndex(name,script,args,option)
|
|
|
114554
114574
|
chart.AryIcon=varItem.Draw.DrawData.Icons;
|
|
114555
114575
|
chart.TradeType=varItem.Draw.DrawType;
|
|
114556
114576
|
|
|
114557
|
-
|
|
114577
|
+
//修改颜色
|
|
114578
|
+
if (varItem.Color && IFrameSplitOperator.IsNonEmptyArray(chart.AryIcon))
|
|
114579
|
+
{
|
|
114580
|
+
for(var i=0;i<chart.AryIcon.length;++i)
|
|
114581
|
+
{
|
|
114582
|
+
var item=chart.AryIcon[i];
|
|
114583
|
+
if (!item || !item.Color) continue;
|
|
114584
|
+
|
|
114585
|
+
item.Color=varItem.Color;
|
|
114586
|
+
}
|
|
114587
|
+
}
|
|
114588
|
+
|
|
114589
|
+
//图片大小
|
|
114590
|
+
if (varItem.DrawFontSize>0) chart.SVG.Size=varItem.DrawFontSize*GetDevicePixelRatio(); //图标大小
|
|
114558
114591
|
|
|
114559
114592
|
hqChart.ChartPaint.push(chart);
|
|
114560
114593
|
}
|
|
@@ -130166,7 +130199,7 @@ function ScrollBarBGChart()
|
|
|
130166
130199
|
|
|
130167
130200
|
|
|
130168
130201
|
|
|
130169
|
-
var HQCHART_VERSION="1.1.
|
|
130202
|
+
var HQCHART_VERSION="1.1.12654";
|
|
130170
130203
|
|
|
130171
130204
|
function PrintHQChartVersion()
|
|
130172
130205
|
{
|
|
@@ -34666,6 +34666,7 @@ function ChartTradeIcon()
|
|
|
34666
34666
|
if(!this.Data || !this.Data.Data) return;
|
|
34667
34667
|
if (!IFrameSplitOperator.IsNonEmptyArray(this.AryIcon)) return;
|
|
34668
34668
|
|
|
34669
|
+
var bHScreen=(this.ChartFrame.IsHScreen===true);
|
|
34669
34670
|
this.Canvas.font=`${this.SVG.Size}px ${this.SVG.Family}`;
|
|
34670
34671
|
this.Canvas.textAlign=this.TextAlign;
|
|
34671
34672
|
this.Canvas.textBaseline='middle';
|
|
@@ -34673,22 +34674,27 @@ function ChartTradeIcon()
|
|
|
34673
34674
|
if (this.TradeType=="BUY" || this.TradeType=="BUYSHORT")
|
|
34674
34675
|
{
|
|
34675
34676
|
this.Canvas.textBaseline="top";
|
|
34676
|
-
yOffset
|
|
34677
|
+
yOffset+=(bHScreen?-2:2);
|
|
34677
34678
|
}
|
|
34678
34679
|
else if (this.TradeType=="SELL" || this.TradeType=="SELLSHORT")
|
|
34679
34680
|
{
|
|
34680
34681
|
this.Canvas.textBaseline="bottom";
|
|
34681
|
-
yOffset
|
|
34682
|
+
yOffset=(bHScreen?2:-2);
|
|
34682
34683
|
}
|
|
34683
|
-
|
|
34684
|
-
var bHScreen=(this.ChartFrame.IsHScreen===true);
|
|
34684
|
+
|
|
34685
34685
|
var dataWidth=this.ChartFrame.DataWidth;
|
|
34686
34686
|
var distanceWidth=this.ChartFrame.DistanceWidth;
|
|
34687
34687
|
var chartright=this.ChartBorder.GetRight();
|
|
34688
|
-
if (bHScreen) chartright=this.ChartBorder.GetBottom();
|
|
34689
34688
|
var xPointCount=this.ChartFrame.XPointCount;
|
|
34690
34689
|
var border=this.ChartFrame.GetBorder();
|
|
34691
34690
|
var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
34691
|
+
if (bHScreen)
|
|
34692
|
+
{
|
|
34693
|
+
chartright=this.ChartBorder.GetBottom();
|
|
34694
|
+
//top=this.ChartBorder.GetRightEx();
|
|
34695
|
+
//bottom=this.ChartBorder.GetLeftEx();
|
|
34696
|
+
xOffset=this.ChartBorder.GetTop()+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
34697
|
+
}
|
|
34692
34698
|
|
|
34693
34699
|
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
|
|
34694
34700
|
{
|
|
@@ -104936,25 +104942,31 @@ function JSDraw(errorHandler,symbolData)
|
|
|
104936
104942
|
|
|
104937
104943
|
if (Array.isArray(condition))
|
|
104938
104944
|
{
|
|
104939
|
-
|
|
104945
|
+
var item=null;
|
|
104946
|
+
if (IFrameSplitOperator.IsNonEmptyArray(condition))
|
|
104947
|
+
item=condition[condition.length-1]; //取最后一个数值
|
|
104948
|
+
|
|
104949
|
+
if (item)
|
|
104940
104950
|
{
|
|
104941
|
-
|
|
104942
|
-
|
|
104943
|
-
|
|
104944
|
-
if (Array.isArray(price)) drawData.Price=price[i];
|
|
104945
|
-
else drawData.Price=price;
|
|
104946
|
-
result.DrawData=drawData;
|
|
104947
|
-
|
|
104948
|
-
break;
|
|
104949
|
-
}
|
|
104951
|
+
if (Array.isArray(price)) drawData.Price=price[condition.length-1];
|
|
104952
|
+
else drawData.Price=price;
|
|
104953
|
+
result.DrawData=drawData;
|
|
104950
104954
|
}
|
|
104951
104955
|
}
|
|
104952
104956
|
else
|
|
104953
104957
|
{
|
|
104954
104958
|
if (condition)
|
|
104955
104959
|
{
|
|
104956
|
-
if (Array.isArray(price))
|
|
104957
|
-
|
|
104960
|
+
if (Array.isArray(price))
|
|
104961
|
+
{
|
|
104962
|
+
var value=null;
|
|
104963
|
+
if (price.length>0) value=price[price.length-1];
|
|
104964
|
+
drawData.Price=value;
|
|
104965
|
+
}
|
|
104966
|
+
else
|
|
104967
|
+
{
|
|
104968
|
+
drawData.Price=price;
|
|
104969
|
+
}
|
|
104958
104970
|
result.DrawData=drawData;
|
|
104959
104971
|
}
|
|
104960
104972
|
}
|
|
@@ -112379,31 +112391,31 @@ function JSExplainer(ast,option)
|
|
|
112379
112391
|
if (pointDot && varName) //圆点
|
|
112380
112392
|
{
|
|
112381
112393
|
outValue+=",画小圆点线";
|
|
112382
|
-
let value={Name:varName,
|
|
112394
|
+
let value={Name:varName, Draw:outValue, Radius:g_JSChartResource.POINTDOT.Radius, Type:3};
|
|
112383
112395
|
this.OutVarTable.push(value);
|
|
112384
112396
|
}
|
|
112385
112397
|
else if (circleDot && varName) //圆点
|
|
112386
112398
|
{
|
|
112387
112399
|
outValue+=",画小圆圈线";
|
|
112388
|
-
let value={Name:varName,
|
|
112400
|
+
let value={Name:varName, Draw:outValue, Radius:g_JSChartResource.CIRCLEDOT.Radius, Type:3};
|
|
112389
112401
|
this.OutVarTable.push(value);
|
|
112390
112402
|
}
|
|
112391
112403
|
else if (lineStick && varName) //LINESTICK 同时画出柱状线和指标线
|
|
112392
112404
|
{
|
|
112393
112405
|
outValue+=",画出柱状线和指标线";
|
|
112394
|
-
let value={Name:varName,
|
|
112406
|
+
let value={Name:varName, Draw:outValue, Type:4};
|
|
112395
112407
|
this.OutVarTable.push(value);
|
|
112396
112408
|
}
|
|
112397
112409
|
else if (stick && varName) //STICK 画柱状线
|
|
112398
112410
|
{
|
|
112399
112411
|
outValue+=",画柱状线";
|
|
112400
|
-
let value={Name:varName,
|
|
112412
|
+
let value={Name:varName, Draw:outValue, Type:5};
|
|
112401
112413
|
this.OutVarTable.push(value);
|
|
112402
112414
|
}
|
|
112403
112415
|
else if (volStick && varName) //VOLSTICK 画彩色柱状线
|
|
112404
112416
|
{
|
|
112405
112417
|
outValue+=",画成交量柱状线";
|
|
112406
|
-
let value={Name:varName,
|
|
112418
|
+
let value={Name:varName, Draw:outValue, Type:6};
|
|
112407
112419
|
this.OutVarTable.push(value);
|
|
112408
112420
|
}
|
|
112409
112421
|
else if (varName && color)
|
|
@@ -112413,13 +112425,13 @@ function JSExplainer(ast,option)
|
|
|
112413
112425
|
}
|
|
112414
112426
|
else if (draw) //画图函数
|
|
112415
112427
|
{
|
|
112416
|
-
var outVar={ Name:drawName,
|
|
112428
|
+
var outVar={ Name:drawName, Draw:outValue, Type:1 };
|
|
112417
112429
|
this.OutVarTable.push(outVar);
|
|
112418
112430
|
}
|
|
112419
112431
|
else if (colorStick && varName) //CYW: SUM(VAR4,10)/10000, COLORSTICK; 画上下柱子
|
|
112420
112432
|
{
|
|
112421
112433
|
outValue+=",画彩色柱状线";
|
|
112422
|
-
let value={Name:varName,
|
|
112434
|
+
let value={Name:varName, Draw:outValue, Color:color, Type:2};
|
|
112423
112435
|
this.OutVarTable.push(value);
|
|
112424
112436
|
}
|
|
112425
112437
|
else if (varName)
|
|
@@ -112745,6 +112757,8 @@ function JSExplainer(ast,option)
|
|
|
112745
112757
|
return `当满足条件${args[0]}时,在横轴${args[1]}纵轴${args[2]}位置书写数字`;
|
|
112746
112758
|
case "RGB":
|
|
112747
112759
|
return `自定色[${args[0]},${args[1]},${args[2]}]`;
|
|
112760
|
+
case "RGBA":
|
|
112761
|
+
return `自定色[${args[0]},${args[1]},${args[2]},${args[3]}]`;
|
|
112748
112762
|
case "DRAWBAND":
|
|
112749
112763
|
return '画带状线';
|
|
112750
112764
|
case "DRAWRECTREL":
|
|
@@ -112771,6 +112785,12 @@ function JSExplainer(ast,option)
|
|
|
112771
112785
|
|
|
112772
112786
|
case "YMOVE":
|
|
112773
112787
|
return;
|
|
112788
|
+
case "BACKGROUND":
|
|
112789
|
+
return "绘制背景";
|
|
112790
|
+
case "UPCOLOR":
|
|
112791
|
+
return `上涨颜色${args[0]}`;
|
|
112792
|
+
case "DOWNCOLOR":
|
|
112793
|
+
return `下跌颜色${args[0]}`;
|
|
112774
112794
|
|
|
112775
112795
|
default:
|
|
112776
112796
|
this.ThrowUnexpectedNode(node,`函数${funcName}不存在`);
|
|
@@ -114598,7 +114618,20 @@ function ScriptIndex(name,script,args,option)
|
|
|
114598
114618
|
chart.AryIcon=varItem.Draw.DrawData.Icons;
|
|
114599
114619
|
chart.TradeType=varItem.Draw.DrawType;
|
|
114600
114620
|
|
|
114601
|
-
|
|
114621
|
+
//修改颜色
|
|
114622
|
+
if (varItem.Color && IFrameSplitOperator.IsNonEmptyArray(chart.AryIcon))
|
|
114623
|
+
{
|
|
114624
|
+
for(var i=0;i<chart.AryIcon.length;++i)
|
|
114625
|
+
{
|
|
114626
|
+
var item=chart.AryIcon[i];
|
|
114627
|
+
if (!item || !item.Color) continue;
|
|
114628
|
+
|
|
114629
|
+
item.Color=varItem.Color;
|
|
114630
|
+
}
|
|
114631
|
+
}
|
|
114632
|
+
|
|
114633
|
+
//图片大小
|
|
114634
|
+
if (varItem.DrawFontSize>0) chart.SVG.Size=varItem.DrawFontSize*GetDevicePixelRatio(); //图标大小
|
|
114602
114635
|
|
|
114603
114636
|
hqChart.ChartPaint.push(chart);
|
|
114604
114637
|
}
|
|
@@ -130324,7 +130357,7 @@ function HQChartScriptWorker()
|
|
|
130324
130357
|
|
|
130325
130358
|
|
|
130326
130359
|
|
|
130327
|
-
var HQCHART_VERSION="1.1.
|
|
130360
|
+
var HQCHART_VERSION="1.1.12654";
|
|
130328
130361
|
|
|
130329
130362
|
function PrintHQChartVersion()
|
|
130330
130363
|
{
|