hqchart 1.1.13466 → 1.1.13478
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 +19 -15
- package/package.json +1 -1
- package/src/jscommon/umychart.complier.js +7 -1
- package/src/jscommon/umychart.js +39 -10
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +47 -12
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +47 -12
package/lib/umychart.vue.js
CHANGED
|
@@ -1173,7 +1173,7 @@ if(option.IsCorssOnlyDrawKLine===true)chart.ChartCorssCursor.IsOnlyDrawKLine=opt
|
|
|
1173
1173
|
if(IFrameSplitOperator.IsBool(item.IsOnlyDrawKLine))chart.ChartCorssCursor.IsOnlyDrawKLine=item.IsOnlyDrawKLine;//Y轴显示收盘价
|
|
1174
1174
|
if(option.CorssCursorInfo.PressTime)chart.PressTime=option.CorssCursorInfo.PressTime;//长按显示十字光标的时间
|
|
1175
1175
|
if(IFrameSplitOperator.IsNumber(option.CorssCursorInfo.HPenType))chart.ChartCorssCursor.HPenType=option.CorssCursorInfo.HPenType;if(option.CorssCursorInfo.VPenType>0)chart.ChartCorssCursor.VPenType=option.CorssCursorInfo.VPenType;if(IFrameSplitOperator.IsNumber(item.VLineType))chart.ChartCorssCursor.VLineType=item.VLineType;if(option.CorssCursorInfo.DateFormatType>0)chart.ChartCorssCursor.StringFormatX.DateFormatType=option.CorssCursorInfo.DateFormatType;if(IFrameSplitOperator.IsBool(item.IsDrawXRangeBG))chart.ChartCorssCursor.IsDrawXRangeBG=item.IsDrawXRangeBG;if(IFrameSplitOperator.IsBool(option.CorssCursorInfo.IsFixXLastTime))chart.ChartCorssCursor.IsFixXLastTime=option.CorssCursorInfo.IsFixXLastTime;if(IFrameSplitOperator.IsNumber(item.TextHeight))chart.ChartCorssCursor.TextHeight=item.TextHeight;if(item.RightButton){if(IFrameSplitOperator.IsBool(item.RightButton.Enable))chart.ChartCorssCursor.RightButton.Enable=item.RightButton.Enable;}if(IFrameSplitOperator.IsNumber(item.PriceFormatType))chart.ChartCorssCursor.StringFormatY.PriceFormatType=item.PriceFormatType;if(IFrameSplitOperator.IsNumber(item.DataFormatType))chart.ChartCorssCursor.StringFormatY.DataFormatType=item.DataFormatType;}//保存十字光标文字高度
|
|
1176
|
-
option.CorssCursor={};option.CorssCursor.TitleHeight=chart.ChartCorssCursor.TextHeight;if(IFrameSplitOperator.IsNumber(option.SplashTitlePosition)){if(chart.ChartSplashPaint)chart.ChartSplashPaint.Position=option.SplashTitlePosition;}if(option.Frame){for(var i=0;i<option.Frame.length;++i){var item=option.Frame[i];if(!chart.Frame.SubFrame[i])continue;var subFrame=chart.Frame.SubFrame[i].Frame;if(IFrameSplitOperator.IsNumber(item.SplitCount))chart.Frame.SubFrame[i].Frame.YSplitOperator.SplitCount=item.SplitCount;if(item.StringFormat)chart.Frame.SubFrame[i].Frame.YSplitOperator.StringFormat=item.StringFormat;if(IFrameSplitOperator.IsNumber(item.FloatPrecision))chart.Frame.SubFrame[i].Frame.YSplitOperator.FloatPrecision=item.FloatPrecision;if(item.Custom)chart.Frame.SubFrame[i].Frame.YSplitOperator.Custom=item.Custom;if(IFrameSplitOperator.IsNumber(item.SplitType)){chart.Frame.SubFrame[i].Frame.YSplitOperator.SplitType=item.SplitType;chart.Frame.SubFrame[i].Frame.YSplitOperator.DefaultSplitType=item.SplitType;}if(!isNaN(item.Height))chart.Frame.SubFrame[i].Height=item.Height;if(item.IsShowLeftText===false||item.IsShowLeftText===true){chart.Frame.SubFrame[i].Frame.IsShowYText[0]=item.IsShowLeftText;chart.Frame.SubFrame[i].Frame.YSplitOperator.IsShowLeftText=item.IsShowLeftText;//显示左边刻度
|
|
1176
|
+
option.CorssCursor={};option.CorssCursor.TitleHeight=chart.ChartCorssCursor.TextHeight;if(IFrameSplitOperator.IsNumber(option.SplashTitlePosition)){if(chart.ChartSplashPaint)chart.ChartSplashPaint.Position=option.SplashTitlePosition;}if(option.Frame){for(var i=0;i<option.Frame.length;++i){var item=option.Frame[i];if(!chart.Frame.SubFrame[i])continue;var subFrame=chart.Frame.SubFrame[i].Frame;if(IFrameSplitOperator.IsNumber(item.SplitCount))chart.Frame.SubFrame[i].Frame.YSplitOperator.SplitCount=item.SplitCount;if(item.StringFormat)chart.Frame.SubFrame[i].Frame.YSplitOperator.StringFormat=item.StringFormat;if(IFrameSplitOperator.IsNumber(item.FloatPrecision))chart.Frame.SubFrame[i].Frame.YSplitOperator.FloatPrecision=item.FloatPrecision;if(item.Custom)chart.Frame.SubFrame[i].Frame.YSplitOperator.Custom=item.Custom;if(IFrameSplitOperator.IsNumber(item.SplitType)){chart.Frame.SubFrame[i].Frame.YSplitOperator.SplitType=item.SplitType;chart.Frame.SubFrame[i].Frame.YSplitOperator.DefaultSplitType=item.SplitType;}if(IFrameSplitOperator.IsNumber(item.FilterType))subFrame.YSplitOperator.FilterType=item.FilterType;if(!isNaN(item.Height))chart.Frame.SubFrame[i].Height=item.Height;if(item.IsShowLeftText===false||item.IsShowLeftText===true){chart.Frame.SubFrame[i].Frame.IsShowYText[0]=item.IsShowLeftText;chart.Frame.SubFrame[i].Frame.YSplitOperator.IsShowLeftText=item.IsShowLeftText;//显示左边刻度
|
|
1177
1177
|
}if(item.IsShowRightText===false||item.IsShowRightText===true){chart.Frame.SubFrame[i].Frame.IsShowYText[1]=item.IsShowRightText;chart.Frame.SubFrame[i].Frame.YSplitOperator.IsShowRightText=item.IsShowRightText;//显示右边刻度
|
|
1178
1178
|
}if(item.TopSpace>=0)chart.Frame.SubFrame[i].Frame.ChartBorder.TopSpace=item.TopSpace*pixelRatio;if(item.BottomSpace>=0)chart.Frame.SubFrame[i].Frame.ChartBorder.BottomSpace=item.BottomSpace*pixelRatio;if(item.RightTextPosition>0)chart.Frame.SubFrame[i].Frame.YTextPosition[1]=item.RightTextPosition;if(item.LeftTextPosition>0)chart.Frame.SubFrame[i].Frame.YTextPosition[0]=item.LeftTextPosition;if(item.IsShowXLine==false)chart.Frame.SubFrame[i].Frame.IsShowXLine=item.IsShowXLine;if(item.IsShowYLine==false)chart.Frame.SubFrame[i].Frame.IsShowYLine=item.IsShowYLine;if(IFrameSplitOperator.IsNumber(item.YTextBaseline))chart.Frame.SubFrame[i].Frame.YTextBaseline=item.YTextBaseline;if(item.YCoordinateType>0)chart.Frame.SubFrame[0].Frame.YSplitOperator.CoordinateType=item.YCoordinateType;if(item.IsYReverse==true)chart.Frame.SubFrame[0].Frame.CoordinateType=1;//反转坐标
|
|
1179
1179
|
if(IFrameSplitOperator.IsNumber(item.PercentageTextFormat))subFrame.YSplitOperator.PercentageTextFormat=item.PercentageTextFormat;//百分比坐标格式
|
|
@@ -1212,17 +1212,17 @@ if(option.SelectedChart){var item=option.SelectedChart;if(IFrameSplitOperator.Is
|
|
|
1212
1212
|
}}//分页
|
|
1213
1213
|
if(option.PageInfo)chart.SetPageInfo(option.PageInfo);chart.Create(windowsCount,option);//创建子窗口
|
|
1214
1214
|
if(option.CorssCursorInfo){var item=option.CorssCursorInfo;if(!isNaN(option.CorssCursorInfo.Left))chart.ChartCorssCursor.ShowTextMode.Left=option.CorssCursorInfo.Left;if(!isNaN(option.CorssCursorInfo.Right))chart.ChartCorssCursor.ShowTextMode.Right=option.CorssCursorInfo.Right;if(!isNaN(option.CorssCursorInfo.Bottom))chart.ChartCorssCursor.ShowTextMode.Bottom=option.CorssCursorInfo.Bottom;if(option.CorssCursorInfo.IsShowCorss===false)chart.ChartCorssCursor.IsShowCorss=option.CorssCursorInfo.IsShowCorss;if(option.CorssCursorInfo.RightTextFormat>0)chart.ChartCorssCursor.TextFormat.Right=option.CorssCursorInfo.RightTextFormat;if(option.CorssCursorInfo.IsOnlyDrawMinute==true)chart.ChartCorssCursor.IsOnlyDrawMinute=option.CorssCursorInfo.IsOnlyDrawMinute;//Y轴显示收盘价
|
|
1215
|
-
if(IFrameSplitOperator.IsBool(option.CorssCursorInfo.IsFixXLastTime))chart.ChartCorssCursor.IsFixXLastTime=option.CorssCursorInfo.IsFixXLastTime;if(item.RightButton){if(IFrameSplitOperator.IsBool(item.RightButton.Enable))chart.ChartCorssCursor.RightButton.Enable=item.RightButton.Enable;}if(IFrameSplitOperator.IsNumber(item.PriceFormatType))chart.ChartCorssCursor.StringFormatY.PriceFormatType=item.PriceFormatType;if(IFrameSplitOperator.IsNumber(item.DataFormatType))chart.ChartCorssCursor.StringFormatY.DataFormatType=item.DataFormatType;if(IFrameSplitOperator.IsNumber(item.HPenType))chart.ChartCorssCursor.HPenType=item.HPenType;if(IFrameSplitOperator.IsNumber(item.VPenType))chart.ChartCorssCursor.VPenType=item.VPenType;}if(option.MinuteInfo)chart.CreateMinuteInfo(option.MinuteInfo);if(IFrameSplitOperator.IsBool(option.IsShowRightMenu))chart.IsShowRightMenu=option.IsShowRightMenu;if(IFrameSplitOperator.IsNumber(option.DayCount))chart.DayCount=option.DayCount;this.SetChartBorder(chart,option);if(option.SplashTitle)chart.ChartSplashPaint.SplashTitle=option.SplashTitle;if(IFrameSplitOperator.IsBool(option.EnableBorderDrag)){chart.EnableBorderDrag=option.EnableBorderDrag;}this.AdjustChartBorder(chart);if(option.Frame){for(var i=0;i<option.Frame.length;++i){var item=option.Frame[i];if(!chart.Frame.SubFrame[i])continue;var subFrame=chart.Frame.SubFrame[i].Frame;if(IFrameSplitOperator.IsNumber(item.SplitCount))chart.Frame.SubFrame[i].Frame.YSplitOperator.SplitCount=item.SplitCount;if(item.StringFormat)chart.Frame.SubFrame[i].Frame.YSplitOperator.StringFormat=item.StringFormat;if(IFrameSplitOperator.IsNumber(item.SplitType)){chart.Frame.SubFrame[i].Frame.YSplitOperator.SplitType=item.SplitType;chart.Frame.SubFrame[i].Frame.YSplitOperator.DefaultSplitType=item.SplitType;}if(item.IsShowLeftText==false){chart.Frame.SubFrame[i].Frame.IsShowYText[0]=item.IsShowLeftText;chart.Frame.SubFrame[i].Frame.YSplitOperator.IsShowLeftText=item.IsShowLeftText;//显示左边刻度
|
|
1215
|
+
if(IFrameSplitOperator.IsBool(option.CorssCursorInfo.IsFixXLastTime))chart.ChartCorssCursor.IsFixXLastTime=option.CorssCursorInfo.IsFixXLastTime;if(item.RightButton){if(IFrameSplitOperator.IsBool(item.RightButton.Enable))chart.ChartCorssCursor.RightButton.Enable=item.RightButton.Enable;}if(IFrameSplitOperator.IsNumber(item.PriceFormatType))chart.ChartCorssCursor.StringFormatY.PriceFormatType=item.PriceFormatType;if(IFrameSplitOperator.IsNumber(item.DataFormatType))chart.ChartCorssCursor.StringFormatY.DataFormatType=item.DataFormatType;if(IFrameSplitOperator.IsNumber(item.HPenType))chart.ChartCorssCursor.HPenType=item.HPenType;if(IFrameSplitOperator.IsNumber(item.VPenType))chart.ChartCorssCursor.VPenType=item.VPenType;}if(option.MinuteInfo)chart.CreateMinuteInfo(option.MinuteInfo);if(IFrameSplitOperator.IsBool(option.IsShowRightMenu))chart.IsShowRightMenu=option.IsShowRightMenu;if(IFrameSplitOperator.IsNumber(option.DayCount))chart.DayCount=option.DayCount;this.SetChartBorder(chart,option);if(option.SplashTitle)chart.ChartSplashPaint.SplashTitle=option.SplashTitle;if(IFrameSplitOperator.IsBool(option.EnableBorderDrag)){chart.EnableBorderDrag=option.EnableBorderDrag;}this.AdjustChartBorder(chart);if(option.Frame){for(var i=0;i<option.Frame.length;++i){var item=option.Frame[i];if(!chart.Frame.SubFrame[i])continue;var subFrame=chart.Frame.SubFrame[i].Frame;if(IFrameSplitOperator.IsNumber(item.SplitCount))chart.Frame.SubFrame[i].Frame.YSplitOperator.SplitCount=item.SplitCount;if(item.StringFormat)chart.Frame.SubFrame[i].Frame.YSplitOperator.StringFormat=item.StringFormat;if(IFrameSplitOperator.IsNumber(item.SplitType)){chart.Frame.SubFrame[i].Frame.YSplitOperator.SplitType=item.SplitType;chart.Frame.SubFrame[i].Frame.YSplitOperator.DefaultSplitType=item.SplitType;}if(IFrameSplitOperator.IsNumber(item.FilterType))subFrame.YSplitOperator.FilterType=item.FilterType;if(item.IsShowLeftText==false){chart.Frame.SubFrame[i].Frame.IsShowYText[0]=item.IsShowLeftText;chart.Frame.SubFrame[i].Frame.YSplitOperator.IsShowLeftText=item.IsShowLeftText;//显示左边刻度
|
|
1216
1216
|
}if(item.IsShowRightText==false){chart.Frame.SubFrame[i].Frame.IsShowYText[1]=item.IsShowRightText;chart.Frame.SubFrame[i].Frame.YSplitOperator.IsShowRightText=item.IsShowRightText;//显示右边刻度
|
|
1217
1217
|
}if(item.Height>=0)chart.Frame.SubFrame[i].Height=item.Height;if(item.Custom)chart.Frame.SubFrame[i].Frame.YSplitOperator.Custom=item.Custom;if(item.RightTextFormat>0)chart.Frame.SubFrame[i].Frame.YSplitOperator.RightTextFormat=item.RightTextFormat;if(IFrameSplitOperator.IsNumber(item.TitleHeight))chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;if(IFrameSplitOperator.IsNumber(item.BorderLine))chart.Frame.SubFrame[i].Frame.BorderLine=item.BorderLine;if(IFrameSplitOperator.IsBool(item.EnableRemoveZero))chart.Frame.SubFrame[i].Frame.YSplitOperator.EnableRemoveZero=item.EnableRemoveZero;if(IFrameSplitOperator.IsNumber(item.FloatPrecision))chart.Frame.SubFrame[i].Frame.YSplitOperator.FloatPrecision=item.FloatPrecision;if(IFrameSplitOperator.IsBool(item.IsShowXLine))chart.Frame.SubFrame[i].Frame.IsShowXLine=item.IsShowXLine;if(IFrameSplitOperator.IsBool(item.IsShowYLine))chart.Frame.SubFrame[i].Frame.IsShowYLine=item.IsShowYLine;if(IFrameSplitOperator.IsNumber(item.YTextBaseline))chart.Frame.SubFrame[i].Frame.YTextBaseline=item.YTextBaseline;if(IFrameSplitOperator.IsBool(item.IsShowIndexTitle))chart.Frame.SubFrame[i].Frame.IsShowIndexTitle=item.IsShowIndexTitle;if(item.TopSpace>=0)chart.Frame.SubFrame[i].Frame.ChartBorder.TopSpace=item.TopSpace*pixelRatio;if(item.BottomSpace>=0)chart.Frame.SubFrame[i].Frame.ChartBorder.BottomSpace=item.BottomSpace*pixelRatio;//是否显示关闭集合竞价按钮
|
|
1218
|
-
if(IFrameSplitOperator.IsNumber(item.CloseBeforeButton))chart.Frame.SubFrame[i].Frame.IsShowCloseButton=item.CloseBeforeButton;if(item.ClientBGColor)subFrame.ClientBGColor=item.ClientBGColor;}chart.UpdateXShowText();}if(option.ExtendChart){for(var i=0;i<option.ExtendChart.length;++i){var item=option.ExtendChart[i];chart.CreateExtendChart(item.Name,item);}}//叠加股票
|
|
1218
|
+
if(IFrameSplitOperator.IsNumber(item.CloseBeforeButton))chart.Frame.SubFrame[i].Frame.IsShowCloseButton=item.CloseBeforeButton;if(item.ClientBGColor)subFrame.ClientBGColor=item.ClientBGColor;if(!IFrameSplitOperator.IsUndefined(item.HorizontalReserved))subFrame.HorizontalReserved=item.HorizontalReserved;}chart.UpdateXShowText();}if(option.ExtendChart){for(var i=0;i<option.ExtendChart.length;++i){var item=option.ExtendChart[i];chart.CreateExtendChart(item.Name,item);}}//叠加股票
|
|
1219
1219
|
if(option.Overlay){for(var i=0;i<option.Overlay.length;++i){var item=option.Overlay[i];chart.OverlaySymbol(item.Symbol,item);}}if(option.MinuteLine){if(option.MinuteLine.IsDrawAreaPrice==false)chart.ChartPaint[0].IsDrawArea=false;if(option.MinuteLine.IsShowLead==false)chart.IsShowLead=false;if(option.MinuteLine.IsShowAveragePrice==false){chart.ChartPaint[1].IsShow=false;chart.TitlePaint[0].IsShowAveragePrice=false;//标题栏均线也不显示
|
|
1220
1220
|
for(var i=0;i<chart.ExtendChartPaint.length;++i){var item=chart.ExtendChartPaint[i];if(item.ClassName=="MinuteTooltipPaint")item.IsShowAveragePrice=false;}}if(option.MinuteLine.SplitType>0)chart.Frame.SubFrame[0].Frame.YSplitOperator.SplitType=option.MinuteLine.SplitType;}if(option.MinuteVol){var item=option.MinuteVol;if(IFrameSplitOperator.IsNumber(item.BarColorType))chart.ChartPaint[2].BarColorType=item.BarColorType;}if(option.MinuteTitle){var item=option.MinuteTitle;if(IFrameSplitOperator.IsBool(item.IsShowName))chart.TitlePaint[0].IsShowName=item.IsShowName;if(IFrameSplitOperator.IsBool(item.IsShowDate))chart.TitlePaint[0].IsShowDate=item.IsShowDate;if(IFrameSplitOperator.IsBool(item.IsShowTime))chart.TitlePaint[0].IsShowTime=item.IsShowTime;if(IFrameSplitOperator.IsBool(item.IsTitleShowLatestData))chart.IsTitleShowLatestData=item.IsTitleShowLatestData;if(IFrameSplitOperator.IsBool(item.IsAlwaysShowLastData))chart.TitlePaint[0].IsAlwaysShowLastData=item.IsAlwaysShowLastData;if(IFrameSplitOperator.IsNumber(item.ShowLastDataFormat))chart.TitlePaint[0].ShowLastDataFormat=item.ShowLastDataFormat;if(IFrameSplitOperator.IsNumber(item.TitleBaseLine))chart.TitlePaint[0].TitleBaseLine=item.TitleBaseLine;if(item.TimeFormat)chart.TitlePaint[0].TimeFormat=item.TimeFormat;}if(IFrameSplitOperator.IsBool(option.CorssCursorTouchEnd))chart.CorssCursorTouchEnd=option.CorssCursorTouchEnd;if(IFrameSplitOperator.IsBool(option.IsClickShowCorssCursor))chart.IsClickShowCorssCursor=option.IsClickShowCorssCursor;if(option.IsShowBeforeData===true)chart.IsShowBeforeData=option.IsShowBeforeData;//分钟数据指标从第3个指标窗口设置
|
|
1221
1221
|
if(IFrameSplitOperator.IsNonEmptyArray(option.Windows)){var scriptData=new JSIndexScript();for(var i=0;i<option.Windows.length;++i){var index=2+i;var item=option.Windows[i];if(item.Script){chart.WindowIndex[index]=new ScriptIndex(item.Name,item.Script,item.Args,item);//脚本执行
|
|
1222
1222
|
}else if(item.API)//使用API挂接指标数据 API:{ Name:指标名字, Script:指标脚本可以为空, Args:参数可以为空, Url:指标执行地址 }
|
|
1223
1223
|
{var apiItem=item.API;chart.WindowIndex[index]=new APIScriptIndex(apiItem.Name,apiItem.Script,apiItem.Args,item);}else{var indexItem=JSIndexMap.Get(item.Index);if(indexItem){chart.WindowIndex[index]=indexItem.Create();//创建子窗口的指标
|
|
1224
1224
|
chart.CreateWindowIndex(index);}else{var indexInfo=scriptData.Get(item.Index);if(!indexInfo)continue;indexInfo.ID=item.Index;var args=indexInfo.Args;if(item.Args)args=item.Args;if(item.IsShortTitle)indexInfo.IsShortTitle=item.IsShortTitle;if(item.TitleFont)indexInfo.TitleFont=item.TitleFont;if(IFrameSplitOperator.IsBool(item.IsSync))indexInfo.IsSync=item.IsSync;chart.WindowIndex[index]=new ScriptIndex(indexInfo.Name,indexInfo.Script,args,indexInfo);//脚本执行
|
|
1225
|
-
if(item.StringFormat>0)chart.WindowIndex[index].StringFormat=item.StringFormat;if(item.FloatPrecision>=0)chart.WindowIndex[index].FloatPrecision=item.FloatPrecision;}}var frame=chart.Frame.SubFrame[index].Frame;if(IFrameSplitOperator.IsBool(item.Modify))frame.ModifyIndex=item.Modify;if(IFrameSplitOperator.IsBool(item.Change))frame.ChangeIndex=item.Change;if(IFrameSplitOperator.IsBool(item.Close))frame.CloseIndex=item.Close;if(IFrameSplitOperator.IsBool(item.Overlay))frame.OverlayIndex=item.Overlay;if(IFrameSplitOperator.IsBool(item.Export))frame.ExportData=item.Export;if(IFrameSplitOperator.IsBool(item.MaxMin))frame.MaxMinWindow=item.MaxMin;if(IFrameSplitOperator.IsBool(item.TitleWindow))frame.TitleWindow=item.TitleWindow;if(IFrameSplitOperator.IsNumber(item.YSplitType))chart.Frame.SubFrame[index].Frame.YSplitOperator.SplitType=item.YSplitType;if(!isNaN(item.TitleHeight))chart.Frame.SubFrame[index].Frame.ChartBorder.TitleHeight=item.TitleHeight;if(IFrameSplitOperator.IsBool(item.IsDrawTitleBG))chart.Frame.SubFrame[index].Frame.IsDrawTitleBG=item.IsDrawTitleBG;if(IFrameSplitOperator.IsBool(item.IsShowNameArrow))chart.Frame.SubFrame[index].Frame.IsShowNameArrow=item.IsShowNameArrow;if(IFrameSplitOperator.IsBool(item.IsShowTitleArrow))chart.Frame.SubFrame[index].Frame.IsShowTitleArrow=item.IsShowTitleArrow;if(item.IsShowIndexName==false)chart.Frame.SubFrame[index].Frame.IsShowIndexName=false;if(item.IsShowOverlayIndexName==false)chart.Frame.SubFrame[index].Frame.IsShowOverlayIndexName=false;if(!IFrameSplitOperator.IsUndefined(item.HorizontalReserved))frame.HorizontalReserved=item.HorizontalReserved;}}this.AdjustTitleHeight(chart);//叠加指标
|
|
1225
|
+
if(item.StringFormat>0)chart.WindowIndex[index].StringFormat=item.StringFormat;if(item.FloatPrecision>=0)chart.WindowIndex[index].FloatPrecision=item.FloatPrecision;}}var frame=chart.Frame.SubFrame[index].Frame;if(IFrameSplitOperator.IsBool(item.Modify))frame.ModifyIndex=item.Modify;if(IFrameSplitOperator.IsBool(item.Change))frame.ChangeIndex=item.Change;if(IFrameSplitOperator.IsBool(item.Close))frame.CloseIndex=item.Close;if(IFrameSplitOperator.IsBool(item.Overlay))frame.OverlayIndex=item.Overlay;if(IFrameSplitOperator.IsBool(item.Export))frame.ExportData=item.Export;if(IFrameSplitOperator.IsBool(item.MaxMin))frame.MaxMinWindow=item.MaxMin;if(IFrameSplitOperator.IsBool(item.TitleWindow))frame.TitleWindow=item.TitleWindow;if(IFrameSplitOperator.IsNumber(item.YSplitType))chart.Frame.SubFrame[index].Frame.YSplitOperator.SplitType=item.YSplitType;if(IFrameSplitOperator.IsNumber(item.FilterType))chart.Frame.SubFrame[index].Frame.YSplitOperator.FilterType=item.FilterType;if(!isNaN(item.TitleHeight))chart.Frame.SubFrame[index].Frame.ChartBorder.TitleHeight=item.TitleHeight;if(IFrameSplitOperator.IsBool(item.IsDrawTitleBG))chart.Frame.SubFrame[index].Frame.IsDrawTitleBG=item.IsDrawTitleBG;if(IFrameSplitOperator.IsBool(item.IsShowNameArrow))chart.Frame.SubFrame[index].Frame.IsShowNameArrow=item.IsShowNameArrow;if(IFrameSplitOperator.IsBool(item.IsShowTitleArrow))chart.Frame.SubFrame[index].Frame.IsShowTitleArrow=item.IsShowTitleArrow;if(item.IsShowIndexName==false)chart.Frame.SubFrame[index].Frame.IsShowIndexName=false;if(item.IsShowOverlayIndexName==false)chart.Frame.SubFrame[index].Frame.IsShowOverlayIndexName=false;if(!IFrameSplitOperator.IsUndefined(item.HorizontalReserved))frame.HorizontalReserved=item.HorizontalReserved;}}this.AdjustTitleHeight(chart);//叠加指标
|
|
1226
1226
|
if(IFrameSplitOperator.IsNonEmptyArray(option.OverlayIndex)){for(var i=0;i<option.OverlayIndex.length;++i){var item=option.OverlayIndex[i];if(item.Windows>=chart.Frame.SubFrame.length)continue;var itemString=(0,_stringify2.default)(item);var obj=JSON.parse(itemString);if(item.Index)obj.IndexName=item.Index;if(item.Windows>=0)obj.WindowIndex=item.Windows;chart.CreateOverlayWindowsIndex(obj);}}return chart;};this.CreateMinMinuteChartContainer=function(option){var chart=null;if(option.Type==="迷你分钟走势图横屏")chart=new MinuteChartHScreenContainer(this.CanvasElement);else chart=new MinuteChartContainer(this.CanvasElement);if(option.NetworkFilter)chart.NetworkFilter=option.NetworkFilter;var windowsCount=2;if(option.BeforeOpen)//集合竞价
|
|
1227
1227
|
{var item=option.BeforeOpen;if(IFrameSplitOperator.IsBool(item.IsShow))chart.IsShowBeforeData=item.IsShow;if(IFrameSplitOperator.IsNumber(item.Width))chart.ExtendWidth.Left=item.Width;if(IFrameSplitOperator.IsBool(item.IsShowMultiDay))chart.IsShowMultiDayBeforeData=item.IsShowMultiDay;if(IFrameSplitOperator.IsNumber(item.MulitiDayWidth))chart.MultiDayExtendWidth.Left=item.MulitiDayWidth;}if(option.AfterClose)//收盘集合竞价
|
|
1228
1228
|
{var item=option.AfterClose;if(IFrameSplitOperator.IsBool(item.IsShow))chart.IsShowAfterData=item.IsShow;if(IFrameSplitOperator.IsNumber(item.ShareVol))chart.ShareAfterVol=item.ShareVol;if(IFrameSplitOperator.IsNumber(item.Width))chart.ExtendWidth.Right=item.Width;if(IFrameSplitOperator.IsBool(item.IsShowMultiDay))chart.IsShowMultiDayAfterData=item.IsShowMultiDay;if(IFrameSplitOperator.IsNumber(item.MulitiDayWidth))chart.MultiDayExtendWidth.Right=item.MulitiDayWidth;}if(!option.Listener)option.Listener={KeyDown:false,Wheel:false};chart.Create(windowsCount,option.Listener);//创建子窗口
|
|
@@ -2216,7 +2216,7 @@ var leftExtendText=null;//左侧文字设置
|
|
|
2216
2216
|
if(IFrameSplitOperator.IsNonEmptyArray(this.YTextExtend)){leftExtendText=this.YTextExtend[0];rightExtendText=this.YTextExtend[1];}var yPrev=null;//上一个坐标y的值
|
|
2217
2217
|
var pixelRatio=GetDevicePixelRatio();var itemHeight=(border.BottomEx-border.TopEx)/this.HorizontalInfo.length;var aryMultiText=[];var rtPreRight,rtRight,rtLeft,rtPreLeft;var textBaseline=0;//0=上 1=中 2=下
|
|
2218
2218
|
for(var i=this.HorizontalInfo.length-1;i>=0;--i)//从上往下画分割线
|
|
2219
|
-
{var item=this.HorizontalInfo[i];var y=this.GetYFromData(item.Value);if(y!=null&&yPrev!=null&&Math.abs(y-yPrev)<this.MinYDistance)continue;//两个坐标在近了 就不画了
|
|
2219
|
+
{var item=this.HorizontalInfo[i];if(!IFrameSplitOperator.IsNumber(item.Value))continue;if(item.Value>this.HorizontalMax||item.Value<this.HorizontalMin)continue;var y=this.GetYFromData(item.Value);if(y!=null&&yPrev!=null&&Math.abs(y-yPrev)<this.MinYDistance)continue;//两个坐标在近了 就不画了
|
|
2220
2220
|
var yFixed=ToFixedPoint(y);//绘制刻度线
|
|
2221
2221
|
if(y!=bottom&&this.IsShowYLine){var bChangeLineWidth=false;if(IFrameSplitOperator.IsPlusNumber(item.LineWidth))//刻度线宽度
|
|
2222
2222
|
{this.Canvas.lineWidth=item.LineWidth*pixelRatio;bChangeLineWidth=true;}this.Canvas.strokeStyle=item.LineColor;if(item.LineType==2){this.Canvas.save();if(item.LineDash)this.Canvas.setLineDash(item.LineDash);else this.Canvas.setLineDash([5*pixelRatio,5*pixelRatio]);//虚线
|
|
@@ -4847,9 +4847,9 @@ this.GetKLineChartCallback;//获取K线图形
|
|
|
4847
4847
|
this.IntegerCoordinateSplit=function(data){var splitItem=this.FrameSplitData.Find(data.Interval);if(!splitItem)return false;if(data.Interval==splitItem.FixInterval)return true;var fixMax=data.Max,fixMin=data.Min;var maxValue=data.Max/splitItem.FixInterval;var minValue=data.Min/splitItem.FixInterval;//调整到整数倍数,不能整除的 +1
|
|
4848
4848
|
if(IFrameSplitOperator.IsFloat(maxValue))fixMax=parseInt((maxValue+0.5).toFixed(0))*splitItem.FixInterval;if(IFrameSplitOperator.IsFloat(minValue))fixMin=parseInt((minValue-0.5).toFixed(0))*splitItem.FixInterval;if(data.Min==0)fixMin=0;//最小值是0 不用调整了.
|
|
4849
4849
|
if(fixMin<0&&data.Min>0)fixMin=0;//都是正数的, 最小值最小调整为0
|
|
4850
|
-
var count=0;for(var i=fixMin;i-fixMax<0.00000001;i+=splitItem.FixInterval){++count;}data.Interval=splitItem.FixInterval;data.Max=fixMax;data.Min=fixMin;data.Count=count;return true;};this.Filter=function(aryInfo,keepZero){if(this.SplitCount<=0||aryInfo.length<=0||aryInfo.length<=this.SplitCount)return aryInfo;//分割线比预设的多, 过掉一些
|
|
4851
|
-
var filter=parseInt(aryInfo.length/this.SplitCount);if(filter<=1)filter=2;var data=[];for(var i=0;i<aryInfo.length;i+=filter){if(i+filter>=aryInfo.length&&i!=aryInfo.length-1)//最后一个数据放进去
|
|
4852
|
-
{data.push(aryInfo[aryInfo.length-1]);}else{data.push(aryInfo[i]);}}if(this.SplitCount==2&&data.length>2)//之显示第1个和最后一个刻度
|
|
4850
|
+
var count=0;for(var i=fixMin;i-fixMax<0.00000001;i+=splitItem.FixInterval){++count;}data.Interval=splitItem.FixInterval;data.Max=fixMax;data.Min=fixMin;data.Count=count;return true;};this.Filter=function(aryInfo,keepZero,filterType){if(this.SplitCount<=0||aryInfo.length<=0||aryInfo.length<=this.SplitCount)return aryInfo;//分割线比预设的多, 过掉一些
|
|
4851
|
+
var filter=parseInt(aryInfo.length/this.SplitCount);if(filter<=1)filter=2;var data=[];if(filterType==1){for(var i=0;i<aryInfo.length;i+=filter){data.push(aryInfo[i]);}}else{for(var i=0;i<aryInfo.length;i+=filter){if(i+filter>=aryInfo.length&&i!=aryInfo.length-1)//最后一个数据放进去
|
|
4852
|
+
{data.push(aryInfo[aryInfo.length-1]);}else{data.push(aryInfo[i]);}}}if(this.SplitCount==2&&data.length>2)//之显示第1个和最后一个刻度
|
|
4853
4853
|
{for(var i=1;i<data.length-1;++i){var item=data[i];item.Message[0]=null;item.Message[1]=null;}}if(keepZero)//如果不存在0轴,增加一个0轴,刻度信息部显示
|
|
4854
4854
|
{var bExsitZero=false;for(var i=0;i<data.length;++i){var item=data[i];if(Math.abs(item.Value)<0.00000001){bExsitZero=true;break;}}if(bExsitZero==false){var zeroCoordinate=new CoordinateInfo();zeroCoordinate.Value=0;zeroCoordinate.Message[0]=null;zeroCoordinate.Message[1]=null;data.push(zeroCoordinate);}}return data;};this.RemoveZero=function(aryInfo)//移除小数后面多余的0
|
|
4855
4855
|
{//所有的数字小数点后面都0,才会去掉
|
|
@@ -5030,6 +5030,7 @@ var count=0;for(var i=fixMin;i-fixMax<0.00000001;i+=splitItem.FixInterval){++cou
|
|
|
5030
5030
|
this.newMethod();delete this.newMethod;this.SplitCount=3;//刻度个数
|
|
5031
5031
|
this.FloatPrecision=2;//坐标小数位数(默认2)
|
|
5032
5032
|
this.FLOATPRECISION_RANGE=[1,0.1,0.01,0.001,0.0001];this.SplitType=0;//0=自动分割 1=固定分割 2=堆积图(0-100)
|
|
5033
|
+
this.FilterType=0;//自动分割过滤算法
|
|
5033
5034
|
this.DefaultSplitType=0;this.Custom=[];//[{Type:0}]; 定制刻度
|
|
5034
5035
|
this.DefaultYMaxMin;//{ Max:null, Min:null }; //指定最大,最小, Y轴范围必须比最大值大, 比最小值小
|
|
5035
5036
|
this.EnableRemoveZero=g_JSChartResource.Frame.EnableRemoveZero;this.LineType=null;//线段样式
|
|
@@ -5045,7 +5046,7 @@ this.IsEnableDragY=function(){return true;};this.Reset=function()//重置
|
|
|
5045
5046
|
coordinate.Message[1]=IFrameSplitOperator.FormatValueString(value,floatPrecision,this.LanguageID);}coordinate.Message[0]=coordinate.Message[1];if(this.IsShowLeftText==false)this.Frame.HorizontalInfo[i].Message[0]=null;if(this.IsShowRightText==false)this.Frame.HorizontalInfo[i].Message[1]=null;this.Frame.HorizontalInfo.push(coordinate);}}else{for(var i=0,value=splitData.Min;i<splitData.Count;++i,value+=splitData.Interval){var coordinate=new CoordinateInfo();this.Frame.HorizontalInfo[i]=coordinate;coordinate.Value=value;if(IFrameSplitOperator.IsNumber(this.LineType))coordinate.LineType=this.LineType;var text=this.FormatValueString(value);this.Frame.HorizontalInfo[i].Message[0]=this.Frame.HorizontalInfo[i].Message[1]=text;if(this.IsShowLeftText==false)this.Frame.HorizontalInfo[i].Message[0]=null;if(this.IsShowRightText==false)this.Frame.HorizontalInfo[i].Message[1]=null;//this.Frame.HorizontalInfo[i].Font="14px 微软雅黑";
|
|
5046
5047
|
//this.Frame.HorizontalInfo[i].TextColor="rgb(100,0,200)";
|
|
5047
5048
|
//this.Frame.HorizontalInfo[i].LineColor="rgb(220,220,220)";
|
|
5048
|
-
}}this.FilterIgnoreYValue();this.CustomCoordinate();if(this.SplitType!=1)this.Frame.HorizontalInfo=this.Filter(this.Frame.HorizontalInfo,splitData.Max>0&&splitData.Min<0);this.RightFrameSplitY();this.MainOverlayFrameSplitY();//主图Y轴绑定叠加Y轴坐标
|
|
5049
|
+
}}this.FilterIgnoreYValue();this.CustomCoordinate();if(this.SplitType!=1)this.Frame.HorizontalInfo=this.Filter(this.Frame.HorizontalInfo,splitData.Max>0&&splitData.Min<0,this.FilterType);this.RightFrameSplitY();this.MainOverlayFrameSplitY();//主图Y轴绑定叠加Y轴坐标
|
|
5049
5050
|
this.CallAcutionSplitY(this.SplitCount,splitData);if(this.EnableRemoveZero)this.RemoveZero(this.Frame.HorizontalInfo);this.DynamicMessageText();this.Frame.HorizontalMax=splitData.Max;this.Frame.HorizontalMin=splitData.Min;if(this.EnableZoomUpDown==true&&!this.FixedYMaxMin)this.FixedYMaxMin={Max:splitData.Max,Min:splitData.Min};this.ReservedHeight(splitData);//预留高度
|
|
5050
5051
|
if(this.GetEventCallback){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_SPLIT_YCOORDINATE);if(event&&event.Callback){var data={ID:this.Frame.Identify,Frame:this.Frame};if(this.OverlayIdentify)data.OverlayIdentify=this.OverlayIdentify;event.Callback(event,data,this);}}};this.FormatValueString=function(value){var text;if(this.StringFormat==1)//手机端格式 如果有万,亿单位了 去掉小数
|
|
5051
5052
|
{var floatPrecision=this.FloatPrecision;if(IFrameSplitOperator.IsNumber(value)&&Math.abs(value)>1000)floatPrecision=0;text=IFrameSplitOperator.FormatValueString(value,floatPrecision,this.LanguageID);}else if(this.StringFormat==2)//原始数据输出
|
|
@@ -5083,7 +5084,8 @@ this.OverlayChartPaint;this.SplitCount=7;this.Symbol;this.SplitType=0;//0=默认
|
|
|
5083
5084
|
this.DefaultSplitType=0;this.LimitPrice;//{Max: Min:} 涨跌停价
|
|
5084
5085
|
this.Custom;this.RightTextFormat=0;//右边刻度显示模式 0=百分比 1=价格
|
|
5085
5086
|
this.BeforeOpenData;this.IsBeforeData=false;this.AfterCloseData;this.IsAfterData=false;this.MultiDayBeforeOpenData;this.MultiDayAfterCloseData;this.DayOffset;this.AverageData;//均线
|
|
5086
|
-
this.DayCount=1;this.GlobalOption;this.HQChart;this.IsEnableDragY=function(){return false;};this.Operator=function(){this.Frame.HorizontalInfo=[];this.Frame.CustomHorizontalInfo=[];if(!this.Data)return;var range=this.GetMaxMin();if(this.Symbol&&MARKET_SUFFIX_NAME.IsUSA(this.Symbol.toUpperCase())){this.USASplit(range);}else if(this.SplitType==2){this.USASplit(range);}else{this.DefaultSplit(range);}this.CustomCoordinate();
|
|
5087
|
+
this.DayCount=1;this.GlobalOption;this.HQChart;this.IsEnableDragY=function(){return false;};this.Operator=function(){this.Frame.HorizontalInfo=[];this.Frame.CustomHorizontalInfo=[];if(!this.Data)return;var range=this.GetMaxMin();if(this.Symbol&&MARKET_SUFFIX_NAME.IsUSA(this.Symbol.toUpperCase())){this.USASplit(range);}else if(this.SplitType==2){this.USASplit(range);}else{this.DefaultSplit(range);}this.CustomCoordinate();this.ReservedHeight({Max:this.Frame.HorizontalMax,Min:this.Frame.HorizontalMin});//预留高度
|
|
5088
|
+
if(this.GetEventCallback){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_SPLIT_YCOORDINATE);if(event&&event.Callback){var data={ID:this.Frame.Identify,Frame:this.Frame};event.Callback(event,data,this);}}};this.CustomCoordinate=function()//自定义刻度
|
|
5087
5089
|
{var data=this.InvokeCustomYCoordinateCallback();if(data&&data.PreventDefault==true)return;if(!this.Custom)return;var defaultfloatPrecision=GetfloatPrecision(this.Symbol);for(var i in this.Custom){var item=this.Custom[i];if(item.Type==1)this.CustomFixedCoordinate(item);else if(item.Type==0){var latestItem=this.GetLatestPrice(defaultfloatPrecision,item);if(latestItem)this.Frame.CustomHorizontalInfo.push(latestItem);}}};this.GetLatestPrice=function(floatPrecision,option){if(!this.Data||!this.Data.Data)return null;if(this.Data.Data.length<=0)return null;var price=this.Data.Data[this.Data.Data.length-1];if(!IFrameSplitOperator.IsNumber(price)||!IFrameSplitOperator.IsNumber(this.YClose))return null;var info=new CoordinateInfo();info.Type=0;info.Value=price;info.TextColor=g_JSChartResource.FrameLatestPrice.TextColor;info.LineType=2;//虚线
|
|
5088
5090
|
var strPrice=price.toFixed(floatPrecision);if(option.DateTime=='HH:MM'){var latestItem=this.Frame.Data.Data[this.Frame.Data.Data.length-1];var strTime=IFrameSplitOperator.FormatTimeString(latestItem.Time,option.DateTime);var aryText=[{Text:strPrice},{Text:strTime}];if(option.Position=='left')info.Message[0]=aryText;else info.Message[1]=aryText;}else{if(option.Position=='left')info.Message[0]=strPrice;else info.Message[1]=strPrice;}if(price>this.YClose)info.LineColor=g_JSChartResource.FrameLatestPrice.UpBarColor;else if(price<this.YClose)info.LineColor=g_JSChartResource.FrameLatestPrice.DownBarColor;else info.LineColor=g_JSChartResource.FrameLatestPrice.UnchagneBarColor;if(IFrameSplitOperator.IsNumber(option.LineType))info.LineType=option.LineType;if(IFrameSplitOperator.IsPlusNumber(option.LineWidth))info.LineWidth=option.LineWidth;if(option.LineDash)info.LineDash=option.LineDash;if(option.IsShowLine==false)info.LineType=-1;if(option.PositionEx===1)info.ExtendData={Custom:{Position:1}};//强制画在内部
|
|
5089
5091
|
return info;};this.CustomFixedCoordinate=function(option)//固定坐标刻度
|
|
@@ -5623,6 +5625,7 @@ this.StringFormat=STRING_FORMAT_TYPE.DEFAULT;//字符串格式
|
|
|
5623
5625
|
this.FloatPrecision=2;//小数位数
|
|
5624
5626
|
this.IsShow=true;//是否显示
|
|
5625
5627
|
this.Callback;//绘制标题回调
|
|
5628
|
+
this.ExtendData;//扩展数据
|
|
5626
5629
|
}function DynamicChartTitlePainting(){this.newMethod=IChartTitlePainting;//派生
|
|
5627
5630
|
this.newMethod();delete this.newMethod;this.ClassName='DynamicChartTitlePainting';this.IsDynamic=true;this.Data=[];this.Explain;this.ColorIndex;//五彩K线名字 {Name:'名字'}
|
|
5628
5631
|
this.IsShowColorIndexTitle=true;this.IsShowUpDownArrow=true;//指标数据是否显示 上涨下跌箭头
|
|
@@ -5673,7 +5676,8 @@ var value=null;var preVaildItem=null;if(item.DataType=="StraightLine")//直线
|
|
|
5673
5676
|
}else{var index=Math.abs(this.CursorIndex);index=parseInt(index.toFixed(0));if(this.IsKLineFrame)index=this.CursorIndex;var dataIndex=item.Data.DataOffset+index;if(dataIndex>=item.Data.Data.length)dataIndex=item.Data.Data.length-1;if(dataIndex<0)return null;}if(item.DataType=="ChartMultiLine")//多线段数据
|
|
5674
5677
|
{aryText=this.ForamtMultiLineTitle(dataIndex,item);if(!aryText)return null;return{Text:null,ArrayText:aryText};}else if(item.DataType=="ChartMultiPoint"){aryText=this.ForamtMultiPointTitle(dataIndex,item);if(!aryText)return null;return{Text:null,ArrayText:aryText};}value=item.Data.Data[dataIndex];if(value==null&&item.ChartClassName=="ChartStepLine")//当前值无效,上一个值延续
|
|
5675
5678
|
{preVaildItem=this.GetPreVaildItem(item.Data.Data,dataIndex);if(!preVaildItem)return null;preText=this.FormatValue(preVaildItem.Item,item);if(item.Name){var dyValue=this.GetDynamicOutValue(item.Name,preText);if(dyValue)preText=dyValue;}valueText='--('+preText+')';return{Text:valueText,ArrayText:aryText};}if(value==null)return null;if(item.DataType=="HistoryData-Vol"){value=value.Vol;valueText=this.FormatValue(value,item);}else if(item.DataType=="MultiReport"){valueText=this.FormatMultiReport(value,item);}else if(item.DataType=="MULTI_POINT_LINE"){valueText=this.FromatMultiDataLine(value,item);if(!valueText)return null;}else if(item.DataType=="ChartStackedBar"){aryText=this.FromatStackedBarTitle(value,item);if(!aryText)return null;return{Text:null,ArrayText:aryText};}else if(g_ScriptIndexChartFactory.Has(item.DataType))//外部挂接
|
|
5676
|
-
{var find=g_ScriptIndexChartFactory.Get(item.DataType);if(find&&find.FormatTitleCallback)return find.FormatTitleCallback(value,item,dataIndex);}else{if(this.GetEventCallback){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_FORMAT_INDEX_OUT_TEXT);if(event){var data={Item:item,Index:titleIndex,Data:this.Data,FrameID:this.Frame.Identify,DataIndex:dataIndex,Value:value,Out:null};event.Callback(event,data,this);if(data.Out)return data.Out;}}
|
|
5679
|
+
{var find=g_ScriptIndexChartFactory.Get(item.DataType);if(find&&find.FormatTitleCallback)return find.FormatTitleCallback(value,item,dataIndex);}else{if(this.GetEventCallback){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_FORMAT_INDEX_OUT_TEXT);if(event){var data={Item:item,Index:titleIndex,Data:this.Data,FrameID:this.Frame.Identify,DataIndex:dataIndex,Value:value,Out:null};event.Callback(event,data,this);if(data.Out)return data.Out;}}if(item.DataType=="ChartBand")//默认不输出
|
|
5680
|
+
return null;var arrowSuper=null;//独立颜色
|
|
5677
5681
|
if(this.IsShowUpDownArrow){var preValue=null;if(dataIndex-1>=0)preValue=item.Data.Data[dataIndex-1];if(IFrameSplitOperator.IsNumber(preValue)){if(preValue>value)arrowSuper={Text:'↓',TextColor:this.UpDownArrowConfig.DownColor};else if(preValue<value)arrowSuper={Text:'↑',TextColor:this.UpDownArrowConfig.UpColor};else arrowSuper={Text:'→',TextColor:this.UpDownArrowConfig.UnchangeColor};}}valueText=this.FormatValue(value,item);if(item.Name){var dyValue=this.GetDynamicOutValue(item.Name,valueText);if(dyValue)valueText=dyValue;}if(arrowSuper){var outItem={Name:null,Text:valueText,Color:item.Color,TextEx:[arrowSuper]};if(item.Name){var text=item.Name;var dyTitle=this.GetDynamicOutName(item.Name);//动态标题
|
|
5678
5682
|
if(dyTitle)text=dyTitle;outItem.Name=text;}//outItem.BG='rgb(100,100,100)';
|
|
5679
5683
|
aryText=[outItem];valueText=null;}}}return{Text:valueText,ArrayText:aryText};};//绘制主图指标 rtText 返回画完以后的区域
|
|
@@ -9071,7 +9075,7 @@ function FuturesTimeData(){this.TIME_SPLIT=[//ID=0 9:00-10:15,10:31-11:30,13:31-
|
|
|
9071
9075
|
{Name:'9:00-10:15,10:31-11:30,13:31-15:00',Data:[//9:00-10:15,10:30-11:30,13:30-15:00
|
|
9072
9076
|
{Start:900,End:1015},{Start:1031,End:1130},{Start:1331,End:1500}],Coordinate:{Full://完整模式
|
|
9073
9077
|
[{Value:900,Text:'9:00'},{Value:930,Text:'9:30'},{Value:1000,Text:'10:00'},{Value:1030,Text:'10:30'},{Value:1100,Text:'11:00'},{Value:1330,Text:'13:30'},{Value:1400,Text:'14:00'},{Value:1430,Text:'14:30'},{Value:1500,Text:'15:00'}],Simple://简洁模式
|
|
9074
|
-
[{Value:900,Text:'9:00'},{Value:1000,Text:'10:00'},{Value:
|
|
9078
|
+
[{Value:900,Text:'9:00'},{Value:1000,Text:'10:00'},{Value:1100,Text:'11:00'},{Value:1400,Text:'14:00'},{Value:1500,Text:'15:00'}],Min://最小模式
|
|
9075
9079
|
[{Value:900,Text:'9:00'},{Value:1330,Text:'13:30'},{Value:1500,Text:'15:00'}]}},//ID=1 9:30-11:30,13:01-15:15
|
|
9076
9080
|
{Name:'9:30-11:30,13:01-15:15',Data:[{Start:930,End:1130},{Start:1301,End:1515}],Coordinate:{Full://完整模式
|
|
9077
9081
|
[{Value:930,Text:'9:30'},{Value:1000,Text:'10:00'},{Value:1030,Text:'10:30'},{Value:1100,Text:'11:00'},{Value:1300,Text:'13:00'},{Value:1330,Text:'13:30'},{Value:1400,Text:'14:00'},{Value:1430,Text:'14:30'},{Value:1515,Text:'15:15'}],Simple://简洁模式
|
|
@@ -9703,7 +9707,7 @@ for(;offset<data.length;++offset){if(data[offset]!=null&&!isNaN(data[offset]))br
|
|
|
9703
9707
|
SMA 移动平均
|
|
9704
9708
|
返回移动平均。
|
|
9705
9709
|
用法: SMA(X,N,M) X的N日移动平均,M为权重,如Y=(X*M+Y'*(N-M))/N
|
|
9706
|
-
*/this.SMA=function(data,n,m){var result=[];if(Array.isArray(n)){for(var i=0;i<n.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 lastSMA=null;var sma=null;for(var j=0;j<period;++j){var index=i-(period-j-1);var item=data[index];if(!this.IsNumber(item))continue;if(lastSMA==null){lastSMA=item;sma=item;}else{sma=(m*item+(period-m)*lastSMA)/period;lastSMA=sma;}}result[i]=sma;}}else{var i=
|
|
9710
|
+
*/this.SMA=function(data,n,m){var result=[];if(Array.isArray(n)){for(var i=0;i<n.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 lastSMA=null;var sma=null;for(var j=0;j<period;++j){var index=i-(period-j-1);var item=data[index];if(!this.IsNumber(item))continue;if(lastSMA==null){lastSMA=item;sma=item;}else{sma=(m*item+(period-m)*lastSMA)/period;lastSMA=sma;}}result[i]=sma;}}else{var i=n;var lastData=null;for(;i<data.length;++i){if(data[i]==null||isNaN(data[i]))continue;lastData=data[i];result[i]=lastData;//第一天的数据
|
|
9707
9711
|
break;}for(++i;i<data.length;++i){result[i]=(m*data[i]+(n-m)*lastData)/n;lastData=result[i];}}return result;};/*
|
|
9708
9712
|
求动态移动平均.
|
|
9709
9713
|
用法: DMA(X,A),求X的动态移动平均.
|
|
@@ -11443,7 +11447,7 @@ if(varItem.Draw.FixedPosition==="TOP")chartText.FixedPosition=1;else if(varItem.
|
|
|
11443
11447
|
this.SetChartIndexName(chartText);hqChart.ChartPaint.push(chartText);};//COLORSTICK
|
|
11444
11448
|
this.CreateMACD=function(hqChart,windowIndex,varItem,id){var chartMACD=new ChartMACD();chartMACD.Canvas=hqChart.Canvas;chartMACD.Identify=this.Guid;chartMACD.Name=varItem.Name;chartMACD.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chartMACD.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chartMACD.LineWidth=width;}var titleIndex=windowIndex+1;chartMACD.Data.Data=varItem.Data;var clrTitle=this.GetDefaultColor(id);if(varItem.Color)clrTitle=this.GetColor(varItem.Color);if(varItem.UpColor)chartMACD.UpColor=varItem.UpColor;if(varItem.DownColor)chartMACD.DownColor=varItem.DownColor;this.ReloadChartResource(hqChart,windowIndex,chartMACD);hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(chartMACD.Data,varItem.Name,clrTitle);this.SetChartIndexName(chartMACD);hqChart.ChartPaint.push(chartMACD);};this.CreatePointDot=function(hqChart,windowIndex,varItem,id,hisData){var pointDot=new ChartPointDot();pointDot.Canvas=hqChart.Canvas;pointDot.Name=varItem.Name;pointDot.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;pointDot.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(varItem.Color)pointDot.Color=this.GetColor(varItem.Color);else pointDot.Color=this.GetDefaultColor(id);if(varItem.Radius)pointDot.Radius=varItem.Radius;if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)pointDot.Radius=width;}if(IFrameSplitOperator.IsBool(varItem.UpDownDot)){pointDot.EnableUpDownColor=varItem.UpDownDot;pointDot.HistoryData=hisData;}var titleIndex=windowIndex+1;pointDot.Data.Data=varItem.Data;hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(pointDot.Data,varItem.Name,pointDot.Color);this.SetChartIndexName(pointDot);hqChart.ChartPaint.push(pointDot);};this.CreateStick=function(hqChart,windowIndex,varItem,id){var chart=new ChartStick();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;}var titleIndex=windowIndex+1;chart.Data.Data=varItem.Data;this.ReloadChartResource(hqChart,windowIndex,chart);hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateLineStick=function(hqChart,windowIndex,varItem,id){var chart=new ChartLineStick();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;}var titleIndex=windowIndex+1;chart.Data.Data=varItem.Data;hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);hqChart.ChartPaint.push(chart);};this.CreateStraightLine=function(hqChart,windowIndex,varItem,id){var line=new ChartLine();line.DrawType=1;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.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;if(varItem.Name=="DRAWLINE")hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(line.Data,null,line.Color);//hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(line.Data,varItem.Name,line.Color);
|
|
11445
11449
|
hqChart.ChartPaint.push(line);};this.CreateVolStick=function(hqChart,windowIndex,varItem,id,hisData){var chart=new ChartVolStick();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.KLineDrawType=hqChart.KLineDrawType;//设置K线显示类型
|
|
11446
|
-
chart.Identify=this.Guid;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.UpColor)chart.UpColor=varItem.UpColor;if(varItem.DownColor)chart.DownColor=varItem.DownColor;if(IFrameSplitOperator.IsNumber(varItem.StickType))chart.BarType=varItem.StickType;if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(IFrameSplitOperator.IsPlusNumber(width))chart.BarWidth=width;}var titleIndex=windowIndex+1;chart.Data.Data=varItem.Data;chart.HistoryData=hisData;this.ReloadChartResource(hqChart,windowIndex,chart);var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);hqChart.TitlePaint[titleIndex].Data[id]=titleData;this.SetTitleData(titleData,chart);this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateBand=function(hqChart,windowIndex,varItem,id){var chart=new ChartBand();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.FirstColor=varItem.Draw.Color[0];chart.SecondColor=varItem.Draw.Color[1];chart.Data.Data=varItem.Draw.DrawData;if(IFrameSplitOperator.IsBool(varItem.IsFirstDraw))chart.IsDrawFirst=varItem.IsFirstDraw;this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateFillRGN=function(hqChart,windowIndex,varItem,id){var chart=new ChartLineArea();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;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);hqChart.ChartPaint.push(chart);};this.CreateFillRGN2=function(hqChart,windowIndex,varItem,id){var chart=new ChartFillRGN();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;hqChart.ChartPaint.push(chart);};this.CreateFillBGRGN=function(hqChart,windowIndex,varItem,id){var chart=new ChartFillBGRGN();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;hqChart.ChartPaint.push(chart);};this.CreateFLOATRGN=function(hqChart,windowIndex,varItem,id){var chart=new ChartFLOATRGN();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;hqChart.ChartPaint.push(chart);};//创建K线图
|
|
11450
|
+
chart.Identify=this.Guid;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.UpColor)chart.UpColor=varItem.UpColor;if(varItem.DownColor)chart.DownColor=varItem.DownColor;if(IFrameSplitOperator.IsNumber(varItem.StickType))chart.BarType=varItem.StickType;if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(IFrameSplitOperator.IsPlusNumber(width))chart.BarWidth=width;}var titleIndex=windowIndex+1;chart.Data.Data=varItem.Data;chart.HistoryData=hisData;this.ReloadChartResource(hqChart,windowIndex,chart);var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);hqChart.TitlePaint[titleIndex].Data[id]=titleData;this.SetTitleData(titleData,chart);this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateBand=function(hqChart,windowIndex,varItem,id){var chart=new ChartBand();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.FirstColor=varItem.Draw.Color[0];chart.SecondColor=varItem.Draw.Color[1];chart.Data.Data=varItem.Draw.DrawData;if(IFrameSplitOperator.IsBool(varItem.IsFirstDraw))chart.IsDrawFirst=varItem.IsFirstDraw;var titleIndex=windowIndex+1;var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);titleData.DataType=chart.ClassName;titleData.ExtendData={Color:[chart.FirstColor,chart.SecondColor]};hqChart.TitlePaint[titleIndex].Data[id]=titleData;this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateFillRGN=function(hqChart,windowIndex,varItem,id){var chart=new ChartLineArea();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;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);hqChart.ChartPaint.push(chart);};this.CreateFillRGN2=function(hqChart,windowIndex,varItem,id){var chart=new ChartFillRGN();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;hqChart.ChartPaint.push(chart);};this.CreateFillBGRGN=function(hqChart,windowIndex,varItem,id){var chart=new ChartFillBGRGN();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;hqChart.ChartPaint.push(chart);};this.CreateFLOATRGN=function(hqChart,windowIndex,varItem,id){var chart=new ChartFLOATRGN();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;hqChart.ChartPaint.push(chart);};//创建K线图
|
|
11447
11451
|
this.CreateKLine=function(hqChart,windowIndex,varItem,id){var chart=new ChartKLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.Identify=this.Guid;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data.Data=varItem.Draw.DrawData;chart.IsShowMaxMinPrice=false;chart.IsShowKTooltip=false;if(IFrameSplitOperator.IsNumber(varItem.KLineType))chart.DrawType=varItem.KLineType;if(varItem.Color)//如果设置了颜色,使用外面设置的颜色
|
|
11448
11452
|
chart.UnchagneColor=chart.DownColor=chart.UpColor=this.GetColor(varItem.Color);this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateOverlayKLine=function(hqChart,windowIndex,varItem,id){var chart=null;if(hqChart.IsKLineContainer())chart=new ChartOverlayKLine();else if(hqChart.IsMinuteContainer())chart=new ChartOverlayMinutePriceLine();else return;chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.Identify=this.Guid;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);//如果设置了颜色,使用外面设置的颜色
|
|
11449
11453
|
else chart.Color=this.GetDefaultColor(id);chart.Data.Data=varItem.Draw.DrawData;chart.MainData=hqChart.ChartPaint[0].Data;//绑定K线
|
|
@@ -13203,7 +13207,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
|
|
|
13203
13207
|
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);};}/********************************************************************************
|
|
13204
13208
|
* 版本信息输出
|
|
13205
13209
|
*
|
|
13206
|
-
*/var HQCHART_VERSION="1.1.
|
|
13210
|
+
*/var HQCHART_VERSION="1.1.13477";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();//把给外界调用的方法暴露出来
|
|
13207
13211
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
13208
13212
|
// BaseIndex:BaseIndex,
|
|
13209
13213
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
|
@@ -3386,7 +3386,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
3386
3386
|
}
|
|
3387
3387
|
else
|
|
3388
3388
|
{
|
|
3389
|
-
var i=
|
|
3389
|
+
var i=n;
|
|
3390
3390
|
var lastData=null;
|
|
3391
3391
|
for(;i<data.length; ++i)
|
|
3392
3392
|
{
|
|
@@ -20812,6 +20812,12 @@ function ScriptIndex(name,script,args,option)
|
|
|
20812
20812
|
|
|
20813
20813
|
if (IFrameSplitOperator.IsBool(varItem.IsFirstDraw)) chart.IsDrawFirst=varItem.IsFirstDraw;
|
|
20814
20814
|
|
|
20815
|
+
var titleIndex=windowIndex+1;
|
|
20816
|
+
var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);
|
|
20817
|
+
titleData.DataType=chart.ClassName;
|
|
20818
|
+
titleData.ExtendData={ Color:[chart.FirstColor, chart.SecondColor] };
|
|
20819
|
+
hqChart.TitlePaint[titleIndex].Data[id]=titleData;
|
|
20820
|
+
|
|
20815
20821
|
this.SetChartIndexName(chart);
|
|
20816
20822
|
hqChart.ChartPaint.push(chart);
|
|
20817
20823
|
}
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -528,6 +528,8 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
528
528
|
chart.Frame.SubFrame[i].Frame.YSplitOperator.SplitType=item.SplitType;
|
|
529
529
|
chart.Frame.SubFrame[i].Frame.YSplitOperator.DefaultSplitType=item.SplitType;
|
|
530
530
|
}
|
|
531
|
+
if (IFrameSplitOperator.IsNumber(item.FilterType)) subFrame.YSplitOperator.FilterType=item.FilterType;
|
|
532
|
+
|
|
531
533
|
if (!isNaN(item.Height)) chart.Frame.SubFrame[i].Height = item.Height;
|
|
532
534
|
if (item.IsShowLeftText===false || item.IsShowLeftText===true)
|
|
533
535
|
{
|
|
@@ -1006,6 +1008,8 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
1006
1008
|
chart.Frame.SubFrame[i].Frame.YSplitOperator.SplitType=item.SplitType;
|
|
1007
1009
|
chart.Frame.SubFrame[i].Frame.YSplitOperator.DefaultSplitType=item.SplitType;
|
|
1008
1010
|
}
|
|
1011
|
+
if (IFrameSplitOperator.IsNumber(item.FilterType)) subFrame.YSplitOperator.FilterType=item.FilterType;
|
|
1012
|
+
|
|
1009
1013
|
if (item.IsShowLeftText==false)
|
|
1010
1014
|
{
|
|
1011
1015
|
chart.Frame.SubFrame[i].Frame.IsShowYText[0]=item.IsShowLeftText;
|
|
@@ -1035,6 +1039,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
1035
1039
|
if (IFrameSplitOperator.IsNumber(item.CloseBeforeButton)) chart.Frame.SubFrame[i].Frame.IsShowCloseButton=item.CloseBeforeButton;
|
|
1036
1040
|
|
|
1037
1041
|
if (item.ClientBGColor) subFrame.ClientBGColor=item.ClientBGColor;
|
|
1042
|
+
if (!IFrameSplitOperator.IsUndefined(item.HorizontalReserved)) subFrame.HorizontalReserved=item.HorizontalReserved;
|
|
1038
1043
|
}
|
|
1039
1044
|
|
|
1040
1045
|
chart.UpdateXShowText();
|
|
@@ -1151,6 +1156,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
1151
1156
|
if (IFrameSplitOperator.IsBool(item.TitleWindow)) frame.TitleWindow=item.TitleWindow;
|
|
1152
1157
|
|
|
1153
1158
|
if (IFrameSplitOperator.IsNumber(item.YSplitType)) chart.Frame.SubFrame[index].Frame.YSplitOperator.SplitType=item.YSplitType;
|
|
1159
|
+
if (IFrameSplitOperator.IsNumber(item.FilterType)) chart.Frame.SubFrame[index].Frame.YSplitOperator.FilterType=item.FilterType;
|
|
1154
1160
|
if (!isNaN(item.TitleHeight)) chart.Frame.SubFrame[index].Frame.ChartBorder.TitleHeight=item.TitleHeight;
|
|
1155
1161
|
if (IFrameSplitOperator.IsBool(item.IsDrawTitleBG)) chart.Frame.SubFrame[index].Frame.IsDrawTitleBG=item.IsDrawTitleBG;
|
|
1156
1162
|
if (IFrameSplitOperator.IsBool(item.IsShowNameArrow)) chart.Frame.SubFrame[index].Frame.IsShowNameArrow=item.IsShowNameArrow;
|
|
@@ -11021,6 +11027,9 @@ function AverageWidthFrame()
|
|
|
11021
11027
|
for(var i=this.HorizontalInfo.length-1; i>=0; --i) //从上往下画分割线
|
|
11022
11028
|
{
|
|
11023
11029
|
var item=this.HorizontalInfo[i];
|
|
11030
|
+
if (!IFrameSplitOperator.IsNumber(item.Value)) continue;
|
|
11031
|
+
if (item.Value>this.HorizontalMax || item.Value<this.HorizontalMin) continue;
|
|
11032
|
+
|
|
11024
11033
|
var y=this.GetYFromData(item.Value);
|
|
11025
11034
|
if (y!=null && yPrev!=null && Math.abs(y-yPrev)<this.MinYDistance) continue; //两个坐标在近了 就不画了
|
|
11026
11035
|
|
|
@@ -45594,7 +45603,7 @@ function IFrameSplitOperator()
|
|
|
45594
45603
|
return true;
|
|
45595
45604
|
}
|
|
45596
45605
|
|
|
45597
|
-
this.Filter
|
|
45606
|
+
this.Filter=function(aryInfo, keepZero, filterType)
|
|
45598
45607
|
{
|
|
45599
45608
|
if (this.SplitCount <= 0 || aryInfo.length <= 0 || aryInfo.length <= this.SplitCount) return aryInfo;
|
|
45600
45609
|
|
|
@@ -45602,17 +45611,28 @@ function IFrameSplitOperator()
|
|
|
45602
45611
|
var filter = parseInt(aryInfo.length / this.SplitCount);
|
|
45603
45612
|
if (filter <= 1) filter = 2;
|
|
45604
45613
|
var data = [];
|
|
45605
|
-
|
|
45614
|
+
if (filterType==1)
|
|
45606
45615
|
{
|
|
45607
|
-
|
|
45616
|
+
for (var i = 0; i < aryInfo.length; i += filter)
|
|
45608
45617
|
{
|
|
45609
|
-
data.push(aryInfo[
|
|
45618
|
+
data.push(aryInfo[i]);
|
|
45610
45619
|
}
|
|
45611
|
-
|
|
45620
|
+
}
|
|
45621
|
+
else
|
|
45622
|
+
{
|
|
45623
|
+
for (var i = 0; i < aryInfo.length; i += filter)
|
|
45612
45624
|
{
|
|
45613
|
-
|
|
45625
|
+
if (i + filter >= aryInfo.length && i != aryInfo.length - 1) //最后一个数据放进去
|
|
45626
|
+
{
|
|
45627
|
+
data.push(aryInfo[aryInfo.length - 1]);
|
|
45628
|
+
}
|
|
45629
|
+
else
|
|
45630
|
+
{
|
|
45631
|
+
data.push(aryInfo[i]);
|
|
45632
|
+
}
|
|
45614
45633
|
}
|
|
45615
45634
|
}
|
|
45635
|
+
|
|
45616
45636
|
|
|
45617
45637
|
if (this.SplitCount == 2 && data.length>2) //之显示第1个和最后一个刻度
|
|
45618
45638
|
{
|
|
@@ -45650,7 +45670,7 @@ function IFrameSplitOperator()
|
|
|
45650
45670
|
return data;
|
|
45651
45671
|
}
|
|
45652
45672
|
|
|
45653
|
-
this.RemoveZero
|
|
45673
|
+
this.RemoveZero=function(aryInfo) //移除小数后面多余的0
|
|
45654
45674
|
{
|
|
45655
45675
|
//所有的数字小数点后面都0,才会去掉
|
|
45656
45676
|
var isAllZero = [true, true, true, true];
|
|
@@ -47218,6 +47238,7 @@ function FrameSplitY()
|
|
|
47218
47238
|
this.FloatPrecision = 2; //坐标小数位数(默认2)
|
|
47219
47239
|
this.FLOATPRECISION_RANGE=[1,0.1,0.01,0.001,0.0001];
|
|
47220
47240
|
this.SplitType=0; //0=自动分割 1=固定分割 2=堆积图(0-100)
|
|
47241
|
+
this.FilterType=0; //自动分割过滤算法
|
|
47221
47242
|
this.DefaultSplitType=0;
|
|
47222
47243
|
this.Custom=[]; //[{Type:0}]; 定制刻度
|
|
47223
47244
|
this.DefaultYMaxMin; //{ Max:null, Min:null }; //指定最大,最小, Y轴范围必须比最大值大, 比最小值小
|
|
@@ -47409,7 +47430,8 @@ function FrameSplitY()
|
|
|
47409
47430
|
this.FilterIgnoreYValue();
|
|
47410
47431
|
|
|
47411
47432
|
this.CustomCoordinate();
|
|
47412
|
-
if (this.SplitType!=1)
|
|
47433
|
+
if (this.SplitType!=1)
|
|
47434
|
+
this.Frame.HorizontalInfo = this.Filter(this.Frame.HorizontalInfo,(splitData.Max>0 && splitData.Min<0), this.FilterType);
|
|
47413
47435
|
|
|
47414
47436
|
this.RightFrameSplitY();
|
|
47415
47437
|
this.MainOverlayFrameSplitY(); //主图Y轴绑定叠加Y轴坐标
|
|
@@ -48049,6 +48071,8 @@ function FrameSplitMinutePriceY()
|
|
|
48049
48071
|
|
|
48050
48072
|
this.CustomCoordinate();
|
|
48051
48073
|
|
|
48074
|
+
this.ReservedHeight({ Max:this.Frame.HorizontalMax, Min:this.Frame.HorizontalMin }); //预留高度
|
|
48075
|
+
|
|
48052
48076
|
if (this.GetEventCallback)
|
|
48053
48077
|
{
|
|
48054
48078
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_SPLIT_YCOORDINATE);
|
|
@@ -53089,6 +53113,7 @@ function DynamicTitleData(data,name,color)
|
|
|
53089
53113
|
this.FloatPrecision=2; //小数位数
|
|
53090
53114
|
this.IsShow=true; //是否显示
|
|
53091
53115
|
this.Callback; //绘制标题回调
|
|
53116
|
+
this.ExtendData; //扩展数据
|
|
53092
53117
|
}
|
|
53093
53118
|
|
|
53094
53119
|
function DynamicChartTitlePainting()
|
|
@@ -53845,6 +53870,10 @@ function DynamicChartTitlePainting()
|
|
|
53845
53870
|
if (data.Out) return data.Out;
|
|
53846
53871
|
}
|
|
53847
53872
|
}
|
|
53873
|
+
|
|
53874
|
+
if (item.DataType=="ChartBand") //默认不输出
|
|
53875
|
+
return null;
|
|
53876
|
+
|
|
53848
53877
|
|
|
53849
53878
|
var arrowSuper=null; //独立颜色
|
|
53850
53879
|
|
|
@@ -90651,8 +90680,8 @@ function FuturesTimeData()
|
|
|
90651
90680
|
[
|
|
90652
90681
|
{ Value: 900, Text: '9:00' },
|
|
90653
90682
|
{ Value: 1000, Text: '10:00' },
|
|
90654
|
-
{ Value:
|
|
90655
|
-
{ Value:
|
|
90683
|
+
{ Value: 1100, Text: '11:00' },
|
|
90684
|
+
{ Value: 1400, Text: '14:00' },
|
|
90656
90685
|
{ Value: 1500, Text: '15:00' },
|
|
90657
90686
|
],
|
|
90658
90687
|
Min: //最小模式
|
|
@@ -4453,6 +4453,8 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4453
4453
|
chart.Frame.SubFrame[i].Frame.YSplitOperator.SplitType=item.SplitType;
|
|
4454
4454
|
chart.Frame.SubFrame[i].Frame.YSplitOperator.DefaultSplitType=item.SplitType;
|
|
4455
4455
|
}
|
|
4456
|
+
if (IFrameSplitOperator.IsNumber(item.FilterType)) subFrame.YSplitOperator.FilterType=item.FilterType;
|
|
4457
|
+
|
|
4456
4458
|
if (!isNaN(item.Height)) chart.Frame.SubFrame[i].Height = item.Height;
|
|
4457
4459
|
if (item.IsShowLeftText===false || item.IsShowLeftText===true)
|
|
4458
4460
|
{
|
|
@@ -4931,6 +4933,8 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4931
4933
|
chart.Frame.SubFrame[i].Frame.YSplitOperator.SplitType=item.SplitType;
|
|
4932
4934
|
chart.Frame.SubFrame[i].Frame.YSplitOperator.DefaultSplitType=item.SplitType;
|
|
4933
4935
|
}
|
|
4936
|
+
if (IFrameSplitOperator.IsNumber(item.FilterType)) subFrame.YSplitOperator.FilterType=item.FilterType;
|
|
4937
|
+
|
|
4934
4938
|
if (item.IsShowLeftText==false)
|
|
4935
4939
|
{
|
|
4936
4940
|
chart.Frame.SubFrame[i].Frame.IsShowYText[0]=item.IsShowLeftText;
|
|
@@ -4960,6 +4964,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4960
4964
|
if (IFrameSplitOperator.IsNumber(item.CloseBeforeButton)) chart.Frame.SubFrame[i].Frame.IsShowCloseButton=item.CloseBeforeButton;
|
|
4961
4965
|
|
|
4962
4966
|
if (item.ClientBGColor) subFrame.ClientBGColor=item.ClientBGColor;
|
|
4967
|
+
if (!IFrameSplitOperator.IsUndefined(item.HorizontalReserved)) subFrame.HorizontalReserved=item.HorizontalReserved;
|
|
4963
4968
|
}
|
|
4964
4969
|
|
|
4965
4970
|
chart.UpdateXShowText();
|
|
@@ -5076,6 +5081,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
5076
5081
|
if (IFrameSplitOperator.IsBool(item.TitleWindow)) frame.TitleWindow=item.TitleWindow;
|
|
5077
5082
|
|
|
5078
5083
|
if (IFrameSplitOperator.IsNumber(item.YSplitType)) chart.Frame.SubFrame[index].Frame.YSplitOperator.SplitType=item.YSplitType;
|
|
5084
|
+
if (IFrameSplitOperator.IsNumber(item.FilterType)) chart.Frame.SubFrame[index].Frame.YSplitOperator.FilterType=item.FilterType;
|
|
5079
5085
|
if (!isNaN(item.TitleHeight)) chart.Frame.SubFrame[index].Frame.ChartBorder.TitleHeight=item.TitleHeight;
|
|
5080
5086
|
if (IFrameSplitOperator.IsBool(item.IsDrawTitleBG)) chart.Frame.SubFrame[index].Frame.IsDrawTitleBG=item.IsDrawTitleBG;
|
|
5081
5087
|
if (IFrameSplitOperator.IsBool(item.IsShowNameArrow)) chart.Frame.SubFrame[index].Frame.IsShowNameArrow=item.IsShowNameArrow;
|
|
@@ -14946,6 +14952,9 @@ function AverageWidthFrame()
|
|
|
14946
14952
|
for(var i=this.HorizontalInfo.length-1; i>=0; --i) //从上往下画分割线
|
|
14947
14953
|
{
|
|
14948
14954
|
var item=this.HorizontalInfo[i];
|
|
14955
|
+
if (!IFrameSplitOperator.IsNumber(item.Value)) continue;
|
|
14956
|
+
if (item.Value>this.HorizontalMax || item.Value<this.HorizontalMin) continue;
|
|
14957
|
+
|
|
14949
14958
|
var y=this.GetYFromData(item.Value);
|
|
14950
14959
|
if (y!=null && yPrev!=null && Math.abs(y-yPrev)<this.MinYDistance) continue; //两个坐标在近了 就不画了
|
|
14951
14960
|
|
|
@@ -49519,7 +49528,7 @@ function IFrameSplitOperator()
|
|
|
49519
49528
|
return true;
|
|
49520
49529
|
}
|
|
49521
49530
|
|
|
49522
|
-
this.Filter
|
|
49531
|
+
this.Filter=function(aryInfo, keepZero, filterType)
|
|
49523
49532
|
{
|
|
49524
49533
|
if (this.SplitCount <= 0 || aryInfo.length <= 0 || aryInfo.length <= this.SplitCount) return aryInfo;
|
|
49525
49534
|
|
|
@@ -49527,17 +49536,28 @@ function IFrameSplitOperator()
|
|
|
49527
49536
|
var filter = parseInt(aryInfo.length / this.SplitCount);
|
|
49528
49537
|
if (filter <= 1) filter = 2;
|
|
49529
49538
|
var data = [];
|
|
49530
|
-
|
|
49539
|
+
if (filterType==1)
|
|
49531
49540
|
{
|
|
49532
|
-
|
|
49541
|
+
for (var i = 0; i < aryInfo.length; i += filter)
|
|
49533
49542
|
{
|
|
49534
|
-
data.push(aryInfo[
|
|
49543
|
+
data.push(aryInfo[i]);
|
|
49535
49544
|
}
|
|
49536
|
-
|
|
49545
|
+
}
|
|
49546
|
+
else
|
|
49547
|
+
{
|
|
49548
|
+
for (var i = 0; i < aryInfo.length; i += filter)
|
|
49537
49549
|
{
|
|
49538
|
-
|
|
49550
|
+
if (i + filter >= aryInfo.length && i != aryInfo.length - 1) //最后一个数据放进去
|
|
49551
|
+
{
|
|
49552
|
+
data.push(aryInfo[aryInfo.length - 1]);
|
|
49553
|
+
}
|
|
49554
|
+
else
|
|
49555
|
+
{
|
|
49556
|
+
data.push(aryInfo[i]);
|
|
49557
|
+
}
|
|
49539
49558
|
}
|
|
49540
49559
|
}
|
|
49560
|
+
|
|
49541
49561
|
|
|
49542
49562
|
if (this.SplitCount == 2 && data.length>2) //之显示第1个和最后一个刻度
|
|
49543
49563
|
{
|
|
@@ -49575,7 +49595,7 @@ function IFrameSplitOperator()
|
|
|
49575
49595
|
return data;
|
|
49576
49596
|
}
|
|
49577
49597
|
|
|
49578
|
-
this.RemoveZero
|
|
49598
|
+
this.RemoveZero=function(aryInfo) //移除小数后面多余的0
|
|
49579
49599
|
{
|
|
49580
49600
|
//所有的数字小数点后面都0,才会去掉
|
|
49581
49601
|
var isAllZero = [true, true, true, true];
|
|
@@ -51143,6 +51163,7 @@ function FrameSplitY()
|
|
|
51143
51163
|
this.FloatPrecision = 2; //坐标小数位数(默认2)
|
|
51144
51164
|
this.FLOATPRECISION_RANGE=[1,0.1,0.01,0.001,0.0001];
|
|
51145
51165
|
this.SplitType=0; //0=自动分割 1=固定分割 2=堆积图(0-100)
|
|
51166
|
+
this.FilterType=0; //自动分割过滤算法
|
|
51146
51167
|
this.DefaultSplitType=0;
|
|
51147
51168
|
this.Custom=[]; //[{Type:0}]; 定制刻度
|
|
51148
51169
|
this.DefaultYMaxMin; //{ Max:null, Min:null }; //指定最大,最小, Y轴范围必须比最大值大, 比最小值小
|
|
@@ -51334,7 +51355,8 @@ function FrameSplitY()
|
|
|
51334
51355
|
this.FilterIgnoreYValue();
|
|
51335
51356
|
|
|
51336
51357
|
this.CustomCoordinate();
|
|
51337
|
-
if (this.SplitType!=1)
|
|
51358
|
+
if (this.SplitType!=1)
|
|
51359
|
+
this.Frame.HorizontalInfo = this.Filter(this.Frame.HorizontalInfo,(splitData.Max>0 && splitData.Min<0), this.FilterType);
|
|
51338
51360
|
|
|
51339
51361
|
this.RightFrameSplitY();
|
|
51340
51362
|
this.MainOverlayFrameSplitY(); //主图Y轴绑定叠加Y轴坐标
|
|
@@ -51974,6 +51996,8 @@ function FrameSplitMinutePriceY()
|
|
|
51974
51996
|
|
|
51975
51997
|
this.CustomCoordinate();
|
|
51976
51998
|
|
|
51999
|
+
this.ReservedHeight({ Max:this.Frame.HorizontalMax, Min:this.Frame.HorizontalMin }); //预留高度
|
|
52000
|
+
|
|
51977
52001
|
if (this.GetEventCallback)
|
|
51978
52002
|
{
|
|
51979
52003
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_SPLIT_YCOORDINATE);
|
|
@@ -57014,6 +57038,7 @@ function DynamicTitleData(data,name,color)
|
|
|
57014
57038
|
this.FloatPrecision=2; //小数位数
|
|
57015
57039
|
this.IsShow=true; //是否显示
|
|
57016
57040
|
this.Callback; //绘制标题回调
|
|
57041
|
+
this.ExtendData; //扩展数据
|
|
57017
57042
|
}
|
|
57018
57043
|
|
|
57019
57044
|
function DynamicChartTitlePainting()
|
|
@@ -57770,6 +57795,10 @@ function DynamicChartTitlePainting()
|
|
|
57770
57795
|
if (data.Out) return data.Out;
|
|
57771
57796
|
}
|
|
57772
57797
|
}
|
|
57798
|
+
|
|
57799
|
+
if (item.DataType=="ChartBand") //默认不输出
|
|
57800
|
+
return null;
|
|
57801
|
+
|
|
57773
57802
|
|
|
57774
57803
|
var arrowSuper=null; //独立颜色
|
|
57775
57804
|
|
|
@@ -94576,8 +94605,8 @@ function FuturesTimeData()
|
|
|
94576
94605
|
[
|
|
94577
94606
|
{ Value: 900, Text: '9:00' },
|
|
94578
94607
|
{ Value: 1000, Text: '10:00' },
|
|
94579
|
-
{ Value:
|
|
94580
|
-
{ Value:
|
|
94608
|
+
{ Value: 1100, Text: '11:00' },
|
|
94609
|
+
{ Value: 1400, Text: '14:00' },
|
|
94581
94610
|
{ Value: 1500, Text: '15:00' },
|
|
94582
94611
|
],
|
|
94583
94612
|
Min: //最小模式
|
|
@@ -100172,7 +100201,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
100172
100201
|
}
|
|
100173
100202
|
else
|
|
100174
100203
|
{
|
|
100175
|
-
var i=
|
|
100204
|
+
var i=n;
|
|
100176
100205
|
var lastData=null;
|
|
100177
100206
|
for(;i<data.length; ++i)
|
|
100178
100207
|
{
|
|
@@ -117598,6 +117627,12 @@ function ScriptIndex(name,script,args,option)
|
|
|
117598
117627
|
|
|
117599
117628
|
if (IFrameSplitOperator.IsBool(varItem.IsFirstDraw)) chart.IsDrawFirst=varItem.IsFirstDraw;
|
|
117600
117629
|
|
|
117630
|
+
var titleIndex=windowIndex+1;
|
|
117631
|
+
var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);
|
|
117632
|
+
titleData.DataType=chart.ClassName;
|
|
117633
|
+
titleData.ExtendData={ Color:[chart.FirstColor, chart.SecondColor] };
|
|
117634
|
+
hqChart.TitlePaint[titleIndex].Data[id]=titleData;
|
|
117635
|
+
|
|
117601
117636
|
this.SetChartIndexName(chart);
|
|
117602
117637
|
hqChart.ChartPaint.push(chart);
|
|
117603
117638
|
}
|
|
@@ -134312,7 +134347,7 @@ function ScrollBarBGChart()
|
|
|
134312
134347
|
|
|
134313
134348
|
|
|
134314
134349
|
|
|
134315
|
-
var HQCHART_VERSION="1.1.
|
|
134350
|
+
var HQCHART_VERSION="1.1.13477";
|
|
134316
134351
|
|
|
134317
134352
|
function PrintHQChartVersion()
|
|
134318
134353
|
{
|
|
@@ -4497,6 +4497,8 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4497
4497
|
chart.Frame.SubFrame[i].Frame.YSplitOperator.SplitType=item.SplitType;
|
|
4498
4498
|
chart.Frame.SubFrame[i].Frame.YSplitOperator.DefaultSplitType=item.SplitType;
|
|
4499
4499
|
}
|
|
4500
|
+
if (IFrameSplitOperator.IsNumber(item.FilterType)) subFrame.YSplitOperator.FilterType=item.FilterType;
|
|
4501
|
+
|
|
4500
4502
|
if (!isNaN(item.Height)) chart.Frame.SubFrame[i].Height = item.Height;
|
|
4501
4503
|
if (item.IsShowLeftText===false || item.IsShowLeftText===true)
|
|
4502
4504
|
{
|
|
@@ -4975,6 +4977,8 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4975
4977
|
chart.Frame.SubFrame[i].Frame.YSplitOperator.SplitType=item.SplitType;
|
|
4976
4978
|
chart.Frame.SubFrame[i].Frame.YSplitOperator.DefaultSplitType=item.SplitType;
|
|
4977
4979
|
}
|
|
4980
|
+
if (IFrameSplitOperator.IsNumber(item.FilterType)) subFrame.YSplitOperator.FilterType=item.FilterType;
|
|
4981
|
+
|
|
4978
4982
|
if (item.IsShowLeftText==false)
|
|
4979
4983
|
{
|
|
4980
4984
|
chart.Frame.SubFrame[i].Frame.IsShowYText[0]=item.IsShowLeftText;
|
|
@@ -5004,6 +5008,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
5004
5008
|
if (IFrameSplitOperator.IsNumber(item.CloseBeforeButton)) chart.Frame.SubFrame[i].Frame.IsShowCloseButton=item.CloseBeforeButton;
|
|
5005
5009
|
|
|
5006
5010
|
if (item.ClientBGColor) subFrame.ClientBGColor=item.ClientBGColor;
|
|
5011
|
+
if (!IFrameSplitOperator.IsUndefined(item.HorizontalReserved)) subFrame.HorizontalReserved=item.HorizontalReserved;
|
|
5007
5012
|
}
|
|
5008
5013
|
|
|
5009
5014
|
chart.UpdateXShowText();
|
|
@@ -5120,6 +5125,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
5120
5125
|
if (IFrameSplitOperator.IsBool(item.TitleWindow)) frame.TitleWindow=item.TitleWindow;
|
|
5121
5126
|
|
|
5122
5127
|
if (IFrameSplitOperator.IsNumber(item.YSplitType)) chart.Frame.SubFrame[index].Frame.YSplitOperator.SplitType=item.YSplitType;
|
|
5128
|
+
if (IFrameSplitOperator.IsNumber(item.FilterType)) chart.Frame.SubFrame[index].Frame.YSplitOperator.FilterType=item.FilterType;
|
|
5123
5129
|
if (!isNaN(item.TitleHeight)) chart.Frame.SubFrame[index].Frame.ChartBorder.TitleHeight=item.TitleHeight;
|
|
5124
5130
|
if (IFrameSplitOperator.IsBool(item.IsDrawTitleBG)) chart.Frame.SubFrame[index].Frame.IsDrawTitleBG=item.IsDrawTitleBG;
|
|
5125
5131
|
if (IFrameSplitOperator.IsBool(item.IsShowNameArrow)) chart.Frame.SubFrame[index].Frame.IsShowNameArrow=item.IsShowNameArrow;
|
|
@@ -14990,6 +14996,9 @@ function AverageWidthFrame()
|
|
|
14990
14996
|
for(var i=this.HorizontalInfo.length-1; i>=0; --i) //从上往下画分割线
|
|
14991
14997
|
{
|
|
14992
14998
|
var item=this.HorizontalInfo[i];
|
|
14999
|
+
if (!IFrameSplitOperator.IsNumber(item.Value)) continue;
|
|
15000
|
+
if (item.Value>this.HorizontalMax || item.Value<this.HorizontalMin) continue;
|
|
15001
|
+
|
|
14993
15002
|
var y=this.GetYFromData(item.Value);
|
|
14994
15003
|
if (y!=null && yPrev!=null && Math.abs(y-yPrev)<this.MinYDistance) continue; //两个坐标在近了 就不画了
|
|
14995
15004
|
|
|
@@ -49563,7 +49572,7 @@ function IFrameSplitOperator()
|
|
|
49563
49572
|
return true;
|
|
49564
49573
|
}
|
|
49565
49574
|
|
|
49566
|
-
this.Filter
|
|
49575
|
+
this.Filter=function(aryInfo, keepZero, filterType)
|
|
49567
49576
|
{
|
|
49568
49577
|
if (this.SplitCount <= 0 || aryInfo.length <= 0 || aryInfo.length <= this.SplitCount) return aryInfo;
|
|
49569
49578
|
|
|
@@ -49571,17 +49580,28 @@ function IFrameSplitOperator()
|
|
|
49571
49580
|
var filter = parseInt(aryInfo.length / this.SplitCount);
|
|
49572
49581
|
if (filter <= 1) filter = 2;
|
|
49573
49582
|
var data = [];
|
|
49574
|
-
|
|
49583
|
+
if (filterType==1)
|
|
49575
49584
|
{
|
|
49576
|
-
|
|
49585
|
+
for (var i = 0; i < aryInfo.length; i += filter)
|
|
49577
49586
|
{
|
|
49578
|
-
data.push(aryInfo[
|
|
49587
|
+
data.push(aryInfo[i]);
|
|
49579
49588
|
}
|
|
49580
|
-
|
|
49589
|
+
}
|
|
49590
|
+
else
|
|
49591
|
+
{
|
|
49592
|
+
for (var i = 0; i < aryInfo.length; i += filter)
|
|
49581
49593
|
{
|
|
49582
|
-
|
|
49594
|
+
if (i + filter >= aryInfo.length && i != aryInfo.length - 1) //最后一个数据放进去
|
|
49595
|
+
{
|
|
49596
|
+
data.push(aryInfo[aryInfo.length - 1]);
|
|
49597
|
+
}
|
|
49598
|
+
else
|
|
49599
|
+
{
|
|
49600
|
+
data.push(aryInfo[i]);
|
|
49601
|
+
}
|
|
49583
49602
|
}
|
|
49584
49603
|
}
|
|
49604
|
+
|
|
49585
49605
|
|
|
49586
49606
|
if (this.SplitCount == 2 && data.length>2) //之显示第1个和最后一个刻度
|
|
49587
49607
|
{
|
|
@@ -49619,7 +49639,7 @@ function IFrameSplitOperator()
|
|
|
49619
49639
|
return data;
|
|
49620
49640
|
}
|
|
49621
49641
|
|
|
49622
|
-
this.RemoveZero
|
|
49642
|
+
this.RemoveZero=function(aryInfo) //移除小数后面多余的0
|
|
49623
49643
|
{
|
|
49624
49644
|
//所有的数字小数点后面都0,才会去掉
|
|
49625
49645
|
var isAllZero = [true, true, true, true];
|
|
@@ -51187,6 +51207,7 @@ function FrameSplitY()
|
|
|
51187
51207
|
this.FloatPrecision = 2; //坐标小数位数(默认2)
|
|
51188
51208
|
this.FLOATPRECISION_RANGE=[1,0.1,0.01,0.001,0.0001];
|
|
51189
51209
|
this.SplitType=0; //0=自动分割 1=固定分割 2=堆积图(0-100)
|
|
51210
|
+
this.FilterType=0; //自动分割过滤算法
|
|
51190
51211
|
this.DefaultSplitType=0;
|
|
51191
51212
|
this.Custom=[]; //[{Type:0}]; 定制刻度
|
|
51192
51213
|
this.DefaultYMaxMin; //{ Max:null, Min:null }; //指定最大,最小, Y轴范围必须比最大值大, 比最小值小
|
|
@@ -51378,7 +51399,8 @@ function FrameSplitY()
|
|
|
51378
51399
|
this.FilterIgnoreYValue();
|
|
51379
51400
|
|
|
51380
51401
|
this.CustomCoordinate();
|
|
51381
|
-
if (this.SplitType!=1)
|
|
51402
|
+
if (this.SplitType!=1)
|
|
51403
|
+
this.Frame.HorizontalInfo = this.Filter(this.Frame.HorizontalInfo,(splitData.Max>0 && splitData.Min<0), this.FilterType);
|
|
51382
51404
|
|
|
51383
51405
|
this.RightFrameSplitY();
|
|
51384
51406
|
this.MainOverlayFrameSplitY(); //主图Y轴绑定叠加Y轴坐标
|
|
@@ -52018,6 +52040,8 @@ function FrameSplitMinutePriceY()
|
|
|
52018
52040
|
|
|
52019
52041
|
this.CustomCoordinate();
|
|
52020
52042
|
|
|
52043
|
+
this.ReservedHeight({ Max:this.Frame.HorizontalMax, Min:this.Frame.HorizontalMin }); //预留高度
|
|
52044
|
+
|
|
52021
52045
|
if (this.GetEventCallback)
|
|
52022
52046
|
{
|
|
52023
52047
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_SPLIT_YCOORDINATE);
|
|
@@ -57058,6 +57082,7 @@ function DynamicTitleData(data,name,color)
|
|
|
57058
57082
|
this.FloatPrecision=2; //小数位数
|
|
57059
57083
|
this.IsShow=true; //是否显示
|
|
57060
57084
|
this.Callback; //绘制标题回调
|
|
57085
|
+
this.ExtendData; //扩展数据
|
|
57061
57086
|
}
|
|
57062
57087
|
|
|
57063
57088
|
function DynamicChartTitlePainting()
|
|
@@ -57814,6 +57839,10 @@ function DynamicChartTitlePainting()
|
|
|
57814
57839
|
if (data.Out) return data.Out;
|
|
57815
57840
|
}
|
|
57816
57841
|
}
|
|
57842
|
+
|
|
57843
|
+
if (item.DataType=="ChartBand") //默认不输出
|
|
57844
|
+
return null;
|
|
57845
|
+
|
|
57817
57846
|
|
|
57818
57847
|
var arrowSuper=null; //独立颜色
|
|
57819
57848
|
|
|
@@ -94620,8 +94649,8 @@ function FuturesTimeData()
|
|
|
94620
94649
|
[
|
|
94621
94650
|
{ Value: 900, Text: '9:00' },
|
|
94622
94651
|
{ Value: 1000, Text: '10:00' },
|
|
94623
|
-
{ Value:
|
|
94624
|
-
{ Value:
|
|
94652
|
+
{ Value: 1100, Text: '11:00' },
|
|
94653
|
+
{ Value: 1400, Text: '14:00' },
|
|
94625
94654
|
{ Value: 1500, Text: '15:00' },
|
|
94626
94655
|
],
|
|
94627
94656
|
Min: //最小模式
|
|
@@ -100216,7 +100245,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
100216
100245
|
}
|
|
100217
100246
|
else
|
|
100218
100247
|
{
|
|
100219
|
-
var i=
|
|
100248
|
+
var i=n;
|
|
100220
100249
|
var lastData=null;
|
|
100221
100250
|
for(;i<data.length; ++i)
|
|
100222
100251
|
{
|
|
@@ -117642,6 +117671,12 @@ function ScriptIndex(name,script,args,option)
|
|
|
117642
117671
|
|
|
117643
117672
|
if (IFrameSplitOperator.IsBool(varItem.IsFirstDraw)) chart.IsDrawFirst=varItem.IsFirstDraw;
|
|
117644
117673
|
|
|
117674
|
+
var titleIndex=windowIndex+1;
|
|
117675
|
+
var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);
|
|
117676
|
+
titleData.DataType=chart.ClassName;
|
|
117677
|
+
titleData.ExtendData={ Color:[chart.FirstColor, chart.SecondColor] };
|
|
117678
|
+
hqChart.TitlePaint[titleIndex].Data[id]=titleData;
|
|
117679
|
+
|
|
117645
117680
|
this.SetChartIndexName(chart);
|
|
117646
117681
|
hqChart.ChartPaint.push(chart);
|
|
117647
117682
|
}
|
|
@@ -138253,7 +138288,7 @@ function HQChartScriptWorker()
|
|
|
138253
138288
|
|
|
138254
138289
|
|
|
138255
138290
|
|
|
138256
|
-
var HQCHART_VERSION="1.1.
|
|
138291
|
+
var HQCHART_VERSION="1.1.13477";
|
|
138257
138292
|
|
|
138258
138293
|
function PrintHQChartVersion()
|
|
138259
138294
|
{
|