hqchart 1.1.13709 → 1.1.13711
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 +15 -7
- package/package.json +1 -1
- package/src/jscommon/umychart.complier.js +57 -0
- package/src/jscommon/umychart.js +297 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +355 -1
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +355 -1
package/lib/umychart.vue.js
CHANGED
|
@@ -4075,7 +4075,14 @@ function ChartMACD(){this.newMethod=IChartPainting;//派生
|
|
|
4075
4075
|
this.newMethod();delete this.newMethod;this.ClassName="ChartMACD";this.UpColor=g_JSChartResource.UpBarColor;this.DownColor=g_JSChartResource.DownBarColor;this.LineWidth=1;this.DrawSelectedStatus=this.DrawLinePoint;this.ExportData=this.ExportArrayData;this.PtInChart=function(x,y){var dataWidth=this.ChartFrame.DataWidth;var barWidth=this.LineWidth*GetDevicePixelRatio();if(this.barWidth==50)barWidth=null;else if(barWidth>dataWidth)barWidth=dataWidth;if(barWidth<4)barWidth=4;//宽度太小了点不到
|
|
4076
4076
|
return this.PtInBar(x,y,{BarWidth:barWidth});};this.DrawBars=function(lineWidth,bUpBar){var isMinute=this.IsMinuteFrame();var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;var isHSCreen=this.ChartFrame.IsHScreen===true;if(isHSCreen){var border=this.ChartBorder.GetHScreenBorder();var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.BottomEx;var lockRect=this.GetLockRect();if(lockRect)chartright=lockRect.Top;}else{var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;var lockRect=this.GetLockRect();if(lockRect)chartright=lockRect.Left;}if(bUpBar)this.Canvas.strokeStyle=this.UpColor;else this.Canvas.strokeStyle=this.DownColor;var yBottom=this.ChartFrame.GetYFromData(0);this.Canvas.beginPath();var drawCount=0;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var value=this.Data.Data[i];if(value==null)continue;if(bUpBar){if(value<0)continue;}else{if(value>=0)continue;}if(isMinute){var x=this.ChartFrame.GetXFromIndex(j);}else{var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;}if(x>chartright)break;var y=this.ChartFrame.GetYFromData(value);var xFix=ToFixedPoint2(lineWidth,x);//毛边修正
|
|
4077
4077
|
if(isHSCreen){this.Canvas.moveTo(yBottom,ToFixedPoint(x));this.Canvas.lineTo(y,ToFixedPoint(x));}else{this.Canvas.moveTo(xFix,yBottom);this.Canvas.lineTo(xFix,y);}++drawCount;}if(drawCount>0)this.Canvas.stroke();};this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(this.NotSupportMessage){this.DrawNotSupportmessage();return;}var dataWidth=this.ChartFrame.DataWidth;var lineWidth=this.LineWidth*GetDevicePixelRatio();if(this.LineWidth==50)lineWidth=dataWidth;else if(lineWidth>dataWidth)lineWidth=dataWidth;var backupLineWidth=this.Canvas.lineWidth;this.Canvas.lineWidth=lineWidth;//上下分开画
|
|
4078
|
-
this.DrawBars(lineWidth,true);this.DrawBars(lineWidth,false);this.Canvas.lineWidth=backupLineWidth;};this.GetItemData=function(indexData){if(!indexData)return null;if(!IFrameSplitOperator.IsNumber(indexData.Index))return null;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return null;var index=indexData.Index;if(index<0||index>=this.Data.Data.length)return null;var item=this.Data.Data[index];return[{Value:item,Color:item>0?this.UpColor:this.DownColor,Name:this.Name}];};}
|
|
4078
|
+
this.DrawBars(lineWidth,true);this.DrawBars(lineWidth,false);this.Canvas.lineWidth=backupLineWidth;};this.GetItemData=function(indexData){if(!indexData)return null;if(!IFrameSplitOperator.IsNumber(indexData.Index))return null;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return null;var index=indexData.Index;if(index<0||index>=this.Data.Data.length)return null;var item=this.Data.Data[index];return[{Value:item,Color:item>0?this.UpColor:this.DownColor,Name:this.Name}];};}function ChartClipColorStick(){this.newMethod=IChartPainting;//派生
|
|
4079
|
+
this.newMethod();delete this.newMethod;this.ClassName="ChartClipColorStick";this.UpColor=g_JSChartResource.UpBarColor;this.DownColor=g_JSChartResource.DownBarColor;this.LineWidth=1;//差值线
|
|
4080
|
+
this.DownDiffColor=g_JSChartResource.DownBarColor;this.UpDiffColor=g_JSChartResource.UpBarColor;this.BaseLineColor;//基准线
|
|
4081
|
+
this.BaseValue=0;this.Super_GetMaxMin=this.GetMaxMin;//父类的方法
|
|
4082
|
+
this.SetOption=function(option){if(!option)return;if(option.UpColor)this.UpColor=option.UpColor;if(option.DownColor)this.DownColor=option.DownColor;if(option.DownDiffColor)this.DownDiffColor=option.DownDiffColor;if(option.UpDiffColor)this.UpDiffColor=option.UpDiffColor;if(option.BaseLineColor)this.BaseLineColor=option.BaseLineColor;if(IFrameSplitOperator.IsNumber(option.BaseValue))this.BaseValue=option.BaseValue;};this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(this.NotSupportMessage){this.DrawNotSupportmessage();return;}this.Canvas.save();var dataWidth=this.ChartFrame.DataWidth;var lineWidth=this.LineWidth*GetDevicePixelRatio();if(this.LineWidth==50)lineWidth=dataWidth;else if(lineWidth>dataWidth)lineWidth=dataWidth;if(IFrameSplitOperator.IsNumber(this.BaseValue)&&this.BaseValue!=0){this.DrawBaseLine();if(this.BaseValue>0)this.DrawBars(lineWidth,true);else this.DrawBars(lineWidth,false);}else{//上下分开画
|
|
4083
|
+
this.DrawBars(lineWidth,true);this.DrawBars(lineWidth,false);}this.Canvas.restore();};this.DrawBars=function(lineWidth,bUpBar){var isMinute=this.IsMinuteFrame();var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;var isHSCreen=this.ChartFrame.IsHScreen===true;if(isHSCreen){var border=this.ChartBorder.GetHScreenBorder();var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.BottomEx;var lockRect=this.GetLockRect();if(lockRect)chartright=lockRect.Top;}else{var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;var lockRect=this.GetLockRect();if(lockRect)chartright=lockRect.Left;}var yBottom=this.ChartFrame.GetYFromData(this.BaseValue);var aryBar=[],aryDiffBar=[];for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var value=this.Data.Data[i];if(value==null)continue;if(bUpBar){if(value<0)continue;}else{if(value>=0)continue;}if(isMinute){var x=this.ChartFrame.GetXFromIndex(j);}else{var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;}if(x>chartright)break;var bDiffBar=false;var diffValue=null;if(this.BaseValue>0){if(value<this.BaseValue){bDiffBar=true;diffValue=this.BaseValue-(this.BaseValue-value);}}else if(this.BaseValue<0){if(value>this.BaseValue){bDiffBar=true;diffValue=this.BaseValue+(value-this.BaseValue);}}if(!bDiffBar){var y=this.ChartFrame.GetYFromData(value);aryBar.push({X:x,Y:y});}else{var y=this.ChartFrame.GetYFromData(diffValue);aryDiffBar.push({X:x,Y:y});}}this.Canvas.lineWidth=lineWidth;if(bUpBar)this.Canvas.strokeStyle=this.UpColor;else this.Canvas.strokeStyle=this.DownColor;this.DrawStick(aryBar,lineWidth,yBottom);if(this.BaseValue>0){this.Canvas.strokeStyle=this.UpDiffColor;this.DrawStick(aryDiffBar,lineWidth,yBottom);}else if(this.BaseValue<0){this.Canvas.strokeStyle=this.DownDiffColor;this.DrawStick(aryDiffBar,lineWidth,yBottom);}};this.DrawStick=function(aryData,lineWidth,yBottom){if(!IFrameSplitOperator.IsNonEmptyArray(aryData))return;var isHSCreen=this.ChartFrame.IsHScreen===true;var drawCount=0;this.Canvas.beginPath();for(var i=0;i<aryData.length;++i){var item=aryData[i];var y=item.Y;var xFix=ToFixedPoint2(lineWidth,item.X);//毛边修正
|
|
4084
|
+
if(isHSCreen){this.Canvas.moveTo(yBottom,ToFixedPoint(x));this.Canvas.lineTo(y,ToFixedPoint(x));}else{this.Canvas.moveTo(xFix,yBottom);this.Canvas.lineTo(xFix,y);}++drawCount;}if(drawCount>0)this.Canvas.stroke();};this.DrawBaseLine=function(){if(!IFrameSplitOperator.IsNumber(this.BaseValue)||this.BaseValue==0)return;if(!this.BaseLineColor)return;var isHSCreen=this.ChartFrame.IsHScreen===true;var border=this.ChartFrame.GetBorder();var y=this.ChartFrame.GetYFromData(this.BaseValue);this.Canvas.strokeStyle=this.BaseLineColor;this.Canvas.lineWidth=1*GetDevicePixelRatio();if(isHSCreen){}else{var yFix=ToFixedPoint(y);this.Canvas.beginPath();this.Canvas.moveTo(border.Left,yFix);this.Canvas.lineTo(border.Right,yFix);this.Canvas.stroke();}};this.GetMaxMin=function(){if(!IFrameSplitOperator.IsNumber(this.BaseValue)||this.BaseValue==0)return this.Super_GetMaxMin();var xPointCount=this.ChartFrame.XPointCount;var start=this.Data.DataOffset;if(this.ChartFrame.GlobalOption&&this.ChartFrame.GlobalOption.IsValueFullRange){start=0;xPointCount=this.Data.Data.length;}var range={Min:null,Max:null},maxDiffValue=null;//基准值的差值
|
|
4085
|
+
if(!this.Data||!this.Data.Data)return range;if(this.BaseValue>0)range.Min=this.BaseValue;else range.Max=this.BaseValue;for(var i=start,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var value=this.Data.Data[i];if(value==null||isNaN(value))continue;if(this.BaseValue>0){if(value<0)continue;if(value<this.BaseValue){var diffValue=this.BaseValue-value;if(maxDiffValue==null||maxDiffValue<diffValue)maxDiffValue=diffValue;continue;}}else{if(value>0)continue;if(value>this.BaseValue){var diffValue=value-this.BaseValue;if(maxDiffValue==null||maxDiffValue<diffValue)maxDiffValue=diffValue;continue;}}if(range.Max==null)range.Max=value;if(range.Min==null)range.Min=value;if(range.Max<value)range.Max=value;if(range.Min>value)range.Min=value;}if(this.BaseValue>0){if(IFrameSplitOperator.IsNumber(maxDiffValue)&&IFrameSplitOperator.IsNumber(range.Min))range.Min-=maxDiffValue;}else{if(IFrameSplitOperator.IsNumber(maxDiffValue)&&IFrameSplitOperator.IsNumber(range.Max))range.Max+=maxDiffValue;}return range;};}//柱子
|
|
4079
4086
|
function ChartBar(){this.newMethod=IChartPainting;//派生
|
|
4080
4087
|
this.newMethod();delete this.newMethod;this.ClassName="ChartBar";this.UpBarColor=g_JSChartResource.UpBarColor;this.DownBarColor=g_JSChartResource.DownBarColor;this.Draw=function(){if(this.ChartFrame.IsMinSize)return;if(this.NotSupportMessage){this.DrawNotSupportmessage();return;}var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var chartright=this.ChartBorder.GetRight();var xPointCount=this.ChartFrame.XPointCount;var xOffset=this.ChartBorder.GetLeft()+distanceWidth/2.0+2.0;var bFirstPoint=true;var drawCount=0;var yBottom=this.ChartFrame.GetYFromData(0);if(dataWidth>=4){yBottom=ToFixedRect(yBottom);//调整为整数
|
|
4081
4088
|
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var value=this.Data.Data[i];if(value==null||value==0)continue;var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=this.ChartFrame.GetXFromIndex(j);var y=this.ChartFrame.GetYFromData(value);if(value>0)this.Canvas.fillStyle=this.UpBarColor;else this.Canvas.fillStyle=this.DownBarColor;//高度调整为整数
|
|
@@ -11689,7 +11696,8 @@ HISTORY_MINUTE_ID:3,//历史分钟走势图
|
|
|
11689
11696
|
MULTIDAY_MINUTE_ID:4//多日走势图
|
|
11690
11697
|
};// 图形指标名字
|
|
11691
11698
|
var SCRIPT_CHART_NAME={OVERLAY_BARS:"OVERLAY_BARS",//叠加柱子图
|
|
11692
|
-
KLINE_TABLE:"KLINE_TABLE",SCATTER_PLOT:"SCATTER_PLOT"
|
|
11699
|
+
KLINE_TABLE:"KLINE_TABLE",SCATTER_PLOT:"SCATTER_PLOT",//散点图
|
|
11700
|
+
CLIP_COLOR_STICK:"CLIP_COLOR_STICK"//上下柱子 裁剪
|
|
11693
11701
|
// 外部对接API指标数据及图形
|
|
11694
11702
|
};function ScriptIndexChartFactory(){this.DataMap=new _map2.default();//["图形名字", {} ]
|
|
11695
11703
|
this.Add=function(name,option){this.DataMap.set(name,{MinuteFittingCallback:option.MinuteFittingCallback,KLineFittingCallback:option.KLineFittingCallback,CreateChartCallback:option.CreateChartCallback,FormatTitleCallback:option.FormatTitleCallback});};this.Get=function(name){if(!this.DataMap.has(name))return null;return this.DataMap.get(name);};this.Has=function(name){return this.DataMap.has(name);};}var g_ScriptIndexChartFactory=new ScriptIndexChartFactory();//脚本指标
|
|
@@ -11807,7 +11815,7 @@ chart.Bars=varItem.Draw.DrawData;var titleIndex=windowIndex+1;var titleData=new
|
|
|
11807
11815
|
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线
|
|
11808
11816
|
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线
|
|
11809
11817
|
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线
|
|
11810
|
-
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.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线
|
|
11818
|
+
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线
|
|
11811
11819
|
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;//虚线
|
|
11812
11820
|
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线
|
|
11813
11821
|
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)//绑定指示指标
|
|
@@ -11832,7 +11840,7 @@ if(this.YSplitScale)hqChart.Frame.SubFrame[windowIndex].Frame.YSplitScale=this.Y
|
|
|
11832
11840
|
}
|
|
11833
11841
|
*/for(var _i135=0;_i135<this.OutVar.length;++_i135){var _item24=this.OutVar[_i135];if(_item24.IsExData===true)continue;//扩展数据不显示图形
|
|
11834
11842
|
if(_item24.Type==1000||_item24.Type==1001)continue;//数据集合, 字符串
|
|
11835
|
-
if(_item24.Type==0){if(_item24.IsOverlayLine)this.CreateOverlayLine(hqChart,windowIndex,_item24,_i135,_item24.Type);else if(_item24.IsSingleLine)this.CreateSingleLine(hqChart,windowIndex,_item24,_i135,_item24.Type);else this.CreateLine(hqChart,windowIndex,_item24,_i135,_item24.Type);}else if(_item24.Type==1){switch(_item24.Draw.DrawType){case'STICKLINE':this.CreateBar(hqChart,windowIndex,_item24,_i135);break;case'DRAWTEXT':this.CreateDrawTextV2(hqChart,windowIndex,_item24,_i135);break;case'SUPERDRAWTEXT':this.CreateText(hqChart,windowIndex,_item24,_i135);break;case'DRAWLINE':this.CreateStraightLine(hqChart,windowIndex,_item24,_i135);break;case'DRAWBAND':this.CreateBand(hqChart,windowIndex,_item24,_i135);break;case"FILLRGN":this.CreateFillRGN(hqChart,windowIndex,_item24,_i135);break;case"FILLRGN2":this.CreateFillRGN2(hqChart,windowIndex,_item24,_i135);break;case"FILLTOPRGN":case"FILLBOTTOMRGN":case"FILLVERTICALRGN":this.CreateFillBGRGN(hqChart,windowIndex,_item24,_i135);break;case"FLOATRGN":this.CreateFLOATRGN(hqChart,windowIndex,_item24,_i135);break;case'DRAWKLINE':case"DRAWKLINE1":this.CreateKLine(hqChart,windowIndex,_item24,_i135);break;case"DRAWOVERLAYKLINE":this.CreateOverlayKLine(hqChart,windowIndex,_item24,_i135);break;case"DRAWCOLORKLINE":this.CreateDrawColorKLine(hqChart,windowIndex,_item24,_i135);break;case'DRAWKLINE_IF':this.CreateKLine(hqChart,windowIndex,_item24,_i135);break;case'POLYLINE':this.CreatePolyLine(hqChart,windowIndex,_item24,_i135);break;case'DRAWGBK':case"DRAWGBK2":this.CreateBackgroud(hqChart,windowIndex,_item24,_i135);break;case"DRAWGBK_DIV":this.CreateBackgroundDiv(hqChart,windowIndex,_item24,_i135);break;case'DRAWTEXT_LINE':this.CreateTextLine(hqChart,windowIndex,_item24,_i135);break;case'DRAWNUMBER':this.CreateDrawNumber(hqChart,windowIndex,_item24,_i135);break;case"DRAWNUMBER_FIX":case'DRAWTEXT_FIX':this.CreateNumberText(hqChart,windowIndex,_item24,_i135);break;case'DRAWICON':this.CreateIcon(hqChart,windowIndex,_item24,_i135);break;case"ICON":this.CreateIcon(hqChart,windowIndex,_item24,_i135);break;case"TIPICON":this.CreateTipIcon(hqChart,windowIndex,_item24,_i135);break;case'DRAWCHANNEL':this.CreateChannel(hqChart,windowIndex,_item24,_i135);break;case'PARTLINE':this.CreatePartLine(hqChart,windowIndex,_item24,_i135);break;case'DRAWRECTREL':this.CreateRectangle(hqChart,windowIndex,_item24,_i135);break;case"DRAWTEXTABS":case"DRAWTEXTREL":this.CreateDrawText(hqChart,windowIndex,_item24,_i135);break;case"DRAWOVERLAYLINE":this.CreateScriptOverlayLine(hqChart,windowIndex,_item24,_i135);break;case"DRAWSL":this.CreateChartSlopeLine(hqChart,windowIndex,_item24,_i135);break;case"VERTLINE":this.CreateChartVericaltLine(hqChart,windowIndex,_item24,_i135);break;case"HORLINE":this.CreateChartHorizontalLine(hqChart,windowIndex,_item24,_i135);break;case'MULTI_LINE':this.CreateMultiLine(hqChart,windowIndex,_item24,_i135);break;case"MULTI_POINT":this.CreateMultiPoint(hqChart,windowIndex,_item24,_i135);break;case'MULTI_BAR':this.CreateMultiBar(hqChart,windowIndex,_item24,_i135);break;case'MULTI_TEXT':this.CreateMultiText(hqChart,windowIndex,_item24,_i135);break;case'MULTI_SVGICON':this.CreateMultiSVGIcon(hqChart,windowIndex,_item24,_i135);break;case"DRAWSVG":this.CreateChartDrawSVG(hqChart,windowIndex,_item24,_i135);break;case"MULTI_HTMLDOM":this.CreateMulitHtmlDom(hqChart,windowIndex,_item24,_i135);break;case"COLOR_KLINE":this.CreateColorKLine(hqChart,windowIndex,_item24,_i135);break;case"KLINE_BG":this.CreateBackgroud(hqChart,windowIndex,_item24,_i135);break;case"MULTI_POINT_LINE":this.CreateLineMultiData(hqChart,windowIndex,_item24,_i135);break;case"BUY":case"SELL":case"SELLSHORT":case"BUYSHORT":this.CreateTradeIcon(hqChart,windowIndex,_item24,_i135);break;case SCRIPT_CHART_NAME.OVERLAY_BARS:this.CreateStackedBar(hqChart,windowIndex,_item24,_i135);break;case SCRIPT_CHART_NAME.KLINE_TABLE:this.CreateKLineTable(hqChart,windowIndex,_item24,_i135);break;case SCRIPT_CHART_NAME.SCATTER_PLOT:this.CreateScatterPlot(hqChart,windowIndex,_item24,_i135);break;default:{var find=g_ScriptIndexChartFactory.Get(_item24.Draw.DrawType);//外部挂接
|
|
11843
|
+
if(_item24.Type==0){if(_item24.IsOverlayLine)this.CreateOverlayLine(hqChart,windowIndex,_item24,_i135,_item24.Type);else if(_item24.IsSingleLine)this.CreateSingleLine(hqChart,windowIndex,_item24,_i135,_item24.Type);else this.CreateLine(hqChart,windowIndex,_item24,_i135,_item24.Type);}else if(_item24.Type==1){switch(_item24.Draw.DrawType){case'STICKLINE':this.CreateBar(hqChart,windowIndex,_item24,_i135);break;case'DRAWTEXT':this.CreateDrawTextV2(hqChart,windowIndex,_item24,_i135);break;case'SUPERDRAWTEXT':this.CreateText(hqChart,windowIndex,_item24,_i135);break;case'DRAWLINE':this.CreateStraightLine(hqChart,windowIndex,_item24,_i135);break;case'DRAWBAND':this.CreateBand(hqChart,windowIndex,_item24,_i135);break;case"FILLRGN":this.CreateFillRGN(hqChart,windowIndex,_item24,_i135);break;case"FILLRGN2":this.CreateFillRGN2(hqChart,windowIndex,_item24,_i135);break;case"FILLTOPRGN":case"FILLBOTTOMRGN":case"FILLVERTICALRGN":this.CreateFillBGRGN(hqChart,windowIndex,_item24,_i135);break;case"FLOATRGN":this.CreateFLOATRGN(hqChart,windowIndex,_item24,_i135);break;case'DRAWKLINE':case"DRAWKLINE1":this.CreateKLine(hqChart,windowIndex,_item24,_i135);break;case"DRAWOVERLAYKLINE":this.CreateOverlayKLine(hqChart,windowIndex,_item24,_i135);break;case"DRAWCOLORKLINE":this.CreateDrawColorKLine(hqChart,windowIndex,_item24,_i135);break;case'DRAWKLINE_IF':this.CreateKLine(hqChart,windowIndex,_item24,_i135);break;case'POLYLINE':this.CreatePolyLine(hqChart,windowIndex,_item24,_i135);break;case'DRAWGBK':case"DRAWGBK2":this.CreateBackgroud(hqChart,windowIndex,_item24,_i135);break;case"DRAWGBK_DIV":this.CreateBackgroundDiv(hqChart,windowIndex,_item24,_i135);break;case'DRAWTEXT_LINE':this.CreateTextLine(hqChart,windowIndex,_item24,_i135);break;case'DRAWNUMBER':this.CreateDrawNumber(hqChart,windowIndex,_item24,_i135);break;case"DRAWNUMBER_FIX":case'DRAWTEXT_FIX':this.CreateNumberText(hqChart,windowIndex,_item24,_i135);break;case'DRAWICON':this.CreateIcon(hqChart,windowIndex,_item24,_i135);break;case"ICON":this.CreateIcon(hqChart,windowIndex,_item24,_i135);break;case"TIPICON":this.CreateTipIcon(hqChart,windowIndex,_item24,_i135);break;case'DRAWCHANNEL':this.CreateChannel(hqChart,windowIndex,_item24,_i135);break;case'PARTLINE':this.CreatePartLine(hqChart,windowIndex,_item24,_i135);break;case'DRAWRECTREL':this.CreateRectangle(hqChart,windowIndex,_item24,_i135);break;case"DRAWTEXTABS":case"DRAWTEXTREL":this.CreateDrawText(hqChart,windowIndex,_item24,_i135);break;case"DRAWOVERLAYLINE":this.CreateScriptOverlayLine(hqChart,windowIndex,_item24,_i135);break;case"DRAWSL":this.CreateChartSlopeLine(hqChart,windowIndex,_item24,_i135);break;case"VERTLINE":this.CreateChartVericaltLine(hqChart,windowIndex,_item24,_i135);break;case"HORLINE":this.CreateChartHorizontalLine(hqChart,windowIndex,_item24,_i135);break;case'MULTI_LINE':this.CreateMultiLine(hqChart,windowIndex,_item24,_i135);break;case"MULTI_POINT":this.CreateMultiPoint(hqChart,windowIndex,_item24,_i135);break;case'MULTI_BAR':this.CreateMultiBar(hqChart,windowIndex,_item24,_i135);break;case'MULTI_TEXT':this.CreateMultiText(hqChart,windowIndex,_item24,_i135);break;case'MULTI_SVGICON':this.CreateMultiSVGIcon(hqChart,windowIndex,_item24,_i135);break;case"DRAWSVG":this.CreateChartDrawSVG(hqChart,windowIndex,_item24,_i135);break;case"MULTI_HTMLDOM":this.CreateMulitHtmlDom(hqChart,windowIndex,_item24,_i135);break;case"COLOR_KLINE":this.CreateColorKLine(hqChart,windowIndex,_item24,_i135);break;case"KLINE_BG":this.CreateBackgroud(hqChart,windowIndex,_item24,_i135);break;case"MULTI_POINT_LINE":this.CreateLineMultiData(hqChart,windowIndex,_item24,_i135);break;case"BUY":case"SELL":case"SELLSHORT":case"BUYSHORT":this.CreateTradeIcon(hqChart,windowIndex,_item24,_i135);break;case SCRIPT_CHART_NAME.OVERLAY_BARS:this.CreateStackedBar(hqChart,windowIndex,_item24,_i135);break;case SCRIPT_CHART_NAME.KLINE_TABLE:this.CreateKLineTable(hqChart,windowIndex,_item24,_i135);break;case SCRIPT_CHART_NAME.SCATTER_PLOT:this.CreateScatterPlot(hqChart,windowIndex,_item24,_i135);break;case SCRIPT_CHART_NAME.CLIP_COLOR_STICK:this.CreateClipColorStick(hqChart,windowIndex,_item24,_i135);break;default:{var find=g_ScriptIndexChartFactory.Get(_item24.Draw.DrawType);//外部挂接
|
|
11836
11844
|
if(find&&find.CreateChartCallback)find.CreateChartCallback(hqChart,windowIndex,_item24,_i135,this);}break;}}else if(_item24.Type==2){this.CreateMACD(hqChart,windowIndex,_item24,_i135);}else if(_item24.Type==3){this.CreatePointDot(hqChart,windowIndex,_item24,_i135,hisData);}else if(_item24.Type==4){this.CreateLineStick(hqChart,windowIndex,_item24,_i135);}else if(_item24.Type==5){this.CreateStick(hqChart,windowIndex,_item24,_i135);}else if(_item24.Type==6){this.CreateVolStick(hqChart,windowIndex,_item24,_i135,hisData);}else if(_item24.Type==7){this.CreateLine(hqChart,windowIndex,_item24,_i135,_item24.Type);}else if(_item24.Type==8){this.CreateLine(hqChart,windowIndex,_item24,_i135,_item24.Type);}else if(_item24.Type==9){this.CreateArea(hqChart,windowIndex,_item24,_i135);}var titlePaint=hqChart.TitlePaint[windowIndex+1];if(titlePaint&&titlePaint.Data&&_i135<titlePaint.Data.length)//设置标题数值 小数位数和格式
|
|
11837
11845
|
{if(this.StringFormat>0)titlePaint.Data[_i135].StringFormat=this.StringFormat;if(this.FloatPrecision>=0)titlePaint.Data[_i135].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
|
|
11838
11846
|
titlePaint.ArgumentsText=null;titlePaint.Script=this;titlePaint.IsShowMainIndexTitle=this.IsShowIndexTitle;if(!this.IsShortTitle){var indexParam='';for(var _i136=0;_i136<this.Arguments.length;++_i136){var _item25=this.Arguments[_i136];if(indexParam.length>0)indexParam+=',';indexParam+=_item25.Value.toString();}if(indexParam.length>0)titlePaint.ArgumentsText='('+indexParam+')';}if(this.TitleFont)titlePaint.Font=this.TitleFont;return true;};//给一个默认的颜色
|
|
@@ -11993,7 +12001,7 @@ if(item.isexdata==true)outVarItem.IsExData=true;if(item.BreakPoint)outVarItem.Br
|
|
|
11993
12001
|
{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);//默认的值
|
|
11994
12002
|
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:this.FittingMultiText(draw.Data,date,time,hqChart),Family:draw.Family,TextFont:draw.TextFont,EnableTooltip:draw.EnableTooltip,IsDrawFirst:draw.IsDrawFirst};this.GetKLineData(drawItem.DrawData.Data,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=="MULTI_HTMLDOM")//外部自己创建dom
|
|
11995
12003
|
{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;
|
|
11996
|
-
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{var find=g_ScriptIndexChartFactory.Get(draw.DrawType);//外部挂接
|
|
12004
|
+
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{var find=g_ScriptIndexChartFactory.Get(draw.DrawType);//外部挂接
|
|
11997
12005
|
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
|
|
11998
12006
|
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;//走势图分钟数据
|
|
11999
12007
|
else var kData=hqChart.ChartPaint[0].Data;//K线
|
|
@@ -12008,7 +12016,7 @@ var result=[];if(ChartData.IsDayPeriod(hqChart.Period,true))//日线
|
|
|
12008
12016
|
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;result.push(outVarItem);}else if(item.Draw){var draw=item.Draw;var drawItem={};if(draw.DrawType=='DRAWICON')//图标
|
|
12009
12017
|
{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')//文本
|
|
12010
12018
|
{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')//柱子
|
|
12011
|
-
{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=='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:this.FittingMultiText(draw.Data,date,time,hqChart),Family:draw.Family,TextFont:draw.TextFont,EnableTooltip:draw.EnableTooltip,IsDrawFirst:draw.IsDrawFirst};this.GetKLineData(drawItem.DrawData.Data,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=="MULTI_HTMLDOM")//外部自己创建dom
|
|
12019
|
+
{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:this.FittingMultiText(draw.Data,date,time,hqChart),Family:draw.Family,TextFont:draw.TextFont,EnableTooltip:draw.EnableTooltip,IsDrawFirst:draw.IsDrawFirst};this.GetKLineData(drawItem.DrawData.Data,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=="MULTI_HTMLDOM")//外部自己创建dom
|
|
12012
12020
|
{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{var find=g_ScriptIndexChartFactory.Get(draw.DrawType);//外部挂接
|
|
12013
12021
|
if(find&&find.MinuteFittingCallback){if(find.MinuteFittingCallback(item,outVarItem,{Date:date,Time:time,HQChart:hqChart},this))result.push(outVarItem);}}}}return result;};//matchType 0=精确匹配(默认) 5=模糊匹配
|
|
12014
12022
|
this.FittingMinuteArray=function(sourceData,date,time,hqChart,matchType){var minutedata=hqChart.SourceData;;//分钟线
|
|
@@ -13739,7 +13747,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
|
|
|
13739
13747
|
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);};}/********************************************************************************
|
|
13740
13748
|
* 版本信息输出
|
|
13741
13749
|
*
|
|
13742
|
-
*/var HQCHART_VERSION="1.1.
|
|
13750
|
+
*/var HQCHART_VERSION="1.1.13710";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();//把给外界调用的方法暴露出来
|
|
13743
13751
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
13744
13752
|
// BaseIndex:BaseIndex,
|
|
13745
13753
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
|
@@ -20025,6 +20025,8 @@ var SCRIPT_CHART_NAME=
|
|
|
20025
20025
|
OVERLAY_BARS:"OVERLAY_BARS", //叠加柱子图
|
|
20026
20026
|
KLINE_TABLE:"KLINE_TABLE",
|
|
20027
20027
|
SCATTER_PLOT:"SCATTER_PLOT", //散点图
|
|
20028
|
+
|
|
20029
|
+
CLIP_COLOR_STICK:"CLIP_COLOR_STICK", //上下柱子 裁剪
|
|
20028
20030
|
}
|
|
20029
20031
|
|
|
20030
20032
|
|
|
@@ -21783,6 +21785,33 @@ function ScriptIndex(name,script,args,option)
|
|
|
21783
21785
|
hqChart.ChartPaint.push(chart);
|
|
21784
21786
|
}
|
|
21785
21787
|
|
|
21788
|
+
this.CreateClipColorStick=function(hqChart,windowIndex,varItem,id)
|
|
21789
|
+
{
|
|
21790
|
+
var chart=new ChartClipColorStick();
|
|
21791
|
+
chart.Canvas=hqChart.Canvas;
|
|
21792
|
+
chart.Name=varItem.Name;
|
|
21793
|
+
chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
|
|
21794
|
+
chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;
|
|
21795
|
+
chart.HQChart=hqChart;
|
|
21796
|
+
chart.Identify=this.Guid;
|
|
21797
|
+
|
|
21798
|
+
chart.Data.Data=varItem.Draw.DrawData;
|
|
21799
|
+
if (varItem.Option && chart.SetOption) chart.SetOption(varItem.Option);
|
|
21800
|
+
hqChart.ChartPaint.push(chart);
|
|
21801
|
+
|
|
21802
|
+
var titleIndex=windowIndex+1;
|
|
21803
|
+
if (varItem.IsShowTitle===false)
|
|
21804
|
+
{
|
|
21805
|
+
|
|
21806
|
+
}
|
|
21807
|
+
else
|
|
21808
|
+
{
|
|
21809
|
+
var clrTitle=this.GetDefaultColor(id);
|
|
21810
|
+
if (varItem.Option && varItem.Option.TitleColor) clrTitle=this.GetColor(varItem.Option.TitleColor);
|
|
21811
|
+
hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(chart.Data,varItem.Name,clrTitle);
|
|
21812
|
+
}
|
|
21813
|
+
}
|
|
21814
|
+
|
|
21786
21815
|
this.CreateColorKLine=function(hqChart,windowIndex,varItem,i)
|
|
21787
21816
|
{
|
|
21788
21817
|
let chart=new ChartColorKline();
|
|
@@ -22100,6 +22129,9 @@ function ScriptIndex(name,script,args,option)
|
|
|
22100
22129
|
case SCRIPT_CHART_NAME.SCATTER_PLOT:
|
|
22101
22130
|
this.CreateScatterPlot(hqChart,windowIndex,item,i);
|
|
22102
22131
|
break;
|
|
22132
|
+
case SCRIPT_CHART_NAME.CLIP_COLOR_STICK:
|
|
22133
|
+
this.CreateClipColorStick(hqChart,windowIndex,item,i);
|
|
22134
|
+
break;
|
|
22103
22135
|
default:
|
|
22104
22136
|
{
|
|
22105
22137
|
var find=g_ScriptIndexChartFactory.Get(item.Draw.DrawType); //外部挂接
|
|
@@ -24535,6 +24567,20 @@ function APIScriptIndex(name,script,args,option, isOverlay)
|
|
|
24535
24567
|
|
|
24536
24568
|
result.push(outVarItem);
|
|
24537
24569
|
}
|
|
24570
|
+
else if (draw.DrawType==SCRIPT_CHART_NAME.CLIP_COLOR_STICK)
|
|
24571
|
+
{
|
|
24572
|
+
drawItem.Name=draw.Name;
|
|
24573
|
+
drawItem.Type=draw.Type;
|
|
24574
|
+
drawItem.DrawType=draw.DrawType;
|
|
24575
|
+
drawItem.DrawData=this.FittingArray(draw.Data,date,time,hqChart);
|
|
24576
|
+
|
|
24577
|
+
outVarItem.Draw=drawItem;
|
|
24578
|
+
if (draw.LineWidth) outVarItem.LineWidth=draw.LineWidth;
|
|
24579
|
+
if (draw.UpColor) outVarItem.UpColor=draw.UpColor;
|
|
24580
|
+
if (draw.DownColor) outVarItem.DownColor=draw.DownColor;
|
|
24581
|
+
|
|
24582
|
+
result.push(outVarItem);
|
|
24583
|
+
}
|
|
24538
24584
|
else
|
|
24539
24585
|
{
|
|
24540
24586
|
var find=g_ScriptIndexChartFactory.Get(draw.DrawType); //外部挂接
|
|
@@ -24800,6 +24846,17 @@ function APIScriptIndex(name,script,args,option, isOverlay)
|
|
|
24800
24846
|
|
|
24801
24847
|
result.push(outVarItem);
|
|
24802
24848
|
}
|
|
24849
|
+
else if (draw.DrawType==SCRIPT_CHART_NAME.CLIP_COLOR_STICK)
|
|
24850
|
+
{
|
|
24851
|
+
drawItem.Name=draw.Name;
|
|
24852
|
+
drawItem.Type=draw.Type;
|
|
24853
|
+
drawItem.DrawType=draw.DrawType;
|
|
24854
|
+
drawItem.DrawData=this.FittingMinuteArray(draw.Data,date,time,hqChart);
|
|
24855
|
+
|
|
24856
|
+
outVarItem.Draw=drawItem;
|
|
24857
|
+
if (draw.Option) outVarItem.Option=draw.Option;
|
|
24858
|
+
result.push(outVarItem);
|
|
24859
|
+
}
|
|
24803
24860
|
else if (draw.DrawType=='MULTI_LINE')
|
|
24804
24861
|
{
|
|
24805
24862
|
drawItem.Text=draw.Text;
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -35970,6 +35970,303 @@ function ChartMACD()
|
|
|
35970
35970
|
}
|
|
35971
35971
|
}
|
|
35972
35972
|
|
|
35973
|
+
function ChartClipColorStick()
|
|
35974
|
+
{
|
|
35975
|
+
this.newMethod=IChartPainting; //派生
|
|
35976
|
+
this.newMethod();
|
|
35977
|
+
delete this.newMethod;
|
|
35978
|
+
|
|
35979
|
+
this.ClassName="ChartClipColorStick";
|
|
35980
|
+
this.UpColor=g_JSChartResource.UpBarColor;
|
|
35981
|
+
this.DownColor=g_JSChartResource.DownBarColor;
|
|
35982
|
+
this.LineWidth=1;
|
|
35983
|
+
//差值线
|
|
35984
|
+
this.DownDiffColor=g_JSChartResource.DownBarColor;
|
|
35985
|
+
this.UpDiffColor=g_JSChartResource.UpBarColor;
|
|
35986
|
+
|
|
35987
|
+
this.BaseLineColor; //基准线
|
|
35988
|
+
|
|
35989
|
+
this.BaseValue=0;
|
|
35990
|
+
this.Super_GetMaxMin=this.GetMaxMin; //父类的方法
|
|
35991
|
+
|
|
35992
|
+
this.SetOption=function(option)
|
|
35993
|
+
{
|
|
35994
|
+
if (!option) return;
|
|
35995
|
+
|
|
35996
|
+
if (option.UpColor) this.UpColor=option.UpColor;
|
|
35997
|
+
if (option.DownColor) this.DownColor=option.DownColor;
|
|
35998
|
+
if (option.DownDiffColor) this.DownDiffColor=option.DownDiffColor;
|
|
35999
|
+
if (option.UpDiffColor) this.UpDiffColor=option.UpDiffColor;
|
|
36000
|
+
if (option.BaseLineColor) this.BaseLineColor=option.BaseLineColor;
|
|
36001
|
+
if (IFrameSplitOperator.IsNumber(option.BaseValue)) this.BaseValue=option.BaseValue;
|
|
36002
|
+
}
|
|
36003
|
+
|
|
36004
|
+
this.Draw=function()
|
|
36005
|
+
{
|
|
36006
|
+
if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
|
|
36007
|
+
if (this.IsShowIndexTitleOnly()) return;
|
|
36008
|
+
if (this.IsHideScriptIndex()) return;
|
|
36009
|
+
|
|
36010
|
+
if (this.NotSupportMessage)
|
|
36011
|
+
{
|
|
36012
|
+
this.DrawNotSupportmessage();
|
|
36013
|
+
return;
|
|
36014
|
+
}
|
|
36015
|
+
|
|
36016
|
+
this.Canvas.save();
|
|
36017
|
+
var dataWidth=this.ChartFrame.DataWidth;
|
|
36018
|
+
var lineWidth=this.LineWidth*GetDevicePixelRatio();
|
|
36019
|
+
if (this.LineWidth==50) lineWidth=dataWidth;
|
|
36020
|
+
else if (lineWidth>dataWidth) lineWidth=dataWidth;
|
|
36021
|
+
|
|
36022
|
+
if (IFrameSplitOperator.IsNumber(this.BaseValue) && this.BaseValue!=0)
|
|
36023
|
+
{
|
|
36024
|
+
this.DrawBaseLine();
|
|
36025
|
+
|
|
36026
|
+
if (this.BaseValue>0) this.DrawBars(lineWidth, true);
|
|
36027
|
+
else this.DrawBars(lineWidth, false);
|
|
36028
|
+
}
|
|
36029
|
+
else
|
|
36030
|
+
{
|
|
36031
|
+
//上下分开画
|
|
36032
|
+
this.DrawBars(lineWidth, true);
|
|
36033
|
+
this.DrawBars(lineWidth, false);
|
|
36034
|
+
}
|
|
36035
|
+
|
|
36036
|
+
|
|
36037
|
+
this.Canvas.restore();
|
|
36038
|
+
}
|
|
36039
|
+
|
|
36040
|
+
this.DrawBars=function(lineWidth, bUpBar)
|
|
36041
|
+
{
|
|
36042
|
+
var isMinute=this.IsMinuteFrame();
|
|
36043
|
+
var dataWidth=this.ChartFrame.DataWidth;
|
|
36044
|
+
var distanceWidth=this.ChartFrame.DistanceWidth;
|
|
36045
|
+
var xPointCount=this.ChartFrame.XPointCount;
|
|
36046
|
+
var isHSCreen=this.ChartFrame.IsHScreen===true;
|
|
36047
|
+
|
|
36048
|
+
if (isHSCreen)
|
|
36049
|
+
{
|
|
36050
|
+
var border=this.ChartBorder.GetHScreenBorder();
|
|
36051
|
+
var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
36052
|
+
var chartright=border.BottomEx;
|
|
36053
|
+
var lockRect=this.GetLockRect();
|
|
36054
|
+
if (lockRect) chartright=lockRect.Top;
|
|
36055
|
+
}
|
|
36056
|
+
else
|
|
36057
|
+
{
|
|
36058
|
+
var border=this.ChartBorder.GetBorder();
|
|
36059
|
+
var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
36060
|
+
|
|
36061
|
+
var chartright=border.RightEx;
|
|
36062
|
+
var lockRect=this.GetLockRect();
|
|
36063
|
+
if (lockRect) chartright=lockRect.Left;
|
|
36064
|
+
}
|
|
36065
|
+
|
|
36066
|
+
var yBottom=this.ChartFrame.GetYFromData(this.BaseValue);
|
|
36067
|
+
var aryBar=[], aryDiffBar=[];
|
|
36068
|
+
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
|
|
36069
|
+
{
|
|
36070
|
+
var value=this.Data.Data[i];
|
|
36071
|
+
if (value==null) continue;
|
|
36072
|
+
if (bUpBar)
|
|
36073
|
+
{
|
|
36074
|
+
if (value<0) continue;
|
|
36075
|
+
}
|
|
36076
|
+
else
|
|
36077
|
+
{
|
|
36078
|
+
if (value>=0) continue;
|
|
36079
|
+
}
|
|
36080
|
+
|
|
36081
|
+
if (isMinute)
|
|
36082
|
+
{
|
|
36083
|
+
var x=this.ChartFrame.GetXFromIndex(j);
|
|
36084
|
+
}
|
|
36085
|
+
else
|
|
36086
|
+
{
|
|
36087
|
+
var left=xOffset;
|
|
36088
|
+
var right=xOffset+dataWidth;
|
|
36089
|
+
if (right>chartright) break;
|
|
36090
|
+
var x=left+(right-left)/2;
|
|
36091
|
+
}
|
|
36092
|
+
|
|
36093
|
+
if (x>chartright) break;
|
|
36094
|
+
|
|
36095
|
+
var bDiffBar=false;
|
|
36096
|
+
var diffValue=null;
|
|
36097
|
+
if (this.BaseValue>0)
|
|
36098
|
+
{
|
|
36099
|
+
if (value<this.BaseValue)
|
|
36100
|
+
{
|
|
36101
|
+
bDiffBar=true;
|
|
36102
|
+
diffValue=this.BaseValue-(this.BaseValue-value);
|
|
36103
|
+
}
|
|
36104
|
+
}
|
|
36105
|
+
else if (this.BaseValue<0)
|
|
36106
|
+
{
|
|
36107
|
+
if (value>this.BaseValue)
|
|
36108
|
+
{
|
|
36109
|
+
bDiffBar=true;
|
|
36110
|
+
diffValue=this.BaseValue+(value-this.BaseValue)
|
|
36111
|
+
}
|
|
36112
|
+
}
|
|
36113
|
+
|
|
36114
|
+
if (!bDiffBar)
|
|
36115
|
+
{
|
|
36116
|
+
var y=this.ChartFrame.GetYFromData(value);
|
|
36117
|
+
aryBar.push({X:x, Y:y});
|
|
36118
|
+
}
|
|
36119
|
+
else
|
|
36120
|
+
{
|
|
36121
|
+
var y=this.ChartFrame.GetYFromData(diffValue);
|
|
36122
|
+
aryDiffBar.push({X:x, Y:y});
|
|
36123
|
+
}
|
|
36124
|
+
}
|
|
36125
|
+
|
|
36126
|
+
this.Canvas.lineWidth=lineWidth;
|
|
36127
|
+
if (bUpBar) this.Canvas.strokeStyle=this.UpColor;
|
|
36128
|
+
else this.Canvas.strokeStyle=this.DownColor;
|
|
36129
|
+
|
|
36130
|
+
this.DrawStick(aryBar,lineWidth,yBottom);
|
|
36131
|
+
|
|
36132
|
+
if (this.BaseValue>0)
|
|
36133
|
+
{
|
|
36134
|
+
this.Canvas.strokeStyle=this.UpDiffColor;
|
|
36135
|
+
this.DrawStick(aryDiffBar,lineWidth,yBottom);
|
|
36136
|
+
}
|
|
36137
|
+
else if (this.BaseValue<0)
|
|
36138
|
+
{
|
|
36139
|
+
this.Canvas.strokeStyle=this.DownDiffColor;
|
|
36140
|
+
this.DrawStick(aryDiffBar,lineWidth,yBottom);
|
|
36141
|
+
}
|
|
36142
|
+
|
|
36143
|
+
}
|
|
36144
|
+
|
|
36145
|
+
this.DrawStick=function(aryData, lineWidth, yBottom)
|
|
36146
|
+
{
|
|
36147
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(aryData)) return;
|
|
36148
|
+
|
|
36149
|
+
var isHSCreen=this.ChartFrame.IsHScreen===true;
|
|
36150
|
+
var drawCount=0;
|
|
36151
|
+
this.Canvas.beginPath();
|
|
36152
|
+
for(var i=0; i<aryData.length; ++i)
|
|
36153
|
+
{
|
|
36154
|
+
var item=aryData[i];
|
|
36155
|
+
var y=item.Y;
|
|
36156
|
+
var xFix=ToFixedPoint2(lineWidth, item.X); //毛边修正
|
|
36157
|
+
|
|
36158
|
+
if (isHSCreen)
|
|
36159
|
+
{
|
|
36160
|
+
this.Canvas.moveTo(yBottom,ToFixedPoint(x));
|
|
36161
|
+
this.Canvas.lineTo(y,ToFixedPoint(x));
|
|
36162
|
+
}
|
|
36163
|
+
else
|
|
36164
|
+
{
|
|
36165
|
+
this.Canvas.moveTo(xFix,yBottom);
|
|
36166
|
+
this.Canvas.lineTo(xFix,y);
|
|
36167
|
+
}
|
|
36168
|
+
|
|
36169
|
+
++drawCount;
|
|
36170
|
+
}
|
|
36171
|
+
|
|
36172
|
+
if (drawCount>0) this.Canvas.stroke();
|
|
36173
|
+
}
|
|
36174
|
+
|
|
36175
|
+
this.DrawBaseLine=function()
|
|
36176
|
+
{
|
|
36177
|
+
if (!IFrameSplitOperator.IsNumber(this.BaseValue) || this.BaseValue==0) return;
|
|
36178
|
+
if (!this.BaseLineColor) return;
|
|
36179
|
+
|
|
36180
|
+
var isHSCreen=this.ChartFrame.IsHScreen===true;
|
|
36181
|
+
var border=this.ChartFrame.GetBorder();
|
|
36182
|
+
var y=this.ChartFrame.GetYFromData(this.BaseValue);
|
|
36183
|
+
|
|
36184
|
+
this.Canvas.strokeStyle=this.BaseLineColor;
|
|
36185
|
+
this.Canvas.lineWidth=1*GetDevicePixelRatio();
|
|
36186
|
+
|
|
36187
|
+
if (isHSCreen)
|
|
36188
|
+
{
|
|
36189
|
+
|
|
36190
|
+
}
|
|
36191
|
+
else
|
|
36192
|
+
{
|
|
36193
|
+
var yFix=ToFixedPoint(y);
|
|
36194
|
+
this.Canvas.beginPath();
|
|
36195
|
+
this.Canvas.moveTo(border.Left,yFix);
|
|
36196
|
+
this.Canvas.lineTo(border.Right,yFix);
|
|
36197
|
+
this.Canvas.stroke();
|
|
36198
|
+
}
|
|
36199
|
+
}
|
|
36200
|
+
|
|
36201
|
+
this.GetMaxMin=function()
|
|
36202
|
+
{
|
|
36203
|
+
if (!IFrameSplitOperator.IsNumber(this.BaseValue) || this.BaseValue==0)
|
|
36204
|
+
return this.Super_GetMaxMin();
|
|
36205
|
+
|
|
36206
|
+
var xPointCount=this.ChartFrame.XPointCount;
|
|
36207
|
+
var start=this.Data.DataOffset;
|
|
36208
|
+
if (this.ChartFrame.GlobalOption && this.ChartFrame.GlobalOption.IsValueFullRange)
|
|
36209
|
+
{
|
|
36210
|
+
start=0;
|
|
36211
|
+
xPointCount=this.Data.Data.length;
|
|
36212
|
+
}
|
|
36213
|
+
|
|
36214
|
+
var range={ Min:null, Max:null }, maxDiffValue=null; //基准值的差值
|
|
36215
|
+
if(!this.Data || !this.Data.Data) return range;
|
|
36216
|
+
|
|
36217
|
+
if (this.BaseValue>0) range.Min=this.BaseValue;
|
|
36218
|
+
else range.Max=this.BaseValue;
|
|
36219
|
+
|
|
36220
|
+
for(var i=start,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
|
|
36221
|
+
{
|
|
36222
|
+
var value=this.Data.Data[i];
|
|
36223
|
+
if (value==null || isNaN(value)) continue;
|
|
36224
|
+
|
|
36225
|
+
if (this.BaseValue>0)
|
|
36226
|
+
{
|
|
36227
|
+
if (value<0) continue;
|
|
36228
|
+
|
|
36229
|
+
if (value<this.BaseValue)
|
|
36230
|
+
{
|
|
36231
|
+
var diffValue=this.BaseValue-value;
|
|
36232
|
+
if (maxDiffValue==null || maxDiffValue<diffValue) maxDiffValue=diffValue;
|
|
36233
|
+
continue;
|
|
36234
|
+
}
|
|
36235
|
+
}
|
|
36236
|
+
else
|
|
36237
|
+
{
|
|
36238
|
+
if (value>0) continue;
|
|
36239
|
+
|
|
36240
|
+
if (value>this.BaseValue)
|
|
36241
|
+
{
|
|
36242
|
+
var diffValue=value-this.BaseValue;
|
|
36243
|
+
if (maxDiffValue==null || maxDiffValue<diffValue) maxDiffValue=diffValue;
|
|
36244
|
+
continue;
|
|
36245
|
+
}
|
|
36246
|
+
}
|
|
36247
|
+
|
|
36248
|
+
if (range.Max==null) range.Max=value;
|
|
36249
|
+
if (range.Min==null) range.Min=value;
|
|
36250
|
+
|
|
36251
|
+
if (range.Max<value) range.Max=value;
|
|
36252
|
+
if (range.Min>value) range.Min=value;
|
|
36253
|
+
}
|
|
36254
|
+
|
|
36255
|
+
if (this.BaseValue>0)
|
|
36256
|
+
{
|
|
36257
|
+
if (IFrameSplitOperator.IsNumber(maxDiffValue) && IFrameSplitOperator.IsNumber(range.Min))
|
|
36258
|
+
range.Min-=maxDiffValue;
|
|
36259
|
+
}
|
|
36260
|
+
else
|
|
36261
|
+
{
|
|
36262
|
+
if (IFrameSplitOperator.IsNumber(maxDiffValue) && IFrameSplitOperator.IsNumber(range.Max))
|
|
36263
|
+
range.Max+=maxDiffValue;
|
|
36264
|
+
}
|
|
36265
|
+
|
|
36266
|
+
return range;
|
|
36267
|
+
}
|
|
36268
|
+
}
|
|
36269
|
+
|
|
35973
36270
|
//柱子
|
|
35974
36271
|
function ChartBar()
|
|
35975
36272
|
{
|