hqchart 1.1.14299 → 1.1.14307
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 +386 -215
- package/package.json +1 -1
- package/src/jscommon/umychart.NetworkFilterTest.js +64 -3
- package/src/jscommon/umychart.complier.js +110 -8
- package/src/jscommon/umychart.js +441 -105
- package/src/jscommon/umychart.style.js +5 -0
- package/src/jscommon/umychart.testdata.js +64 -3
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +557 -114
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.NetworkFilterTest.vue.js +64 -3
- package/src/jscommon/umychart.vue/umychart.vue.js +557 -114
package/lib/umychart.vue.js
CHANGED
|
@@ -3867,24 +3867,15 @@ this.BorderColor=g_JSChartResource.ChartSimpleTable.BorderColor;//边框颜色
|
|
|
3867
3867
|
tableWidth+=item.Width;}this.RectClient={Width:tableWidth,Height:this.RowHeight*rowCount};var border=this.ChartFrame.GetBorder();this.RectClient.Right=border.Right+this.Offset.X;this.RectClient.Top=border.TopEx+this.Offset.Y;this.RectClient.Left=this.RectClient.Right-this.RectClient.Width;this.RectClient.Bottom=this.RectClient.Top+this.RectClient.Height;};this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize)return;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;var isHScreen=this.ChartFrame.IsHScreen===true;if(isHScreen)return;this.CalculateSize();if(this.BGColor){this.Canvas.fillStyle=this.BGColor;this.Canvas.fillRect(this.RectClient.Left,this.RectClient.Top,this.RectClient.Width,this.RectClient.Height);}var itemHeight=this.RowHeight;this.Canvas.font=this.TextFont;this.Canvas.textBaseline='bottom';this.Canvas.textAlign='left';var rtRow={Left:this.RectClient.Left,Top:this.RectClient.Top,Width:this.RectClient.Width,Height:itemHeight};rtRow.Right=rtRow.Left+rtRow.Width;rtRow.Bottom=rtRow.Top+rtRow.Height;var rowCount=this.Data.Data.length;for(var i=0;i<rowCount;++i){var rowItem=this.Data.Data[i];this.DrawRow(rowItem,rtRow);rtRow.Top+=itemHeight;rtRow.Bottom+=itemHeight;}this.DrawBorder();};this.DrawBorder=function(){if(!this.BorderColor)return;var rowCount=this.Data.Data.length;var colCount=this.AryColumnCache.length;this.Canvas.strokeStyle=this.BorderColor;this.Canvas.beginPath();//横线
|
|
3868
3868
|
var rowTop=this.RectClient.Top;var left=this.RectClient.Left,right=this.RectClient.Right;var bottom=this.RectClient.Bottom,top=this.RectClient.Top;for(var i=0;i<rowCount;++i){if(i==0){var drawTop=ToFixedPoint(rowTop);this.Canvas.moveTo(left,drawTop);this.Canvas.lineTo(right,drawTop);}var drawTop=ToFixedPoint(rowTop+this.RowHeight);this.Canvas.moveTo(left,drawTop);this.Canvas.lineTo(right,drawTop);rowTop+=this.RowHeight;}//竖线
|
|
3869
3869
|
var columnLeft=this.RectClient.Left;for(var i=0;i<colCount;++i){var item=this.AryColumnCache[i];if(i==0){var drawLeft=ToFixedPoint(columnLeft);this.Canvas.moveTo(drawLeft,top);this.Canvas.lineTo(drawLeft,bottom);}var drawLeft=ToFixedPoint(columnLeft+item.Width);this.Canvas.moveTo(drawLeft,top);this.Canvas.lineTo(drawLeft,bottom);columnLeft+=item.Width;}this.Canvas.stroke();};this.DrawRow=function(data,rtRow){if(!IFrameSplitOperator.IsNonEmptyArray(data.AryCell))return;var x=rtRow.Left,y=rtRow.Top,width=rtRow.Width;for(var i=0;i<data.AryCell.length;++i){var item=data.AryCell[i];var colItem=this.AryColumnCache[i];var rtBG={Left:x,Top:rtRow.Top,Bottom:rtRow.Bottom,Height:this.RowHeight,Width:colItem.Width};rtBG.Right=rtBG.Left+rtBG.Width;if(item){if(item.BGColor){this.Canvas.fillStyle=item.BGColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}if(item.Text&&rtBG.Width>10){if(item.Color)this.Canvas.fillStyle=item.Color;else this.Canvas.fillStyle=this.TextColor;var xText=x+this.ItemMargin.Left;var yText=rtBG.Bottom-this.ItemMargin.Bottom;if(item.TextAlign=='right'){var textWidth=this.Canvas.measureText(item.Text).width;xText=rtBG.Right-this.ItemMargin.Right-textWidth;}else if(item.TextAlign=='center'){var textWidth=this.Canvas.measureText(item.Text).width;xText=rtBG.Left+rtBG.Width/2-textWidth/2;}this.Canvas.fillText(item.Text,xText,yText);}}x+=rtBG.Width;}};this.GetMaxMin=function(){return{Min:null,Max:null};};}//饼图
|
|
3870
|
-
function
|
|
3871
|
-
this.newMethod();delete this.newMethod;this.
|
|
3872
|
-
this.
|
|
3873
|
-
|
|
3874
|
-
|
|
3875
|
-
this.
|
|
3876
|
-
|
|
3877
|
-
|
|
3878
|
-
|
|
3879
|
-
// 绘制扇形
|
|
3880
|
-
this.Canvas.beginPath();this.Canvas.moveTo(0,0);end+=_rate*2*Math.PI;//终止角度
|
|
3881
|
-
this.Canvas.strokeStyle="white";this.Canvas.fillStyle=_item.Color;this.Canvas.arc(0,0,this.Radius,start,end);this.Canvas.fill();this.Canvas.closePath();this.Canvas.stroke();// 绘制直线
|
|
3882
|
-
this.Canvas.beginPath();this.Canvas.strokeStyle=_item.Color;this.Canvas.moveTo(0,0);var _x=(this.Radius+this.Distance)*Math.cos(end-(end-start)/2);var _y=(this.Radius+this.Distance)*Math.sin(end-(end-start)/2);this.Canvas.lineTo(_x,_y);// JSConsole.Chart.Log(x,y,"xy")
|
|
3883
|
-
// 绘制横线
|
|
3884
|
-
var txtLine=this.txtLine;var paddingX=this.paddingX;this.Canvas.textAlign='left';if(end-(end-start)/2<1.5*Math.PI&&end-(end-start)/2>0.5*Math.PI){txtLine=-this.txtLine;paddingX=-this.paddingX;this.Canvas.textAlign='right';}this.Canvas.lineTo(_x+txtLine,_y);this.Canvas.stroke();// 写文字
|
|
3885
|
-
if(_item.Text){this.Canvas.fillText(_item.Text,_x+txtLine+paddingX,_y);}else{var _text=_item.Name+':'+_item.Value;this.Canvas.fillText(_text,_x+txtLine+paddingX,_y);}start+=_rate*2*Math.PI;//起始角度
|
|
3886
|
-
}this.Canvas.restore();};//空数据
|
|
3887
|
-
this.DrawEmptyData=function(){JSConsole.Chart.Log('[ChartPie::DrawEmptyData]');};this.GetMaxMin=function(){return{Min:null,Max:null};};}//分钟成交量 支持横屏
|
|
3870
|
+
function ChartSimplePie(){this.newMethod=IChartPainting;//派生
|
|
3871
|
+
this.newMethod();delete this.newMethod;this.ClassName='ChartSimplePie';//类名
|
|
3872
|
+
this.BorderColor=g_JSChartResource.ChartSimplePie.BorderColor;this.Offset=CloneData(g_JSChartResource.ChartSimplePie.Offset);this.LineExtendWidth=10;this.TextFontConfig=CloneData(g_JSChartResource.ChartSimplePie.TextFont);this.RectClient={};this.TotalValue=1;this.Radius=50;//半径默认值
|
|
3873
|
+
this.TextFont;this.ReloadResource=function(resource){this.BorderColor=g_JSChartResource.ChartSimplePie.BorderColor;this.Offset=CloneData(g_JSChartResource.ChartSimplePie.Offset);this.TextFontConfig=CloneData(g_JSChartResource.ChartSimplePie.TextFont);};this.CalculateSize=function(){var border=this.ChartFrame.GetBorder();var pixelRatio=GetDevicePixelRatio();this.TextFont=this.TextFontConfig.Size*pixelRatio+'px '+this.TextFontConfig.Name;this.LineExtendWidth=this.GetFontHeight(this.TextFont,"擎")+1;this.RectClient={Width:this.Radius*2*pixelRatio,Height:this.Radius*2*pixelRatio};this.RectClient.Right=border.Right+this.Offset.X;this.RectClient.Top=border.TopEx+this.Offset.Y;this.RectClient.Left=this.RectClient.Right-this.RectClient.Width;this.RectClient.Bottom=this.RectClient.Top+this.RectClient.Height;};this.CalculateTotalValue=function(){var totalValue=0;for(var i=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];if(!IFrameSplitOperator.IsPlusNumber(item.Value))continue;totalValue+=item.Value;}this.TotalValue=totalValue;};this.DrawPie=function(){this.Canvas.font=this.TextFont;this.Canvas.textBaseline='bottom';this.Canvas.textAlign='left';var aryText=[];var maxTextWidth=0;for(var i=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];if(!IFrameSplitOperator.IsPlusNumber(item.Value))continue;if(!item.Text)continue;var textWidth=this.Canvas.measureText(item.Text).width;aryText[i]={Width:textWidth};if(maxTextWidth<textWidth)maxTextWidth=textWidth;}var xOffset=maxTextWidth+this.LineExtendWidth;this.RectClient.Left-=xOffset;this.RectClient.Right-=xOffset;var start=0,end=0;var x=this.RectClient.Left+this.Radius;var y=this.RectClient.Top+this.Radius;for(var i=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];if(!IFrameSplitOperator.IsPlusNumber(item.Value))continue;var rate=item.Value/this.TotalValue;// 绘制扇形
|
|
3874
|
+
this.Canvas.beginPath();this.Canvas.moveTo(x,y);end+=rate*2*Math.PI;//终止角度
|
|
3875
|
+
this.Canvas.strokeStyle=this.BorderColor;this.Canvas.fillStyle=item.Color;this.Canvas.arc(x,y,this.Radius,start,end);this.Canvas.fill();this.Canvas.closePath();this.Canvas.stroke();if(item.Text){// 绘制直线
|
|
3876
|
+
var xLine=this.Radius*Math.cos(end-(end-start)/2)+x;var yLine=this.Radius*Math.sin(end-(end-start)/2)+y;var xEnd=(this.Radius+this.LineExtendWidth)*Math.cos(end-(end-start)/2)+x;var yEnd=(this.Radius+this.LineExtendWidth)*Math.sin(end-(end-start)/2)+y;this.Canvas.beginPath();if(item.LineColor)this.Canvas.strokeStyle=item.LineColor;else this.Canvas.strokeStyle=item.Color;this.Canvas.moveTo(xLine,yLine);this.Canvas.lineTo(xEnd,yEnd);var textWidth=aryText[i].Width;var yText=xEnd;if(end-(end-start)/2<1.5*Math.PI&&end-(end-start)/2>0.5*Math.PI){this.Canvas.lineTo(xEnd-textWidth,yEnd);yText=xEnd-textWidth;}else{this.Canvas.lineTo(xEnd+textWidth,yEnd);}this.Canvas.stroke();if(item.TextColor)this.Canvas.fillStyle=item.TextColor;else this.Canvas.fillStyle=item.Color;this.Canvas.fillText(item.Text,yText,yEnd);}start+=rate*2*Math.PI;//起始角度
|
|
3877
|
+
}};this.Draw=function(){if(!this.Data||!this.Data.Data||!(this.Data.Data.length>0))return this.DrawEmptyData();this.CalculateTotalValue();if(!IFrameSplitOperator.IsPlusNumber(this.TotalValue))this.DrawEmptyData();this.CalculateSize();this.Canvas.save();this.DrawPie();this.Canvas.restore();};//空数据
|
|
3878
|
+
this.DrawEmptyData=function(){JSConsole.Chart.Log('[ChartSimplePie::DrawEmptyData]');};this.GetMaxMin=function(){return{Min:null,Max:null};};}//分钟成交量 支持横屏
|
|
3888
3879
|
function ChartMinuteVolumBar(){this.newMethod=IChartPainting;//派生
|
|
3889
3880
|
this.newMethod();delete this.newMethod;this.ClassName='ChartMinuteVolumBar';//类名
|
|
3890
3881
|
this.UpColor=g_JSChartResource.UpBarColor;//上涨
|
|
@@ -4162,7 +4153,7 @@ this.Draw=function(){if(!this.Data||!this.Data.Data)return;if(this.Data.Data.len
|
|
|
4162
4153
|
*/function ChartStraightArea(){this.newMethod=IChartPainting;//派生
|
|
4163
4154
|
this.newMethod();delete this.newMethod;this.ClassName='ChartStraightArea';//类名
|
|
4164
4155
|
this.Color="rgb(255,193,37)";//线段颜色
|
|
4165
|
-
this.Font='11px 微软雅黑';this.Draw=function(){if(this.ChartFrame.IsMinSize)return;if(this.NotSupportMessage){this.DrawNotSupportmessage();return;}if(!this.Data||!this.Data.Data)return;if(this.ChartFrame.IsHScreen===true){this.HScreenDraw();return;}var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var chartright=this.ChartBorder.GetRight();var bottom=this.ChartBorder.GetBottom();var left=this.ChartBorder.GetLeft();var xPointCount=this.ChartFrame.XPointCount;var xRight=this.ChartFrame.GetXFromIndex(xPointCount-1);for(var
|
|
4156
|
+
this.Font='11px 微软雅黑';this.Draw=function(){if(this.ChartFrame.IsMinSize)return;if(this.NotSupportMessage){this.DrawNotSupportmessage();return;}if(!this.Data||!this.Data.Data)return;if(this.ChartFrame.IsHScreen===true){this.HScreenDraw();return;}var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var chartright=this.ChartBorder.GetRight();var bottom=this.ChartBorder.GetBottom();var left=this.ChartBorder.GetLeft();var xPointCount=this.ChartFrame.XPointCount;var xRight=this.ChartFrame.GetXFromIndex(xPointCount-1);for(var _i4 in this.Data.Data){var _item=this.Data.Data[_i4];if(_item==null||isNaN(_item.Value)||isNaN(_item.Value2))continue;if(_item.Color==null)continue;var valueMax=Math.max(_item.Value,_item.Value2);var valueMin=Math.min(_item.Value,_item.Value2);var yTop=this.ChartFrame.GetYFromData(valueMax);var yBottom=this.ChartFrame.GetYFromData(valueMin);this.Canvas.fillStyle=_item.Color;this.Canvas.fillRect(ToFixedRect(left),ToFixedRect(yTop),ToFixedRect(xRight-left),ToFixedRect(yBottom-yTop));if(_item.Title&&_item.TitleColor){this.Canvas.textAlign='right';this.Canvas.textBaseline='middle';this.Canvas.fillStyle=_item.TitleColor;this.Canvas.font=this.Font;var _y=yTop+(yBottom-yTop)/2;this.Canvas.fillText(_item.Title,xRight,_y);}}};this.HScreenDraw=function(){var bottom=this.ChartBorder.GetBottom();var top=this.ChartBorder.GetTop();var height=this.ChartBorder.GetHeight();for(var _i5 in this.Data.Data){var _item2=this.Data.Data[_i5];if(_item2==null||isNaN(_item2.Value)||isNaN(_item2.Value2))continue;if(_item2.Color==null)continue;var valueMax=Math.max(_item2.Value,_item2.Value2);var valueMin=Math.min(_item2.Value,_item2.Value2);var yTop=this.ChartFrame.GetYFromData(valueMax);var yBottom=this.ChartFrame.GetYFromData(valueMin);this.Canvas.fillStyle=_item2.Color;this.Canvas.fillRect(ToFixedRect(yBottom),ToFixedRect(top),ToFixedRect(yTop-yBottom),ToFixedRect(height));if(_item2.Title&&_item2.TitleColor){var xText=yTop+(yBottom-yTop)/2;var yText=bottom;this.Canvas.save();this.Canvas.translate(xText,yText);this.Canvas.rotate(90*Math.PI/180);this.Canvas.textAlign='right';this.Canvas.textBaseline='middle';this.Canvas.fillStyle=_item2.TitleColor;this.Canvas.font=this.Font;this.Canvas.fillText(_item2.Title,0,-2);this.Canvas.restore();}}};this.GetMaxMin=function(){var xPointCount=this.ChartFrame.XPointCount;var range={};range.Min=null;range.Max=null;if(!this.Data||!this.Data.Data)return range;for(var _i6 in this.Data.Data){var _item3=this.Data.Data[_i6];if(_item3==null||isNaN(_item3.Value)||isNaN(_item3.Value2))continue;var valueMax=Math.max(_item3.Value,_item3.Value2);var valueMin=Math.min(_item3.Value,_item3.Value2);if(range.Max==null)range.Max=valueMax;if(range.Min==null)range.Min=valueMin;if(range.Max<valueMax)range.Max=valueMax;if(range.Min>valueMin)range.Min=valueMin;}return range;};}//分钟线 支持横屏
|
|
4166
4157
|
function ChartMinutePriceLine(){this.newMethod=ChartLine;//派生
|
|
4167
4158
|
this.newMethod();delete this.newMethod;this.ClassName='ChartMinutePriceLine';//类名
|
|
4168
4159
|
this.YClose;this.IsDrawArea=true;//是否画价格面积图
|
|
@@ -4178,7 +4169,7 @@ this.DrawType=0;//0=走势图 14=定制图形
|
|
|
4178
4169
|
this.UpdateLastPoint=function(dateTime,x,y,item){if(IFrameSplitOperator.IsNumber(this.LastPoint.DateTime)&&this.LastPoint.DateTime>dateTime)return;this.LastPoint.DateTime=dateTime;this.LastPoint.X=x;this.LastPoint.Y=y;this.LastPoint.Data=item;this.LastPoint.Value=item.Value;};this.Draw=function(){if(this.NotSupportMessage){this.DrawNotSupportmessage();return;}this.LastPoint={};if(!this.IsShow)return;if(this.DrawType==14){if(this.FFMChart&&this.FFMChart.Draw)this.FFMChart.Draw(this);return;}var isHScreen=this.ChartFrame.IsHScreen===true;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var chartright=this.ChartBorder.GetRight();if(isHScreen===true)chartright=this.ChartBorder.GetBottom();var xPointCount=this.ChartFrame.XPointCount;var minuteCount=this.ChartFrame.MinuteCount;var bottom=this.ChartBorder.GetBottom();var left=this.ChartBorder.GetLeft();var data=this.Data;this.DrawBeforeOpen();//盘前
|
|
4179
4170
|
this.DrawMultiDayBeforeOpen();if(this.IsShowLead)this.DrawLead();//领先指标
|
|
4180
4171
|
if(!data)return;var bFirstPoint=true;var ptFirst={};//第1个点
|
|
4181
|
-
var drawCount=0;var pointCount=0;this.Canvas.save();if(IFrameSplitOperator.IsPlusNumber(this.LineWidth>0))this.Canvas.lineWidth=this.LineWidth;for(var i=data.DataOffset,j=0;i<data.Data.length&&j<xPointCount;++i,++j){var value=null;value=data.Data[i];++pointCount;if(value==null)continue;var x=this.ChartFrame.GetXFromIndex(j);var y=this.ChartFrame.GetYFromData(value);if(bFirstPoint){this.Canvas.strokeStyle=this.Color;this.Canvas.beginPath();if(isHScreen)this.Canvas.moveTo(y,x);else this.Canvas.moveTo(x,y);bFirstPoint=false;ptFirst={X:x,Y:y};}else{if(isHScreen)this.Canvas.lineTo(y,x);else this.Canvas.lineTo(x,y);}if(this.Source){var item=this.Source.Data[i];var dateTime=item.Date*1000000+item.Time*100;this.UpdateLastPoint(dateTime,x,y,{Value:value,Index:i,Date:item.Date,Time:item.Time,Type:0,Explain:"盘中"});}++drawCount;if(pointCount>=minuteCount)//上一天的数据和这天地数据线段要断开
|
|
4172
|
+
var drawCount=0;var pointCount=0;this.Canvas.save();this.ClipClient(isHScreen);if(IFrameSplitOperator.IsPlusNumber(this.LineWidth>0))this.Canvas.lineWidth=this.LineWidth;for(var i=data.DataOffset,j=0;i<data.Data.length&&j<xPointCount;++i,++j){var value=null;value=data.Data[i];++pointCount;if(value==null)continue;var x=this.ChartFrame.GetXFromIndex(j);var y=this.ChartFrame.GetYFromData(value);if(bFirstPoint){this.Canvas.strokeStyle=this.Color;this.Canvas.beginPath();if(isHScreen)this.Canvas.moveTo(y,x);else this.Canvas.moveTo(x,y);bFirstPoint=false;ptFirst={X:x,Y:y};}else{if(isHScreen)this.Canvas.lineTo(y,x);else this.Canvas.lineTo(x,y);}if(this.Source){var item=this.Source.Data[i];var dateTime=item.Date*1000000+item.Time*100;this.UpdateLastPoint(dateTime,x,y,{Value:value,Index:i,Date:item.Date,Time:item.Time,Type:0,Explain:"盘中"});}++drawCount;if(pointCount>=minuteCount)//上一天的数据和这天地数据线段要断开
|
|
4182
4173
|
{bFirstPoint=true;this.Canvas.stroke();if(this.IsDrawArea)//画面积
|
|
4183
4174
|
{if(isHScreen){this.Canvas.lineTo(left,x);this.Canvas.lineTo(left,ptFirst.X);this.SetFillStyle(this.AreaColor,this.ChartBorder.GetRightEx(),bottom,this.ChartBorder.GetLeftEx(),bottom);}else{this.Canvas.lineTo(x,bottom);this.Canvas.lineTo(ptFirst.X,bottom);this.SetFillStyle(this.AreaColor,left,this.ChartBorder.GetTopEx(),left,bottom);}this.Canvas.fill();}pointCount=0;drawCount=0;}}if(drawCount>0){if(drawCount==1)//如果线段只有1个点 线段无法画出来 直接画点
|
|
4184
4175
|
{this.Canvas.beginPath();if(isHScreen)this.Canvas.arc(ptFirst.Y,ptFirst.X,1,0,360,false);else this.Canvas.arc(ptFirst.X,ptFirst.Y,1,0,360,false);this.Canvas.closePath();this.Canvas.fillStyle=this.Color;this.Canvas.fill();}else{this.Canvas.stroke();if(this.IsDrawArea)//画面积
|
|
@@ -4322,11 +4313,11 @@ this.newMethod();delete this.newMethod;this.ClassName="ChartRectangle";this.Colo
|
|
|
4322
4313
|
this.Canvas.fillStyle=gradient;
|
|
4323
4314
|
*/this.Canvas.fillStyle=this.Color[0];bFill=true;}else if(this.Color.length==1){if(this.Color[0]){this.Canvas.fillStyle=this.Color[0];bFill=true;}}else{return;}var chartWidth=this.ChartBorder.GetWidth();var chartHeight=this.ChartBorder.GetHeightEx();var left=this.Rect.Left/1000*chartWidth;var top=this.Rect.Top/1000*chartHeight;var right=this.Rect.Right/1000*chartWidth;var bottom=this.Rect.Bottom/1000*chartHeight;left=this.ChartBorder.GetLeft()+left;top=this.ChartBorder.GetTopEx()+top;right=this.ChartBorder.GetLeft()+right;bottom=this.ChartBorder.GetTopEx()+bottom;var width=Math.abs(left-right);var height=Math.abs(top-bottom);if(bFill)this.Canvas.fillRect(left,top,width,height);this.Canvas.beginPath();this.Canvas.rect(ToFixedPoint(left),ToFixedPoint(top),ToFixedRect(width),ToFixedRect(height));this.Canvas.stroke();};}// 文字+线段输出
|
|
4324
4315
|
function ChartTextLine(){this.newMethod=IChartPainting;//派生
|
|
4325
|
-
this.newMethod();delete this.newMethod;this.ClassName="ChartTextLine";this.Text;//
|
|
4326
|
-
this.Line;//Type=线段类型 0=不画 1=直线 2=虚线, Color
|
|
4327
|
-
this.Price;this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize)return;if(!this.Text||!this.Line||!IFrameSplitOperator.IsNumber(this.Price))return;this.IsHScreen=this.ChartFrame.IsHScreen===true;var left=this.ChartBorder.GetLeft();var right=this.ChartBorder.GetRight();var bottom=this.ChartBorder.GetBottomEx();var top=this.ChartBorder.GetTopEx();var y=this.ChartFrame.GetYFromData(this.Price);var textWidth=0;if(this.Text.Title){var x=left+2*GetDevicePixelRatio();var yText=y;this.Canvas.textAlign='left';this.Canvas.textBaseline='middle';var offsetY=8*GetDevicePixelRatio();if(y-offsetY<top){this.Canvas.textBaseline='top';yText=top;}else if(y+offsetY>bottom){this.Canvas.textBaseline='bottom';yText=bottom;}this.Canvas.fillStyle=this.Text.Color;this.Canvas.font=this.Text.Font;this.Canvas.fillText(this.Text.Title,x,yText);textWidth=this.Canvas.measureText(this.Text.Title).width+4*GetDevicePixelRatio();}if(this.Line.Type>0){if(this.Line.Type==2)//虚线
|
|
4328
|
-
{this.Canvas.
|
|
4329
|
-
}var x=left+textWidth;this.Canvas.strokeStyle=this.Line.Color;this.Canvas.beginPath();this.Canvas.moveTo(x,ToFixedPoint(y));this.Canvas.lineTo(right,ToFixedPoint(y));this.Canvas.stroke();
|
|
4316
|
+
this.newMethod();delete this.newMethod;this.ClassName="ChartTextLine";this.Text;//{ Title:内容, Color: YOffset:, }
|
|
4317
|
+
this.Line;//{ Type=线段类型 0=不画 1=直线 2=虚线, Color:, Width:, LineDash:[] }
|
|
4318
|
+
this.Price;this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize)return;if(!this.Text||!this.Line||!IFrameSplitOperator.IsNumber(this.Price))return;this.IsHScreen=this.ChartFrame.IsHScreen===true;var left=this.ChartBorder.GetLeft();var right=this.ChartBorder.GetRight();var bottom=this.ChartBorder.GetBottomEx();var top=this.ChartBorder.GetTopEx();var y=this.ChartFrame.GetYFromData(this.Price);this.Canvas.save();this.ClipClient(this.IsHScreen);var textWidth=0;if(this.Text.Title){var x=left+2*GetDevicePixelRatio();var yText=y;this.Canvas.textAlign='left';this.Canvas.textBaseline='middle';var offsetY=8*GetDevicePixelRatio();if(y-offsetY<top){this.Canvas.textBaseline='top';yText=top;}else if(y+offsetY>bottom){this.Canvas.textBaseline='bottom';yText=bottom;}this.Canvas.fillStyle=this.Text.Color;this.Canvas.font=this.Text.Font;this.Canvas.fillText(this.Text.Title,x,yText);textWidth=this.Canvas.measureText(this.Text.Title).width+4*GetDevicePixelRatio();}if(this.Line.Type>0){if(this.Line.Type==2)//虚线
|
|
4319
|
+
{if(IFrameSplitOperator.IsNonEmptyArray(this.Line.LineDash))this.Canvas.setLineDash(this.Line.LineDash);else this.Canvas.setLineDash([3,5]);//虚线
|
|
4320
|
+
}if(IFrameSplitOperator.IsNumber(this.Line.Width))this.Canvas.lineWidth=this.Line.Width;var x=left+textWidth;this.Canvas.strokeStyle=this.Line.Color;this.Canvas.beginPath();this.Canvas.moveTo(x,ToFixedPoint(y));this.Canvas.lineTo(right,ToFixedPoint(y));this.Canvas.stroke();}this.Canvas.restore();};this.GetMaxMin=function(){var range={Min:null,Max:null};if(IFrameSplitOperator.IsNumber(this.Price)){range.Min=this.Price;range.Max=this.Price;}return range;};}// 柱子集合 支持横屏
|
|
4330
4321
|
function ChartMultiBar(){this.newMethod=IChartPainting;//派生
|
|
4331
4322
|
this.newMethod();delete this.newMethod;this.ClassName="ChartMultiBar";this.Bars=[];// [ {Point:[ {Index, Value, Value2 }, ], Color:, Width: , Type: 0 实心 1 空心 }, ]
|
|
4332
4323
|
this.IsHScreen=false;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.length<=0)return;this.IsHScreen=this.ChartFrame.IsHScreen===true;var xPointCount=this.ChartFrame.XPointCount;var offset=this.Data.DataOffset;var dataWidth=this.ChartFrame.DataWidth;var pixelRatio=GetDevicePixelRatio();var drawBars=[];for(var i in this.Bars){var item=this.Bars[i];var drawPoints={Point:[],Color:item.Color,Width:dataWidth,Type:0};if(item.Type>0)drawPoints.Type=item.Type;if(item.Width>0){drawPoints.Width=item.Width*pixelRatio;if(drawPoints.Width>dataWidth)drawPoints.Width=dataWidth;}else{if(drawPoints.Width<4)drawPoints.Width=1*pixelRatio;}for(var j in item.Point){var point=item.Point[j];if(!IFrameSplitOperator.IsNumber(point.Index))continue;var index=point.Index-offset;if(index>=0&&index<xPointCount){var x=this.ChartFrame.GetXFromIndex(index);var y=this.ChartFrame.GetYFromData(point.Value);var y2=this.ChartFrame.GetYFromData(point.Value2);drawPoints.Point.push({X:x,Y:y,Y2:y2});}}if(drawPoints.Point.length>0)drawBars.push(drawPoints);}for(var i in drawBars){var item=drawBars[i];if(item.Width>=4){if(item.Type==1)this.DrawHollowBar(item);else this.DrawFillBar(item);}else{this.DrawLineBar(item);}}};this.DrawLineBar=function(bar){this.Canvas.strokeStyle=bar.Color;var backupLineWidth=this.Canvas.lineWidth;this.Canvas.lineWidth=bar.Width;for(var i in bar.Point){var item=bar.Point[i];this.Canvas.beginPath();if(this.IsHScreen){this.Canvas.moveTo(ToFixedPoint(item.Y),ToFixedPoint(item.X));this.Canvas.lineTo(ToFixedPoint(item.Y2),ToFixedPoint(item.X));}else{this.Canvas.moveTo(ToFixedPoint(item.X),ToFixedPoint(item.Y));this.Canvas.lineTo(ToFixedPoint(item.X),ToFixedPoint(item.Y2));}this.Canvas.stroke();}this.Canvas.lineWidth=backupLineWidth;};this.DrawFillBar=function(bar){this.Canvas.fillStyle=bar.Color;for(var i in bar.Point){var item=bar.Point[i];var x=item.X-bar.Width/2;var y=Math.min(item.Y,item.Y2);var barWidth=bar.Width;var barHeight=Math.abs(item.Y-item.Y2);if(this.IsHScreen)this.Canvas.fillRect(ToFixedRect(y),ToFixedRect(x),ToFixedRect(barHeight),ToFixedRect(barWidth));else this.Canvas.fillRect(ToFixedRect(x),ToFixedRect(y),ToFixedRect(barWidth),ToFixedRect(barHeight));}};this.DrawHollowBar=function(bar)//空心柱子
|
|
@@ -4393,27 +4384,203 @@ var pixelRatio=GetDevicePixelRatio();var lineWidth=1*pixelRatio;if(item.Line.Wid
|
|
|
4393
4384
|
this.Canvas.strokeStyle=item.Line.Color;this.Canvas.beginPath();if(this.IsHScreen){this.Canvas.moveTo(yText,ToFixedPoint(x));this.Canvas.lineTo(yPrice,ToFixedPoint(x));}else{this.Canvas.moveTo(ToFixedPoint2(lineWidth,x),yText);this.Canvas.lineTo(ToFixedPoint2(lineWidth,x),yPrice);}this.Canvas.stroke();this.Canvas.restore();}}};this.GetMaxMin=function(){var range={Min:null,Max:null};var xPointCount=this.ChartFrame.XPointCount;var start=this.Data.DataOffset;var end=start+xPointCount;for(var i in this.Texts){var item=this.Texts[i];if(!IFrameSplitOperator.IsNumber(item.Index))continue;if(item.Index>=start&&item.Index<end){if(range.Max==null)range.Max=item.Value;else if(range.Max<item.Value)range.Max=item.Value;if(range.Min==null)range.Min=item.Value;else if(range.Min>item.Value)range.Min=item.Value;}}return range;};}//绘制SVG图标
|
|
4394
4385
|
function ChartDrawSVG(){this.newMethod=IChartPainting;//派生
|
|
4395
4386
|
this.newMethod();delete this.newMethod;this.ClassName="ChartDrawSVG";this.Family;this.TextFont;this.Texts=[];//[ { Index:, Value:, Symbol:, Text:, Size: } ] SVG:图标 Text:文字 Size:图标大小
|
|
4387
|
+
//this.Data; 存K线数据
|
|
4396
4388
|
this.IsHScreen=false;//是否横屏
|
|
4397
4389
|
this.IsDestroy=false;//是否已销毁
|
|
4398
4390
|
this.EnableTooltip=true;this.TooltipRect=[];this.ExcludeArea=null;//排除区域 { Left, Top, Width, Height, Type:0 }
|
|
4399
4391
|
this.AutoPosition=null;//{ Direction:0, MaxYOffset:40 } //自动调整Y轴偏移,防止文字重叠
|
|
4400
4392
|
this.AryDrawRect=[];//已经绘制的区域
|
|
4401
|
-
this.AutoYOffset=0
|
|
4402
|
-
this.Draw=function(){this.TooltipRect=[];this.AryDrawRect=[];this.AutoYOffset=0;if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;this.
|
|
4393
|
+
this.AutoYOffset=0;this.BuildKeyCallback=null;this.MapCache=null;//key=date/date-time value={ Data:[] }
|
|
4394
|
+
this.BuildKey=function(item){if(this.BuildKeyCallback)return this.BuildKeyCallback(item);if(IFrameSplitOperator.IsNumber(item.Time))return item.Date+'-'+item.Time;else return''+item.Date;};this.BuildCacheData=function(){var mapData=new _map2.default();this.MapCache=mapData;for(var i=0;i<this.Texts.length;++i){var item=this.Texts[i];var key=this.BuildKey(item);if(mapData.has(key)){var mapItem=mapData.get(key);mapItem.Data.push(item);}else{mapData.set(key,{Date:item.Date,Time:item.Time,Data:[item]});}}};this.Draw=function(){this.TooltipRect=[];this.AryDrawRect=[];this.AutoYOffset=0;if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(!this.MapCache||this.MapCache.size<=0)return;this.DrawSVGV2();};this.DrawDetail=function(rtSVG,data,svgItem){if(!IFrameSplitOperator.IsNonEmptyArray(data.Content))return;var lefMargin=2;var rightMargin=2;var itemSpace=2;var rtBorder={Left:rtSVG.Right,Right:rtSVG.Right,Bottom:rtSVG.Bottom};var rightBorder=0;//右边的边界 0=div的宽度 1=图形框架边框
|
|
4403
4395
|
if(IFrameSplitOperator.IsNumber(data.ItemSpace))itemSpace=data.ItemSpace;if(IFrameSplitOperator.IsNumber(data.YOffset))rtBorder.Bottom+=data.YOffset;if(IFrameSplitOperator.IsNumber(data.XOffset))rtBorder.Left+=data.XOffset;if(IFrameSplitOperator.IsNumber(data.LeftMargin))lefMargin=data.LeftMargin;if(IFrameSplitOperator.IsNumber(data.RightMargin))rightMargin=data.RightMargin;if(IFrameSplitOperator.IsNumber(data.RightBorder))rightBorder=data.RightBorder;if(data.Font)this.Canvas.font=data.Font;else this.Canvas.font=this.TextFont;this.Canvas.textBaseline='bottom';this.Canvas.textAlign='left';var textHeight=this.Canvas.measureText("擎").width+2;rtBorder.Height=textHeight+5;var yText=rtBorder.Bottom-(rtBorder.Height-textHeight)/2;var xText=rtBorder.Left+lefMargin;var aryText=[];for(var i=0;i<data.Content.length;++i){if(aryText.length>0)xText+=itemSpace;var item=data.Content[i];if(!item.Text)continue;var textWidth=this.Canvas.measureText(item.Text).width+2;aryText.push({X:xText,Y:yText,Width:textWidth,Data:item});xText+=textWidth;rtBorder.Right=xText;}rtBorder.Right+=rightMargin;rtBorder.Width=rtBorder.Right-rtBorder.Left;rtBorder.Top=rtBorder.Bottom-rtBorder.Height;var right=this.ChartBorder.GetChartWidth()-1;if(rightBorder==1)right=this.ChartBorder.GetRight();if(rtBorder.Right>right)//右边显示不下,显示在左边
|
|
4404
4396
|
{rtBorder.Right=rtSVG.Left;if(IFrameSplitOperator.IsNumber(data.XOffset))rtBorder.Right-=data.XOffset;rtBorder.Left=rtBorder.Right-rtBorder.Width;var xText=rtBorder.Left+lefMargin;for(var i=0;i<aryText.length;++i){if(i>0)xText+=itemSpace;var item=aryText[i];item.X=xText;xText+=item.Width;}}if(data.BGColor){this.Canvas.fillStyle=data.BGColor;this.Canvas.fillRect(rtBorder.Left,rtBorder.Top,rtBorder.Width,rtBorder.Height);}if(data.BorderColor){this.Canvas.strokeStyle=data.BorderColor;this.Canvas.strokeRect(ToFixedPoint(rtBorder.Left),ToFixedPoint(rtBorder.Top),ToFixedRect(rtBorder.Width),ToFixedRect(rtBorder.Height));}for(var i=0;i<aryText.length;++i){var item=aryText[i];this.Canvas.fillStyle=item.Data.Color;this.Canvas.fillText(item.Data.Text,item.X,item.Y);}this.AryDrawRect.push({Left:rtBorder.Left,Top:rtBorder.Top,Right:rtBorder.Right,Bottom:rtBorder.Bottom,Type:"Detail",Data:svgItem});};this.GetDetailPosition=function(rtSVG,data){if(!IFrameSplitOperator.IsNonEmptyArray(data.Content))return null;var lefMargin=2;var rightMargin=2;var itemSpace=2;var rtBorder={Left:rtSVG.Right,Right:rtSVG.Right,Bottom:rtSVG.Bottom};var rightBorder=0;//右边的边界 0=div的宽度 1=图形框架边框
|
|
4405
4397
|
if(IFrameSplitOperator.IsNumber(data.ItemSpace))itemSpace=data.ItemSpace;if(IFrameSplitOperator.IsNumber(data.YOffset))rtBorder.Bottom+=data.YOffset;if(IFrameSplitOperator.IsNumber(data.XOffset))rtBorder.Left+=data.XOffset;if(IFrameSplitOperator.IsNumber(data.LeftMargin))lefMargin=data.LeftMargin;if(IFrameSplitOperator.IsNumber(data.RightMargin))rightMargin=data.RightMargin;if(IFrameSplitOperator.IsNumber(data.RightBorder))rightBorder=data.RightBorder;if(data.Font)this.Canvas.font=data.Font;else this.Canvas.font=this.TextFont;var textHeight=this.Canvas.measureText("擎").width+2;rtBorder.Height=textHeight+5;var yText=rtBorder.Bottom-(rtBorder.Height-textHeight)/2;var xText=rtBorder.Left+lefMargin;var bFrist=true;for(var i=0;i<data.Content.length;++i){if(!bFrist)xText+=itemSpace;var item=data.Content[i];if(!item.Text)continue;var textWidth=this.Canvas.measureText(item.Text).width+2;xText+=textWidth;rtBorder.Right=xText;bFrist=false;}rtBorder.Right+=rightMargin;rtBorder.Width=rtBorder.Right-rtBorder.Left;rtBorder.Top=rtBorder.Bottom-rtBorder.Height;var right=this.ChartBorder.GetChartWidth()-1;if(rightBorder==1)right=this.ChartBorder.GetRight();if(rtBorder.Right>right)//右边显示不下,显示在左边
|
|
4406
4398
|
{rtBorder.Right=rtSVG.Left;if(IFrameSplitOperator.IsNumber(data.XOffset))rtBorder.Right-=data.XOffset;rtBorder.Left=rtBorder.Right-rtBorder.Width;}return rtBorder;};this.CalculateShowPosition=function(item,pt){var x=pt.X,y=pt.Y;var svgItem=item.SVG;if(IFrameSplitOperator.IsNumber(svgItem.YOffset))y+=svgItem.YOffset;var fontSVG=svgItem.Size+'px '+this.Family;this.Canvas.font=fontSVG;var halfSize=svgItem.Size/2;var rtSVG={Left:x-halfSize,Right:x+halfSize,Top:y-svgItem.Size,Bottom:y,Height:svgItem.Size,Width:svgItem.Size};if(svgItem.VAlign===0)//top
|
|
4407
4399
|
{rtSVG.Top=y;rtSVG.Bottom=rtSVG.Top+svgItem.Size;}else if(svgItem.VAlign===1)//middle
|
|
4408
|
-
{rtSVG.Top=y-svgItem.Size/2;rtSVG.Bottom=rtSVG.Top+svgItem.Size;}if(rtSVG.Top<0){rtSVG.Top=0;rtSVG.Bottom=svgItem.Size;y=rtSVG.Bottom;}var rtContent=null;if(item.Detail)rtContent=this.GetDetailPosition(rtSVG,item.Detail);var yOffset=0,yMoveStep=-5;if(IFrameSplitOperator.IsNumber(this.AutoPosition.MoveYStep))yMoveStep=-Math.abs(this.AutoPosition.MoveYStep);for(var i=0;i<20;++i){if(rtSVG&&!rtContent){if(!this.IsRectOverlap(rtSVG))break;}else if(rtSVG&&rtContent){if(!this.IsRectOverlap(rtSVG)&&!this.IsRectOverlap(rtContent))break;}yOffset+=yMoveStep;if(Math.abs(yOffset)>=this.AutoPosition.MaxYOffset)break;rtSVG.Top+=yMoveStep;rtSVG.Bottom+=yMoveStep;if(rtContent){rtContent.Top+=yMoveStep;rtContent.Bottom+=yMoveStep;}}pt.X=x;pt.Y=y+yOffset;};this.IsRectOverlap=function(rect){for(var i=0;i<this.AryDrawRect.length;++i){var item=this.AryDrawRect[i];if((rect.Left>=item.Left&&rect.Left<=item.Right||rect.Right>=item.Left&&rect.Right<=item.Right)&&(rect.Top>=item.Top&&rect.Top<=item.Bottom||rect.Bottom>=item.Top&&rect.Bottom<=item.Bottom)){return true;}}return false;};this.
|
|
4400
|
+
{rtSVG.Top=y-svgItem.Size/2;rtSVG.Bottom=rtSVG.Top+svgItem.Size;}if(rtSVG.Top<0){rtSVG.Top=0;rtSVG.Bottom=svgItem.Size;y=rtSVG.Bottom;}var rtContent=null;if(item.Detail)rtContent=this.GetDetailPosition(rtSVG,item.Detail);var yOffset=0,yMoveStep=-5;if(IFrameSplitOperator.IsNumber(this.AutoPosition.MoveYStep))yMoveStep=-Math.abs(this.AutoPosition.MoveYStep);for(var i=0;i<20;++i){if(rtSVG&&!rtContent){if(!this.IsRectOverlap(rtSVG))break;}else if(rtSVG&&rtContent){if(!this.IsRectOverlap(rtSVG)&&!this.IsRectOverlap(rtContent))break;}yOffset+=yMoveStep;if(Math.abs(yOffset)>=this.AutoPosition.MaxYOffset)break;rtSVG.Top+=yMoveStep;rtSVG.Bottom+=yMoveStep;if(rtContent){rtContent.Top+=yMoveStep;rtContent.Bottom+=yMoveStep;}}pt.X=x;pt.Y=y+yOffset;};this.IsRectOverlap=function(rect){for(var i=0;i<this.AryDrawRect.length;++i){var item=this.AryDrawRect[i];if((rect.Left>=item.Left&&rect.Left<=item.Right||rect.Right>=item.Left&&rect.Right<=item.Right)&&(rect.Top>=item.Top&&rect.Top<=item.Bottom||rect.Bottom>=item.Top&&rect.Bottom<=item.Bottom)){return true;}}return false;};this.GetKValue=function(kItem,valueName){switch(valueName){case"HIGH":case"H":return kItem.High;case"L":case"LOW":return kItem.Low;case"C":case"CLOSE":return kItem.Close;case"O":case"OPEN":return KItem.Open;default:return null;}};this.DrawSVGV2=function(){if(!this.IsShow||this.ChartFrame.IsMinSize)return;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;if(!IFrameSplitOperator.IsNonEmptyArray(this.Texts))return;if(!this.Family)return;this.IsHScreen=this.ChartFrame.IsHScreen===true;if(this.IsHScreen)return;var xPointCount=this.ChartFrame.XPointCount;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var isMinute=this.IsMinuteFrame();var border=this.GetBorder();var pixelRatio=GetDevicePixelRatio();if(this.IsHScreen){}else{var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;var chartLeft=border.LeftEx;}var x,y,price;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var kItem=this.Data.Data[i];var key=this.BuildKey(kItem);if(!this.MapCache.has(key))continue;var mapItem=this.MapCache.get(key);if(isMinute){x=this.ChartFrame.GetXFromIndex(j);}else{var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;x=left+(right-left)/2;}for(var j=0;j<mapItem.Data.length;++j){var item=mapItem.Data[j];if(item.Value=="Top")y=top;else if(item.Value=="Bottom")y=bottom;else{if(IFrameSplitOperator.IsString(item.Value))price=this.GetKValue(kItem,item.Value);else price=item.Value;y=this.ChartFrame.GetYFromData(price,false);}if(IFrameSplitOperator.IsNumber(item.YOffset))y+=item.YOffset;//Y轴偏移
|
|
4409
4401
|
var svgItem=item.SVG;if(IFrameSplitOperator.IsNumber(svgItem.YOffset))y+=svgItem.YOffset;if(this.AutoPosition){var pt={X:x,Y:y};this.CalculateShowPosition(item,pt);//重新计算位置
|
|
4410
|
-
x=pt.X;y=pt.Y;}var fontSVG=svgItem.Size+'px '+this.Family;this.Canvas.font=fontSVG;var halfSize=svgItem.Size/2;var textBaseline='bottom';var rtSVG={Left:x-halfSize,Right:x+halfSize,Top:y-svgItem.Size,Bottom:y,Height:svgItem.Size,Width:svgItem.Size};if(svgItem.VAlign===0){textBaseline="top";rtSVG.Top=y;rtSVG.Bottom=rtSVG.Top+svgItem.Size;}else if(svgItem.VAlign===1){textBaseline='middle';rtSVG.Top=y-svgItem.Size/2;rtSVG.Bottom=rtSVG.Top+svgItem.Size;}if(rtSVG.Top<0){rtSVG.Top=0;rtSVG.Bottom=svgItem.Size;y=rtSVG.Bottom;}this.Canvas.textBaseline=textBaseline;this.Canvas.textAlign='center';this.Canvas.fillStyle=svgItem.Color;this.Canvas.fillText(svgItem.Symbol,x,y);this.AryDrawRect.push({Left:rtSVG.Left,Top:rtSVG.Top,Right:rtSVG.Right,Bottom:rtSVG.Bottom,Type:"SVG",Data:item});if(this.EnableTooltip)this.TooltipRect.push({Rect:rtSVG,Index:i});//文字
|
|
4402
|
+
x=pt.X;y=pt.Y;}var fontSVG=svgItem.Size+'px '+this.Family;this.Canvas.font=fontSVG;var halfSize=svgItem.Size/2;var textBaseline='bottom';var rtSVG={Left:x-halfSize,Right:x+halfSize,Top:y-svgItem.Size,Bottom:y,Height:svgItem.Size,Width:svgItem.Size};if(svgItem.VAlign===0){textBaseline="top";rtSVG.Top=y;rtSVG.Bottom=rtSVG.Top+svgItem.Size;}else if(svgItem.VAlign===1){textBaseline='middle';rtSVG.Top=y-svgItem.Size/2;rtSVG.Bottom=rtSVG.Top+svgItem.Size;}if(rtSVG.Top<0){rtSVG.Top=0;rtSVG.Bottom=svgItem.Size;y=rtSVG.Bottom;}this.Canvas.textBaseline=textBaseline;this.Canvas.textAlign='center';this.Canvas.fillStyle=svgItem.Color;this.Canvas.fillText(svgItem.Symbol,x,y);this.AryDrawRect.push({Left:rtSVG.Left,Top:rtSVG.Top,Right:rtSVG.Right,Bottom:rtSVG.Bottom,Type:"SVG",Data:item});if(this.EnableTooltip)this.TooltipRect.push({Rect:rtSVG,Index:i,Item:item});//文字
|
|
4411
4403
|
if(item.Text&&item.Text.Content&&this.TextFont){var textItem=item.Text;this.Canvas.font=this.TextFont;this.Canvas.fillStyle=textItem.Color;var yText=y;if(IFrameSplitOperator.IsNumber(textItem.YOffset))yText+=textItem.YOffset;this.Canvas.fillText(textItem.Content,x,yText);}if(item.Detail){this.DrawDetail(rtSVG,item.Detail,item);}//连线
|
|
4412
|
-
if(item.Line){var lineItem=item.Line;var price=null,yPrice=null;
|
|
4404
|
+
if(item.Line){var lineItem=item.Line;var price=null,yPrice=null;if(lineItem.Value=="Bottom"){yPrice=bottom;}else if(lineItem.Value=="Top"){yPrice=top;}else{if(IFrameSplitOperator.IsString(lineItem.Value))price=this.GetKValue(kItem,lineItem.Value);if(!IFrameSplitOperator.IsNumber(price))continue;yPrice=this.ChartFrame.GetYFromData(price);}if(yPrice>=rtSVG.Top&&yPrice<=rtSVG.Bottom)continue;var yText;if(yPrice<rtSVG.Top){yText=rtSVG.Top;if(IFrameSplitOperator.IsNumber(lineItem.SVGBlank)){//yPrice+=lineItem.Blank;
|
|
4413
4405
|
yText-=lineItem.SVGBlank;}}else{yText=rtSVG.Bottom;if(IFrameSplitOperator.IsNumber(lineItem.SVGBlank)){//yPrice-=lineItem.Blank;
|
|
4414
4406
|
yText+=lineItem.SVGBlank;}}if(lineItem.Dash)this.Canvas.setLineDash(lineItem.Dash);//虚线
|
|
4415
4407
|
var lineWidth=1*pixelRatio;if(lineItem.Width>0)lineWidth=lineItem.Width*pixelRatio;this.Canvas.lineWidth=lineWidth;//线宽
|
|
4416
|
-
this.Canvas.strokeStyle=lineItem.Color;this.Canvas.beginPath();if(this.IsHScreen){this.Canvas.moveTo(yText,ToFixedPoint(x));this.Canvas.lineTo(yPrice,ToFixedPoint(x));}else{this.Canvas.moveTo(ToFixedPoint2(lineWidth,x),yText);this.Canvas.lineTo(ToFixedPoint2(lineWidth,x),yPrice);}this.Canvas.stroke();this.Canvas.setLineDash([]);}}}
|
|
4408
|
+
this.Canvas.strokeStyle=lineItem.Color;this.Canvas.beginPath();if(this.IsHScreen){this.Canvas.moveTo(yText,ToFixedPoint(x));this.Canvas.lineTo(yPrice,ToFixedPoint(x));}else{this.Canvas.moveTo(ToFixedPoint2(lineWidth,x),yText);this.Canvas.lineTo(ToFixedPoint2(lineWidth,x),yPrice);}this.Canvas.stroke();this.Canvas.setLineDash([]);}}}};/*
|
|
4409
|
+
this.DrawSVG=function()
|
|
4410
|
+
{
|
|
4411
|
+
if (!this.IsShow || this.ChartFrame.IsMinSize) return;
|
|
4412
|
+
if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return;
|
|
4413
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.Texts)) return;
|
|
4414
|
+
if (!this.Family) return;
|
|
4415
|
+
|
|
4416
|
+
this.IsHScreen=(this.ChartFrame.IsHScreen===true);
|
|
4417
|
+
var xPointCount=this.ChartFrame.XPointCount;
|
|
4418
|
+
var offset=this.Data.DataOffset;
|
|
4419
|
+
var top=this.ChartBorder.GetTopEx();
|
|
4420
|
+
var bottom=this.ChartBorder.GetBottomEx();
|
|
4421
|
+
var pixelRatio = GetDevicePixelRatio();
|
|
4422
|
+
|
|
4423
|
+
var x=0,y=0;
|
|
4424
|
+
for(var i=0; i<this.Texts.length; ++i)
|
|
4425
|
+
{
|
|
4426
|
+
var item=this.Texts[i];
|
|
4427
|
+
|
|
4428
|
+
if (!item.SVG || !item.SVG.Symbol) continue;
|
|
4429
|
+
if (!IFrameSplitOperator.IsNumber(item.Index)) continue;
|
|
4430
|
+
|
|
4431
|
+
var isMinuteFrame=this.IsMinuteFrame();
|
|
4432
|
+
var index=item.Index-offset;
|
|
4433
|
+
var kItem=this.Data.Data[item.Index];
|
|
4434
|
+
if (index<0 || index>=xPointCount) continue;
|
|
4435
|
+
|
|
4436
|
+
x=this.ChartFrame.GetXFromIndex(index);
|
|
4437
|
+
if (item.Value=="Top") y=top;
|
|
4438
|
+
else if (item.Value=="Bottom") y=bottom;
|
|
4439
|
+
else y=this.ChartFrame.GetYFromData(item.Value, false);
|
|
4440
|
+
if (IFrameSplitOperator.IsNumber(item.YOffset)) y+=item.YOffset; //Y轴偏移
|
|
4441
|
+
|
|
4442
|
+
var svgItem=item.SVG;
|
|
4443
|
+
if (IFrameSplitOperator.IsNumber(svgItem.YOffset)) y+=svgItem.YOffset;
|
|
4444
|
+
|
|
4445
|
+
if (this.AutoPosition)
|
|
4446
|
+
{
|
|
4447
|
+
var pt={ X:x, Y:y };
|
|
4448
|
+
this.CalculateShowPosition(item, pt); //重新计算位置
|
|
4449
|
+
x=pt.X;
|
|
4450
|
+
y=pt.Y;
|
|
4451
|
+
}
|
|
4452
|
+
|
|
4453
|
+
|
|
4454
|
+
var fontSVG=`${svgItem.Size}px ${this.Family}`;
|
|
4455
|
+
this.Canvas.font=fontSVG;
|
|
4456
|
+
var halfSize=svgItem.Size/2;
|
|
4457
|
+
var textBaseline='bottom';
|
|
4458
|
+
var rtSVG={ Left:x-halfSize, Right:x+halfSize, Top:y-svgItem.Size, Bottom:y, Height:svgItem.Size, Width:svgItem.Size };
|
|
4459
|
+
if (svgItem.VAlign===0)
|
|
4460
|
+
{
|
|
4461
|
+
textBaseline="top";
|
|
4462
|
+
rtSVG.Top=y;
|
|
4463
|
+
rtSVG.Bottom=rtSVG.Top+svgItem.Size;
|
|
4464
|
+
}
|
|
4465
|
+
else if (svgItem.VAlign===1)
|
|
4466
|
+
{
|
|
4467
|
+
textBaseline='middle';
|
|
4468
|
+
rtSVG.Top=y-svgItem.Size/2;
|
|
4469
|
+
rtSVG.Bottom=rtSVG.Top+svgItem.Size;
|
|
4470
|
+
}
|
|
4471
|
+
|
|
4472
|
+
if (rtSVG.Top<0)
|
|
4473
|
+
{
|
|
4474
|
+
rtSVG.Top=0;
|
|
4475
|
+
rtSVG.Bottom=svgItem.Size;
|
|
4476
|
+
y=rtSVG.Bottom;
|
|
4477
|
+
}
|
|
4478
|
+
|
|
4479
|
+
this.Canvas.textBaseline=textBaseline;
|
|
4480
|
+
this.Canvas.textAlign='center';
|
|
4481
|
+
this.Canvas.fillStyle = svgItem.Color;
|
|
4482
|
+
this.Canvas.fillText(svgItem.Symbol, x, y);
|
|
4483
|
+
|
|
4484
|
+
this.AryDrawRect.push( {Left:rtSVG.Left, Top:rtSVG.Top, Right:rtSVG.Right, Bottom:rtSVG.Bottom, Type:"SVG", Data:item } );
|
|
4485
|
+
|
|
4486
|
+
if (this.EnableTooltip) this.TooltipRect.push({ Rect:rtSVG,Index:i });
|
|
4487
|
+
|
|
4488
|
+
//文字
|
|
4489
|
+
if (item.Text && item.Text.Content && this.TextFont)
|
|
4490
|
+
{
|
|
4491
|
+
var textItem=item.Text;
|
|
4492
|
+
this.Canvas.font=this.TextFont;
|
|
4493
|
+
this.Canvas.fillStyle=textItem.Color;
|
|
4494
|
+
var yText=y;
|
|
4495
|
+
if (IFrameSplitOperator.IsNumber(textItem.YOffset)) yText+=textItem.YOffset;
|
|
4496
|
+
this.Canvas.fillText(textItem.Content, x, yText);
|
|
4497
|
+
}
|
|
4498
|
+
|
|
4499
|
+
if (item.Detail)
|
|
4500
|
+
{
|
|
4501
|
+
this.DrawDetail(rtSVG,item.Detail, item);
|
|
4502
|
+
}
|
|
4503
|
+
|
|
4504
|
+
//连线
|
|
4505
|
+
if (item.Line)
|
|
4506
|
+
{
|
|
4507
|
+
var lineItem=item.Line;
|
|
4508
|
+
var price=null, yPrice=null;
|
|
4509
|
+
var kItem=this.Data.Data[item.Index];
|
|
4510
|
+
if (lineItem.Value=="Bottom")
|
|
4511
|
+
{
|
|
4512
|
+
yPrice=bottom;
|
|
4513
|
+
}
|
|
4514
|
+
else if (lineItem.Value=="Top")
|
|
4515
|
+
{
|
|
4516
|
+
yPrice=top;
|
|
4517
|
+
}
|
|
4518
|
+
else
|
|
4519
|
+
{
|
|
4520
|
+
switch(lineItem.Value)
|
|
4521
|
+
{
|
|
4522
|
+
case "C":
|
|
4523
|
+
price=kItem.Close;
|
|
4524
|
+
break;
|
|
4525
|
+
case "H":
|
|
4526
|
+
price=kItem.High;
|
|
4527
|
+
break;
|
|
4528
|
+
case "L":
|
|
4529
|
+
price=kItem.Low;
|
|
4530
|
+
break;
|
|
4531
|
+
}
|
|
4532
|
+
|
|
4533
|
+
if (!IFrameSplitOperator.IsNumber(price)) continue;
|
|
4534
|
+
|
|
4535
|
+
yPrice=this.ChartFrame.GetYFromData(price);
|
|
4536
|
+
}
|
|
4537
|
+
|
|
4538
|
+
if (yPrice>=rtSVG.Top && yPrice<=rtSVG.Bottom) continue;
|
|
4539
|
+
|
|
4540
|
+
var yText;
|
|
4541
|
+
if (yPrice<rtSVG.Top)
|
|
4542
|
+
{
|
|
4543
|
+
yText=rtSVG.Top;
|
|
4544
|
+
if (IFrameSplitOperator.IsNumber(lineItem.SVGBlank))
|
|
4545
|
+
{
|
|
4546
|
+
//yPrice+=lineItem.Blank;
|
|
4547
|
+
yText-=lineItem.SVGBlank;
|
|
4548
|
+
}
|
|
4549
|
+
}
|
|
4550
|
+
else
|
|
4551
|
+
{
|
|
4552
|
+
yText=rtSVG.Bottom;
|
|
4553
|
+
if (IFrameSplitOperator.IsNumber(lineItem.SVGBlank))
|
|
4554
|
+
{
|
|
4555
|
+
//yPrice-=lineItem.Blank;
|
|
4556
|
+
yText+=lineItem.SVGBlank;
|
|
4557
|
+
}
|
|
4558
|
+
}
|
|
4559
|
+
|
|
4560
|
+
if (lineItem.Dash) this.Canvas.setLineDash(lineItem.Dash); //虚线
|
|
4561
|
+
var lineWidth=1*pixelRatio;
|
|
4562
|
+
if (lineItem.Width>0) lineWidth=lineItem.Width*pixelRatio;
|
|
4563
|
+
this.Canvas.lineWidth=lineWidth; //线宽
|
|
4564
|
+
this.Canvas.strokeStyle = lineItem.Color;
|
|
4565
|
+
this.Canvas.beginPath();
|
|
4566
|
+
|
|
4567
|
+
if (this.IsHScreen)
|
|
4568
|
+
{
|
|
4569
|
+
this.Canvas.moveTo(yText, ToFixedPoint(x));
|
|
4570
|
+
this.Canvas.lineTo(yPrice,ToFixedPoint(x));
|
|
4571
|
+
}
|
|
4572
|
+
else
|
|
4573
|
+
{
|
|
4574
|
+
this.Canvas.moveTo(ToFixedPoint2(lineWidth,x),yText);
|
|
4575
|
+
this.Canvas.lineTo(ToFixedPoint2(lineWidth,x),yPrice);
|
|
4576
|
+
}
|
|
4577
|
+
|
|
4578
|
+
this.Canvas.stroke();
|
|
4579
|
+
this.Canvas.setLineDash([]);
|
|
4580
|
+
}
|
|
4581
|
+
}
|
|
4582
|
+
}
|
|
4583
|
+
*/this.GetMaxMin=function(){this.IsHScreen=this.ChartFrame.IsHScreen===true;var range={Min:null,Max:null};if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return range;if(!this.MapCache||this.MapCache.size<=0)return;var xPointCount=this.ChartFrame.XPointCount;for(var i=this.Data.DataOffset,j=0,k=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var kItem=this.Data.Data[i];var key=this.BuildKey(kItem);if(!this.MapCache.has(key))continue;var mapItem=this.MapCache.get(key);if(!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data))continue;for(k=0;k<mapItem.Data.length;++k){var item=mapItem.Data[k];var value=item.Value;if(IFrameSplitOperator.IsString(item.Value))value=this.GetKValue(kItem,item.Value);if(!IFrameSplitOperator.IsNumber(value))continue;if(range.Max==null)range.Max=value;else if(range.Max<value)range.Max=value;if(range.Min==null)range.Min=value;else if(range.Min>value)range.Min=value;}}return range;};this.GetTooltipData=function(x,y,tooltip){if(!this.IsShow)return false;for(var i=0;i<this.TooltipRect.length;++i){var item=this.TooltipRect[i];if(!item.Rect)continue;var rect=item.Rect;if(x>=rect.Left&&x<=rect.Right&&y>=rect.Top&&y<=rect.Bottom){var data=item.Item;JSConsole.Chart.Log('[ChartDrawSVG::GetTooltipData] svg icon.',item);tooltip.Data={Rect:item.Rect,Item:data,Index:item.Index};tooltip.ChartPaint=this;tooltip.Type=7;//drawsvg
|
|
4417
4584
|
if(data.Tooltip&&data.Tooltip.Ver==2.0)tooltip.Type=8;//drawsvg 新本版
|
|
4418
4585
|
return true;}}return false;};}// OX图 支持横屏
|
|
4419
4586
|
function ChartOX(){this.newMethod=IChartPainting;//派生
|
|
@@ -4753,9 +4920,9 @@ for(var i=0;i<this.Data.AllChip.length;++i){var vol=this.Data.AllChip[i];if(!vol
|
|
|
4753
4920
|
{if(!this.HQChart)return false;if(!this.HQChart.FlowCapitalReady)return false;var symbol=this.HQChart.Symbol;if(!symbol)return false;var recvData=this.SendCalculateChipEvent();if(recvData&&recvData.PreventDefault)return recvData.Result;if(MARKET_SUFFIX_NAME.IsSHSZIndex(symbol))return false;//指数暂时不支持移动筹码
|
|
4754
4921
|
var bindData=this.HQChart.ChartPaint[0].Data;//if (bindData.Period>=4) return false; //分钟K线不支持, 没时间做,以后再做吧
|
|
4755
4922
|
var count=bindData.DataOffset+parseInt(this.HQChart.CursorIndex);if(count>=bindData.Data.length)count=bindData.Data.length-1;var selData=bindData.Data[count];var yPrice=selData.Close;var mouseY=this.HQChart.LastPoint.Y;if(mouseY)yPrice=this.HQChart.Frame.SubFrame[0].Frame.GetYData(mouseY);//JSConsole.Chart.Log("[StockChip::CalculateChip]",count,this.HQChart.CursorIndex,selData);
|
|
4756
|
-
var rate=1;var aryVol=[];var seed=1,vol,maxPrice,minPrice;for(var
|
|
4757
|
-
if(item.FlowCapital>0)changeRate=item.Vol/item.FlowCapital;if(
|
|
4758
|
-
if(!maxPrice||!minPrice)return true;var priceZoom=this.PriceZoom;maxPrice=parseInt(maxPrice*priceZoom);minPrice=parseInt(minPrice*priceZoom);var dataCount=maxPrice-minPrice;var aryChip=new Array();for(var
|
|
4923
|
+
var rate=1;var aryVol=[];var seed=1,vol,maxPrice,minPrice;for(var _i7=count;_i7>=0;--_i7){var item=bindData.Data[_i7];var changeRate=1;//换手率
|
|
4924
|
+
if(item.FlowCapital>0)changeRate=item.Vol/item.FlowCapital;if(_i7==count)vol=item.Vol*changeRate;else vol=item.Vol*seed;var dataItem={Vol:vol,High:item.High,Low:item.Low};aryVol.push(dataItem);seed*=1-changeRate*rate;if(!maxPrice||maxPrice<item.High)maxPrice=item.High;if(!minPrice||minPrice>item.Low)minPrice=item.Low;}//JSConsole.Chart.Log("[StockChip::CalculateChip]",maxPrice,minPrice);
|
|
4925
|
+
if(!maxPrice||!minPrice)return true;var priceZoom=this.PriceZoom;maxPrice=parseInt(maxPrice*priceZoom);minPrice=parseInt(minPrice*priceZoom);var dataCount=maxPrice-minPrice;var aryChip=new Array();for(var _i8=0;_i8<=dataCount;++_i8){aryChip.push(0);}var dayChip=[];var distributeData;if(this.ShowType==2){var dayChip=[{Day:100,Color:this.DAY_COLOR[1][5]},{Day:60,Color:this.DAY_COLOR[1][4]},{Day:30,Color:this.DAY_COLOR[1][3]},{Day:20,Color:this.DAY_COLOR[1][2]},{Day:10,Color:this.DAY_COLOR[1][1]},{Day:5,Color:this.DAY_COLOR[1][0]}];for(var _i9 in aryVol){var item=aryVol[_i9];var high=parseInt(item.High*priceZoom);var low=parseInt(item.Low*priceZoom);var averageVol=item.Vol;if(high-low>0)averageVol=item.Vol/(high-low);if(averageVol<=0.000000001)continue;for(var k=0;k<dayChip.length;++k){if(_i9==dayChip[k].Day){dayChip[k].Chip=aryChip.slice(0);break;}}distributeData={Low:low,High:high,Vol:item.Vol,MaxPrice:maxPrice,MinPrice:minPrice};this.CalculateDistribute(aryChip,distributeData);}}else if(this.ShowType==1){var dayChip=[{Day:5,Color:this.DAY_COLOR[0][0]},{Day:10,Color:this.DAY_COLOR[0][1]},{Day:20,Color:this.DAY_COLOR[0][2]},{Day:30,Color:this.DAY_COLOR[0][3]},{Day:60,Color:this.DAY_COLOR[0][4]},{Day:100,Color:this.DAY_COLOR[0][5]}];for(var _i10=aryVol.length-1;_i10>=0;--_i10){var item=aryVol[_i10];var high=parseInt(item.High*priceZoom);var low=parseInt(item.Low*priceZoom);var averageVol=item.Vol;if(high-low>0)averageVol=item.Vol/(high-low);if(averageVol<=0.000000001)continue;for(var k=0;k<dayChip.length;++k){if(_i10==dayChip[k].Day){dayChip[k].Chip=aryChip.slice(0);break;}}distributeData={Low:low,High:high,Vol:item.Vol,MaxPrice:maxPrice,MinPrice:minPrice};this.CalculateDistribute(aryChip,distributeData);}}else{for(var _i11 in aryVol){var item=aryVol[_i11];var high=parseInt(item.High*priceZoom);var low=parseInt(item.Low*priceZoom);var averageVol=item.Vol;if(high-low>0)averageVol=item.Vol/(high-low);if(averageVol<=0.000000001)continue;distributeData={Low:low,High:high,Vol:item.Vol,MaxPrice:maxPrice,MinPrice:minPrice};this.CalculateDistribute(aryChip,distributeData);}}if(!distributeData)return false;this.Data={AllChip:aryChip,MaxVol:distributeData.MaxVol,MaxPrice:maxPrice,MinPrice:minPrice,SelectData:selData,DayChip:dayChip,YPrice:yPrice};return true;};this.DrawFrame=function()//X轴成交量坐标
|
|
4759
4926
|
{if(this.IsShowX==false)return;if(this.Data.MaxVol<=0)return;var isDrawXFrame=this.HQChart.Frame.SubFrame.length===1?false:true;//是否画X轴,如果只有1个窗口就不画
|
|
4760
4927
|
var KLineFrame=this.HQChart.Frame.SubFrame[0].Frame;var chartBorder=KLineFrame.ChartBorder;var bottom=ToFixedPoint(chartBorder.GetBottomEx()+1);if(!isDrawXFrame)bottom=this.ClientRect.Top+this.ClientRect.Height;var left=this.ClientRect.Left;var right=left+this.ClientRect.Width;this.Canvas.strokeStyle=this.PenBorder;this.Canvas.beginPath();if(isDrawXFrame){this.Canvas.moveTo(left,bottom);this.Canvas.lineTo(right,bottom);}var showCount=this.ShowXCount;var maxValue=this.Data.MaxVol;var perValue=Math.floor(maxValue/showCount);this.Canvas.font=this.Font;this.Canvas.textBaseline='top';this.Canvas.fillStyle=this.InfoColor;var xOffset=10*GetDevicePixelRatio();for(var i=1;i<=showCount;++i){var vol=perValue*i;var x=vol/this.Data.MaxVol*this.ClientRect.Width+this.ClientRect.Left;x=ToFixedPoint(x);if(i==showCount)//最后一个刻度不要画线了
|
|
4761
4928
|
{this.Canvas.textAlign='right';var text=IFrameSplitOperator.FormatValueString(maxValue,1);this.Canvas.fillText(text,x,bottom+2);}else{this.Canvas.moveTo(x,this.ClientRect.Top);this.Canvas.lineTo(x,bottom);this.Canvas.textAlign='center';var text=IFrameSplitOperator.FormatValueString(vol,1);var textWidth=this.Canvas.measureText(text).width;this.Canvas.fillText(text,Math.floor(x-textWidth*0.25),bottom+2);}}this.Canvas.stroke();};}//筹码分布手机版
|
|
@@ -6674,7 +6841,7 @@ TextColor:"rgb(255,255,255)",//文字颜色
|
|
|
6674
6841
|
Font:14*GetDevicePixelRatio()+"px 微软雅黑"//文字字体
|
|
6675
6842
|
},PointType:2,// 0=圆点 1=方框 2=空心圆
|
|
6676
6843
|
IsShowPoint:false//是否始终显示点
|
|
6677
|
-
};this.ChartOX={Family:'iconfont',Up:{Color:'rgb(178,34,34)',Text:'\uE697'},Down:{Color:"rgb(0,206,209)",Text:'\uE68C'},SquareLineColor:'rgb(119,136,153)'};this.KLineTrain={Font:'bold 14px arial',LastDataIcon:{Color:'rgb(0,0,205)',Text:'⬇'},BuyIcon:{Color:'rgb(0,205,102 )',Text:'B'},SellIcon:{Color:'rgb(255,127,36 )',Text:'S'},IconFont:{Family:'iconfont',Buy:{Text:'\uE64A',HScreenText:'\uE68A',Color:'rgb(255,140,0)'},Sell:{Text:'\uE64B',HScreenText:'\uE68A',Color:'rgb(6,79,18)'},Last:{Text:'\uE681',HScreenText:'\uE68A',Color:'rgb(55,0,255)'}}};this.ChartKLineTable={TextFont:{Family:'Arial',FontMaxSize:25},ItemMergin:{Left:5,Right:5,Top:4,Bottom:2}};this.ChartSimpleTable={TextFont:{Family:'微软雅黑',Size:14},ItemMargin:{Left:5,Right:5,Top:4,Bottom:2},TextColor:"rgb(0,0,0)",BGColor:"rgba(255,255,255,0.95)",BorderColor:"rgb(217,217,217)"//手机端tooltip
|
|
6844
|
+
};this.ChartOX={Family:'iconfont',Up:{Color:'rgb(178,34,34)',Text:'\uE697'},Down:{Color:"rgb(0,206,209)",Text:'\uE68C'},SquareLineColor:'rgb(119,136,153)'};this.KLineTrain={Font:'bold 14px arial',LastDataIcon:{Color:'rgb(0,0,205)',Text:'⬇'},BuyIcon:{Color:'rgb(0,205,102 )',Text:'B'},SellIcon:{Color:'rgb(255,127,36 )',Text:'S'},IconFont:{Family:'iconfont',Buy:{Text:'\uE64A',HScreenText:'\uE68A',Color:'rgb(255,140,0)'},Sell:{Text:'\uE64B',HScreenText:'\uE68A',Color:'rgb(6,79,18)'},Last:{Text:'\uE681',HScreenText:'\uE68A',Color:'rgb(55,0,255)'}}};this.ChartKLineTable={TextFont:{Family:'Arial',FontMaxSize:25},ItemMergin:{Left:5,Right:5,Top:4,Bottom:2}};this.ChartSimpleTable={TextFont:{Family:'微软雅黑',Size:14},ItemMargin:{Left:5,Right:5,Top:4,Bottom:2},TextColor:"rgb(0,0,0)",BGColor:"rgba(255,255,255,0.95)",BorderColor:"rgb(217,217,217)"};this.ChartSimplePie={TextFont:{Family:'微软雅黑',Size:12},BorderColor:"rgb(169,169,169)",Offset:{X:-5,Y:5}//手机端tooltip
|
|
6678
6845
|
};this.TooltipPaint={BGColor:'rgba(250,250,250,0.8)',//背景色
|
|
6679
6846
|
BorderColor:'rgb(120,120,120)',//边框颜色
|
|
6680
6847
|
TitleColor:'rgb(79, 79, 79)',//标题颜色
|
|
@@ -6852,7 +7019,7 @@ Font:{Size:15,Name:"微软雅黑"},BarMergin:{Top:2,Left:0,Right:0,Bottom:2},//
|
|
|
6852
7019
|
NameFont:{Size:14,Name:"微软雅黑"},SymbolFont:{Size:12,Name:"微软雅黑"}},VScrollbar:{ScrollBarHeight:50,ButtonColor:"rgba(252,252,252,0.8)",BarColor:"rgba(168,168,168,0.9)",BorderColor:'rgba(180,180,180,0.9)',BGColor:"rgba(234,239,248,0.9)",BarWidth:{Size:8}}},//滚动条
|
|
6853
7020
|
this.ScrollBar={BorderColor:'rgb(192,192,192)',XSplitTextFont:12*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1',XSplitTextColor:"rgb(0,0,0)",XSplitLineColor:"rgba(0,0,0,0.8)",BGChart:{Color:"rgb(135,206,250)",LineWidth:1,AreaColor:"rgba(135,206,250,0.5)"},Slider:{DateFont:14*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1',DateColor:'rgb(0,0,0)',BarColor:"rgb(207,207,207)",BarAreaColor:"rgba(232,232,232,0.65)",BarWidth:10,BarPadding:15,//上下留白
|
|
6854
7021
|
MinCenterWidth:15}},this.FrameButtomToolbar={BGColor:"rgb(235,235,235)",BorderColor:"rgb(204,204,204)",Button:{Font:{Family:"微软雅黑",Size:12*GetDevicePixelRatio()},TitleColor:{Selected:"rgb(255,255,255)",Default:"rgb(125,125,125)",MoveOn:"rgb(234,85,4)"},BGColor:{Selected:"rgb(234,85,4)",Default:"rgb(235,235,235)",MoveOn:"rgb(242,242,242)"},BorderColor:"rgb(204,204,204)",Mergin:{Left:5*GetDevicePixelRatio(),Right:5*GetDevicePixelRatio(),Top:4*GetDevicePixelRatio(),Bottom:2*GetDevicePixelRatio()},SVG:{Family:"iconfont",Size:12*GetDevicePixelRatio(),MerginLeft:4*GetDevicePixelRatio()}}//自定义风格
|
|
6855
|
-
};this.SetStyle=function(style){var T_SetButtonStyle=function T_SetButtonStyle(item,dest){if(!item)return;if(item.Color)dest.Color=item.Color;if(item.MoveOnColor)dest.MoveOnColor=item.MoveOnColor;if(item.SelectedColor)dest.SelectedColor=item.SelectedColor;if(item.Family)dest.Family=item.Family;if(item.Text)dest.Text=item.Text;if(IFrameSplitOperator.IsNumber(item.Size))dest.Size=item.Size;if(IFrameSplitOperator.IsNumber(item.MerginLeft))dest.MerginLeft=item.MerginLeft;};if(style.TooltipBGColor)this.TooltipBGColor=style.TooltipBGColor;if(style.TooltipAlpha)this.TooltipAlpha=style.TooltipAlpha;if(style.SelectRectBGColor)this.SelectRectBGColor=style.SelectRectBGColor;if(style.UpBarColor)this.UpBarColor=style.UpBarColor;if(style.DownBarColor)this.DownBarColor=style.DownBarColor;if(style.UnchagneBarColor)this.UnchagneBarColor=style.UnchagneBarColor;if(style.EmptyBarBGColor)this.EmptyBarBGColor=style.EmptyBarBGColor;if(style.HighLowBarColor)this.HighLowBarColor=style.HighLowBarColor;if(style.HighLowText){var dest=this.HighLowText;var item=style.HighLowText;if(item.FontName)dest.FontName=item.FontName;if(item.Color)dest.Color=item.Color;if(item.MaxText)dest.MaxText=item.MaxText;if(IFrameSplitOperator.IsPlusNumber(item.MaxSize))dest.MaxSize=item.MaxSize;if(IFrameSplitOperator.IsPlusNumber(item.MinSize))dest.MinSize=item.MinSize;}if(style.SplashScreen){var item=style.SplashScreen;if(item.BGColor)this.SplashScreen.BGColor=item.BGColor;if(item.Title)this.SplashScreen.Title=item.Title;if(item.TextColor)this.SplashScreen.TextColor=item.TextColor;if(item.Font)this.SplashScreen.Font=item.Font;}if(style.HLCArea){var item=style.HLCArea;if(item.HighLineColor)this.HLCArea.HighLineColor=item.HighLineColor;if(item.LowLineColor)this.HLCArea.LowLineColor=item.LowLineColor;if(item.CloseLineColor)this.HLCArea.CloseLineColor=item.CloseLineColor;if(item.UpAreaColor)this.HLCArea.UpAreaColor=item.UpAreaColor;if(item.DownAreaColor)this.HLCArea.DownAreaColor=item.DownAreaColor;if(IFrameSplitOperator.IsNumber(item.LineWidth))this.HLCArea.LineWidth=item.LineWidth;}if(style.Minute){if(style.Minute.VolBarColor)this.Minute.VolBarColor=style.Minute.VolBarColor;if(style.Minute.VolTitleColor)this.Minute.VolTitleColor=style.Minute.VolTitleColor;if(style.Minute.PriceColor)this.Minute.PriceColor=style.Minute.PriceColor;if(IFrameSplitOperator.IsNumber(style.Minute.PriceLineWidth))this.Minute.PriceLineWidth=style.Minute.PriceLineWidth;if(style.Minute.AvPriceColor)this.Minute.AvPriceColor=style.Minute.AvPriceColor;if(style.Minute.AreaPriceColor)this.Minute.AreaPriceColor=style.Minute.AreaPriceColor;if(style.Minute.PositionColor)this.Minute.PositionColor=style.Minute.PositionColor;if(style.Minute.FrameSplitTextColor)this.Minute.FrameSplitTextColor=style.Minute.FrameSplitTextColor;if(style.Minute.Before){var item=style.Minute.Before;if(item.BGColor)this.Minute.Before.BGColor=item.BGColor;if(item.LineColor)this.Minute.Before.LineColor=item.LineColor;if(item.VolColor)this.Minute.Before.VolColor=item.VolColor;if(item.AvPriceColor)this.Minute.Before.AvPriceColor=item.AvPriceColor;if(item.CloseIcon)T_SetButtonStyle(item.CloseIcon,this.Minute.Before.CloseIcon);if(item.Point){if(item.Point.Color)this.Minute.Before.Point.Color=item.Point.Color;if(item.Point.Radius)this.Minute.Before.Point.Radius=item.Point.Radius;}}if(style.Minute.After){var item=style.Minute.After;if(item.BGColor)this.Minute.After.BGColor=item.BGColor;if(item.LineColor)this.Minute.After.LineColor=item.LineColor;if(item.VolColor)this.Minute.After.VolColor=item.VolColor;if(item.AvPriceColor)this.Minute.After.AvPriceColor=item.AvPriceColor;if(item.Point){if(item.Point.Color)this.Minute.After.Point.Color=item.Point.Color;if(item.Point.Radius)this.Minute.After.Point.Radius=item.Point.Radius;}}if(style.Minute.NightDay){var item=style.Minute.NightDay;if(item.NightBGColor)this.Minute.NightDay.NightBGColor=item.NightBGColor;if(item.Font)this.Minute.NightDay.Font=item.Font;if(item.Day){var subItem=item.Day;if(subItem.Color)this.Minute.NightDay.Day.Color=subItem.Color;if(subItem.BGColor)this.Minute.NightDay.Day.BGColor=subItem.BGColor;if(subItem.BorderColor)this.Minute.NightDay.Day.BorderColor=subItem.BorderColor;CopyMarginConfig(this.Minute.NightDay.Day.Margin,subItem.Margin);}if(item.Night){var subItem=item.Night;if(subItem.Color)this.Minute.NightDay.Night.Color=subItem.Color;if(subItem.BGColor)this.Minute.NightDay.Night.BGColor=subItem.BGColor;if(subItem.BorderColor)this.Minute.NightDay.Night.BorderColor=subItem.BorderColor;CopyMarginConfig(this.Minute.NightDay.Night.Margin,subItem.Margin);}}}if(style.PopMinuteChart){var item=style.PopMinuteChart;if(item.BGColor)this.PopMinuteChart.BGColor=item.BGColor;if(item.BorderColor)this.PopMinuteChart.BorderColor=item.BorderColor;if(item.TitleColor)this.DialogSearchIndex.TitleColor=item.TitleColor;if(item.TitleBGColor)this.DialogSearchIndex.TitleBGColor=item.TitleBGColor;}if(style.DefaultTextColor)this.DefaultTextColor=style.DefaultTextColor;if(style.DefaultTextFont)this.DefaultTextFont=style.DefaultTextFont;if(style.TitleFont)this.TitleFont=style.TitleFont;if(style.IndexTitleBGColor)this.IndexTitleBGColor=style.IndexTitleBGColor;if(style.IndexTitleBorderColor)this.IndexTitleBorderColor=style.IndexTitleBorderColor;if(style.IndexTitleBorderMoveOnColor)this.IndexTitleBorderMoveOnColor=style.IndexTitleBorderMoveOnColor;if(IFrameSplitOperator.IsNumber(style.IndexTitleBorderStyle))this.IndexTitleBorderStyle=style.IndexTitleBorderStyle;if(style.IndexTitleColor)this.IndexTitleColor=style.IndexTitleColor;if(style.IndexTitleSelectedColor)this.IndexTitleSelectedColor=style.IndexTitleSelectedColor;if(style.OverlayIndexTitleBGColor)this.OverlayIndexTitleBGColor=style.OverlayIndexTitleBGColor;if(style.UpTextColor)this.UpTextColor=style.UpTextColor;if(style.DownTextColor)this.DownTextColor=style.DownTextColor;if(style.UnchagneTextColor)this.UnchagneTextColor=style.UnchagneTextColor;if(style.CloseLineColor)this.CloseLineColor=style.CloseLineColor;if(style.CloseLineAreaColor)this.CloseLineAreaColor=style.CloseLineAreaColor;if(style.CloseLineWidth)this.CloseLineWidth=style.CloseLineWidth;if(style.FrameBorderPen)this.FrameBorderPen=style.FrameBorderPen;if(style.MultiDayBorderPen)this.MultiDayBorderPen=style.MultiDayBorderPen;if(style.FrameSplitPen)this.FrameSplitPen=style.FrameSplitPen;if(style.FrameDotSplitPen)this.FrameDotSplitPen=style.FrameDotSplitPen;if(style.FrameSplitTextColor)this.FrameSplitTextColor=style.FrameSplitTextColor;if(style.FrameSplitTextFont)this.FrameSplitTextFont=style.FrameSplitTextFont;if(style.FrameTitleBGColor)this.FrameTitleBGColor=style.FrameTitleBGColor;if(style.SelFrameBorderColor)this.SelFrameBorderColor=style.SelFrameBorderColor;if(IFrameSplitOperator.IsNumber(style.IndexTitleMerginLeft))this.IndexTitleMerginLeft=style.IndexTitleMerginLeft;if(style.IndexTitle){var item=style.IndexTitle;if(item.UpDownArrow){var subItem=item.UpDownArrow;if(subItem.UpColor)this.IndexTitle.UpDownArrow.UpColor=subItem.UpColor;if(subItem.DownColor)this.IndexTitle.UpDownArrow.DownColor=subItem.DownColor;if(subItem.UnchangeColor)this.IndexTitle.UpDownArrow.UnchangeColor=subItem.UnchangeColor;}if(IFrameSplitOperator.IsNumber(item.ArrowType))this.IndexTitle.ArrowType=item.ArrowType;if(IFrameSplitOperator.IsBool(item.EnableIndexArrow))this.IndexTitle.EnableIndexArrow=item.EnableIndexArrow;if(item.NameArrow){var subItem=item.NameArrow;if(subItem.Color)this.IndexTitle.NameArrow.Color=subItem.Color;if(subItem.Symbol)this.IndexTitle.NameArrow.Symbol=subItem.Symbol;if(IFrameSplitOperator.IsNumber(subItem.Space))this.IndexTitle.NameArrow.Space=subItem.Space;}}if(style.Frame){if(style.Frame.XBottomOffset)this.Frame.XBottomOffset=style.Frame.XBottomOffset;if(style.Frame.YTopOffset)this.Frame.YTopOffset=style.Frame.YTopOffset;if(style.Frame.PercentageText){var item=style.Frame.PercentageText;if(item.PriceColor)this.Frame.PercentageText.PriceColor=item.PriceColor;if(item.PercentageColor)this.Frame.PercentageText.PercentageColor=item.PercentageColor;if(item.SplitColor)this.Frame.PercentageText.SplitColor=item.SplitColor;if(item.Font)this.Frame.PercentageText.Font=item.Font;}}if(IFrameSplitOperator.IsNumber(style.ToolbarButtonStyle))this.ToolbarButtonStyle=style.ToolbarButtonStyle;if(IFrameSplitOperator.IsBool(style.IsDOMFrameTitle))this.IsDOMFrameTitle=style.IsDOMFrameTitle;if(style.FrameLatestPrice){var item=style.FrameLatestPrice;if(style.FrameLatestPrice.TextColor)this.FrameLatestPrice.TextColor=style.FrameLatestPrice.TextColor;if(style.FrameLatestPrice.UpBarColor)this.FrameLatestPrice.UpBarColor=style.FrameLatestPrice.UpBarColor;if(style.FrameLatestPrice.DownBarColor)this.FrameLatestPrice.DownBarColor=style.FrameLatestPrice.DownBarColor;if(style.FrameLatestPrice.UnchagneBarColor)this.FrameLatestPrice.UnchagneBarColor=style.FrameLatestPrice.UnchagneBarColor;if(style.FrameLatestPrice.BGAlpha)this.FrameLatestPrice.BGAlpha=style.FrameLatestPrice.BGAlpha;if(style.FrameLatestPrice.OverlayTextColor)this.FrameLatestPrice.OverlayTextColor=style.FrameLatestPrice.OverlayTextColor;if(item.EmptyBGColor)this.FrameLatestPrice.EmptyBGColor=item.EmptyBGColor;}if(style.OverlayFrame){var item=style.OverlayFrame;if(style.OverlayFrame.BolderPen)this.OverlayFrame.BolderPen=style.OverlayFrame.BolderPen;if(style.OverlayFrame.TitleColor)this.OverlayFrame.TitleColor=style.OverlayFrame.TitleColor;if(style.OverlayFrame.TitleFont)this.OverlayFrame.TitleFont=style.OverlayFrame.TitleFont;}if(style.CorssCursorBGColor)this.CorssCursorBGColor=style.CorssCursorBGColor;if(style.CorssCursorTextColor)this.CorssCursorTextColor=style.CorssCursorTextColor;if(style.CorssCursorTextFont)this.CorssCursorTextFont=style.CorssCursorTextFont;if(style.CorssCursorVPenColor)this.CorssCursorVPenColor=style.CorssCursorVPenColor;if(style.CorssCursorHPenColor)this.CorssCursorHPenColor=style.CorssCursorHPenColor;if(style.CorssCursorBorderColor)this.CorssCursorBorderColor=style.CorssCursorBorderColor;if(style.CorssCursorXRangeBGColor)this.CorssCursorXRangeBGColor=style.CorssCursorXRangeBGColor;if(style.CorssCursor&&style.CorssCursor.RightButton){var item=style.CorssCursor.RightButton;if(item.BGColor)this.CorssCursor.RightButton.BGColor=item.BGColor;if(item.PenColor)this.CorssCursor.RightButton.PenColor=item.PenColor;if(item.Icon)this.CorssCursor.RightButton.Icon=item.Icon;}if(style.KLine)this.KLine=style.KLine;if(style.VirtualKLine){var item=style.VirtualKLine;if(item.Color)this.VirtualKLine.Color=item.Color;if(item.LineDash)this.VirtualKLine.LineDash=item.LineDash;}if(style.PriceGapStyple){var item=style.PriceGapStyple;if(item.Line&&item.Line.Color)this.PriceGapStyple.Line.Color=item.Line.Color;if(item.Text){if(item.Text.Color)this.PriceGapStyple.Text.Color=item.Text.Color;if(item.Text.Font)this.PriceGapStyple.Text.Font=item.Text.Font;}}if(style.Index){if(style.Index.LineColor)this.Index.LineColor=style.Index.LineColor;if(style.Index.NotSupport)this.Index.NotSupport=style.Index.NotSupport;}if(style.ColorArray)this.ColorArray=style.ColorArray;if(style.DrawPicture){var item=style.DrawPicture;if(item.LineColor)this.DrawPicture.LineColor=item.LineColor;if(item.PointColor)this.DrawPicture.PointColor=item.PointColor;if(item.XYCoordinate)this.DrawPicture.XYCoordinate=item.XYCoordinate;if(IFrameSplitOperator.IsNumber(item.PointType))this.DrawPicture.PointType=item.PointType;if(IFrameSplitOperator.IsBool(item.IsShowPoint))this.DrawPicture.IsShowPoint=item.IsShowPoint;}if(style.TooltipPaint){if(style.TooltipPaint.BGColor)this.TooltipPaint.BGColor=style.TooltipPaint.BGColor;if(style.TooltipPaint.BorderColor)this.TooltipPaint.BorderColor=style.TooltipPaint.BorderColor;if(style.TooltipPaint.TitleColor)this.TooltipPaint.TitleColor=style.TooltipPaint.TitleColor;if(style.TooltipPaint.TitleFont)this.TooltipPaint.TitleFont=style.TooltipPaint.TitleFont;if(style.TooltipPaint.DateTimeColor)this.TooltipPaint.DateTimeColor=style.TooltipPaint.DateTimeColor;if(style.TooltipPaint.VolColor)this.TooltipPaint.VolColor=style.TooltipPaint.VolColor;if(style.TooltipPaint.AmountColor)this.TooltipPaint.AmountColor=style.TooltipPaint.AmountColor;}if(style.PCTooltipPaint){var item=style.PCTooltipPaint;if(item.BGColor)this.PCTooltipPaint.BGColor=item.BGColor;if(item.BorderColor)this.PCTooltipPaint.BorderColor=item.BorderColor;if(item.TitleColor)this.PCTooltipPaint.TitleColor=item.TitleColor;if(item.TitleFont)this.PCTooltipPaint.TitleFont=item.TitleFont;if(item.DateTimeColor)this.PCTooltipPaint.DateTimeColor=item.DateTimeColor;if(item.VolColor)this.PCTooltipPaint.VolColor=item.VolColor;if(item.AmountColor)this.PCTooltipPaint.AmountColor=item.AmountColor;if(item.PositionColor)this.PCTooltipPaint.PositionColor=item.PositionColor;}if(style.DialogTooltip){var item=style.DialogTooltip;if(item.BGColor)this.DialogTooltip.BGColor=item.BGColor;if(item.BorderColor)this.DialogTooltip.BorderColor=item.BorderColor;if(item.TitleColor)this.DialogTooltip.TitleColor=item.TitleColor;if(item.TitleBGColor)this.DialogTooltip.TitleBGColor=item.TitleBGColor;if(item.DateTimeColor)this.DialogTooltip.DateTimeColor=item.DateTimeColor;if(item.VolColor)this.DialogTooltip.VolColor=item.VolColor;if(item.AmountColor)this.DialogTooltip.AmountColor=item.AmountColor;if(item.TurnoverRateColor)this.DialogTooltip.TurnoverRateColor=item.TurnoverRateColor;if(item.PositionColor)this.DialogTooltip.PositionColor=item.PositionColor;if(item.TextColor)this.DialogTooltip.TextColor=item.TextColor;if(item.ValueColor)this.DialogTooltip.ValueColor=item.ValueColor;}if(style.FloatTooltip){var item=style.FloatTooltip;if(item.BGColor)this.FloatTooltip.BGColor=item.BGColor;if(item.BorderColor)this.FloatTooltip.BorderColor=item.BorderColor;if(item.DateTimeColor)this.FloatTooltip.DateTimeColor=item.DateTimeColor;if(item.VolColor)this.FloatTooltip.VolColor=item.VolColor;if(item.AmountColor)this.FloatTooltip.AmountColor=item.AmountColor;if(item.TurnoverRateColor)this.FloatTooltip.TurnoverRateColor=item.TurnoverRateColor;if(item.PositionColor)this.FloatTooltip.PositionColor=item.PositionColor;if(item.TextColor)this.FloatTooltip.TextColor=item.TextColor;if(item.ValueColor)this.FloatTooltip.ValueColor=item.ValueColor;}if(style.DialogSelectRect){var item=style.DialogSelectRect;if(item.BGColor)this.DialogSelectRect.BGColor=item.BGColor;if(item.BorderColor)this.DialogSelectRect.BorderColor=item.BorderColor;if(item.TitleColor)this.DialogSelectRect.TitleColor=item.TitleColor;if(item.TextColor)this.DialogSelectRect.TextColor=item.TextColor;if(item.ValueColor)this.DialogSelectRect.ValueColor=item.ValueColor;if(item.VolColor)this.DialogSelectRect.VolColor=item.VolColor;if(item.AmountColor)this.DialogSelectRect.AmountColor=item.AmountColor;if(item.TurnoverRateColor)this.DialogSelectRect.TurnoverRateColor=item.TurnoverRateColor;if(item.PositionColor)this.DialogSelectRect.PositionColor=item.PositionColor;}if(style.DialogPopKeyboard){var item=style.DialogPopKeyboard;if(item.BGColor)this.DialogPopKeyboard.BGColor=item.BGColor;if(item.BorderColor)this.DialogPopKeyboard.BorderColor=item.BorderColor;if(item.TitleColor)this.DialogPopKeyboard.TitleColor=item.TitleColor;if(item.TitleBGColor)this.DialogTooltip.TitleBGColor=item.TitleBGColor;if(item.Input){var subItem=item.Input;if(subItem.BGColor)this.DialogPopKeyboard.Input.BGColor=subItem.BGColor;if(subItem.TextColor)this.DialogPopKeyboard.Input.TextColor=subItem.TextColor;}}if(style.DialogSearchIndex){var item=style.DialogSearchIndex;if(item.BGColor)this.DialogSearchIndex.BGColor=item.BGColor;if(item.BorderColor)this.DialogSearchIndex.BorderColor=item.BorderColor;if(item.TitleColor)this.DialogSearchIndex.TitleColor=item.TitleColor;if(item.TitleBGColor)this.DialogSearchIndex.TitleBGColor=item.TitleBGColor;if(item.IndexNameColor)this.DialogSearchIndex.IndexNameColor=item.IndexNameColor;if(item.GroupNameColor)this.DialogSearchIndex.GroupNameColor=item.GroupNameColor;if(item.InputTextColor)this.DialogSearchIndex.InputTextColor=item.InputTextColor;}if(style.MinuteInfo){var item=style.MinuteInfo;if(style.MinuteInfo.TextColor)this.MinuteInfo.TextColor=style.MinuteInfo.TextColor;if(style.MinuteInfo.Font)this.MinuteInfo.Font=style.MinuteInfo.Font;if(style.MinuteInfo.PointColor)this.MinuteInfo.PointColor=style.MinuteInfo.PointColor;if(style.MinuteInfo.LineColor)this.MinuteInfo.LineColor=style.MinuteInfo.LineColor;if(style.MinuteInfo.TextBGColor)this.MinuteInfo.TextBGColor=style.MinuteInfo.TextBGColor;if(IFrameSplitOperator.IsNumber(item.PointRadius))this.MinuteInfo.PointRadius=item.PointRadius;}if(style.Title){if(style.Title.TradeIndexColor)this.Title.TradeIndexColor=style.Title.TradeIndexColor;if(style.Title.ColorIndexColor)this.Title.ColorIndexColor=style.Title.ColorIndexColor;if(style.Title.VolColor)this.Title.VolColor=style.Title.VolColor;if(style.Title.AmountColor)this.Title.AmountColor=style.Title.AmountColor;if(style.Title.DateTimeColor)this.Title.DateTimeColor=style.Title.DateTimeColor;if(style.Title.NameColor)this.Title.NameColor=style.Title.NameColor;if(style.Title.SettingColor)this.Title.SettingColor=style.Title.SettingColor;if(style.Title.TurnoverRateColor)this.Title.TurnoverRateColor=style.Title.TurnoverRateColor;if(style.Title.PositionColor)this.Title.PositionColor=style.Title.PositionColor;}if(style.ChartSimpleTable)this.SetChartSimpleTable(style.ChartSimpleTable);if(style.DRAWICON){if(style.DRAWICON.Icon){var item=style.DRAWICON.Icon;if(IFrameSplitOperator.IsPlusNumber(item.MaxSize))this.DRAWICON.Icon.MaxSize=item.MaxSize;if(IFrameSplitOperator.IsPlusNumber(item.MinSize))this.DRAWICON.Icon.MinSize=item.MinSize;if(item.Zoom)this.DRAWICON.Icon.Zoom=item.Zoom;if(IFrameSplitOperator.IsNumber(item.YOffset))this.DRAWICON.Icon.YOffset=item.YOffset;}if(style.DRAWICON.Text){var item=style.DRAWICON.Text;if(IFrameSplitOperator.IsPlusNumber(item.MaxSize))this.DRAWICON.Text.MaxSize=item.MaxSize;if(IFrameSplitOperator.IsPlusNumber(item.MinSize))this.DRAWICON.Text.MinSize=item.MinSize;if(item.Zoom)this.DRAWICON.Text.Zoom=item.Zoom;if(item.FontName)this.DRAWICON.Text.FontName=item.FontName;if(IFrameSplitOperator.IsNumber(item.YOffset))this.DRAWICON.Text.YOffset=item.YOffset;}}if(style.DRAWTEXT){var item=style.DRAWTEXT;if(IFrameSplitOperator.IsPlusNumber(item.MaxSize))this.DRAWICON.MaxSize=item.MaxSize;if(IFrameSplitOperator.IsPlusNumber(item.MinSize))this.DRAWICON.MinSize=item.MinSize;if(item.Zoom)this.DRAWTEXT.Zoom=item.Zoom;if(item.FontName)this.DRAWTEXT.FontName=item.FontName;if(IFrameSplitOperator.IsNumber(item.YOffset))this.DRAWTEXT.YOffset=item.YOffset;}if(style.DRAWTEXT_FIX){var item=style.DRAWTEXT_FIX;if(item.Font)this.DRAWTEXT_FIX.Font=item.Font;}if(style.DRAWNUMBER_FIX){var item=style.DRAWNUMBER_FIX;if(item.Font)this.DRAWNUMBER_FIX.Font=item.Font;}if(style.DRAWNUMBER){var item=style.DRAWNUMBER;if(IFrameSplitOperator.IsPlusNumber(item.MaxSize))this.DRAWNUMBER.MaxSize=item.MaxSize;if(IFrameSplitOperator.IsPlusNumber(item.MinSize))this.DRAWNUMBER.MinSize=item.MinSize;if(item.Zoom)this.DRAWNUMBER.Zoom=item.Zoom;if(item.FontName)this.DRAWNUMBER.FontName=item.FontName;if(IFrameSplitOperator.IsNumber(item.YOffset))this.DRAWNUMBER.YOffset=item.YOffset;}if(style.DRAWABOVE){var item=style.DRAWABOVE;if(IFrameSplitOperator.IsNumber(item.YOffset))this.DRAWABOVE.YOffset=item.YOffset;}if(style.DOTLINE)this.DOTLINE=style.DOTLINE;if(style.DRAWSL)this.DOTLINE=style.DRAWSL;if(style.DragSubFrameBorder)this.DragSubFrameBorder=style.DragSubFrameBorder;if(style.DepthMapPaint){var item=style.DepthMapPaint;if(item.LineColor)this.DepthMapPaint.LineColor=item.LineColor;if(item.AreaColor)this.DepthMapPaint.AreaColor=item.AreaColor;if(item.TextColor)this.DepthMapPaint.TextColor=item.TextColor;if(item.TextBGColor)this.DepthMapPaint.TextBGColor=item.TextBGColor;}if(style.KLineYAxisBGPaint){var item=style.KLineYAxisBGPaint;if(item.Font)this.KLineYAxisBGPaint.Font=item.Font;if(item.LineColor)this.KLineYAxisBGPaint.LineColor=item.LineColor;if(item.DiffValutTextColor)this.KLineYAxisBGPaint.DiffValutTextColor=item.DiffValutTextColor;if(item.DiffValueBGColor)this.KLineYAxisBGPaint.DiffValueBGColor=item.DiffValueBGColor;}if(style.StockChip){var item=style.StockChip;if(item.InfoColor)this.StockChip.InfoColor=item.InfoColor;if(item.DayInfoColor)this.StockChip.DayInfoColor=item.DayInfoColor;if(item.Font)this.StockChip.Font=item.Font;if(item.DefaultButton)T_SetButtonStyle(item.DefaultButton,this.StockChip.DefaultButton);if(item.LongButton)T_SetButtonStyle(item.LongButton,this.StockChip.LongButton);if(item.RecentButton)T_SetButtonStyle(item.RecentButton,this.StockChip.RecentButton);if(item.CloseButton)T_SetButtonStyle(item.CloseButton,this.StockChip.CloseButton);if(item.PhoneCloseButton){var subItem=item.PhoneCloseButton;if(subItem.Family)this.StockChip.PhoneCloseButton.Family=subItem.Family;if(subItem.Text)this.StockChip.PhoneCloseButton.Text=subItem.Text;if(subItem.Color)this.StockChip.PhoneCloseButton.Color=subItem.Color;if(IFrameSplitOperator.IsNumber(subItem.Size))this.StockChip.PhoneCloseButton.Size=subItem.Size;if(subItem.Border){if(subItem.Border.BGColor)this.StockChip.PhoneCloseButton.Border.BGColor=subItem.Border.BGColor;}}}if(style.DepthChart){var item=style.DepthChart;if(item.BidColor){if(item.BidColor.Line)this.DepthChart.BidColor.Line=item.BidColor.Line;if(item.BidColor.Area)this.DepthChart.BidColor.Area=item.BidColor.Area;}if(item.AskColor){if(item.AskColor.Line)this.DepthChart.AskColor.Line=item.AskColor.Line;if(item.AskColor.Area)this.DepthChart.AskColor.Area=item.AskColor.Area;}if(item.LineWidth)this.DepthChart.LineWidth=item.LineWidth;}if(style.DepthCorss){var item=style.DepthCorss;if(item.BidColor){if(item.BidColor.Line)this.DepthCorss.BidColor.Line=item.BidColor.Line;}if(item.AskColor){if(item.AskColor.Line)this.DepthCorss.AskColor.Line=item.AskColor.Line;}if(item.LineWidth)this.DepthCorss.LineWidth=item.LineWidth;if(item.LineDash)this.DepthCorss.LineDash=item.LineDash;if(item.Tooltip){var tooltip=item.Tooltip;if(tooltip.BGColor)this.DepthCorss.Tooltip.BGColor=tooltip.BGColor;if(tooltip.TextColor)this.DepthCorss.Tooltip.TextColor=tooltip.TextColor;if(tooltip.Font)this.DepthCorss.Tooltip.Font=tooltip.Font;if(tooltip.LineHeight)this.DepthCorss.Tooltip.LineHeight=tooltip.LineHeight;var border=tooltip.Border;if(IFrameSplitOperator.IsNumber(border.Top))this.DepthCorss.Tooltip.Border.Top=border.Top;if(IFrameSplitOperator.IsNumber(border.Bottom))this.DepthCorss.Tooltip.Border.Bottom=border.Bottom;if(IFrameSplitOperator.IsNumber(border.Left))this.DepthCorss.Tooltip.Border.Left=border.Left;if(IFrameSplitOperator.IsNumber(border.Right))this.DepthCorss.Tooltip.Border.Right=border.Right;if(IFrameSplitOperator.IsNumber(border.ItemSpace))this.DepthCorss.Tooltip.Border.ItemSpace=border.ItemSpace;}}if(style.CIRCLEDOT){var item=style.CIRCLEDOT;if(IFrameSplitOperator.IsNumber(item.Radius))this.CIRCLEDOT.Radius=item.Radius;}if(style.POINTDOT){var item=style.POINTDOT;if(IFrameSplitOperator.IsNumber(item.Radius))this.POINTDOT.Radius=item.Radius;}if(style.RectSelect){var item=style.RectSelect;if(item.LineColor)this.RectSelect.LineColor=item.LineColor;if(item.LineWidth>0)this.RectSelect.LineWidth=item.LineWidth;if(item.LineDotted)this.RectSelect.LineDotted=item.LineDotted;if(item.AreaColor)this.RectSelect.AreaColor=item.AreaColor;if(item.SubAreaColor)this.RectSelect.SubAreaColor=item.SubAreaColor;if(item.RangeTextColor)this.RectSelect.RangeTextColor=item.RangeTextColor;if(item.RangeTextFont)this.RectSelect.RangeTextFont=item.RangeTextFont;if(item.RangeTextBGColor)this.RectSelect.RangeTextBGColor=item.RangeTextBGColor;if(item.RangeTextSubColor)this.RectSelect.RangeTextSubColor=item.RangeTextSubColor;if(item.RangeTextSubFont)this.RectSelect.RangeTextSubFont=item.RangeTextSubFont;if(item.RangeTextSubBGColor)this.RectSelect.RangeTextSubBGColor=item.RangeTextSubBGColor;if(item.Mark){var subItem=item.Mark;if(subItem.Family)this.RectSelect.Mark.Family=subItem.Family;if(subItem.Text)this.RectSelect.Mark.Text=subItem.Text;if(subItem.Color)this.RectSelect.Mark.Color=subItem.Color;if(IFrameSplitOperator.IsNumber(subItem.Size))this.RectSelect.Mark.Size=subItem.Size;if(subItem.Position){if(subItem.Position.Top)this.RectSelect.Mark.Position.Top=subItem.Position.Top;if(IFrameSplitOperator.IsNumber(subItem.Position.Index))this.RectSelect.Mark.Position.Index=subItem.Position.Index;}}}if(style.RectDrag){var item=style.RectDrag;var dest=this.RectDrag;if(item.LineColor)dest.LineColor=item.LineColor;if(IFrameSplitOperator.IsPlusNumber(item.LineWidth))dest.LineWidth=item.LineWidth;if(item.BGColor)dest.BGColor=item.BGColor;}if(style.OrderFlow){item=style.OrderFlow;if(item.UpColor)this.OrderFlow.UpColor=item.UpColor;if(item.DownColor)this.OrderFlow.DownColor=item.DownColor;if(item.UnchagneColor)this.OrderFlow.UnchagneColor=item.UnchagneColor;if(item.Text)this.OrderFlow.Text=item.Text;if(item.Line)this.OrderFlow.Line=item.Line;}if(style.OrderFlow_Style2){item=style.OrderFlow_Style2;if(item.UpColor)this.OrderFlow_Style2.UpColor=item.UpColor;if(item.DownColor)this.OrderFlow_Style2.DownColor=item.DownColor;if(item.UnchagneColor)this.OrderFlow_Style2.UnchagneColor=item.UnchagneColor;if(IFrameSplitOperator.IsNumber(item.BarWidth))this.OrderFlow_Style2.BarWidth=item.BarWidth;}if(style.ChartOX){var item=style.ChartOX;if(item.Family)this.ChartOX.Family=item.Family;if(item.Up)this.ChartOX.Up=item.Up;if(item.Down)this.ChartOX.Down=item.Down;if(item.SquareLineColor)this.ChartOX.SquareLineColor=item.SquareLineColor;}if(style.DealList){var item=style.DealList;if(item.BorderColor)this.DealList.BorderColor=item.BorderColor;if(item.UpTextColor)this.DealList.UpTextColor=item.UpTextColor;if(item.DownTextColor)this.DealList.DownTextColor=item.DownTextColor;if(item.UnchagneTextColor)this.DealList.UnchagneTextColor=item.UnchagneTextColor;if(item.CloseLineColor)this.DealList.CloseLineColor=item.CloseLineColor;if(item.Header){var header=item.Header;if(header.Color)this.DealList.Header.Color=header.Color;if(header.Mergin){var mergin=header.Mergin;if(IFrameSplitOperator.IsNumber(mergin.Left))this.DealList.Header.Mergin.Left=mergin.Left;if(IFrameSplitOperator.IsNumber(mergin.Right))this.DealList.Header.Mergin.Right=mergin.Right;if(IFrameSplitOperator.IsNumber(mergin.Top))this.DealList.Header.Mergin.Top=mergin.Top;if(IFrameSplitOperator.IsNumber(mergin.Bottom))this.DealList.Header.Mergin.Bottom=mergin.Bottom;}if(header.Font){var font=header.Font;if(font.Name)this.DealList.Header.Font.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))this.DealList.Header.Font.Size=font.Size;}}if(item.Row){var row=item.Row;if(row.Mergin){var mergin=row.Mergin;if(IFrameSplitOperator.IsNumber(mergin.Top))this.DealList.Row.Mergin.Top=mergin.Top;if(IFrameSplitOperator.IsNumber(mergin.Bottom))this.DealList.Row.Mergin.Bottom=mergin.Bottom;}if(row.Font){var font=row.Font;if(font.Name)this.DealList.Row.Font.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))this.DealList.Row.Font.Size=font.Size;}if(row.BarMergin){var mergin=row.BarMergin;if(IFrameSplitOperator.IsNumber(mergin.Left))this.DealList.Row.BarMergin.Left=mergin.Left;if(IFrameSplitOperator.IsNumber(mergin.Top))this.DealList.Row.BarMergin.Top=mergin.Top;if(IFrameSplitOperator.IsNumber(mergin.Right))this.DealList.Row.BarMergin.Right=mergin.Right;if(IFrameSplitOperator.IsNumber(mergin.Bottom))this.DealList.Row.BarMergin.Bottom=mergin.Bottom;}}if(item.FieldColor){var filed=item.FieldColor;if(filed.Vol)this.DealList.FieldColor.Vol=filed.Vol;if(filed.Time)this.DealList.FieldColor.Time=filed.Time;if(filed.Deal)this.DealList.FieldColor.Deal=filed.Deal;if(filed.Index)this.DealList.FieldColor.Index=filed.Index;if(filed.BarTitle)this.DealList.FieldColor.BarTitle=filed.BarTitle;if(filed.Text)this.DealList.FieldColor.Text=filed.Text;if(IFrameSplitOperator.IsNonEmptyArray(filed.Bar)){for(var i=0;i<filed.Bar.length;++i){this.DealList.FieldColor.Bar[i]=filed.Bar[i];}}}}if(style.Report)this.SetReportStyle(style.Report);if(style.TReport)this.SetTReportStyle(style.TReport);if(style.SelectedChart){var item=style.SelectedChart;if(IFrameSplitOperator.IsNumber(item.LineWidth))this.SelectedChart.LineWidth=item.LineWidth;if(IFrameSplitOperator.IsNumber(item.Radius))this.SelectedChart.Radius=item.Radius;if(IFrameSplitOperator.IsNumber(item.MinSpace))this.SelectedChart.MinSpace=item.MinSpace;if(item.LineColor)this.SelectedChart.LineColor=item.LineColor;if(item.LineColor)this.SelectedChart.BGColor=item.BGColor;}if(style.DragMovePaint){var item=style.DragMovePaint;if(item.TextColor)this.DragMovePaint.TextColor=item.TextColor;if(item.Font)this.DragMovePaint.Font=item.Font;}if(style.SessionBreaksPaint){var item=style.SessionBreaksPaint;if(IFrameSplitOperator.IsNonEmptyArray(item.BGColor))this.SessionBreaksPaint.BGColor=item.BGColor.slice();if(item.SplitLine){var subItem=item.SplitLine;if(subItem.Color)this.SessionBreaksPaint.SplitLine.Color=subItem.Color;if(IFrameSplitOperator.IsNumber(subItem.Width))this.SessionBreaksPaint.SplitLine.Width=subItem.Width;this.SessionBreaksPaint.SplitLine.Dash=subItem.Dash;}}if(IFrameSplitOperator.IsNumber(style.ToolbarButtonStyle))this.ToolbarButtonStyle=style.ToolbarButtonStyle;if(style.Buttons){var buttons=style.Buttons;T_SetButtonStyle(buttons.CloseOverlayIndex,this.Buttons.CloseOverlayIndex);T_SetButtonStyle(buttons.CloseWindow,this.Buttons.CloseWindow);T_SetButtonStyle(buttons.ChangeIndex,this.Buttons.ChangeIndex);T_SetButtonStyle(buttons.OverlayIndex,this.Buttons.OverlayIndex);T_SetButtonStyle(buttons.ModifyIndexParam,this.Buttons.ModifyIndexParam);T_SetButtonStyle(buttons.MaxMinWindow,this.Buttons.MaxMinWindow);T_SetButtonStyle(buttons.TitleWindow,this.Buttons.TitleWindow);T_SetButtonStyle(buttons.ExportData,this.Buttons.ExportData);T_SetButtonStyle(buttons.AddIndexWindow,this.Buttons.AddIndexWindow);if(buttons.Tooltip){var item=buttons.Tooltip;var src=this.Buttons.Tooltip;if(item.Font)src.Font=item.Font;if(item.Color)src.Color=item.Color;if(item.ColorBG)src.ColorBG=item.ColorBG;if(item.ColorBorder)src.ColorBorder=item.ColorBorder;if(item.BorderRadius)src.BorderRadius=item.BorderRadius;if(item.Margin){if(IFrameSplitOperator.IsNumber(item.Margin.Left))src.Margin.Left=item.Margin.Left;if(IFrameSplitOperator.IsNumber(item.Margin.Top))src.Margin.Top=item.Margin.Top;if(IFrameSplitOperator.IsNumber(item.Margin.Bottom))src.Margin.Bottom=item.Margin.Bottom;if(IFrameSplitOperator.IsNumber(item.Margin.Right))src.Margin.Right=item.Margin.Right;}}}if(style.ChartDrawVolProfile){var item=style.ChartDrawVolProfile;if(item.UpVolColor)this.ChartDrawVolProfile.UpVolColor=item.UpVolColor;if(item.DownVolColor)this.ChartDrawVolProfile.DownVolColor=item.DownVolColor;if(item.AreaUpColor)this.ChartDrawVolProfile.AreaUpColor=item.AreaUpColor;if(item.AreaDonwColor)this.ChartDrawVolProfile.AreaDonwColor=item.AreaDonwColor;if(item.BGColor)this.ChartDrawVolProfile.BGColor=item.BGColor;if(item.BorderColor)this.ChartDrawVolProfile.BorderColor=item.BorderColor;if(item.VolLineColor)this.ChartDrawVolProfile.VolLineColor=item.VolLineColor;if(item.Text){if(item.Text.Color)this.ChartDrawVolProfile.Text.Color=item.Text.Color;if(item.Text.Family)this.ChartDrawVolProfile.Text.Family=item.Text.Family;if(IFrameSplitOperator.IsNumber(item.Text.FontMaxSize))this.ChartDrawVolProfile.Text.FontMaxSize=item.Text.FontMaxSize;if(IFrameSplitOperator.IsNumber(item.Text.FontMinSize))this.ChartDrawVolProfile.Text.FontMinSize=item.Text.FontMinSize;}}if(style.DisableLogo===true){if(this.FrameLogo)this.FrameLogo.Text=null;}if(style.ScrollBar){var item=style.ScrollBar;if(item.BorderColor)this.ScrollBar.BorderColor=item.BorderColor;if(item.XSplitTextFont)this.ScrollBar.XSplitTextFont=item.XSplitTextFont;if(item.XSplitTextColor)this.ScrollBar.XSplitTextColor=item.XSplitTextColor;if(item.XSplitLineColor)this.ScrollBar.XSplitLineColor=item.XSplitLineColor;if(item.Slider){var subItem=item.Slider;if(subItem.DateFont)this.ScrollBar.Slider.DateFont=subItem.DateFont;if(subItem.DateColor)this.ScrollBar.Slider.DateColor=subItem.DateColor;if(subItem.BarColor)this.ScrollBar.Slider.BarColor=subItem.BarColor;if(subItem.BarAreaColor)this.ScrollBar.Slider.BarAreaColor=subItem.BarAreaColor;if(IFrameSplitOperator.IsNumber(subItem.BarWidth))this.ScrollBar.Slider.BarWidth=subItem.BarWidth;if(IFrameSplitOperator.IsNumber(subItem.BarPadding))this.ScrollBar.Slider.BarPadding=subItem.BarPadding;if(IFrameSplitOperator.IsNumber(subItem.MinCenterWidth))this.ScrollBar.Slider.MinCenterWidth=subItem.MinCenterWidth;}if(item.BGChart){var subItem=item.BGChart;if(subItem.Color)this.ScrollBar.BGChart.Color=subItem.Color;if(subItem.AreaColor)this.ScrollBar.BGChart.AreaColor=subItem.AreaColor;if(IFrameSplitOperator.IsPlusNumber(subItem.LineWidth))this.ScrollBar.BGChart.LineWidth=subItem.LineWidth;}}if(style.FrameButtomToolbar)this.SetFrameButtomToolbar(style.FrameButtomToolbar);if(style.Keyboard)this.SetKeyboardStyle(style.Keyboard);if(style.MinuteToolbar)this.SetMinuteToolbar(style.MinuteToolbar);if(style.KLineToolbar)this.SetKLineToolbar(style.KLineToolbar);};this.SetKeyboardStyle=function(style){var item=style;var dest=this.Keyboard;if(item.BorderColor)dest.BorderColor=item.BorderColor;if(item.SelectedColor)dest.SelectedColor=item.SelectedColor;if(item.TextColor)dest.TextColor=item.TextColor;if(item.Item){var row=item.Item;if(row.Mergin){var mergin=row.Mergin;if(IFrameSplitOperator.IsNumber(mergin.Left))dest.Item.Mergin.Left=mergin.Left;if(IFrameSplitOperator.IsNumber(mergin.Right))dest.Item.Mergin.Right=mergin.Right;if(IFrameSplitOperator.IsNumber(mergin.Top))dest.Item.Mergin.Top=mergin.Top;if(IFrameSplitOperator.IsNumber(mergin.Bottom))dest.Item.Mergin.Bottom=mergin.Bottom;}if(row.Font){var font=row.Font;if(font.Name)dest.Item.Font.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))dest.Item.Font.Size=font.Size;}if(row.BarMergin){var mergin=row.BarMergin;if(IFrameSplitOperator.IsNumber(mergin.Left))dest.Item.BarMergin.Left=mergin.Left;if(IFrameSplitOperator.IsNumber(mergin.Top))dest.Item.BarMergin.Top=mergin.Top;if(IFrameSplitOperator.IsNumber(mergin.Right))dest.Item.BarMergin.Right=mergin.Right;if(IFrameSplitOperator.IsNumber(mergin.Bottom))dest.Item.BarMergin.Bottom=mergin.Bottom;}if(row.NameFont){var font=row.NameFont;if(font.Name)dest.Item.NameFont.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))dest.Item.NameFont.Size=font.Size;}if(row.SymbolFont){var font=row.SymbolFont;if(font.Name)dest.Item.SymbolFont.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))dest.Item.SymbolFont.Size=font.Size;}}if(item.VScrollbar){var scroll=item.VScrollbar;if(IFrameSplitOperator.IsNumber(scroll.ScrollBarHeight))dest.VScrollbar.ScrollBarHeight=scroll.ScrollBarHeight;if(scroll.ButtonColor)dest.VScrollbar.ButtonColor=scroll.ButtonColor;if(scroll.BarColor)dest.VScrollbar.BarColor=scroll.BarColor;if(scroll.BorderColor)dest.VScrollbar.BorderColor=scroll.BorderColor;if(scroll.BGColor)dest.VScrollbar.BGColor=scroll.BGColor;if(scroll.BarWidth){var subItem=scroll.BarWidth;if(IFrameSplitOperator.IsNumber(subItem.Size))dest.VScrollbar.BarWidth.Size=subItem.Size;}}};this.SetReportStyle=function(style){var item=style;var dest=this.Report;if(item.BorderColor)this.Report.BorderColor=item.BorderColor;if(item.UpTextColor)this.Report.UpTextColor=item.UpTextColor;if(item.DownTextColor)this.Report.DownTextColor=item.DownTextColor;if(item.UnchagneTextColor)this.Report.UnchagneTextColor=item.UnchagneTextColor;if(item.BorderColor)this.Report.SelectedColor=item.SelectedColor;if(item.CloseLine){var closeLine=item.CloseLine;if(closeLine.CloseColor)this.Report.CloseLine.CloseColor=closeLine.CloseColor;if(closeLine.YCloseColor)this.Report.CloseLine.YCloseColor=closeLine.YCloseColor;if(closeLine.AreaColor)this.Report.CloseLine.AreaColor=closeLine.AreaColor;}if(item.KLine){var kline=item.KLine;if(kline.UpColor)this.Report.KLine.UpColor=kline.UpColor;if(kline.DownColor)this.Report.KLine.DownColor=kline.DownColor;if(kline.UnchagneColor)this.Report.KLine.UnchagneColor=kline.UnchagneColor;if(IFrameSplitOperator.IsNumber(kline.DataWidth))this.Report.KLine.DataWidth=kline.DataWidth;if(IFrameSplitOperator.IsNumber(kline.DistanceWidth))this.Report.KLine.DistanceWidth=kline.DistanceWidth;}if(item.Header){var header=item.Header;if(header.Color)this.Report.Header.Color=header.Color;if(header.Mergin){var mergin=header.Mergin;if(IFrameSplitOperator.IsNumber(mergin.Left))this.Report.Header.Mergin.Left=mergin.Left;if(IFrameSplitOperator.IsNumber(mergin.Right))this.Report.Header.Mergin.Left=mergin.Right;if(IFrameSplitOperator.IsNumber(mergin.Top))this.Report.Header.Mergin.Top=mergin.Top;if(IFrameSplitOperator.IsNumber(mergin.Bottom))this.Report.Header.Mergin.Bottom=mergin.Bottom;}if(header.Font){var font=header.Font;if(font.Name)this.Report.Header.Font.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))this.Report.Header.Font.Size=font.Size;}}if(item.SortIcon){var sort=item.SortIcon;if(IFrameSplitOperator.IsNonEmptyArray(sort.Color))this.Report.SortIcon.Color=sort.Color.slice();if(IFrameSplitOperator.IsNumber(sort.Size))this.Report.SortIcon.Size=sort.Size;if(sort.Family)this.Report.SortIcon.Family=sort.Family;if(IFrameSplitOperator.IsNonEmptyArray(sort.Arrow))this.Report.SortIcon.Arrow=sort.Arrow.slice();if(sort.Margin){var margin=sort.Margin;if(IFrameSplitOperator.IsNumber(margin.Left))this.Report.SortIcon.Margin.Left=margin.Left;if(IFrameSplitOperator.IsNumber(margin.Right))this.Report.SortIcon.Margin.Right=margin.Right;if(IFrameSplitOperator.IsNumber(margin.Top))this.Report.SortIcon.Margin.Top=margin.Top;if(IFrameSplitOperator.IsNumber(margin.Bottom))this.Report.SortIcon.Margin.Bottom=margin.Bottom;}}if(item.Item){var row=item.Item;if(row.Mergin){var mergin=row.Mergin;if(IFrameSplitOperator.IsNumber(mergin.Left))this.Report.Item.Mergin.Left=mergin.Left;if(IFrameSplitOperator.IsNumber(mergin.Right))this.Report.Item.Mergin.Right=mergin.Right;if(IFrameSplitOperator.IsNumber(mergin.Top))this.Report.Item.Mergin.Top=mergin.Top;if(IFrameSplitOperator.IsNumber(mergin.Bottom))this.Report.Item.Mergin.Bottom=mergin.Bottom;}if(row.Font){var font=row.Font;if(font.Name)this.Report.Item.Font.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))this.Report.Item.Font.Size=font.Size;}if(row.BarMergin){var mergin=row.BarMergin;if(IFrameSplitOperator.IsNumber(mergin.Left))this.Report.Item.BarMergin.Left=mergin.Left;if(IFrameSplitOperator.IsNumber(mergin.Top))this.Report.Item.BarMergin.Top=mergin.Top;if(IFrameSplitOperator.IsNumber(mergin.Right))this.Report.Item.BarMergin.Right=mergin.Right;if(IFrameSplitOperator.IsNumber(mergin.Bottom))this.Report.Item.BarMergin.Bottom=mergin.Bottom;}if(row.NameFont){var font=row.NameFont;if(font.Name)this.Report.Item.NameFont.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))this.Report.Item.NameFont.Size=font.Size;}if(row.SymbolFont){var font=row.SymbolFont;if(font.Name)this.Report.Item.SymbolFont.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))this.Report.Item.SymbolFont.Size=font.Size;}}if(item.FixedItem){var row=item.FixedItem;if(row.Font){var font=row.Font;if(font.Name)this.Report.FixedItem.Font.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))this.Report.FixedItem.Font.Size=font.Size;}}if(item.LimitBorder){var limit=item.LimitBorder;if(limit.Color)this.Report.LimitBorder.Color=limit.Color;if(limit.Mergin){var mergin=limit.Mergin;if(IFrameSplitOperator.IsNumber(mergin.Left))this.Report.LimitBorder.Mergin.Left=mergin.Left;if(IFrameSplitOperator.IsNumber(mergin.Top))this.Report.LimitBorder.Mergin.Top=mergin.Top;if(IFrameSplitOperator.IsNumber(mergin.Right))this.Report.LimitBorder.Mergin.Right=mergin.Right;if(IFrameSplitOperator.IsNumber(mergin.Bottom))this.Report.LimitBorder.Mergin.Bottom=mergin.Bottom;}}if(item.LimitColor){var limit=item.LimitColor;if(limit.UpColor)this.Report.LimitColor.UpColor=limit.UpColor;if(limit.DownColor)this.Report.LimitColor.DownColor=limit.DownColor;if(limit.TextColor)this.Report.LimitColor.UpColor=limit.TextColor;}if(item.FieldColor){var filed=item.FieldColor;if(filed.Name)this.Report.FieldColor.Name=filed.Name;if(filed.Symbol)this.Report.FieldColor.Symbol=filed.Symbol;if(filed.Vol)this.Report.FieldColor.Vol=filed.Vol;if(filed.Amount)this.Report.FieldColor.Amount=filed.Amount;if(filed.Index)this.Report.FieldColor.Index=filed.Index;if(filed.BarTitle)this.Report.FieldColor.BarTitle=filed.BarTitle;if(filed.Text)this.Report.FieldColor.Text=filed.Text;if(IFrameSplitOperator.IsNonEmptyArray(filed.Bar)){for(var i=0;i<filed.Bar.length;++i){this.Report.FieldColor.Bar[i]=filed.Bar[i];}}}if(item.NameSymbolV2){var nameSymbol=item.NameSymbolV2;if(nameSymbol.Name){var subItem=nameSymbol.Name;if(IFrameSplitOperator.IsNumber(subItem.Size))this.Report.NameSymbolV2.Name.Size=subItem.Size;if(subItem.Name)this.Report.NameSymbolV2.Name.Name=subItem.Name;if(subItem.Color)this.Report.NameSymbolV2.Name.Color=subItem.Color;}if(nameSymbol.Symbol){var subItem=nameSymbol.Symbol;if(IFrameSplitOperator.IsNumber(subItem.Size))this.Report.NameSymbolV2.Symbol.Size=subItem.Size;if(subItem.Name)this.Report.NameSymbolV2.Symbol.Name=subItem.Name;if(subItem.Color)this.Report.NameSymbolV2.Symbol.Color=subItem.Color;}}if(item.Tab){var tab=item.Tab;if(tab.Font){var font=tab.Font;if(font.Name)this.Report.Tab.Font.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))this.Report.Tab.Font.Size=font.Size;}if(IFrameSplitOperator.IsNumber(tab.ScrollBarWidth))this.Report.Tab.ScrollBarWidth=tab.ScrollBarWidth;if(tab.ButtonColor)this.Report.Tab.ButtonColor=tab.ButtonColor;if(tab.BarColor)this.Report.Tab.BarColor=tab.BarColor;if(tab.BorderColor)this.Report.Tab.BorderColor=tab.BorderColor;if(tab.TabTitleColor)this.Report.Tab.TabTitleColor=tab.TabTitleColor;if(tab.TabSelectedTitleColor)this.Report.Tab.TabSelectedTitleColor=tab.TabSelectedTitleColor;if(tab.TabSelectedBGColor)this.Report.Tab.TabSelectedBGColor=tab.TabSelectedBGColor;if(tab.TabMoveOnTitleColor)this.Report.Tab.TabMoveOnTitleColor=tab.TabMoveOnTitleColor;if(tab.TabBGColor)this.Report.Tab.TabBGColor=tab.TabBGColor;}if(item.PageInfo){var pageinfo=item.PageInfo;if(pageinfo.Font){var font=pageinfo.Font;if(font.Name)this.Report.PageInfo.Font.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))this.Report.PageInfo.Font.Size=font.Size;}if(pageinfo.TextColor)this.Report.PageInfo.TextColor=pageinfo.TextColor;if(pageinfo.BGColor)this.Report.PageInfo.BGColor=pageinfo.BGColor;if(pageinfo.Mergin){var mergin=pageinfo.Mergin;if(IFrameSplitOperator.IsNumber(mergin.Left))this.Report.PageInfo.Mergin.Left=mergin.Left;if(IFrameSplitOperator.IsNumber(mergin.Top))this.Report.PageInfo.Mergin.Top=mergin.Top;if(IFrameSplitOperator.IsNumber(mergin.Right))this.Report.PageInfo.Mergin.Right=mergin.Right;if(IFrameSplitOperator.IsNumber(mergin.Bottom))this.Report.PageInfo.Mergin.Bottom=mergin.Bottom;}}if(item.DragRow){var dragRow=item.DragRow;if(dragRow.Color)this.Report.DragRow.Color=dragRow.Color;if(dragRow.TextColor)this.Report.DragRow.TextColor=dragRow.TextColor;if(dragRow.MoveRowColor)this.Report.DragRow.MoveRowColor=dragRow.MoveRowColor;if(dragRow.SrcRowColor)this.Report.DragRow.SrcRowColor=dragRow.SrcRowColor;}if(item.VScrollbar){var subItem=item.VScrollbar;if(IFrameSplitOperator.IsNumber(subItem.ScrollBarHeight))dest.VScrollbar.ScrollBarHeight=subItem.ScrollBarHeight;if(subItem.ButtonColor)dest.VScrollbar.ButtonColor=subItem.ButtonColor;if(subItem.BarColor)dest.VScrollbar.BarColor=subItem.BarColor;if(subItem.BorderColor)dest.VScrollbar.BorderColor=subItem.BorderColor;if(subItem.BGColor)dest.VScrollbar.BGColor=subItem.BGColor;}if(item.CheckBox){var subItem=item.CheckBox;if(subItem.Family)dest.CheckBox.Family=subItem.Family;if(IFrameSplitOperator.IsNumber(subItem.Size))dest.CheckBox.Size=subItem.Size;if(subItem.Checked){var child=subItem.Checked;if(child.Color)dest.CheckBox.Checked.Color=child.Color;if(child.Symbol)dest.CheckBox.Checked.Symbol=child.Symbol;if(child.DisableColor)dest.CheckBox.Checked.DisableColor=child.DisableColor;}if(subItem.Unchecked){var child=subItem.Unchecked;if(child.Color)dest.CheckBox.Unchecked.Color=child.Color;if(child.Symbol)dest.CheckBox.Unchecked.Symbol=child.Symbol;if(child.DisableColor)dest.CheckBox.Unchecked.DisableColor=child.DisableColor;}CopyMarginConfig(dest.CheckBox.Margin,subItem.Margin);}if(item.Link){var subItem=item.Link;if(subItem.Font)dest.Link.Font=subItem.Font;if(subItem.TextColor)dest.Link.TextColor=subItem.TextColor;if(subItem.Disable&&subItem.Disable.TextColor)dest.Link.Disable.TextColor=subItem.Disable.TextColor;if(subItem.MouseOn&&subItem.MouseOn.TextColor)dest.Link.MouseOn.TextColor=subItem.MouseOn.TextColor;}if(item.ProgressBar){var subItem=item.ProgressBar;if(subItem.BGColor)dest.ProgressBar.BGColor=subItem.BGColor;if(subItem.BarColor)dest.ProgressBar.BarColor=subItem.BarColor;if(subItem.TextColor)dest.ProgressBar.TextColor=subItem.TextColor;if(subItem.Font)dest.ProgressBar.Font=subItem.Font;if(subItem.Disable){if(subItem.Disable.BGColor)dest.ProgressBar.Disable.BGColor=subItem.Disable.BGColor;if(subItem.Disable.BarColor)dest.ProgressBar.Disable.BarColor=subItem.Disable.BarColor;if(subItem.Disable.TextColor)dest.ProgressBar.Disable.TextColor=subItem.Disable.TextColor;}CopyMarginConfig(dest.ProgressBar.Margin,subItem.Margin);CopyMarginConfig(dest.ProgressBar.BarMargin,subItem.BarMargin);CopyMarginConfig(dest.ProgressBar.TextMargin,subItem.TextMargin);}if(item.Buttom){var subItem=item.Buttom;if(subItem.BGColor)dest.Buttom.BGColor=subItem.BGColor;if(subItem.TextColor)dest.Buttom.TextColor=subItem.TextColor;if(subItem.BorderColor)dest.Buttom.BorderColor=subItem.BorderColor;if(subItem.Font)dest.Buttom.Font=subItem.Font;if(subItem.Disable){if(subItem.Disable.BGColor)dest.Buttom.Disable.BGColor=subItem.Disable.BGColor;if(subItem.Disable.TextColor)dest.Buttom.Disable.TextColor=subItem.Disable.TextColor;}if(subItem.MouseOn){if(subItem.MouseOn.BGColor)dest.Buttom.MouseOn.BGColor=subItem.MouseOn.BGColor;if(subItem.MouseOn.TextColor)dest.Buttom.MouseOn.TextColor=subItem.MouseOn.TextColor;}CopyMarginConfig(dest.Buttom.Margin,subItem.Margin);CopyMarginConfig(dest.Buttom.TextMargin,subItem.TextMargin);}};this.SetTReportStyle=function(style){var item=style;var dest=this.TReport;if(item.BorderColor)dest.BorderColor=item.BorderColor;if(item.UpTextColor)dest.UpTextColor=item.UpTextColor;if(item.DownTextColor)dest.DownTextColor=item.DownTextColor;if(item.UnchangeTextColor)dest.UnchangeTextColor=item.UnchangeTextColor;if(item.BorderColor)dest.SelectedColor=item.SelectedColor;if(item.UpBGColor)dest.UpBGColor=item.UpBGColor;if(item.DownBGColor)dest.DownBGColor=item.DownBGColor;if(item.Header){var header=item.Header;if(header.Color)dest.Header.Color=header.Color;if(header.SortColor)dest.Header.SortColor=header.SortColor;if(header.Mergin){var mergin=header.Mergin;if(IFrameSplitOperator.IsNumber(mergin.Left))dest.Header.Mergin.Left=mergin.Left;if(IFrameSplitOperator.IsNumber(mergin.Right))dest.Header.Mergin.Left=mergin.Right;if(IFrameSplitOperator.IsNumber(mergin.Top))dest.Header.Mergin.Top=mergin.Top;if(IFrameSplitOperator.IsNumber(mergin.Bottom))dest.Header.Mergin.Bottom=mergin.Bottom;}if(header.Font){var font=header.Font;if(font.Name)dest.Header.Font.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))dest.Header.Font.Size=font.Size;}}if(item.CenterItem){var cell=item.CenterItem;if(cell.TextColor)dest.CenterItem.TextColor=cell.TextColor;if(cell.BaseTextColor)dest.CenterItem.BaseTextColor=cell.BaseTextColor;if(cell.BGColor)dest.CenterItem.BGColor=cell.BGColor;}if(item.Item){var row=item.Item;if(row.Mergin){var mergin=row.Mergin;if(IFrameSplitOperator.IsNumber(mergin.Left))dest.Item.Mergin.Left=mergin.Left;if(IFrameSplitOperator.IsNumber(mergin.Right))dest.Item.Mergin.Right=mergin.Right;if(IFrameSplitOperator.IsNumber(mergin.Top))dest.Item.Mergin.Top=mergin.Top;if(IFrameSplitOperator.IsNumber(mergin.Bottom))dest.Item.Mergin.Bottom=mergin.Bottom;}if(row.Font){var font=row.Font;if(font.Name)dest.Item.Font.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))dest.Item.Font.Size=font.Size;}if(row.NameFont){var font=row.NameFont;if(font.Name)dest.Item.NameFont.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))dest.Item.NameFont.Size=font.Size;}if(row.SymbolFont){var font=row.SymbolFont;if(font.Name)dest.Item.SymbolFont.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))dest.Item.SymbolFont.Size=font.Size;}}if(item.FieldColor){var filed=item.FieldColor;if(filed.Name)dest.FieldColor.Name=filed.Name;if(filed.Symbol)dest.FieldColor.Symbol=filed.Symbol;if(filed.Vol)dest.FieldColor.Vol=filed.Vol;if(filed.Amount)dest.FieldColor.Amount=filed.Amount;if(filed.Index)dest.FieldColor.Index=filed.Index;if(filed.Text)dest.FieldColor.Text=filed.Text;if(filed.Position)dest.FieldColor.Position=filed.Position;}if(item.MarkBorder){var subIem=item.MarkBorder;if(subIem.MaxPositionColor)dest.MarkBorder.MaxPositionColor=subIem.MaxPositionColor;}if(item.FixedItem){var subIem=item.FixedItem;if(subIem.Font){var font=subIem.Font;if(font.Name)dest.FixedItem.Font.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))dest.FixedItem.Font.Size=font.Size;}}};this.SetFrameButtomToolbar=function(style){var dest=this.FrameButtomToolbar;if(style.BGColor)dest.BGColor=style.BGColor;if(style.BorderColor)dest.BorderColor=style.BorderColor;if(style.Button){var button=style.Button;if(button.BorderColor)dest.Button.BorderColor=button.BorderColor;if(button.Font){var item=button.Font;var destItem=this.FrameButtomToolbar.Button.Font;if(item.Family)destItem.Family=item.Family;if(IFrameSplitOperator.IsNumber(item.Size))destItem.Size=item.Size;}if(button.TitleColor){var item=button.TitleColor;var destItem=this.FrameButtomToolbar.Button.TitleColor;if(item.Selected)destItem.Selected=item.Selected;if(item.Default)destItem.Default=item.Default;if(item.MoveOn)destItem.MoveOn=item.MoveOn;}if(button.BGColor){var item=button.BGColor;var destItem=this.FrameButtomToolbar.Button.BGColor;if(item.Selected)destItem.Selected=item.Selected;if(item.Default)destItem.Default=item.Default;if(item.MoveOn)destItem.MoveOn=item.MoveOn;}if(button.Mergin){var item=button.Mergin;var destItem=this.FrameButtomToolbar.Button.Mergin;if(IFrameSplitOperator.IsNumber(item.Left))destItem.Left=item.Left;if(IFrameSplitOperator.IsNumber(item.Right))destItem.Left=item.Right;if(IFrameSplitOperator.IsNumber(item.Top))destItem.Top=item.Top;if(IFrameSplitOperator.IsNumber(item.Bottom))destItem.Bottom=item.Bottom;}if(button.SVG){var item=button.SVG;var destItem=this.FrameButtomToolbar.Button.SVG;if(IFrameSplitOperator.IsNumber(item.Size))destItem.Size=item.Size;if(IFrameSplitOperator.IsNumber(item.MerginLeft))destItem.MerginLeft=item.MerginLeft;if(item.Family)destItem.Family=item.Family;}}};this.SetMinuteToolbar=function(style){var dest=this.MinuteToolbar;if(IFrameSplitOperator.IsBool(style.ModifyIndex))dest.ModifyIndex=style.ModifyIndex;if(IFrameSplitOperator.IsBool(style.ChangeIndex))dest.ChangeIndex=style.ChangeIndex;if(IFrameSplitOperator.IsBool(style.CloseIndex))dest.CloseIndex=style.CloseIndex;if(IFrameSplitOperator.IsBool(style.OverlayIndex))dest.OverlayIndex=style.OverlayIndex;if(IFrameSplitOperator.IsBool(style.MaxMinWindow))dest.ModifyIndex=style.MaxMinWindow;if(IFrameSplitOperator.IsBool(style.TitleWindow))dest.ModifyIndex=style.TitleWindow;if(IFrameSplitOperator.IsBool(style.ExportData))dest.ModifyIndex=style.ExportData;if(IFrameSplitOperator.IsBool(style.AddIndexWindow))dest.AddIndexWindow=style.AddIndexWindow;if(IFrameSplitOperator.IsBool(style.IsShowOverlayToolbar))dest.IsShowOverlayToolbar=style.IsShowOverlayToolbar;if(IFrameSplitOperator.IsBool(style.IsShowOverlayFrame))dest.IsShowOverlayFrame=style.IsShowOverlayFrame;};this.SetKLineToolbar=function(style){var dest=this.KLineToolbar;if(IFrameSplitOperator.IsBool(style.ModifyIndex))dest.ModifyIndex=style.ModifyIndex;if(IFrameSplitOperator.IsBool(style.ChangeIndex))dest.ChangeIndex=style.ChangeIndex;if(IFrameSplitOperator.IsBool(style.CloseIndex))dest.CloseIndex=style.CloseIndex;if(IFrameSplitOperator.IsBool(style.OverlayIndex))dest.OverlayIndex=style.OverlayIndex;if(IFrameSplitOperator.IsBool(style.MaxMinWindow))dest.ModifyIndex=style.MaxMinWindow;if(IFrameSplitOperator.IsBool(style.TitleWindow))dest.ModifyIndex=style.TitleWindow;if(IFrameSplitOperator.IsBool(style.ExportData))dest.ModifyIndex=style.ExportData;if(IFrameSplitOperator.IsBool(style.AddIndexWindow))dest.AddIndexWindow=style.AddIndexWindow;};this.SetChartSimpleTable=function(style){var dest=this.ChartSimpleTable;if(style.TextColor)dest.TextColor=style.TextColor;if(style.BGColor)dest.BGColor=style.BGColor;if(style.BorderColor)dest.BorderColor=style.BorderColor;if(style.TextFont){var item=style.TextFont;if(item.Name)dest.TextFont.Name=item.Name;if(IFrameSplitOperator.IsNumber(item.Size))dest.TextFont.Size=item.Size;}if(style.ItemMargin){var margin=style.ItemMargin;if(IFrameSplitOperator.IsNumber(margin.Left))dest.ItemMargin.Left=margin.Left;if(IFrameSplitOperator.IsNumber(margin.Right))dest.ItemMargin.Right=margin.Right;if(IFrameSplitOperator.IsNumber(margin.Top))dest.ItemMargin.Top=margin.Top;if(IFrameSplitOperator.IsNumber(margin.Bottom))dest.ItemMargin.Bottom=margin.Bottom;}};}var g_JSChartResource=new JSChartResource();/////////////////////////////////////////////////////////////////////////////////
|
|
7022
|
+
};this.SetStyle=function(style){var T_SetButtonStyle=function T_SetButtonStyle(item,dest){if(!item)return;if(item.Color)dest.Color=item.Color;if(item.MoveOnColor)dest.MoveOnColor=item.MoveOnColor;if(item.SelectedColor)dest.SelectedColor=item.SelectedColor;if(item.Family)dest.Family=item.Family;if(item.Text)dest.Text=item.Text;if(IFrameSplitOperator.IsNumber(item.Size))dest.Size=item.Size;if(IFrameSplitOperator.IsNumber(item.MerginLeft))dest.MerginLeft=item.MerginLeft;};if(style.TooltipBGColor)this.TooltipBGColor=style.TooltipBGColor;if(style.TooltipAlpha)this.TooltipAlpha=style.TooltipAlpha;if(style.SelectRectBGColor)this.SelectRectBGColor=style.SelectRectBGColor;if(style.UpBarColor)this.UpBarColor=style.UpBarColor;if(style.DownBarColor)this.DownBarColor=style.DownBarColor;if(style.UnchagneBarColor)this.UnchagneBarColor=style.UnchagneBarColor;if(style.EmptyBarBGColor)this.EmptyBarBGColor=style.EmptyBarBGColor;if(style.HighLowBarColor)this.HighLowBarColor=style.HighLowBarColor;if(style.HighLowText){var dest=this.HighLowText;var item=style.HighLowText;if(item.FontName)dest.FontName=item.FontName;if(item.Color)dest.Color=item.Color;if(item.MaxText)dest.MaxText=item.MaxText;if(IFrameSplitOperator.IsPlusNumber(item.MaxSize))dest.MaxSize=item.MaxSize;if(IFrameSplitOperator.IsPlusNumber(item.MinSize))dest.MinSize=item.MinSize;}if(style.SplashScreen){var item=style.SplashScreen;if(item.BGColor)this.SplashScreen.BGColor=item.BGColor;if(item.Title)this.SplashScreen.Title=item.Title;if(item.TextColor)this.SplashScreen.TextColor=item.TextColor;if(item.Font)this.SplashScreen.Font=item.Font;}if(style.HLCArea){var item=style.HLCArea;if(item.HighLineColor)this.HLCArea.HighLineColor=item.HighLineColor;if(item.LowLineColor)this.HLCArea.LowLineColor=item.LowLineColor;if(item.CloseLineColor)this.HLCArea.CloseLineColor=item.CloseLineColor;if(item.UpAreaColor)this.HLCArea.UpAreaColor=item.UpAreaColor;if(item.DownAreaColor)this.HLCArea.DownAreaColor=item.DownAreaColor;if(IFrameSplitOperator.IsNumber(item.LineWidth))this.HLCArea.LineWidth=item.LineWidth;}if(style.Minute){if(style.Minute.VolBarColor)this.Minute.VolBarColor=style.Minute.VolBarColor;if(style.Minute.VolTitleColor)this.Minute.VolTitleColor=style.Minute.VolTitleColor;if(style.Minute.PriceColor)this.Minute.PriceColor=style.Minute.PriceColor;if(IFrameSplitOperator.IsNumber(style.Minute.PriceLineWidth))this.Minute.PriceLineWidth=style.Minute.PriceLineWidth;if(style.Minute.AvPriceColor)this.Minute.AvPriceColor=style.Minute.AvPriceColor;if(style.Minute.AreaPriceColor)this.Minute.AreaPriceColor=style.Minute.AreaPriceColor;if(style.Minute.PositionColor)this.Minute.PositionColor=style.Minute.PositionColor;if(style.Minute.FrameSplitTextColor)this.Minute.FrameSplitTextColor=style.Minute.FrameSplitTextColor;if(style.Minute.Before){var item=style.Minute.Before;if(item.BGColor)this.Minute.Before.BGColor=item.BGColor;if(item.LineColor)this.Minute.Before.LineColor=item.LineColor;if(item.VolColor)this.Minute.Before.VolColor=item.VolColor;if(item.AvPriceColor)this.Minute.Before.AvPriceColor=item.AvPriceColor;if(item.CloseIcon)T_SetButtonStyle(item.CloseIcon,this.Minute.Before.CloseIcon);if(item.Point){if(item.Point.Color)this.Minute.Before.Point.Color=item.Point.Color;if(item.Point.Radius)this.Minute.Before.Point.Radius=item.Point.Radius;}}if(style.Minute.After){var item=style.Minute.After;if(item.BGColor)this.Minute.After.BGColor=item.BGColor;if(item.LineColor)this.Minute.After.LineColor=item.LineColor;if(item.VolColor)this.Minute.After.VolColor=item.VolColor;if(item.AvPriceColor)this.Minute.After.AvPriceColor=item.AvPriceColor;if(item.Point){if(item.Point.Color)this.Minute.After.Point.Color=item.Point.Color;if(item.Point.Radius)this.Minute.After.Point.Radius=item.Point.Radius;}}if(style.Minute.NightDay){var item=style.Minute.NightDay;if(item.NightBGColor)this.Minute.NightDay.NightBGColor=item.NightBGColor;if(item.Font)this.Minute.NightDay.Font=item.Font;if(item.Day){var subItem=item.Day;if(subItem.Color)this.Minute.NightDay.Day.Color=subItem.Color;if(subItem.BGColor)this.Minute.NightDay.Day.BGColor=subItem.BGColor;if(subItem.BorderColor)this.Minute.NightDay.Day.BorderColor=subItem.BorderColor;CopyMarginConfig(this.Minute.NightDay.Day.Margin,subItem.Margin);}if(item.Night){var subItem=item.Night;if(subItem.Color)this.Minute.NightDay.Night.Color=subItem.Color;if(subItem.BGColor)this.Minute.NightDay.Night.BGColor=subItem.BGColor;if(subItem.BorderColor)this.Minute.NightDay.Night.BorderColor=subItem.BorderColor;CopyMarginConfig(this.Minute.NightDay.Night.Margin,subItem.Margin);}}}if(style.PopMinuteChart){var item=style.PopMinuteChart;if(item.BGColor)this.PopMinuteChart.BGColor=item.BGColor;if(item.BorderColor)this.PopMinuteChart.BorderColor=item.BorderColor;if(item.TitleColor)this.DialogSearchIndex.TitleColor=item.TitleColor;if(item.TitleBGColor)this.DialogSearchIndex.TitleBGColor=item.TitleBGColor;}if(style.DefaultTextColor)this.DefaultTextColor=style.DefaultTextColor;if(style.DefaultTextFont)this.DefaultTextFont=style.DefaultTextFont;if(style.TitleFont)this.TitleFont=style.TitleFont;if(style.IndexTitleBGColor)this.IndexTitleBGColor=style.IndexTitleBGColor;if(style.IndexTitleBorderColor)this.IndexTitleBorderColor=style.IndexTitleBorderColor;if(style.IndexTitleBorderMoveOnColor)this.IndexTitleBorderMoveOnColor=style.IndexTitleBorderMoveOnColor;if(IFrameSplitOperator.IsNumber(style.IndexTitleBorderStyle))this.IndexTitleBorderStyle=style.IndexTitleBorderStyle;if(style.IndexTitleColor)this.IndexTitleColor=style.IndexTitleColor;if(style.IndexTitleSelectedColor)this.IndexTitleSelectedColor=style.IndexTitleSelectedColor;if(style.OverlayIndexTitleBGColor)this.OverlayIndexTitleBGColor=style.OverlayIndexTitleBGColor;if(style.UpTextColor)this.UpTextColor=style.UpTextColor;if(style.DownTextColor)this.DownTextColor=style.DownTextColor;if(style.UnchagneTextColor)this.UnchagneTextColor=style.UnchagneTextColor;if(style.CloseLineColor)this.CloseLineColor=style.CloseLineColor;if(style.CloseLineAreaColor)this.CloseLineAreaColor=style.CloseLineAreaColor;if(style.CloseLineWidth)this.CloseLineWidth=style.CloseLineWidth;if(style.FrameBorderPen)this.FrameBorderPen=style.FrameBorderPen;if(style.MultiDayBorderPen)this.MultiDayBorderPen=style.MultiDayBorderPen;if(style.FrameSplitPen)this.FrameSplitPen=style.FrameSplitPen;if(style.FrameDotSplitPen)this.FrameDotSplitPen=style.FrameDotSplitPen;if(style.FrameSplitTextColor)this.FrameSplitTextColor=style.FrameSplitTextColor;if(style.FrameSplitTextFont)this.FrameSplitTextFont=style.FrameSplitTextFont;if(style.FrameTitleBGColor)this.FrameTitleBGColor=style.FrameTitleBGColor;if(style.SelFrameBorderColor)this.SelFrameBorderColor=style.SelFrameBorderColor;if(IFrameSplitOperator.IsNumber(style.IndexTitleMerginLeft))this.IndexTitleMerginLeft=style.IndexTitleMerginLeft;if(style.IndexTitle){var item=style.IndexTitle;if(item.UpDownArrow){var subItem=item.UpDownArrow;if(subItem.UpColor)this.IndexTitle.UpDownArrow.UpColor=subItem.UpColor;if(subItem.DownColor)this.IndexTitle.UpDownArrow.DownColor=subItem.DownColor;if(subItem.UnchangeColor)this.IndexTitle.UpDownArrow.UnchangeColor=subItem.UnchangeColor;}if(IFrameSplitOperator.IsNumber(item.ArrowType))this.IndexTitle.ArrowType=item.ArrowType;if(IFrameSplitOperator.IsBool(item.EnableIndexArrow))this.IndexTitle.EnableIndexArrow=item.EnableIndexArrow;if(item.NameArrow){var subItem=item.NameArrow;if(subItem.Color)this.IndexTitle.NameArrow.Color=subItem.Color;if(subItem.Symbol)this.IndexTitle.NameArrow.Symbol=subItem.Symbol;if(IFrameSplitOperator.IsNumber(subItem.Space))this.IndexTitle.NameArrow.Space=subItem.Space;}}if(style.Frame){if(style.Frame.XBottomOffset)this.Frame.XBottomOffset=style.Frame.XBottomOffset;if(style.Frame.YTopOffset)this.Frame.YTopOffset=style.Frame.YTopOffset;if(style.Frame.PercentageText){var item=style.Frame.PercentageText;if(item.PriceColor)this.Frame.PercentageText.PriceColor=item.PriceColor;if(item.PercentageColor)this.Frame.PercentageText.PercentageColor=item.PercentageColor;if(item.SplitColor)this.Frame.PercentageText.SplitColor=item.SplitColor;if(item.Font)this.Frame.PercentageText.Font=item.Font;}}if(IFrameSplitOperator.IsNumber(style.ToolbarButtonStyle))this.ToolbarButtonStyle=style.ToolbarButtonStyle;if(IFrameSplitOperator.IsBool(style.IsDOMFrameTitle))this.IsDOMFrameTitle=style.IsDOMFrameTitle;if(style.FrameLatestPrice){var item=style.FrameLatestPrice;if(style.FrameLatestPrice.TextColor)this.FrameLatestPrice.TextColor=style.FrameLatestPrice.TextColor;if(style.FrameLatestPrice.UpBarColor)this.FrameLatestPrice.UpBarColor=style.FrameLatestPrice.UpBarColor;if(style.FrameLatestPrice.DownBarColor)this.FrameLatestPrice.DownBarColor=style.FrameLatestPrice.DownBarColor;if(style.FrameLatestPrice.UnchagneBarColor)this.FrameLatestPrice.UnchagneBarColor=style.FrameLatestPrice.UnchagneBarColor;if(style.FrameLatestPrice.BGAlpha)this.FrameLatestPrice.BGAlpha=style.FrameLatestPrice.BGAlpha;if(style.FrameLatestPrice.OverlayTextColor)this.FrameLatestPrice.OverlayTextColor=style.FrameLatestPrice.OverlayTextColor;if(item.EmptyBGColor)this.FrameLatestPrice.EmptyBGColor=item.EmptyBGColor;}if(style.OverlayFrame){var item=style.OverlayFrame;if(style.OverlayFrame.BolderPen)this.OverlayFrame.BolderPen=style.OverlayFrame.BolderPen;if(style.OverlayFrame.TitleColor)this.OverlayFrame.TitleColor=style.OverlayFrame.TitleColor;if(style.OverlayFrame.TitleFont)this.OverlayFrame.TitleFont=style.OverlayFrame.TitleFont;}if(style.CorssCursorBGColor)this.CorssCursorBGColor=style.CorssCursorBGColor;if(style.CorssCursorTextColor)this.CorssCursorTextColor=style.CorssCursorTextColor;if(style.CorssCursorTextFont)this.CorssCursorTextFont=style.CorssCursorTextFont;if(style.CorssCursorVPenColor)this.CorssCursorVPenColor=style.CorssCursorVPenColor;if(style.CorssCursorHPenColor)this.CorssCursorHPenColor=style.CorssCursorHPenColor;if(style.CorssCursorBorderColor)this.CorssCursorBorderColor=style.CorssCursorBorderColor;if(style.CorssCursorXRangeBGColor)this.CorssCursorXRangeBGColor=style.CorssCursorXRangeBGColor;if(style.CorssCursor&&style.CorssCursor.RightButton){var item=style.CorssCursor.RightButton;if(item.BGColor)this.CorssCursor.RightButton.BGColor=item.BGColor;if(item.PenColor)this.CorssCursor.RightButton.PenColor=item.PenColor;if(item.Icon)this.CorssCursor.RightButton.Icon=item.Icon;}if(style.KLine)this.KLine=style.KLine;if(style.VirtualKLine){var item=style.VirtualKLine;if(item.Color)this.VirtualKLine.Color=item.Color;if(item.LineDash)this.VirtualKLine.LineDash=item.LineDash;}if(style.PriceGapStyple){var item=style.PriceGapStyple;if(item.Line&&item.Line.Color)this.PriceGapStyple.Line.Color=item.Line.Color;if(item.Text){if(item.Text.Color)this.PriceGapStyple.Text.Color=item.Text.Color;if(item.Text.Font)this.PriceGapStyple.Text.Font=item.Text.Font;}}if(style.Index){if(style.Index.LineColor)this.Index.LineColor=style.Index.LineColor;if(style.Index.NotSupport)this.Index.NotSupport=style.Index.NotSupport;}if(style.ColorArray)this.ColorArray=style.ColorArray;if(style.DrawPicture){var item=style.DrawPicture;if(item.LineColor)this.DrawPicture.LineColor=item.LineColor;if(item.PointColor)this.DrawPicture.PointColor=item.PointColor;if(item.XYCoordinate)this.DrawPicture.XYCoordinate=item.XYCoordinate;if(IFrameSplitOperator.IsNumber(item.PointType))this.DrawPicture.PointType=item.PointType;if(IFrameSplitOperator.IsBool(item.IsShowPoint))this.DrawPicture.IsShowPoint=item.IsShowPoint;}if(style.TooltipPaint){if(style.TooltipPaint.BGColor)this.TooltipPaint.BGColor=style.TooltipPaint.BGColor;if(style.TooltipPaint.BorderColor)this.TooltipPaint.BorderColor=style.TooltipPaint.BorderColor;if(style.TooltipPaint.TitleColor)this.TooltipPaint.TitleColor=style.TooltipPaint.TitleColor;if(style.TooltipPaint.TitleFont)this.TooltipPaint.TitleFont=style.TooltipPaint.TitleFont;if(style.TooltipPaint.DateTimeColor)this.TooltipPaint.DateTimeColor=style.TooltipPaint.DateTimeColor;if(style.TooltipPaint.VolColor)this.TooltipPaint.VolColor=style.TooltipPaint.VolColor;if(style.TooltipPaint.AmountColor)this.TooltipPaint.AmountColor=style.TooltipPaint.AmountColor;}if(style.PCTooltipPaint){var item=style.PCTooltipPaint;if(item.BGColor)this.PCTooltipPaint.BGColor=item.BGColor;if(item.BorderColor)this.PCTooltipPaint.BorderColor=item.BorderColor;if(item.TitleColor)this.PCTooltipPaint.TitleColor=item.TitleColor;if(item.TitleFont)this.PCTooltipPaint.TitleFont=item.TitleFont;if(item.DateTimeColor)this.PCTooltipPaint.DateTimeColor=item.DateTimeColor;if(item.VolColor)this.PCTooltipPaint.VolColor=item.VolColor;if(item.AmountColor)this.PCTooltipPaint.AmountColor=item.AmountColor;if(item.PositionColor)this.PCTooltipPaint.PositionColor=item.PositionColor;}if(style.DialogTooltip){var item=style.DialogTooltip;if(item.BGColor)this.DialogTooltip.BGColor=item.BGColor;if(item.BorderColor)this.DialogTooltip.BorderColor=item.BorderColor;if(item.TitleColor)this.DialogTooltip.TitleColor=item.TitleColor;if(item.TitleBGColor)this.DialogTooltip.TitleBGColor=item.TitleBGColor;if(item.DateTimeColor)this.DialogTooltip.DateTimeColor=item.DateTimeColor;if(item.VolColor)this.DialogTooltip.VolColor=item.VolColor;if(item.AmountColor)this.DialogTooltip.AmountColor=item.AmountColor;if(item.TurnoverRateColor)this.DialogTooltip.TurnoverRateColor=item.TurnoverRateColor;if(item.PositionColor)this.DialogTooltip.PositionColor=item.PositionColor;if(item.TextColor)this.DialogTooltip.TextColor=item.TextColor;if(item.ValueColor)this.DialogTooltip.ValueColor=item.ValueColor;}if(style.FloatTooltip){var item=style.FloatTooltip;if(item.BGColor)this.FloatTooltip.BGColor=item.BGColor;if(item.BorderColor)this.FloatTooltip.BorderColor=item.BorderColor;if(item.DateTimeColor)this.FloatTooltip.DateTimeColor=item.DateTimeColor;if(item.VolColor)this.FloatTooltip.VolColor=item.VolColor;if(item.AmountColor)this.FloatTooltip.AmountColor=item.AmountColor;if(item.TurnoverRateColor)this.FloatTooltip.TurnoverRateColor=item.TurnoverRateColor;if(item.PositionColor)this.FloatTooltip.PositionColor=item.PositionColor;if(item.TextColor)this.FloatTooltip.TextColor=item.TextColor;if(item.ValueColor)this.FloatTooltip.ValueColor=item.ValueColor;}if(style.DialogSelectRect){var item=style.DialogSelectRect;if(item.BGColor)this.DialogSelectRect.BGColor=item.BGColor;if(item.BorderColor)this.DialogSelectRect.BorderColor=item.BorderColor;if(item.TitleColor)this.DialogSelectRect.TitleColor=item.TitleColor;if(item.TextColor)this.DialogSelectRect.TextColor=item.TextColor;if(item.ValueColor)this.DialogSelectRect.ValueColor=item.ValueColor;if(item.VolColor)this.DialogSelectRect.VolColor=item.VolColor;if(item.AmountColor)this.DialogSelectRect.AmountColor=item.AmountColor;if(item.TurnoverRateColor)this.DialogSelectRect.TurnoverRateColor=item.TurnoverRateColor;if(item.PositionColor)this.DialogSelectRect.PositionColor=item.PositionColor;}if(style.DialogPopKeyboard){var item=style.DialogPopKeyboard;if(item.BGColor)this.DialogPopKeyboard.BGColor=item.BGColor;if(item.BorderColor)this.DialogPopKeyboard.BorderColor=item.BorderColor;if(item.TitleColor)this.DialogPopKeyboard.TitleColor=item.TitleColor;if(item.TitleBGColor)this.DialogTooltip.TitleBGColor=item.TitleBGColor;if(item.Input){var subItem=item.Input;if(subItem.BGColor)this.DialogPopKeyboard.Input.BGColor=subItem.BGColor;if(subItem.TextColor)this.DialogPopKeyboard.Input.TextColor=subItem.TextColor;}}if(style.DialogSearchIndex){var item=style.DialogSearchIndex;if(item.BGColor)this.DialogSearchIndex.BGColor=item.BGColor;if(item.BorderColor)this.DialogSearchIndex.BorderColor=item.BorderColor;if(item.TitleColor)this.DialogSearchIndex.TitleColor=item.TitleColor;if(item.TitleBGColor)this.DialogSearchIndex.TitleBGColor=item.TitleBGColor;if(item.IndexNameColor)this.DialogSearchIndex.IndexNameColor=item.IndexNameColor;if(item.GroupNameColor)this.DialogSearchIndex.GroupNameColor=item.GroupNameColor;if(item.InputTextColor)this.DialogSearchIndex.InputTextColor=item.InputTextColor;}if(style.MinuteInfo){var item=style.MinuteInfo;if(style.MinuteInfo.TextColor)this.MinuteInfo.TextColor=style.MinuteInfo.TextColor;if(style.MinuteInfo.Font)this.MinuteInfo.Font=style.MinuteInfo.Font;if(style.MinuteInfo.PointColor)this.MinuteInfo.PointColor=style.MinuteInfo.PointColor;if(style.MinuteInfo.LineColor)this.MinuteInfo.LineColor=style.MinuteInfo.LineColor;if(style.MinuteInfo.TextBGColor)this.MinuteInfo.TextBGColor=style.MinuteInfo.TextBGColor;if(IFrameSplitOperator.IsNumber(item.PointRadius))this.MinuteInfo.PointRadius=item.PointRadius;}if(style.Title){if(style.Title.TradeIndexColor)this.Title.TradeIndexColor=style.Title.TradeIndexColor;if(style.Title.ColorIndexColor)this.Title.ColorIndexColor=style.Title.ColorIndexColor;if(style.Title.VolColor)this.Title.VolColor=style.Title.VolColor;if(style.Title.AmountColor)this.Title.AmountColor=style.Title.AmountColor;if(style.Title.DateTimeColor)this.Title.DateTimeColor=style.Title.DateTimeColor;if(style.Title.NameColor)this.Title.NameColor=style.Title.NameColor;if(style.Title.SettingColor)this.Title.SettingColor=style.Title.SettingColor;if(style.Title.TurnoverRateColor)this.Title.TurnoverRateColor=style.Title.TurnoverRateColor;if(style.Title.PositionColor)this.Title.PositionColor=style.Title.PositionColor;}if(style.ChartSimpleTable)this.SetChartSimpleTable(style.ChartSimpleTable);if(style.ChartSimplePie)this.SetChartSimplePie(style.ChartSimplePie);if(style.DRAWICON){if(style.DRAWICON.Icon){var item=style.DRAWICON.Icon;if(IFrameSplitOperator.IsPlusNumber(item.MaxSize))this.DRAWICON.Icon.MaxSize=item.MaxSize;if(IFrameSplitOperator.IsPlusNumber(item.MinSize))this.DRAWICON.Icon.MinSize=item.MinSize;if(item.Zoom)this.DRAWICON.Icon.Zoom=item.Zoom;if(IFrameSplitOperator.IsNumber(item.YOffset))this.DRAWICON.Icon.YOffset=item.YOffset;}if(style.DRAWICON.Text){var item=style.DRAWICON.Text;if(IFrameSplitOperator.IsPlusNumber(item.MaxSize))this.DRAWICON.Text.MaxSize=item.MaxSize;if(IFrameSplitOperator.IsPlusNumber(item.MinSize))this.DRAWICON.Text.MinSize=item.MinSize;if(item.Zoom)this.DRAWICON.Text.Zoom=item.Zoom;if(item.FontName)this.DRAWICON.Text.FontName=item.FontName;if(IFrameSplitOperator.IsNumber(item.YOffset))this.DRAWICON.Text.YOffset=item.YOffset;}}if(style.DRAWTEXT){var item=style.DRAWTEXT;if(IFrameSplitOperator.IsPlusNumber(item.MaxSize))this.DRAWICON.MaxSize=item.MaxSize;if(IFrameSplitOperator.IsPlusNumber(item.MinSize))this.DRAWICON.MinSize=item.MinSize;if(item.Zoom)this.DRAWTEXT.Zoom=item.Zoom;if(item.FontName)this.DRAWTEXT.FontName=item.FontName;if(IFrameSplitOperator.IsNumber(item.YOffset))this.DRAWTEXT.YOffset=item.YOffset;}if(style.DRAWTEXT_FIX){var item=style.DRAWTEXT_FIX;if(item.Font)this.DRAWTEXT_FIX.Font=item.Font;}if(style.DRAWNUMBER_FIX){var item=style.DRAWNUMBER_FIX;if(item.Font)this.DRAWNUMBER_FIX.Font=item.Font;}if(style.DRAWNUMBER){var item=style.DRAWNUMBER;if(IFrameSplitOperator.IsPlusNumber(item.MaxSize))this.DRAWNUMBER.MaxSize=item.MaxSize;if(IFrameSplitOperator.IsPlusNumber(item.MinSize))this.DRAWNUMBER.MinSize=item.MinSize;if(item.Zoom)this.DRAWNUMBER.Zoom=item.Zoom;if(item.FontName)this.DRAWNUMBER.FontName=item.FontName;if(IFrameSplitOperator.IsNumber(item.YOffset))this.DRAWNUMBER.YOffset=item.YOffset;}if(style.DRAWABOVE){var item=style.DRAWABOVE;if(IFrameSplitOperator.IsNumber(item.YOffset))this.DRAWABOVE.YOffset=item.YOffset;}if(style.DOTLINE)this.DOTLINE=style.DOTLINE;if(style.DRAWSL)this.DOTLINE=style.DRAWSL;if(style.DragSubFrameBorder)this.DragSubFrameBorder=style.DragSubFrameBorder;if(style.DepthMapPaint){var item=style.DepthMapPaint;if(item.LineColor)this.DepthMapPaint.LineColor=item.LineColor;if(item.AreaColor)this.DepthMapPaint.AreaColor=item.AreaColor;if(item.TextColor)this.DepthMapPaint.TextColor=item.TextColor;if(item.TextBGColor)this.DepthMapPaint.TextBGColor=item.TextBGColor;}if(style.KLineYAxisBGPaint){var item=style.KLineYAxisBGPaint;if(item.Font)this.KLineYAxisBGPaint.Font=item.Font;if(item.LineColor)this.KLineYAxisBGPaint.LineColor=item.LineColor;if(item.DiffValutTextColor)this.KLineYAxisBGPaint.DiffValutTextColor=item.DiffValutTextColor;if(item.DiffValueBGColor)this.KLineYAxisBGPaint.DiffValueBGColor=item.DiffValueBGColor;}if(style.StockChip){var item=style.StockChip;if(item.InfoColor)this.StockChip.InfoColor=item.InfoColor;if(item.DayInfoColor)this.StockChip.DayInfoColor=item.DayInfoColor;if(item.Font)this.StockChip.Font=item.Font;if(item.DefaultButton)T_SetButtonStyle(item.DefaultButton,this.StockChip.DefaultButton);if(item.LongButton)T_SetButtonStyle(item.LongButton,this.StockChip.LongButton);if(item.RecentButton)T_SetButtonStyle(item.RecentButton,this.StockChip.RecentButton);if(item.CloseButton)T_SetButtonStyle(item.CloseButton,this.StockChip.CloseButton);if(item.PhoneCloseButton){var subItem=item.PhoneCloseButton;if(subItem.Family)this.StockChip.PhoneCloseButton.Family=subItem.Family;if(subItem.Text)this.StockChip.PhoneCloseButton.Text=subItem.Text;if(subItem.Color)this.StockChip.PhoneCloseButton.Color=subItem.Color;if(IFrameSplitOperator.IsNumber(subItem.Size))this.StockChip.PhoneCloseButton.Size=subItem.Size;if(subItem.Border){if(subItem.Border.BGColor)this.StockChip.PhoneCloseButton.Border.BGColor=subItem.Border.BGColor;}}}if(style.DepthChart){var item=style.DepthChart;if(item.BidColor){if(item.BidColor.Line)this.DepthChart.BidColor.Line=item.BidColor.Line;if(item.BidColor.Area)this.DepthChart.BidColor.Area=item.BidColor.Area;}if(item.AskColor){if(item.AskColor.Line)this.DepthChart.AskColor.Line=item.AskColor.Line;if(item.AskColor.Area)this.DepthChart.AskColor.Area=item.AskColor.Area;}if(item.LineWidth)this.DepthChart.LineWidth=item.LineWidth;}if(style.DepthCorss){var item=style.DepthCorss;if(item.BidColor){if(item.BidColor.Line)this.DepthCorss.BidColor.Line=item.BidColor.Line;}if(item.AskColor){if(item.AskColor.Line)this.DepthCorss.AskColor.Line=item.AskColor.Line;}if(item.LineWidth)this.DepthCorss.LineWidth=item.LineWidth;if(item.LineDash)this.DepthCorss.LineDash=item.LineDash;if(item.Tooltip){var tooltip=item.Tooltip;if(tooltip.BGColor)this.DepthCorss.Tooltip.BGColor=tooltip.BGColor;if(tooltip.TextColor)this.DepthCorss.Tooltip.TextColor=tooltip.TextColor;if(tooltip.Font)this.DepthCorss.Tooltip.Font=tooltip.Font;if(tooltip.LineHeight)this.DepthCorss.Tooltip.LineHeight=tooltip.LineHeight;var border=tooltip.Border;if(IFrameSplitOperator.IsNumber(border.Top))this.DepthCorss.Tooltip.Border.Top=border.Top;if(IFrameSplitOperator.IsNumber(border.Bottom))this.DepthCorss.Tooltip.Border.Bottom=border.Bottom;if(IFrameSplitOperator.IsNumber(border.Left))this.DepthCorss.Tooltip.Border.Left=border.Left;if(IFrameSplitOperator.IsNumber(border.Right))this.DepthCorss.Tooltip.Border.Right=border.Right;if(IFrameSplitOperator.IsNumber(border.ItemSpace))this.DepthCorss.Tooltip.Border.ItemSpace=border.ItemSpace;}}if(style.CIRCLEDOT){var item=style.CIRCLEDOT;if(IFrameSplitOperator.IsNumber(item.Radius))this.CIRCLEDOT.Radius=item.Radius;}if(style.POINTDOT){var item=style.POINTDOT;if(IFrameSplitOperator.IsNumber(item.Radius))this.POINTDOT.Radius=item.Radius;}if(style.RectSelect){var item=style.RectSelect;if(item.LineColor)this.RectSelect.LineColor=item.LineColor;if(item.LineWidth>0)this.RectSelect.LineWidth=item.LineWidth;if(item.LineDotted)this.RectSelect.LineDotted=item.LineDotted;if(item.AreaColor)this.RectSelect.AreaColor=item.AreaColor;if(item.SubAreaColor)this.RectSelect.SubAreaColor=item.SubAreaColor;if(item.RangeTextColor)this.RectSelect.RangeTextColor=item.RangeTextColor;if(item.RangeTextFont)this.RectSelect.RangeTextFont=item.RangeTextFont;if(item.RangeTextBGColor)this.RectSelect.RangeTextBGColor=item.RangeTextBGColor;if(item.RangeTextSubColor)this.RectSelect.RangeTextSubColor=item.RangeTextSubColor;if(item.RangeTextSubFont)this.RectSelect.RangeTextSubFont=item.RangeTextSubFont;if(item.RangeTextSubBGColor)this.RectSelect.RangeTextSubBGColor=item.RangeTextSubBGColor;if(item.Mark){var subItem=item.Mark;if(subItem.Family)this.RectSelect.Mark.Family=subItem.Family;if(subItem.Text)this.RectSelect.Mark.Text=subItem.Text;if(subItem.Color)this.RectSelect.Mark.Color=subItem.Color;if(IFrameSplitOperator.IsNumber(subItem.Size))this.RectSelect.Mark.Size=subItem.Size;if(subItem.Position){if(subItem.Position.Top)this.RectSelect.Mark.Position.Top=subItem.Position.Top;if(IFrameSplitOperator.IsNumber(subItem.Position.Index))this.RectSelect.Mark.Position.Index=subItem.Position.Index;}}}if(style.RectDrag){var item=style.RectDrag;var dest=this.RectDrag;if(item.LineColor)dest.LineColor=item.LineColor;if(IFrameSplitOperator.IsPlusNumber(item.LineWidth))dest.LineWidth=item.LineWidth;if(item.BGColor)dest.BGColor=item.BGColor;}if(style.OrderFlow){item=style.OrderFlow;if(item.UpColor)this.OrderFlow.UpColor=item.UpColor;if(item.DownColor)this.OrderFlow.DownColor=item.DownColor;if(item.UnchagneColor)this.OrderFlow.UnchagneColor=item.UnchagneColor;if(item.Text)this.OrderFlow.Text=item.Text;if(item.Line)this.OrderFlow.Line=item.Line;}if(style.OrderFlow_Style2){item=style.OrderFlow_Style2;if(item.UpColor)this.OrderFlow_Style2.UpColor=item.UpColor;if(item.DownColor)this.OrderFlow_Style2.DownColor=item.DownColor;if(item.UnchagneColor)this.OrderFlow_Style2.UnchagneColor=item.UnchagneColor;if(IFrameSplitOperator.IsNumber(item.BarWidth))this.OrderFlow_Style2.BarWidth=item.BarWidth;}if(style.ChartOX){var item=style.ChartOX;if(item.Family)this.ChartOX.Family=item.Family;if(item.Up)this.ChartOX.Up=item.Up;if(item.Down)this.ChartOX.Down=item.Down;if(item.SquareLineColor)this.ChartOX.SquareLineColor=item.SquareLineColor;}if(style.DealList){var item=style.DealList;if(item.BorderColor)this.DealList.BorderColor=item.BorderColor;if(item.UpTextColor)this.DealList.UpTextColor=item.UpTextColor;if(item.DownTextColor)this.DealList.DownTextColor=item.DownTextColor;if(item.UnchagneTextColor)this.DealList.UnchagneTextColor=item.UnchagneTextColor;if(item.CloseLineColor)this.DealList.CloseLineColor=item.CloseLineColor;if(item.Header){var header=item.Header;if(header.Color)this.DealList.Header.Color=header.Color;if(header.Mergin){var mergin=header.Mergin;if(IFrameSplitOperator.IsNumber(mergin.Left))this.DealList.Header.Mergin.Left=mergin.Left;if(IFrameSplitOperator.IsNumber(mergin.Right))this.DealList.Header.Mergin.Right=mergin.Right;if(IFrameSplitOperator.IsNumber(mergin.Top))this.DealList.Header.Mergin.Top=mergin.Top;if(IFrameSplitOperator.IsNumber(mergin.Bottom))this.DealList.Header.Mergin.Bottom=mergin.Bottom;}if(header.Font){var font=header.Font;if(font.Name)this.DealList.Header.Font.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))this.DealList.Header.Font.Size=font.Size;}}if(item.Row){var row=item.Row;if(row.Mergin){var mergin=row.Mergin;if(IFrameSplitOperator.IsNumber(mergin.Top))this.DealList.Row.Mergin.Top=mergin.Top;if(IFrameSplitOperator.IsNumber(mergin.Bottom))this.DealList.Row.Mergin.Bottom=mergin.Bottom;}if(row.Font){var font=row.Font;if(font.Name)this.DealList.Row.Font.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))this.DealList.Row.Font.Size=font.Size;}if(row.BarMergin){var mergin=row.BarMergin;if(IFrameSplitOperator.IsNumber(mergin.Left))this.DealList.Row.BarMergin.Left=mergin.Left;if(IFrameSplitOperator.IsNumber(mergin.Top))this.DealList.Row.BarMergin.Top=mergin.Top;if(IFrameSplitOperator.IsNumber(mergin.Right))this.DealList.Row.BarMergin.Right=mergin.Right;if(IFrameSplitOperator.IsNumber(mergin.Bottom))this.DealList.Row.BarMergin.Bottom=mergin.Bottom;}}if(item.FieldColor){var filed=item.FieldColor;if(filed.Vol)this.DealList.FieldColor.Vol=filed.Vol;if(filed.Time)this.DealList.FieldColor.Time=filed.Time;if(filed.Deal)this.DealList.FieldColor.Deal=filed.Deal;if(filed.Index)this.DealList.FieldColor.Index=filed.Index;if(filed.BarTitle)this.DealList.FieldColor.BarTitle=filed.BarTitle;if(filed.Text)this.DealList.FieldColor.Text=filed.Text;if(IFrameSplitOperator.IsNonEmptyArray(filed.Bar)){for(var i=0;i<filed.Bar.length;++i){this.DealList.FieldColor.Bar[i]=filed.Bar[i];}}}}if(style.Report)this.SetReportStyle(style.Report);if(style.TReport)this.SetTReportStyle(style.TReport);if(style.SelectedChart){var item=style.SelectedChart;if(IFrameSplitOperator.IsNumber(item.LineWidth))this.SelectedChart.LineWidth=item.LineWidth;if(IFrameSplitOperator.IsNumber(item.Radius))this.SelectedChart.Radius=item.Radius;if(IFrameSplitOperator.IsNumber(item.MinSpace))this.SelectedChart.MinSpace=item.MinSpace;if(item.LineColor)this.SelectedChart.LineColor=item.LineColor;if(item.LineColor)this.SelectedChart.BGColor=item.BGColor;}if(style.DragMovePaint){var item=style.DragMovePaint;if(item.TextColor)this.DragMovePaint.TextColor=item.TextColor;if(item.Font)this.DragMovePaint.Font=item.Font;}if(style.SessionBreaksPaint){var item=style.SessionBreaksPaint;if(IFrameSplitOperator.IsNonEmptyArray(item.BGColor))this.SessionBreaksPaint.BGColor=item.BGColor.slice();if(item.SplitLine){var subItem=item.SplitLine;if(subItem.Color)this.SessionBreaksPaint.SplitLine.Color=subItem.Color;if(IFrameSplitOperator.IsNumber(subItem.Width))this.SessionBreaksPaint.SplitLine.Width=subItem.Width;this.SessionBreaksPaint.SplitLine.Dash=subItem.Dash;}}if(IFrameSplitOperator.IsNumber(style.ToolbarButtonStyle))this.ToolbarButtonStyle=style.ToolbarButtonStyle;if(style.Buttons){var buttons=style.Buttons;T_SetButtonStyle(buttons.CloseOverlayIndex,this.Buttons.CloseOverlayIndex);T_SetButtonStyle(buttons.CloseWindow,this.Buttons.CloseWindow);T_SetButtonStyle(buttons.ChangeIndex,this.Buttons.ChangeIndex);T_SetButtonStyle(buttons.OverlayIndex,this.Buttons.OverlayIndex);T_SetButtonStyle(buttons.ModifyIndexParam,this.Buttons.ModifyIndexParam);T_SetButtonStyle(buttons.MaxMinWindow,this.Buttons.MaxMinWindow);T_SetButtonStyle(buttons.TitleWindow,this.Buttons.TitleWindow);T_SetButtonStyle(buttons.ExportData,this.Buttons.ExportData);T_SetButtonStyle(buttons.AddIndexWindow,this.Buttons.AddIndexWindow);if(buttons.Tooltip){var item=buttons.Tooltip;var src=this.Buttons.Tooltip;if(item.Font)src.Font=item.Font;if(item.Color)src.Color=item.Color;if(item.ColorBG)src.ColorBG=item.ColorBG;if(item.ColorBorder)src.ColorBorder=item.ColorBorder;if(item.BorderRadius)src.BorderRadius=item.BorderRadius;if(item.Margin){if(IFrameSplitOperator.IsNumber(item.Margin.Left))src.Margin.Left=item.Margin.Left;if(IFrameSplitOperator.IsNumber(item.Margin.Top))src.Margin.Top=item.Margin.Top;if(IFrameSplitOperator.IsNumber(item.Margin.Bottom))src.Margin.Bottom=item.Margin.Bottom;if(IFrameSplitOperator.IsNumber(item.Margin.Right))src.Margin.Right=item.Margin.Right;}}}if(style.ChartDrawVolProfile){var item=style.ChartDrawVolProfile;if(item.UpVolColor)this.ChartDrawVolProfile.UpVolColor=item.UpVolColor;if(item.DownVolColor)this.ChartDrawVolProfile.DownVolColor=item.DownVolColor;if(item.AreaUpColor)this.ChartDrawVolProfile.AreaUpColor=item.AreaUpColor;if(item.AreaDonwColor)this.ChartDrawVolProfile.AreaDonwColor=item.AreaDonwColor;if(item.BGColor)this.ChartDrawVolProfile.BGColor=item.BGColor;if(item.BorderColor)this.ChartDrawVolProfile.BorderColor=item.BorderColor;if(item.VolLineColor)this.ChartDrawVolProfile.VolLineColor=item.VolLineColor;if(item.Text){if(item.Text.Color)this.ChartDrawVolProfile.Text.Color=item.Text.Color;if(item.Text.Family)this.ChartDrawVolProfile.Text.Family=item.Text.Family;if(IFrameSplitOperator.IsNumber(item.Text.FontMaxSize))this.ChartDrawVolProfile.Text.FontMaxSize=item.Text.FontMaxSize;if(IFrameSplitOperator.IsNumber(item.Text.FontMinSize))this.ChartDrawVolProfile.Text.FontMinSize=item.Text.FontMinSize;}}if(style.DisableLogo===true){if(this.FrameLogo)this.FrameLogo.Text=null;}if(style.ScrollBar){var item=style.ScrollBar;if(item.BorderColor)this.ScrollBar.BorderColor=item.BorderColor;if(item.XSplitTextFont)this.ScrollBar.XSplitTextFont=item.XSplitTextFont;if(item.XSplitTextColor)this.ScrollBar.XSplitTextColor=item.XSplitTextColor;if(item.XSplitLineColor)this.ScrollBar.XSplitLineColor=item.XSplitLineColor;if(item.Slider){var subItem=item.Slider;if(subItem.DateFont)this.ScrollBar.Slider.DateFont=subItem.DateFont;if(subItem.DateColor)this.ScrollBar.Slider.DateColor=subItem.DateColor;if(subItem.BarColor)this.ScrollBar.Slider.BarColor=subItem.BarColor;if(subItem.BarAreaColor)this.ScrollBar.Slider.BarAreaColor=subItem.BarAreaColor;if(IFrameSplitOperator.IsNumber(subItem.BarWidth))this.ScrollBar.Slider.BarWidth=subItem.BarWidth;if(IFrameSplitOperator.IsNumber(subItem.BarPadding))this.ScrollBar.Slider.BarPadding=subItem.BarPadding;if(IFrameSplitOperator.IsNumber(subItem.MinCenterWidth))this.ScrollBar.Slider.MinCenterWidth=subItem.MinCenterWidth;}if(item.BGChart){var subItem=item.BGChart;if(subItem.Color)this.ScrollBar.BGChart.Color=subItem.Color;if(subItem.AreaColor)this.ScrollBar.BGChart.AreaColor=subItem.AreaColor;if(IFrameSplitOperator.IsPlusNumber(subItem.LineWidth))this.ScrollBar.BGChart.LineWidth=subItem.LineWidth;}}if(style.FrameButtomToolbar)this.SetFrameButtomToolbar(style.FrameButtomToolbar);if(style.Keyboard)this.SetKeyboardStyle(style.Keyboard);if(style.MinuteToolbar)this.SetMinuteToolbar(style.MinuteToolbar);if(style.KLineToolbar)this.SetKLineToolbar(style.KLineToolbar);};this.SetKeyboardStyle=function(style){var item=style;var dest=this.Keyboard;if(item.BorderColor)dest.BorderColor=item.BorderColor;if(item.SelectedColor)dest.SelectedColor=item.SelectedColor;if(item.TextColor)dest.TextColor=item.TextColor;if(item.Item){var row=item.Item;if(row.Mergin){var mergin=row.Mergin;if(IFrameSplitOperator.IsNumber(mergin.Left))dest.Item.Mergin.Left=mergin.Left;if(IFrameSplitOperator.IsNumber(mergin.Right))dest.Item.Mergin.Right=mergin.Right;if(IFrameSplitOperator.IsNumber(mergin.Top))dest.Item.Mergin.Top=mergin.Top;if(IFrameSplitOperator.IsNumber(mergin.Bottom))dest.Item.Mergin.Bottom=mergin.Bottom;}if(row.Font){var font=row.Font;if(font.Name)dest.Item.Font.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))dest.Item.Font.Size=font.Size;}if(row.BarMergin){var mergin=row.BarMergin;if(IFrameSplitOperator.IsNumber(mergin.Left))dest.Item.BarMergin.Left=mergin.Left;if(IFrameSplitOperator.IsNumber(mergin.Top))dest.Item.BarMergin.Top=mergin.Top;if(IFrameSplitOperator.IsNumber(mergin.Right))dest.Item.BarMergin.Right=mergin.Right;if(IFrameSplitOperator.IsNumber(mergin.Bottom))dest.Item.BarMergin.Bottom=mergin.Bottom;}if(row.NameFont){var font=row.NameFont;if(font.Name)dest.Item.NameFont.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))dest.Item.NameFont.Size=font.Size;}if(row.SymbolFont){var font=row.SymbolFont;if(font.Name)dest.Item.SymbolFont.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))dest.Item.SymbolFont.Size=font.Size;}}if(item.VScrollbar){var scroll=item.VScrollbar;if(IFrameSplitOperator.IsNumber(scroll.ScrollBarHeight))dest.VScrollbar.ScrollBarHeight=scroll.ScrollBarHeight;if(scroll.ButtonColor)dest.VScrollbar.ButtonColor=scroll.ButtonColor;if(scroll.BarColor)dest.VScrollbar.BarColor=scroll.BarColor;if(scroll.BorderColor)dest.VScrollbar.BorderColor=scroll.BorderColor;if(scroll.BGColor)dest.VScrollbar.BGColor=scroll.BGColor;if(scroll.BarWidth){var subItem=scroll.BarWidth;if(IFrameSplitOperator.IsNumber(subItem.Size))dest.VScrollbar.BarWidth.Size=subItem.Size;}}};this.SetReportStyle=function(style){var item=style;var dest=this.Report;if(item.BorderColor)this.Report.BorderColor=item.BorderColor;if(item.UpTextColor)this.Report.UpTextColor=item.UpTextColor;if(item.DownTextColor)this.Report.DownTextColor=item.DownTextColor;if(item.UnchagneTextColor)this.Report.UnchagneTextColor=item.UnchagneTextColor;if(item.BorderColor)this.Report.SelectedColor=item.SelectedColor;if(item.CloseLine){var closeLine=item.CloseLine;if(closeLine.CloseColor)this.Report.CloseLine.CloseColor=closeLine.CloseColor;if(closeLine.YCloseColor)this.Report.CloseLine.YCloseColor=closeLine.YCloseColor;if(closeLine.AreaColor)this.Report.CloseLine.AreaColor=closeLine.AreaColor;}if(item.KLine){var kline=item.KLine;if(kline.UpColor)this.Report.KLine.UpColor=kline.UpColor;if(kline.DownColor)this.Report.KLine.DownColor=kline.DownColor;if(kline.UnchagneColor)this.Report.KLine.UnchagneColor=kline.UnchagneColor;if(IFrameSplitOperator.IsNumber(kline.DataWidth))this.Report.KLine.DataWidth=kline.DataWidth;if(IFrameSplitOperator.IsNumber(kline.DistanceWidth))this.Report.KLine.DistanceWidth=kline.DistanceWidth;}if(item.Header){var header=item.Header;if(header.Color)this.Report.Header.Color=header.Color;if(header.Mergin){var mergin=header.Mergin;if(IFrameSplitOperator.IsNumber(mergin.Left))this.Report.Header.Mergin.Left=mergin.Left;if(IFrameSplitOperator.IsNumber(mergin.Right))this.Report.Header.Mergin.Left=mergin.Right;if(IFrameSplitOperator.IsNumber(mergin.Top))this.Report.Header.Mergin.Top=mergin.Top;if(IFrameSplitOperator.IsNumber(mergin.Bottom))this.Report.Header.Mergin.Bottom=mergin.Bottom;}if(header.Font){var font=header.Font;if(font.Name)this.Report.Header.Font.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))this.Report.Header.Font.Size=font.Size;}}if(item.SortIcon){var sort=item.SortIcon;if(IFrameSplitOperator.IsNonEmptyArray(sort.Color))this.Report.SortIcon.Color=sort.Color.slice();if(IFrameSplitOperator.IsNumber(sort.Size))this.Report.SortIcon.Size=sort.Size;if(sort.Family)this.Report.SortIcon.Family=sort.Family;if(IFrameSplitOperator.IsNonEmptyArray(sort.Arrow))this.Report.SortIcon.Arrow=sort.Arrow.slice();if(sort.Margin){var margin=sort.Margin;if(IFrameSplitOperator.IsNumber(margin.Left))this.Report.SortIcon.Margin.Left=margin.Left;if(IFrameSplitOperator.IsNumber(margin.Right))this.Report.SortIcon.Margin.Right=margin.Right;if(IFrameSplitOperator.IsNumber(margin.Top))this.Report.SortIcon.Margin.Top=margin.Top;if(IFrameSplitOperator.IsNumber(margin.Bottom))this.Report.SortIcon.Margin.Bottom=margin.Bottom;}}if(item.Item){var row=item.Item;if(row.Mergin){var mergin=row.Mergin;if(IFrameSplitOperator.IsNumber(mergin.Left))this.Report.Item.Mergin.Left=mergin.Left;if(IFrameSplitOperator.IsNumber(mergin.Right))this.Report.Item.Mergin.Right=mergin.Right;if(IFrameSplitOperator.IsNumber(mergin.Top))this.Report.Item.Mergin.Top=mergin.Top;if(IFrameSplitOperator.IsNumber(mergin.Bottom))this.Report.Item.Mergin.Bottom=mergin.Bottom;}if(row.Font){var font=row.Font;if(font.Name)this.Report.Item.Font.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))this.Report.Item.Font.Size=font.Size;}if(row.BarMergin){var mergin=row.BarMergin;if(IFrameSplitOperator.IsNumber(mergin.Left))this.Report.Item.BarMergin.Left=mergin.Left;if(IFrameSplitOperator.IsNumber(mergin.Top))this.Report.Item.BarMergin.Top=mergin.Top;if(IFrameSplitOperator.IsNumber(mergin.Right))this.Report.Item.BarMergin.Right=mergin.Right;if(IFrameSplitOperator.IsNumber(mergin.Bottom))this.Report.Item.BarMergin.Bottom=mergin.Bottom;}if(row.NameFont){var font=row.NameFont;if(font.Name)this.Report.Item.NameFont.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))this.Report.Item.NameFont.Size=font.Size;}if(row.SymbolFont){var font=row.SymbolFont;if(font.Name)this.Report.Item.SymbolFont.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))this.Report.Item.SymbolFont.Size=font.Size;}}if(item.FixedItem){var row=item.FixedItem;if(row.Font){var font=row.Font;if(font.Name)this.Report.FixedItem.Font.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))this.Report.FixedItem.Font.Size=font.Size;}}if(item.LimitBorder){var limit=item.LimitBorder;if(limit.Color)this.Report.LimitBorder.Color=limit.Color;if(limit.Mergin){var mergin=limit.Mergin;if(IFrameSplitOperator.IsNumber(mergin.Left))this.Report.LimitBorder.Mergin.Left=mergin.Left;if(IFrameSplitOperator.IsNumber(mergin.Top))this.Report.LimitBorder.Mergin.Top=mergin.Top;if(IFrameSplitOperator.IsNumber(mergin.Right))this.Report.LimitBorder.Mergin.Right=mergin.Right;if(IFrameSplitOperator.IsNumber(mergin.Bottom))this.Report.LimitBorder.Mergin.Bottom=mergin.Bottom;}}if(item.LimitColor){var limit=item.LimitColor;if(limit.UpColor)this.Report.LimitColor.UpColor=limit.UpColor;if(limit.DownColor)this.Report.LimitColor.DownColor=limit.DownColor;if(limit.TextColor)this.Report.LimitColor.UpColor=limit.TextColor;}if(item.FieldColor){var filed=item.FieldColor;if(filed.Name)this.Report.FieldColor.Name=filed.Name;if(filed.Symbol)this.Report.FieldColor.Symbol=filed.Symbol;if(filed.Vol)this.Report.FieldColor.Vol=filed.Vol;if(filed.Amount)this.Report.FieldColor.Amount=filed.Amount;if(filed.Index)this.Report.FieldColor.Index=filed.Index;if(filed.BarTitle)this.Report.FieldColor.BarTitle=filed.BarTitle;if(filed.Text)this.Report.FieldColor.Text=filed.Text;if(IFrameSplitOperator.IsNonEmptyArray(filed.Bar)){for(var i=0;i<filed.Bar.length;++i){this.Report.FieldColor.Bar[i]=filed.Bar[i];}}}if(item.NameSymbolV2){var nameSymbol=item.NameSymbolV2;if(nameSymbol.Name){var subItem=nameSymbol.Name;if(IFrameSplitOperator.IsNumber(subItem.Size))this.Report.NameSymbolV2.Name.Size=subItem.Size;if(subItem.Name)this.Report.NameSymbolV2.Name.Name=subItem.Name;if(subItem.Color)this.Report.NameSymbolV2.Name.Color=subItem.Color;}if(nameSymbol.Symbol){var subItem=nameSymbol.Symbol;if(IFrameSplitOperator.IsNumber(subItem.Size))this.Report.NameSymbolV2.Symbol.Size=subItem.Size;if(subItem.Name)this.Report.NameSymbolV2.Symbol.Name=subItem.Name;if(subItem.Color)this.Report.NameSymbolV2.Symbol.Color=subItem.Color;}}if(item.Tab){var tab=item.Tab;if(tab.Font){var font=tab.Font;if(font.Name)this.Report.Tab.Font.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))this.Report.Tab.Font.Size=font.Size;}if(IFrameSplitOperator.IsNumber(tab.ScrollBarWidth))this.Report.Tab.ScrollBarWidth=tab.ScrollBarWidth;if(tab.ButtonColor)this.Report.Tab.ButtonColor=tab.ButtonColor;if(tab.BarColor)this.Report.Tab.BarColor=tab.BarColor;if(tab.BorderColor)this.Report.Tab.BorderColor=tab.BorderColor;if(tab.TabTitleColor)this.Report.Tab.TabTitleColor=tab.TabTitleColor;if(tab.TabSelectedTitleColor)this.Report.Tab.TabSelectedTitleColor=tab.TabSelectedTitleColor;if(tab.TabSelectedBGColor)this.Report.Tab.TabSelectedBGColor=tab.TabSelectedBGColor;if(tab.TabMoveOnTitleColor)this.Report.Tab.TabMoveOnTitleColor=tab.TabMoveOnTitleColor;if(tab.TabBGColor)this.Report.Tab.TabBGColor=tab.TabBGColor;}if(item.PageInfo){var pageinfo=item.PageInfo;if(pageinfo.Font){var font=pageinfo.Font;if(font.Name)this.Report.PageInfo.Font.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))this.Report.PageInfo.Font.Size=font.Size;}if(pageinfo.TextColor)this.Report.PageInfo.TextColor=pageinfo.TextColor;if(pageinfo.BGColor)this.Report.PageInfo.BGColor=pageinfo.BGColor;if(pageinfo.Mergin){var mergin=pageinfo.Mergin;if(IFrameSplitOperator.IsNumber(mergin.Left))this.Report.PageInfo.Mergin.Left=mergin.Left;if(IFrameSplitOperator.IsNumber(mergin.Top))this.Report.PageInfo.Mergin.Top=mergin.Top;if(IFrameSplitOperator.IsNumber(mergin.Right))this.Report.PageInfo.Mergin.Right=mergin.Right;if(IFrameSplitOperator.IsNumber(mergin.Bottom))this.Report.PageInfo.Mergin.Bottom=mergin.Bottom;}}if(item.DragRow){var dragRow=item.DragRow;if(dragRow.Color)this.Report.DragRow.Color=dragRow.Color;if(dragRow.TextColor)this.Report.DragRow.TextColor=dragRow.TextColor;if(dragRow.MoveRowColor)this.Report.DragRow.MoveRowColor=dragRow.MoveRowColor;if(dragRow.SrcRowColor)this.Report.DragRow.SrcRowColor=dragRow.SrcRowColor;}if(item.VScrollbar){var subItem=item.VScrollbar;if(IFrameSplitOperator.IsNumber(subItem.ScrollBarHeight))dest.VScrollbar.ScrollBarHeight=subItem.ScrollBarHeight;if(subItem.ButtonColor)dest.VScrollbar.ButtonColor=subItem.ButtonColor;if(subItem.BarColor)dest.VScrollbar.BarColor=subItem.BarColor;if(subItem.BorderColor)dest.VScrollbar.BorderColor=subItem.BorderColor;if(subItem.BGColor)dest.VScrollbar.BGColor=subItem.BGColor;}if(item.CheckBox){var subItem=item.CheckBox;if(subItem.Family)dest.CheckBox.Family=subItem.Family;if(IFrameSplitOperator.IsNumber(subItem.Size))dest.CheckBox.Size=subItem.Size;if(subItem.Checked){var child=subItem.Checked;if(child.Color)dest.CheckBox.Checked.Color=child.Color;if(child.Symbol)dest.CheckBox.Checked.Symbol=child.Symbol;if(child.DisableColor)dest.CheckBox.Checked.DisableColor=child.DisableColor;}if(subItem.Unchecked){var child=subItem.Unchecked;if(child.Color)dest.CheckBox.Unchecked.Color=child.Color;if(child.Symbol)dest.CheckBox.Unchecked.Symbol=child.Symbol;if(child.DisableColor)dest.CheckBox.Unchecked.DisableColor=child.DisableColor;}CopyMarginConfig(dest.CheckBox.Margin,subItem.Margin);}if(item.Link){var subItem=item.Link;if(subItem.Font)dest.Link.Font=subItem.Font;if(subItem.TextColor)dest.Link.TextColor=subItem.TextColor;if(subItem.Disable&&subItem.Disable.TextColor)dest.Link.Disable.TextColor=subItem.Disable.TextColor;if(subItem.MouseOn&&subItem.MouseOn.TextColor)dest.Link.MouseOn.TextColor=subItem.MouseOn.TextColor;}if(item.ProgressBar){var subItem=item.ProgressBar;if(subItem.BGColor)dest.ProgressBar.BGColor=subItem.BGColor;if(subItem.BarColor)dest.ProgressBar.BarColor=subItem.BarColor;if(subItem.TextColor)dest.ProgressBar.TextColor=subItem.TextColor;if(subItem.Font)dest.ProgressBar.Font=subItem.Font;if(subItem.Disable){if(subItem.Disable.BGColor)dest.ProgressBar.Disable.BGColor=subItem.Disable.BGColor;if(subItem.Disable.BarColor)dest.ProgressBar.Disable.BarColor=subItem.Disable.BarColor;if(subItem.Disable.TextColor)dest.ProgressBar.Disable.TextColor=subItem.Disable.TextColor;}CopyMarginConfig(dest.ProgressBar.Margin,subItem.Margin);CopyMarginConfig(dest.ProgressBar.BarMargin,subItem.BarMargin);CopyMarginConfig(dest.ProgressBar.TextMargin,subItem.TextMargin);}if(item.Buttom){var subItem=item.Buttom;if(subItem.BGColor)dest.Buttom.BGColor=subItem.BGColor;if(subItem.TextColor)dest.Buttom.TextColor=subItem.TextColor;if(subItem.BorderColor)dest.Buttom.BorderColor=subItem.BorderColor;if(subItem.Font)dest.Buttom.Font=subItem.Font;if(subItem.Disable){if(subItem.Disable.BGColor)dest.Buttom.Disable.BGColor=subItem.Disable.BGColor;if(subItem.Disable.TextColor)dest.Buttom.Disable.TextColor=subItem.Disable.TextColor;}if(subItem.MouseOn){if(subItem.MouseOn.BGColor)dest.Buttom.MouseOn.BGColor=subItem.MouseOn.BGColor;if(subItem.MouseOn.TextColor)dest.Buttom.MouseOn.TextColor=subItem.MouseOn.TextColor;}CopyMarginConfig(dest.Buttom.Margin,subItem.Margin);CopyMarginConfig(dest.Buttom.TextMargin,subItem.TextMargin);}};this.SetTReportStyle=function(style){var item=style;var dest=this.TReport;if(item.BorderColor)dest.BorderColor=item.BorderColor;if(item.UpTextColor)dest.UpTextColor=item.UpTextColor;if(item.DownTextColor)dest.DownTextColor=item.DownTextColor;if(item.UnchangeTextColor)dest.UnchangeTextColor=item.UnchangeTextColor;if(item.BorderColor)dest.SelectedColor=item.SelectedColor;if(item.UpBGColor)dest.UpBGColor=item.UpBGColor;if(item.DownBGColor)dest.DownBGColor=item.DownBGColor;if(item.Header){var header=item.Header;if(header.Color)dest.Header.Color=header.Color;if(header.SortColor)dest.Header.SortColor=header.SortColor;if(header.Mergin){var mergin=header.Mergin;if(IFrameSplitOperator.IsNumber(mergin.Left))dest.Header.Mergin.Left=mergin.Left;if(IFrameSplitOperator.IsNumber(mergin.Right))dest.Header.Mergin.Left=mergin.Right;if(IFrameSplitOperator.IsNumber(mergin.Top))dest.Header.Mergin.Top=mergin.Top;if(IFrameSplitOperator.IsNumber(mergin.Bottom))dest.Header.Mergin.Bottom=mergin.Bottom;}if(header.Font){var font=header.Font;if(font.Name)dest.Header.Font.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))dest.Header.Font.Size=font.Size;}}if(item.CenterItem){var cell=item.CenterItem;if(cell.TextColor)dest.CenterItem.TextColor=cell.TextColor;if(cell.BaseTextColor)dest.CenterItem.BaseTextColor=cell.BaseTextColor;if(cell.BGColor)dest.CenterItem.BGColor=cell.BGColor;}if(item.Item){var row=item.Item;if(row.Mergin){var mergin=row.Mergin;if(IFrameSplitOperator.IsNumber(mergin.Left))dest.Item.Mergin.Left=mergin.Left;if(IFrameSplitOperator.IsNumber(mergin.Right))dest.Item.Mergin.Right=mergin.Right;if(IFrameSplitOperator.IsNumber(mergin.Top))dest.Item.Mergin.Top=mergin.Top;if(IFrameSplitOperator.IsNumber(mergin.Bottom))dest.Item.Mergin.Bottom=mergin.Bottom;}if(row.Font){var font=row.Font;if(font.Name)dest.Item.Font.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))dest.Item.Font.Size=font.Size;}if(row.NameFont){var font=row.NameFont;if(font.Name)dest.Item.NameFont.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))dest.Item.NameFont.Size=font.Size;}if(row.SymbolFont){var font=row.SymbolFont;if(font.Name)dest.Item.SymbolFont.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))dest.Item.SymbolFont.Size=font.Size;}}if(item.FieldColor){var filed=item.FieldColor;if(filed.Name)dest.FieldColor.Name=filed.Name;if(filed.Symbol)dest.FieldColor.Symbol=filed.Symbol;if(filed.Vol)dest.FieldColor.Vol=filed.Vol;if(filed.Amount)dest.FieldColor.Amount=filed.Amount;if(filed.Index)dest.FieldColor.Index=filed.Index;if(filed.Text)dest.FieldColor.Text=filed.Text;if(filed.Position)dest.FieldColor.Position=filed.Position;}if(item.MarkBorder){var subIem=item.MarkBorder;if(subIem.MaxPositionColor)dest.MarkBorder.MaxPositionColor=subIem.MaxPositionColor;}if(item.FixedItem){var subIem=item.FixedItem;if(subIem.Font){var font=subIem.Font;if(font.Name)dest.FixedItem.Font.Name=font.Name;if(IFrameSplitOperator.IsNumber(font.Size))dest.FixedItem.Font.Size=font.Size;}}};this.SetFrameButtomToolbar=function(style){var dest=this.FrameButtomToolbar;if(style.BGColor)dest.BGColor=style.BGColor;if(style.BorderColor)dest.BorderColor=style.BorderColor;if(style.Button){var button=style.Button;if(button.BorderColor)dest.Button.BorderColor=button.BorderColor;if(button.Font){var item=button.Font;var destItem=this.FrameButtomToolbar.Button.Font;if(item.Family)destItem.Family=item.Family;if(IFrameSplitOperator.IsNumber(item.Size))destItem.Size=item.Size;}if(button.TitleColor){var item=button.TitleColor;var destItem=this.FrameButtomToolbar.Button.TitleColor;if(item.Selected)destItem.Selected=item.Selected;if(item.Default)destItem.Default=item.Default;if(item.MoveOn)destItem.MoveOn=item.MoveOn;}if(button.BGColor){var item=button.BGColor;var destItem=this.FrameButtomToolbar.Button.BGColor;if(item.Selected)destItem.Selected=item.Selected;if(item.Default)destItem.Default=item.Default;if(item.MoveOn)destItem.MoveOn=item.MoveOn;}if(button.Mergin){var item=button.Mergin;var destItem=this.FrameButtomToolbar.Button.Mergin;if(IFrameSplitOperator.IsNumber(item.Left))destItem.Left=item.Left;if(IFrameSplitOperator.IsNumber(item.Right))destItem.Left=item.Right;if(IFrameSplitOperator.IsNumber(item.Top))destItem.Top=item.Top;if(IFrameSplitOperator.IsNumber(item.Bottom))destItem.Bottom=item.Bottom;}if(button.SVG){var item=button.SVG;var destItem=this.FrameButtomToolbar.Button.SVG;if(IFrameSplitOperator.IsNumber(item.Size))destItem.Size=item.Size;if(IFrameSplitOperator.IsNumber(item.MerginLeft))destItem.MerginLeft=item.MerginLeft;if(item.Family)destItem.Family=item.Family;}}};this.SetMinuteToolbar=function(style){var dest=this.MinuteToolbar;if(IFrameSplitOperator.IsBool(style.ModifyIndex))dest.ModifyIndex=style.ModifyIndex;if(IFrameSplitOperator.IsBool(style.ChangeIndex))dest.ChangeIndex=style.ChangeIndex;if(IFrameSplitOperator.IsBool(style.CloseIndex))dest.CloseIndex=style.CloseIndex;if(IFrameSplitOperator.IsBool(style.OverlayIndex))dest.OverlayIndex=style.OverlayIndex;if(IFrameSplitOperator.IsBool(style.MaxMinWindow))dest.ModifyIndex=style.MaxMinWindow;if(IFrameSplitOperator.IsBool(style.TitleWindow))dest.ModifyIndex=style.TitleWindow;if(IFrameSplitOperator.IsBool(style.ExportData))dest.ModifyIndex=style.ExportData;if(IFrameSplitOperator.IsBool(style.AddIndexWindow))dest.AddIndexWindow=style.AddIndexWindow;if(IFrameSplitOperator.IsBool(style.IsShowOverlayToolbar))dest.IsShowOverlayToolbar=style.IsShowOverlayToolbar;if(IFrameSplitOperator.IsBool(style.IsShowOverlayFrame))dest.IsShowOverlayFrame=style.IsShowOverlayFrame;};this.SetKLineToolbar=function(style){var dest=this.KLineToolbar;if(IFrameSplitOperator.IsBool(style.ModifyIndex))dest.ModifyIndex=style.ModifyIndex;if(IFrameSplitOperator.IsBool(style.ChangeIndex))dest.ChangeIndex=style.ChangeIndex;if(IFrameSplitOperator.IsBool(style.CloseIndex))dest.CloseIndex=style.CloseIndex;if(IFrameSplitOperator.IsBool(style.OverlayIndex))dest.OverlayIndex=style.OverlayIndex;if(IFrameSplitOperator.IsBool(style.MaxMinWindow))dest.ModifyIndex=style.MaxMinWindow;if(IFrameSplitOperator.IsBool(style.TitleWindow))dest.ModifyIndex=style.TitleWindow;if(IFrameSplitOperator.IsBool(style.ExportData))dest.ModifyIndex=style.ExportData;if(IFrameSplitOperator.IsBool(style.AddIndexWindow))dest.AddIndexWindow=style.AddIndexWindow;};this.SetChartSimpleTable=function(style){var dest=this.ChartSimpleTable;if(style.TextColor)dest.TextColor=style.TextColor;if(style.BGColor)dest.BGColor=style.BGColor;if(style.BorderColor)dest.BorderColor=style.BorderColor;if(style.TextFont){var item=style.TextFont;if(item.Name)dest.TextFont.Name=item.Name;if(IFrameSplitOperator.IsNumber(item.Size))dest.TextFont.Size=item.Size;}if(style.ItemMargin){var margin=style.ItemMargin;if(IFrameSplitOperator.IsNumber(margin.Left))dest.ItemMargin.Left=margin.Left;if(IFrameSplitOperator.IsNumber(margin.Right))dest.ItemMargin.Right=margin.Right;if(IFrameSplitOperator.IsNumber(margin.Top))dest.ItemMargin.Top=margin.Top;if(IFrameSplitOperator.IsNumber(margin.Bottom))dest.ItemMargin.Bottom=margin.Bottom;}};this.SetChartSimplePie=function(style){var dest=this.ChartSimplePie;if(style.TextFont){var item=style.TextFont;if(item.Name)dest.TextFont.Name=item.Name;if(IFrameSplitOperator.IsNumber(item.Size))dest.TextFont.Size=item.Size;}if(style.BorderColor)dest.BorderColor=style.BorderColor;if(style.Offset){var item=style.Offset;if(IFrameSplitOperator.IsNumber(item.X))dest.Offset.X=item.X;if(IFrameSplitOperator.IsNumber(item.Y))dest.Offset.Y=item.Y;}};}var g_JSChartResource=new JSChartResource();/////////////////////////////////////////////////////////////////////////////////
|
|
6856
7023
|
//
|
|
6857
7024
|
//
|
|
6858
7025
|
//
|
|
@@ -7541,7 +7708,7 @@ chart.SetOption(option);this.ExtendChartPaint.push(chart);this.Frame.ChartBorder
|
|
|
7541
7708
|
return chart;case"StockChipPhone":return this.CreateStockChipPhone(option);case'KLineTooltip':if(option.Create&&typeof option.Create=='function')chart=option.Create();else chart=new KLineTooltipPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;option.LanguageID=this.LanguageID;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;case"深度图":chart=new DepthMapPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;case"K线Y轴背景图":chart=new KLineYAxisBGPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;case'背景图':chart=new BackgroundPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;case"FrameSplitPaint"://框架分割
|
|
7542
7709
|
chart=new FrameSplitPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;default:chart=g_ExtendChartPaintFactory.Create(name);if(!chart)return null;chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;}};this.OnTouchFinished=function(){if(this.DragMode==JSCHART_DRAG_ID.CLICK_TOUCH_MODE_ID){if(this.TouchStatus.CorssCursorShow==true&&this.TouchDrawCount>0)return;this.TouchStatus.CorssCursorShow=false;this.DrawDynamicInfo();return;}if(this.EnableClickModel===true){if(this.ClickModel.IsShowCorssCursor==true&&this.TouchDrawCount>0)return;this.ClickModel.IsShowCorssCursor=false;this.DrawDynamicInfo();return;}if(this.CorssCursorTouchEnd===true)//手势离开十字光标消失
|
|
7543
7710
|
{if(this.TouchDrawCount>0)this.DrawDynamicInfo();return;}for(var i in this.ExtendChartPaint){var item=this.ExtendChartPaint[i];if(item.ClassName==='KLineTooltipPaint'){this.DrawDynamicInfo();}}};//锁|解锁指标 { Index:指标名字,IsLocked:是否要锁上,Callback:回调 }
|
|
7544
|
-
this.LockIndex=function(lockData){if(!lockData)return;if(!lockData.IndexName)return;for(var
|
|
7711
|
+
this.LockIndex=function(lockData){if(!lockData)return;if(!lockData.IndexName)return;for(var _i12 in this.WindowIndex){var _item4=this.WindowIndex[_i12];if(!_item4)conintue;if(_item4.Name==lockData.IndexName){_item4.SetLock(lockData);this.Update();break;}}};this.TryClickLock=function(x,y){for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i];if(!item.Frame.IsLocked)continue;if(!item.Frame.LockPaint)continue;var tooltip=new TooltipData();if(!item.Frame.LockPaint.GetTooltipData(x,y,tooltip))continue;tooltip.HQChart=this;if(tooltip.Data.Callback)tooltip.Data.Callback(tooltip);return true;}return false;};this.TryClickIndexTitle=function(x,y){for(var i in this.TitlePaint){var item=this.TitlePaint[i];if(!item.IsClickTitle)continue;if(!item.IsClickTitle(x,y))continue;var data={Point:{X:x,Y:y},Title:item.Title,FrameID:item.Frame.Identify};JSConsole.Chart.Log('[KLineChartContainer::TryClickIndexTitle] click title ',data);var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_INDEXTITLE);if(event&&event.Callback)event.Callback(event,data,this);return true;}return false;};this.SetSizeChange=function(bChanged){this.Frame.SetSizeChage(bChanged);for(var i in this.ExtendChartPaint){var item=this.ExtendChartPaint[i];item.SizeChange=bChanged;}};this.SetSizeChage=this.SetSizeChange;//单词拼错了, 还没替换完
|
|
7545
7712
|
this.Update=function(option)//option: { UpdateCursorIndexType:更新十字光标方式 }
|
|
7546
7713
|
{if(!this.SourceData)return;if(this.BeforeBindMainData)this.BeforeBindMainData('Update');var bindData=new ChartData();bindData.Data=this.SourceData.Data;bindData.Period=this.Period;bindData.Right=this.Right;bindData.DataType=this.SourceData.DataType;bindData.Symbol=this.Symbol;if(bindData.Right>0&&ChartData.IsDayPeriod(bindData.Period,true))//复权(日线数据复权)
|
|
7547
7714
|
{var rightData=bindData.GetRightData(bindData.Right,{AlgorithmType:this.RightFormula});bindData.Data=rightData;}else if(bindData.Right>0&&ChartData.IsMinutePeriod(bindData.Period,true)&&this.RightFormula>=1)//复权(分钟数据复权, 复权因子模式)
|
|
@@ -7589,8 +7756,8 @@ else if(ChartData.IsMinutePeriod(this.Period,true))this.RequestOverlayHistoryMin
|
|
|
7589
7756
|
return true;};this.RequestSingleOverlayHistoryData=function(symbol,dataCount,firstDate,item){var self=this;item.Status=OVERLAY_STATUS_ID.STATUS_REQUESTDATA_ID;if(this.NetworkFilter){var obj={Name:'KLineChartContainer::RequestOverlayHistoryData',//类名::
|
|
7590
7757
|
Explain:'叠加股票日K线数据',Request:{Url:self.KLineApiUrl,Data:{symbol:symbol,count:dataCount.MaxRequestDataCount,"first":{date:firstDate},field:["name","symbol","yclose","open","price","high",'vol','amount']},Type:'POST'},Self:this,PreventDefault:false};this.NetworkFilter(obj,function(data){item.Status=OVERLAY_STATUS_ID.STATUS_RECVDATA_ID;self.RecvOverlayHistoryData(data,item);});if(obj.PreventDefault==true)return;//已被上层替换,不调用默认的网络请求
|
|
7591
7758
|
}};this.RequestOverlayHistoryData=function(){if(!this.OverlayChartPaint.length)return;if(!this.SourceData||!this.SourceData.Data)return;//主图数据还没有到完
|
|
7592
|
-
var self=this;var dataCount=this.GetRequestDataCount();var firstDate=this.SourceData.Data[0].Date;for(var i=0;i<this.OverlayChartPaint.length;++i){var
|
|
7593
|
-
if(
|
|
7759
|
+
var self=this;var dataCount=this.GetRequestDataCount();var firstDate=this.SourceData.Data[0].Date;for(var i=0;i<this.OverlayChartPaint.length;++i){var _item5=this.OverlayChartPaint[i];if(!_item5.MainData)continue;//等待主图股票数据未下载完
|
|
7760
|
+
if(_item5.Status!=OVERLAY_STATUS_ID.STATUS_NONE_ID)continue;var symbol=_item5.Symbol;if(!symbol)continue;this.RequestSingleOverlayHistoryData(symbol,dataCount,firstDate,_item5);}};this.RecvOverlayHistoryData=function(data,paint){if(paint.IsDelete)return;var aryDayData=KLineChartContainer.JsonDataToHistoryData(data);//原始叠加数据
|
|
7594
7761
|
var sourceData=new ChartData();sourceData.Data=aryDayData;sourceData.DataType=0;var bindData=new ChartData();bindData.Data=aryDayData;bindData.Period=this.Period;bindData.Right=this.Right;bindData.DataType=0;if(bindData.Right>0&&MARKET_SUFFIX_NAME.IsSHSZStockA(data.symbol)&&!this.IsApiPeriod)//复权数据 ,A股才有有复权
|
|
7595
7762
|
{var rightData=bindData.GetRightData(bindData.Right,{AlgorithmType:this.RightFormula});bindData.Data=rightData;}var aryOverlayData=this.SourceData.GetOverlayData(bindData.Data,this.IsApiPeriod);//和主图数据拟合以后的数据
|
|
7596
7763
|
bindData.Data=aryOverlayData;if(ChartData.IsDayPeriod(bindData.Period,false)&&!this.IsApiPeriod)//周期数据
|
|
@@ -7600,8 +7767,8 @@ this.UpdateFrameMaxMin();//调整坐标最大 最小值
|
|
|
7600
7767
|
this.Frame.SetSizeChage(true);this.Draw();};this.RequestSingleHistoryMinuteData=function(symbol,dataCount,firstDate,firstTime,item){var self=this;item.Status=OVERLAY_STATUS_ID.STATUS_REQUESTDATA_ID;if(this.NetworkFilter){var obj={Name:'KLineChartContainer::RequestOverlayHistoryMinuteData',//类名::
|
|
7601
7768
|
Explain:'叠加股票分钟K线数据',Request:{Url:self.MinuteKLineApiUrl,Data:{symbol:symbol,count:dataCount.MaxRequestMinuteDayCount,"first":{date:firstDate,time:firstTime},field:["name","symbol","yclose","open","price","high",'vol','amount']},Type:'POST'},Self:this,PreventDefault:false};this.NetworkFilter(obj,function(data){item.Status=OVERLAY_STATUS_ID.STATUS_RECVDATA_ID;self.RecvOveralyHistoryMinuteData(data,item);});if(obj.PreventDefault==true)return;//已被上层替换,不调用默认的网络请求
|
|
7602
7769
|
}};this.RequestOverlayHistoryMinuteData=function(){if(!this.OverlayChartPaint.length)return;if(!this.SourceData||!this.SourceData.Data)return;//主图数据还没有到完
|
|
7603
|
-
var self=this;var dataCount=this.GetRequestDataCount();var firstDate=this.SourceData.Data[0].Date;var firstTime=this.SourceData.Data[0].Time;for(var i=0;i<this.OverlayChartPaint.length;++i){var
|
|
7604
|
-
if(
|
|
7770
|
+
var self=this;var dataCount=this.GetRequestDataCount();var firstDate=this.SourceData.Data[0].Date;var firstTime=this.SourceData.Data[0].Time;for(var i=0;i<this.OverlayChartPaint.length;++i){var _item6=this.OverlayChartPaint[i];if(!_item6.MainData)continue;//等待主图股票数据未下载完
|
|
7771
|
+
if(_item6.Status!=OVERLAY_STATUS_ID.STATUS_NONE_ID)continue;var symbol=_item6.Symbol;if(!symbol)continue;this.RequestSingleHistoryMinuteData(symbol,dataCount,firstDate,firstTime,_item6);}};this.RecvOveralyHistoryMinuteData=function(data,paint){if(this.EnableVerifyRecvData&&data.symbol!=paint.Symbol){JSConsole.Chart.Warn('[MinuteChartContainer::RecvOveralyHistoryMinuteData] recv data symbol not match. paint['+paint.Symbol+'] , Recv['+data.symbol+']');return;}var aryDayData=KLineChartContainer.JsonDataToMinuteHistoryData(data);if(!aryDayData)return;//原始叠加数据
|
|
7605
7772
|
var sourceData=new ChartData();sourceData.Data=aryDayData;sourceData.DataType=1;//0=日线数据 1=分钟数据
|
|
7606
7773
|
var bindData=new ChartData();bindData.Data=aryDayData;bindData.Period=this.Period;bindData.Right=this.Right;bindData.DataType=1;var aryOverlayData=this.SourceData.GetOverlayMinuteData(bindData.Data,this.IsApiPeriod);//和主图数据拟合以后的数据
|
|
7607
7774
|
bindData.Data=aryOverlayData;if(ChartData.IsMinutePeriod(bindData.Period,false)&&!this.IsApiPeriod)//周期数据, API周期数据不用计算
|
|
@@ -7619,13 +7786,13 @@ bNeedDonloadData=false;if(this.EnableFlowCapital)//强制下载流通股
|
|
|
7619
7786
|
{if(MARKET_SUFFIX_NAME.IsBIT(upperSymbol)){if(this.EnableFlowCapital.BIT==true)bNeedDonloadData=true;}}if(!bNeedDonloadData){JSConsole.Chart.Log('[KLineChartContainer::RequestFlowCapitalData] symbol='+this.Symbol+' not need download data.');this.FlowCapitalReady=true;return;}var self=this;var fieldList=["name","date","symbol","capital.a"];if(this.NetworkFilter){var obj={Name:'KLineChartContainer::RequestFlowCapitalData',//类名::
|
|
7620
7787
|
Explain:'流通股本数据',Request:{Url:self.StockHistoryDayApiUrl,Data:{symbol:[this.Symbol],orderfield:'date',field:fieldList},Type:'POST'},Self:this,PreventDefault:false};this.NetworkFilter(obj,function(data){self.RecvFlowCapitalData(data);});if(obj.PreventDefault==true)return;//已被上层替换,不调用默认的网络请求
|
|
7621
7788
|
}//请求数据
|
|
7622
|
-
JSNetwork.HttpRequest({url:this.StockHistoryDayApiUrl,data:{"field":fieldList,"symbol":[this.Symbol],"orderfield":"date"},type:"post",dataType:"json",async:true,success:function success(recvData){self.RecvFlowCapitalData(recvData);}});};this.RecvFlowCapitalData=function(data){if(!data.stock||data.stock.length!=1)return;var stock=data.stock[0];if(this.EnableVerifyRecvData&&stock.symbol!=this.Symbol){JSConsole.Chart.Warn('[MinuteChartContainer::RecvFlowCapitalData] recv data symbol not match. HQChart['+this.Symbol+'] , Recv['+stock.symbol+']');return;}var aryData=new Array();for(var
|
|
7789
|
+
JSNetwork.HttpRequest({url:this.StockHistoryDayApiUrl,data:{"field":fieldList,"symbol":[this.Symbol],"orderfield":"date"},type:"post",dataType:"json",async:true,success:function success(recvData){self.RecvFlowCapitalData(recvData);}});};this.RecvFlowCapitalData=function(data){if(!data.stock||data.stock.length!=1)return;var stock=data.stock[0];if(this.EnableVerifyRecvData&&stock.symbol!=this.Symbol){JSConsole.Chart.Warn('[MinuteChartContainer::RecvFlowCapitalData] recv data symbol not match. HQChart['+this.Symbol+'] , Recv['+stock.symbol+']');return;}var aryData=new Array();for(var _i13 in stock.stockday){var item=stock.stockday[_i13];var indexData=new SingleData();indexData.Date=item.date;var financeData=item.capital;if(!financeData)continue;if(financeData.a>0){indexData.Value=financeData.a;//流通股本(股)
|
|
7623
7790
|
aryData.push(indexData);}}if(this.IsApiPeriod){var klineData=this.ChartPaint[0].Data;var aryFixedData=null;if(ChartData.IsMinutePeriod(this.Period,true))//分钟数据
|
|
7624
7791
|
{aryFixedData=klineData.GetMinuteFittingFinanceData(aryData);}else if(ChartData.IsDayPeriod(this.Period,true))//日线数据
|
|
7625
7792
|
{aryFixedData=klineData.GetFittingFinanceData(aryData);}if(aryFixedData&&klineData.Data&&aryFixedData.length==klineData.Data.length){for(var i in klineData.Data){var item=klineData.Data[i];if(aryFixedData[i]&&IFrameSplitOperator.IsNumber(aryFixedData[i].Value))item.FlowCapital=aryFixedData[i].Value;}}}else{if(ChartData.IsMinutePeriod(this.Period,true))//分钟数据
|
|
7626
7793
|
{var aryFixedData=this.SourceData.GetMinuteFittingFinanceData(aryData);for(var i=0;i<this.SourceData.Data.length;++i){var item=this.SourceData.Data[i];if(aryFixedData[i]&&IFrameSplitOperator.IsNumber(aryFixedData[i].Value))item.FlowCapital=aryFixedData[i].Value;}var bindData=this.ChartPaint[0].Data;var newBindData=new ChartData();newBindData.Data=this.SourceData.Data;if(bindData.Right>0&&this.RightFormula>=1)//复权
|
|
7627
7794
|
{var rightData=newBindData.GetRightData(bindData.Right,{AlgorithmType:this.RightFormula});newBindData.Data=rightData;}if(ChartData.IsMinutePeriod(bindData.Period,false))//周期数据
|
|
7628
|
-
{var periodData=newBindData.GetPeriodData(bindData.Period);newBindData.Data=periodData;}bindData.Data=newBindData.Data;}else{var aryFixedData=this.SourceData.GetFittingFinanceData(aryData);for(var
|
|
7795
|
+
{var periodData=newBindData.GetPeriodData(bindData.Period);newBindData.Data=periodData;}bindData.Data=newBindData.Data;}else{var aryFixedData=this.SourceData.GetFittingFinanceData(aryData);for(var _i14 in this.SourceData.Data){var item=this.SourceData.Data[_i14];if(aryFixedData[_i14]&&IFrameSplitOperator.IsNumber(aryFixedData[_i14].Value))item.FlowCapital=aryFixedData[_i14].Value;}var bindData=this.ChartPaint[0].Data;var newBindData=new ChartData();newBindData.Data=this.SourceData.Data;if(bindData.Right>0)//复权
|
|
7629
7796
|
{var rightData=newBindData.GetRightData(bindData.Right,{AlgorithmType:this.RightFormula});newBindData.Data=rightData;}if(ChartData.IsDayPeriod(bindData.Period,false))//周期数据
|
|
7630
7797
|
{var periodData=newBindData.GetPeriodData(bindData.Period);newBindData.Data=periodData;}bindData.Data=newBindData.Data;}}this.FlowCapitalReady=true;var bDraw=false;for(var i in this.ExtendChartPaint){var item=this.ExtendChartPaint[i];if(item.ClassName=='StockChip'){bDraw=true;break;}}if(bDraw)this.Draw();};//创建画图工具
|
|
7631
7798
|
this.CreateChartDrawPicture=function(name,option,callback){var drawPicture=null;var item=IChartDrawPicture.GetDrawPictureByName(name);if(item){drawPicture=item.Create();if(drawPicture.ClassName=='ChartDrawPictureText'||drawPicture.ClassName=="ChartDrawVolProfile")drawPicture.HQChart=this;}if(!drawPicture)//iconfont图标
|
|
@@ -8168,7 +8335,7 @@ var showDayCount=this.DayOffset.ShowDayCount;this.Frame.SetDayCount(showDayCount
|
|
|
8168
8335
|
if(this.BaselineType===1)dayItem=this.DayData[this.DayData.length-1];//多日前
|
|
8169
8336
|
var yClose=dayItem.YClose;if(IFrameSplitOperator.IsNumber(dayItem.YClearing)&&isFutures)yClose=dayItem.YClearing;//期货使用前结算价
|
|
8170
8337
|
this.BindMainData(sourceData,yClose);//外汇 均线暂时不用
|
|
8171
|
-
if(MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol))this.ChartPaint[1].Data=null;for(var
|
|
8338
|
+
if(MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol))this.ChartPaint[1].Data=null;for(var _i15=0;_i15<this.Frame.SubFrame.length;++_i15){var item=this.Frame.SubFrame[_i15];item.Frame.XSplitOperator.Symbol=this.Symbol;item.Frame.XSplitOperator.DayCount=showDayCount;item.Frame.XSplitOperator.DayData=this.DayData;item.Frame.XSplitOperator.Operator();//调整X轴个数
|
|
8172
8339
|
item.Frame.XSplitOperator.IsBeforeData=this.IsBeforeData;item.Frame.XSplitOperator.IsAfterData=this.IsAfterData;item.Frame.YSplitOperator.Symbol=this.Symbol;item.Frame.YSplitOperator.IsBeforeData=this.IsBeforeData;item.Frame.YSplitOperator.IsAfterData=this.IsAfterData;for(var j in item.OverlayIndex)//子坐标X轴个数同步
|
|
8173
8340
|
{var overlayItem=item.OverlayIndex[j];overlayItem.Frame.XPointCount=item.Frame.XPointCount;overlayItem.Frame.MinuteCount=item.Frame.MinuteCount;}}this.ChartCorssCursor.StringFormatY.Symbol=this.Symbol;this.ChartCorssCursor.StringFormatX.Symbol=this.Symbol;this.ChartCorssCursor.StringFormatX.IsBeforeData=this.IsBeforeData;this.ChartCorssCursor.StringFormatX.IsAfterData=this.IsAfterData;this.TitlePaint[0].IsShowDate=true;this.UpdateDataOffset();this.UpdateFrameMaxMin();//调整坐标最大 最小值
|
|
8174
8341
|
this.CreateChartDrawPictureByStorage();//创建画图工具
|
|
@@ -8196,7 +8363,7 @@ this.UpdateLatestMinuteDataV2(minuteData);var sourceData=this.SourceData;var ary
|
|
|
8196
8363
|
this.SourceData.UpdateTime=updateTime;this.Symbol=minuteData.Symbol;this.Name=minuteData.Name;this.SetCallCationDataBorder({Left:this.IsBeforeData,Right:this.IsAfterData,MultiDay:{Left:false,Right:false}});if(this.ShareAfterVol==2)//盘前, 盘后成交量公用坐标
|
|
8197
8364
|
{if(this.BeforeOpenData&&this.AfterCloseData){var max=Math.max(this.BeforeOpenData.VolMax,this.AfterCloseData.VolMax);var min=Math.min(this.BeforeOpenData.VolMin,this.AfterCloseData.VolMin);this.BeforeOpenData.VolMax=this.AfterCloseData.VolMax=max;this.BeforeOpenData.VolMin=this.AfterCloseData.VolMin=min;}}var yClose=minuteData.YClose;var upperSymbol=this.Symbol.toUpperCase();var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol);if(minuteData.YClearing>0&&isFutures)yClose=minuteData.YClearing;//期货使用前结算价
|
|
8198
8365
|
this.CaclutateLimitPrice(yClose,minuteData.LimitPrice);//计算涨停价格
|
|
8199
|
-
var extendData=null;if(minuteData.High>0&&minuteData.Low>0)extendData={High:minuteData.High,Low:minuteData.Low};this.BindMainData(sourceData,yClose,extendData);if(this.Frame.SubFrame.length>2){var bindData=new ChartData();bindData.Data=aryMinuteData;for(var i=2;i<this.Frame.SubFrame.length;++i){this.BindIndexData(i,bindData);}}for(var
|
|
8366
|
+
var extendData=null;if(minuteData.High>0&&minuteData.Low>0)extendData={High:minuteData.High,Low:minuteData.Low};this.BindMainData(sourceData,yClose,extendData);if(this.Frame.SubFrame.length>2){var bindData=new ChartData();bindData.Data=aryMinuteData;for(var i=2;i<this.Frame.SubFrame.length;++i){this.BindIndexData(i,bindData);}}for(var _i16=0;_i16<this.Frame.SubFrame.length;++_i16){var item=this.Frame.SubFrame[_i16];item.Frame.XSplitOperator.Symbol=this.Symbol;item.Frame.XSplitOperator.DayCount=1;item.Frame.XSplitOperator.Operator();//调整X轴个数
|
|
8200
8367
|
item.Frame.YSplitOperator.Symbol=this.Symbol;if(IFrameSplitOperator.IsNonEmptyArray(item.OverlayIndex)){for(var j=0;j<item.OverlayIndex.length;++j)//子坐标X轴个数同步
|
|
8201
8368
|
{var overlayItem=item.OverlayIndex[j];overlayItem.Frame.XPointCount=item.Frame.XPointCount;overlayItem.Frame.MinuteCount=item.Frame.MinuteCount;}}}this.ChartCorssCursor.StringFormatY.Symbol=this.Symbol;this.ChartCorssCursor.StringFormatX.Symbol=this.Symbol;if(MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol))this.TitlePaint[0].IsShowDate=false;if(data.stock[0].IsHistoryMinute==true)this.TitlePaint[0].IsShowDate=true;var chartInfo=this.GetChartMinuteInfo();if(chartInfo)chartInfo.SourceData=this.SourceData;//数据绑定到信息地雷上
|
|
8202
8369
|
this.RecvMinuteDataEvent({FunctionName:"RecvUpdateMinuteData"});this.RequestMinuteInfoData();this.RequestOverlayMinuteData();//请求叠加数据 (主数据下载完再下载)
|
|
@@ -8214,7 +8381,7 @@ var sourceData=new ChartData();sourceData.Data=aryMinuteData;sourceData.UpdateTi
|
|
|
8214
8381
|
this.SourceData=sourceData;this.Symbol=data.stock[0].symbol;this.Name=data.stock[0].name;this.SetCallCationDataBorder({Left:this.IsBeforeData,Right:this.IsAfterData,MultiDay:{Left:false,Right:false}});if(this.ShareAfterVol==2)//盘前, 盘后成交量公用坐标
|
|
8215
8382
|
{if(this.BeforeOpenData&&this.AfterCloseData){var max=Math.max(this.BeforeOpenData.VolMax,this.AfterCloseData.VolMax);var min=Math.min(this.BeforeOpenData.VolMin,this.AfterCloseData.VolMin);this.BeforeOpenData.VolMax=this.AfterCloseData.VolMax=max;this.BeforeOpenData.VolMin=this.AfterCloseData.VolMin=min;}}var yClose=data.stock[0].yclose;var upperSymbol=this.Symbol.toUpperCase();var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol);if(data.stock[0].yclearing>0&&isFutures)yClose=data.stock[0].yclearing;//期货使用前结算价
|
|
8216
8383
|
this.CaclutateLimitPrice(yClose,data.stock[0].limitprice);//计算涨停价格
|
|
8217
|
-
var extendData=null;if(data.stock[0].high>0&&data.stock[0].low>0)extendData={High:data.stock[0].high,Low:data.stock[0].low};this.BindMainData(sourceData,yClose,extendData);if(this.Frame.SubFrame.length>2){var bindData=new ChartData();bindData.Data=aryMinuteData;for(var i=2;i<this.Frame.SubFrame.length;++i){this.BindIndexData(i,bindData);}}for(var
|
|
8384
|
+
var extendData=null;if(data.stock[0].high>0&&data.stock[0].low>0)extendData={High:data.stock[0].high,Low:data.stock[0].low};this.BindMainData(sourceData,yClose,extendData);if(this.Frame.SubFrame.length>2){var bindData=new ChartData();bindData.Data=aryMinuteData;for(var i=2;i<this.Frame.SubFrame.length;++i){this.BindIndexData(i,bindData);}}for(var _i17 in this.Frame.SubFrame){var item=this.Frame.SubFrame[_i17];item.Frame.XSplitOperator.Symbol=this.Symbol;item.Frame.XSplitOperator.DayCount=1;item.Frame.XSplitOperator.Operator();//调整X轴个数
|
|
8218
8385
|
item.Frame.YSplitOperator.Symbol=this.Symbol;for(var j in item.OverlayIndex)//子坐标X轴个数同步
|
|
8219
8386
|
{var overlayItem=item.OverlayIndex[j];overlayItem.Frame.XPointCount=item.Frame.XPointCount;overlayItem.Frame.MinuteCount=item.Frame.MinuteCount;}}this.ChartCorssCursor.StringFormatY.Symbol=this.Symbol;this.ChartCorssCursor.StringFormatX.Symbol=this.Symbol;if(MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol))this.TitlePaint[0].IsShowDate=false;if(data.stock[0].IsHistoryMinute==true)this.TitlePaint[0].IsShowDate=true;var chartInfo=this.GetChartMinuteInfo();if(chartInfo)chartInfo.SourceData=this.SourceData;//数据绑定到信息地雷上
|
|
8220
8387
|
this.RecvMinuteDataEvent({FunctionName:"RecvMinuteData",Day:{IsFirstData:bFirstData}});this.RequestMinuteInfoData();this.RequestOverlayMinuteData();//请求叠加数据 (主数据下载完再下载)
|
|
@@ -8231,7 +8398,7 @@ Explain:'叠加股票最新分时数据',Request:{Url:this.HistoryMinuteApiUrl,D
|
|
|
8231
8398
|
JSNetwork.HttpRequest({url:this.HistoryMinuteApiUrl,data:{"symbol":symbol,"days":[date]},type:"post",dataType:"json",async:true,success:function success(data){item.Status=OVERLAY_STATUS_ID.STATUS_RECVDATA_ID;//self.RecvMultiOverlayMinuteData([data]);
|
|
8232
8399
|
self.RecvOverlayMinuteData(data,item);}});};//请求叠加数据 (主数据下载完再下载))
|
|
8233
8400
|
this.RequestOverlayMinuteData=function(){var self=this;var date=this.TradeDate;//最后一个交易日期
|
|
8234
|
-
for(var i=0;i<this.OverlayChartPaint.length;++i){var
|
|
8401
|
+
for(var i=0;i<this.OverlayChartPaint.length;++i){var _item7=this.OverlayChartPaint[i];if(!_item7.MainData)continue;if(_item7.Status!=OVERLAY_STATUS_ID.STATUS_NONE_ID)continue;var symbol=_item7.Symbol;if(!symbol)continue;this.RequestSingleOverlayMinuteData(symbol,date,_item7);/*
|
|
8235
8402
|
item.Status=OVERLAY_STATUS_ID.STATUS_REQUESTDATA_ID;
|
|
8236
8403
|
|
|
8237
8404
|
if (this.NetworkFilter)
|
|
@@ -8449,10 +8616,10 @@ if(!IFrameSplitOperator.IsNumber(item.Close))//当前没有价格 使用上一
|
|
|
8449
8616
|
if(isFutures&&yClearing&&item.Close)item.Increase=(item.Close-yClearing)/yClearing*100;//涨幅 (最新价格-昨结算价)/昨结算价*100;
|
|
8450
8617
|
//上次价格
|
|
8451
8618
|
if(IFrameSplitOperator.IsNumber(jsData.price))preClose=jsData.price;if(IFrameSplitOperator.IsNumber(jsData.avprice)&&item.AvPrice===jsData.avprice)preAvPrice=jsData.avprice;if(jsData.ExtendData)item.ExtendData=jsData.ExtendData;//扩展数据
|
|
8452
|
-
aryMinuteData[i]=item;}return aryMinuteData;};//分钟增量数据 stock: [ { date:, yclose:, yclearing: , minute:[ [],]} 0=日期 1=时间 2=开 3=高 4=低 5=收 6=均价 7=量 8=金额 9=涨幅 10=涨跌 11=领先指标 ]
|
|
8619
|
+
aryMinuteData[i]=item;}return aryMinuteData;};//分钟增量数据 stock: [ { date:, yclose:, yclearing: , minute:[ [],]} 0=日期 1=时间 2=开 3=高 4=低 5=收 6=均价 7=量 8=金额 9=涨幅 10=涨跌 11=领先指标 12=持仓 ]
|
|
8453
8620
|
MinuteChartContainer.JsonDataToUpdateMinuteData=function(data){if(!data||!data.stock)return null;var stock=data.stock[0];if(!IFrameSplitOperator.IsNumber(stock.date))return null;var symbol=data.stock[0].symbol;var upperSymbol=symbol.toUpperCase();var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol);//国内期货, 纽约期货交易所
|
|
8454
8621
|
var minuteData={Date:stock.date,Data:[],Symbol:symbol,Name:stock.name};var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_DAY_EXTENDDATA;//扩展数据序号
|
|
8455
|
-
if(IFrameSplitOperator.IsNumber(stock.high))minuteData.High=stock.high;if(IFrameSplitOperator.IsNumber(stock.low))minuteData.Low=stock.low;if(IFrameSplitOperator.IsNumber(stock.yclose))minuteData.YClose=stock.yclose;if(IFrameSplitOperator.IsNumber(stock.YClearing))minuteData.YClearing=stock.yclearing;if(IFrameSplitOperator.IsNonEmptyArray(stock.minute)){for(var i=0;i<stock.minute.length;++i){var jsData=stock.minute[i];var item=new MinuteData();item.YClearing=minuteData.YClearing;item.YClose=minuteData.YClose;item.Date=jsData[0];item.Time=jsData[1];item.Open=jsData[2];item.High=jsData[3];item.Low=jsData[4];item.Close=jsData[5];item.AvPrice=jsData[6];item.Vol=jsData[7];item.Amount=jsData[8];if(IFrameSplitOperator.IsNumber(jsData[9]))item.Increase=jsData[9];if(IFrameSplitOperator.IsNumber(jsData[10]))item.Risefall=jsData[10];if(IFrameSplitOperator.IsNumber(jsData[11]))item.Lead=jsData[11];if(jsData[extendDataIndex])item.ExtendData=jsData[extendDataIndex];item.DateTime=item.Date
|
|
8622
|
+
if(IFrameSplitOperator.IsNumber(stock.high))minuteData.High=stock.high;if(IFrameSplitOperator.IsNumber(stock.low))minuteData.Low=stock.low;if(IFrameSplitOperator.IsNumber(stock.yclose))minuteData.YClose=stock.yclose;if(IFrameSplitOperator.IsNumber(stock.YClearing))minuteData.YClearing=stock.yclearing;if(IFrameSplitOperator.IsNonEmptyArray(stock.minute)){for(var i=0;i<stock.minute.length;++i){var jsData=stock.minute[i];var item=new MinuteData();item.YClearing=minuteData.YClearing;item.YClose=minuteData.YClose;item.Date=jsData[0];item.Time=jsData[1];item.Open=jsData[2];item.High=jsData[3];item.Low=jsData[4];item.Close=jsData[5];item.AvPrice=jsData[6];item.Vol=jsData[7];item.Amount=jsData[8];if(IFrameSplitOperator.IsNumber(jsData[9]))item.Increase=jsData[9];if(IFrameSplitOperator.IsNumber(jsData[10]))item.Risefall=jsData[10];if(IFrameSplitOperator.IsNumber(jsData[11]))item.Lead=jsData[11];if(IFrameSplitOperator.IsNumber(jsData[12]))item.Position=jsData[12];if(jsData[extendDataIndex])item.ExtendData=jsData[extendDataIndex];item.DateTime=item.Date+' '+item.Time;if(IFrameSplitOperator.IsNumber(minuteData.YClose)&&item.Close)item.Increase=(item.Close-minuteData.YClose)/minuteData.YClose*100;//涨幅 (最新价格-昨收)/昨收*100;
|
|
8456
8623
|
if(isFutures&&minuteData.YClearing&&item.Close)item.Increase=(item.Close-minuteData.YClearing)/minuteData.YClearing*100;//涨幅 (最新价格-昨结算价)/昨结算价*100;
|
|
8457
8624
|
minuteData.Data.push(item);}}return minuteData;};MinuteChartContainer.JsonDataToMinuteLineColorData=function(data){if(!data||!data.stock[0])return null;var stockItem=data.stock[0];if(!stockItem.linecolor||!IFrameSplitOperator.IsNonEmptyArray(stockItem.linecolor.data))return null;var aryLineColor=[];for(var i in stockItem.linecolor.data){var item=stockItem.linecolor.data[i];if(!IFrameSplitOperator.IsNumber(item.type)||!IFrameSplitOperator.IsNumber(item.date)||!IFrameSplitOperator.IsNumber(item.start)||!IFrameSplitOperator.IsNumber(item.end)||!item.color)continue;if(item.start>=item.end)continue;var newItem={Type:item.type,Date:item.date,Start:item.start,End:item.end,Color:item.color};if(IFrameSplitOperator.IsPlusNumber(item.linewidth))newItem.LineWidth=item.linewidth;aryLineColor.push(newItem);}return aryLineColor;};//获取最后的数据更新时间
|
|
8458
8625
|
MinuteChartContainer.JsonDataToMinuteLastUpdateTime=function(data){if(!data||!data.stock[0])return null;var stock=data.stock[0];if(!IFrameSplitOperator.IsNumber(stock.date)||!IFrameSplitOperator.IsNumber(stock.time))return null;return{Date:stock.date,Time:stock.time};};MinuteChartContainer.JsonDataToHistoryMinuteLastUpdateTime=function(data){if(!data||!data.updatetime)return null;var item=data.updatetime;if(!IFrameSplitOperator.IsNumber(item.date)||!IFrameSplitOperator.IsNumber(item.time))return null;return{Date:item.date,Time:item.time};};//多日日线数据API 转化成array[];
|
|
@@ -8522,14 +8689,14 @@ var pageSize=this.Frame.GetCurrentPageSize();if(IFrameSplitOperator.IsNumber(pag
|
|
|
8522
8689
|
if(!this.mapEvent.has(JSCHART_EVENT_ID.RECV_TRAIN_MOVE_STEP))return;var item=this.mapEvent.get(JSCHART_EVENT_ID.RECV_TRAIN_MOVE_STEP);if(!item.Callback)return;var data={TrainDataCount:this.TrainDataCount,BuySellData:this.BuySellData,KLine:{Start:{Index:this.TrainInfo.Start.Index,Date:this.TrainInfo.Start.Date},End:{Index:this.TrainInfo.End.Index,Date:this.TrainInfo.End.Date}},LastData:this.TrainInfo.LastData,LastShowData:this.TrainInfo.LastShowData};if(IFrameSplitOperator.IsNumber(this.TrainInfo.Start.Time))data.KLine.Start.Time=this.TrainInfo.Start.Time;if(IFrameSplitOperator.IsNumber(this.TrainInfo.End.Time))data.KLine.End.Time=this.TrainInfo.End.Time;if(description)data.Description=description;if(this.TrainDataCount<=0){data.Symbol=this.Symbol;data.Name=this.Name;}item.Callback(item,data,this);};this.FinishTrainData=function(){JSConsole.Chart.Log('[KLineTrainChartContainer::FinishTrainData] trian end ');};this.Stop=function(){if(this.AutoRunTimer!=null)clearInterval(this.AutoRunTimer);this.AutoRunTimer=null;};this.BuyOrSell=function(obj,bDraw)//{ Price:价格, Vol:数量, Op: 买/卖 0=buy 1=sell, ID:单号 } bDraw是否立即绘制图标
|
|
8523
8690
|
{var kItem=this.TrainInfo.LastShowData;if(!kItem)return false;var buySellPaint=this.ChartPaintEx[0];if(!buySellPaint)return false;var hisData=this.ChartPaint[0].Data;if(!hisData||hisData.Data.length<=0)return false;var index=hisData.Data.length-1;//数据索引
|
|
8524
8691
|
var buyItem={Date:this.TrainInfo.End.Date,Time:this.TrainInfo.End.Time,Price:obj.Price,Vol:obj.Vol,Op:0,ID:obj.ID};if(obj.Op==1)buyItem.Op=1;var key=index;buyItem.Key=key;this.BuySellData.push(buyItem);buySellPaint.AddTradeItem(buyItem);if(bDraw==true)this.Draw();};this.RestartTrain=function(option)// { Symbol:, Period:周期, Right:复权, Train:{ DataCount:, DateTime: } }
|
|
8525
|
-
{JSConsole.Chart.Log('[KLineTrainChartContainer::RestartTrain] option ',option);this.TrainInfo={Start:{},End:{}};this.BuySellData=[];this.KLineSourceData=null;var buySellPaint=this.ChartPaintEx[0];if(buySellPaint){buySellPaint.Data=null;buySellPaint.ClearTradeData();}if(option.Symbol)this.Symbol=option.Symbol;if(IFrameSplitOperator.IsNumber(option.Period))this.Period=option.Period;if(IFrameSplitOperator.IsNumber(option.Right))this.Right=option.Right;if(option.Train){if(option.Train.DataCount>1)this.TrainDataCount=option.Train.DataCount;if(option.Train.DateTime)this.TrainStartDate=option.Train.DateTime;}var symbol=this.Symbol;this.ChangeSymbol(symbol);};this.RecvFlowCapitalData=function(data){if(!data.stock||data.stock.length!=1)return;var stock=data.stock[0];var aryData=new Array();for(var
|
|
8692
|
+
{JSConsole.Chart.Log('[KLineTrainChartContainer::RestartTrain] option ',option);this.TrainInfo={Start:{},End:{}};this.BuySellData=[];this.KLineSourceData=null;var buySellPaint=this.ChartPaintEx[0];if(buySellPaint){buySellPaint.Data=null;buySellPaint.ClearTradeData();}if(option.Symbol)this.Symbol=option.Symbol;if(IFrameSplitOperator.IsNumber(option.Period))this.Period=option.Period;if(IFrameSplitOperator.IsNumber(option.Right))this.Right=option.Right;if(option.Train){if(option.Train.DataCount>1)this.TrainDataCount=option.Train.DataCount;if(option.Train.DateTime)this.TrainStartDate=option.Train.DateTime;}var symbol=this.Symbol;this.ChangeSymbol(symbol);};this.RecvFlowCapitalData=function(data){if(!data.stock||data.stock.length!=1)return;var stock=data.stock[0];var aryData=new Array();for(var _i18 in stock.stockday){var item=stock.stockday[_i18];var indexData=new SingleData();indexData.Date=item.date;var financeData=item.capital;if(!financeData)continue;if(financeData.a>0){indexData.Value=financeData.a;//流通股本(股)
|
|
8526
8693
|
aryData.push(indexData);}}if(ChartData.IsMinutePeriod(this.Period,true))//分钟数据
|
|
8527
|
-
{var aryFixedData=this.SourceData.GetMinuteFittingFinanceData(aryData);for(var
|
|
8694
|
+
{var aryFixedData=this.SourceData.GetMinuteFittingFinanceData(aryData);for(var _i19 in this.SourceData.Data){var item=this.SourceData.Data[_i19];if(!aryFixedData[_i19])continue;item.FlowCapital=aryFixedData[_i19].Value;}var bindData=this.ChartPaint[0].Data;var newBindData=new ChartData();newBindData.Data=this.SourceData.Data;if(ChartData.IsMinutePeriod(bindData.Period,false))//周期数据
|
|
8528
8695
|
{var periodData=newBindData.GetPeriodData(bindData.Period);newBindData.Data=periodData;}bindData.Data=newBindData.Data;var aryFixedData=this.KLineSourceData.GetMinuteFittingFinanceData(aryData);//数据添加到备份数据中
|
|
8529
|
-
for(var
|
|
8696
|
+
for(var _i20 in this.KLineSourceData.Data){var item=this.KLineSourceData.Data[_i20];if(!aryFixedData[_i20])continue;item.FlowCapital=aryFixedData[_i20].Value;}}else{var aryFixedData=this.SourceData.GetFittingFinanceData(aryData);for(var _i21 in this.SourceData.Data){var item=this.SourceData.Data[_i21];if(!aryFixedData[_i21])continue;item.FlowCapital=aryFixedData[_i21].Value;}var bindData=this.ChartPaint[0].Data;var newBindData=new ChartData();newBindData.Data=this.SourceData.Data;if(bindData.Right>0)//复权
|
|
8530
8697
|
{var rightData=newBindData.GetRightData(bindData.Right,{AlgorithmType:this.RightFormula});newBindData.Data=rightData;}if(ChartData.IsDayPeriod(bindData.Period,false))//周期数据
|
|
8531
8698
|
{var periodData=newBindData.GetPeriodData(bindData.Period);newBindData.Data=periodData;}bindData.Data=newBindData.Data;var aryFixedData=this.KLineSourceData.GetFittingFinanceData(aryData);//数据添加到备份数据中
|
|
8532
|
-
for(var
|
|
8699
|
+
for(var _i22 in this.KLineSourceData.Data){var item=this.KLineSourceData.Data[_i22];if(!aryFixedData[_i22])continue;item.FlowCapital=aryFixedData[_i22].Value;}}this.FlowCapitalReady=true;var bDraw=false;for(var i in this.ExtendChartPaint){var item=this.ExtendChartPaint[i];if(item.ClassName=='StockChip'){bDraw=true;break;}}if(bDraw)this.Draw();};this.AutoUpdate();{}}function KLineTrainSimpleChartContainer(uielement,bHScreen){this.newMethod=KLineTrainChartContainer;//派生
|
|
8533
8700
|
this.newMethod(uielement,bHScreen);delete this.newMethod;this.IsHScreen=bHScreen;this.IsZoomLockRight=true;this.RightSpaceCount=0;this.RecvFlowCapitalData=function(data){this.Super_RecvFlowCapitalData(data);};this.BeforeBindMainData=function(funcName){};this.UpdateLastDataIcon=function(){if(!this.ChartPaintEx[0])return;var chart=this.ChartPaintEx[0];chart.LastDataIndex=this.TrainInfo.End.Index;};this.AfterBindMainData=function(funcName){if(!this.ChartPaintEx[0]){this.CreateBuySellPaint();this.ChartPaintEx[0].LastDataDrawType=1;}if(funcName!="Update"){var hisData=this.ChartOperator_Temp_GetHistoryData();if(!hisData)return false;var count=hisData.Data.length;var lEnd=count-this.TrainDataCount-20;var xPointcount=this.Frame.SubFrame[0].Frame.XPointCount;var findIndex=this.GetKDataIndexByDateTime(hisData.Data,this.TrainStartDate);if(findIndex>=0){lEnd=findIndex+1;if(count-lEnd<this.TrainDataCount)this.TrainDataCount=count-lEnd;}var xOffset=lEnd-xPointcount;hisData.DataOffset=xOffset;var index=lEnd-1;var kItem=hisData.Data[index];//最后一个显示数据
|
|
8534
8701
|
this.TrainInfo.LastShowData=kItem;this.TrainInfo.LastData=kItem;//训练起始日期
|
|
8535
8702
|
this.TrainInfo.Start.Index=index;this.TrainInfo.Start.Date=kItem.Date;this.TrainInfo.Start.Time=kItem.Time;//训练结束日期
|
|
@@ -8730,7 +8897,7 @@ this.newMethod(name);delete this.newMethod;this.Script=script;//脚本
|
|
|
8730
8897
|
this.Arguments=[];//参数
|
|
8731
8898
|
this.OutVar=[];//输出数据
|
|
8732
8899
|
this.ApiUrl=g_JSChartResource.PyIndexDomain+'/hq/code';if(args)this.Arguments=args;this.RequestData=function(hqChart,windowIndex,hisData){this.OutVar=[];var self=this;var param={HQChart:hqChart,WindowIndex:windowIndex,HistoryData:hisData};//参数
|
|
8733
|
-
var strParam='';for(var
|
|
8900
|
+
var strParam='';for(var _i23 in this.Arguments){if(strParam.length>0)strParam+=',';var item=this.Arguments[_i23];strParam+='"'+item.Name+'"'+':'+item.Value;}strParam='{'+strParam+'}';var indexParam=JSON.parse(strParam);var data=(0,_stringify2.default)({code:this.Script,//脚本
|
|
8734
8901
|
symbol:param.HQChart.Symbol,//股票代码
|
|
8735
8902
|
period:param.HQChart.Period,//周期 0=日线 1=周线 2=月线 3=年线 4=1分钟 5=5分钟 6=15分钟 7=30分钟 8=60分钟
|
|
8736
8903
|
right:param.HQChart.Right,//复权 0 不复权 1 前复权 2 后复权
|
|
@@ -8746,10 +8913,10 @@ var indexInfo={Name:item.name,Type:item.graph,LineWidth:item.width,Data:bindData
|
|
|
8746
8913
|
param.HQChart.UpdataDataoffset();//更新数据偏移
|
|
8747
8914
|
param.HQChart.UpdateFrameMaxMin();//调整坐标最大 最小值
|
|
8748
8915
|
param.HQChart.Draw();};this.BindData=function(hqChart,windowIndex,hisData){hqChart.DeleteIndexPaint(windowIndex);//清空指标图形
|
|
8749
|
-
for(var
|
|
8750
|
-
this.CreateColorStock(hqChart,windowIndex,
|
|
8916
|
+
for(var _i24 in this.OutVar){var _item8=this.OutVar[_i24];switch(_item8.Type){case'line':this.CreateLine(hqChart,windowIndex,_item8,_i24);break;case'colorstick'://上下柱子
|
|
8917
|
+
this.CreateColorStock(hqChart,windowIndex,_item8,_i24);break;}}var titleIndex=windowIndex+1;hqChart.TitlePaint[titleIndex].Title=this.Name;//这是指标名称
|
|
8751
8918
|
var indexParam='';//指标参数
|
|
8752
|
-
for(var
|
|
8919
|
+
for(var _i25 in this.Arguments){var _item9=this.Arguments[_i25];if(indexParam.length>0)indexParam+=',';indexParam+=_item9.Value.toString();}if(indexParam.length>0)hqChart.TitlePaint[titleIndex].Title=this.Name+'('+indexParam+')';return true;};this.CreateLine=function(hqChart,windowIndex,varItem,id){var line=new ChartLine();line.Canvas=hqChart.Canvas;line.DrawType=1;line.Name=varItem.Name;line.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;line.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(varItem.Color)line.Color=varItem.Color;else line.Color=this.GetDefaultColor(id);if(varItem.LineWidth>0)line.LineWidth=varItem.LineWidth;if(varItem.IsShow==false)line.IsShow=false;var titleIndex=windowIndex+1;line.Data.Data=varItem.Data;hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(line.Data,varItem.Name,line.Color);hqChart.ChartPaint.push(line);};this.CreateColorStock=function(hqChart,windowIndex,varItem,id){var chart=new ChartMACD();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;var titleIndex=windowIndex+1;chart.Data.Data=varItem.Data;hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(chart.Data,varItem.Name,this.GetDefaultColor(id));hqChart.ChartPaint.push(chart);};//给一个默认的颜色
|
|
8753
8920
|
this.GetDefaultColor=function(id){var COLOR_ARRAY=["rgb(255,174,0)","rgb(25,199,255)","rgb(175,95,162)","rgb(236,105,65)","rgb(68,114,196)","rgb(229,0,79)","rgb(0,128,255)","rgb(252,96,154)","rgb(42,230,215)","rgb(24,71,178)"];var number=parseInt(id);return COLOR_ARRAY[number%(COLOR_ARRAY.length-1)];};}/*
|
|
8754
8921
|
json格式数据指标 用来显示本地数据
|
|
8755
8922
|
*/function JsonDataIndex(name,script,args,option){this.newMethod=PyScriptIndex;//派生
|
|
@@ -9598,7 +9765,7 @@ this.ParseStatement=function(){var statement=void 0;switch(this.LookAhead.Type){
|
|
|
9598
9765
|
this.ParseEmptyStatement=function(){var node=this.CreateNode();this.Expect(';');return this.Finalize(node,this.Node.EmptyStatement());};//https://tc39.github.io/ecma262/#sec-labelled-statements
|
|
9599
9766
|
this.ParseLabelledStatement=function(){var node=this.CreateNode();var expr=this.ParseExpression();this.ConsumeSemicolon();var statement=new this.Node.ExpressionStatement(expr);return this.Finalize(node,statement);};// https://tc39.github.io/ecma262/#sec-comma-operator
|
|
9600
9767
|
this.ParseExpression=function(){var startToken=this.LookAhead;var expr=this.IsolateCoverGrammar(this.ParseAssignmentExpression);if(this.Match(',')){var expressions=[];expressions.push(expr);while(this.LookAhead.Type!=2/*EOF*/){if(!this.Match(','))break;this.NextToken();expressions.push(this.IsolateCoverGrammar(this.ParseAssignmentExpression));}expr=this.Finalize(this.StartNode(startToken),this.Node.SequenceExpression(expressions));}return expr;};this.ParseAssignmentExpression=function(){var expr=void 0;var startToken=this.LookAhead;var token=startToken;expr=this.ParseConditionalExpression();if(this.MatchAssign()){if(!this.Context.IsAssignmentTarget){var marker=expr.Marker;this.ThrowUnexpectedError(marker.Index,marker.Line,marker.Column,Messages.InvalidLHSInAssignment);}if(!this.Match('=')&&!this.Match(':')){this.Context.IsAssignmentTarget=false;this.Context.IsBindingElement=false;}else{this.ReinterpretExpressionAsPattern(expr);}token=this.NextToken();var operator=token.Value;var right=this.IsolateCoverGrammar(this.ParseAssignmentExpression);expr=this.Finalize(this.StartNode(startToken),this.Node.AssignmentExpression(operator,expr,right));this.Context.FirstCoverInitializedNameError=null;}return expr;};this.ParseConditionalExpression=function(){var startToken=this.LookAhead;var expr=this.InheritCoverGrammar(this.ParseBinaryExpression);return expr;};this.ParseBinaryExpression=function(){var startToken=this.LookAhead;var expr=this.InheritCoverGrammar(this.ParseExponentiationExpression);var token=this.LookAhead;var prec=this.BinaryPrecedence(token);if(prec>0){this.NextToken();this.Context.IsAssignmentTarget=false;this.Context.IsBindingElement=false;var markers=[startToken,this.LookAhead];var left=expr;var right=this.IsolateCoverGrammar(this.ParseExponentiationExpression);var stack=[left,token.Value,right];var precedences=[prec];while(true){prec=this.BinaryPrecedence(this.LookAhead);if(prec<=0)break;while(stack.length>2&&prec<=precedences[precedences.length-1]){right=stack.pop();var operator=stack.pop();precedences.pop();left=stack.pop();markers.pop();var node=this.StartNode(markers[markers.length-1]);stack.push(this.Finalize(node,this.Node.BinaryExpression(operator,left,right)));}//Shift
|
|
9601
|
-
stack.push(this.NextToken().Value);precedences.push(prec);markers.push(this.LookAhead);stack.push(this.IsolateCoverGrammar(this.ParseExponentiationExpression));}var
|
|
9768
|
+
stack.push(this.NextToken().Value);precedences.push(prec);markers.push(this.LookAhead);stack.push(this.IsolateCoverGrammar(this.ParseExponentiationExpression));}var _i26=stack.length-1;expr=stack[_i26];var lastMarker=markers.pop();while(_i26>1){var marker=markers.pop();var lastLineStart=lastMarker&&lastMarker.LineStart;var _node=this.StartNode(marker,lastLineStart);var _operator=stack[_i26-1];expr=this.Finalize(_node,this.Node.BinaryExpression(_operator,stack[_i26-2],expr));_i26-=2;lastMarker=marker;}}return expr;};this.ParseExponentiationExpression=function(){var startToken=this.LookAhead;var expr=this.InheritCoverGrammar(this.ParseUnaryExpression);return expr;};this.ParseUnaryExpression=function(){var expr=void 0;if(this.Match('+')||this.Match('-')){var node=this.StartNode(this.LookAhead);var token=this.NextToken();expr=this.InheritCoverGrammar(this.ParseUnaryExpression);expr=this.Finalize(node,this.Node.UnaryExpression(token.Value,expr));this.Context.IsAssignmentTarget=false;this.Context.IsBindingElement=false;}else{expr=this.ParseUpdateExpression();}return expr;};// https://tc39.github.io/ecma262/#sec-update-expressions
|
|
9602
9769
|
this.ParseUpdateExpression=function(){var expr=void 0;var startToken=this.LookAhead;expr=this.InheritCoverGrammar(this.ParseLeftHandSideExpressionAllowCall);return expr;};this.ParseLeftHandSideExpressionAllowCall=function(){var startToken=this.LookAhead;var expr=void 0;expr=this.InheritCoverGrammar(this.ParsePrimaryExpression);while(true){if(this.Match('.')){this.Context.IsBindingElement=false;this.Context.IsAssignmentTarget=true;this.Expect('.');var property=this.ParseMemberIdentifierName();expr=this.Finalize(this.StartNode(startToken),this.Node.StaticMemberExpression(expr,property,startToken));}else if(this.Match('(')){this.Context.IsBindingElement=false;this.Context.IsAssignmentTarget=false;var args=this.ParseArguments();//解析 调用参数
|
|
9603
9770
|
expr=this.Finalize(this.StartNode(startToken),this.Node.CallExpression(expr,args,startToken));}else{break;}}return expr;};/*
|
|
9604
9771
|
BooleanLiteral = 1,
|
|
@@ -9627,77 +9794,77 @@ this.LastMarker.Index=this.StartMarker.Index;this.LastMarker.Line=this.StartMark
|
|
|
9627
9794
|
//相加
|
|
9628
9795
|
this.Add=function(data,data2){var isNumber=typeof data=='number';var isNumber2=typeof data2=='number';//单数值相加
|
|
9629
9796
|
if(isNumber&&isNumber2)return data+data2;//都是数组相加
|
|
9630
|
-
var result=[];if(!isNumber&&!isNumber2){var count=Math.max(data.length,data2.length);for(var
|
|
9631
|
-
if(
|
|
9632
|
-
var value=void 0;var aryData=void 0;if(isNumber){value=data;aryData=data2;}else{value=data2;aryData=data;}for(var
|
|
9797
|
+
var result=[];if(!isNumber&&!isNumber2){var count=Math.max(data.length,data2.length);for(var _i27=0;_i27<count;++_i27){result[_i27]=null;//初始化
|
|
9798
|
+
if(_i27<data.length&&_i27<data2.length){if(this.IsNumber(data[_i27])&&this.IsNumber(data2[_i27]))result[_i27]=data[_i27]+data2[_i27];}}return result;}//单数据和数组相加
|
|
9799
|
+
var value=void 0;var aryData=void 0;if(isNumber){value=data;aryData=data2;}else{value=data2;aryData=data;}for(var _i28 in aryData){result[_i28]=null;if(this.IsNumber(aryData[_i28])&&this.IsNumber(value))result[_i28]=value+aryData[_i28];}return result;};//相减
|
|
9633
9800
|
this.Subtract=function(data,data2){var isNumber=typeof data=='number';var isNumber2=typeof data2=='number';//单数值相减
|
|
9634
9801
|
if(isNumber&&isNumber2)return data-data2;//都是数组相减
|
|
9635
|
-
var result=[];if(!isNumber&&!isNumber2){var count=Math.max(data.length,data2.length);for(var
|
|
9636
|
-
if(
|
|
9637
|
-
{for(var
|
|
9638
|
-
{for(var
|
|
9802
|
+
var result=[];if(!isNumber&&!isNumber2){var count=Math.max(data.length,data2.length);for(var _i29=0;_i29<count;++_i29){result[_i29]=null;//初始化
|
|
9803
|
+
if(_i29<data.length&&_i29<data2.length){if(this.IsNumber(data[_i29])&&this.IsNumber(data2[_i29]))result[_i29]=data[_i29]-data2[_i29];}}return result;}if(isNumber)//单数据-数组
|
|
9804
|
+
{for(var _i30 in data2){result[_i30]=null;if(this.IsNumber(data)&&this.IsNumber(data2[_i30]))result[_i30]=data-data2[_i30];}}else//数组-单数据
|
|
9805
|
+
{for(var _i31 in data){result[_i31]=null;if(this.IsNumber(data[_i31])&&this.IsNumber(data2))result[_i31]=data[_i31]-data2;}}return result;};//相乘
|
|
9639
9806
|
this.Multiply=function(data,data2){var isNumber=typeof data=='number';var isNumber2=typeof data2=='number';//单数值相乘
|
|
9640
9807
|
if(isNumber&&isNumber2)return data*data2;//都是数组相乘
|
|
9641
|
-
var result=[];if(!isNumber&&!isNumber2){var count=Math.max(data.length,data2.length);for(var
|
|
9642
|
-
if(
|
|
9643
|
-
var value=void 0;var aryData=void 0;if(isNumber){value=data;aryData=data2;}else{value=data2;aryData=data;}for(var
|
|
9808
|
+
var result=[];if(!isNumber&&!isNumber2){var count=Math.max(data.length,data2.length);for(var _i32=0;_i32<count;++_i32){result[_i32]=null;//初始化
|
|
9809
|
+
if(_i32<data.length&&_i32<data2.length){if(this.IsNumber(data[_i32])&&this.IsNumber(data2[_i32]))result[_i32]=data[_i32]*data2[_i32];}}return result;}//单数据和数组相乘
|
|
9810
|
+
var value=void 0;var aryData=void 0;if(isNumber){value=data;aryData=data2;}else{value=data2;aryData=data;}for(var _i33 in aryData){result[_i33]=null;if(this.IsNumber(aryData[_i33])&&this.IsNumber(value))result[_i33]=value*aryData[_i33];}return result;};//相除
|
|
9644
9811
|
this.Divide=function(data,data2){var isNumber=typeof data=='number';var isNumber2=typeof data2=='number';//单数值相除
|
|
9645
9812
|
if(isNumber&&isNumber2){if(data2==0)return null;//除0判断
|
|
9646
9813
|
return data/data2;}//都是数组相除
|
|
9647
|
-
var result=[];if(!isNumber&&!isNumber2){var count=Math.max(data.length,data2.length);for(var
|
|
9648
|
-
if(
|
|
9649
|
-
{for(var
|
|
9650
|
-
{for(var
|
|
9814
|
+
var result=[];if(!isNumber&&!isNumber2){var count=Math.max(data.length,data2.length);for(var _i34=0;_i34<count;++_i34){result[_i34]=null;//初始化
|
|
9815
|
+
if(_i34<data.length&&_i34<data2.length){if(this.IsNumber(data[_i34])&&this.IsDivideNumber(data2[_i34]))result[_i34]=data[_i34]/data2[_i34];}}return result;}if(isNumber)//单数据-数组
|
|
9816
|
+
{for(var _i35 in data2){result[_i35]=null;if(this.IsNumber(data)&&this.IsDivideNumber(data2[_i35]))result[_i35]=data/data2[_i35];}}else//数组-单数据
|
|
9817
|
+
{for(var _i36 in data){result[_i36]=null;if(this.IsNumber(data[_i36])&&this.IsDivideNumber(data2))result[_i36]=data[_i36]/data2;}}return result;};//大于
|
|
9651
9818
|
this.GT=function(data,data2){var isNumber=IFrameSplitOperator.IsNumber(data);var isNumber2=IFrameSplitOperator.IsNumber(data2);//单数值比较
|
|
9652
9819
|
if(isNumber&&isNumber2)return data>data2?1:0;//都是数组比较
|
|
9653
|
-
var result=[];if(Array.isArray(data)&&Array.isArray(data2)){var count=Math.max(data.length,data2.length);for(var
|
|
9654
|
-
if(
|
|
9655
|
-
{for(var
|
|
9656
|
-
{for(var
|
|
9820
|
+
var result=[];if(Array.isArray(data)&&Array.isArray(data2)){var count=Math.max(data.length,data2.length);for(var _i37=0;_i37<count;++_i37){result[_i37]=null;//初始化
|
|
9821
|
+
if(_i37<data.length&&_i37<data2.length){if(!IFrameSplitOperator.IsVaild(data[_i37]))continue;if(!IFrameSplitOperator.IsVaild(data2[_i37]))continue;if(!isNaN(data[_i37])&&!isNaN(data2[_i37]))result[_i37]=data[_i37]>data2[_i37]?1:0;}}return result;}if(isNumber&&Array.isArray(data2))//单数据-数组
|
|
9822
|
+
{for(var _i38 in data2){result[_i38]=null;if(!IFrameSplitOperator.IsVaild(data))continue;if(!IFrameSplitOperator.IsVaild(data2[_i38]))continue;if(!isNaN(data)&&!isNaN(data2[_i38]))result[_i38]=data>data2[_i38]?1:0;}}else if(isNumber2&&Array.isArray(data))//数组-单数据
|
|
9823
|
+
{for(var _i39 in data){result[_i39]=null;if(!IFrameSplitOperator.IsVaild(data[_i39]))continue;if(!IFrameSplitOperator.IsVaild(data2))continue;if(!isNaN(data[_i39])&&!isNaN(data2))result[_i39]=data[_i39]>data2?1:0;}}return result;};//大于等于
|
|
9657
9824
|
this.GTE=function(data,data2){var isNumber=IFrameSplitOperator.IsNumber(data);var isNumber2=IFrameSplitOperator.IsNumber(data2);//单数值比较
|
|
9658
9825
|
if(isNumber&&isNumber2)return data>=data2?1:0;//都是数组比较
|
|
9659
|
-
var result=[];if(Array.isArray(data)&&Array.isArray(data2)){var count=Math.max(data.length,data2.length);for(var
|
|
9660
|
-
if(
|
|
9661
|
-
{for(var
|
|
9662
|
-
{for(var
|
|
9826
|
+
var result=[];if(Array.isArray(data)&&Array.isArray(data2)){var count=Math.max(data.length,data2.length);for(var _i40=0;_i40<count;++_i40){result[_i40]=null;//初始化
|
|
9827
|
+
if(_i40<data.length&&_i40<data2.length){if(!IFrameSplitOperator.IsVaild(data[_i40]))continue;if(!IFrameSplitOperator.IsVaild(data2[_i40]))continue;result[_i40]=data[_i40]>=data2[_i40]?1:0;}}return result;}if(isNumber&&Array.isArray(data2))//单数据-数组
|
|
9828
|
+
{for(var _i41 in data2){result[_i41]=null;if(!IFrameSplitOperator.IsVaild(data))continue;if(!IFrameSplitOperator.IsVaild(data2[_i41]))continue;result[_i41]=data>=data2[_i41]?1:0;}}else if(isNumber2&&Array.isArray(data))//数组-单数据
|
|
9829
|
+
{for(var _i42 in data){result[_i42]=null;if(!IFrameSplitOperator.IsVaild(data[_i42]))continue;if(!IFrameSplitOperator.IsVaild(data2))continue;result[_i42]=data[_i42]>=data2?1:0;}}return result;};//小于
|
|
9663
9830
|
this.LT=function(data,data2){var isNumber=IFrameSplitOperator.IsNumber(data);var isNumber2=IFrameSplitOperator.IsNumber(data2);//单数值比较
|
|
9664
9831
|
if(isNumber&&isNumber2)return data<data2?1:0;//都是数组比较
|
|
9665
|
-
var result=[];if(Array.isArray(data)&&Array.isArray(data2)){var count=Math.max(data.length,data2.length);for(var
|
|
9666
|
-
if(
|
|
9667
|
-
{for(var
|
|
9668
|
-
{for(var
|
|
9832
|
+
var result=[];if(Array.isArray(data)&&Array.isArray(data2)){var count=Math.max(data.length,data2.length);for(var _i43=0;_i43<count;++_i43){result[_i43]=null;//初始化
|
|
9833
|
+
if(_i43<data.length&&_i43<data2.length){if(!IFrameSplitOperator.IsVaild(data[_i43]))continue;if(!IFrameSplitOperator.IsVaild(data2[_i43]))continue;result[_i43]=data[_i43]<data2[_i43]?1:0;}}return result;}if(isNumber&&Array.isArray(data2))//单数据-数组
|
|
9834
|
+
{for(var _i44 in data2){result[_i44]=null;if(!IFrameSplitOperator.IsVaild(data))continue;if(!IFrameSplitOperator.IsVaild(data2[_i44]))continue;result[_i44]=data<data2[_i44]?1:0;}}else if(isNumber2&&Array.isArray(data))//数组-单数据
|
|
9835
|
+
{for(var _i45 in data){result[_i45]=null;if(!IFrameSplitOperator.IsVaild(data[_i45]))continue;if(!IFrameSplitOperator.IsVaild(data2))continue;result[_i45]=data[_i45]<data2?1:0;}}return result;};//小于等于
|
|
9669
9836
|
this.LTE=function(data,data2){var isNumber=IFrameSplitOperator.IsNumber(data);var isNumber2=IFrameSplitOperator.IsNumber(data2);//单数值比较
|
|
9670
9837
|
if(isNumber&&isNumber2)return data>=data2?1:0;//都是数组比较
|
|
9671
|
-
var result=[];if(Array.isArray(data)&&Array.isArray(data2)){var count=Math.max(data.length,data2.length);for(var
|
|
9672
|
-
if(
|
|
9673
|
-
{for(var
|
|
9674
|
-
{for(var
|
|
9838
|
+
var result=[];if(Array.isArray(data)&&Array.isArray(data2)){var count=Math.max(data.length,data2.length);for(var _i46=0;_i46<count;++_i46){result[_i46]=null;//初始化
|
|
9839
|
+
if(_i46<data.length&&_i46<data2.length){if(!IFrameSplitOperator.IsVaild(data[_i46]))continue;if(!IFrameSplitOperator.IsVaild(data2[_i46]))continue;result[_i46]=data[_i46]<=data2[_i46]?1:0;}}return result;}if(isNumber&&Array.isArray(data2))//单数据-数组
|
|
9840
|
+
{for(var _i47 in data2){result[_i47]=null;if(!IFrameSplitOperator.IsVaild(data))continue;if(!IFrameSplitOperator.IsVaild(data2[_i47]))continue;result[_i47]=data<=data2[_i47]?1:0;}}else if(isNumber2&&Array.isArray(data))//数组-单数据
|
|
9841
|
+
{for(var _i48 in data){result[_i48]=null;if(!IFrameSplitOperator.IsVaild(data[_i48]))continue;if(!IFrameSplitOperator.IsVaild(data2))continue;result[_i48]=data[_i48]<=data2?1:0;}}return result;};//等于
|
|
9675
9842
|
this.EQ=function(data,data2){var isNumber=IFrameSplitOperator.IsNumber(data);var isNumber2=IFrameSplitOperator.IsNumber(data2);//单数值比较
|
|
9676
9843
|
if(isNumber&&isNumber2)return data==data2?1:0;//都是数组比较
|
|
9677
|
-
var result=[];if(Array.isArray(data)&&Array.isArray(data2)){var count=Math.max(data.length,data2.length);for(var
|
|
9678
|
-
if(
|
|
9679
|
-
{for(var
|
|
9680
|
-
{for(var
|
|
9844
|
+
var result=[];if(Array.isArray(data)&&Array.isArray(data2)){var count=Math.max(data.length,data2.length);for(var _i49=0;_i49<count;++_i49){result[_i49]=null;//初始化
|
|
9845
|
+
if(_i49<data.length&&_i49<data2.length){if(!isNaN(data[_i49])&&!isNaN(data2[_i49]))result[_i49]=data[_i49]==data2[_i49]?1:0;}}return result;}if(isNumber&&Array.isArray(data2))//单数据-数组
|
|
9846
|
+
{for(var _i50 in data2){result[_i50]=null;if(!isNaN(data)&&!isNaN(data2[_i50]))result[_i50]=data==data2[_i50]?1:0;}}else if(isNumber2&&Array.isArray(data))//数组-单数据
|
|
9847
|
+
{for(var _i51 in data){result[_i51]=null;if(!isNaN(data[_i51])&&!isNaN(data2))result[_i51]=data[_i51]==data2?1:0;}}return result;};//不等于
|
|
9681
9848
|
this.NEQ=function(data,data2){var isNumber=IFrameSplitOperator.IsNumber(data);var isNumber2=IFrameSplitOperator.IsNumber(data2);//单数值比较
|
|
9682
9849
|
if(isNumber&&isNumber2)return data!=data2?1:0;//都是数组比较
|
|
9683
|
-
var result=[];if(Array.isArray(data)&&Array.isArray(data2)){var count=Math.max(data.length,data2.length);for(var
|
|
9684
|
-
if(
|
|
9685
|
-
{for(var
|
|
9686
|
-
{for(var
|
|
9850
|
+
var result=[];if(Array.isArray(data)&&Array.isArray(data2)){var count=Math.max(data.length,data2.length);for(var _i52=0;_i52<count;++_i52){result[_i52]=null;//初始化
|
|
9851
|
+
if(_i52<data.length&&_i52<data2.length){if(!isNaN(data[_i52])&&!isNaN(data2[_i52]))result[_i52]=data[_i52]!=data2[_i52]?1:0;}}return result;}if(isNumber&&Array.isArray(data2))//单数据-数组
|
|
9852
|
+
{for(var _i53 in data2){result[_i53]=null;if(!isNaN(data)&&!isNaN(data2[_i53]))result[_i53]=data!=data2[_i53]?1:0;}}else if(isNumber2&&Array.isArray(data))//数组-单数据
|
|
9853
|
+
{for(var _i54 in data){result[_i54]=null;if(!isNaN(data[_i54])&&!isNaN(data2))result[_i54]=data[_i54]!=data2?1:0;}}return result;};//AND &&
|
|
9687
9854
|
this.And=function(data,data2){var isNumber=typeof data=='number';var isNumber2=typeof data2=='number';//单数值 &&
|
|
9688
9855
|
if(isNumber&&isNumber2)return data&&data2?1:0;//都是数组 &&
|
|
9689
|
-
var result=[];if(!isNumber&&!isNumber2){var count=Math.max(data.length,data2.length);for(var
|
|
9690
|
-
if(
|
|
9691
|
-
{for(var
|
|
9692
|
-
{for(var
|
|
9856
|
+
var result=[];if(!isNumber&&!isNumber2){var count=Math.max(data.length,data2.length);for(var _i55=0;_i55<count;++_i55){result[_i55]=null;//初始化
|
|
9857
|
+
if(_i55<data.length&&_i55<data2.length){if(!isNaN(data[_i55])&&!isNaN(data2[_i55]))result[_i55]=data[_i55]&&data2[_i55]?1:0;}}return result;}if(isNumber)//单数据-数组
|
|
9858
|
+
{for(var _i56 in data2){result[_i56]=null;if(!isNaN(data)&&!isNaN(data2[_i56]))result[_i56]=data&&data2[_i56]?1:0;}}else//数组-单数据
|
|
9859
|
+
{for(var _i57 in data){result[_i57]=null;if(!isNaN(data[_i57])&&!isNaN(data2))result[_i57]=data[_i57]&&data2?1:0;}}return result;};//OR ||
|
|
9693
9860
|
this.Or=function(data,data2){var isNumber=typeof data=='number';var isNumber2=typeof data2=='number';//单数值 &&
|
|
9694
9861
|
if(isNumber&&isNumber2)return data||data2?1:0;//都是数组 &&
|
|
9695
|
-
var result=[];if(!isNumber&&!isNumber2){var count=Math.max(data.length,data2.length);for(var
|
|
9696
|
-
if(
|
|
9697
|
-
{for(var
|
|
9698
|
-
{for(var
|
|
9862
|
+
var result=[];if(!isNumber&&!isNumber2){var count=Math.max(data.length,data2.length);for(var _i58=0;_i58<count;++_i58){result[_i58]=null;//初始化
|
|
9863
|
+
if(_i58<data.length&&_i58<data2.length){if(!isNaN(data[_i58])&&!isNaN(data2[_i58]))result[_i58]=data[_i58]||data2[_i58]?1:0;}}return result;}if(isNumber)//单数据-数组
|
|
9864
|
+
{for(var _i59 in data2){result[_i59]=null;if(!isNaN(data)&&!isNaN(data2[_i59]))result[_i59]=data||data2[_i59]?1:0;}}else//数组-单数据
|
|
9865
|
+
{for(var _i60 in data){result[_i60]=null;if(!isNaN(data[_i60])&&!isNaN(data2))result[_i60]=data[_i60]||data2?1:0;}}return result;};this.IF=function(data,trueData,falseData){var isNumber=this.IsNumber(data);var isNumber2=this.IsNumber(trueData);var isNumber3=this.IsNumber(falseData);var isArray2=Array.isArray(trueData);var isArray3=Array.isArray(falseData);//单数值
|
|
9699
9866
|
if(isNumber){if(isNumber2&&isNumber3)return data?trueData:falseData;return data?trueData:falseData;}//都是数组
|
|
9700
|
-
var result=[];for(var
|
|
9867
|
+
var result=[];for(var _i61 in data){if(data[_i61]){if(isNumber2)result[_i61]=trueData;else if(isArray2)result[_i61]=trueData[_i61];else result[_i61]=null;}else{if(isNumber3)result[_i61]=falseData;else if(isArray3)result[_i61]=falseData[_i61];else result[_i61]=null;}}return result;};/*
|
|
9701
9868
|
根据条件求不同的值,同IF判断相反.
|
|
9702
9869
|
用法: IFN(X,A,B)若X不为0则返回B,否则返回A
|
|
9703
9870
|
例如: IFN(CLOSE>OPEN,HIGH,LOW)表示该周期收阴则返回最高值,否则返回最低值
|
|
@@ -9708,35 +9875,35 @@ var result=[];for(var _i63 in data){if(data[_i63]){if(isNumber2)result[_i63]=tru
|
|
|
9708
9875
|
//例如: REF(CLOSE,BARSCOUNT(C)-1)表示第二根K线的收盘价.
|
|
9709
9876
|
this.REF=function(data,n){var result=[];if(typeof n=='number'){if(IFrameSplitOperator.IsNumber(data))//单数值
|
|
9710
9877
|
{if(n<0)return result;var kData=this.SymbolData.Data.Data;if(!kData||kData.length<=0)return result;var count=kData.length;for(var i=n;i<count;++i){result[i]=data;}}else{if(data.length<=0)return result;if(n>=data.length)return result;result=data.slice(0,data.length-n);//平滑处理
|
|
9711
|
-
var firstData=data[0];for(var
|
|
9712
|
-
{for(var
|
|
9878
|
+
var firstData=data[0];for(var _i62=0;_i62<n;++_i62){result.unshift(firstData);}}}else//n 为数组的情况
|
|
9879
|
+
{for(var _i63=0;_i63<data.length;++_i63){result[_i63]=null;if(_i63>=n.length)continue;var value=n[_i63];if(value>=0&&value<=_i63)result[_i63]=data[_i63-value];else if(_i63)result[_i63]=result[_i63-1];else result[_i63]=data[_i63];}}return result;};//引用若干周期前的数据(未作平滑处理).
|
|
9713
9880
|
//用法: REFV(X,A),引用A周期前的X值.A可以是变量.
|
|
9714
9881
|
//平滑处理:当引用不到数据时进行的操作.
|
|
9715
9882
|
//例如: REFV(CLOSE,BARSCOUNT(C)-1)表示第二根K线的收盘价.
|
|
9716
|
-
this.REFV=function(data,n){var result=[];if(typeof n=='number'){if(data.length<=0)return result;if(n>=data.length)return result;result=data.slice(0,data.length-n);for(var
|
|
9883
|
+
this.REFV=function(data,n){var result=[];if(typeof n=='number'){if(data.length<=0)return result;if(n>=data.length)return result;result=data.slice(0,data.length-n);for(var _i64=0;_i64<n;++_i64){//不作平滑处理
|
|
9717
9884
|
result.unshift(null);}}else//n 为数组的情况
|
|
9718
|
-
{for(var
|
|
9885
|
+
{for(var _i65=0;_i65<data.length;++_i65){result[_i65]=null;if(_i65>=n.length)continue;var value=n[_i65];if(value>=0&&value<=_i65)result[_i65]=data[_i65-value];}}return result;};//属于未来函数,引用若干周期后的数据(平滑处理).
|
|
9719
9886
|
//用法: REFX(X,A),引用A周期后的X值.A可以是变量.
|
|
9720
9887
|
//平滑处理:当引用不到数据时进行的操作.此函数中,平滑时使用上一个周期的引用值.
|
|
9721
9888
|
//例如: TT:=IF(C>O,1,2);
|
|
9722
9889
|
// REFX(CLOSE,TT);表示阳线引用下一周期的收盘价,阴线引用日后第二周期的收盘价.
|
|
9723
9890
|
this.REFX=function(data,n){var result=[];if(typeof n=='number'){if(data.length<=0)return result;if(n>=data.length){if(data.length>0)return data[data.length-1];//取最后一个数据
|
|
9724
9891
|
return result;}result=data.slice(n,data.length);//平滑处理
|
|
9725
|
-
var lastData=data[data.length-1];for(var
|
|
9726
|
-
{var dataCount=data.length;for(var
|
|
9892
|
+
var lastData=data[data.length-1];for(var _i66=0;_i66<n;++_i66){result.push(lastData);}}else//n 为数组的情况
|
|
9893
|
+
{var dataCount=data.length;for(var _i67=0;_i67<data.length;++_i67){result[_i67]=null;if(_i67>=n.length)continue;var value=n[_i67];if(value>=0&&value+_i67<dataCount)result[_i67]=data[_i67+value];else if(_i67)result[_i67]=result[_i67-1];else result[_i67]=data[_i67];}}return result;};//属于未来函数,引用若干周期后的数据(未作平滑处理).
|
|
9727
9894
|
//用法:REFXV(X,A),引用A周期后的X值.A可以是变量.
|
|
9728
9895
|
//平滑处理:当引用不到数据时进行的操作.
|
|
9729
9896
|
//例如: REFXV(CLOSE,1)表示下一周期的收盘价,在日线上就是明天收盘价
|
|
9730
9897
|
this.REFXV=function(data,n){var result=[];if(typeof n=='number'){if(data.length<=0)return result;if(n>=data.length)return result;result=data.slice(n,data.length);//平滑处理
|
|
9731
|
-
for(var
|
|
9732
|
-
{var dataCount=data.length;for(var
|
|
9898
|
+
for(var _i68=0;_i68<n;++_i68){result.push(null);}}else//n 为数组的情况
|
|
9899
|
+
{var dataCount=data.length;for(var _i69=0;_i69<data.length;++_i69){result[_i69]=null;if(_i69>=n.length)continue;var value=n[_i69];if(value>=0&&value+_i69<dataCount)result[_i69]=data[_i69+value];}}return result;};//求最大值.
|
|
9733
9900
|
//用法:MAX(A,B,C,D ..... ) 返回A,B,C,D ..... 中的较大值
|
|
9734
9901
|
//例如: MAX(CLOSE-OPEN,0)表示若收盘价大于开盘价返回它们的差值,否则返回0
|
|
9735
9902
|
this.MAX=function(args,node){if(args.length==0)this.ThrowUnexpectedNode(node,'MAX() Error: 参数个数不能为0');if(args.length==1)return args[0];var aryData=[],aryNumber=[];for(var i in args){var item=args[i];if(IFrameSplitOperator.IsNumber(item))aryNumber.push(item);else if(Array.isArray(item))aryData.push(item);}var maxNumber=null;if(aryNumber.length>0){maxNumber=aryNumber[0];for(var i=1;i<aryNumber.length;++i){maxNumber=Math.max(maxNumber,aryNumber[i]);}}var maxAryData=null;if(aryData.length>0){maxAryData=aryData[0].slice(0);for(var i=1;i<aryData.length;++i){var dataItem=aryData[i];for(var j in dataItem){var maxItem=maxAryData[j];var item=dataItem[j];if(!IFrameSplitOperator.IsNumber(maxItem))continue;if(!IFrameSplitOperator.IsNumber(item)){maxAryData[j]=null;continue;}maxAryData[j]=Math.max(maxItem,item);}}}if(maxAryData==null&&maxNumber!=null)return maxNumber;if(maxAryData&&maxNumber==null)return maxAryData;for(var i in maxAryData){if(!IFrameSplitOperator.IsNumber(maxAryData[i]))continue;maxAryData[i]=Math.max(maxAryData[i],maxNumber);}return maxAryData;};//求最小值.
|
|
9736
9903
|
//用法:MIN(A,B, C, D .....)返回A,B, C ,D ......中的较小值
|
|
9737
9904
|
//例如:MIN(CLOSE,OPEN)返回开盘价和收盘价中的较小值
|
|
9738
9905
|
this.MIN=function(args,node){if(args.length==0)this.ThrowUnexpectedNode(node,'MIN() Error: 参数个数不能为0');if(args.length==1)return args[0];var aryData=[],aryNumber=[];for(var i in args){var item=args[i];if(IFrameSplitOperator.IsNumber(item))aryNumber.push(item);else if(Array.isArray(item))aryData.push(item);}var minNumber=null;if(aryNumber.length>0){minNumber=aryNumber[0];for(var i=1;i<aryNumber.length;++i){minNumber=Math.min(minNumber,aryNumber[i]);}}var minAryData=null;if(aryData.length>0){minAryData=aryData[0].slice(0);for(var i=1;i<aryData.length;++i){var dataItem=aryData[i];for(var j in dataItem){var minItem=minAryData[j];var item=dataItem[j];if(!IFrameSplitOperator.IsNumber(minItem))continue;if(!IFrameSplitOperator.IsNumber(item)){minAryData[j]=null;continue;}minAryData[j]=Math.min(minItem,item);}}}if(minAryData==null&&minNumber!=null)return minNumber;if(minAryData&&minNumber==null)return minAryData;for(var i in minAryData){if(!IFrameSplitOperator.IsNumber(minAryData[i]))continue;minAryData[i]=Math.min(minAryData[i],minNumber);}return minAryData;};//取正数
|
|
9739
|
-
this.ABS=function(data){var result=[];for(var
|
|
9906
|
+
this.ABS=function(data){var result=[];for(var _i70 in data){result[_i70]=null;if(!isNaN(data[_i70]))result[_i70]=Math.abs(data[_i70]);}return result;};this.MA=function(data,dayCount){var result=[];if(dayCount<=0)return result;if(!Array.isArray(dayCount)){dayCount=parseInt(dayCount);//转整形
|
|
9740
9907
|
if(dayCount<=0)dayCount=1;if(!data||!data.length)return result;for(var i=0;i<data.length;++i){result[i]=null;if(this.IsNumber(data[i]))break;}var data=data.slice(0);//复制一份数据出来
|
|
9741
9908
|
for(var days=0;i<data.length;++i,++days){if(days<dayCount-1){result[i]=null;continue;}var preValue=data[i-(dayCount-1)];var _sum=0;for(var _j=dayCount-1;_j>=0;--_j){var value=data[i-_j];if(!this.IsNumber(value)){value=preValue;//空数据就取上一个数据
|
|
9742
9909
|
data[i-_j]=value;}else{preValue=value;}_sum+=value;}result[i]=_sum/dayCount;}}else{for(var i=0;i<data.length;++i){result[i]=null;if(i>=dayCount.length)continue;var sumCount=dayCount[i];if(!this.IsNumber(sumCount))continue;if(sumCount<=0)continue;var sum=0;var count=0;for(var j=i,k=0;j>=0&&k<sumCount;--j,++k){sum+=data[j];++count;}if(count>0)result[i]=sum/count;}}return result;};//指数平均数指标 EMA(close,10)
|
|
@@ -9862,14 +10029,14 @@ this.MULAR=function(data,n){var result=[];if(!Array.isArray(n)){if(data.length<n
|
|
|
9862
10029
|
求总的周期数。
|
|
9863
10030
|
用法: BARSCOUNT(X) 第一个有效数据到当前的天数。
|
|
9864
10031
|
例如: BARSCOUNT(CLOSE) 对于日线数据取得上市以来总交易日数,对于分笔成交取得当日成交笔数,对于1分钟线取得当日交易分钟数。
|
|
9865
|
-
*/this.BARSCOUNT=function(data){var result=[];var days=null;for(var
|
|
10032
|
+
*/this.BARSCOUNT=function(data){var result=[];var days=null;for(var _i71 in data){result[_i71]=0;if(days==null){if(!this.IsNumber(data[_i71]))continue;days=0;}result[_i71]=days;++days;}return result;};//DEVSQ 数据偏差平方和
|
|
9866
10033
|
//DEVSQ(X,N) 返回数据偏差平方和。
|
|
9867
10034
|
this.DEVSQ=function(data,n){if(this.IsNumber(data)&&this.IsNumber(n))return 0;var result=[];if(Array.isArray(data)){var num=null;if(Array.isArray(n))//取最后一个有效数
|
|
9868
10035
|
{for(var i=n.length-1;i>=0;--i){if(this.IsNumber(n[i])){num=parseInt(n[i]);break;}}}else{num=parseInt(n);}if(!this.IsNumber(num))return result;var datanum=data.length;var i=0,j=0,k=0;var E=0,DEV=0;for(i=0;i<datanum&&!this.IsNumber(data[i]);++i){result[i]=null;}if(num<1||i+num>datanum)return result;for(E=0;i<datanum&&j<num;++i,++j){E+=data[i]/num;}if(j==num){DEV=0;for(i--;k<num;k++){DEV+=(data[i-k]-E)*(data[i-k]-E);}result[i]=DEV;i++;}for(;i<datanum;++i){E+=(data[i]-data[i-num])/num;for(DEV=0,k=0;k<num;++k){DEV+=(data[i-k]-E)*(data[i-k]-E);}result[i]=DEV;}}return result;};//NOT 取反
|
|
9869
10036
|
//求逻辑非。
|
|
9870
10037
|
//用法: NOT(X) 返回非X,即当X=0时返回1,否则返回0。
|
|
9871
10038
|
//例如: NOT(ISUP) 表示平盘或收阴。
|
|
9872
|
-
this.NOT=function(data){var isNumber=typeof data=='number';if(isNumber)return data?0:1;var result=[];for(var
|
|
10039
|
+
this.NOT=function(data){var isNumber=typeof data=='number';if(isNumber)return data?0:1;var result=[];for(var _i72 in data){result[_i72]=null;if(this.IsNumber(data[_i72]))result[_i72]=data[_i72]?0:1;}return result;};//FORCAST 线性回归预测值
|
|
9873
10040
|
//FORCAST(X,N) 返回线性回归预测值。
|
|
9874
10041
|
this.FORCAST=function(data,n){var result=[];if(typeof n!='number')n=parseInt(n);//字符串的转成数值型
|
|
9875
10042
|
var num=n;var datanum=data.length;if(num<1||num>=datanum)return result;var Ex=0,Ey=0,Sxy=0,Sxx=0,Const,Slope;var i,j,x;for(j=0;j<datanum&&!this.IsNumber(data[j]);++j){result[j]=null;}for(i=j+num-1;i<datanum;++i){Ex=Ey=Sxy=Sxx=0;for(j=0,x=num;j<num&&j<=i;++j,--x){Ex+=x;Ey+=data[i-j];}Ex/=num;Ey/=num;for(j=0,x=num;j<num&&j<=i;++j,--x){Sxy+=(x-Ex)*(data[i-j]-Ey);Sxx+=(x-Ex)*(x-Ex);}Slope=Sxy/Sxx;Const=Ey-Ex*Slope;result[i]=Slope*num+Const;}return result;};//TSMA(X,N):求X在N个周期内的时间序列三角移动平均
|
|
@@ -9886,9 +10053,9 @@ this.TSMA=function(data,n){var result=[];if(typeof n!='number')n=parseInt(n);//
|
|
|
9886
10053
|
var num=n;var datanum=data.length;if(num<1||num>=datanum)return result;var Ex=0,Ey=0,Sxy=0,Sxx=0,Const,Slope;var i,j,x;for(j=0;j<datanum&&!this.IsNumber(data[j]);++j){result[j]=null;}for(i=j+num-1;i<datanum;++i){Ex=Ey=Sxy=Sxx=0;for(j=0,x=num;j<num&&j<=i;++j,--x){Ex+=x;Ey+=data[i-j];}Ex/=num;Ey/=num;for(j=0,x=num;j<num&&j<=i;++j,--x){Sxy+=(x-Ex)*(data[i-j]-Ey);Sxx+=(x-Ex)*(x-Ex);}Slope=Sxy/Sxx;Const=Ey-Ex*Slope;result[i]=Slope*num+Const+Slope;}return result;};//SLOPE 线性回归斜率
|
|
9887
10054
|
//SLOPE(X,N) 返回线性回归斜率。
|
|
9888
10055
|
this.SLOPE=function(data,n){var result=[];if(typeof n!='number')n=parseInt(n);//字符串的转成数值型
|
|
9889
|
-
if(n<1||!data.length)return result;if(n>=data.length)return result;var start=0;for(var
|
|
9890
|
-
y+=data[
|
|
9891
|
-
}x=x/n;y=y/n;for(j=0;j<n&&j<=
|
|
10056
|
+
if(n<1||!data.length)return result;if(n>=data.length)return result;var start=0;for(var _i73=0;_i73<data.length;++_i73,++start){result[_i73]=null;if(this.IsNumber(data[_i73]))break;}var x=void 0,y=void 0,xy=void 0,xx=void 0;for(var _i74=start+n-1;_i74<data.length;++_i74){result[_i74]=null;x=y=xy=xx=0;for(var j=0;j<n&&j<=_i74;++j){x+=_i74-j;//数据索引相加
|
|
10057
|
+
y+=data[_i74-j];//数据相加
|
|
10058
|
+
}x=x/n;y=y/n;for(j=0;j<n&&j<=_i74;++j){xy+=(_i74-j-x)*(data[_i74-j]-y);xx+=(_i74-j-x)*(_i74-j-x);}if(xx)result[_i74]=xy/xx;else if(_i74)result[_i74]=result[_i74-1];}return result;};//STDP 总体标准差
|
|
9892
10059
|
//STDP(X,N) 返回总体标准差。
|
|
9893
10060
|
this.STDP=function(data,n){var result=[];if(!Array.isArray(data))return result;var nStart=this.GetFirstVaildIndex(data);if(!IFrameSplitOperator.IsNumber(n))return result;if(nStart+n>data.length||n<1)return result;var i=nStart,j=0,bFirst=true,dTotal=0,dAvg=0;for(i+=n-1;i<data.length;++i){dTotal=0;if(bFirst){bFirst=false;for(j=i-n+1;j<=i;++j){dAvg+=data[j];}dAvg/=n;}else{dAvg+=(data[i]-data[i-n])/n;}for(j=i-n+1;j<=i;++j){dTotal+=(data[j]-dAvg)*(data[j]-dAvg);}result[i]=Math.sqrt(dTotal/n);}return result;};//VAR 估算样本方差
|
|
9894
10061
|
//VAR(X,N) 返回估算样本方差。
|
|
@@ -9896,13 +10063,13 @@ this.VAR=function(data,n){if(this.IsNumber(data)&&this.IsNumber(n))return 0;var
|
|
|
9896
10063
|
//VARP(X,N) 返回总体样本方差 。
|
|
9897
10064
|
this.VARP=function(data,n){var result=[];if(typeof n!='number')n=parseInt(n);//字符串的转成数值型
|
|
9898
10065
|
var num=n;var datanum=data.length;if(num<1||num>=datanum)return result;var i=0,j=0;for(i=0;i<datanum&&!this.IsNumber(data[i]);++i){result[i]=null;}var SigmaPowerX=0,SigmaX=0;for(;i<datanum&&j<num;++i,++j){SigmaPowerX+=data[i]*data[i];SigmaX+=data[i];}if(j==num)result[i-1]=(num*SigmaPowerX-SigmaX*SigmaX)/(num*num);for(;i<datanum;++i){SigmaPowerX+=data[i]*data[i]-data[i-num]*data[i-num];SigmaX+=data[i]-data[i-num];result[i]=(num*SigmaPowerX-SigmaX*SigmaX)/(num*num);}return result;};//RANGE(A,B,C)表示A>B AND A<C;
|
|
9899
|
-
this.RANGE=function(data,range,range2){var isNumber=typeof data=='number';var isNumber2=typeof range=='number';var isNumber3=typeof range2=='number';if(isNumber&&isNumber2&&isNumber3){if(data>Math.min(range,range2)&&data<Math.max(range,range2))return 1;else return 0;}var result=[];var value=void 0,rangeValue=void 0,rangValue2=void 0;for(var
|
|
10066
|
+
this.RANGE=function(data,range,range2){var isNumber=typeof data=='number';var isNumber2=typeof range=='number';var isNumber3=typeof range2=='number';if(isNumber&&isNumber2&&isNumber3){if(data>Math.min(range,range2)&&data<Math.max(range,range2))return 1;else return 0;}var result=[];var value=void 0,rangeValue=void 0,rangValue2=void 0;for(var _i75=0;_i75<data.length;++_i75){result[_i75]=null;value=data[_i75];if(!this.IsNumber(value))continue;if(!isNumber2){if(_i75>=range.length)continue;rangeValue=range[_i75];}else{rangeValue=range;}if(!this.IsNumber(rangeValue))continue;if(!isNumber3){if(_i75>=range2.length)continue;rangeValue2=range2[_i75];}else{rangeValue2=range2;}if(!this.IsNumber(rangeValue2))continue;result[_i75]=value>Math.min(rangeValue,rangeValue2)&&value<Math.max(rangeValue,rangeValue2)?1:0;}return result;};/*
|
|
9900
10067
|
是否存在.
|
|
9901
10068
|
例如: EXIST(CLOSE>OPEN,10)
|
|
9902
10069
|
表示10日内存在着阳线
|
|
9903
10070
|
*/this.EXIST=function(data,n){if(typeof data=='number')return 0;if(Array.isArray(n)){var result=[];if(data.length<=0)return result;for(var i in data)//初始化
|
|
9904
10071
|
{result[i]=0;}for(var i=0;i<n.length&&i<data.length;++i){var period=n[i];if(!this.IsNumber(period))continue;period=parseInt(period);if(period<=0)continue;if(period>i+1)period=i+1;var bExist=false;var index=0,value=0;for(var j=0;j<period;++j){index=i-(period-j-1);value=data[i];if(this.IsNumber(value)&&value>0){bExist=true;break;}}result[i]=bExist?1:0;}return result;}else{n=parseInt(n);var latestID=null;//最新满足条件的数据索引
|
|
9905
|
-
var result=[];var value;for(var
|
|
10072
|
+
var result=[];var value;for(var _i76=0;_i76<data.length;++_i76){result[_i76]=null;value=data[_i76];if(this.IsNumber(value)&&value>0)latestID=_i76;if(latestID!=null&&_i76-latestID<n)result[_i76]=1;else result[_i76]=0;}return result;}};/*
|
|
9906
10073
|
过滤连续出现的信号.
|
|
9907
10074
|
用法:TFILTER(买入条件,卖出条件,N);过滤掉买入(卖出)信号发出后,下一个反向信号发出前的所有买入(卖出)信号.
|
|
9908
10075
|
|
|
@@ -9923,16 +10090,16 @@ var result=[];var value;for(var _i78=0;_i78<data.length;++_i78){result[_i78]=nul
|
|
|
9923
10090
|
用法:FILTER(X,N):X满足条件后,将其后N周期内的数据置为0,N为常量.
|
|
9924
10091
|
例如:
|
|
9925
10092
|
FILTER(CLOSE>OPEN,5)查找阳线,5天内再次出现的阳线不被记录在内
|
|
9926
|
-
*/this.FILTER=function(data,n){var result=[];for(var
|
|
10093
|
+
*/this.FILTER=function(data,n){var result=[];for(var _i77=0,_j2=0;_i77<data.length;++_i77){if(data[_i77]){result[_i77]=1;for(_j2=0;_j2<n&&_j2+_i77+1<data.length;++_j2){result[_j2+_i77+1]=0;}_i77+=n;}else{result[_i77]=0;}}return result;};//反向过滤连续出现的信号.
|
|
9927
10094
|
//用法:FILTERX(X,N):X满足条件后,将其前N周期内的数据置为0,N为常量.
|
|
9928
10095
|
//例如:FILTERX(CLOSE>OPEN,5)查找阳线,前5天内出现过的阳线不被记录在内
|
|
9929
|
-
this.FILTERX=function(data,n,node){var result=[];for(var
|
|
10096
|
+
this.FILTERX=function(data,n,node){var result=[];for(var _i78=0,_j3=0;_i78<data.length;++_i78){if(data[_i78]){result[_i78]=1;for(_j3=0;_j3<n&&_i78-_j3-1>=0;++_j3){result[_i78-_j3-1]=0;}_i78+=n;}else{result[_i78]=0;}}return result;};//上一次条件成立到当前的周期数.
|
|
9930
10097
|
//用法:BARSLAST(X):上一次X不为0到现在的周期数
|
|
9931
10098
|
//例如:BARSLAST(CLOSE/REF(CLOSE,1)>=1.1)表示上一个涨停板到当前的周期数
|
|
9932
|
-
this.BARSLAST=function(data){var result=[];if(!data)return result;var day=null;for(var
|
|
10099
|
+
this.BARSLAST=function(data){var result=[];if(!data)return result;var day=null;for(var _i79=0;_i79<data.length;++_i79){result[_i79]=null;if(data[_i79]>0)day=0;else if(day!=null)++day;if(day!=null)result[_i79]=day;}return result;};//倒数第N次成立时距今的周期数.
|
|
9933
10100
|
//用法:BARSLASTS(X,N):X倒数第N满足到现在的周期数,N支持变量
|
|
9934
10101
|
this.BARSLASTS=function(data,n,node){var result=[];if(!data)return result;if(n<=0)n=data.length;var day=null;var SingleValue=0;//单词数
|
|
9935
|
-
var periodCount=0;for(var
|
|
10102
|
+
var periodCount=0;for(var _i80=0;_i80<data.length;++_i80){result[_i80]=null;var value=data[_i80];if(value>0){if(day==null){day=0;++periodCount;}else{++periodCount;if(periodCount>n)day-=SingleValue;}SingleValue=0;}else{if(day!=null){++day;++SingleValue;}}if(day!=null)result[_i80]=day;}return result;};/*
|
|
9936
10103
|
N周期内第一个条件成立到当前的周期数.
|
|
9937
10104
|
用法:
|
|
9938
10105
|
BARSSINCEN(X,N):N周期内第一次X不为0到现在的天数,N为常量
|
|
@@ -9944,7 +10111,7 @@ var periodCount=0;for(var _i82=0;_i82<data.length;++_i82){result[_i82]=null;var
|
|
|
9944
10111
|
BARSSINCE(X):第一次X不为0到现在的天数
|
|
9945
10112
|
例如:
|
|
9946
10113
|
BARSSINCE(HIGH>10)表示股价超过10元时到当前的周期数
|
|
9947
|
-
*/this.BARSSINCE=function(data){var result=[];var day=null;for(var
|
|
10114
|
+
*/this.BARSSINCE=function(data){var result=[];var day=null;for(var _i81=0;_i81<data.length;++_i81){result[_i81]=null;if(day==null){if(data[_i81])day=0;}else{++day;}if(day)result[_i81]=day;}return result;};/*三角函数调用 func 三角函数
|
|
9948
10115
|
反正切值. 用法: ATAN(X)返回X的反正切值
|
|
9949
10116
|
余弦值. 用法: COS(X)返回X的余弦值
|
|
9950
10117
|
正弦值. 用法: SIN(X)返回X的正弦值
|
|
@@ -9954,9 +10121,9 @@ var periodCount=0;for(var _i82=0;_i82<data.length;++_i82){result[_i82]=null;var
|
|
|
9954
10121
|
求10为底的对数. 用法: LOG(X)取得X的对数 例如: LOG(100)等于2
|
|
9955
10122
|
指数. 用法: EXP(X)为e的X次幂 例如: EXP(CLOSE)返回e的CLOSE次幂
|
|
9956
10123
|
开平方. 用法: SQRT(X)为X的平方根 例如: SQRT(CLOSE)收盘价的平方根
|
|
9957
|
-
*/this.Trigonometric=function(data,func){if(!Array.isArray(data)){if(this.IsNumber(data))return func(data);return null;}else{var result=[];for(var
|
|
9958
|
-
this.ASIN=function(data){if(!Array.isArray(data)){if(this.IsNumber(data))return Math.acos(data);return null;}else{var result=[];for(var
|
|
9959
|
-
this.ACOS=function(data){if(!Array.isArray(data)){if(this.IsNumber(data))return Math.acos(data);return null;}else{var result=[];for(var
|
|
10124
|
+
*/this.Trigonometric=function(data,func){if(!Array.isArray(data)){if(this.IsNumber(data))return func(data);return null;}else{var result=[];for(var _i82 in data){var item=data[_i82];if(this.IsNumber(item))result[_i82]=func(item);else result[_i82]=null;}return result;}};//反正弦值. 用法: ASIN(X)返回X的反正弦值
|
|
10125
|
+
this.ASIN=function(data){if(!Array.isArray(data)){if(this.IsNumber(data))return Math.acos(data);return null;}else{var result=[];for(var _i83 in data){var item=data[_i83];result[_i83]=null;if(this.IsNumber(item)){if(item>=-1&&item<=1){result[_i83]=Math.asin(item);}else if(_i83-1>=0){var preItem=result[_i83-1];if(this.IsNumber(preItem))result[_i83]=preItem;}}}return result;}};//反余弦值. 用法: ACOS(X)返回X的反余弦值
|
|
10126
|
+
this.ACOS=function(data){if(!Array.isArray(data)){if(this.IsNumber(data))return Math.acos(data);return null;}else{var result=[];for(var _i84 in data){var item=data[_i84];result[_i84]=null;if(this.IsNumber(item)){if(item>=-1&&item<=1){result[_i84]=Math.acos(item);}else if(_i84-1>=0){var preItem=result[_i84-1];if(this.IsNumber(preItem))result[_i84]=preItem;}}}return result;}};/*
|
|
9960
10127
|
LAST(X,A,B):持续存在.
|
|
9961
10128
|
用法:
|
|
9962
10129
|
LAST(CLOSE>OPEN,10,5)
|
|
@@ -10159,42 +10326,42 @@ for(var i=startDay,j=0;i<kData.length;++i){var start=i-startDay;if(start<0)conti
|
|
|
10159
10326
|
*/this.LWINNER=function(n,data,node){var startDay=n;if(startDay<=0)this.ThrowUnexpectedNode(node,'LWINNER() 第1个参数错误');var result=[];var kData=this.SymbolData.Data.Data;if(!kData||kData.length<=0)return result;var aryCapital=this.SymbolData.GetStockCacheData({FunctionName:"FINANCE",Args:[7],ArgCount:1,Node:node});//流通股本
|
|
10160
10327
|
var dTotalVol=0,dVol=0;for(var i=startDay-1,j=0,k=0;i<kData.length;++i){var index=i-startDay+1;var dMaxPrice=kData[index].High,dMinPrice=kData[index].Low;for(var j=0;j<startDay;++j){var item=kData[index+j];dMinPrice=Math.min(dMinPrice,item.Low);dMaxPrice=Math.max(dMaxPrice,item.High);}if(dMinPrice>5000||dMinPrice<0||dMaxPrice>5000||dMinPrice<0)this.ThrowUnexpectedNode(node,'LWINNER() 历史K线最大最小值错误, 超出(0,5000)范围');var lMaxPrice=parseInt(dMaxPrice*100+1);var lMinPrice=parseInt(dMinPrice*100-1);var lLow=0,lHigh=0,lClose=0;dMaxPrice=lMaxPrice/100.0;dMinPrice=lMinPrice/100.0;var lSpeed=lMaxPrice-lMinPrice+1;if(lSpeed<1)return result;var aryVolPrice=[],aryPerVol=[];for(var j=0;j<lSpeed;++j){aryVolPrice[j]=0;aryPerVol[j]=0;}for(j=0;j<startDay;++j){var capital=aryCapital[index+j];if(capital<1)continue;var kItem=kData[index+j];var dHSL=kItem.Vol/capital;for(k=0;k<lSpeed;k++){aryVolPrice[k]*=1-dHSL;}lLow=parseInt(Math.min(lMaxPrice,Math.max(lMinPrice,kItem.Low*100)))-lMinPrice;lHigh=parseInt(Math.min(lMaxPrice,Math.max(lMinPrice,kItem.High*100)))-lMinPrice;lClose=parseInt(Math.min(lMaxPrice,Math.max(lMinPrice,kItem.Close*100)))-lMinPrice;for(var k=0;k<lSpeed;++k){aryPerVol[k]=0;}var lHalf=parseInt((lLow+lHigh+2*lClose)/4);if(lHalf==lHigh||lHalf==lLow){aryPerVol[lHalf]+=kItem.Vol;}else{var dVH=kItem.Vol/(lHalf-lLow);for(var _k=lLow;_k<lHalf;++_k){aryPerVol[_k]+=(_k-lLow)*(dVH/(lHalf-lLow));}for(var _k2;_k2<=lHigh;++_k2){aryPerVol[_k2]+=(_k2-lHigh)*(dVH/(lHalf-lHigh));}}dTotalVol=0;for(var k=lLow;k<=lHigh;k++){aryVolPrice[k]+=aryPerVol[k];}}for(var j=0;j<lSpeed;j++){dTotalVol+=aryVolPrice[j];}if(Array.isArray(data))lHigh=parseInt(Math.min(data[i]*100-lMinPrice,lSpeed-1));else lHigh=parseInt(Math.min(data*100-lMinPrice,lSpeed-1));dVol=0;for(k=0;k<=lHigh;k++){dVol+=aryVolPrice[k];}if(dTotalVol>0&&dVol>0&&dVol<=dTotalVol)result[i]=dVol/dTotalVol;else if(i-1>=0)result[i]=result[i-1];}return result;};this.PWINNER=function(n,data,node){var result=[];return result;};//计算截至到某一天的历史所有筹码
|
|
10161
10328
|
this.CalculateChip=function(index,exchangeData,hisData,dRate){var result={Min:null,Max:null,Data:[]};var seed=1;//筹码历史衰减换手系数
|
|
10162
|
-
var max=null,min=null;for(var
|
|
10163
|
-
var kData=hisData[
|
|
10329
|
+
var max=null,min=null;for(var _i85=index;_i85>=0;--_i85){var _item10={};//Vol:量 High:最高 Low:最低
|
|
10330
|
+
var kData=hisData[_i85];if(_i85==index)_item10.Vol=kData.Vol*exchangeData[_i85];else _item10.Vol=kData.Vol*seed;_item10.Date=kData.Date;_item10.High=kData.High;_item10.Low=kData.Low;if(max==null)max=_item10.High;else if(max<_item10.High)max=_item10.High;if(min==null)min=_item10.Low;else if(min<_item10.Low)min=_item10.Low;result.Data[_i85]=_item10;seed*=1-exchangeData[_i85]/100*dRate;//换手率累乘
|
|
10164
10331
|
}result.Max=max;result.Min=min;return result;};/*
|
|
10165
10332
|
返回是否连涨周期数.
|
|
10166
10333
|
用法:
|
|
10167
10334
|
UPNDAY(CLOSE,M)
|
|
10168
10335
|
表示连涨M个周期,M为常量
|
|
10169
|
-
*/this.UPNDAY=function(data,n){var result=[];if(n<1)return result;if(data==null||n>data.length)return result;var days=0;for(var
|
|
10170
|
-
{days=0;continue;}if(data[
|
|
10336
|
+
*/this.UPNDAY=function(data,n){var result=[];if(n<1)return result;if(data==null||n>data.length)return result;var days=0;for(var _i86=0;_i86<data.length;++_i86){result[_i86]=0;if(_i86-1<0)continue;if(!this.IsNumber(data[_i86])||!this.IsNumber(data[_i86-1]))//无效数都不算连涨
|
|
10337
|
+
{days=0;continue;}if(data[_i86]>data[_i86-1])++days;else days=0;if(days==n){result[_i86]=1;--days;}}return result;};/*
|
|
10171
10338
|
返回是否连跌周期.
|
|
10172
10339
|
用法:
|
|
10173
10340
|
DOWNNDAY(CLOSE,M)
|
|
10174
10341
|
表示连跌M个周期,M为常量
|
|
10175
|
-
*/this.DOWNNDAY=function(data,n){var result=[];if(n<1)return result;if(data==null||n>data.length)return result;var days=0;for(var
|
|
10176
|
-
{days=0;continue;}if(data[
|
|
10342
|
+
*/this.DOWNNDAY=function(data,n){var result=[];if(n<1)return result;if(data==null||n>data.length)return result;var days=0;for(var _i87=0;_i87<data.length;++_i87){result[_i87]=0;if(_i87-1<0)continue;if(!this.IsNumber(data[_i87])||!this.IsNumber(data[_i87-1]))//无效数都不算连涨
|
|
10343
|
+
{days=0;continue;}if(data[_i87]<data[_i87-1])++days;else days=0;if(days==n){result[_i87]=1;--days;}}return result;};/*
|
|
10177
10344
|
返回是否持续存在X>Y
|
|
10178
10345
|
用法:
|
|
10179
10346
|
NDAY(CLOSE,OPEN,3)
|
|
10180
10347
|
表示连续3日收阳线
|
|
10181
|
-
*/this.NDAY=function(data,data2,n){var result=[];if(n<1)return result;if(!Array.isArray(data)&&!Array.isArray(data2))return result;if(data==null||data2==null)return result;if(Array.isArray(data)&&Array.isArray(data2)){if(n>=data.length||n>=data2.length)return result;var count=Math.max(data.length,data2.length);var days=0;for(var
|
|
10348
|
+
*/this.NDAY=function(data,data2,n){var result=[];if(n<1)return result;if(!Array.isArray(data)&&!Array.isArray(data2))return result;if(data==null||data2==null)return result;if(Array.isArray(data)&&Array.isArray(data2)){if(n>=data.length||n>=data2.length)return result;var count=Math.max(data.length,data2.length);var days=0;for(var _i88=0;_i88<count;++_i88){result[_i88]=0;if(_i88>=data.length||_i88>=data2.length)continue;if(!this.IsNumber(data[_i88])||!this.IsNumber(data2[_i88])){days=0;continue;}if(data[_i88]>data2[_i88])++days;else days=0;if(days==n){result[_i88]=1;--days;}}}else if(Array.isArray(data)&&!Array.isArray(data2)){if(n>=data.length||!this.IsNumber(data2))return;var days=0;for(var _i89 in data){result[_i89]=0;if(!this.IsNumber(data[_i89])){days=0;continue;}if(data[_i89]>data2)++days;else days=0;if(days==n){result[_i89]=1;--days;}}}else if(!Array.isArray(data)&&Array.isArray(data2)){if(n>=data2.length||!this.IsNumber(data))return;var days=0;for(var _i90 in data2){result[_i90]=0;if(!this.IsNumber(data2[_i90])){days=0;continue;}if(data>data2[_i90])++days;else days=0;if(days==n){result[_i90]=1;--days;}}}return result;};/*
|
|
10182
10349
|
两条线维持一定周期后交叉.
|
|
10183
10350
|
用法:LONGCROSS(A,B,N)表示A在N周期内都小于B,本周期从下方向上穿过B时返回1,否则返回0
|
|
10184
|
-
*/this.LONGCROSS=function(data,data2,n){var result=[];var count=Math.max(data.length,data2.length);for(var
|
|
10351
|
+
*/this.LONGCROSS=function(data,data2,n){var result=[];var count=Math.max(data.length,data2.length);for(var _i91=0;_i91<count;++_i91){result[_i91]=0;if(_i91-1<0)continue;if(_i91>=data.length||_i91>=data2.length)continue;if(!this.IsNumber(data[_i91])||!this.IsNumber(data2[_i91])||!this.IsNumber(data[_i91-1])||!this.IsNumber(data2[_i91-1]))continue;if(data[_i91]>data2[_i91]&&data[_i91-1]<data2[_i91-1])result[_i91]=1;}for(var _i92=0,_j4=0;_i92<count;++_i92){if(!result[_i92])continue;for(_j4=1;_j4<=n&&_i92-_j4>=0;++_j4){if(data[_i92-_j4]>=data2[_i92-_j4]){result[_i92]=0;break;}}}return result;};this.ISVALID=function(data){if(Array.isArray(data)){var result=[];for(var i=0;i<data.length;++i){var item=data[i];if(item)result[i]=1;else result[i]=0;}return result;}else{if(data)return 1;else return 0;}};/*
|
|
10185
10352
|
EXISTR(X,A,B):是否存在(前几日到前几日间).
|
|
10186
10353
|
例如: EXISTR(CLOSE>OPEN,10,5)
|
|
10187
10354
|
表示从前10日内到前5日内存在着阳线
|
|
10188
10355
|
若A为0,表示从第一天开始,B为0,表示到最后日止
|
|
10189
|
-
*/this.EXISTR=function(data,n,n2){var result=[];if(!Array.isArray(data))return result;n=parseInt(n);n2=parseInt(n2);if(n<=0)n=data.length;if(n2<=0)n2=1;if(n2>n)return result;var result=[];var value;for(var
|
|
10356
|
+
*/this.EXISTR=function(data,n,n2){var result=[];if(!Array.isArray(data))return result;n=parseInt(n);n2=parseInt(n2);if(n<=0)n=data.length;if(n2<=0)n2=1;if(n2>n)return result;var result=[];var value;for(var _i93=0,_j5=0;_i93<data.length;++_i93){result[_i93]=null;if(_i93-n<0||_i93-n2<0)continue;result[_i93]=0;for(_j5=n;_j5>=n2;--_j5){var value=data[_i93-_j5];if(this.IsNumber(value)&&value){result[_i93]=1;break;}}}return result;};/*
|
|
10190
10357
|
RELATE(X,Y,N) 返回X和Y的N周期的相关系数
|
|
10191
10358
|
RELATE(X,Y,N)=(∑[(Xi-Avg(X))(Yi-Avg(y))])/N ÷ √((∑(Xi-Avg(X))^2)/N * (∑(Yi-Avg(Y))^2)/N)
|
|
10192
10359
|
其中 avg(x)表示x的N周期均值: avg(X) = (∑Xi)/N
|
|
10193
10360
|
√(...)表示开平方
|
|
10194
|
-
*/this.RELATE=function(data,data2,n){var result=[];if(n<1)n=1;if(!Array.isArray(data)||!Array.isArray(data2))return result;var dataAverage=this.CalculateAverage(data,n);var data2Average=this.CalculateAverage(data2,n);var count=Math.max(data.length,data2.length);for(var
|
|
10361
|
+
*/this.RELATE=function(data,data2,n){var result=[];if(n<1)n=1;if(!Array.isArray(data)||!Array.isArray(data2))return result;var dataAverage=this.CalculateAverage(data,n);var data2Average=this.CalculateAverage(data2,n);var count=Math.max(data.length,data2.length);for(var _i94=0,_j6=0;_i94<count;++_i94){result[_i94]=null;if(_i94>=data.length||_i94>=data2.length||_i94>=dataAverage.length||_i94>=data2Average.length)continue;var average=dataAverage[_i94];var average2=data2Average[_i94];var total=0,total2=0,total3=0;for(_j6=_i94-n+1;_j6<=_i94;++_j6){total+=(data[_j6]-average)*(data2[_j6]-average2);//∑[(Xi-Avg(X))(Yi-Avg(y))])
|
|
10195
10362
|
total2+=Math.pow(data[_j6]-average,2);//∑(Xi-Avg(X))^2
|
|
10196
10363
|
total3+=Math.pow(data2[_j6]-average2,2);//∑(Yi-Avg(Y))^2)
|
|
10197
|
-
}result[
|
|
10364
|
+
}result[_i94]=total/n/(Math.sqrt(total2/n)*Math.sqrt(total3/n));}return result;};//计算数组n周期内的均值
|
|
10198
10365
|
this.CalculateAverage=function(data,n){var result=[];if(n<1)return result;var total=0;for(var i=0;i<data.length;++i)//去掉开始的无效数
|
|
10199
10366
|
{if(this.IsNumber(data[i]))break;}for(;i<data.length&&i<n;++i)//计算第1个周期的数据
|
|
10200
10367
|
{result[i]=null;var value=data[i];if(!this.IsNumber(value))continue;total+=value;}result[i-1]=total/n;for(;i<data.length;++i)//计算后面的周期数据
|
|
@@ -10202,7 +10369,7 @@ this.CalculateAverage=function(data,n){var result=[];if(n<1)return result;var to
|
|
|
10202
10369
|
if(!this.IsNumber(value))value=0;if(!this.IsNumber(preValue))preValue=0;total=total-preValue+value;//当前周期的数据 等于上一个周期数据 去掉上一个周期的第1个数据 加上这个周期的最后1个数据
|
|
10203
10370
|
result[i]=total/n;}return result;};/*
|
|
10204
10371
|
COVAR(X,Y,N) 返回X和Y的N周期的协方差
|
|
10205
|
-
*/this.COVAR=function(data,data2,n){if(this.IsNumber(data)||this.IsNumber(data2))return 0;var result=[];if(n<1)n=1;if(!Array.isArray(data)||!Array.isArray(data2))return result;var dataAverage=this.CalculateAverage(data,n);var data2Average=this.CalculateAverage(data2,n);var count=Math.max(data.length,data2.length);var count=Math.max(data.length,data2.length);for(var
|
|
10372
|
+
*/this.COVAR=function(data,data2,n){if(this.IsNumber(data)||this.IsNumber(data2))return 0;var result=[];if(n<1)n=1;if(!Array.isArray(data)||!Array.isArray(data2))return result;var dataAverage=this.CalculateAverage(data,n);var data2Average=this.CalculateAverage(data2,n);var count=Math.max(data.length,data2.length);var count=Math.max(data.length,data2.length);for(var _i95=0,_j7=0;_i95<count;++_i95){result[_i95]=null;if(_i95>=data.length||_i95>=data2.length||_i95>=dataAverage.length||_i95>=data2Average.length)continue;var average=dataAverage[_i95];var average2=data2Average[_i95];var total=0;for(_j7=_i95-n+1;_j7<=_i95;++_j7){total+=(data[_j7]-average)*(data2[_j7]-average2);}result[_i95]=total/n;}return result;};/*
|
|
10206
10373
|
求上一高点到当前的周期数.
|
|
10207
10374
|
用法:
|
|
10208
10375
|
HHVBARS(X,N):求N周期内X最高值到当前周期数,N=0表示从第一个有效值开始统计
|
|
@@ -10226,7 +10393,7 @@ for(var i=0;i<data.length;++i){result[i]=null;if(this.IsNumber(data[i])){nMin=i;
|
|
|
10226
10393
|
公式=股票和指数协方差/指数方差
|
|
10227
10394
|
*/this.BETA=function(n){var result=[];var stockData=this.SymbolData.Data;var indexData=this.SymbolData.IndexData;if(n<=0)n=1;var stockProfit=[];//股票涨幅
|
|
10228
10395
|
var indexProfit=[];//指数涨幅
|
|
10229
|
-
for(var
|
|
10396
|
+
for(var _i96=0;_i96<stockData.Data.length;++_i96){stockProfit[_i96]=0;indexProfit[_i96]=0;var stockItem=stockData.Data[_i96];var indexItem=indexData.Data[_i96];if(stockItem.Close>0&&stockItem.YClose>0)stockProfit[_i96]=(stockItem.Close-stockItem.YClose)/stockItem.YClose;if(indexItem.Close>0&&indexItem.YClose>0)indexProfit[_i96]=(indexItem.Close-indexItem.YClose)/indexItem.YClose;}//计算均值数组
|
|
10230
10397
|
var averageStockProfit=this.CalculateAverage(stockProfit,n);var averageIndexProfit=this.CalculateAverage(indexProfit,n);for(var i=0,j=0;i<stockData.Data.length;++i){result[i]=null;if(i>=stockProfit.length||i>=indexProfit.length||i>=averageStockProfit.length||i>=averageIndexProfit.length)continue;var averageStock=averageStockProfit[i];var averageIndex=averageIndexProfit[i];var covariance=0;//协方差
|
|
10231
10398
|
var variance=0;//方差
|
|
10232
10399
|
for(j=i-n+1;j<=i;++j){var value=indexProfit[j]-averageIndex;var value2=stockProfit[j]-averageStock;covariance+=value*value2;variance+=value*value;}if(this.IsDivideNumber(variance)&&this.IsNumber(covariance))result[i]=covariance/variance;//(covariance/n)/(variance/n)=covariance/variance;
|
|
@@ -10274,8 +10441,8 @@ this.CON2STR=function(data,n){var result=[];if(Array.isArray(data)){for(var i=da
|
|
|
10274
10441
|
//用法: VAR2STR(C,3)表示取收盘价,以3位小数转为字符串
|
|
10275
10442
|
this.VAR2STR=function(data,n){var result=[];if(Array.isArray(data)){for(var i=0;i<data.length;++i){result[i]=null;var item=data[i];if(this.IsNumber(item))result[i]=item.toFixed(n);}}else{if(this.IsNumber(data))result=data.toFixed(n);}return result;};this.MOD=function(data,data2){var result=[];var isNumber=typeof data=='number';var isNumber2=typeof data2=='number';//单数值
|
|
10276
10443
|
if(isNumber&&isNumber2){return JSAlgorithm.MOD(data,data2);}else if(!isNumber&&!isNumber2)//都是数组相加
|
|
10277
|
-
{var count=Math.max(data.length,data2.length);for(var
|
|
10278
|
-
if(
|
|
10444
|
+
{var count=Math.max(data.length,data2.length);for(var _i97=0;_i97<count;++_i97){result[_i97]=null;//初始化
|
|
10445
|
+
if(_i97<data.length&&_i97<data2.length){if(this.IsNumber(data[_i97])&&this.IsNumber(data2[_i97]))result[_i97]=JSAlgorithm.MOD(data[_i97],data2[_i97]);}}return result;}else if(isNumber&&!isNumber2)//单数字 数组
|
|
10279
10446
|
{for(var i in data2){result[i]=null;if(this.IsNumber(data)&&this.IsNumber(data2[i]))result[i]=JSAlgorithm.MOD(data,data2[i]);}return result;}else if(!isNumber&&isNumber2)//数组 单数字
|
|
10280
10447
|
{for(var i in data){result[i]=null;if(this.IsNumber(data[i])&&this.IsNumber(data2))result[i]=JSAlgorithm.MOD(data[i],data2);}return result;}return result;};this.POW=function(data,n){var result=[];if(Array.isArray(data)&&Array.isArray(n)){for(var i=0;i<data.length;++i){var value=data[i];var value2=n[i];if(this.IsNumber(value)&&this.IsNumber(value2))result[i]=Math.pow(value,value2);else result[i]=null;}}else if(IFrameSplitOperator.IsNumber(data)&&Array.isArray(n)){for(var i=0;i<n.length;++i){var item=n[i];if(this.IsNumber(item))result[i]=Math.pow(data,item);else result[i]=null;}}else if(IFrameSplitOperator.IsNumber(data)&&IFrameSplitOperator.IsNumber(n)){return Math.pow(data,n);}else if(Array.isArray(data)&&IFrameSplitOperator.IsNumber(n)){for(var i=0;i<data.length;++i){var item=data[i];if(this.IsNumber(item))result[i]=Math.pow(item,n);else result[i]=null;}}return result;};this.CEILING=function(data){var isNumber=typeof data=='number';if(isNumber)return parseInt(data);var result=[];for(var i in data){var item=data[i];if(this.IsNumber(item))result[i]=parseInt(item);else result[i]=null;}return result;};this.FLOOR=function(data){var isNumber=typeof data=='number';if(isNumber)return parseInt(data-1);var result=[];for(var i in data){var item=data[i];if(this.IsNumber(item))result[i]=parseInt(item-1);else result[i]=null;}return result;};this.ZTPRICE=function(data,rate){if(!this.IsNumber(rate))return null;if(Array.isArray(data)){var result=[];for(var i in data){var item=data[i];if(this.IsNumber(item))result[i]=(1+rate)*item;else result[i]=null;}return result;}else if(this.IsNumber(data)){var result=(1+rate)*data;return result;}};this.DTPRICE=function(data,rate){if(!this.IsNumber(rate))return null;if(Array.isArray(data)){var result=[];for(var i in data){var item=data[i];if(this.IsNumber(item))result[i]=(1-rate)*item;else result[i]=null;}return result;}else if(this.IsNumber(data)){var result=(1-rate)*data;return result;}};/*
|
|
10281
10448
|
FRACPART(A) 取得小数部分
|
|
@@ -10443,20 +10610,20 @@ var IsNumber=typeof data=="number";var IsNumber2=typeof data2=="number";if(Array
|
|
|
10443
10610
|
用法: DRAWLINE(COND1,PRICE1,COND2,PRICE2,EXPAND)
|
|
10444
10611
|
当COND1条件满足时,在PRICE1位置画直线起点,当COND2条件满足时,在PRICE2位置画直线终点,EXPAND为延长类型。
|
|
10445
10612
|
例如: DRAWLINE(HIGH>=HHV(HIGH,20),HIGH,LOW<=LLV(LOW,20),LOW,1) 表示在创20天新高与创20天新低之间画直线并且向右延长。
|
|
10446
|
-
*/this.DRAWLINE=function(condition,data,condition2,data2,expand){var drawData=[];var result={DrawData:drawData,DrawType:'DRAWLINE',Expand:expand};if(condition.length<=0)return result;var count=Math.max(condition.length,condition2.length);var bFirstPoint=false;var bSecondPont=false;var lineCache={Start:{},End:{},List:new Array()};for(var
|
|
10447
|
-
}else if(bFirstPoint==true&&bSecondPont==false){var bCondition2=condition2[
|
|
10448
|
-
if(!bCondition2){if(condition[
|
|
10449
|
-
lineCache.Start={ID:
|
|
10450
|
-
continue;}if(bCondition2){bSecondPont=true;lineCache.End={ID:
|
|
10451
|
-
}}else if(bFirstPoint==true&&bSecondPont==true){var bCondition2=condition2[
|
|
10613
|
+
*/this.DRAWLINE=function(condition,data,condition2,data2,expand){var drawData=[];var result={DrawData:drawData,DrawType:'DRAWLINE',Expand:expand};if(condition.length<=0)return result;var count=Math.max(condition.length,condition2.length);var bFirstPoint=false;var bSecondPont=false;var lineCache={Start:{},End:{},List:new Array()};for(var _i98=0;_i98<count;++_i98){drawData[_i98]=null;if(_i98<condition.length&&_i98<condition2.length){if(bFirstPoint==false&&bSecondPont==false){if(condition[_i98]==null||!condition[_i98])continue;bFirstPoint=true;lineCache.Start={ID:_i98,Value:data[_i98]};//第1个点
|
|
10614
|
+
}else if(bFirstPoint==true&&bSecondPont==false){var bCondition2=condition2[_i98]!=null&&condition2[_i98];//条件2
|
|
10615
|
+
if(!bCondition2){if(condition[_i98])//条件1满足
|
|
10616
|
+
lineCache.Start={ID:_i98,Value:data[_i98]};//移动第1个点
|
|
10617
|
+
continue;}if(bCondition2){bSecondPont=true;lineCache.End={ID:_i98,Value:data2[_i98]};//第2个点
|
|
10618
|
+
}}else if(bFirstPoint==true&&bSecondPont==true){var bCondition2=condition2[_i98]!=null&&condition2[_i98];//条件2
|
|
10452
10619
|
if(bCondition2)//条件2满足
|
|
10453
|
-
{lineCache.End={ID:
|
|
10454
|
-
}else if(condition[
|
|
10620
|
+
{lineCache.End={ID:_i98,Value:data2[_i98]};//移动第2个点
|
|
10621
|
+
}else if(condition[_i98])//条件1满足
|
|
10455
10622
|
{var lineData=this.CalculateDrawLine(lineCache);//计算2个点的线上 其他点的数值
|
|
10456
|
-
for(var _j8 in lineData){var
|
|
10457
|
-
bFirstPoint=bSecondPont=false;lineCache={Start:{},End:{}};bFirstPoint=true;bSecondPont=false;lineCache.Start={ID:
|
|
10623
|
+
for(var _j8 in lineData){var _item11=lineData[_j8];drawData[_item11.ID]=_item11.Value;}if(expand==1)this.CalculateDrawDataExtendLine(drawData,lineCache.Start.ID-2);//右延长线
|
|
10624
|
+
bFirstPoint=bSecondPont=false;lineCache={Start:{},End:{}};bFirstPoint=true;bSecondPont=false;lineCache.Start={ID:_i98,Value:data[_i98]};//第1个点
|
|
10458
10625
|
}}}//最后一组线
|
|
10459
|
-
if(bFirstPoint==true&&bSecondPont==true){var _lineData=this.CalculateDrawLine(lineCache);for(var _j9 in _lineData){var
|
|
10626
|
+
if(bFirstPoint==true&&bSecondPont==true){var _lineData=this.CalculateDrawLine(lineCache);for(var _j9 in _lineData){var _item12=_lineData[_j9];drawData[_item12.ID]=_item12.Value;}}}if(expand==1)this.CalculateDrawDataExtendLine(drawData);//右延长线
|
|
10460
10627
|
return result;};/*
|
|
10461
10628
|
画出带状线.
|
|
10462
10629
|
用法: DRAWBAND(VAL1,COLOR1,VAL2,COLOR2),当VAL1>VAL2时,在VAL1和VAL2之间填充COLOR1;当VAL1<VAL2时,填充COLOR2,这里的颜色均使用RGB函数计算得到.
|
|
@@ -10469,8 +10636,8 @@ if(color)result.Color[0]=color.toLowerCase();if(color2)result.Color[1]=color2.to
|
|
|
10469
10636
|
{for(var i in condition){drawData[i]=null;var condItem=condition[i];if(!condItem)continue;var value=this.GetDataByIndex(data,i);if(!value.Result)continue;var value2=this.GetDataByIndex(data2,i);if(!value2.Result)continue;var item={Value:value.Data,Value2:value2.Data};drawData[i]=item;}}else{if(condition){for(var i=0;i<this.SymbolData.Data.Data.length;++i)//以K线长度为数据长度
|
|
10470
10637
|
{drawData[i]=null;var value=this.GetDataByIndex(data,i);if(!value.Result)continue;var value2=this.GetDataByIndex(data2,i);if(!value2.Result)continue;var item={Value:value.Data,Value2:value2.Data};drawData[i]=item;}}}return result;};//DRAWKLINE(HIGH,OPEN,LOW,CLOSE).
|
|
10471
10638
|
//用法:以HIGH为最高价,OPEN为开盘价,LOW为最低,CLOSE收盘画K线
|
|
10472
|
-
this.DRAWKLINE=function(high,open,low,close){var drawData=[];var result={DrawData:drawData,DrawType:'DRAWKLINE'};var count=Math.max(high.length,open.length,low.length,close.length);for(var
|
|
10473
|
-
this.DRAWKLINE_IF=function(condition,high,open,low,close){var drawData=[];var result={DrawData:drawData,DrawType:'DRAWKLINE_IF'};var count=Math.max(condition.length,high.length,open.length,low.length,close.length);for(var
|
|
10639
|
+
this.DRAWKLINE=function(high,open,low,close){var drawData=[];var result={DrawData:drawData,DrawType:'DRAWKLINE'};var count=Math.max(high.length,open.length,low.length,close.length);for(var _i99=0;_i99<count;++_i99){var _item13={Open:null,High:null,Low:null,Close:null};if(_i99<high.length&&_i99<open.length&&_i99<low.length&&_i99<close.length){_item13.Open=open[_i99];_item13.High=high[_i99];_item13.Low=low[_i99];_item13.Close=close[_i99];}drawData[_i99]=_item13;}return result;};//满足条件画一根K线
|
|
10640
|
+
this.DRAWKLINE_IF=function(condition,high,open,low,close){var drawData=[];var result={DrawData:drawData,DrawType:'DRAWKLINE_IF'};var count=Math.max(condition.length,high.length,open.length,low.length,close.length);for(var _i100=0;_i100<count;++_i100){var _item14={Open:null,High:null,Low:null,Close:null};if(_i100<high.length&&_i100<open.length&&_i100<low.length&&_i100<close.length&&_i100<condition.length){if(condition[_i100]){_item14.Open=open[_i100];_item14.High=high[_i100];_item14.Low=low[_i100];_item14.Close=close[_i100];}}drawData[_i100]=_item14;}return result;};//叠加一个K线
|
|
10474
10641
|
this.DRAWOVERLAYKLINE=function(open,high,low,close){var drawData=[];var result={DrawData:drawData,DrawType:'DRAWOVERLAYKLINE'};var count=Math.max(high.length,open.length,low.length,close.length);var kData=this.SymbolData.Data.Data;for(var i=0;i<count;++i){var item={Open:null,High:null,Low:null,Close:null};var kItem=kData[i];if(i<high.length&&i<open.length&&i<low.length&&i<close.length&&IFrameSplitOperator.IsNumber(open[i])&&IFrameSplitOperator.IsNumber(high[i])&&IFrameSplitOperator.IsNumber(low[i])&&IFrameSplitOperator.IsNumber(low[i])){item.Open=open[i];item.High=high[i];item.Low=low[i];item.Close=close[i];item.Date=kItem.Date;if(IFrameSplitOperator.IsNumber(kItem.Time))item.Time=kItem.Time;}drawData[i]=item;}return result;};/*
|
|
10475
10642
|
DRAWCOLORKLINE 绘制K线
|
|
10476
10643
|
用法:
|
|
@@ -10494,11 +10661,11 @@ this.DRAWOVERLAYKLINE=function(open,high,low,close){var drawData=[];var result={
|
|
|
10494
10661
|
}else if(bFirstPoint==true&&bSecondPont==false){if(!this.IsNumber(data[i]))continue;lineCache.End={ID:parseInt(i),Value:data[i]};//第2个点
|
|
10495
10662
|
//根据起始点和结束点 计算中间各个点的数据
|
|
10496
10663
|
var lineData=this.CalculateDrawLine(lineCache);//计算2个点的线上 其他点的数值
|
|
10497
|
-
for(var _j10 in lineData){var
|
|
10498
|
-
}else if(bFirstPoint==true&&bSecondPont==false){if(condition[
|
|
10664
|
+
for(var _j10 in lineData){var _item15=lineData[_j10];drawData[_item15.ID]=_item15.Value;}var start={ID:lineCache.End.ID,Value:lineCache.End.Value};lineCache={Start:start,End:{}};}}this.CalculateDrawDataExtendLine(drawData);}else{var _lineCache={Start:{},End:{},List:[]};for(var _i101 in condition){drawData[_i101]=null;if(bFirstPoint==false&&bSecondPont==false){if(condition[_i101]==null||!condition[_i101])continue;if(_i101>=data.length||!this.IsNumber(data[_i101]))continue;bFirstPoint=true;_lineCache.Start={ID:parseInt(_i101),Value:data[_i101]};//第1个点
|
|
10665
|
+
}else if(bFirstPoint==true&&bSecondPont==false){if(condition[_i101]==null||!condition[_i101])continue;if(_i101>=data.length||!this.IsNumber(data[_i101]))continue;_lineCache.End={ID:parseInt(_i101),Value:data[_i101]};//第2个点
|
|
10499
10666
|
//根据起始点和结束点 计算中间各个点的数据
|
|
10500
10667
|
var _lineData2=this.CalculateDrawLine(_lineCache);//计算2个点的线上 其他点的数值
|
|
10501
|
-
for(var _j11 in _lineData2){var
|
|
10668
|
+
for(var _j11 in _lineData2){var _item16=_lineData2[_j11];drawData[_item16.ID]=_item16.Value;}var _start={ID:_lineCache.End.ID,Value:_lineCache.End.Value};_lineCache={Start:_start,End:{}};}}this.CalculateDrawDataExtendLine(drawData);}}return result;};this.CalculateDrawDataExtendLine=function(drawData,maxCount){if(maxCount<0)return;var x2=null;var count=drawData.length;if(this.IsNumber(maxCount)&&maxCount<count)count=maxCount;for(var i=count-1;i>=0;--i){if(this.IsNumber(drawData[i])){x2=i;break;}}//y3=(y1-y2)*(x3-x1)/(x2-x1)
|
|
10502
10669
|
if(x2!=null&&x2-1>=0){var x1=x2-1;for(var i=x2+1;i<count;++i){var y1=drawData[x1];var y2=drawData[x2];var y3=(y1-y2)*(i-x1)/(x2-x1);if(y1-y3<0)break;drawData[i]=y1-y3;}}};/*
|
|
10503
10670
|
画出数字.
|
|
10504
10671
|
用法:
|
|
@@ -10703,10 +10870,12 @@ this.DRAWLASTBARTEXT=function(data,text){var drawItem={Value:null,Text:text};if(
|
|
|
10703
10870
|
//DRAWLASTBARNUMBER(L,REF(C,1),2,COLORRED),ALIGN0,VALIGN0;//表示最后一根k线的最低价处以红色显示昨收盘价数值(精确2位小数),标注文字居左,居上对齐。
|
|
10704
10871
|
this.DRAWLASTBARNUMBER=function(data,value,dec,color){var drawItem={Value:null,Text:null,Color:color};if(IFrameSplitOperator.IsNonEmptyArray(data))drawItem.Value=data[data.length-1];else drawItem.Value=data;var precision=2;if(IFrameSplitOperator.IsNumber(dec))precision=parseInt(dec);if(IFrameSplitOperator.IsNumber(value)){drawItem.Text=value.toFixed(precision);}else if(IFrameSplitOperator.IsNonEmptyArray(value)){var lastValue=value[value.length-1];if(IFrameSplitOperator.IsNumber(lastValue))drawItem.Text=lastValue.toFixed(precision);}var result={DrawData:drawItem,DrawType:'DRAWLASTBARNUMBER'};return result;};//表格
|
|
10705
10872
|
this.TABLE_CELL=function(data,color,textAlign,bgColor){var text=null;if(IFrameSplitOperator.IsString(data)){text=data;}else if(IFrameSplitOperator.IsNonEmptyArray(data)){var precision=2;var lastValue=data[data.length-1];if(IFrameSplitOperator.IsNumber(lastValue))text=lastValue.toFixed(precision);else if(IFrameSplitOperator.IsString(lastValue))text=lastValue;}var cellItem={Text:text};if(color)cellItem.Color=color;if(bgColor)cellItem.BGColor=bgColor;if(IFrameSplitOperator.IsString(textAlign)){var strValue=textAlign.toLowerCase();//转小写
|
|
10706
|
-
cellItem.TextAlign=strValue;}return cellItem;};this.TABLE_ROW=function(aryData){var aryCell=[];for(var i=0;i<aryData.length;++i){var item=aryData[i];aryCell.push(item);}return aryCell;};this.DRAWTABLE=function(aryData){var tableData=[];for(var i=0;i<aryData.length;++i){var item=aryData[i];tableData.push({AryCell:item});}return result={DrawData:{TableData:tableData},DrawType:'DRAW_SIMPLE_TABLE'};}
|
|
10707
|
-
|
|
10873
|
+
cellItem.TextAlign=strValue;}return cellItem;};this.TABLE_ROW=function(aryData){var aryCell=[];for(var i=0;i<aryData.length;++i){var item=aryData[i];aryCell.push(item);}return aryCell;};this.DRAWTABLE=function(aryData){var tableData=[];for(var i=0;i<aryData.length;++i){var item=aryData[i];tableData.push({AryCell:item});}return result={DrawData:{TableData:tableData},DrawType:'DRAW_SIMPLE_TABLE'};};//饼图
|
|
10874
|
+
this.PIE_CELL=function(value,color,text,textColor,lineColor){var cellItem={Value:value,Color:color};if(text)cellItem.Text=text;if(textColor)cellItem.TextColor=textColor;if(lineColor)cellItem.LineColor=lineColor;return cellItem;};//0=Radius半径
|
|
10875
|
+
this.DRAWPIE=function(aryData){var radius=aryData[0];var aryCell=[];for(var i=1;i<aryData.length;++i){aryCell.push(aryData[i]);}return result={DrawData:{Data:aryCell,Radius:radius},DrawType:"DRAW_SIMPLE_PIE"};};}JSDraw.prototype.CalculateDrawLine=function(lineCache){lineCache.List=[];for(var _i102=lineCache.Start.ID;_i102<=lineCache.End.ID;++_i102){lineCache.List.push(_i102);}var height=Math.abs(lineCache.Start.Value-lineCache.End.Value);var width=lineCache.List.length-1;var result=[];result.push({ID:lineCache.Start.ID,Value:lineCache.Start.Value});//第1个点
|
|
10876
|
+
if(lineCache.Start.Value>lineCache.End.Value){for(var _i103=1;_i103<lineCache.List.length-1;++_i103){var value=height*(lineCache.List.length-1-_i103)/width+lineCache.End.Value;result.push({ID:lineCache.List[_i103],Value:value});}}else{for(var _i104=1;_i104<lineCache.List.length-1;++_i104){var value=height*_i104/width+lineCache.Start.Value;result.push({ID:lineCache.List[_i104],Value:value});}}result.push({ID:lineCache.End.ID,Value:lineCache.End.Value});//最后一个点
|
|
10708
10877
|
return result;};//是否有是有效的数字
|
|
10709
|
-
JSDraw.prototype.IsNumber=function(value){if(value==null)return false;if(isNaN(value))return false;return true;};JSDraw.prototype.IsDrawFunction=function(name){var setFunctionName=new _set2.default(["STICKLINE","DRAWTEXT",'SUPERDRAWTEXT','DRAWLINE','DRAWBAND','DRAWKLINE',"DRAWKLINE1",'DRAWKLINE_IF',"DRAWCOLORKLINE",'PLOYLINE',"DRAWOVERLAYKLINE",'POLYLINE','DRAWNUMBER',"DRAWNUMBER_FIX",'DRAWICON','DRAWCHANNEL','PARTLINE','DRAWTEXT_FIX','DRAWGBK','DRAWTEXT_LINE','DRAWRECTREL',"DRAWTEXTABS","DRAWTEXTREL",'DRAWOVERLAYLINE',"FILLRGN","FILLRGN2","FILLTOPRGN","FILLBOTTOMRGN","FILLVERTICALRGN","FLOATRGN","DRAWSL","DRAWGBK2","DRAWGBK_DIV","VERTLINE","HORLINE","TIPICON","BUY","SELL","SELLSHORT","BUYSHORT","DRAWLASTBARICON","DRAWLASTBARNUMBER","DRAWLASTBARTEXT","DRAWTABLE"]);if(setFunctionName.has(name))return true;return false;};JSDraw.prototype.RemoveZero=function(strValue){while(strValue.length>0){var index=strValue.length-1;var ch=strValue[index];if(ch=="0"){strValue=strValue.substr(0,index);}else if(ch=="."){strValue=strValue.substr(0,index);break;}else{break;}}return strValue;};//http://www.newone.com.cn/helpcontroller/index?code=zszy_pc
|
|
10878
|
+
JSDraw.prototype.IsNumber=function(value){if(value==null)return false;if(isNaN(value))return false;return true;};JSDraw.prototype.IsDrawFunction=function(name){var setFunctionName=new _set2.default(["STICKLINE","DRAWTEXT",'SUPERDRAWTEXT','DRAWLINE','DRAWBAND','DRAWKLINE',"DRAWKLINE1",'DRAWKLINE_IF',"DRAWCOLORKLINE",'PLOYLINE',"DRAWOVERLAYKLINE",'POLYLINE','DRAWNUMBER',"DRAWNUMBER_FIX",'DRAWICON','DRAWCHANNEL','PARTLINE','DRAWTEXT_FIX','DRAWGBK','DRAWTEXT_LINE','DRAWRECTREL',"DRAWTEXTABS","DRAWTEXTREL",'DRAWOVERLAYLINE',"FILLRGN","FILLRGN2","FILLTOPRGN","FILLBOTTOMRGN","FILLVERTICALRGN","FLOATRGN","DRAWSL","DRAWGBK2","DRAWGBK_DIV","VERTLINE","HORLINE","TIPICON","BUY","SELL","SELLSHORT","BUYSHORT","DRAWLASTBARICON","DRAWLASTBARNUMBER","DRAWLASTBARTEXT","DRAWTABLE","DRAWPIE"]);if(setFunctionName.has(name))return true;return false;};JSDraw.prototype.RemoveZero=function(strValue){while(strValue.length>0){var index=strValue.length-1;var ch=strValue[index];if(ch=="0"){strValue=strValue.substr(0,index);}else if(ch=="."){strValue=strValue.substr(0,index);break;}else{break;}}return strValue;};//http://www.newone.com.cn/helpcontroller/index?code=zszy_pc
|
|
10710
10879
|
var DYNAINFO_ARGUMENT_ID={YCLOSE:3,OPEN:4,HIGH:5,LOW:6,CLOSE:7,VOL:8,AMOUNT:10,AMPLITUDE:13,//振幅
|
|
10711
10880
|
INCREASE:14,//涨幅
|
|
10712
10881
|
EXCHANGERATE:37//换手率
|
|
@@ -10861,12 +11030,12 @@ if(periodInfo.Period==0)hisData=dayData.Data;else hisData=dayData.GetPeriodData(
|
|
|
10861
11030
|
var result;if(curPeriodInfo.Period==periodInfo.Period){result=this.Data;}else{var hisData;if(this.IsApiPeriod){if(!this.PeriodData.has(periodName))return null;hisData=this.PeriodData.get(periodName);}else{if(ChartData.IsMinutePeriod(curPeriodInfo.Period,true)&&ChartData.IsDayPeriod(periodInfo.Period,true)){var dayData=this.PeriodData.get('DAY');//日线
|
|
10862
11031
|
if(periodInfo.Period==0)hisData=dayData;else hisData=dayData.GetPeriodData(periodInfo.Period);//日线周期
|
|
10863
11032
|
}else{var bindData=new ChartData();bindData.Data=this.SourceData.Data;bindData.Period=this.Period;bindData.Right=this.Right;if(ChartData.IsDayPeriod(periodInfo.Period,true)&&bindData.Right>0)//日线数据才复权
|
|
10864
|
-
{var rightData=bindData.GetRightData(bindData.Right);bindData.Data=rightData;}hisData=bindData.GetPeriodData(periodInfo.Period);}}var data=this.Data.ConverPeriod(hisData,this.Period,periodInfo.Period);var result=new ChartData();result.Data=data;}if(IFrameSplitOperator.IsPlusNumber(n)){var refResult=new ChartData();var data=result.GetRef(n);refResult.Data=data;result=refResult;}var upperSymbol=this.Symbol.toUpperCase();switch(valueName){case'C':case"CLOSE":return result.GetClose();case'O':case"OPEN":return result.GetOpen();case'H':case"HIGH":return result.GetHigh();case'L':case"LOW":return result.GetLow();case'AMO':case"AMOUNT":return result.GetAmount();case'V':case"VOL":if(MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol))return result.GetVol(100);return result.GetVol();case"VOLINSTK":return result.GetPosition();default:return null;}};this.GetCurrBarsCount=function(){var result=[];if(!this.Data||!this.Data.Data||!this.Data.Data.length)return result;var lCount=this.Data.Data.length;for(var
|
|
11033
|
+
{var rightData=bindData.GetRightData(bindData.Right);bindData.Data=rightData;}hisData=bindData.GetPeriodData(periodInfo.Period);}}var data=this.Data.ConverPeriod(hisData,this.Period,periodInfo.Period);var result=new ChartData();result.Data=data;}if(IFrameSplitOperator.IsPlusNumber(n)){var refResult=new ChartData();var data=result.GetRef(n);refResult.Data=data;result=refResult;}var upperSymbol=this.Symbol.toUpperCase();switch(valueName){case'C':case"CLOSE":return result.GetClose();case'O':case"OPEN":return result.GetOpen();case'H':case"HIGH":return result.GetHigh();case'L':case"LOW":return result.GetLow();case'AMO':case"AMOUNT":return result.GetAmount();case'V':case"VOL":if(MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol))return result.GetVol(100);return result.GetVol();case"VOLINSTK":return result.GetPosition();default:return null;}};this.GetCurrBarsCount=function(){var result=[];if(!this.Data||!this.Data.Data||!this.Data.Data.length)return result;var lCount=this.Data.Data.length;for(var _i105=lCount-1;_i105>=0;--_i105){result.push(_i105+1);}//数据从0开始
|
|
10865
11034
|
return result;};//BARPOS 返回从第一根K线开始到当前的周期数。
|
|
10866
11035
|
//注:
|
|
10867
11036
|
//1、BARPOS返回本地已有的K线根数,从本机上存在的数据开始算起。
|
|
10868
11037
|
//2、本机已有的第一根K线上返回值为1。
|
|
10869
|
-
this.GetBarPos=function(){var result=[];if(!this.Data||!this.Data.Data||!this.Data.Data.length)return result;var lCount=this.Data.Data.length;for(var
|
|
11038
|
+
this.GetBarPos=function(){var result=[];if(!this.Data||!this.Data.Data||!this.Data.Data.length)return result;var lCount=this.Data.Data.length;for(var _i106=0;_i106<lCount;++_i106){result.push(_i106+1);}return result;};this.GetTotalTradeMinuteCount=function(){var data=g_MinuteCoordinateData.GetCoordinateData(this.Symbol);if(data&&data.Count>0)return data.Count-1;return 242;};this.GetTotalBarsCount=function(){var lCount=this.Data.Data.length;return lCount;};this.GetIsLastBar=function(){var result=[];if(!this.Data||!this.Data.Data||!this.Data.Data.length)return result;var lCount=this.Data.Data.length;for(var _i107=0;_i107<lCount;++_i107){if(_i107==lCount-1)result.push(1);else result.push(0);}return result;};//BARSTATUS返回数据位置信息,1表示第一根K线,2表示最后一个数据,0表示中间位置.
|
|
10870
11039
|
//例如:BARSTATUS=2表示当天是该数据的最后一个周期.
|
|
10871
11040
|
this.GetBarStatus=function(){var result=[];if(!this.Data||!this.Data.Data||!this.Data.Data.length)return result;var lCount=this.Data.Data.length;for(var i=0;i<lCount;++i){if(i==0)result[i]=1;else if(i==lCount-1)result[i]=2;else result[i]=0;}return result;};//求真实波幅, (最高-最低),(最高-昨收),(最低-昨收)三者绝对值中的最大值.
|
|
10872
11041
|
//用法:
|
|
@@ -10887,7 +11056,7 @@ case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_REPAY://卖出信息-偿还量
|
|
|
10887
11056
|
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_NET://卖出信息-融券净卖出
|
|
10888
11057
|
fieldList.push("margin.sell");break;}//请求数据
|
|
10889
11058
|
JSNetwork.HttpRequest({url:this.StockHistoryDayApiUrl,data:{"field":fieldList,"symbol":[this.Symbol],"orderfield":"date"},type:"post",dataType:"json",async:true,success:function success(recvData){self.RecvMarginData(recvData,jobID);self.Execute.RunNextJob();}});};this.RecvMarginData=function(data,jobID){JSConsole.Complier.Log(data);if(!data.stock||data.stock.length!=1)return;var stock=data.stock[0];var aryData=new Array();var aryData2=[],aryData3=[],aryData4=[];//其他3个数据
|
|
10890
|
-
for(var
|
|
11059
|
+
for(var _i108 in stock.stockday){var item=stock.stockday[_i108];var marginData=item.margin;if(!marginData)continue;var indexData=new SingleData();indexData.Date=item.date;switch(jobID){case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BALANCE:if(!this.IsNumber(marginData.balance))continue;indexData.Value=marginData.balance;//融资融券余额
|
|
10891
11060
|
aryData.push(indexData);break;case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_RATE:if(!this.IsNumber(marginData.rate))continue;indexData.Value=marginData.rate;//融资占比
|
|
10892
11061
|
aryData.push(indexData);break;case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BUY_BALANCE://买入信息-融资余额
|
|
10893
11062
|
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BUY_AMOUNT://买入信息-买入额
|
|
@@ -10897,9 +11066,9 @@ var buyData=marginData.buy;if(!buyData)continue;if(!this.IsNumber(buyData.balanc
|
|
|
10897
11066
|
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_VOLUME://卖出信息-卖出量
|
|
10898
11067
|
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_REPAY://卖出信息-偿还量
|
|
10899
11068
|
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_NET://卖出信息-融券净卖出
|
|
10900
|
-
var sellData=marginData.sell;if(!sellData)continue;if(!this.IsNumber(sellData.balance)||!this.IsNumber(sellData.volume)||!this.IsNumber(sellData.repay)||!this.IsNumber(sellData.net))continue;indexData.Value=buyData.balance;var indexData2=new SingleData();indexData2.Date=item.date;indexData2.Value=buyData.volume;var indexData3=new SingleData();indexData3.Date=item.date;indexData3.Value=buyData.repay;var indexData4=new SingleData();indexData4.Date=item.date;indexData4.Value=buyData.net;aryData.push(indexData);aryData2.push(indexData2);aryData3.push(indexData3);aryData4.push(indexData4);break;default:continue;}}var allData=[];if(jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BALANCE||jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_RATE){allData.push({JobID:jobID,Data:aryData});}else if(jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BUY_BALANCE||jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BUY_AMOUNT||jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BUY_REPAY||jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BUY_NET){allData.push({JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BUY_BALANCE,Data:aryData});allData.push({JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BUY_AMOUNT,Data:aryData2});allData.push({JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BUY_REPAY,Data:aryData3});allData.push({JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BUY_NET,Data:aryData4});}else if(jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_BALANCE||jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_VOLUME||jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_REPAY||jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_NET){allData.push({JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_BALANCE,Data:aryData});allData.push({JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_VOLUME,Data:aryData2});allData.push({JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_REPAY,Data:aryData3});allData.push({JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_NET,Data:aryData4});}for(var
|
|
11069
|
+
var sellData=marginData.sell;if(!sellData)continue;if(!this.IsNumber(sellData.balance)||!this.IsNumber(sellData.volume)||!this.IsNumber(sellData.repay)||!this.IsNumber(sellData.net))continue;indexData.Value=buyData.balance;var indexData2=new SingleData();indexData2.Date=item.date;indexData2.Value=buyData.volume;var indexData3=new SingleData();indexData3.Date=item.date;indexData3.Value=buyData.repay;var indexData4=new SingleData();indexData4.Date=item.date;indexData4.Value=buyData.net;aryData.push(indexData);aryData2.push(indexData2);aryData3.push(indexData3);aryData4.push(indexData4);break;default:continue;}}var allData=[];if(jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BALANCE||jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_RATE){allData.push({JobID:jobID,Data:aryData});}else if(jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BUY_BALANCE||jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BUY_AMOUNT||jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BUY_REPAY||jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BUY_NET){allData.push({JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BUY_BALANCE,Data:aryData});allData.push({JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BUY_AMOUNT,Data:aryData2});allData.push({JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BUY_REPAY,Data:aryData3});allData.push({JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BUY_NET,Data:aryData4});}else if(jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_BALANCE||jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_VOLUME||jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_REPAY||jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_NET){allData.push({JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_BALANCE,Data:aryData});allData.push({JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_VOLUME,Data:aryData2});allData.push({JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_REPAY,Data:aryData3});allData.push({JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_NET,Data:aryData4});}for(var _i109 in allData){var aryFixedData=this.SourceData.GetFittingData(allData[_i109].Data);var bindData=new ChartData();bindData.Data=aryFixedData;bindData.Period=this.Period;//周期
|
|
10901
11070
|
if(bindData.Period>0)//周期数据
|
|
10902
|
-
{var periodData=bindData.GetPeriodSingleData(bindData.Period);bindData.Data=periodData;}var _data2=bindData.GetValue();this.MarginData.set(allData[
|
|
11071
|
+
{var periodData=bindData.GetPeriodSingleData(bindData.Period);bindData.Data=periodData;}var _data2=bindData.GetValue();this.MarginData.set(allData[_i109].JobID,_data2);}};this.GetNewsAnalysisCacheData=function(id,node){var jobID=JS_EXECUTE_JOB_ID.GetNewsAnalysisID(id);if(!jobID)this.Execute.ThrowUnexpectedNode(node,'不支持NEWS('+id+')');if(this.NewsAnalysisData.has(jobID))return this.NewsAnalysisData.get(jobID);return[];};this.GetHKToSHSZData=function(job){var args=job.Args;var code=this.Symbol;if(args.length>0){var item=args[0];if(item.Type==Syntax.Literal){code=item.Value;}else if(item.Type==Syntax.Identifier)//变量 !!只支持默认的变量值
|
|
10903
11072
|
{var isFind=false;for(var j in this.Arguments){var argItem=this.Arguments[j];if(argItem.Name==item.Name){code=argItem.Value;isFind=true;break;}}if(!isFind){var token=job.Token;this.Execute.ErrorHandler.ThrowError(token.Index,token.Line,0,'HK2SHSZ() Error: can\'t read '+item.Name);}}}job.Symbol=code;if(code==1||code==2||code==3)//下载全市场数据
|
|
10904
11073
|
this.GetHKToSHSZMarketData(code,job);else this.GetHKToSHSZStockData(code,job);//下载个股数据
|
|
10905
11074
|
};this.GetHKToSHSZStockData=function(symbol,job){if(this.HKToSHSZData.has(symbol))return this.Execute.RunNextJob();var upperSymbol=symbol.toLowerCase();//代码小写
|
|
@@ -10912,9 +11081,9 @@ if(bindData.Period>0)//周期数据
|
|
|
10912
11081
|
JSNetwork.HttpRequest({url:url,data:{"symbol":this.Symbol,'daycount':this.MaxRequestMinuteDayCount},type:"post",dataType:"json",async:true,success:function success(recvData){self.RecvMulitMinuteHKToSHSZData(recvData,job);self.Execute.RunNextJob();}});}else{//请求数据
|
|
10913
11082
|
JSNetwork.HttpRequest({url:url,type:"get",dataType:"json",async:true,success:function success(recvData){if(dataType==0)self.RecvHKToSHSZData(recvData,job);else if(dataType==1)self.RecvMinuteHKToSHSZData(recvData,job);self.Execute.RunNextJob();}});}};this.RecvMinuteHKToSHSZData=function(data,job){var arySHSZData=[],arySHData=[],arySZData=[];if(this.IsBeforeData){for(i in this.SourceData.Data){var item=this.SourceData.Data[i];if(item.Before){arySHSZData.push(null);arySHData.push(null);arySZData.push(null);}else{break;}}for(var i=0;i<data.time.length;++i){var time=data.time[i];if(time===925)continue;var SHValue=data.hk2sh[i];var SZValue=data.hk2sz[i];var total=SHValue+SZValue;arySHSZData.push(total);arySHData.push(SHValue);arySZData.push(SZValue);}}else{for(var i=0;i<data.time.length;++i){var time=data.time[i];var SHValue=data.hk2sh[i];var SZValue=data.hk2sz[i];var total=SHValue+SZValue;arySHSZData.push(total);arySHData.push(SHValue);arySZData.push(SZValue);}}var allData=[{Data:arySHSZData,ID:1},{Data:arySHData,ID:2},{Data:arySZData,ID:3}];for(var i in allData){var item=allData[i];this.HKToSHSZData.set(item.ID,item.Data);}};this.RecvHKToSHSZData=function(data,job){var arySHSZData=[],arySHData=[],arySZData=[];for(var i=0;i<data.date.length;++i){var date=data.date[i];var SHValue=data.hk2sh[i]*1000000;//单位是百万
|
|
10914
11083
|
var SZValue=data.hk2sz[i]*1000000;//单位是百万
|
|
10915
|
-
var total=SHValue+SZValue;var itemSHSZData=new SingleData();itemSHSZData.Date=date;itemSHSZData.Value=total;var itemSHData=new SingleData();itemSHData.Date=date;itemSHData.Value=SHValue;var itemSZData=new SingleData();itemSZData.Date=date;itemSZData.Value=SZValue;arySHSZData.push(itemSHSZData);arySHData.push(itemSHData);arySZData.push(itemSZData);}var allData=[{Data:arySHSZData,ID:1},{Data:arySHData,ID:2},{Data:arySZData,ID:3}];for(var
|
|
11084
|
+
var total=SHValue+SZValue;var itemSHSZData=new SingleData();itemSHSZData.Date=date;itemSHSZData.Value=total;var itemSHData=new SingleData();itemSHData.Date=date;itemSHData.Value=SHValue;var itemSZData=new SingleData();itemSZData.Date=date;itemSZData.Value=SZValue;arySHSZData.push(itemSHSZData);arySHData.push(itemSHData);arySZData.push(itemSZData);}var allData=[{Data:arySHSZData,ID:1},{Data:arySHData,ID:2},{Data:arySZData,ID:3}];for(var _i110 in allData){var aryFixedData=this.Data.GetFittingData(allData[_i110].Data);var bindData=new ChartData();bindData.Data=aryFixedData;bindData.Period=this.Period;//周期
|
|
10916
11085
|
if(bindData.Period>0)//周期数据
|
|
10917
|
-
{var periodData=bindData.GetPeriodSingleData(bindData.Period);bindData.Data=periodData;}var _data3=bindData.GetValue();this.HKToSHSZData.set(allData[
|
|
11086
|
+
{var periodData=bindData.GetPeriodSingleData(bindData.Period);bindData.Data=periodData;}var _data3=bindData.GetValue();this.HKToSHSZData.set(allData[_i110].ID,_data3);}};this.RecvMulitMinuteHKToSHSZData=function(data,job)//多日分时图北上资金
|
|
10918
11087
|
{if(!data.data||data.data.length<=0)return;var arySHSZData=[],arySHData=[],arySZData=[];for(var i=0,j=0;i<this.Data.Data.length&&j<data.data.length;){arySHSZData[i]=null;arySHData[i]=null;arySZData[i]=null;var item=this.Data.Data[i];var dateTime=item.DateTime;//日期加时间
|
|
10919
11088
|
if(!dateTime){++i;continue;}var aryValue=dateTime.split(' ');if(aryValue.length!=2){++i;continue;}var date=parseInt(aryValue[0]);var day=data.data[j];if(!day.minute||day.minute.length<=0){++j;continue;}if(day.date>date){++i;continue;}else if(day.date<date){++j;continue;}for(var k in day.minute){var timeItem=day.minute[k];var SHValue=timeItem[1];var SZValue=timeItem[2];var total=SHValue+SZValue;arySHSZData[i]=total;arySHData[i]=SHValue;arySZData[i]=SZValue;++i;}++j;}var allData=[{Data:arySHSZData,ID:1},{Data:arySHData,ID:2},{Data:arySZData,ID:3}];for(var i in allData){var item=allData[i];this.HKToSHSZData.set(item.ID,item.Data);}};//北上资金函数
|
|
10920
11089
|
this.GetHKToSHSZCacheData=function(code,node){//if (!this.HKToSHSZData.has(code)) this.Execute.ThrowUnexpectedNode(node,`不支持HK2SHSZ(${code})`);
|
|
@@ -11046,11 +11215,11 @@ this.Execute.ThrowUnexpectedNode(node,funcName+'() Error: '+indexInfo.Error);}va
|
|
|
11046
11215
|
if(!this.ReadIndexArgumentValue(args,indexInfo))this.Execute.ThrowUnexpectedNode(node,funcName+'() \u6307\u6807\u53C2\u6570\u9519\u8BEF: '+indexInfo.Error);var key=this.GenerateScriptIndexKey(indexInfo);if(!this.ScriptIndexOutData.has(key))return null;return this.ScriptIndexOutData.get(key);};this.JsonDataToHistoryData=function(data){var list=data.data;var aryDayData=new Array();var date=0,yclose=1,open=2,high=3,low=4,close=5,vol=6,amount=7;var up=8,down=9,stop=10,unchanged=11;for(var i=0;i<list.length;++i){var item=new HistoryData();item.Date=list[i][date];item.Open=list[i][open];item.YClose=list[i][yclose];item.Close=list[i][close];item.High=list[i][high];item.Low=list[i][low];item.Vol=list[i][vol];//原始单位股
|
|
11047
11216
|
item.Amount=list[i][amount];//上涨 下跌家数
|
|
11048
11217
|
if(list[i].length>up)item.Up=list[i][up];if(list[i].length>down)item.Down=list[i][down];if(list[i].length>stop)item.Stop=list[i][stop];if(list[i].length>unchanged)item.Unchanged=list[i][unchanged];if(isNaN(item.Open)||item.Open<=0)continue;//停牌的数据剔除
|
|
11049
|
-
aryDayData.push(item);}return aryDayData;};this.JsonDataToMinuteHistoryData=function(data){var list=data.data;var aryDayData=new Array();var date=0,yclose=1,open=2,high=3,low=4,close=5,vol=6,amount=7,time=8;for(var i=0;i<list.length;++i){var
|
|
11050
|
-
|
|
11051
|
-
aryDayData.push(
|
|
11052
|
-
for(var
|
|
11053
|
-
{for(var _j12=
|
|
11218
|
+
aryDayData.push(item);}return aryDayData;};this.JsonDataToMinuteHistoryData=function(data){var list=data.data;var aryDayData=new Array();var date=0,yclose=1,open=2,high=3,low=4,close=5,vol=6,amount=7,time=8;for(var i=0;i<list.length;++i){var _item17=new HistoryData();_item17.Date=list[i][date];_item17.Open=list[i][open];_item17.YClose=list[i][yclose];_item17.Close=list[i][close];_item17.High=list[i][high];_item17.Low=list[i][low];_item17.Vol=list[i][vol];//原始单位股
|
|
11219
|
+
_item17.Amount=list[i][amount];_item17.Time=list[i][time];// if (isNaN(item.Open) || item.Open<=0) continue; //停牌的数据剔除
|
|
11220
|
+
aryDayData.push(_item17);}// 无效数据处理
|
|
11221
|
+
for(var _i111=0;_i111<aryDayData.length;++_i111){var minData=aryDayData[_i111];if(minData==null)coninue;if(isNaN(minData.Open)||minData.Open<=0||isNaN(minData.High)||minData.High<=0||isNaN(minData.Low)||minData.Low<=0||isNaN(minData.Close)||minData.Close<=0||isNaN(minData.YClose)||minData.YClose<=0){if(_i111==0){if(minData.YClose>0){minData.Open=minData.YClose;minData.High=minData.YClose;minData.Low=minData.YClose;minData.Close=minData.YClose;}}else// 用前一个有效数据填充
|
|
11222
|
+
{for(var _j12=_i111-1;_j12>=0;--_j12){var minData2=aryDayData[_j12];if(minData2==null)coninue;if(minData2.Open>0&&minData2.High>0&&minData2.Low>0&&minData2.Close>0){if(minData.YClose<=0)minData.YClose=minData2.Close;minData.Open=minData2.Open;minData.High=minData2.High;minData.Low=minData2.Low;minData.Close=minData2.Close;break;}}}}}return aryDayData;};//API 返回数据 转化为array[]
|
|
11054
11223
|
this.JsonDataToMinuteData=function(data){var aryMinuteData=new Array();for(var i in data.stock[0].minute){var jsData=data.stock[0].minute[i];var item=new MinuteData();item.Close=jsData.price;item.Open=jsData.open;item.High=jsData.high;item.Low=jsData.low;item.Vol=jsData.vol;//股
|
|
11055
11224
|
item.Amount=jsData.amount;if(i==0)//第1个数据 写死9:25
|
|
11056
11225
|
item.DateTime=data.stock[0].date.toString()+" 0925";else item.DateTime=data.stock[0].date.toString()+" "+jsData.time.toString();item.Date=data.stock[0].date;item.Time=jsData.time;item.Increase=jsData.increase;item.Risefall=jsData.risefall;item.AvPrice=jsData.avprice;aryMinuteData[i]=item;}return aryMinuteData;};//多日日线数据API 转化成array[];
|
|
@@ -11068,23 +11237,23 @@ if(item.Open<=0)item.Open=null;if(item.Close<=0)item.Close=null;if(item.AvPrice<
|
|
|
11068
11237
|
this.CODELIKE=function(value){if(this.Symbol&&this.Symbol.indexOf(value)==0)return 1;return 0;};this.NAMELIKE=function(value){if(this.Name&&this.Name.indexOf(value)==0)return 1;return 0;};/*
|
|
11069
11238
|
SETCODE 市场类型
|
|
11070
11239
|
0:深圳 1:上海,47:中金所期货 28:郑州商品 29:大连商品 30:上海商品,27:香港指数 31:香港主板,48:香港创业板...
|
|
11071
|
-
*/this.SETCODE=function(){if(this.Symbol.indexOf('.sh'))return 1;if(this.Symbol.indexOf('.sz'))return 0;return 0;};this.GetSymbol=function(){return this.Symbol;};this.GetName=function(){return this.Name;};this.DATE=function(){var result=[];if(!this.Data||!this.Data.Data||!this.Data.Data.length)return result;for(var
|
|
11240
|
+
*/this.SETCODE=function(){if(this.Symbol.indexOf('.sh'))return 1;if(this.Symbol.indexOf('.sz'))return 0;return 0;};this.GetSymbol=function(){return this.Symbol;};this.GetName=function(){return this.Name;};this.DATE=function(){var result=[];if(!this.Data||!this.Data.Data||!this.Data.Data.length)return result;for(var _i112 in this.Data.Data){var item=this.Data.Data[_i112];result[_i112]=item.Date-19000000;}return result;};this.YEAR=function(){var result=[];if(!this.Data||!this.Data.Data||!this.Data.Data.length)return result;for(var _i113 in this.Data.Data){var item=this.Data.Data[_i113];if(this.IsNumber(item.Date))result[_i113]=parseInt(item.Date/10000);else result[_i113]=null;}return result;};this.DAY=function(){var result=[];if(!this.Data||!this.Data.Data||!this.Data.Data.length)return result;for(var _i114 in this.Data.Data){var item=this.Data.Data[_i114];if(this.IsNumber(item.Date))result[_i114]=parseInt(item.Date%100);else result[_i114]=null;}return result;};this.MONTH=function(){var result=[];if(!this.Data||!this.Data.Data||!this.Data.Data.length)return result;for(var _i115 in this.Data.Data){var item=this.Data.Data[_i115];if(this.IsNumber(item.Date))result[_i115]=parseInt(item.Date%10000/100);else result[_i115]=null;}return result;};this.TIME=function(){var result=[];if(!this.Data||!this.Data.Data||!this.Data.Data.length)return result;for(var _i116=0;_i116<this.Data.Data.length;++_i116){var item=this.Data.Data[_i116];if(this.IsNumber(item.Time))result[_i116]=item.Time;else result[_i116]=0;}return result;};/*
|
|
11072
11241
|
取得该周期的时分秒,适用于日线以下周期.
|
|
11073
11242
|
用法: TIME2
|
|
11074
11243
|
函数返回有效值范围为(000000-235959)
|
|
11075
|
-
*/this.TIME2=function(){var result=[];if(!this.Data||!this.Data.Data||!this.Data.Data.length)return result;for(var
|
|
11076
|
-
this.WEEK=function(){var result=[];if(!this.Data||!this.Data.Data||!this.Data.Data.length)return result;var tempDate=new Date();for(var
|
|
11244
|
+
*/this.TIME2=function(){var result=[];if(!this.Data||!this.Data.Data||!this.Data.Data.length)return result;for(var _i117=0;_i117<this.Data.Data.length;++_i117){var item=this.Data.Data[_i117];if(this.IsNumber(item.Time))result[_i117]=item.Time*100;else result[_i117]=0;}return result;};this.DateTime=function(){var result=[];if(!this.Data||!this.Data.Data||!this.Data.Data.length)return result;var isKLineMinute=ChartData.IsMinutePeriod(this.Period,true);for(var i=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];if(isKLineMinute){result[i]=item.Date*10000+item.Time;}else{result[i]=item.Date;}}return result;};//星期 1-7
|
|
11245
|
+
this.WEEK=function(){var result=[];if(!this.Data||!this.Data.Data||!this.Data.Data.length)return result;var tempDate=new Date();for(var _i118 in this.Data.Data){var item=this.Data.Data[_i118];result[_i118]=null;if(!this.IsNumber(item.Date))continue;var year=parseInt(item.Date/10000);var month=parseInt(item.Date%10000/100);var day=item.Date%100;tempDate.setFullYear(year,month-1,day);result[_i118]=tempDate.getDay();}return result;};/*
|
|
11077
11246
|
取得该周期的日期离今天的天数.
|
|
11078
11247
|
用法: DAYSTOTODAY
|
|
11079
|
-
*/this.DAYSTOTODAY=function(){var result=[];if(!this.Data||!this.Data.Data||!this.Data.Data.length)return result;var nowDate=new Date();var endDate=new Date(nowDate.getFullYear(),nowDate.getMonth(),nowDate.getDate());for(var
|
|
11248
|
+
*/this.DAYSTOTODAY=function(){var result=[];if(!this.Data||!this.Data.Data||!this.Data.Data.length)return result;var nowDate=new Date();var endDate=new Date(nowDate.getFullYear(),nowDate.getMonth(),nowDate.getDate());for(var _i119=0;_i119<this.Data.Data.length;++_i119){var item=this.Data.Data[_i119];result[_i119]=null;if(!this.IsNumber(item.Date))continue;var year=parseInt(item.Date/10000);var month=parseInt(item.Date%10000/100);var day=item.Date%100;var beginDate=new Date(year,month-1,day);var diffDays=Math.ceil((endDate-beginDate)/(24*60*60*1000));result[_i119]=diffDays;}return result;};/*
|
|
11080
11249
|
取得该周是年内第几个周.
|
|
11081
11250
|
用法:WEEKOFYEAR
|
|
11082
|
-
*/this.WEEKOFYEAR=function(){var result=[];if(!this.Data||!this.Data.Data||!this.Data.Data.length)return result;for(var
|
|
11251
|
+
*/this.WEEKOFYEAR=function(){var result=[];if(!this.Data||!this.Data.Data||!this.Data.Data.length)return result;for(var _i120 in this.Data.Data){var item=this.Data.Data[_i120];result[_i120]=null;if(!this.IsNumber(item.Date))continue;var year=parseInt(item.Date/10000);var month=parseInt(item.Date%10000/100);var day=item.Date%100;var endDate=new Date(year,month-1,day);var beginDate=new Date(year,0,1);var diffDays=Math.ceil((endDate-beginDate)/(24*60*60*1000));diffDays+=beginDate.getDay()+1-1;var week=Math.ceil(diffDays/7);var value=week;result[_i120]=value;}return result;};this.GetYearWeek=function(endDate){var beginDate=new Date(endDate.getFullYear(),0,1);//星期从0-6,0代表星期天,6代表星期六
|
|
11083
11252
|
var endWeek=endDate.getDay();if(endWeek==0)endWeek=7;var beginWeek=beginDate.getDay();if(beginWeek==0)beginWeek=7;//计算两个日期的天数差
|
|
11084
|
-
var millisDiff=endDate.getTime()-beginDate.getTime();var dayDiff=Math.floor((millisDiff+(beginWeek-endWeek)*(24*60*60*1000))/86400000);return Math.ceil(dayDiff/7)+1;};this.REFDATE=function(data,date){var result=null;var findDate=null;if(Array.isArray(date)){if(date.length>0)findDate=date[date.length-1];}else if(this.IsNumber(date)){findDate=date;}if(findDate==null)return null;if(findDate<5000000)findDate+=19000000;var index=null;for(var
|
|
11085
|
-
{if(this.Data.Data[
|
|
11253
|
+
var millisDiff=endDate.getTime()-beginDate.getTime();var dayDiff=Math.floor((millisDiff+(beginWeek-endWeek)*(24*60*60*1000))/86400000);return Math.ceil(dayDiff/7)+1;};this.REFDATE=function(data,date){var result=null;var findDate=null;if(Array.isArray(date)){if(date.length>0)findDate=date[date.length-1];}else if(this.IsNumber(date)){findDate=date;}if(findDate==null)return null;if(findDate<5000000)findDate+=19000000;var index=null;for(var _i121 in this.Data.Data)//查找日期对应的索引
|
|
11254
|
+
{if(this.Data.Data[_i121].Date==findDate){index=parseInt(_i121);break;}}if(index==null||index>=data.length)return null;return data[index];};//用法:结果从0到11,依次分别是1/5/15/30/60分钟,日/周/月,多分钟,多日,季,年
|
|
11086
11255
|
this.PERIOD=function(){//Period周期 0=日线 1=周线 2=月线 3=年线 9=季线 4=1分钟 5=5分钟 6=15分钟 7=30分钟 8=60分钟
|
|
11087
|
-
var PERIOD_MAP=[5,6,7,11,0,1,2,3,4,5,9];if(this.Period>=0&&this.Period<=PERIOD_MAP.length-1)return PERIOD_MAP[this.Period];return this.Period;};this.GetDrawNull=function(){var result=[];if(!this.Data||!this.Data.Data||!this.Data.Data.length)return result;for(var
|
|
11256
|
+
var PERIOD_MAP=[5,6,7,11,0,1,2,3,4,5,9];if(this.Period>=0&&this.Period<=PERIOD_MAP.length-1)return PERIOD_MAP[this.Period];return this.Period;};this.GetDrawNull=function(){var result=[];if(!this.Data||!this.Data.Data||!this.Data.Data.length)return result;for(var _i122 in this.Data.Data){result[_i122]=null;}return result;};this.HOUR=function(){var result=[];if(!this.Data||!this.Data.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return result;for(var i=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];result[i]=0;if(IFrameSplitOperator.IsNumber(item.Time))result[i]=parseInt(item.Time/100);}return result;};this.MINUTE=function(){var result=[];if(!this.Data||!this.Data.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return result;for(var i=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];result[i]=0;if(IFrameSplitOperator.IsNumber(item.Time))result[i]=item.Time%100;}return result;};/*
|
|
11088
11257
|
飞狐函数 SYSPARAM
|
|
11089
11258
|
SYSPARAM(1)画面上光标位置(K线序号)
|
|
11090
11259
|
SYSPARAM(2)主图可见K线最初位置
|
|
@@ -11093,7 +11262,7 @@ var PERIOD_MAP=[5,6,7,11,0,1,2,3,4,5,9];if(this.Period>=0&&this.Period<=PERIOD_M
|
|
|
11093
11262
|
SYSPARAM(5)主图可见K线最低价,注意:该函数仅K线图形分析且打开十字光标时有效,否则返回值不确定
|
|
11094
11263
|
SYSPARAM(6)画面上光标数值,注意:该函数仅K线图形分析且打开十字光标时有效,否则返回值不确定
|
|
11095
11264
|
*/this.SysParam=function(id,jsExec){if(!this.DrawInfo)return[];if(id==2){jsExec.IsUsePageData=true;if(IFrameSplitOperator.IsNumber(this.DrawInfo.Start))return this.DrawInfo.Start+1;}else if(id==3){jsExec.IsUsePageData=true;if(IFrameSplitOperator.IsNumber(this.DrawInfo.End))return this.DrawInfo.End+1;}else if(id==4){jsExec.IsUsePageData=true;if(!IFrameSplitOperator.IsNumber(this.DrawInfo.End)||!IFrameSplitOperator.IsNumber(this.DrawInfo.Start))return[];if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return[];var high=null;for(var i=this.DrawInfo.Start;i<=this.DrawInfo.End&&i<this.Data.Data.length;++i){var item=this.Data.Data[i];if(!IFrameSplitOperator.IsNumber(item.High))continue;if(high==null)high=item.High;else if(high<item.High)high=item.High;}return high;}else if(id==5){jsExec.IsUsePageData=true;if(!IFrameSplitOperator.IsNumber(this.DrawInfo.End)||!IFrameSplitOperator.IsNumber(this.DrawInfo.Start))return[];if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return[];var low=null;for(var i=this.DrawInfo.Start;i<=this.DrawInfo.End&&i<this.Data.Data.length;++i){var item=this.Data.Data[i];if(!IFrameSplitOperator.IsNumber(item.Low))continue;if(low==null)low=item.Low;else if(low>item.Low)low=item.Low;}return low;}return[];};}//是否有是有效的数字
|
|
11096
|
-
JSSymbolData.prototype.IsNumber=function(value){if(value==null)return false;if(isNaN(value))return false;return true;};JSSymbolData.prototype.IsDivideNumber=function(value){if(value==null)return false;if(isNaN(value))return false;if(value==0)return false;return true;};JSSymbolData.prototype.JsonDataToFinance=function(data){var financeData;for(var
|
|
11265
|
+
JSSymbolData.prototype.IsNumber=function(value){if(value==null)return false;if(isNaN(value))return false;return true;};JSSymbolData.prototype.IsDivideNumber=function(value){if(value==null)return false;if(isNaN(value))return false;if(value==0)return false;return true;};JSSymbolData.prototype.JsonDataToFinance=function(data){var financeData;for(var _i123=1;_i123<=4;++_i123){switch(_i123){case 1:var finance=data.finance1;var announcement=data.announcement1;break;case 2:var finance=data.finance2;var announcement=data.announcement2;break;case 3:var finance=data.finance3;var announcement=data.announcement3;break;case 4:var finance=data.finance4;var announcement=data.announcement4;break;default:break;}if(!finance||!announcement||!this.IsNumber(announcement.year)||!this.IsNumber(announcement.quarter))continue;if(financeData)//如果存在1天公布多个报告期数据 只取最新的一个公告期数据
|
|
11097
11266
|
{if(financeData.Announcement.year<announcement.year)financeData={Date:data.date,Finance:finance,Announcement:announcement};}else{financeData={Date:data.date,Finance:finance,Announcement:announcement};}}return financeData;};var JS_EXECUTE_DEBUG_LOG=false;var JS_EXECUTE_JOB_ID={JOB_DOWNLOAD_SYMBOL_DATA:1,//下载股票的K线数据
|
|
11098
11267
|
JOB_DOWNLOAD_INDEX_DATA:2,//下载大盘的K线数据
|
|
11099
11268
|
JOB_DOWNLOAD_SYMBOL_LATEST_DATA:3,//最新的股票行情数据
|
|
@@ -11273,8 +11442,8 @@ this.ConstVarTable=new _map2.default([//个股数据
|
|
|
11273
11442
|
this.UpdateUICallback=null;//回调
|
|
11274
11443
|
this.CallbackParam=null;this.IsSectionMode=false;if(option){if(option.Callback)this.UpdateUICallback=option.Callback;if(option.CallbackParam){this.CallbackParam=option.CallbackParam;if(this.CallbackParam.HQChart)this.GetEventCallback=function(id){return _this45.CallbackParam.HQChart.GetEventCallback(id);};}if(option.Arguments)this.Arguments=option.Arguments;if(option.IsSectionMode)this.IsSectionMode=option.IsSectionMode;if(option.Self)this.IndexCtrl=option.Self;//调试模式信息
|
|
11275
11444
|
if(IFrameSplitOperator.IsNumber(option.Debug))this.Debug=option.Debug;if(option.DebugFilter)this.DebugFilter=option.DebugFilter;}this.Execute=function(){this.OutVarTable=[];this.VarTable=new _map2.default();this.VarDrawTable=new _map2.default();//绘图变量表
|
|
11276
|
-
JSConsole.Complier.Log('[JSExecute::Execute] Load Arguments',this.Arguments);for(var
|
|
11277
|
-
{var
|
|
11445
|
+
JSConsole.Complier.Log('[JSExecute::Execute] Load Arguments',this.Arguments);for(var _i124 in this.Arguments)//预定义的变量
|
|
11446
|
+
{var _item18=this.Arguments[_i124];this.VarTable.set(_item18.Name,_item18.Value);}this.RunNextJob();};this.RunNextJob=function(){if(this.JobList.length<=0)return;JSConsole.Complier.Log('[JSExecute::Execute] JobList',this.JobList);var jobItem=this.JobList.shift();switch(jobItem.ID){case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SYMBOL_DATA:return this.SymbolData.GetSymbolData();case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SYMBOL_PERIOD_DATA:return this.SymbolData.GetSymbolPeriodData(jobItem);case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_INDEX_DATA:return this.SymbolData.GetIndexData();case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_LATEST_INDEX_DATA:return this.SymbolData.GetLatestIndexData();case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_INDEX_INCREASE_DATA:return this.SymbolData.GetIndexIncreaseData(jobItem);case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SYMBOL_LATEST_DATA:return this.SymbolData.GetLatestData(jobItem);case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_VOLR_DATA://量比
|
|
11278
11447
|
return this.SymbolData.GetVolRateData(jobItem);case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_OTHER_SYMBOL_DATA://指定股票数据
|
|
11279
11448
|
return this.SymbolData.GetOtherSymbolData(jobItem);case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BALANCE:case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_RATE:case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BUY_BALANCE://买入信息-融资余额
|
|
11280
11449
|
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BUY_AMOUNT://买入信息-买入额
|
|
@@ -11306,7 +11475,7 @@ case'INDEXA':case'INDEXC':case'INDEXH':case'INDEXH':case'INDEXO':case'INDEXV':ca
|
|
|
11306
11475
|
this.ReadVariable=function(name,node){if(this.ConstVarTable.has(name)){var data=this.ConstVarTable.get(name);if(data==null)//动态加载,用到再加载
|
|
11307
11476
|
{data=this.ReadSymbolData(name,node);this.ConstVarTable.set(name,data);}return data;}if(g_JSComplierResource.IsCustomVariant(name))return this.ReadCustomVariant(name,node);//读取自定义变量
|
|
11308
11477
|
if(this.VarTable.has(name))return this.VarTable.get(name);if(name.indexOf('#')>0){var aryPeriod=name.split('#');return this.SymbolData.GetSymbolPeriodCacheData(aryPeriod[0],aryPeriod[1]);}if(name.indexOf("COLOR")==0){var colorValue=JSComplier.ColorVarToRGB(name);if(colorValue)return colorValue;}this.ThrowUnexpectedNode(node,'变量'+name+'不存在',name);return null;};this.ReadMemberVariable=function(node){var obj=node.Object;var member=node.Property;var maiObj=void 0;if(obj.Type==Syntax.BinaryExpression||obj.Type==Syntax.LogicalExpression)maiObj=this.VisitBinaryExpression(obj);else if(obj.Type==Syntax.CallExpression)maiObj=this.VisitCallExpression(obj);else maiObj=this.GetNodeValue(obj);if(!maiObj)return null;var value=maiObj[member.Name];if(value)return value;return null;};//单数据转成数组 个数和历史数据一致
|
|
11309
|
-
this.SingleDataToArrayData=function(value){var count=this.SymbolData.Data.Data.length;var result=[];for(var
|
|
11478
|
+
this.SingleDataToArrayData=function(value){var count=this.SymbolData.Data.Data.length;var result=[];for(var _i125=0;_i125<count;++_i125){result[_i125]=value;}return result;};this.RunAST=function(){if(!this.AST)this.ThrowError();if(!this.AST.Body)this.ThrowError();for(var _i126=0;_i126<this.AST.Body.length;++_i126){var _item19=this.AST.Body[_i126];this.RunASTNode(_item19,_i126);if(this.Interrupt&&this.Interrupt.Exit){JSConsole.Complier.Log('[JSExecute::RunAST] Interrupt',this.Interrupt);//中断退出
|
|
11310
11479
|
break;}}JSConsole.Complier.Log('[JSExecute::RunAST]',this.VarTable);return this.OutVarTable;};this.RunASTNode=function(item,lineID){this.VisitNode(item);var i=lineID;//输出变量
|
|
11311
11480
|
if(item.Type==Syntax.ExpressionStatement&&item.Expression){if(item.Expression.Type==Syntax.AssignmentExpression){if(item.Expression.Operator==':'&&item.Expression.Left){var assignmentItem=item.Expression;var _varName=assignmentItem.Left.Name;var _outVar=this.VarTable.get(_varName);if(this.VarDrawTable.has(_varName))//绘图函数赋值
|
|
11312
11481
|
{var draw=this.VarDrawTable.get(_varName);this.OutVarTable.push({Name:draw.Name,Draw:draw,Type:1});}else{var type=0;if(_outVar&&(typeof _outVar==='undefined'?'undefined':(0,_typeof3.default)(_outVar))=='object'&&_outVar.__Type__=='Object'){type=1000;}else if(!this.IsSectionMode&&!Array.isArray(_outVar)){if(typeof _outVar=='string'){var floatValue=parseFloat(_outVar);if(IFrameSplitOperator.IsNumber(floatValue)){_outVar=this.SingleDataToArrayData(floatValue);}else{_outVar=this.SingleDataToArrayData(_outVar);type=1001;}}else _outVar=this.SingleDataToArrayData(_outVar);}this.OutVarTable.push({Name:_varName,Data:_outVar,Type:type});}}}else if(item.Expression.Type==Syntax.CallExpression){var callItem=item.Expression;if(this.Draw.IsDrawFunction(callItem.Callee.Name)){var _draw=callItem.Draw;_draw.Name=callItem.Callee.Name;this.OutVarTable.push({Name:_draw.Name,Draw:_draw,Type:1});}else if(callItem.Callee.Name==="IFC"&&callItem.Draw){var _draw2=callItem.Draw;_draw2.Name=_draw2.DrawType;this.OutVarTable.push({Name:_draw2.Name,Draw:_draw2,Type:1});}else{var _outVar2=callItem.Out;varName='__temp_c_'+callItem.Callee.Name+'_'+i+'__';var type=0;if(!Array.isArray(_outVar2))_outVar2=this.SingleDataToArrayData(_outVar2);this.OutVarTable.push({Name:varName,Data:_outVar2,Type:type,NoneName:true});}}else if(item.Expression.Type==Syntax.Identifier){var _varName2=item.Expression.Name;var _outVar3=this.ReadVariable(_varName2,item.Expression);var type=0;if(_outVar3&&(typeof _outVar3==='undefined'?'undefined':(0,_typeof3.default)(_outVar3))=='object'&&_outVar3.__Type__=='Object'){type=1000;}else if(!this.IsSectionMode&&!Array.isArray(_outVar3)){if(typeof _outVar3=='string')_outVar3=this.SingleDataToArrayData(parseFloat(_outVar3));else _outVar3=this.SingleDataToArrayData(_outVar3);}_varName2="__temp_i_"+i+"__";this.OutVarTable.push({Name:_varName2,Data:_outVar3,Type:type,NoneName:true});}else if(item.Expression.Type==Syntax.Literal)//常量
|
|
@@ -11340,7 +11509,7 @@ else if(_value4.indexOf("FONTSIZE")==0){var strFontSize=_value4.replace("FONTSIZ
|
|
|
11340
11509
|
{var _outVar14=this.VarTable.get(_varName3);var _value12={Name:_varName3,Data:_outVar14,Color:color,Type:2};if(lineWidth)_value12.LineWidth=lineWidth;if(color)_value12.Color=color;if(upColor)_value12.UpColor=upColor;if(downColor)_value12.DownColor=downColor;this.OutVarTable.push(_value12);}else if(_varName3&&color&&!_draw3){var _outVar15=this.VarTable.get(_varName3);if(!Array.isArray(_outVar15))_outVar15=this.SingleDataToArrayData(_outVar15);var _value13={Name:_varName3,Data:_outVar15,Color:color,Type:0};if(lineWidth)_value13.LineWidth=lineWidth;if(isShow==false)_value13.IsShow=false;if(isExData==true)_value13.IsExData=true;if(isDotLine==true)_value13.IsDotLine=true;if(IFrameSplitOperator.IsNonEmptyArray(lineDash))_value13.LineDash=lineDash;if(isOverlayLine==true)_value13.IsOverlayLine=true;if(isSingleLine==true)_value13.IsSingleLine=true;if(isNoneName==true)_value13.NoneName=true;if(isShowTitle==false)_value13.IsShowTitle=false;if(stepLine==true)_value13.Type=7;this.OutVarTable.push(_value13);}else if(_draw3)//画图函数
|
|
11341
11510
|
{var outVar={Name:_draw3.Name,Draw:_draw3,Type:1};if(color)outVar.Color=color;if(isDotLine==true)outVar.IsDotLine=true;if(IFrameSplitOperator.IsNonEmptyArray(lineDash))outVar.LineDash=lineDash;if(lineWidth)outVar.LineWidth=lineWidth;if(isDrawAbove)outVar.IsDrawAbove=true;if(isDrawCenter)outVar.IsDrawCenter=true;if(isDrawBelow)outVar.IsDrawBelow=true;if(drawAlign>=0)outVar.DrawAlign=drawAlign;if(drawVAlign>=0)outVar.DrawVAlign=drawVAlign;if(fontSize>0)outVar.DrawFontSize=fontSize;if(bgConfig)outVar.Background=bgConfig;if(vLineConfig)outVar.VerticalLine=vLineConfig;if(IFrameSplitOperator.IsNumber(xOffset))outVar.XOffset=xOffset;if(IFrameSplitOperator.IsNumber(yOffset))outVar.YOffset=yOffset;if(IFrameSplitOperator.IsBool(isFirstDraw))outVar.IsFirstDraw=isFirstDraw;if(IFrameSplitOperator.IsNumber(klineType))outVar.KLineType=klineType;this.OutVarTable.push(outVar);}else if(_varName3){var _outVar16=this.VarTable.get(_varName3);var _value14={Name:_varName3,Data:_outVar16,Type:0};if(color)_value14.Color=color;if(lineWidth)_value14.LineWidth=lineWidth;if(isShow==false)_value14.IsShow=false;if(isExData==true)_value14.IsExData=true;if(isDotLine==true)_value14.IsDotLine=true;if(IFrameSplitOperator.IsNonEmptyArray(lineDash))_value14.LineDash=lineDash;if(isOverlayLine==true)_value14.IsOverlayLine=true;if(isSingleLine==true)_value14.IsSingleLine=true;if(isShowTitle==false)_value14.IsShowTitle=false;if(stepLine==true)_value14.Type=7;this.OutVarTable.push(_value14);}}}};this.ReadUnaryExpression=function(item,varInfo){var argument=item.Argument;var outVar=null;if(argument.Type==Syntax.Literal){outVar=argument.Value;if(!Array.isArray(outVar))outVar=this.SingleDataToArrayData(outVar);}else if(argument.Type==Syntax.Identifier){var varName=argument.Name;outVar=this.ReadVariable(varName,item.Expression);if(!Array.isArray(outVar))outVar=this.SingleDataToArrayData(outVar);}else if(argument.Type==Syntax.BinaryExpression){outVar=argument.Out;if(!Array.isArray(outVar))outVar=this.SingleDataToArrayData(outVar);}else if(argument.Type==Syntax.CallExpression){var callItem=argument;if(this.Draw.IsDrawFunction(callItem.Callee.Name)){return false;}else if(callItem.Callee.Name==="IFC"&&callItem.Draw){return false;}else{outVar=callItem.Out;if(!Array.isArray(outVar))outVar=this.SingleDataToArrayData(outVar);}}else{return false;}if(item.Operator=='-'){if(outVar)outVar=this.Algorithm.Subtract(0,outVar);}varInfo.OutVar=outVar;return true;};this.GetOutIconData=function(cond,iconDraw){if(Array.isArray(cond)){for(var i=0;i<cond.length&&i<iconDraw.DrawData.length;++i){var item=cond[i];if(item<=0)iconDraw.DrawData[i]=null;}return iconDraw;}if(cond)return iconDraw;return null;};this.GetSoundEvent=function(){if(!this.GetEventCallback)return null;return this.GetEventCallback(JSCHART_EVENT_ID.ON_PLAY_SOUND);};this.Run=function(){try{var data=this.RunAST();//执行脚本
|
|
11342
11511
|
JSConsole.Complier.Log('[JSComplier.Run] execute finish',data);if(this.IndexCtrl)this.IndexCtrl.Status=0;if(this.UpdateUICallback){JSConsole.Complier.Log('[JSComplier.Run] invoke UpdateUICallback.');if(this.CallbackParam&&this.CallbackParam.Job&&this.CallbackParam.Job.ID==JS_EXECUTE_JOB_ID.JOB_EXECUTE_INDEX){this.UpdateUICallback(data,this.CallbackParam,this.SymbolData);}else{if(this.CallbackParam&&this.CallbackParam.Self&&this.CallbackParam.Self.ClassName==='ScriptIndexConsole')this.CallbackParam.JSExecute=this;if(this.IsUsePageData==true)this.CallbackParam.Self.IsUsePageData=true;this.UpdateUICallback(data,this.CallbackParam);}}}catch(error){JSConsole.Complier.Log(error);if(error.Job){JSConsole.Complier.Log('[JSComplier.Run] download job and reexectue',error.Job);this.JobList.push(error.Job);this.JobList.push({ID:JS_EXECUTE_JOB_ID.JOB_RUN_SCRIPT});this.Execute();}else if(this.ErrorCallback){if(this.IndexCtrl)this.IndexCtrl.Status=0;this.ErrorCallback(error,this.CallbackParam);}}};this.DebugRun_End=function(){var data=this.OutVarTable;JSConsole.Complier.Log('[JSComplier.DebugRun_End] execute finish',data);if(this.IndexCtrl)this.IndexCtrl.Status=0;if(this.UpdateUICallback){JSConsole.Complier.Log('[JSComplier.DebugRun_End] invoke UpdateUICallback.');if(this.CallbackParam&&this.CallbackParam.Job&&this.CallbackParam.Job.ID==JS_EXECUTE_JOB_ID.JOB_EXECUTE_INDEX){this.UpdateUICallback(data,this.CallbackParam,this.SymbolData);}else{if(this.CallbackParam&&this.CallbackParam.Self&&this.CallbackParam.Self.ClassName==='ScriptIndexConsole')this.CallbackParam.JSExecute=this;if(this.IsUsePageData==true)this.CallbackParam.Self.IsUsePageData=true;this.UpdateUICallback(data,this.CallbackParam);}}};this.DebugRun_Next=function(debugCtrl){var _this46=this;if(debugCtrl.ExeLine<debugCtrl.LineCount){var item=this.AST.Body[debugCtrl.ExeLine];this.RunASTNode(item);++debugCtrl.ExeLine;this.DebugFilter(debugCtrl,function(){_this46.DebugRun_Next(debugCtrl);});}else{this.DebugRun_End();debugCtrl.Status=2;this.DebugFilter(debugCtrl,null);}};//debug模式
|
|
11343
|
-
this.DebugRun=function(){var _this47=this;try{if(!this.AST)this.ThrowError();if(!this.AST.Body)this.ThrowError();var debugCtrl={LineCount:this.AST.Body.length,ExeLine:0,Self:this,Status:1};this.DebugFilter(debugCtrl,function(){_this47.DebugRun_Next(debugCtrl);});}catch(error){if(this.ErrorCallback){if(this.IndexCtrl)this.IndexCtrl.Status=0;this.ErrorCallback(error,this.CallbackParam);}}};this.VisitNode=function(node){switch(node.Type){case Syntax.SequenceExpression:this.VisitSequenceExpression(node);break;case Syntax.ExpressionStatement:this.VisitNode(node.Expression);break;case Syntax.AssignmentExpression:this.VisitAssignmentExpression(node);break;case Syntax.BinaryExpression:case Syntax.LogicalExpression:this.VisitBinaryExpression(node);break;case Syntax.CallExpression:this.VisitCallExpression(node);break;case Syntax.UnaryExpression:this.VisitUnaryExpression(node);break;}};this.VisitUnaryExpression=function(node){if(node.Operator=='-'){var tempValue=this.GetNodeValueEx(node.Argument);var value=this.Algorithm.Subtract(0,tempValue);}else{var value=node.Argument.Value;}return value;};this.VisitSequenceExpression=function(node){for(var
|
|
11512
|
+
this.DebugRun=function(){var _this47=this;try{if(!this.AST)this.ThrowError();if(!this.AST.Body)this.ThrowError();var debugCtrl={LineCount:this.AST.Body.length,ExeLine:0,Self:this,Status:1};this.DebugFilter(debugCtrl,function(){_this47.DebugRun_Next(debugCtrl);});}catch(error){if(this.ErrorCallback){if(this.IndexCtrl)this.IndexCtrl.Status=0;this.ErrorCallback(error,this.CallbackParam);}}};this.VisitNode=function(node){switch(node.Type){case Syntax.SequenceExpression:this.VisitSequenceExpression(node);break;case Syntax.ExpressionStatement:this.VisitNode(node.Expression);break;case Syntax.AssignmentExpression:this.VisitAssignmentExpression(node);break;case Syntax.BinaryExpression:case Syntax.LogicalExpression:this.VisitBinaryExpression(node);break;case Syntax.CallExpression:this.VisitCallExpression(node);break;case Syntax.UnaryExpression:this.VisitUnaryExpression(node);break;}};this.VisitUnaryExpression=function(node){if(node.Operator=='-'){var tempValue=this.GetNodeValueEx(node.Argument);var value=this.Algorithm.Subtract(0,tempValue);}else{var value=node.Argument.Value;}return value;};this.VisitSequenceExpression=function(node){for(var _i127 in node.Expression){var _item20=node.Expression[_i127];this.VisitNode(_item20);}};this.GetDynamicScriptIndex=function(node,args){var dynamicName=node.Callee.Value;var aryValue=dynamicName.split(".");if(aryValue.length!=2){this.ThrowUnexpectedNode(node,'\u8C03\u7528\u6307\u6807\u683C\u5F0F\''+dynamicName+'\'\u9519\u8BEF');}var name=aryValue[0];var outName=aryValue[1];var period=null;var pos=outName.indexOf('#');if(pos!=-1){period=outName.slice(pos+1);//周期
|
|
11344
11513
|
outName=outName.slice(0,pos);}var strValue="";for(var i=0;i<args.length;++i){var value=args[i];if(strValue.length>0)strValue+=",";strValue+=''+value;}var strArgs='('+strValue+')';var key=outName+'#'+strArgs;if(period)key+='#'+period;if(!this.VarTable.has(name))return null;var indexData=this.VarTable.get(name);var value=indexData[key];return value;};//函数调用
|
|
11345
11514
|
this.VisitCallExpression=function(node){var funcName=node.Callee.Name;var args=[];for(var i=0;i<node.Arguments.length;++i){var item=node.Arguments[i];var value;if(funcName==="IFC"&&i>=1)break;//IFC先处理第1个条件参数
|
|
11346
11515
|
if(item.Type==Syntax.BinaryExpression||item.Type==Syntax.LogicalExpression)value=this.VisitBinaryExpression(item);else if(item.Type==Syntax.CallExpression)value=this.VisitCallExpression(item);else value=this.GetNodeValue(item);args.push(value);}if(node.Callee.Type==Syntax.Literal){node.Out=[];node.Draw=null;var data=this.GetDynamicScriptIndex(node,args);if(data)node.Out=data;return node.Out;}if(funcName==="IFC"){//IFC(X,A,B)若X不为0则执行A,否则执行B.IFC与IF函数的区别:根据X的值来选择性执行A、B表达式.
|
|
@@ -11350,7 +11519,8 @@ node.Out=this.SymbolData.GetLatestCacheData(args[0]);break;case'STICKLINE':node.
|
|
|
11350
11519
|
node.Out=this.Draw.KLINETYPE(args[0]);break;case"DRAWOVERLAYKLINE":node.Draw=this.Draw.DRAWOVERLAYKLINE(args[0],args[1],args[2],args[3]);node.Out=[];break;case"DRAWCOLORKLINE":node.Draw=this.Draw.DRAWCOLORKLINE(args[0],args[1],args[2]);node.Out=[];break;case'PLOYLINE':case'POLYLINE':node.Draw=this.Draw.POLYLINE(args[0],args[1]);node.Out=node.Draw.DrawData;break;case'DRAWNUMBER':node.Draw=this.Draw.DRAWNUMBER(args[0],args[1],args[2],args[3]);node.Out=node.Draw.DrawData.Value;break;case"DRAWNUMBER_FIX":node.Draw=this.Draw.DRAWNUMBER_FIX(args[0],args[1],args[2],args[3],args[4]);node.Out=node.Draw.DrawData.Value;break;case"DRAWCHANNEL":node.Draw=this.Draw.DRAWCHANNEL(args[0],args[1],args[2],args[3],args[4],args[5],args[6]);node.Out=[];break;case'RGB':node.Out=this.Draw.RGB(args[0],args[1],args[2]);break;case"RGBA":node.Out=this.Draw.RGBA(args[0],args[1],args[2],args[3]);break;case"UPCOLOR":node.Out=this.Draw.UPCOLOR(args[0]);break;case"DOWNCOLOR":node.Out=this.Draw.DOWNCOLOR(args[0]);break;case"STICKTYPE"://柱子类型
|
|
11351
11520
|
node.Out=this.Draw.STICKTYPE(args[0]);break;case"XMOVE":node.Out=this.Draw.XMOVE(args[0]);break;case"YMOVE":node.Out=this.Draw.YMOVE(args[0]);break;case"LINEDASH":node.Out=this.Draw.LINEDASH(args);break;case"FIRSTDRAW":node.Out=this.Draw.FIRSTDRAW(args[0]);break;case'PARTLINE':node.Draw=this.Draw.PARTLINE(args);node.Out=[];break;case'DRAWGBK':node.Draw=this.Draw.DRAWGBK(args[0],args[1],args[2],args[3]);node.Out=[];break;case'DRAWGBK2':node.Draw=this.Draw.DRAWGBK2(args[0],args[1],args[2],args[3]);node.Out=[];break;case"DRAWGBK_DIV":node.Draw=this.Draw.DRAWGBK_DIV(args[0],args[1],args[2],args[3],args[4]);node.Out=[];break;case'DRAWTEXT_LINE':node.Draw=this.Draw.DRAWTEXT_LINE(args[0],args[1],args[2],args[3],args[4],args[5],args[6]);node.Out=[];break;case'DRAWRECTREL':node.Draw=this.Draw.DRAWRECTREL(args[0],args[1],args[2],args[3],args[4]);node.Out=[];break;case"DRAWTEXTREL":node.Draw=this.Draw.DRAWTEXTREL(args[0],args[1],args[2]);node.Out=[];break;case"DRAWTEXTABS":node.Draw=this.Draw.DRAWTEXTABS(args[0],args[1],args[2]);node.Out=[];break;case"DRAWOVERLAYLINE":node.Draw=this.Draw.DRAWOVERLAYLINE(args[0],args[1],args[2]);node.Out=node.Draw.DrawData.Data;break;case"DRAWSL":node.Draw=this.Draw.DRAWSL(args[0],args[1],args[2],args[3],args[4]);node.Out=[];break;case"VERTLINE":node.Draw=this.Draw.VERTLINE(args[0],args[1]);node.Out=node.Draw.DrawData.Data;break;case"HORLINE":node.Draw=this.Draw.HORLINE(args[0],args[1],args[2],args[3]);node.Out=node.Draw.DrawData.Data;break;case"DRAWLASTBARICON":node.Draw=this.Draw.DRAWLASTBARICON(args[0],args[1]);node.Out=[];break;case"DRAWLASTBARNUMBER":node.Draw=this.Draw.DRAWLASTBARNUMBER(args[0],args[1],args[2],args[3]);node.Out=[];break;case"DRAWLASTBARTEXT":node.Draw=this.Draw.DRAWLASTBARTEXT(args[0],args[1]);node.Out=[];break;case'CODELIKE':node.Out=this.SymbolData.CODELIKE(args[0]);break;case'NAMELIKE':case"NAMEINCLUDE":node.Out=this.SymbolData.NAMELIKE(args[1]);break;case'REFDATE':node.Out=this.SymbolData.REFDATE(args[0],args[1]);break;case'FINANCE':node.Out=this.SymbolData.GetStockCacheData({FunctionName:funcName,Args:args,ArgCount:1,Node:node});break;case"FINVALUE":node.Out=this.SymbolData.GetStockCacheData({FunctionName:funcName,Args:args,ArgCount:1,Node:node});break;case"FINONE":node.Out=this.SymbolData.GetStockCacheData({FunctionName:funcName,Args:args,ArgCount:3,Node:node});break;case"GPJYVALUE":case"SCJYVALUE":case"BKJYVALUE":node.Out=this.SymbolData.GetStockCacheData({FunctionName:funcName,Args:args,ArgCount:3,Node:node});break;case"GPJYONE":case"SCJYONE":case"BKJYONE":node.Out=this.SymbolData.GetStockCacheData({FunctionName:funcName,Args:args,ArgCount:4,Node:node});break;case"MARGIN":node.Out=this.SymbolData.GetMarginCacheData(args[0],node);break;case"HK2SHSZ":node.Out=this.SymbolData.GetHKToSHSZCacheData(args[0],node);break;case"NEWS":node.Out=this.SymbolData.GetNewsAnalysisCacheData(args[0],node);break;case'UPCOUNT':case'DOWNCOUNT':node.Out=this.SymbolData.GetIndexIncreaseCacheData(funcName,args[0],node);break;case'SF':node.Out=this.SymbolData.GetSectionFinanceCacheData(args[0],args[1],args[2],node);break;case'LOADAPIDATA':node.Out=this.SymbolData.GetCustomApiData(args);break;case"STKINDI":case"CALCSTOCKINDEX":node.Out=this.SymbolData.GetScriptIndexOutData(args,node,funcName);break;case"SOUND":node.Draw=this.Draw.SOUND(args[0]);node.Out=[];break;case"PLAYSOUND":node.Draw=this.Draw.PLAYSOUND(args[0],args[1]);node.Out=[];break;case'CLOSE':case'C':case'VOL':case'V':case'OPEN':case'O':case'HIGH':case'H':case'LOW':case'L':case'AMOUNT':case'AMO':node.Out=this.SymbolData.GetOtherSymolCacheData({FunctionName:funcName,Args:args});break;case"INBLOCK":node.Out=this.SymbolData.IsInBlock(args[0],node);break;case'COVER_C':case'COVER_O':case'COVER_H':case'COVER_L':case'COVER_A':case'COVER_V':if(args.length==2)return this.SymbolData.GetSymbolPeriodCacheData2(JSComplierHelper.GetConvertValueName(funcName),args[0],args[1]);return this.SymbolData.GetSymbolPeriodCacheData(JSComplierHelper.GetConvertValueName(funcName),args[0]);case"SYSPARAM":node.Out=this.SymbolData.SysParam(args[0],this);break;case"TESTSKIP":var bExit=this.Algorithm.TESTSKIP(args[0],node);node.Out=null;if(bExit){this.Interrupt.Exit=true;if(node&&node.Marker){var marker=node.Marker;this.Interrupt.Line=marker.Line;this.Interrupt.Index=marker.Index;this.Interrupt.Column=marker.Column;}}break;//交易函数
|
|
11352
11521
|
case"BUY":node.Draw=this.Draw.BUY(args[0],args[1],args[2],args[3]);node.Out=node.Draw.DrawData.Data;break;case"SELL":node.Draw=this.Draw.SELL(args[0],args[1],args[2],args[3]);node.Out=node.Draw.DrawData.Data;break;case"SELLSHORT":node.Draw=this.Draw.SELLSHORT(args[0],args[1],args[2],args[3]);node.Out=node.Draw.DrawData.Data;break;case"BUYSHORT":node.Draw=this.Draw.BUYSHORT(args[0],args[1],args[2],args[3]);node.Out=node.Draw.DrawData.Data;break;//表格函数
|
|
11353
|
-
case"TABLE_CELL":node.Out=this.Draw.TABLE_CELL(args[0],args[1],args[2],args[3]);break;case"TABLE_ROW":node.Out=this.Draw.TABLE_ROW(args);break;case"DRAWTABLE":node.Draw=this.Draw.DRAWTABLE(args);node.Out=[];break
|
|
11522
|
+
case"TABLE_CELL":node.Out=this.Draw.TABLE_CELL(args[0],args[1],args[2],args[3]);break;case"TABLE_ROW":node.Out=this.Draw.TABLE_ROW(args);break;case"DRAWTABLE":node.Draw=this.Draw.DRAWTABLE(args);node.Out=[];break;//饼图
|
|
11523
|
+
case"PIE_CELL":node.Out=this.Draw.PIE_CELL(args[0],args[1],args[2],args[3],args[4]);break;case"DRAWPIE":node.Draw=this.Draw.DRAWPIE(args);node.Out=[];break;default:node.Out=this.Algorithm.CallFunction(funcName,args,node,this.SymbolData);break;}return node.Out;};//赋值
|
|
11354
11524
|
this.VisitAssignmentExpression=function(node){var left=node.Left;if(left.Type!=Syntax.Identifier)this.ThrowUnexpectedNode(node);var varName=left.Name;var right=node.Right;var value=null,drawValue=null;if(right.Type==Syntax.BinaryExpression||right.Type==Syntax.LogicalExpression)value=this.VisitBinaryExpression(right);else if(right.Type==Syntax.CallExpression){value=this.VisitCallExpression(right);if(right.Draw)drawValue=right.Draw;}else if(right.Type==Syntax.Literal){value=right.Value;if(IFrameSplitOperator.IsString(value)&&right.Value.indexOf("$")>0)value=this.SymbolData.GetOtherSymolCacheData({Literal:value});}else if(right.Type==Syntax.Identifier)//右值是变量
|
|
11355
11525
|
value=this.ReadVariable(right.Name,right);else if(right.Type==Syntax.MemberExpression)value=this.ReadMemberVariable(right);else if(right.Type==Syntax.UnaryExpression)value=this.VisitUnaryExpression(right);if(JS_EXECUTE_DEBUG_LOG)JSConsole.Complier.Log('[JSExecute::VisitAssignmentExpression]',varName,' = ',value);if(drawValue)this.VarDrawTable.set(varName,drawValue);this.VarTable.set(varName,value);};//逻辑运算
|
|
11356
11526
|
this.VisitBinaryExpression=function(node){var stack=[];stack.push(node);var temp=null;while(stack.length!=0){temp=stack[stack.length-1];if(temp.Left&&node!=temp.Left&&node!=temp.Right){stack.push(temp.Left);}else if(temp.Right&&node!=temp.Right){stack.push(temp.Right);}else{var _value15=stack.pop();if(_value15.Type==Syntax.BinaryExpression)//只遍历操作符就可以
|
|
@@ -11380,8 +11550,8 @@ this.ConstVarTable=new _map2.default([//个股数据
|
|
|
11380
11550
|
['HYBLOCK',"所属行业"],//所属行业板块
|
|
11381
11551
|
['DYBLOCK',"所属地域"],//所属地域板块
|
|
11382
11552
|
['GNBLOCK',"所属概念"],//所属概念
|
|
11383
|
-
["FGBLOCK","所属风格板块"],["ZSBLOCK","所属指数板块"],["ZHBLOCK",'所属组合板块'],["ZDBLOCK",'所属自定义板块'],["HYZSCODE","所属行业的板块指数代码"],["GNBLOCKNUM","所属概念板块的个数"],["FGBLOCKNUM","所属风格板块的个数"],["ZSBLOCKNUM","所属指数板块的个数"],["ZHBLOCKNUM","所属组合板块的个数"],["ZDBLOCKNUM","所属自定义板块的个数"],["HYSYL","指数市盈率或个股所属行业的市盈率"],["HYSJL","指数市净率或个股所属行业的市净率"],['DRAWNULL',"无效数据"],["TR","求真实波幅"],["LARGEINTRDVOL","逐笔买入大单成交量"],["LARGEOUTTRDVOL","逐笔卖出大单成交量"],["TRADENUM","逐笔成交总单数"],["TRADEINNUM","逐笔买入成交单数"],["TRADEOUTNUM","逐笔卖出成交单数"],["LARGETRDINNUM","逐笔买入大单成交单数"],["LARGETRDOUTNUM","逐笔卖出大单成交单数"],["CUR_BUYORDER","总委买量"],["CUR_SELLORDER","总委卖量"],["ACTINVOL","主动买成交量"],["ACTOUTVOL","主动卖成交量"],["BIDORDERVOL","累计总有效委买量"],["BIDCANCELVOL","累计总有效撤买量"],["AVGBIDPX","最新委买均价"],["OFFERORDERVOL","累计总有效委卖量"],["OFFERCANCELVOL","累计总有效撤卖量"],["AVGOFFERPX","最新委卖均价"],['COLORBLACK','黑色'],['COLORBLUE','蓝色'],['COLORGREEN','绿色'],['COLORCYAN','青色'],['COLORRED','红色'],['COLORMAGENTA','洋红色'],['COLORBROWN','棕色'],['COLORLIGRAY','淡灰色'],['COLORGRAY','深灰色'],['COLORLIBLUE','淡蓝色'],['COLORLIGREEN','淡绿色'],['COLORLICYAN','淡青色'],['COLORLIRED','淡红色'],['COLORLIMAGENTA','淡洋红色'],['COLORWHITE','白色'],['COLORYELLOW','黄色']]);if(option){if(option.Callback)this.UpdateUICallback=option.Callback;if(option.CallbackParam)this.CallbackParam=option.CallbackParam;if(option.Arguments)this.Arguments=option.Arguments;}this.Run=function(){try{this.OutVarTable=[];this.VarTable=new _map2.default();JSConsole.Complier.Log('[JSExecute::JSExplainer] Load Arguments',this.Arguments);for(var
|
|
11384
|
-
{var
|
|
11553
|
+
["FGBLOCK","所属风格板块"],["ZSBLOCK","所属指数板块"],["ZHBLOCK",'所属组合板块'],["ZDBLOCK",'所属自定义板块'],["HYZSCODE","所属行业的板块指数代码"],["GNBLOCKNUM","所属概念板块的个数"],["FGBLOCKNUM","所属风格板块的个数"],["ZSBLOCKNUM","所属指数板块的个数"],["ZHBLOCKNUM","所属组合板块的个数"],["ZDBLOCKNUM","所属自定义板块的个数"],["HYSYL","指数市盈率或个股所属行业的市盈率"],["HYSJL","指数市净率或个股所属行业的市净率"],['DRAWNULL',"无效数据"],["TR","求真实波幅"],["LARGEINTRDVOL","逐笔买入大单成交量"],["LARGEOUTTRDVOL","逐笔卖出大单成交量"],["TRADENUM","逐笔成交总单数"],["TRADEINNUM","逐笔买入成交单数"],["TRADEOUTNUM","逐笔卖出成交单数"],["LARGETRDINNUM","逐笔买入大单成交单数"],["LARGETRDOUTNUM","逐笔卖出大单成交单数"],["CUR_BUYORDER","总委买量"],["CUR_SELLORDER","总委卖量"],["ACTINVOL","主动买成交量"],["ACTOUTVOL","主动卖成交量"],["BIDORDERVOL","累计总有效委买量"],["BIDCANCELVOL","累计总有效撤买量"],["AVGBIDPX","最新委买均价"],["OFFERORDERVOL","累计总有效委卖量"],["OFFERCANCELVOL","累计总有效撤卖量"],["AVGOFFERPX","最新委卖均价"],['COLORBLACK','黑色'],['COLORBLUE','蓝色'],['COLORGREEN','绿色'],['COLORCYAN','青色'],['COLORRED','红色'],['COLORMAGENTA','洋红色'],['COLORBROWN','棕色'],['COLORLIGRAY','淡灰色'],['COLORGRAY','深灰色'],['COLORLIBLUE','淡蓝色'],['COLORLIGREEN','淡绿色'],['COLORLICYAN','淡青色'],['COLORLIRED','淡红色'],['COLORLIMAGENTA','淡洋红色'],['COLORWHITE','白色'],['COLORYELLOW','黄色']]);if(option){if(option.Callback)this.UpdateUICallback=option.Callback;if(option.CallbackParam)this.CallbackParam=option.CallbackParam;if(option.Arguments)this.Arguments=option.Arguments;}this.Run=function(){try{this.OutVarTable=[];this.VarTable=new _map2.default();JSConsole.Complier.Log('[JSExecute::JSExplainer] Load Arguments',this.Arguments);for(var _i128 in this.Arguments)//预定义的变量
|
|
11554
|
+
{var _item21=this.Arguments[_i128];this.VarTable.set(_item21.Name,_item21.Value);}var data=this.RunAST();//执行脚本
|
|
11385
11555
|
JSConsole.Complier.Log('[JSExplainer.Run] explain finish',data);if(this.UpdateUICallback)//回调发送结果, 可以支持异步
|
|
11386
11556
|
{JSConsole.Complier.Log('[JSExplainer.Run] invoke UpdateUICallback.');this.UpdateUICallback(data);}}catch(error){JSConsole.Complier.Log('[JSExplainer.Run] throw error ',error);if(this.ErrorCallback){this.ErrorCallback(error,this.OutVarTable);}}};this.RunAST=function(){if(!this.AST)this.ThrowError();if(!this.AST.Body)this.ThrowError();for(var i=0;i<this.AST.Body.length;++i){//console.log(`[JSExplainer::RunAST] ${i}`);
|
|
11387
11557
|
var item=this.AST.Body[i];this.VisitNode(item);//输出变量
|
|
@@ -11404,8 +11574,8 @@ else if(_value16.indexOf('LINEOVERLAY')==0)isOverlayLine=true;else if(_value16.i
|
|
|
11404
11574
|
{outValue+=",画柱状线";var _value20={Name:_varName8,Draw:outValue,Type:5};this.OutVarTable.push(_value20);}else if(volStick&&_varName8)//VOLSTICK 画彩色柱状线
|
|
11405
11575
|
{outValue+=",画成交量柱状线";var _value21={Name:_varName8,Draw:outValue,Type:6};this.OutVarTable.push(_value21);}else if(_varName8&&color){var _value22={Name:_varName8,Data:outValue,Color:color,Type:0};this.OutVarTable.push(_value22);}else if(draw)//画图函数
|
|
11406
11576
|
{var outVar={Name:_drawName,Draw:outValue,Type:1};this.OutVarTable.push(outVar);}else if(colorStick&&_varName8)//CYW: SUM(VAR4,10)/10000, COLORSTICK; 画上下柱子
|
|
11407
|
-
{outValue+=",画彩色柱状线";var _value23={Name:_varName8,Draw:outValue,Color:color,Type:2};this.OutVarTable.push(_value23);}else if(_varName8){var _value24={Name:_varName8,Data:outValue,Type:0};this.OutVarTable.push(_value24);}}}}JSConsole.Complier.Log('[JSExplainer::Run]',this.VarTable);return this.OutVarTable;};this.VisitNode=function(node){switch(node.Type){case Syntax.SequenceExpression:this.VisitSequenceExpression(node);break;case Syntax.ExpressionStatement:this.VisitNode(node.Expression);break;case Syntax.AssignmentExpression:this.VisitAssignmentExpression(node);break;case Syntax.BinaryExpression:case Syntax.LogicalExpression:this.VisitBinaryExpression(node);break;case Syntax.CallExpression:this.VisitCallExpression(node);break;case Syntax.UnaryExpression:this.VisitUnaryExpression(node);break;}};this.VisitSequenceExpression=function(node){for(var
|
|
11408
|
-
this.VisitCallExpression=function(node){var funcName=node.Callee.Name;var args=[];for(var _i132 in node.Arguments){var _item24=node.Arguments[_i132];var _value26=void 0;if(_item24.Type==Syntax.BinaryExpression||_item24.Type==Syntax.LogicalExpression)_value26=this.VisitBinaryExpression(_item24);else if(_item24.Type==Syntax.CallExpression)_value26=this.VisitCallExpression(_item24);else _value26=this.GetNodeValue(_item24);args.push(_value26);}if(node.Callee.Type==Syntax.Literal){var dynamicName=node.Callee.Value;node.Out='\u6307\u6807\u5F15\u7528\''+dynamicName+'\'';return node.Out;}if(JS_EXECUTE_DEBUG_LOG)JSConsole.Complier.Log('[JSExplainer::VisitCallExpression]',funcName,'(',args.toString(),')');if(g_JSComplierResource.IsCustomFunction(funcName)){var functionInfo=g_JSComplierResource.CustomFunction.Data.get(funcName);if(!functionInfo.Description)node.Out='\u81EA\u5B9A\u4E49\u51FD\u6570'+funcName;else node.Out=functionInfo.Description;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';}}],["BARSLASTS",{Name:"BARSLASTS",Param:{Count:2},ToString:function ToString(args){return'\u5012\u6570\u7B2CN\u6B21\u6210\u7ACB\u65F6\u8DDD\u4ECA\u7684\u5468\u671F\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';}}],//字符串函数
|
|
11577
|
+
{outValue+=",画彩色柱状线";var _value23={Name:_varName8,Draw:outValue,Color:color,Type:2};this.OutVarTable.push(_value23);}else if(_varName8){var _value24={Name:_varName8,Data:outValue,Type:0};this.OutVarTable.push(_value24);}}}}JSConsole.Complier.Log('[JSExplainer::Run]',this.VarTable);return this.OutVarTable;};this.VisitNode=function(node){switch(node.Type){case Syntax.SequenceExpression:this.VisitSequenceExpression(node);break;case Syntax.ExpressionStatement:this.VisitNode(node.Expression);break;case Syntax.AssignmentExpression:this.VisitAssignmentExpression(node);break;case Syntax.BinaryExpression:case Syntax.LogicalExpression:this.VisitBinaryExpression(node);break;case Syntax.CallExpression:this.VisitCallExpression(node);break;case Syntax.UnaryExpression:this.VisitUnaryExpression(node);break;}};this.VisitSequenceExpression=function(node){for(var _i129 in node.Expression){var _item22=node.Expression[_i129];this.VisitNode(_item22);}};this.VisitUnaryExpression=function(node){if(node.Operator=='-'){var _value25=this.GetNodeValueEx(node.Argument);return'-'+_value25;}return node.Argument.Value;};//函数调用
|
|
11578
|
+
this.VisitCallExpression=function(node){var funcName=node.Callee.Name;var args=[];for(var _i130 in node.Arguments){var _item23=node.Arguments[_i130];var _value26=void 0;if(_item23.Type==Syntax.BinaryExpression||_item23.Type==Syntax.LogicalExpression)_value26=this.VisitBinaryExpression(_item23);else if(_item23.Type==Syntax.CallExpression)_value26=this.VisitCallExpression(_item23);else _value26=this.GetNodeValue(_item23);args.push(_value26);}if(node.Callee.Type==Syntax.Literal){var dynamicName=node.Callee.Value;node.Out='\u6307\u6807\u5F15\u7528\''+dynamicName+'\'';return node.Out;}if(JS_EXECUTE_DEBUG_LOG)JSConsole.Complier.Log('[JSExplainer::VisitCallExpression]',funcName,'(',args.toString(),')');if(g_JSComplierResource.IsCustomFunction(funcName)){var functionInfo=g_JSComplierResource.CustomFunction.Data.get(funcName);if(!functionInfo.Description)node.Out='\u81EA\u5B9A\u4E49\u51FD\u6570'+funcName;else node.Out=functionInfo.Description;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';}}],["BARSLASTS",{Name:"BARSLASTS",Param:{Count:2},ToString:function ToString(args){return'\u5012\u6570\u7B2CN\u6B21\u6210\u7ACB\u65F6\u8DDD\u4ECA\u7684\u5468\u671F\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';}}],//字符串函数
|
|
11409
11579
|
["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';}}],["L2_VOLNUM",{Name:"L2_VOLNUM",Param:{Count:2},ToString:function ToString(args){return'\u5355\u6570\u5206\u6863';}}],["L2_VOL",{Name:"L2_VOL",Param:{Count:2},ToString:function ToString(args){return'\u6210\u4EA4\u91CF\u5206\u6863';}}],["L2_AMO",{Name:"L2_AMO",Param:{Count:2},ToString:function ToString(args){return'\u6210\u4EA4\u989D\u5206\u6863';}}],["TABLE_CELL",{Name:"TABLE_CELL",Param:{Dynamic:true},ToString:function ToString(args){return'\u521B\u5EFA\u8868\u683C\u5355\u5143\u683C';}}],["TABLE_ROW",{Name:"TABLE_ROW",Param:{Dynamic:true},ToString:function ToString(args){return'\u521B\u5EFA\u8868\u683C\u884C';}}],["DRAWTABLE",{Name:"DRAWTABLE",Param:{Dynamic:true},ToString:function ToString(args){return'\u7ED8\u5236\u8868\u683C';}}]]);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)//动态参数
|
|
11410
11580
|
{}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);//绘图函数
|
|
11411
11581
|
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"PARTLINE":return"画折线";case"SELL":return"卖出平仓";case"BUY":return"买入开仓";case"SELLSHORT":return"卖出开仓";case"BUYSHORT":return"买入平仓";case"DRAWLASTBARNUMBER":return"在最后一根k线输出数值";case"DRAWLASTBARTEXT":return"在最后一根k线显示文字";case"DRAWLASTBARICON":return"在最后一根k线绘制图标";case"YMOVE":return;case"BACKGROUND":return"绘制背景";case"UPCOLOR":return'\u4E0A\u6DA8\u989C\u8272'+args[0];case"DOWNCOLOR":return'\u4E0B\u8DCC\u989C\u8272'+args[0];case"STICKTYPE":case"FIRSTDRAW":return"";default:this.ThrowUnexpectedNode(node,'\u51FD\u6570'+funcName+'\u4E0D\u5B58\u5728');}};this.GetDynainfoExplain=function(args){var DATA_NAME_MAP=new _map2.default([[3,"前收盘价"],[4,"开盘价"],[5,"最高价"],[6,"最低价"],[7,"现价"],[8,'总量'],[9,"现量"],[10,"总金额"],[11,"均价"],[12,"日涨跌"],[13,"振幅"],[14,"涨幅"],[15,"开盘时的成交金额"],[16,"前5日每分钟均量"],[17,"量比"],[18,"上涨家数"],[19,"下跌家数"]]);var id=args[0];if(DATA_NAME_MAP.has(id))return DATA_NAME_MAP.get(id);return'\u5373\u65F6\u884C\u60C5['+id+']';};this.GetFinanceExplain=function(args){var DATA_NAME_MAP=new _map2.default([[1,"总股本"],[2,"市场类型"],[3,"沪深品种类型"],[4,"沪深行业代码"],[5,"B股"],[6,"H股"],[7,"流通股本[股]"],[8,"股东人数[户]"],[9,"资产负债率%"],[10,"总资产"],[11,"流动资产"],[12,"固定资产"],[13,"无形资产"],[15,"流动负债"],[16,"少数股东权益"]]);var id=args[0];if(DATA_NAME_MAP.has(id))return DATA_NAME_MAP.get(id);return'\u8D22\u52A1\u6570\u636E['+id+']';};this.GetZIGExplain=function(funcName,args){var value=args[0];if(value==0)value="开盘价";else if(value==1)value="最高价";else if(value==2)value="最低价";else if(value==3)value="收盘价";switch(funcName){case"PEAK":return value+'\u7684'+args[1]+'%\u4E4B\u5B57\u8F6C\u5411\u7684\u524D'+args[2]+'\u4E2A\u6CE2\u5CF0\u503C';case"PEAKBARS":return value+'\u7684'+args[1]+'5%\u4E4B\u5B57\u8F6C\u5411\u7684\u524D'+args[2]+'\u4E2A\u6CE2\u5CF0\u4F4D\u7F6E';case"ZIG":return value+'\u7684'+args[1]+'\u7684\u4E4B\u5B57\u8F6C\u5411';case"ZIGA":return value+'\u53D8\u5316'+args[1]+'\u7684\u4E4B\u5B57\u8F6C\u5411';case"TROUGH":return value+'\u7684'+args[1]+'%\u4E4B\u5B57\u8F6C\u5411\u7684\u524D'+args[2]+'\u4E2A\u6CE2\u8C37\u503C';case"TROUGHBARS":return value+'\u7684'+args[1]+'%\u4E4B\u5B57\u8F6C\u5411\u7684\u524D'+args[2]+'\u4E2A\u6CE2\u8C37\u4F4D\u7F6E';}};this.GetColorExplain=function(colorName){var COLOR_MAP=new _map2.default([['COLORBLACK','黑色'],['COLORBLUE','蓝色'],['COLORGREEN','绿色'],['COLORCYAN','青色'],['COLORRED','红色'],['COLORMAGENTA','洋红色'],['COLORBROWN','棕色'],['COLORLIGRAY','淡灰色'],['COLORGRAY','深灰色'],['COLORLIBLUE','淡蓝色'],['COLORLIGREEN','淡绿色'],['COLORLICYAN','淡青色'],['COLORLIRED','淡红色'],['COLORLIMAGENTA','淡洋红色'],['COLORWHITE','白色'],['COLORYELLOW','黄色']]);if(COLOR_MAP.has(colorName))return COLOR_MAP.get(colorName);//COLOR 自定义色
|
|
@@ -11563,7 +11733,7 @@ if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK","
|
|
|
11563
11733
|
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;//虚线
|
|
11564
11734
|
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);//给一个空的标题
|
|
11565
11735
|
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);//标题
|
|
11566
|
-
titleData.DataType="MULTI_POINT_LINE";hqChart.TitlePaint[titleIndex].Data[id]=titleData;hqChart.ChartPaint.push(chart);};this.CreateSimpleTable=function(hqChart,windowIndex,varItem,id){var chart=new ChartSimpleTable();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;if(drawData.TableData)chart.Data.Data=drawData.TableData;if(drawData.BGColor)chart.BGColor=drawData.BGColor;if(drawData.BorderColor)chart.BorderColor=drawData.BorderColor;if(drawData.TextFont)chart.TextFontConfig=drawData.TextFont;if(drawData.TextColor)chart.TextColor=drawData.TextColor;if(IFrameSplitOperator.IsNumber(drawData.XOffset))chart.Offset.X=drawData.XOffset;if(IFrameSplitOperator.IsNumber(drawData.YOffset))chart.Offset.Y=drawData.YOffset;}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;//修改颜色
|
|
11736
|
+
titleData.DataType="MULTI_POINT_LINE";hqChart.TitlePaint[titleIndex].Data[id]=titleData;hqChart.ChartPaint.push(chart);};this.CreateSimpleTable=function(hqChart,windowIndex,varItem,id){var chart=new ChartSimpleTable();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;if(drawData.TableData)chart.Data.Data=drawData.TableData;if(drawData.BGColor)chart.BGColor=drawData.BGColor;if(drawData.BorderColor)chart.BorderColor=drawData.BorderColor;if(drawData.TextFont)chart.TextFontConfig=drawData.TextFont;if(drawData.TextColor)chart.TextColor=drawData.TextColor;if(IFrameSplitOperator.IsNumber(drawData.XOffset))chart.Offset.X=drawData.XOffset;if(IFrameSplitOperator.IsNumber(drawData.YOffset))chart.Offset.Y=drawData.YOffset;}hqChart.ChartPaint.push(chart);};this.CreateSimplePie=function(hqChart,windowIndex,varItem,id){var chart=new ChartSimplePie();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;if(drawData.Data)chart.Data.Data=drawData.Data;if(drawData.BorderColor)chart.BorderColor=drawData.BorderColor;if(drawData.TextFont)chart.TextFontConfig=drawData.TextFont;if(drawData.TextColor)chart.TextColor=drawData.TextColor;if(IFrameSplitOperator.IsNumber(drawData.XOffset))chart.Offset.X=drawData.XOffset;if(IFrameSplitOperator.IsNumber(drawData.YOffset))chart.Offset.Y=drawData.YOffset;if(IFrameSplitOperator.IsPlusNumber(drawData.Radius))chart.Radius=drawData.Radius;}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;//修改颜色
|
|
11567
11737
|
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;}}//图片大小
|
|
11568
11738
|
if(varItem.DrawFontSize>0)chart.SVG.Size=varItem.DrawFontSize*GetDevicePixelRatio();//图标大小
|
|
11569
11739
|
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;//赋值坐标
|
|
@@ -11574,7 +11744,7 @@ this.SetChartIndexName(chartText);hqChart.ChartPaint.push(chartText);};//创建
|
|
|
11574
11744
|
this.CreateIcon=function(hqChart,windowIndex,varItem,id){var chartText=new ChartSingleText();chartText.Canvas=hqChart.Canvas;chartText.TextAlign='center';chartText.Name=varItem.Name;chartText.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chartText.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chartText.Direction=2;if(varItem.IsDrawAbove)chartText.Direction=1;if(varItem.DrawVAlign>=0){if(varItem.DrawVAlign==0)chartText.Direction=1;else if(varItem.DrawVAlign==1)chartText.Direction=0;else if(varItem.DrawVAlign==2)chartText.Direction=2;}if(varItem.DrawAlign>=0){if(varItem.DrawAlign==0)chartText.TextAlign="left";else if(varItem.DrawAlign==1)chartText.TextAlign="center";else if(varItem.DrawAlign==2)chartText.TextAlign='right';}var titleIndex=windowIndex+1;chartText.Data.Data=varItem.Draw.DrawData;var icon=varItem.Draw.Icon;if(icon.IconFont==true){chartText.IconFont={Family:icon.Family,Text:icon.Symbol,Color:icon.Color};if(varItem.Color)chartText.IconFont.Color=this.GetColor(varItem.Color);}else{chartText.Text=icon.Symbol;if(varItem.Color)chartText.Color=this.GetColor(varItem.Color);else if(icon.Color)chartText.Color=icon.Color;else chartText.Color='rgb(0,0,0)';}if(varItem.DrawFontSize>0)chartText.FixedFontSize=varItem.DrawFontSize;if(IFrameSplitOperator.IsNumber(varItem.XOffset))chartText.ShowOffset.X=varItem.XOffset;if(IFrameSplitOperator.IsNumber(varItem.YOffset))chartText.ShowOffset.Y=varItem.YOffset;//hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(bar.Data,varItem.Name,bar.Color);
|
|
11575
11745
|
this.SetChartIndexName(chartText);hqChart.ChartPaint.push(chartText);};this.CreateTipIcon=function(hqChart,windowIndex,varItem,i){var chart=new ChartDrawSVG();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(hqChart.ChartPaint[0].IsMinuteFrame())chart.Data=hqChart.SourceData;else chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11576
11746
|
chart.Family=varItem.Draw.Icon.Family;chart.TextFont=g_JSChartResource.TIPICON.TextFont;var svgSize=g_JSChartResource.TIPICON.Size;var svgColor=g_JSChartResource.TIPICON.Color;var svgYOffset=0;var svgVAlign=2;//上下对齐方式
|
|
11577
|
-
if(IFrameSplitOperator.IsNumber(varItem.YOffset))svgYOffset=varItem.YOffset;if(varItem.Color)svgColor=this.GetColor(varItem.Color);if(varItem.DrawFontSize>0)svgSize=varItem.DrawFontSize;if(varItem.DrawVAlign>=0)svgVAlign=varItem.DrawVAlign;if(varItem.Draw&&IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.DrawData)&&varItem.Draw.Icon){var drawData=varItem.Draw.DrawData;var aryData=[];var isArrayTip=Array.isArray(varItem.Draw.Text);var singleTip=null;if(!isArrayTip&&varItem.Draw.Text)singleTip={Text:varItem.Draw.Text};for(var j=0;j<drawData.length;++j){var item=drawData[j];if(!IFrameSplitOperator.IsNumber(item))continue;var svgItem={
|
|
11747
|
+
if(IFrameSplitOperator.IsNumber(varItem.YOffset))svgYOffset=varItem.YOffset;if(varItem.Color)svgColor=this.GetColor(varItem.Color);if(varItem.DrawFontSize>0)svgSize=varItem.DrawFontSize;if(varItem.DrawVAlign>=0)svgVAlign=varItem.DrawVAlign;if(varItem.Draw&&IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.DrawData)&&varItem.Draw.Icon){var drawData=varItem.Draw.DrawData;var aryData=[];var isArrayTip=Array.isArray(varItem.Draw.Text);var singleTip=null;if(!isArrayTip&&varItem.Draw.Text)singleTip={Text:varItem.Draw.Text};for(var j=0;j<drawData.length;++j){var item=drawData[j];var kItem=chart.Data.Data[j];if(!IFrameSplitOperator.IsNumber(item))continue;var svgItem={Value:item,Date:kItem.Date,Time:kItem.Time,SVG:{Symbol:varItem.Draw.Icon.Symbol,Size:svgSize,Color:svgColor,YOffset:svgYOffset,VAlign:svgVAlign}};if(isArrayTip){var text=varItem.Draw.Text[j];if(text)svgItem.Tooltip={Text:text};}else{svgItem.Tooltip=singleTip;}aryData.push(svgItem);}chart.Texts=aryData;}chart.BuildCacheData();hqChart.ChartPaint.push(chart);};this.CreateDrawLastBarText=function(hqChart,windowIndex,varItem,id){var chart=new ChartDrawLastBarText();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(hqChart.ChartPaint[0].IsMinuteFrame())chart.Data=hqChart.SourceData;else chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11578
11748
|
var lastItem=varItem.Draw.DrawData;if(lastItem){if(lastItem.Color)lastItem.Color=this.GetColor(lastItem.Color);else lastItem.Color=this.GetDefaultColor(id);if(varItem.Color)lastItem.Color=this.GetColor(varItem.Color);if(varItem.DrawVAlign>=0){if(varItem.DrawVAlign==0)lastItem.TextBaseline='top';else if(varItem.DrawVAlign==1)lastItem.TextBaseline='middle';else if(varItem.DrawVAlign==2)lastItem.TextBaseline='bottom';}if(varItem.DrawAlign>=0){if(varItem.DrawAlign==0)lastItem.TextAlign="left";else if(varItem.DrawAlign==1)lastItem.TextAlign="center";else if(varItem.DrawAlign==2)lastItem.TextAlign='right';}if(IFrameSplitOperator.IsNumber(varItem.YOffset))lastItem.YOffset=varItem.YOffset;if(IFrameSplitOperator.IsNumber(varItem.XOffset))lastItem.XOffset=varItem.XOffset;if(varItem.DrawFontSize>0)lastItem.FontSize=varItem.DrawFontSize;}chart.LastBarItem=lastItem;hqChart.ChartPaint.push(chart);};//创建通道
|
|
11579
11749
|
this.CreateChannel=function(hqChart,windowIndex,varItem,id){var chart=new ChartChannel();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.AreaColor)chart.AreaColor=varItem.Draw.AreaColor;else if(varItem.Color)chart.AreaColor=this.GetColor(varItem.Color);else chart.AreaColor=this.GetDefaultColor(id);if(varItem.Draw.Border.Color)chart.LineColor=varItem.Draw.Border.Color;else chart.LineColor=null;if(varItem.Draw.Border.Dotted)chart.LineDotted=varItem.Draw.Border.Dotted;if(varItem.Draw.Border.Width>0)chart.LineWidth=varItem.Draw.Border.Width;//let titleIndex=windowIndex+1;
|
|
11580
11750
|
chart.Data.Data=varItem.Draw.DrawData;hqChart.ChartPaint.push(chart);};this.CreatePartLine=function(hqChart,windowIndex,varItem,i){var chart=new ChartPartLine();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.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(IFrameSplitOperator.IsPlusNumber(width))chart.LineWidth=width;}chart.Data.Data=varItem.Draw.DrawData;this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateMultiLine=function(hqChart,windowIndex,varItem,i){var chart=new ChartMultiLine();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=hqChart.ChartPaint[0].Data;//绑定K线
|
|
@@ -11584,17 +11754,17 @@ chart.PointGroup=varItem.Draw.DrawData;if(varItem.Draw.Name)chart.Name=varItem.D
|
|
|
11584
11754
|
chart.Bars=varItem.Draw.DrawData;var titleIndex=windowIndex+1;var titleData=new DynamicTitleData({KData:chart.Data,BarData:chart.Bars},varItem.Name,null);titleData.IsShow=false;titleData.DataType="MULTI_BAR";hqChart.TitlePaint[titleIndex].Data[id]=titleData;this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateMultiText=function(hqChart,windowIndex,varItem,i){var chart=new ChartMultiText();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=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11585
11755
|
chart.Texts=varItem.Draw.DrawData;this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateMultiSVGIcon=function(hqChart,windowIndex,varItem,i){var chart=new ChartMultiSVGIconV2();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=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11586
11756
|
chart.Family=varItem.Draw.DrawData.Family;chart.AryIcon=varItem.Draw.DrawData.Icon;chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateChartDrawSVG=function(hqChart,windowIndex,varItem,i){var chart=new ChartDrawSVG();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(hqChart.ChartPaint[0].IsMinuteFrame())chart.Data=hqChart.SourceData;else chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11587
|
-
if(IFrameSplitOperator.IsBool(varItem.Draw.DrawData.EnableTooltip))chart.EnableTooltip=varItem.Draw.DrawData.EnableTooltip;if(IFrameSplitOperator.IsBool(varItem.Draw.DrawData.IsDrawFirst))chart.IsDrawFirst=varItem.Draw.DrawData.IsDrawFirst;chart.Family=varItem.Draw.DrawData.Family;chart.TextFont=varItem.Draw.DrawData.TextFont;chart.Texts=varItem.Draw.DrawData.Data;hqChart.ChartPaint.push(chart);};this.CreateMulitHtmlDom=function(hqChart,windowIndex,varItem,i){var chart=new ChartMultiHtmlDom();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11757
|
+
if(IFrameSplitOperator.IsBool(varItem.Draw.DrawData.EnableTooltip))chart.EnableTooltip=varItem.Draw.DrawData.EnableTooltip;if(IFrameSplitOperator.IsBool(varItem.Draw.DrawData.IsDrawFirst))chart.IsDrawFirst=varItem.Draw.DrawData.IsDrawFirst;chart.Family=varItem.Draw.DrawData.Family;chart.TextFont=varItem.Draw.DrawData.TextFont;chart.Texts=varItem.Draw.DrawData.Data;chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateMulitHtmlDom=function(hqChart,windowIndex,varItem,i){var chart=new ChartMultiHtmlDom();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11588
11758
|
chart.Texts=varItem.Draw.DrawData;chart.DrawCallback=varItem.Draw.Callback;hqChart.ChartPaint.push(chart);};this.CreateStackedBar=function(hqChart,windowIndex,varItem,i){var chart=new ChartStackedBar();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data.Data=varItem.Draw.DrawData;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.BarColor))chart.BarColor=varItem.Draw.BarColor;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.BarName))chart.BarName=varItem.Draw.BarName;if(IFrameSplitOperator.IsNumber(varItem.Draw.LineWidth))chart.LineWidth=varItem.Draw.LineWidth;if(IFrameSplitOperator.IsNumber(varItem.Draw.BarType))chart.BarType=varItem.Draw.BarType;hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;var titleData=new DynamicTitleData(chart.Data,chart.BarName,chart.BarColor);titleData.DataType="ChartStackedBar";hqChart.TitlePaint[titleIndex].Data[i]=titleData;};this.CreateKLineTable=function(hqChart,windowIndex,varItem,i){var chart=new ChartKLineTable();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data.Data=varItem.Draw.DrawData;if(IFrameSplitOperator.IsNumber(varItem.Draw.RowCount))chart.RowCount=varItem.Draw.RowCount;if(IFrameSplitOperator.IsBool(varItem.Draw.IsShowRowName))chart.IsShowRowName=varItem.Draw.IsShowRowName;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.RowName))chart.RowName=varItem.Draw.RowName;if(varItem.Draw.BGColor)chart.BGColor=varItem.Draw.BGColor;hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;var titleData=new DynamicTitleData(chart.Data,chart.BarName,chart.BarColor);titleData.DataType="ChartKLineTable";hqChart.TitlePaint[titleIndex].Data[i]=titleData;};this.CreateScatterPlot=function(hqChart,windowIndex,varItem,i){var chart=new ChartScatterPlot();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data.Data=varItem.Draw.DrawData;chart.Color=varItem.Draw.Color;chart.Radius=varItem.Draw.Radius;hqChart.ChartPaint.push(chart);};this.CreateClipColorStick=function(hqChart,windowIndex,varItem,id){var chart=new ChartClipColorStick();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data.Data=varItem.Draw.DrawData;if(varItem.Option&&chart.SetOption)chart.SetOption(varItem.Option);hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;if(varItem.IsShowTitle===false){}else{var clrTitle=this.GetDefaultColor(id);if(varItem.Option&&varItem.Option.TitleColor)clrTitle=this.GetColor(varItem.Option.TitleColor);hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(chart.Data,varItem.Name,clrTitle);}};this.CreateColorKLine=function(hqChart,windowIndex,varItem,i){var chart=new ChartColorKline();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=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11589
11759
|
chart.KLineColor=varItem.Draw.DrawData.KLine;if(varItem.Color)chart.Color=varItem.Color;hqChart.ChartPaint.push(chart);};this.CreateRectangle=function(hqChart,windowIndex,varItem,i){var chart=new ChartRectangle();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Color=[varItem.Draw.DrawData.Color];chart.Rect=varItem.Draw.DrawData.Rect;if(varItem.Color)chart.BorderColor=this.GetColor(varItem.Color);hqChart.ChartPaint.push(chart);};this.CreateScriptOverlayLine=function(hqChart,windowIndex,varItem,i){var chart=new ChartOverlayLine();chart.Canvas=hqChart.Canvas;chart.DrawType=1;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(i);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}if(varItem.IsDotLine)chart.IsDotLine=true;//虚线
|
|
11590
11760
|
if(varItem.IsShow==false)chart.IsShow=false;var titleIndex=windowIndex+1;chart.Data.Data=varItem.Draw.DrawData.Data;chart.MainData.Data=varItem.Draw.DrawData.MainData;if(varItem.Draw.DrawData.Title)hqChart.TitlePaint[titleIndex].Data[i]=new DynamicTitleData(chart.Data,varItem.Draw.DrawData.Title,chart.Color);hqChart.ChartPaint.push(chart);};//创建K线
|
|
11591
11761
|
this.CreateSelfKLine=function(hqChart,windowIndex,hisData){var chart=new ChartKLine();chart.Canvas=hqChart.Canvas;chart.Name="Self Kline";chart.Identify=this.Guid;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hisData;chart.IsShowMaxMinPrice=false;chart.IsShowKTooltip=false;chart.DrawType=this.KLineType;hqChart.ChartPaint.push(chart);};this.BindInstructionData=function(hqChart,windowIndex,hisData)//绑定指示指标
|
|
11592
11762
|
{if(this.OutVar==null||this.OutVar.length<0)return;//参数
|
|
11593
|
-
var indexParam='';for(var
|
|
11763
|
+
var indexParam='';for(var _i131 in this.Arguments){var _item24=this.Arguments[_i131];if(indexParam.length>0)indexParam+=',';indexParam+=_item24.Value.toString();}if(indexParam.length>0)indexParam='('+indexParam+')';if(this.InstructionType==2)//五彩K线
|
|
11594
11764
|
{var varItem=this.OutVar[this.OutVar.length-1];//取最后一组数据作为指示数据
|
|
11595
11765
|
hqChart.SetInstructionData(this.InstructionType,{Data:varItem.Data,Name:this.Name,Param:indexParam,ID:this.ID});//设置指示数据
|
|
11596
11766
|
return true;}else if(this.InstructionType==1)//交易系统
|
|
11597
|
-
{var buyData,sellData;for(var i in this.OutVar){var
|
|
11767
|
+
{var buyData,sellData;for(var i in this.OutVar){var _item25=this.OutVar[i];if(_item25.Name=='ENTERLONG')buyData=_item25.Data;else if(_item25.Name=='EXITLONG')sellData=_item25.Data;}hqChart.SetInstructionData(this.InstructionType,{Buy:buyData,Sell:sellData,Name:this.Name,Param:indexParam,ID:this.ID});//设置指示数据
|
|
11598
11768
|
return true;}};this.BindData=function(hqChart,windowIndex,hisData){if(windowIndex==0&&this.InstructionType){this.BindInstructionData(hqChart,windowIndex,hisData);return;}//清空主指标图形
|
|
11599
11769
|
hqChart.DeleteIndexPaint(windowIndex);if(windowIndex==0)hqChart.ShowKLine(true);if(this.OutVar==null||this.OutVar.length<0)return;//叠加一个K线背景
|
|
11600
11770
|
if(this.KLineType!=null){if(this.KLineType===0||this.KLineType===1||this.KLineType===2)this.CreateSelfKLine(hqChart,windowIndex,hisData);else if(this.KLineType===-1&&windowIndex==0)hqChart.ShowKLine(false);}if(windowIndex>=1&&hqChart.Frame){//Y轴刻度格式 默认跟标题栏一致
|
|
@@ -11608,12 +11778,12 @@ if(this.YSplitScale)hqChart.Frame.SubFrame[windowIndex].Frame.YSplitScale=this.Y
|
|
|
11608
11778
|
var testData={ Name:'MULTI_LINE', Type:1,Draw:{ DrawType:'MULTI_LINE', DrawData:[point1,point2] } };
|
|
11609
11779
|
this.OutVar.push(testData);
|
|
11610
11780
|
}
|
|
11611
|
-
*/for(var
|
|
11612
|
-
if(
|
|
11613
|
-
if(
|
|
11614
|
-
if(find&&find.CreateChartCallback)find.CreateChartCallback(hqChart,windowIndex,
|
|
11615
|
-
{if(this.StringFormat>0)titlePaint.Data[
|
|
11616
|
-
titlePaint.ArgumentsText=null;titlePaint.Script=this;titlePaint.IsShowMainIndexTitle=this.IsShowIndexTitle;if(!this.IsShortTitle){var indexParam='';for(var
|
|
11781
|
+
*/for(var _i132=0;_i132<this.OutVar.length;++_i132){var _item26=this.OutVar[_i132];if(_item26.IsExData===true)continue;//扩展数据不显示图形
|
|
11782
|
+
if(_item26.Type==1000||_item26.Type==1001)continue;//数据集合, 字符串
|
|
11783
|
+
if(_item26.Type==0){if(_item26.IsOverlayLine)this.CreateOverlayLine(hqChart,windowIndex,_item26,_i132,_item26.Type);else if(_item26.IsSingleLine)this.CreateSingleLine(hqChart,windowIndex,_item26,_i132,_item26.Type);else this.CreateLine(hqChart,windowIndex,_item26,_i132,_item26.Type);}else if(_item26.Type==1){switch(_item26.Draw.DrawType){case'STICKLINE':this.CreateBar(hqChart,windowIndex,_item26,_i132);break;case'DRAWTEXT':this.CreateDrawTextV2(hqChart,windowIndex,_item26,_i132);break;case'SUPERDRAWTEXT':this.CreateText(hqChart,windowIndex,_item26,_i132);break;case'DRAWLINE':this.CreateStraightLine(hqChart,windowIndex,_item26,_i132);break;case'DRAWBAND':this.CreateBand(hqChart,windowIndex,_item26,_i132);break;case"FILLRGN":this.CreateFillRGN(hqChart,windowIndex,_item26,_i132);break;case"FILLRGN2":this.CreateFillRGN2(hqChart,windowIndex,_item26,_i132);break;case"FILLTOPRGN":case"FILLBOTTOMRGN":case"FILLVERTICALRGN":this.CreateFillBGRGN(hqChart,windowIndex,_item26,_i132);break;case"FLOATRGN":this.CreateFLOATRGN(hqChart,windowIndex,_item26,_i132);break;case'DRAWKLINE':case"DRAWKLINE1":this.CreateKLine(hqChart,windowIndex,_item26,_i132);break;case"DRAWOVERLAYKLINE":this.CreateOverlayKLine(hqChart,windowIndex,_item26,_i132);break;case"DRAWCOLORKLINE":this.CreateDrawColorKLine(hqChart,windowIndex,_item26,_i132);break;case'DRAWKLINE_IF':this.CreateKLine(hqChart,windowIndex,_item26,_i132);break;case'POLYLINE':this.CreatePolyLine(hqChart,windowIndex,_item26,_i132);break;case'DRAWGBK':case"DRAWGBK2":this.CreateBackgroud(hqChart,windowIndex,_item26,_i132);break;case"DRAWGBK_DIV":this.CreateBackgroundDiv(hqChart,windowIndex,_item26,_i132);break;case'DRAWTEXT_LINE':this.CreateTextLine(hqChart,windowIndex,_item26,_i132);break;case'DRAWNUMBER':this.CreateDrawNumber(hqChart,windowIndex,_item26,_i132);break;case"DRAWNUMBER_FIX":case'DRAWTEXT_FIX':this.CreateNumberText(hqChart,windowIndex,_item26,_i132);break;case'DRAWICON':this.CreateIcon(hqChart,windowIndex,_item26,_i132);break;case"ICON":this.CreateIcon(hqChart,windowIndex,_item26,_i132);break;case"TIPICON":this.CreateTipIcon(hqChart,windowIndex,_item26,_i132);break;case'DRAWCHANNEL':this.CreateChannel(hqChart,windowIndex,_item26,_i132);break;case'PARTLINE':this.CreatePartLine(hqChart,windowIndex,_item26,_i132);break;case'DRAWRECTREL':this.CreateRectangle(hqChart,windowIndex,_item26,_i132);break;case"DRAWTEXTABS":case"DRAWTEXTREL":this.CreateDrawText(hqChart,windowIndex,_item26,_i132);break;case"DRAWOVERLAYLINE":this.CreateScriptOverlayLine(hqChart,windowIndex,_item26,_i132);break;case"DRAWSL":this.CreateChartSlopeLine(hqChart,windowIndex,_item26,_i132);break;case"VERTLINE":this.CreateChartVericaltLine(hqChart,windowIndex,_item26,_i132);break;case"HORLINE":this.CreateChartHorizontalLine(hqChart,windowIndex,_item26,_i132);break;case'MULTI_LINE':this.CreateMultiLine(hqChart,windowIndex,_item26,_i132);break;case"MULTI_POINT":this.CreateMultiPoint(hqChart,windowIndex,_item26,_i132);break;case'MULTI_BAR':this.CreateMultiBar(hqChart,windowIndex,_item26,_i132);break;case'MULTI_TEXT':this.CreateMultiText(hqChart,windowIndex,_item26,_i132);break;case'MULTI_SVGICON':this.CreateMultiSVGIcon(hqChart,windowIndex,_item26,_i132);break;case"DRAWSVG":this.CreateChartDrawSVG(hqChart,windowIndex,_item26,_i132);break;case"MULTI_HTMLDOM":this.CreateMulitHtmlDom(hqChart,windowIndex,_item26,_i132);break;case"COLOR_KLINE":this.CreateColorKLine(hqChart,windowIndex,_item26,_i132);break;case"KLINE_BG":this.CreateBackgroud(hqChart,windowIndex,_item26,_i132);break;case"MULTI_POINT_LINE":this.CreateLineMultiData(hqChart,windowIndex,_item26,_i132);break;case"DRAW_SIMPLE_TABLE":this.CreateSimpleTable(hqChart,windowIndex,_item26,_i132);break;case"DRAW_SIMPLE_PIE":this.CreateSimplePie(hqChart,windowIndex,_item26,_i132);case"BUY":case"SELL":case"SELLSHORT":case"BUYSHORT":this.CreateTradeIcon(hqChart,windowIndex,_item26,_i132);break;case"DRAWLASTBARICON":case"DRAWLASTBARNUMBER":case"DRAWLASTBARTEXT":this.CreateDrawLastBarText(hqChart,windowIndex,_item26,_i132);break;case SCRIPT_CHART_NAME.OVERLAY_BARS:this.CreateStackedBar(hqChart,windowIndex,_item26,_i132);break;case SCRIPT_CHART_NAME.KLINE_TABLE:this.CreateKLineTable(hqChart,windowIndex,_item26,_i132);break;case SCRIPT_CHART_NAME.SCATTER_PLOT:this.CreateScatterPlot(hqChart,windowIndex,_item26,_i132);break;case SCRIPT_CHART_NAME.CLIP_COLOR_STICK:this.CreateClipColorStick(hqChart,windowIndex,_item26,_i132);break;default:{var find=g_ScriptIndexChartFactory.Get(_item26.Draw.DrawType);//外部挂接
|
|
11784
|
+
if(find&&find.CreateChartCallback)find.CreateChartCallback(hqChart,windowIndex,_item26,_i132,this);}break;}}else if(_item26.Type==2){this.CreateMACD(hqChart,windowIndex,_item26,_i132);}else if(_item26.Type==3){this.CreatePointDot(hqChart,windowIndex,_item26,_i132,hisData);}else if(_item26.Type==4){this.CreateLineStick(hqChart,windowIndex,_item26,_i132);}else if(_item26.Type==5){this.CreateStick(hqChart,windowIndex,_item26,_i132);}else if(_item26.Type==6){this.CreateVolStick(hqChart,windowIndex,_item26,_i132,hisData);}else if(_item26.Type==7){this.CreateLine(hqChart,windowIndex,_item26,_i132,_item26.Type);}else if(_item26.Type==8){this.CreateLine(hqChart,windowIndex,_item26,_i132,_item26.Type);}else if(_item26.Type==9){this.CreateArea(hqChart,windowIndex,_item26,_i132);}var titlePaint=hqChart.TitlePaint[windowIndex+1];if(titlePaint&&titlePaint.Data&&_i132<titlePaint.Data.length)//设置标题数值 小数位数和格式
|
|
11785
|
+
{if(this.StringFormat>0)titlePaint.Data[_i132].StringFormat=this.StringFormat;if(this.FloatPrecision>=0)titlePaint.Data[_i132].FloatPrecision=this.FloatPrecision;if(this.OutName&&this.OutName.length>0&&this.Arguments&&this.Arguments.length>0){titlePaint.SetDynamicTitle(this.OutName,this.Arguments);}}}var titleIndex=windowIndex+1;var titlePaint=hqChart.TitlePaint[titleIndex];titlePaint.Title=this.Name;titlePaint.Identify=this.Guid;//指标ID
|
|
11786
|
+
titlePaint.ArgumentsText=null;titlePaint.Script=this;titlePaint.IsShowMainIndexTitle=this.IsShowIndexTitle;if(!this.IsShortTitle){var indexParam='';for(var _i133=0;_i133<this.Arguments.length;++_i133){var _item27=this.Arguments[_i133];if(indexParam.length>0)indexParam+=',';indexParam+=_item27.Value.toString();}if(indexParam.length>0)titlePaint.ArgumentsText='('+indexParam+')';}if(this.TitleFont)titlePaint.Font=this.TitleFont;return true;};//给一个默认的颜色
|
|
11617
11787
|
this.GetDefaultColor=function(id){var COLOR_ARRAY=null;//使用全局线段配置
|
|
11618
11788
|
if(g_JSChartResource&&g_JSChartResource.Index&&g_JSChartResource.Index.LineColor){COLOR_ARRAY=g_JSChartResource.Index.LineColor;}if(!COLOR_ARRAY||!Array.isArray(COLOR_ARRAY)){COLOR_ARRAY=["rgb(255,174,0)","rgb(25,199,255)","rgb(175,95,162)","rgb(236,105,65)","rgb(68,114,196)","rgb(229,0,79)","rgb(0,128,255)","rgb(252,96,154)","rgb(42,230,215)","rgb(24,71,178)"];}var number=parseInt(id);return COLOR_ARRAY[number%(COLOR_ARRAY.length-1)];};//获取颜色
|
|
11619
11789
|
this.GetColor=function(colorName){if(colorName.indexOf("RGB(")==0)return colorName.toLowerCase();if(colorName.indexOf("rgb(")==0)return colorName;if(colorName.indexOf("RGBA(")==0)return colorName.toLowerCase();if(colorName.indexOf("rgba(")==0)return colorName;var color=JSComplier.ColorVarToRGB(colorName);if(color)return color;return'rgb(30,144,255)';/*
|
|
@@ -11650,11 +11820,11 @@ this.OverlayIndex=null;// { IsOverlay:true, Identify:overlayFrame.Identify, Wind
|
|
|
11650
11820
|
//显示指标不符合条件
|
|
11651
11821
|
this.ShowConditionError=function(param,msg){var hqChart=param.HQChart;var windowIndex=param.WindowIndex;var message='指标不支持当前品种或周期';if(msg)message=msg;var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;frame.ChartPaint=[];var chart=new ChartLine();chart.Canvas=hqChart.Canvas;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.NotSupportMessage=message;frame.ChartPaint.push(chart);hqChart.Draw();};this.BindData=function(hqChart,windowIndex,hisData){if(!this.OverlayIndex||this.OverlayIndex.IsOverlay!=true)return;this.OverlayIndex.Frame.ChartPaint=[];if(!IFrameSplitOperator.IsNonEmptyArray(this.OutVar))return;//修改Y轴分割方式
|
|
11652
11822
|
var ySpliter=this.OverlayIndex.Frame.Frame.YSplitOperator;if(ySpliter){ySpliter.Reset();ySpliter.FloatPrecision=this.FloatPrecision;if(IFrameSplitOperator.IsNumber(this.YSplitType))ySpliter.SplitType=this.YSplitType;if(this.YAxis)ySpliter.SetOption(this.YAxis);}//指标名字
|
|
11653
|
-
var titleInfo={Data:[],Title:this.Name,Frame:this.OverlayIndex.Frame.Frame,Script:this,IsShowIndexTitle:this.IsShowIndexTitle};var indexParam='';for(var i in this.Arguments){var
|
|
11823
|
+
var titleInfo={Data:[],Title:this.Name,Frame:this.OverlayIndex.Frame.Frame,Script:this,IsShowIndexTitle:this.IsShowIndexTitle};var indexParam='';for(var i in this.Arguments){var _item28=this.Arguments[i];if(indexParam.length>0)indexParam+=',';indexParam+=_item28.Value.toString();}if(indexParam.length>0)titleInfo.Title=this.Name+'('+indexParam+')';var titleIndex=windowIndex+1;var titlePaint=hqChart.TitlePaint[titleIndex];titlePaint.OverlayIndex.set(this.OverlayIndex.Identify,titleInfo);if(this.OutName&&this.OutName.length>0&&this.Arguments&&this.Arguments.length>0){titlePaint.SetDynamicTitle(this.OutName,this.Arguments,this.OverlayIndex.Identify);}this.OverlayIndex.Frame.Frame.Title=this.Name;//给子框架设置标题
|
|
11654
11824
|
if(hqChart.Frame.SubFrame[windowIndex]){var mainFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(mainFrame)this.OverlayIndex.Frame.Frame.XPointCount=mainFrame.XPointCount;//跟主窗口同步下页面显示数据个数
|
|
11655
|
-
}for(var i=0;i<this.OutVar.length;++i){var
|
|
11656
|
-
if(
|
|
11657
|
-
if(find&&find.CreateChartCallback)find.CreateChartCallback(hqChart,windowIndex,
|
|
11825
|
+
}for(var i=0;i<this.OutVar.length;++i){var _item29=this.OutVar[i];if(_item29.IsExData===true)continue;//扩展数据不显示图形
|
|
11826
|
+
if(_item29.Type==0){this.CreateLine(hqChart,windowIndex,_item29,i,_item29.Type);}else if(_item29.Type==1){switch(_item29.Draw.DrawType){case'STICKLINE':this.CreateBar(hqChart,windowIndex,_item29,i);break;case'DRAWTEXT':this.CreateDrawTextV2(hqChart,windowIndex,_item29,i);break;case'SUPERDRAWTEXT':this.CreateText(hqChart,windowIndex,_item29,i);break;case'DRAWLINE':this.CreateStraightLine(hqChart,windowIndex,_item29,i);break;case'DRAWBAND':this.CreateBand(hqChart,windowIndex,_item29,i);break;case'DRAWKLINE':this.CreateKLine(hqChart,windowIndex,_item29,i);break;case'DRAWKLINE_IF':this.CreateKLine(hqChart,windowIndex,_item29,i);break;case'POLYLINE':this.CreatePolyLine(hqChart,windowIndex,_item29,i);break;case'DRAWGBK':case"DRAWGBK2":this.CreateBackgroud(hqChart,windowIndex,_item29,i);break;case'DRAWNUMBER':case"DRAWNUMBER_FIX":case'DRAWTEXT_FIX':this.CreateNumberText(hqChart,windowIndex,_item29,i);break;case'DRAWICON':this.CreateIcon(hqChart,windowIndex,_item29,i);break;case"TIPICON":this.CreateTipIcon(hqChart,windowIndex,_item29,i);break;case'DRAWCHANNEL':this.CreateChannel(hqChart,windowIndex,_item29,i);break;case'DRAWTEXT_LINE':this.CreateTextLine(hqChart,windowIndex,_item29,i);break;case"VERTLINE":this.CreateChartVericaltLine(hqChart,windowIndex,_item29,i);break;case"HORLINE":this.CreateChartHorizontalLine(hqChart,windowIndex,_item29,i);break;case'MULTI_LINE':this.CreateMultiLine(hqChart,windowIndex,_item29,i);break;case"MULTI_POINT":this.CreateMultiPoint(hqChart,windowIndex,_item29,i);break;case'MULTI_BAR':this.CreateMultiBar(hqChart,windowIndex,_item29,i);break;case'MULTI_TEXT':this.CreateMultiText(hqChart,windowIndex,_item29,i);break;case'MULTI_SVGICON':this.CreateMultiSVGIcon(hqChart,windowIndex,_item29,i);break;case"DRAWSVG":this.CreateChartDrawSVG(hqChart,windowIndex,_item29,i);break;case"MULTI_HTMLDOM":this.CreateMulitHtmlDom(hqChart,windowIndex,_item29,i);break;case"DRAW_SIMPLE_TABLE":this.CreateSimpleTable(hqChart,windowIndex,_item29,i);break;case"DRAW_SIMPLE_PIE":this.CreateSimplePie(hqChart,windowIndex,_item29,i);case"KLINE_BG":this.CreateBackgroud(hqChart,windowIndex,_item29,i);break;case'PARTLINE':this.CreatePartLine(hqChart,windowIndex,_item29,i);break;case"DRAWTEXTABS":case"DRAWTEXTREL":this.CreateDrawText(hqChart,windowIndex,_item29,i);break;case SCRIPT_CHART_NAME.OVERLAY_BARS:this.CreateStackedBar(hqChart,windowIndex,_item29,i);break;case"DRAWCOLORKLINE":this.CreateDrawColorKLine(hqChart,windowIndex,_item29,i);break;default:{var find=g_ScriptIndexChartFactory.Get(_item29.Draw.DrawType);//外部挂接
|
|
11827
|
+
if(find&&find.CreateChartCallback)find.CreateChartCallback(hqChart,windowIndex,_item29,i,this);}break;}}else if(_item29.Type==2){this.CreateMACD(hqChart,windowIndex,_item29,i);}else if(_item29.Type==3){this.CreatePointDot(hqChart,windowIndex,_item29,i,hisData);}else if(_item29.Type==4){this.CreateLineStick(hqChart,windowIndex,_item29,i);}else if(_item29.Type==5){this.CreateStick(hqChart,windowIndex,_item29,i);}else if(_item29.Type==6){this.CreateVolStick(hqChart,windowIndex,_item29,i,hisData);}else if(_item29.Type==7){this.CreateLine(hqChart,windowIndex,_item29,i,_item29.Type);}else if(_item29.Type==8){this.CreateLine(hqChart,windowIndex,_item29,i,_item29.Type);}var titleData=titleInfo.Data[i];if(titleData){if(this.FloatPrecision>=0)titleData.FloatPrecision=this.FloatPrecision;if(IFrameSplitOperator.IsNumber(this.StringFormat))titleData.StringFormat=this.StringFormat;}}/*
|
|
11658
11828
|
hqChart.TitlePaint[titleIndex].Title=this.Name;
|
|
11659
11829
|
|
|
11660
11830
|
let indexParam='';
|
|
@@ -11698,7 +11868,7 @@ this.CreateIcon=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.O
|
|
|
11698
11868
|
//hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(bar.Data,varItem.Name,bar.Color);
|
|
11699
11869
|
this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateTipIcon=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartDrawSVG();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(hqChart.ChartPaint[0].IsMinuteFrame())chart.Data=hqChart.SourceData;else chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11700
11870
|
chart.Family=varItem.Draw.Icon.Family;chart.TextFont=g_JSChartResource.TIPICON.TextFont;var svgSize=g_JSChartResource.TIPICON.Size;var svgColor=g_JSChartResource.TIPICON.Color;var svgYOffset=0;var svgVAlign=2;//上下对齐方式
|
|
11701
|
-
if(IFrameSplitOperator.IsNumber(varItem.YOffset))svgYOffset=varItem.YOffset;if(varItem.Color)svgColor=this.GetColor(varItem.Color);if(varItem.DrawFontSize>0)svgSize=varItem.DrawFontSize;if(varItem.DrawVAlign>=0)svgVAlign=varItem.DrawVAlign;if(varItem.Draw&&IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.DrawData)&&varItem.Draw.Icon){var drawData=varItem.Draw.DrawData;var aryData=[];var isArrayTip=Array.isArray(varItem.Draw.Text);var singleTip=null;if(!isArrayTip&&varItem.Draw.Text)singleTip={Text:varItem.Draw.Text};for(var j=0;j<drawData.length;++j){var item=drawData[j];if(!IFrameSplitOperator.IsNumber(item))continue;var svgItem={
|
|
11871
|
+
if(IFrameSplitOperator.IsNumber(varItem.YOffset))svgYOffset=varItem.YOffset;if(varItem.Color)svgColor=this.GetColor(varItem.Color);if(varItem.DrawFontSize>0)svgSize=varItem.DrawFontSize;if(varItem.DrawVAlign>=0)svgVAlign=varItem.DrawVAlign;if(varItem.Draw&&IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.DrawData)&&varItem.Draw.Icon){var drawData=varItem.Draw.DrawData;var aryData=[];var isArrayTip=Array.isArray(varItem.Draw.Text);var singleTip=null;if(!isArrayTip&&varItem.Draw.Text)singleTip={Text:varItem.Draw.Text};for(var j=0;j<drawData.length;++j){var item=drawData[j];var kItem=chart.Data.Data[j];if(!IFrameSplitOperator.IsNumber(item))continue;var svgItem={Value:item,Date:kItem.Date,Time:kItem.Time,SVG:{Symbol:varItem.Draw.Icon.Symbol,Size:svgSize,Color:svgColor,YOffset:svgYOffset,VAlign:svgVAlign}};if(isArrayTip){var text=varItem.Draw.Text[j];if(text)svgItem.Tooltip={Text:text};}else{svgItem.Tooltip=singleTip;}aryData.push(svgItem);}chart.Texts=aryData;}chart.BuildCacheData();frame.ChartPaint.push(chart);};//创建通道
|
|
11702
11872
|
this.CreateChannel=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartChannel();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Draw.AreaColor)chart.AreaColor=varItem.Draw.AreaColor;else if(varItem.Color)chart.AreaColor=this.GetColor(varItem.Color);else chart.AreaColor=this.GetDefaultColor(id);if(varItem.Draw.Border.Color)chart.LineColor=varItem.Draw.Border.Color;else chart.LineColor=null;if(varItem.Draw.Border.Dotted)chart.LineDotted=varItem.Draw.Border.Dotted;if(varItem.Draw.Border.Width>0)chart.LineWidth=varItem.Draw.Border.Width;//let titleIndex=windowIndex+1;
|
|
11703
11873
|
chart.Data.Data=varItem.Draw.DrawData;frame.ChartPaint.push(chart);};//
|
|
11704
11874
|
this.CreatePartLine=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartPartLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(IFrameSplitOperator.IsPlusNumber(width))chart.LineWidth=width;}chart.Data.Data=varItem.Draw.DrawData;this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateMultiLine=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
@@ -11708,8 +11878,8 @@ chart.PointGroup=varItem.Draw.DrawData;frame.ChartPaint.push(chart);};this.Creat
|
|
|
11708
11878
|
chart.Bars=varItem.Draw.DrawData;var titleIndex=windowIndex+1;var titlePaint=hqChart.TitlePaint[titleIndex];var titleData=new DynamicTitleData({KData:chart.Data,BarData:chart.Bars},varItem.Name,null);titleData.IsShow=false;titleData.DataType="MULTI_BAR";titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateMultiText=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiText();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11709
11879
|
chart.Texts=varItem.Draw.DrawData;this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateMultiSVGIcon=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiSVGIconV2();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11710
11880
|
chart.Family=varItem.Draw.DrawData.Family;chart.AryIcon=varItem.Draw.DrawData.Icon;chart.BuildCacheData();this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateChartDrawSVG=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartDrawSVG();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(hqChart.ChartPaint[0].IsMinuteFrame())chart.Data=hqChart.SourceData;else chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11711
|
-
if(IFrameSplitOperator.IsBool(varItem.Draw.DrawData.EnableTooltip))chart.EnableTooltip=varItem.Draw.DrawData.EnableTooltip;if(IFrameSplitOperator.IsBool(varItem.Draw.DrawData.IsDrawFirst))chart.IsDrawFirst=varItem.Draw.DrawData.IsDrawFirst;chart.Family=varItem.Draw.DrawData.Family;chart.TextFont=varItem.Draw.DrawData.TextFont;chart.Texts=varItem.Draw.DrawData.Data;if(varItem.Draw.AutoPosition)chart.AutoPosition=varItem.Draw.AutoPosition;this.ReloadChartResource(hqChart,windowIndex,chart);this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateMulitHtmlDom=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiHtmlDom();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11712
|
-
chart.Texts=varItem.Draw.DrawData;chart.DrawCallback=varItem.Draw.Callback;frame.ChartPaint.push(chart);};this.CreateSimpleTable=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartSimpleTable();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;if(varItem.Draw&&varItem.Draw.DrawData){var drawData=varItem.Draw.DrawData;if(drawData.TableData)chart.Data.Data=drawData.TableData;if(drawData.BGColor)chart.BGColor=drawData.BGColor;if(drawData.BorderColor)chart.BorderColor=drawData.BorderColor;if(drawData.TextFont)chart.TextFontConfig=drawData.TextFont;if(drawData.TextColor)chart.TextColor=drawData.TextColor;if(IFrameSplitOperator.IsNumber(drawData.XOffset))chart.Offset.X=drawData.XOffset;if(IFrameSplitOperator.IsNumber(drawData.YOffset))chart.Offset.Y=drawData.YOffset;}frame.ChartPaint.push(chart);};this.CreateChartVericaltLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartVericaltLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;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;frame.ChartPaint.push(chart);};this.CreateChartHorizontalLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartHorizontalLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;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;frame.ChartPaint.push(chart);};//创建K线
|
|
11881
|
+
if(IFrameSplitOperator.IsBool(varItem.Draw.DrawData.EnableTooltip))chart.EnableTooltip=varItem.Draw.DrawData.EnableTooltip;if(IFrameSplitOperator.IsBool(varItem.Draw.DrawData.IsDrawFirst))chart.IsDrawFirst=varItem.Draw.DrawData.IsDrawFirst;chart.Family=varItem.Draw.DrawData.Family;chart.TextFont=varItem.Draw.DrawData.TextFont;chart.Texts=varItem.Draw.DrawData.Data;if(varItem.Draw.AutoPosition)chart.AutoPosition=varItem.Draw.AutoPosition;this.ReloadChartResource(hqChart,windowIndex,chart);chart.BuildCacheData();this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateMulitHtmlDom=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiHtmlDom();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11882
|
+
chart.Texts=varItem.Draw.DrawData;chart.DrawCallback=varItem.Draw.Callback;frame.ChartPaint.push(chart);};this.CreateSimpleTable=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartSimpleTable();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;if(varItem.Draw&&varItem.Draw.DrawData){var drawData=varItem.Draw.DrawData;if(drawData.TableData)chart.Data.Data=drawData.TableData;if(drawData.BGColor)chart.BGColor=drawData.BGColor;if(drawData.BorderColor)chart.BorderColor=drawData.BorderColor;if(drawData.TextFont)chart.TextFontConfig=drawData.TextFont;if(drawData.TextColor)chart.TextColor=drawData.TextColor;if(IFrameSplitOperator.IsNumber(drawData.XOffset))chart.Offset.X=drawData.XOffset;if(IFrameSplitOperator.IsNumber(drawData.YOffset))chart.Offset.Y=drawData.YOffset;}frame.ChartPaint.push(chart);};this.CreateSimplePie=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartSimplePie();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;if(varItem.Draw&&varItem.Draw.DrawData){var drawData=varItem.Draw.DrawData;if(drawData.Data)chart.Data.Data=drawData.Data;if(drawData.BorderColor)chart.BorderColor=drawData.BorderColor;if(drawData.TextFont)chart.TextFontConfig=drawData.TextFont;if(drawData.TextColor)chart.TextColor=drawData.TextColor;if(IFrameSplitOperator.IsNumber(drawData.XOffset))chart.Offset.X=drawData.XOffset;if(IFrameSplitOperator.IsNumber(drawData.YOffset))chart.Offset.Y=drawData.YOffset;if(IFrameSplitOperator.IsPlusNumber(drawData.Radius))chart.Radius=drawData.Radius;}frame.ChartPaint.push(chart);};this.CreateChartVericaltLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartVericaltLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;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;frame.ChartPaint.push(chart);};this.CreateChartHorizontalLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartHorizontalLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;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;frame.ChartPaint.push(chart);};//创建K线
|
|
11713
11883
|
this.CreateSelfKLine=function(hqChart,windowIndex,hisData){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartKLine();chart.Canvas=hqChart.Canvas;chart.Name="Self Kline";chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hisData;chart.IsShowMaxMinPrice=false;chart.IsShowKTooltip=false;chart.DrawType=this.KLineType;frame.ChartPaint.push(chart);};//给一个默认的颜色
|
|
11714
11884
|
this.GetDefaultColor=function(id){var COLOR_ARRAY=["rgb(24,71,178)","rgb(42,230,215)","rgb(252,96,154)","rgb(0,128,255)","rgb(229,0,79)","rgb(68,114,196)","rgb(255,174,0)","rgb(25,199,255)","rgb(175,95,162)","rgb(236,105,65)"];var number=parseInt(id);return COLOR_ARRAY[number%(COLOR_ARRAY.length-1)];};}//后台执行指标
|
|
11715
11885
|
function APIScriptIndex(name,script,args,option,isOverlay){if(isOverlay)this.newMethod=OverlayScriptIndex;else this.newMethod=ScriptIndex;this.newMethod(name,script,args,option);delete this.newMethod;this.ClassName="APIScriptIndex";this.IsOverlayIndex=isOverlay==true;//是否是叠加指标
|
|
@@ -11769,11 +11939,12 @@ if(item.isexdata==true)outVarItem.IsExData=true;if(item.BreakPoint)outVarItem.Br
|
|
|
11769
11939
|
{drawItem.Icon=draw.Icon;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='DRAWTEXT')//文本
|
|
11770
11940
|
{drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='STICKLINE')//柱子
|
|
11771
11941
|
{drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.Width=draw.Width;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=="DRAWBAND"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);drawItem.Color=draw.Color;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_LINE'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMultiLine(draw.DrawData,date,time,hqChart);if(IFrameSplitOperator.IsNonEmptyArray(drawItem.DrawData)){for(var k=0;k<drawItem.DrawData.length;++k){this.GetKLineData(drawItem.DrawData[k].Point,hqChart);}}outVarItem.Draw=drawItem;if(draw.LineDash)drawItem.LineDash=draw.LineDash;if(IFrameSplitOperator.IsBool(draw.IsFullRangeMaxMin))drawItem.IsFullRangeMaxMin=draw.IsFullRangeMaxMin;if(draw.Arrow)drawItem.Arrow=draw.Arrow;if(IFrameSplitOperator.IsNumber(draw.LineWidth))drawItem.LineWidth=draw.LineWidth;result.push(outVarItem);}else if(draw.DrawType=='MULTI_POINT'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMultiLine(draw.DrawData,date,time,hqChart);if(IFrameSplitOperator.IsNonEmptyArray(drawItem.DrawData)){for(var k=0;k<drawItem.DrawData.length;++k){this.GetKLineData(drawItem.DrawData[k].Point,hqChart);}}outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_BAR'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMultiLine(draw.DrawData,date,time,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.OVERLAY_BARS){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.BarName=draw.BarName;drawItem.BarColor=draw.BarColor;drawItem.LineWidth=draw.LineWidth;drawItem.BarType=draw.BarType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.SCATTER_PLOT){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);//默认的值
|
|
11772
|
-
drawItem.Color=draw.Color;drawItem.Radius=draw.Radius;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.KLINE_TABLE){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);drawItem.RowCount=draw.RowCount;drawItem.RowName=draw.RowName;drawItem.IsShowRowName=draw.IsShowRowName;drawItem.BGColor=draw.BGColor;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_TEXT'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMultiText(draw.DrawData,date,time,hqChart);this.GetKLineData(drawItem.DrawData,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_SVGICON'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData={Icon:draw.DrawData.Icon,Family:draw.DrawData.Family};outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='DRAWSVG'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;if(draw.AutoPosition)drawItem.AutoPosition=draw.AutoPosition;drawItem.DrawData={Data:
|
|
11942
|
+
drawItem.Color=draw.Color;drawItem.Radius=draw.Radius;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.KLINE_TABLE){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);drawItem.RowCount=draw.RowCount;drawItem.RowName=draw.RowName;drawItem.IsShowRowName=draw.IsShowRowName;drawItem.BGColor=draw.BGColor;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_TEXT'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMultiText(draw.DrawData,date,time,hqChart);this.GetKLineData(drawItem.DrawData,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_SVGICON'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData={Icon:draw.DrawData.Icon,Family:draw.DrawData.Family};outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='DRAWSVG'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;if(draw.AutoPosition)drawItem.AutoPosition=draw.AutoPosition;drawItem.DrawData={Data:draw.Data,Family:draw.Family,TextFont:draw.TextFont,EnableTooltip:draw.EnableTooltip,IsDrawFirst:draw.IsDrawFirst};outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=="MULTI_HTMLDOM")//外部自己创建dom
|
|
11773
11943
|
{drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.Callback=draw.Callback;drawItem.DrawData=this.FittingMultiText(draw.DrawData,date,time,hqChart);this.GetKLineData(drawItem.DrawData,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=="COLOR_KLINE"){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;var klineOption=this.FittingMultiText(draw.DrawData.KLine,date,time,hqChart);var mapKLineOption=new _map2.default();for(var i in klineOption){var item=klineOption[i];mapKLineOption.set(item.Index,item);}drawItem.DrawData={KLine:mapKLineOption};if(draw.Color)outVarItem.Color=draw.Color;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=="KLINE_BG"){drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData={};drawItem.DrawData.Color=draw.Color;drawItem.DrawData.Angle=draw.Angle;if(draw.Ver==2.0)drawItem.DrawData.Data=this.FittingKLineBG_V2(draw.DrawData,hqChart);else drawItem.DrawData.Data=this.FittingKLineBG(draw.DrawData,hqChart);outVarItem.Draw=drawItem;outVarItem.Name=draw.DrawType;result.push(outVarItem);}else if(draw.DrawType=='MULTI_POINT_LINE'){drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData={};drawItem.DrawData.Color=draw.Color;drawItem.DrawData.PointRadius=draw.PointRadius;drawItem.DrawData.PointColor=draw.PointColor;drawItem.DrawData.LineWidth=draw.LineWidth;drawItem.DrawData.Data=this.FittingMultiPointLine(draw.DrawData,hqChart);outVarItem.Draw=drawItem;//outVarItem.Name=draw.DrawType;
|
|
11774
11944
|
result.push(outVarItem);}else if(draw.DrawType=="PARTLINE"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;if(draw.LineWidth)outVarItem.LineWidth=draw.LineWidth;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.CLIP_COLOR_STICK){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.Data,date,time,hqChart);outVarItem.Draw=drawItem;if(draw.LineWidth)outVarItem.LineWidth=draw.LineWidth;if(draw.UpColor)outVarItem.UpColor=draw.UpColor;if(draw.DownColor)outVarItem.DownColor=draw.DownColor;result.push(outVarItem);}else if(draw.DrawType=="DRAWCOLORKLINE"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;if(draw.Color)drawItem.Color=draw.Color;if(IFrameSplitOperator.IsBool(draw.IsEmptyBar))drawItem.IsEmptyBar=draw.IsEmptyBar;result.push(outVarItem);}else if(draw.DrawType=="DRAWTEXTREL"||draw.DrawType=="DRAWTEXTABS"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;//{ Point: { X: 5,Y: 5 }, Text: "注意(居中):前方高能!!!!!" }
|
|
11775
11945
|
outVarItem.Draw=drawItem;if(draw.Font)outVarItem.Font=draw.Font;result.push(outVarItem);}else if(draw.DrawType=="DRAWTEXT_LINE"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;//{ Price:, Text:{ Title:text, Color:textcolor }, Line:{ Type:linetype, Color:linecolor } };
|
|
11776
11946
|
outVarItem.Draw=drawItem;if(draw.Font)outVarItem.Font=draw.Font;result.push(outVarItem);}else if(draw.DrawType=="DRAW_SIMPLE_TABLE"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;//{ TableData:[ [ {AryCell:[{Text:, Color: }]}, ], ], BGColor:, TextFont:{ Size:, Name: } };
|
|
11947
|
+
outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=="DRAW_SIMPLE_PIE"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;//{ Data:[ {Value, Color, Text: }, ], BorderColor:, TextFont:{ Size:, Name: } };
|
|
11777
11948
|
outVarItem.Draw=drawItem;result.push(outVarItem);}else{var find=g_ScriptIndexChartFactory.Get(draw.DrawType);//外部挂接
|
|
11778
11949
|
if(find&&find.KLineFittingCallback){if(find.KLineFittingCallback(item,outVarItem,{Date:date,Time:time,HQChart:hqChart},this))result.push(outVarItem);}}}}return result;};// h, high, low l. c, close
|
|
11779
11950
|
this.GetKLineData=function(data,hqChart){if(!data)return;if(!Array.isArray(data))return;if(this.HQDataType==HQ_DATA_TYPE.MINUTE_ID||this.HQDataType==HQ_DATA_TYPE.MULTIDAY_MINUTE_ID)var kData=hqChart.SourceData;//走势图分钟数据
|
|
@@ -11789,7 +11960,7 @@ var result=[];if(ChartData.IsDayPeriod(hqChart.Period,true))//日线
|
|
|
11789
11960
|
if(item.data){outVarItem.Data=this.FittingMinuteArray(item.data,date,time,hqChart);if(item.color)outVarItem.Color=item.color;if(item.linewidth>=1)outVarItem.LineWidth=item.linewidth;if(item.isshow==false)outVarItem.IsShow=false;if(item.isexdata==true)outVarItem.IsExData=true;if(item.BreakPoint)outVarItem.BreakPoint=item.BreakPoint;if(item.UpColor)outVarItem.UpColor=item.UpColor;if(item.DownColor)outVarItem.DownColor=item.DownColor;if(IFrameSplitOperator.IsBool(item.isDotLine))outVarItem.IsDotLine=item.isDotLine;if(IFrameSplitOperator.IsNonEmptyArray(item.lineDash))outVarItem.LineDash=item.lineDash;if(IFrameSplitOperator.IsBool(item.isSingleLine))outVarItem.IsSingleLine=item.isSingleLine;if(IFrameSplitOperator.IsNonEmptyArray(item.AryBreakPoint))outVarItem.AryBreakPoint=item.AryBreakPoint;result.push(outVarItem);}else if(item.Draw){var draw=item.Draw;var drawItem={};if(draw.DrawType=='DRAWICON')//图标
|
|
11790
11961
|
{drawItem.Icon=draw.Icon;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMinuteArray(draw.DrawData,date,time,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='DRAWTEXT')//文本
|
|
11791
11962
|
{drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMinuteArray(draw.DrawData,date,time,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='STICKLINE')//柱子
|
|
11792
|
-
{drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.Width=draw.Width;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMinuteArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.OVERLAY_BARS){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.BarName=draw.BarName;drawItem.BarColor=draw.BarColor;drawItem.LineWidth=draw.LineWidth;drawItem.DrawData=this.FittingMinuteArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.CLIP_COLOR_STICK){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMinuteArray(draw.Data,date,time,hqChart);outVarItem.Draw=drawItem;if(draw.Option)outVarItem.Option=draw.Option;result.push(outVarItem);}else if(draw.DrawType=='MULTI_LINE'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMultiLine(draw.DrawData,date,time,hqChart);for(var k in drawItem.DrawData){this.GetKLineData(drawItem.DrawData[k].Point,hqChart);}outVarItem.Draw=drawItem;if(draw.LineDash)drawItem.LineDash=draw.LineDash;if(draw.Arrow)drawItem.Arrow=draw.Arrow;result.push(outVarItem);}else if(draw.DrawType=='MULTI_POINT'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMultiLine(draw.DrawData,date,time,hqChart);if(IFrameSplitOperator.IsNonEmptyArray(drawItem.DrawData)){for(var k=0;k<drawItem.DrawData.length;++k){this.GetKLineData(drawItem.DrawData[k].Point,hqChart);}}outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_TEXT'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMultiText(draw.DrawData,date,time,hqChart);this.GetKLineData(drawItem.DrawData,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_SVGICON'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData={Icon:draw.DrawData.Icon,Family:draw.DrawData.Family};outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='DRAWSVG'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;if(draw.AutoPosition)drawItem.AutoPosition=draw.AutoPosition;drawItem.DrawData={Data:
|
|
11963
|
+
{drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.Width=draw.Width;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMinuteArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.OVERLAY_BARS){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.BarName=draw.BarName;drawItem.BarColor=draw.BarColor;drawItem.LineWidth=draw.LineWidth;drawItem.DrawData=this.FittingMinuteArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.CLIP_COLOR_STICK){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMinuteArray(draw.Data,date,time,hqChart);outVarItem.Draw=drawItem;if(draw.Option)outVarItem.Option=draw.Option;result.push(outVarItem);}else if(draw.DrawType=='MULTI_LINE'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMultiLine(draw.DrawData,date,time,hqChart);for(var k in drawItem.DrawData){this.GetKLineData(drawItem.DrawData[k].Point,hqChart);}outVarItem.Draw=drawItem;if(draw.LineDash)drawItem.LineDash=draw.LineDash;if(draw.Arrow)drawItem.Arrow=draw.Arrow;result.push(outVarItem);}else if(draw.DrawType=='MULTI_POINT'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMultiLine(draw.DrawData,date,time,hqChart);if(IFrameSplitOperator.IsNonEmptyArray(drawItem.DrawData)){for(var k=0;k<drawItem.DrawData.length;++k){this.GetKLineData(drawItem.DrawData[k].Point,hqChart);}}outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_TEXT'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMultiText(draw.DrawData,date,time,hqChart);this.GetKLineData(drawItem.DrawData,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_SVGICON'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData={Icon:draw.DrawData.Icon,Family:draw.DrawData.Family};outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='DRAWSVG'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;if(draw.AutoPosition)drawItem.AutoPosition=draw.AutoPosition;drawItem.DrawData={Data:draw.Data,Family:draw.Family,TextFont:draw.TextFont,EnableTooltip:draw.EnableTooltip,IsDrawFirst:draw.IsDrawFirst};outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=="MULTI_HTMLDOM")//外部自己创建dom
|
|
11793
11964
|
{drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.Callback=draw.Callback;drawItem.DrawData=this.FittingMultiText(draw.DrawData,date,time,hqChart);this.GetKLineData(drawItem.DrawData,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=="DRAWCOLORKLINE"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;if(draw.Color)drawItem.Color=draw.Color;if(IFrameSplitOperator.IsBool(draw.IsEmptyBar))drawItem.IsEmptyBar=draw.IsEmptyBar;result.push(outVarItem);}else{var find=g_ScriptIndexChartFactory.Get(draw.DrawType);//外部挂接
|
|
11794
11965
|
if(find&&find.MinuteFittingCallback){if(find.MinuteFittingCallback(item,outVarItem,{Date:date,Time:time,HQChart:hqChart},this))result.push(outVarItem);}}}}return result;};//matchType 0=精确匹配(默认) 5=模糊匹配
|
|
11795
11966
|
this.FittingMinuteArray=function(sourceData,date,time,hqChart,matchType){var minutedata=hqChart.SourceData;;//分钟线
|
|
@@ -12037,7 +12208,7 @@ LineWidth:4},DepthCorss:{BidColor:{Line:"rgb(82,176,123)"},//卖
|
|
|
12037
12208
|
AskColor:{Line:"rgb(207,76,89)"},//买
|
|
12038
12209
|
LineWidth:2,//线段宽度
|
|
12039
12210
|
LineDash:[3,3],Tooltip:{BGColor:'rgba(54,54,54, 0.8)',TextColor:"rgb(203,215,224)",Border:{Top:5,Left:20,Bottom:5,Center:5},Font:14*GetDevicePixelRatio()+"px 微软雅黑",LineHeight:16//单行高度
|
|
12040
|
-
}},ChartSimpleTable:{TextColor:"rgb(250,250,250)",BGColor:"rgba(0,0,0,0.85)",BorderColor:"rgb(90,90,90)"},ChartDrawVolProfile:{BGColor:"rgba(244,250,254,0.3)",BorderColor:"rgba(255,255,255)",VolLineColor:"rgb(232,5,9)",UpVolColor:"rgba(103,179,238, 0.24)",DownVolColor:"rgba(237,208,105,0.24)",AreaUpColor:"rgb(103,179,238,0.7)",AreaDonwColor:"rgba(237,208,105,0.7)",Text:{Color:"rgb(0,0,0)",Family:'Arial',FontMaxSize:18,FontMinSize:6}//文字
|
|
12211
|
+
}},ChartSimpleTable:{TextColor:"rgb(250,250,250)",BGColor:"rgba(0,0,0,0.85)",BorderColor:"rgb(90,90,90)"},ChartSimplePie:{BorderColor:"rgb(220,220,220)"},ChartDrawVolProfile:{BGColor:"rgba(244,250,254,0.3)",BorderColor:"rgba(255,255,255)",VolLineColor:"rgb(232,5,9)",UpVolColor:"rgba(103,179,238, 0.24)",DownVolColor:"rgba(237,208,105,0.24)",AreaUpColor:"rgb(103,179,238,0.7)",AreaDonwColor:"rgba(237,208,105,0.7)",Text:{Color:"rgb(0,0,0)",Family:'Arial',FontMaxSize:18,FontMinSize:6}//文字
|
|
12041
12212
|
},//区间选择
|
|
12042
12213
|
RectSelect:{LineColor:"rgb(115,83,64)",//竖线
|
|
12043
12214
|
LineWidth:1*GetDevicePixelRatio(),LineDotted:[3,3],AreaColor:"rgba(26,13,7,0.5)"//面积
|
|
@@ -14090,7 +14261,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
|
|
|
14090
14261
|
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);};}/********************************************************************************
|
|
14091
14262
|
* 版本信息输出
|
|
14092
14263
|
*
|
|
14093
|
-
*/var HQCHART_VERSION="1.1.
|
|
14264
|
+
*/var HQCHART_VERSION="1.1.14306";function PrintHQChartVersion(){var logo='\n\n*************************************************************************************************************************************************************************** \n* \n* :%@@- \n* :@@@@- \n* =@@@@ :#@@@ .:+#@@@#=: :=*@@@@@@#+-. *@@@@. \n* :@@@@@ .@@@@@ .#@@@@@@@@@@@- +@@@@@@@@@@@@@+ @@@@@ -%@@* \n* +@@@@% #@@@@# *@@@@@@@@@@@@@@%. =@@@@@@@@@@@@@@@- @@@@@ -@@@@+ \n* %@@@@* @@@@@+ .%@@@@@@@@@@@@@@@@%: #@@@@@@@@@@@@@@@% @@@@# *@@@@= \n* @@@@@= @@@@@- .%@@@@@@@*++*%@@@@@@% .%@@@@@@@%*+==+**= -@@@@+ #@@@@- \n* @@@@@. @@@@@. #@@@@@%= =@@@@@@* %@@@@@@#: *@@@@- :::. .-+*###+: ::: .+##+: -%%@@@@@%%%% \n* .@@@@@ .@@@@@. +@@@@@% .@@@@@@ *@@@@@@: %@@@@: +@@@@@%. :%@@@@@@@@@@: *@@@ :@@@@@* @@@@@@@@@@@@ \n* :@@@@@ :@@@@@ @@@@@% :@@@@@+ @@@@@@: %@@@@-@@@@@@@@@. @@@@@@@@@@@@@. :@@@%-@@@@@@.:@@@@@@@@@@@# \n* -@@@@% -@@@@@ =@@@@@. %@@@@% %@@@@@- %@@@@@@@@@@@@@@* %@@@@@@@@@@@@+ -@@@@@@@@@@# -@@@@@@@@@@@. \n* +@@@@%=========#@@@@% @@@@@# :@@@@@ .@@@@@% @@@@@@@@%@@@@@@@ -%+:. .#@@@@* +@@@@@@@%%@. .::+@@@@#:: \n* #@@@@@@@@@@@@@@@@@@@# .@@@@@ .@@@@@ :@@@@@. @@@@@@#. #@@@@@. -@@@@* #@@@@@@: *@@@@+ \n* %@@@@@@@@@@@@@@@@@@@+ :@@@@@ .@@@@@ -@@@@@ @@@@@+ @@@@@. :@@@@* @@@@@% #@@@@- \n* @@@@@@@@@@@@@@@@@@@@: :@@@@% :@@@@@ +@@@@% -@@@@+ @@@@@ -@@@@+ @@@@@. @@@@@. \n* .@@@@@@@@@@@@@@@@@@@@ :@@@@% -@@@@% *@@@@% #@@@@. @@@@@ .=*#%%%@@@@@= :@@@@# @@@@@. \n* -@@@@@:::::::::=@@@@@ :@@@@@ @@@@@* +@@@@% @@@@@ @@@@% -#@@@@@@@@@@@@: -@@@@* @@@@@ \n* =@@@@% =@@@@% .@@@@@ :@@@@@. -@@@@% @@@@@ .@@@@* +@@@@@@@@@@@@@@. =@@@@+ .@@@@@ \n* +@@@@# +@@@@# @@@@@# %@@@@% :@@@@@ .@@@@% =@@@@= -@@@@@*-:..%@@@@ +@@@@= :@@@@# \n* *@@@@* *@@@@* +@@@@@: #@@@@@+ .@@@@@@ :@@@@% *@@@@- @@@@@. @@@@% #@@@@: =@@@@+ \n* %@@@@= %@@@@+ @@@@@@- .%@@@@@# #@@@@@# :@@@@% #@@@@: @@@@% @@@@* %@@@@. #@@@@- \n* @@@@@- @@@@@= =@@@@@@#=...-*@@@@@@@: @@@@@@%=. :+**. :@@@@* %@@@@. .@@@@* *@@@@= @@@@@ %@@@@+ \n* .@@@@@: .@@@@@: *@@@@@@@@@@@@@@@@@@@# =@@@@@@@@%%%@@@@@@ +@@@@- @@@@@ .@@@@@: :%@@@@@- .@@@@% %@@@@@*+- \n* :@@@@@ :@@@@@ +@@@@@@@@@@@@@@@@@@@# =@@@@@@@@@@@@@@@@% %@@@@ @@@@@ @@@@@@@@@@@@@@@: -@@@@* *@@@@@@@@- \n* =@@@@@ -@@@@@ :@@@@@@@@@@@@@@@@@@@# :@@@@@@@@@@@@@@@% @@@@@ %@@@% #@@@@@@@@@#@@@@. +@@@@- .@@@@@@@@# \n* *@@@@# =@@@@% :#@@@@@@@#: :@@@@@= =@@@@@@@@@@@+. @@@@@ :@@@+ *@@@@@@@- %@@@ *@@@= =@@@@@@@* \n* =++++- -++++= .:::. .=*+: :-=+++=:. ****= .=+. .-++=: :+++ -+=: .-=+=:. \n* \n* \n* HQChart \n* Ver: '+HQCHART_VERSION+' \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n************************************************************************************************************************************************************************** \n ';console.log(logo);}PrintHQChartVersion();//把给外界调用的方法暴露出来
|
|
14094
14265
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
14095
14266
|
// BaseIndex:BaseIndex,
|
|
14096
14267
|
// ChartLine:ChartLine,
|