hqchart 1.1.12928 → 1.1.12935
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 -16
- package/package.json +1 -1
- package/src/jscommon/umychart.complier.js +11 -13
- package/src/jscommon/umychart.index.data.js +24 -1
- package/src/jscommon/umychart.js +32 -70
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +67 -84
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +67 -84
package/lib/umychart.vue.js
CHANGED
|
@@ -50,7 +50,7 @@ JSNetwork.HttpReqeust=function(obj) //对请求进行封装
|
|
|
50
50
|
Condition: 限制条件 { Symbol:'Index'/'Stock'(只支持指数/股票),Period:[](支持的周期), Include:[](指定支持的股票,代码全部大写包括后缀, Message:"提示信息")}
|
|
51
51
|
OutName:动态输出变量名字 [{Name:原始变量名, DynamicName:动态名字格式}] 如 {Name:"MA1", DynamicName:"MA{M1}"};
|
|
52
52
|
SplitType: Y轴分割类型,
|
|
53
|
-
YAxis:{ FloatPrecision:小数位数, StringFormat
|
|
53
|
+
YAxis:{ FloatPrecision:小数位数, StringFormat:, EnableRemoveZero } //Y轴刻度输出格式
|
|
54
54
|
*///周期条件枚举
|
|
55
55
|
var CONDITION_PERIOD={MINUTE_ID:101,//分钟 走势图
|
|
56
56
|
MULTIDAY_MINUTE_ID:102,//多日分钟 走势图
|
|
@@ -66,7 +66,9 @@ this.Get=function(id){if(!this.DataMap.has(id))return null;return this.DataMap.g
|
|
|
66
66
|
['五彩K线-十字星',this.COLOR_KSTAR1],['五彩K线-早晨之星',this.COLOR_KSTAR2],['五彩K线-黄昏之星',this.COLOR_KSTAR3],['五彩K线-长十字',this.COLOR_SHI1],['五彩K线-身怀六甲',this.COLOR_K220],['五彩K线-三个白武士',this.COLOR_K300],['五彩K线-三只乌鸦',this.COLOR_K310],['五彩K线-光头阳线',this.COLOR_K380],['五彩K线-光脚阴线',this.COLOR_K390],['五彩K线-垂死十字',this.COLOR_K134],['五彩K线-早晨十字星',this.COLOR_K140],['五彩K线-黄昏十字星',this.COLOR_K150],['五彩K线-射击之星',this.COLOR_K160],['五彩K线-倒转锤头',this.COLOR_K165],['五彩K线-锤头',this.COLOR_K170],['五彩K线-吊颈',this.COLOR_K180],['五彩K线-穿头破脚',this.COLOR_K190],['五彩K线-出水芙蓉',this.COLOR_CSFR],['五彩K线-乌云盖顶',this.COLOR_WYGD],['五彩K线-曙光初现',this.COLOR_SGCJ],['五彩K线-十字胎',this.COLOR_SZTAI],['五彩K线-剑',this.COLOR_SWORD],['五彩K线-平顶',this.COLOR_PINGDING],['五彩K线-平底',this.COLOR_PINGDI],['五彩K线-大阳烛',this.COLOR_DAYANZHU],['五彩K线-大阴烛',this.COLOR_DAYINGZHU],['五彩K线-好友反攻',this.COLOR_HYFG],['五彩K线-跳空缺口',this.COLOR_TKQK],['五彩K线-双飞乌鸦',this.COLOR_SFWY],['五彩K线-上升三部曲',this.COLOR_SSSBQ],['五彩K线-下跌三部曲',this.COLOR_XDSBQ],['五彩K线-长下影',this.COLOR_CHXY],['五彩K线-长上影',this.COLOR_CHSY],['五彩K线-分离',this.COLOR_FENLI],//交易系统
|
|
67
67
|
['交易系统-BIAS',this.TRADE_BIAS],['交易系统-CCI',this.TRADE_CCI],['交易系统-DMI',this.TRADE_DMI],['交易系统-KD',this.TRADE_KD],['交易系统-BOLL',this.TRADE_BOLL],['交易系统-KDJ',this.TRADE_KDJ],['交易系统-MA',this.TRADE_MA],['交易系统-MACD',this.TRADE_MACD],['交易系统-MTM',this.TRADE_MTM],['交易系统-PSY',this.TRADE_PSY],['交易系统-ROC',this.TRADE_ROC],['交易系统-RSI',this.TRADE_RSI],['交易系统-VR',this.TRADE_VR],['交易系统-DPSJ',this.TRADE_DPSJ],['TEST',this.TEST]//测试用
|
|
68
68
|
]);}JSIndexScript.AddIndex=function(aryIndex)//添加自定义指标
|
|
69
|
-
{for(var i in aryIndex){g_CustomIndex.Add(aryIndex[i]);}}
|
|
69
|
+
{for(var i in aryIndex){g_CustomIndex.Add(aryIndex[i]);}};//修改指标属性
|
|
70
|
+
JSIndexScript.ModifyAttribute=function(indexInfo,attribute){if(!attribute)return;if(attribute.Args)indexInfo.Args=attribute.Args;//外部可以设置参数
|
|
71
|
+
if(IFrameSplitOperator.IsNumber(attribute.FloatPrecision))indexInfo.FloatPrecision=attribute.FloatPrecision;if(IFrameSplitOperator.IsNumber(attribute.StringFormat))indexInfo.StringFormat=attribute.StringFormat;if(IFrameSplitOperator.IsBool(attribute.IsSync))indexInfo.IsSync=attribute.IsSync;if(IFrameSplitOperator.IsBool(attribute.IsShortTitle))indexInfo.IsShortTitle=attribute.IsShortTitle;if(attribute.TitleFont)indexInfo.TitleFont=attribute.TitleFont;if(attribute.Lock)indexInfo.Lock=attribute.Lock;if(attribute.YAxis){var item=attribute.YAxis;if(!indexInfo.YAxis)indexInfo.YAxis={};if(IFrameSplitOperator.IsNumber(item.FloatPrecision))indexInfo.YAxis.FloatPrecision=item.FloatPrecision;if(IFrameSplitOperator.IsNumber(item.StringFormat))indexInfo.YAxis.StringFormat=item.StringFormat;if(IFrameSplitOperator.IsBool(item.EnableRemoveZero))indexInfo.YAxis.EnableRemoveZero=item.EnableRemoveZero;}};JSIndexScript.prototype.Get=function(id){var data=g_CustomIndex.Get(id);if(data)return data;var func=this.DataMap.get(id);if(func){var data=func();data.ID=id;return data;}return null;};JSIndexScript.prototype.Search=function(name){var result=[];var reg=new RegExp(name,'i');this.DataMap.forEach(function(value,key){if(key.indexOf('交易系统-')!=0&&key.indexOf('五彩K线-')!=0&&key.search(reg)>=0)result.push(key);});return result;};JSIndexScript.prototype.MA=function(){var data={Name:'MA',Description:'均线',IsMainIndex:true,StringFormat:2,Args:[{Name:'M1',Value:5},{Name:'M2',Value:10},{Name:'M3',Value:20}],OutName:[{Name:'MA1',DynamicName:"MA{M1}"},{Name:'MA2',DynamicName:"MA{M2}"},{Name:'MA3',DynamicName:"MA{M3}"}],Script://脚本
|
|
70
72
|
'MA1:MA(CLOSE,M1);\n\
|
|
71
73
|
MA2:MA(CLOSE,M2);\n\
|
|
72
74
|
MA3:MA(CLOSE,M3);'};return data;};JSIndexScript.prototype.MA4=function(){var data={Name:'MA',Description:'均线',IsMainIndex:true,StringFormat:2,Args:[{Name:'M1',Value:5},{Name:'M2',Value:10},{Name:'M3',Value:20},{Name:'M4',Value:60}],OutName:[{Name:'MA1',DynamicName:"MA{M1}"},{Name:'MA2',DynamicName:"MA{M2}"},{Name:'MA3',DynamicName:"MA{M3}"},{Name:'MA4',DynamicName:"MA{M4}"}],Script://脚本
|
|
@@ -1385,8 +1387,8 @@ var scriptData=new JSIndexScript();if(option.ColorIndex)//五彩K线
|
|
|
1385
1387
|
}}for(var i=0;i<option.Windows.length;++i){var item=option.Windows[i];if(item.Script){chart.WindowIndex[i]=new ScriptIndex(item.Name,item.Script,item.Args,item);//脚本执行
|
|
1386
1388
|
}else if(item.JsonData){chart.WindowIndex[i]=new JsonDataIndex(item.Name,item.Script,item.Args,item);//脚本执行
|
|
1387
1389
|
}else if(item.Local&&item.Local.Data){chart.WindowIndex[i]=new LocalJsonDataIndex(item.Local.Name,item.Local.Args,{JsonData:item.Local.Data});}else if(item.API)//使用API挂接指标数据 API:{ Name:指标名字, Script:指标脚本可以为空, Args:参数可以为空, Url:指标执行地址 }
|
|
1388
|
-
{var apiItem=item.API;chart.WindowIndex[i]=new APIScriptIndex(apiItem.Name,apiItem.Script,apiItem.Args,item);}else{var indexItem=JSIndexMap.Get(item.Index);if(indexItem){chart.WindowIndex[i]=indexItem.Create(item.Option);if(chart.WindowIndex[i].SetArgs)chart.WindowIndex[i].SetArgs(item.Args);chart.CreateWindowIndex(i);}else{var _indexInfo2=scriptData.Get(item.Index);if(!_indexInfo2)continue;
|
|
1389
|
-
if(item.StringFormat>0)chart.WindowIndex[i].StringFormat=item.StringFormat;if(item.FloatPrecision>=0)chart.WindowIndex[i].FloatPrecision=item.FloatPrecision;
|
|
1390
|
+
{var apiItem=item.API;chart.WindowIndex[i]=new APIScriptIndex(apiItem.Name,apiItem.Script,apiItem.Args,item);}else{var indexItem=JSIndexMap.Get(item.Index);if(indexItem){chart.WindowIndex[i]=indexItem.Create(item.Option);if(chart.WindowIndex[i].SetArgs)chart.WindowIndex[i].SetArgs(item.Args);chart.CreateWindowIndex(i);}else{var _indexInfo2=scriptData.Get(item.Index);if(!_indexInfo2)continue;JSIndexScript.ModifyAttribute(_indexInfo2,item);_indexInfo2.ID=item.Index;chart.WindowIndex[i]=new ScriptIndex(_indexInfo2.Name,_indexInfo2.Script,_indexInfo2.Args,_indexInfo2);//脚本执行
|
|
1391
|
+
if(item.StringFormat>0)chart.WindowIndex[i].StringFormat=item.StringFormat;if(item.FloatPrecision>=0)chart.WindowIndex[i].FloatPrecision=item.FloatPrecision;}}var frame=chart.Frame.SubFrame[i].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))chart.Frame.SubFrame[i].Frame.MaxMinWindow=item.MaxMin;if(IFrameSplitOperator.IsBool(item.TitleWindow))chart.Frame.SubFrame[i].Frame.TitleWindow=item.TitleWindow;if(item.IsDrawTitleBG==true)chart.Frame.SubFrame[i].Frame.IsDrawTitleBG=item.IsDrawTitleBG;if(IFrameSplitOperator.IsBool(item.IsShowNameArrow))chart.Frame.SubFrame[i].Frame.IsShowNameArrow=item.IsShowNameArrow;if(IFrameSplitOperator.IsNumber(item.TitleHeight))chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;else item.TitleHeight=chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;if(IFrameSplitOperator.IsBool(item.IsShowTitleArrow))chart.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;if(item.IsShowIndexName==false)chart.Frame.SubFrame[i].Frame.IsShowIndexName=false;if(item.IsShowOverlayIndexName==false)chart.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;if(IFrameSplitOperator.IsNumber(item.IndexParamSpace))chart.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;if(IFrameSplitOperator.IsNumber(item.IndexTitleSpace))chart.Frame.SubFrame[i].Frame.IndexTitleSpace=item.IndexTitleSpace;if(item.OverlayIndexType){if(IFrameSplitOperator.IsNumber(item.OverlayIndexType.Position))chart.Frame.SubFrame[i].Frame.OverlayIndexType.Position=item.OverlayIndexType.Position;if(IFrameSplitOperator.IsNumber(item.OverlayIndexType.LineSpace))chart.Frame.SubFrame[i].Frame.OverlayIndexType.LineSpace=item.OverlayIndexType.LineSpace;}}//叠加指标宽度
|
|
1390
1392
|
if(option.OverlayIndexFrameWidth>40)chart.Frame.FixedRightWidth.Overlay=option.OverlayIndexFrameWidth;//叠加指标
|
|
1391
1393
|
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);}}this.AdjustTitleHeight(chart);return chart;};//自定义指数历史K线图
|
|
1392
1394
|
this.CreateCustomKLineChartContainer=function(option){var chart=new CustomKLineChartContainer(this.CanvasElement);//创建改参数div
|
|
@@ -2075,7 +2077,7 @@ this.Frame.SetSizeChage(true);if(this.UpdateXShowText)this.UpdateXShowText();thi
|
|
|
2075
2077
|
this.Draw();return index;};//增加一个指标窗口
|
|
2076
2078
|
this.AddIndexWindow=function(indexName,option){//查找系统指标
|
|
2077
2079
|
var scriptData=new JSIndexScript();var indexInfo=scriptData.Get(indexName);if(!indexInfo)return;this.RemoveMinSizeWindows();//清空隐藏的指标
|
|
2078
|
-
var index=this.AddNewSubFrame(option);
|
|
2080
|
+
var index=this.AddNewSubFrame(option);JSIndexScript.ModifyAttribute(indexInfo,option);this.WindowIndex[index]=new ScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo);//脚本执行
|
|
2079
2081
|
if(this.ClassName=="MinuteChartContainer"||this.ClassName=="MinuteChartHScreenContainer")var bindData=this.SourceData;else var bindData=this.ChartPaint[0].Data;this.BindIndexData(index,bindData);//执行脚本
|
|
2080
2082
|
};this.AddAPIIndexWindow=function(indexData,option){if(!indexData.API)return;this.RemoveMinSizeWindows();//清空隐藏的指标
|
|
2081
2083
|
var index=this.AddNewSubFrame(option);//使用API挂接指标数据 API:{ Name:指标名字, Script:指标脚本可以为空, Args:参数可以为空, Url:指标执行地址 }
|
|
@@ -4994,7 +4996,7 @@ if(!pageInfo)return;if(!this.OverlayIndex)return;if(!IFrameSplitOperator.IsNonEm
|
|
|
4994
4996
|
info.IsLast=pageInfo.IsLast;//是否是最后一个数据
|
|
4995
4997
|
if(IFrameSplitOperator.IsNumber(option.LineType))info.LineType=option.LineType;info.Value=item.Value;var text=IFrameSplitOperator.FormatValueString(item.Value,floatPrecision,this.LanguageID);if(option.Position=='left')info.Message[0]=text;else info.Message[1]=text;if(!pageInfo.IsLast){var config={};if(!pageInfo.IsLast)config.EmptyBGColor=g_JSChartResource.FrameLatestPrice.EmptyBGColor;info.ExtendData={Custom:config};}if(event){var sendData={PreventDefault:false,Label:info,Data:item,IndexName:chart.IndexName,OverlayIdentify:this.OverlayIndex.Identify};event.Callback(event,sendData,this);if(sendData.PreventDefault)continue;}this.Frame.CustomHorizontalInfo.push(info);}}},//回调外部处理自定义Y轴刻度
|
|
4996
4998
|
this.InvokeCustomYCoordinateCallback=function(){if(!this.GetEventCallback)return null;var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CREATE_CUSTOM_Y_COORDINATE);if(!event||!event.Callback)return null;var data={ID:this.Frame.Identify,Frame:this.Frame,PreventDefault:false,Custom:this.Custom};if(this.OverlayIdentify)data.OverlayIdentify=this.OverlayIdentify;event.Callback(event,data,this);return data;};this.Reset=function()//重置
|
|
4997
|
-
{};}//字符串格式化 千分位分割
|
|
4999
|
+
{};this.SetOption=function(option){};}//字符串格式化 千分位分割
|
|
4998
5000
|
IFrameSplitOperator.FormatValueThousandsString=function(value,floatPrecision){if(value==null||isNaN(value)){if(floatPrecision>0){var nullText='-.';for(var i=0;i<floatPrecision;++i){nullText+='-';}return nullText;}return'--';}var result='';var num=value.toFixed(floatPrecision);if(floatPrecision>0){var numFloat=num.split('.')[1];var numM=num.split('.')[0];while(numM.length>3){result=','+numM.slice(-3)+result;numM=numM.slice(0,numM.length-3);}if(numM){result=numM+result+'.'+numFloat;}}else{while(num.length>3){result=','+num.slice(-3)+result;num=num.slice(0,num.length-3);}if(num){result=num+result;}}return result;};//数据输出格式化 floatPrecision=小数位数
|
|
4999
5001
|
IFrameSplitOperator.FormatValueString=function(value,floatPrecision,languageID){/*
|
|
5000
5002
|
if (value==null || isNaN(value))
|
|
@@ -5158,11 +5160,12 @@ this.FloatPrecision=2;//坐标小数位数(默认2)
|
|
|
5158
5160
|
this.FLOATPRECISION_RANGE=[1,0.1,0.01,0.001,0.0001];this.SplitType=0;//0=自动分割 1=固定分割 2=堆积图(0-100)
|
|
5159
5161
|
this.DefaultSplitType=0;this.Custom=[];//[{Type:0}]; 定制刻度
|
|
5160
5162
|
this.DefaultYMaxMin;//{ Max:null, Min:null }; //指定最大,最小, Y轴范围必须比最大值大, 比最小值小
|
|
5161
|
-
this.EnableRemoveZero=
|
|
5163
|
+
this.EnableRemoveZero=g_JSChartResource.Frame.EnableRemoveZero;this.LineType=null;//线段样式
|
|
5162
5164
|
this.IgnoreYValue=null;//在这个数组里的数字不显示在刻度上
|
|
5163
5165
|
this.FixedYMaxMin;//{ Max, Min} 固定Y轴最大最小值
|
|
5164
5166
|
this.EnableZoomUpDown=false;this.IsBeforeData=false;this.BeforeOpenData;this.IsAfterData=false;this.AfterCloseData;this.ShareAfterVol=0;this.MultiDayBeforeOpenData;this.MultiDayAfterCloseData;this.OverlayIdentify;this.HQChart;this.OverlayIndex;//叠加指标信息
|
|
5165
|
-
this.IsEnableDragY=function(){return true;};this.
|
|
5167
|
+
this.IsEnableDragY=function(){return true;};this.Reset=function()//重置
|
|
5168
|
+
{this.EnableRemoveZero=g_JSChartResource.Frame.EnableRemoveZero;this.StringFormat=g_JSChartResource.Frame.StringFormat;};this.SetOption=function(option){if(!option)return;if(IFrameSplitOperator.IsNumber(option.FloatPrecision))this.FloatPrecision=option.FloatPrecision;if(IFrameSplitOperator.IsNumber(option.StringFormat))this.StringFormat=option.StringFormat;if(IFrameSplitOperator.IsBool(option.EnableRemoveZero))this.EnableRemoveZero=option.EnableRemoveZero;};this.GetFloatPrecision=function(value,floatPrecision){if(value>this.FLOATPRECISION_RANGE[0])return floatPrecision;if(floatPrecision<0)return 2;for(;floatPrecision<this.FLOATPRECISION_RANGE.length;++floatPrecision){if(value>this.FLOATPRECISION_RANGE[floatPrecision])break;}return floatPrecision;};this.Operator=function(){var splitData={};splitData.Max=this.Frame.HorizontalMax;splitData.Min=this.Frame.HorizontalMin;if(this.Frame.YMaxMin)//原始的数据范围
|
|
5166
5169
|
{var item=this.Frame.YMaxMin;if(IFrameSplitOperator.IsNumber(item.Max)&&IFrameSplitOperator.IsNumber(item.Min)){splitData.Max=item.Max;splitData.Min=item.Min;}}if(splitData.Max==splitData.Min)//如果一样上下扩大下
|
|
5167
5170
|
{if(splitData.Max==0){splitData.Max=1;splitData.Min=-1;}else{splitData.Max+=splitData.Max*0.01;splitData.Min-=splitData.Min*0.01;}}var isFixedMaxMin=false;if(this.FixedYMaxMin&&IFrameSplitOperator.IsNumber(this.FixedYMaxMin.Max)&&IFrameSplitOperator.IsNumber(this.FixedYMaxMin.Min))isFixedMaxMin=true;if(isFixedMaxMin){splitData.Max=this.FixedYMaxMin.Max;splitData.Min=this.FixedYMaxMin.Min;}else if(this.DefaultYMaxMin)//指定最小的Y轴范围
|
|
5168
5171
|
{var range=this.DefaultYMaxMin;if(IFrameSplitOperator.IsNumber(range.Max)){if(splitData.Min>range.Max)splitData.Min=range.Max;else if(splitData.Max<range.Max)splitData.Max=range.Max;}if(IFrameSplitOperator.IsNumber(range.Min)){if(splitData.Max<range.Min)splitData.Max=range.Min;else if(splitData.Min>range.Min)splitData.Min=range.Min;}}if(this.Frame.YSpecificMaxMin){splitData.Count=this.Frame.YSpecificMaxMin.Count;splitData.Interval=(splitData.Max-splitData.Min)/(splitData.Count-1);}else if(this.SplitType==1||isFixedMaxMin){splitData.Count=this.SplitCount;splitData.Interval=(splitData.Max-splitData.Min)/(splitData.Count-1);}else if(this.SplitType==2){splitData.Max=100;splitData.Min=0;splitData.Count=this.SplitCount;splitData.Interval=(splitData.Max-splitData.Min)/(splitData.Count-1);}else{splitData.Count=this.SplitCount;splitData.Interval=(splitData.Max-splitData.Min)/(splitData.Count-1);this.IntegerCoordinateSplit(splitData);}this.Frame.HorizontalMax=splitData.Max;this.Frame.HorizontalMin=splitData.Min;this.Frame.HorizontalInfo=[];if(this.Frame.YSplitScale)//固定坐标
|
|
@@ -6518,7 +6521,8 @@ this.FrameSplitTextFont=14*GetDevicePixelRatio()+"px 微软雅黑";//坐标刻
|
|
|
6518
6521
|
this.FrameTitleBGColor="rgb(246,251,253)";//标题栏背景色
|
|
6519
6522
|
this.SelFrameBorderColor='rgb(130, 130, 130)';this.Frame={XBottomOffset:2*GetDevicePixelRatio(),//X轴文字向下偏移
|
|
6520
6523
|
YTopOffset:2*GetDevicePixelRatio(),//Y轴顶部文字向下偏移
|
|
6521
|
-
YTextPadding:[2,2]
|
|
6524
|
+
YTextPadding:[2,2],EnableRemoveZero:true,//移除小数点后面的0
|
|
6525
|
+
StringFormat:0};this.ToolbarButtonStyle=0;this.FrameLogo={TextColor:'rgb(178,34,34)',Font:"bold "+16*GetDevicePixelRatio()+"px 微软雅黑",Text:"*仅学习使用*",//不要修改声明, 任何修改声明产生的任何法律责任由修改者自行独立承担,与HQChart插件作者无关。
|
|
6522
6526
|
BGColor:"rgba(230,230,230, 0.5)"};//百分比坐标文字颜色
|
|
6523
6527
|
this.Frame.PercentageText={PriceColor:'rgb(117,125,129)',PercentageColor:"rgb(117,125,129)",SplitColor:"rgb(117,125,129)",Font:14*GetDevicePixelRatio()+"px 微软雅黑"};//对数坐标
|
|
6524
6528
|
this.FrameLogarithmic={OpenPriceFont:"bold "+14*GetDevicePixelRatio()+"px 微软雅黑",//开盘价刻度文字字体
|
|
@@ -7267,7 +7271,7 @@ this.ChangeIndex=function(windowIndex,indexName,option){if(option&&option.API)//
|
|
|
7267
7271
|
return this.ChangeAPIIndex(windowIndex,option);var indexItem=JSIndexMap.Get(indexName);if(!indexItem){//查找系统指标
|
|
7268
7272
|
var scriptData=new JSIndexScript();var indexInfo=scriptData.Get(indexName);if(!indexInfo)return;if(indexInfo.IsMainIndex){windowIndex=0;//主图指标只能在主图显示
|
|
7269
7273
|
}else{if(windowIndex==0)windowIndex=1;//幅图指标,不能再主图显示
|
|
7270
|
-
}
|
|
7274
|
+
}JSIndexScript.ModifyAttribute(indexInfo,option);return this.ChangeScriptIndex(windowIndex,indexInfo,option);}//主图指标
|
|
7271
7275
|
if(indexItem.IsMainIndex){if(windowIndex>0)windowIndex=0;//主图指标只能在主图显示
|
|
7272
7276
|
}else{if(windowIndex==0)windowIndex=1;//幅图指标,不能再主图显示
|
|
7273
7277
|
}var paint=new Array();//踢出当前窗口的指标画法
|
|
@@ -7295,8 +7299,7 @@ if(IFrameSplitOperator.IsBool(obj.IsShareY))frame.IsShareY=obj.IsShareY;if(IFram
|
|
|
7295
7299
|
frame.YSplitOperator=new FrameSplitY();frame.YSplitOperator.LanguageID=this.LanguageID;frame.YSplitOperator.FrameSplitData=this.FrameSplitData.get('double');frame.YSplitOperator.Frame=frame;frame.YSplitOperator.ChartBorder=frame.ChartBorder;frame.YSplitOperator.SplitCount=subFrame.Frame.YSplitOperator.SplitCount;frame.YSplitOperator.GetEventCallback=function(id){return _this21.GetEventCallback(id);};frame.YSplitOperator.GetKLineChartCallback=function(){return _this21.GetKLineChart();};frame.YSplitOperator.OverlayIndex=overlayFrame;frame.YSplitOperator.HQChart=this;frame.YSplitOperator.OverlayIdentify=overlayFrame.Identify;if(obj.Frame){var item=obj.Frame;if(item.Custom)frame.YSplitOperator.Custom=item.Custom;if(IFrameSplitOperator.IsBool(item.IsYDrawMainFrame))frame.IsYDrawMainFrame=item.IsYDrawMainFrame;//自定义刻度绘制在主图上
|
|
7296
7300
|
if(IFrameSplitOperator.IsBool(item.IsShowToolbar))frame.IsShowToolbar=item.IsShowToolbar;//是否显示工具栏
|
|
7297
7301
|
}overlayFrame.Frame=frame;if(apiItem){var apiIndex=new APIScriptIndex(apiItem.Name,apiItem.Script,apiItem.Args,obj,true);apiIndex.OverlayIndex={IsOverlay:true,Identify:overlayFrame.Identify,WindowIndex:windowIndex,Frame:overlayFrame};//叠加指标信息
|
|
7298
|
-
overlayFrame.Script=apiIndex;}else if(indexInfo){
|
|
7299
|
-
if(IFrameSplitOperator.IsNumber(obj.FloatPrecision))indexInfo.FloatPrecision=obj.FloatPrecision;if(IFrameSplitOperator.IsNumber(obj.StringFormat))indexInfo.StringFormat=obj.StringFormat;if(IFrameSplitOperator.IsBool(obj.IsSync))indexInfo.IsSync=obj.IsSync;if(obj.YAxis){if(!indexInfo.YAxis)indexInfo.YAxis={};if(IFrameSplitOperator.IsNumber(obj.YAxis.FloatPrecision))indexInfo.YAxis.FloatPrecision=obj.YAxis.FloatPrecision;if(IFrameSplitOperator.IsNumber(obj.YAxis.StringFormat))indexInfo.YAxis.StringFormat=obj.YAxis.StringFormat;if(IFrameSplitOperator.IsBool(obj.YAxis.EnableRemoveZero))indexInfo.YAxis.EnableRemoveZero=obj.YAxis.EnableRemoveZero;}var scriptIndex=new OverlayScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo);//脚本执行
|
|
7302
|
+
overlayFrame.Script=apiIndex;}else if(indexInfo){JSIndexScript.ModifyAttribute(indexInfo,obj);var scriptIndex=new OverlayScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo);//脚本执行
|
|
7300
7303
|
scriptIndex.OverlayIndex={IsOverlay:true,Identify:overlayFrame.Identify,WindowIndex:windowIndex,Frame:overlayFrame};//叠加指标信息
|
|
7301
7304
|
overlayFrame.Script=scriptIndex;}else{var scriptIndex=indexCustom.Create();scriptIndex.OverlayIndex={IsOverlay:true,Identify:overlayFrame.Identify,WindowIndex:windowIndex,Frame:overlayFrame};//叠加指标信息
|
|
7302
7305
|
scriptIndex.Create(this,windowIndex);overlayFrame.Script=scriptIndex;}var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CREATE_OVERLAY_FRAME);if(event&&event.Callback){var sendData={OverlayFrame:overlayFrame,WindowIndex:windowIndex,SubFrame:subFrame};event.Callback(event,sendData,this);}subFrame.OverlayIndex.push(overlayFrame);return overlayFrame;};this.DeleteOverlayWindowsIndex=function(identify)//删除叠加指标
|
|
@@ -7335,7 +7338,7 @@ for(var i=0;i<currentLength;++i){this.DeleteIndexPaint(i);var frame=this.Frame.S
|
|
|
7335
7338
|
{var subFrame=this.CreateSubFrameItem(i);this.Frame.SubFrame[i]=subFrame;var titlePaint=new DynamicChartTitlePainting();titlePaint.Frame=this.Frame.SubFrame[i].Frame;titlePaint.Canvas=this.Canvas;titlePaint.LanguageID=this.LanguageID;titlePaint.GetEventCallback=function(id){return _this23.GetEventCallback(id);};titlePaint.SelectedChart=this.SelectedChart;this.TitlePaint[i+1]=titlePaint;}}var systemScript=new JSIndexScript();for(var i=0;i<count;++i){var windowIndex=i;var item=option.Windows[i];var frameItem=null;if(option.Frame&&option.Frame.length>i)frameItem=option.Frame[i];var titleIndex=windowIndex+1;this.TitlePaint[titleIndex].Data=[];this.TitlePaint[titleIndex].Title=null;if(item.Script)//自定义指标脚本
|
|
7336
7339
|
{this.WindowIndex[i]=new ScriptIndex(item.Name,item.Script,item.Args,item);//脚本执行
|
|
7337
7340
|
}else if(item.API)//后台指标
|
|
7338
|
-
{var apiItem=item.API;this.WindowIndex[windowIndex]=new APIScriptIndex(apiItem.Name,apiItem.Script,apiItem.Args,item);}else{var indexID=item.Index;var indexItem=JSIndexMap.Get(indexID);if(indexItem){this.WindowIndex[i]=indexItem.Create();this.CreateWindowIndex(windowIndex);}else{var indexInfo=systemScript.Get(indexID);if(indexInfo){
|
|
7341
|
+
{var apiItem=item.API;this.WindowIndex[windowIndex]=new APIScriptIndex(apiItem.Name,apiItem.Script,apiItem.Args,item);}else{var indexID=item.Index;var indexItem=JSIndexMap.Get(indexID);if(indexItem){this.WindowIndex[i]=indexItem.Create();this.CreateWindowIndex(windowIndex);}else{var indexInfo=systemScript.Get(indexID);if(indexInfo){JSIndexScript.ModifyAttribute(indexInfo,item);this.WindowIndex[i]=new ScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo);//脚本执行
|
|
7339
7342
|
}}}this.SetSubFrameAttribute(this.Frame.SubFrame[i],item,frameItem);}//最后一个显示X轴坐标
|
|
7340
7343
|
for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i].Frame;if(i==this.Frame.SubFrame.length-1)item.XSplitOperator.ShowText=true;else item.XSplitOperator.ShowText=false;}if(!bRefreshData){var bindData=this.ChartPaint[0].Data;for(var i=0;i<count;++i)//请求指标
|
|
7341
7344
|
{this.BindIndexData(i,bindData);}this.UpdataDataoffset();//更新数据偏移
|
|
@@ -11491,7 +11494,7 @@ return true;}else if(this.InstructionType==1)//交易系统
|
|
|
11491
11494
|
return true;}};this.BindData=function(hqChart,windowIndex,hisData){if(windowIndex==0&&this.InstructionType){this.BindInstructionData(hqChart,windowIndex,hisData);return;}//清空主指标图形
|
|
11492
11495
|
hqChart.DeleteIndexPaint(windowIndex);if(windowIndex==0)hqChart.ShowKLine(true);if(this.OutVar==null||this.OutVar.length<0)return;//叠加一个K线背景
|
|
11493
11496
|
if(this.KLineType!=null){if(this.KLineType===0||this.KLineType===1||this.KLineType===2)this.CreateSelfKLine(hqChart,windowIndex,hisData);else if(this.KLineType===-1&&windowIndex==0)hqChart.ShowKLine(false);}if(windowIndex>=1&&hqChart.Frame){//Y轴刻度格式 默认跟标题栏一致
|
|
11494
|
-
var ySpliter=hqChart.Frame.SubFrame[windowIndex].Frame.YSplitOperator;
|
|
11497
|
+
var ySpliter=hqChart.Frame.SubFrame[windowIndex].Frame.YSplitOperator;if(ySpliter){ySpliter.Reset();ySpliter.FloatPrecision=this.FloatPrecision;if(this.YAxis)ySpliter.SetOption(this.YAxis);}if(this.YSpecificMaxMin)hqChart.Frame.SubFrame[windowIndex].Frame.YSpecificMaxMin=this.YSpecificMaxMin;//最大最小值
|
|
11495
11498
|
if(this.YSplitScale)hqChart.Frame.SubFrame[windowIndex].Frame.YSplitScale=this.YSplitScale;//固定刻度
|
|
11496
11499
|
}if(IFrameSplitOperator.IsNumber(this.YSplitType))hqChart.Frame.SubFrame[windowIndex].Frame.YSplitOperator.SplitType=this.YSplitType;/*
|
|
11497
11500
|
if (this.Name=='MA') //测试多线段
|
|
@@ -11542,7 +11545,7 @@ this.newMethod(name,script,args,option);delete this.newMethod;this.ClassName="Ov
|
|
|
11542
11545
|
this.OverlayIndex=null;// { IsOverlay:true, Identify:overlayFrame.Identify, WindowIndex:windowIndex, Frame:overlayFrame }
|
|
11543
11546
|
//显示指标不符合条件
|
|
11544
11547
|
this.ShowConditionError=function(param,msg){var hqChart=param.HQChart;var windowIndex=param.WindowIndex;var message='指标不支持当前品种或周期';if(msg)message=msg;var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;frame.ChartPaint=[];var chart=new ChartLine();chart.Canvas=hqChart.Canvas;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.NotSupportMessage=message;frame.ChartPaint.push(chart);hqChart.Draw();};this.BindData=function(hqChart,windowIndex,hisData){if(!this.OverlayIndex||this.OverlayIndex.IsOverlay!=true)return;this.OverlayIndex.Frame.ChartPaint=[];if(!IFrameSplitOperator.IsNonEmptyArray(this.OutVar))return;//修改Y轴分割方式
|
|
11545
|
-
var ySpliter=this.OverlayIndex.Frame.Frame.YSplitOperator;if(
|
|
11548
|
+
var ySpliter=this.OverlayIndex.Frame.Frame.YSplitOperator;if(ySpliter){ySpliter.Reset();ySpliter.FloatPrecision=this.FloatPrecision;if(IFrameSplitOperator.IsNumber(this.YSplitType))ySpliter.SplitType=this.YSplitType;if(this.YAxis)ySpliter.SetOption(this.YAxis);}//指标名字
|
|
11546
11549
|
var titleInfo={Data:[],Title:this.Name,Frame:this.OverlayIndex.Frame.Frame,Script:this};var indexParam='';for(var i in this.Arguments){var _item29=this.Arguments[i];if(indexParam.length>0)indexParam+=',';indexParam+=_item29.Value.toString();}if(indexParam.length>0)titleInfo.Title=this.Name+'('+indexParam+')';var titleIndex=windowIndex+1;var titlePaint=hqChart.TitlePaint[titleIndex];titlePaint.OverlayIndex.set(this.OverlayIndex.Identify,titleInfo);if(this.OutName&&this.OutName.length>0&&this.Arguments&&this.Arguments.length>0){titlePaint.SetDynamicTitle(this.OutName,this.Arguments,this.OverlayIndex.Identify);}this.OverlayIndex.Frame.Frame.Title=this.Name;//给子框架设置标题
|
|
11547
11550
|
if(hqChart.Frame.SubFrame[windowIndex]){var mainFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(mainFrame)this.OverlayIndex.Frame.Frame.XPointCount=mainFrame.XPointCount;//跟主窗口同步下页面显示数据个数
|
|
11548
11551
|
}for(var i=0;i<this.OutVar.length;++i){var _item30=this.OutVar[i];if(_item30.IsExData===true)continue;//扩展数据不显示图形
|
|
@@ -12803,7 +12806,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
|
|
|
12803
12806
|
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);};}/********************************************************************************
|
|
12804
12807
|
* 版本信息输出
|
|
12805
12808
|
*
|
|
12806
|
-
*/var HQCHART_VERSION="1.1.
|
|
12809
|
+
*/var HQCHART_VERSION="1.1.12934";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
|
|
12807
12810
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
12808
12811
|
// BaseIndex:BaseIndex,
|
|
12809
12812
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
|
@@ -21299,13 +21299,13 @@ function ScriptIndex(name,script,args,option)
|
|
|
21299
21299
|
{
|
|
21300
21300
|
//Y轴刻度格式 默认跟标题栏一致
|
|
21301
21301
|
var ySpliter=hqChart.Frame.SubFrame[windowIndex].Frame.YSplitOperator;
|
|
21302
|
-
ySpliter
|
|
21303
|
-
if (this.YAxis)
|
|
21302
|
+
if (ySpliter)
|
|
21304
21303
|
{
|
|
21305
|
-
|
|
21306
|
-
|
|
21304
|
+
ySpliter.Reset();
|
|
21305
|
+
ySpliter.FloatPrecision=this.FloatPrecision;
|
|
21306
|
+
if (this.YAxis) ySpliter.SetOption(this.YAxis);
|
|
21307
21307
|
}
|
|
21308
|
-
|
|
21308
|
+
|
|
21309
21309
|
if (this.YSpecificMaxMin) hqChart.Frame.SubFrame[windowIndex].Frame.YSpecificMaxMin=this.YSpecificMaxMin; //最大最小值
|
|
21310
21310
|
if (this.YSplitScale) hqChart.Frame.SubFrame[windowIndex].Frame.YSplitScale=this.YSplitScale; //固定刻度
|
|
21311
21311
|
}
|
|
@@ -21678,14 +21678,12 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
21678
21678
|
|
|
21679
21679
|
//修改Y轴分割方式
|
|
21680
21680
|
var ySpliter=this.OverlayIndex.Frame.Frame.YSplitOperator;
|
|
21681
|
-
if (
|
|
21682
|
-
|
|
21683
|
-
|
|
21684
|
-
|
|
21685
|
-
|
|
21686
|
-
if (
|
|
21687
|
-
if (IFrameSplitOperator.IsNumber(this.YAxis.StringFormat)) ySpliter.StringFormat=this.YAxis.StringFormat;
|
|
21688
|
-
if (IFrameSplitOperator.IsBool(this.YAxis.EnableRemoveZero)) ySpliter.EnableRemoveZero=this.YAxis.EnableRemoveZero;
|
|
21681
|
+
if (ySpliter)
|
|
21682
|
+
{
|
|
21683
|
+
ySpliter.Reset();
|
|
21684
|
+
ySpliter.FloatPrecision=this.FloatPrecision;
|
|
21685
|
+
if (IFrameSplitOperator.IsNumber(this.YSplitType)) ySpliter.SplitType=this.YSplitType;
|
|
21686
|
+
if (this.YAxis) ySpliter.SetOption(this.YAxis);
|
|
21689
21687
|
}
|
|
21690
21688
|
|
|
21691
21689
|
//指标名字
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
Condition: 限制条件 { Symbol:'Index'/'Stock'(只支持指数/股票),Period:[](支持的周期), Include:[](指定支持的股票,代码全部大写包括后缀, Message:"提示信息")}
|
|
27
27
|
OutName:动态输出变量名字 [{Name:原始变量名, DynamicName:动态名字格式}] 如 {Name:"MA1", DynamicName:"MA{M1}"};
|
|
28
28
|
SplitType: Y轴分割类型,
|
|
29
|
-
YAxis:{ FloatPrecision:小数位数, StringFormat
|
|
29
|
+
YAxis:{ FloatPrecision:小数位数, StringFormat:, EnableRemoveZero } //Y轴刻度输出格式
|
|
30
30
|
*/
|
|
31
31
|
|
|
32
32
|
//周期条件枚举
|
|
@@ -168,6 +168,29 @@ JSIndexScript.AddIndex=function(aryIndex) //添加自定义指标
|
|
|
168
168
|
}
|
|
169
169
|
}
|
|
170
170
|
|
|
171
|
+
//修改指标属性
|
|
172
|
+
JSIndexScript.ModifyAttribute=function(indexInfo, attribute)
|
|
173
|
+
{
|
|
174
|
+
if (!attribute) return;
|
|
175
|
+
|
|
176
|
+
if (attribute.Args) indexInfo.Args=attribute.Args; //外部可以设置参数
|
|
177
|
+
if (IFrameSplitOperator.IsNumber(attribute.FloatPrecision)) indexInfo.FloatPrecision=attribute.FloatPrecision;
|
|
178
|
+
if (IFrameSplitOperator.IsNumber(attribute.StringFormat)) indexInfo.StringFormat=attribute.StringFormat;
|
|
179
|
+
if (IFrameSplitOperator.IsBool(attribute.IsSync)) indexInfo.IsSync=attribute.IsSync;
|
|
180
|
+
if (IFrameSplitOperator.IsBool(attribute.IsShortTitle)) indexInfo.IsShortTitle=attribute.IsShortTitle;
|
|
181
|
+
if (attribute.TitleFont) indexInfo.TitleFont=attribute.TitleFont;
|
|
182
|
+
if (attribute.Lock) indexInfo.Lock=attribute.Lock;
|
|
183
|
+
|
|
184
|
+
if (attribute.YAxis)
|
|
185
|
+
{
|
|
186
|
+
var item=attribute.YAxis;
|
|
187
|
+
if (!indexInfo.YAxis) indexInfo.YAxis={ };
|
|
188
|
+
if (IFrameSplitOperator.IsNumber(item.FloatPrecision)) indexInfo.YAxis.FloatPrecision=item.FloatPrecision;
|
|
189
|
+
if (IFrameSplitOperator.IsNumber(item.StringFormat)) indexInfo.YAxis.StringFormat=item.StringFormat;
|
|
190
|
+
if (IFrameSplitOperator.IsBool(item.EnableRemoveZero)) indexInfo.YAxis.EnableRemoveZero=item.EnableRemoveZero;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
171
194
|
JSIndexScript.prototype.Get=function(id)
|
|
172
195
|
{
|
|
173
196
|
var data=g_CustomIndex.Get(id);
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -611,25 +611,12 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
611
611
|
{
|
|
612
612
|
let indexInfo = scriptData.Get(item.Index);
|
|
613
613
|
if (!indexInfo) continue;
|
|
614
|
-
|
|
615
|
-
if (item.Lock) indexInfo.Lock=item.Lock;
|
|
614
|
+
JSIndexScript.ModifyAttribute(indexInfo, item);
|
|
616
615
|
indexInfo.ID=item.Index;
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
if (item.IsShortTitle) indexInfo.IsShortTitle=item.IsShortTitle;
|
|
620
|
-
if (item.TitleFont) indexInfo.TitleFont=item.TitleFont;
|
|
621
|
-
if (IFrameSplitOperator.IsBool(item.IsSync)) indexInfo.IsSync=item.IsSync;
|
|
622
|
-
chart.WindowIndex[i] = new ScriptIndex(indexInfo.Name, indexInfo.Script, args,indexInfo); //脚本执行
|
|
616
|
+
|
|
617
|
+
chart.WindowIndex[i] = new ScriptIndex(indexInfo.Name, indexInfo.Script, indexInfo.Args,indexInfo); //脚本执行
|
|
623
618
|
if (item.StringFormat>0) chart.WindowIndex[i].StringFormat=item.StringFormat;
|
|
624
619
|
if (item.FloatPrecision>=0) chart.WindowIndex[i].FloatPrecision=item.FloatPrecision;
|
|
625
|
-
|
|
626
|
-
if (item.YAxis)
|
|
627
|
-
{
|
|
628
|
-
if (!indexInfo.YAxis) indexInfo.YAxis={ };
|
|
629
|
-
if (IFrameSplitOperator.IsNumber(item.YAxis.FloatPrecision)) indexInfo.YAxis.FloatPrecision=item.YAxis.FloatPrecision;
|
|
630
|
-
if (IFrameSplitOperator.IsNumber(item.YAxis.StringFormat)) indexInfo.YAxis.StringFormat=item.YAxis.StringFormat;
|
|
631
|
-
if (IFrameSplitOperator.IsBool(item.YAxis.EnableRemoveZero)) indexInfo.YAxis.EnableRemoveZero=item.YAxis.EnableRemoveZero;
|
|
632
|
-
}
|
|
633
620
|
}
|
|
634
621
|
|
|
635
622
|
}
|
|
@@ -8117,20 +8104,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
8117
8104
|
this.RemoveMinSizeWindows(); //清空隐藏的指标
|
|
8118
8105
|
var index=this.AddNewSubFrame(option);
|
|
8119
8106
|
|
|
8120
|
-
|
|
8121
|
-
{
|
|
8122
|
-
if (option.FloatPrecision>=0) indexInfo.FloatPrecision=option.FloatPrecision;
|
|
8123
|
-
if (option.StringFormat>0) indexInfo.StringFormat=option.StringFormat;
|
|
8124
|
-
if (option.Args) indexInfo.Args=option.Args;
|
|
8125
|
-
if (option.Lock) indexInfo.Lock=option.Lock;
|
|
8126
|
-
if (option.YAxis)
|
|
8127
|
-
{
|
|
8128
|
-
indexInfo.YAxis={ };
|
|
8129
|
-
if (IFrameSplitOperator.IsNumber(option.YAxis.FloatPrecision)) indexInfo.YAxis.FloatPrecision=option.YAxis.FloatPrecision;
|
|
8130
|
-
if (IFrameSplitOperator.IsNumber(option.YAxis.StringFormat)) indexInfo.YAxis.StringFormat=option.YAxis.StringFormat;
|
|
8131
|
-
if (IFrameSplitOperator.IsBool(option.YAxis.EnableRemoveZero)) indexInfo.YAxis.EnableRemoveZero=option.YAxis.EnableRemoveZero;
|
|
8132
|
-
}
|
|
8133
|
-
}
|
|
8107
|
+
JSIndexScript.ModifyAttribute(indexInfo, option);
|
|
8134
8108
|
|
|
8135
8109
|
this.WindowIndex[index] = new ScriptIndex(indexInfo.Name, indexInfo.Script, indexInfo.Args,indexInfo); //脚本执行
|
|
8136
8110
|
if (this.ClassName=="MinuteChartContainer" || this.ClassName=="MinuteChartHScreenContainer")
|
|
@@ -43130,6 +43104,8 @@ function IFrameSplitOperator()
|
|
|
43130
43104
|
{
|
|
43131
43105
|
|
|
43132
43106
|
}
|
|
43107
|
+
|
|
43108
|
+
this.SetOption=function(option) { }
|
|
43133
43109
|
}
|
|
43134
43110
|
|
|
43135
43111
|
//字符串格式化 千分位分割
|
|
@@ -44396,7 +44372,7 @@ function FrameSplitY()
|
|
|
44396
44372
|
this.DefaultSplitType=0;
|
|
44397
44373
|
this.Custom=[]; //[{Type:0}]; 定制刻度
|
|
44398
44374
|
this.DefaultYMaxMin; //{ Max:null, Min:null }; //指定最大,最小, Y轴范围必须比最大值大, 比最小值小
|
|
44399
|
-
this.EnableRemoveZero=
|
|
44375
|
+
this.EnableRemoveZero=g_JSChartResource.Frame.EnableRemoveZero;
|
|
44400
44376
|
this.LineType=null; //线段样式
|
|
44401
44377
|
this.IgnoreYValue = null; //在这个数组里的数字不显示在刻度上
|
|
44402
44378
|
this.FixedYMaxMin; //{ Max, Min} 固定Y轴最大最小值
|
|
@@ -44421,6 +44397,22 @@ function FrameSplitY()
|
|
|
44421
44397
|
return true;
|
|
44422
44398
|
}
|
|
44423
44399
|
|
|
44400
|
+
|
|
44401
|
+
this.Reset=function() //重置
|
|
44402
|
+
{
|
|
44403
|
+
this.EnableRemoveZero=g_JSChartResource.Frame.EnableRemoveZero;
|
|
44404
|
+
this.StringFormat=g_JSChartResource.Frame.StringFormat;
|
|
44405
|
+
}
|
|
44406
|
+
|
|
44407
|
+
this.SetOption=function(option)
|
|
44408
|
+
{
|
|
44409
|
+
if (!option) return;
|
|
44410
|
+
|
|
44411
|
+
if (IFrameSplitOperator.IsNumber(option.FloatPrecision)) this.FloatPrecision=option.FloatPrecision;
|
|
44412
|
+
if (IFrameSplitOperator.IsNumber(option.StringFormat)) this.StringFormat=option.StringFormat;
|
|
44413
|
+
if (IFrameSplitOperator.IsBool(option.EnableRemoveZero)) this.EnableRemoveZero=option.EnableRemoveZero;
|
|
44414
|
+
}
|
|
44415
|
+
|
|
44424
44416
|
this.GetFloatPrecision=function(value,floatPrecision)
|
|
44425
44417
|
{
|
|
44426
44418
|
if (value>this.FLOATPRECISION_RANGE[0]) return floatPrecision;
|
|
@@ -61832,7 +61824,9 @@ function JSChartResource()
|
|
|
61832
61824
|
this.Frame={
|
|
61833
61825
|
XBottomOffset:2*GetDevicePixelRatio(), //X轴文字向下偏移
|
|
61834
61826
|
YTopOffset:2*GetDevicePixelRatio(), //Y轴顶部文字向下偏移
|
|
61835
|
-
YTextPadding:[2,2]
|
|
61827
|
+
YTextPadding:[2,2],
|
|
61828
|
+
EnableRemoveZero:true, //移除小数点后面的0
|
|
61829
|
+
StringFormat:0
|
|
61836
61830
|
};
|
|
61837
61831
|
this.ToolbarButtonStyle=0;
|
|
61838
61832
|
|
|
@@ -67861,18 +67855,9 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
67861
67855
|
{
|
|
67862
67856
|
if (windowIndex == 0) windowIndex = 1; //幅图指标,不能再主图显示
|
|
67863
67857
|
}
|
|
67864
|
-
|
|
67865
|
-
|
|
67866
|
-
|
|
67867
|
-
if (option.FloatPrecision>=0) indexData.FloatPrecision=option.FloatPrecision;
|
|
67868
|
-
if (option.StringFormat>0) indexData.StringFormat=option.StringFormat;
|
|
67869
|
-
if (option.Args) indexData.Args=option.Args;
|
|
67870
|
-
if (option.TitleFont) indexData.TitleFont=option.TitleFont;
|
|
67871
|
-
if (option.IsShortTitle) indexData.IsShortTitle=option.IsShortTitle;
|
|
67872
|
-
if (option.Lock) indexData.Lock=option.Lock;
|
|
67873
|
-
}
|
|
67874
|
-
|
|
67875
|
-
return this.ChangeScriptIndex(windowIndex, indexData,option);
|
|
67858
|
+
|
|
67859
|
+
JSIndexScript.ModifyAttribute(indexInfo, option)
|
|
67860
|
+
return this.ChangeScriptIndex(windowIndex, indexInfo, option);
|
|
67876
67861
|
}
|
|
67877
67862
|
|
|
67878
67863
|
//主图指标
|
|
@@ -68018,18 +68003,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
68018
68003
|
}
|
|
68019
68004
|
else if (indexInfo)
|
|
68020
68005
|
{
|
|
68021
|
-
|
|
68022
|
-
if (IFrameSplitOperator.IsNumber(obj.FloatPrecision)) indexInfo.FloatPrecision=obj.FloatPrecision;
|
|
68023
|
-
if (IFrameSplitOperator.IsNumber(obj.StringFormat)) indexInfo.StringFormat=obj.StringFormat;
|
|
68024
|
-
if (IFrameSplitOperator.IsBool(obj.IsSync)) indexInfo.IsSync=obj.IsSync;
|
|
68025
|
-
if (obj.YAxis)
|
|
68026
|
-
{
|
|
68027
|
-
if (!indexInfo.YAxis) indexInfo.YAxis={ };
|
|
68028
|
-
if (IFrameSplitOperator.IsNumber(obj.YAxis.FloatPrecision)) indexInfo.YAxis.FloatPrecision=obj.YAxis.FloatPrecision;
|
|
68029
|
-
if (IFrameSplitOperator.IsNumber(obj.YAxis.StringFormat)) indexInfo.YAxis.StringFormat=obj.YAxis.StringFormat;
|
|
68030
|
-
if (IFrameSplitOperator.IsBool(obj.YAxis.EnableRemoveZero)) indexInfo.YAxis.EnableRemoveZero=obj.YAxis.EnableRemoveZero;
|
|
68031
|
-
}
|
|
68032
|
-
|
|
68006
|
+
JSIndexScript.ModifyAttribute(indexInfo, obj);
|
|
68033
68007
|
var scriptIndex=new OverlayScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo); //脚本执行
|
|
68034
68008
|
scriptIndex.OverlayIndex={ IsOverlay:true, Identify:overlayFrame.Identify, WindowIndex:windowIndex, Frame:overlayFrame }; //叠加指标信息
|
|
68035
68009
|
overlayFrame.Script=scriptIndex;
|
|
@@ -68399,20 +68373,8 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
68399
68373
|
var indexInfo = systemScript.Get(indexID);
|
|
68400
68374
|
if (indexInfo)
|
|
68401
68375
|
{
|
|
68402
|
-
|
|
68403
|
-
|
|
68404
|
-
if (item.TitleFont) indexInfo.TitleFont=item.TitleFont;
|
|
68405
|
-
if (item.IsShortTitle) indexInfo.IsShortTitle=item.IsShortTitle;
|
|
68406
|
-
if (IFrameSplitOperator.IsBool(item.IsSync)) indexInfo.IsSync=item.IsSync;
|
|
68407
|
-
|
|
68408
|
-
if (item.YAxis)
|
|
68409
|
-
{
|
|
68410
|
-
if (!indexInfo.YAxis) indexInfo.YAxis={ };
|
|
68411
|
-
if (IFrameSplitOperator.IsNumber(item.YAxis.FloatPrecision)) indexInfo.YAxis.FloatPrecision=item.YAxis.FloatPrecision;
|
|
68412
|
-
if (IFrameSplitOperator.IsNumber(item.YAxis.StringFormat)) indexInfo.YAxis.StringFormat=item.YAxis.StringFormat;
|
|
68413
|
-
}
|
|
68414
|
-
|
|
68415
|
-
this.WindowIndex[i]=new ScriptIndex(indexInfo.Name,indexInfo.Script,args,indexInfo); //脚本执行
|
|
68376
|
+
JSIndexScript.ModifyAttribute(indexInfo,item);
|
|
68377
|
+
this.WindowIndex[i]=new ScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo); //脚本执行
|
|
68416
68378
|
}
|
|
68417
68379
|
}
|
|
68418
68380
|
}
|
|
@@ -38,7 +38,7 @@ var JSConsole=
|
|
|
38
38
|
Condition: 限制条件 { Symbol:'Index'/'Stock'(只支持指数/股票),Period:[](支持的周期), Include:[](指定支持的股票,代码全部大写包括后缀, Message:"提示信息")}
|
|
39
39
|
OutName:动态输出变量名字 [{Name:原始变量名, DynamicName:动态名字格式}] 如 {Name:"MA1", DynamicName:"MA{M1}"};
|
|
40
40
|
SplitType: Y轴分割类型,
|
|
41
|
-
YAxis:{ FloatPrecision:小数位数, StringFormat
|
|
41
|
+
YAxis:{ FloatPrecision:小数位数, StringFormat:, EnableRemoveZero } //Y轴刻度输出格式
|
|
42
42
|
*/
|
|
43
43
|
|
|
44
44
|
//周期条件枚举
|
|
@@ -180,6 +180,29 @@ JSIndexScript.AddIndex=function(aryIndex) //添加自定义指标
|
|
|
180
180
|
}
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
+
//修改指标属性
|
|
184
|
+
JSIndexScript.ModifyAttribute=function(indexInfo, attribute)
|
|
185
|
+
{
|
|
186
|
+
if (!attribute) return;
|
|
187
|
+
|
|
188
|
+
if (attribute.Args) indexInfo.Args=attribute.Args; //外部可以设置参数
|
|
189
|
+
if (IFrameSplitOperator.IsNumber(attribute.FloatPrecision)) indexInfo.FloatPrecision=attribute.FloatPrecision;
|
|
190
|
+
if (IFrameSplitOperator.IsNumber(attribute.StringFormat)) indexInfo.StringFormat=attribute.StringFormat;
|
|
191
|
+
if (IFrameSplitOperator.IsBool(attribute.IsSync)) indexInfo.IsSync=attribute.IsSync;
|
|
192
|
+
if (IFrameSplitOperator.IsBool(attribute.IsShortTitle)) indexInfo.IsShortTitle=attribute.IsShortTitle;
|
|
193
|
+
if (attribute.TitleFont) indexInfo.TitleFont=attribute.TitleFont;
|
|
194
|
+
if (attribute.Lock) indexInfo.Lock=attribute.Lock;
|
|
195
|
+
|
|
196
|
+
if (attribute.YAxis)
|
|
197
|
+
{
|
|
198
|
+
var item=attribute.YAxis;
|
|
199
|
+
if (!indexInfo.YAxis) indexInfo.YAxis={ };
|
|
200
|
+
if (IFrameSplitOperator.IsNumber(item.FloatPrecision)) indexInfo.YAxis.FloatPrecision=item.FloatPrecision;
|
|
201
|
+
if (IFrameSplitOperator.IsNumber(item.StringFormat)) indexInfo.YAxis.StringFormat=item.StringFormat;
|
|
202
|
+
if (IFrameSplitOperator.IsBool(item.EnableRemoveZero)) indexInfo.YAxis.EnableRemoveZero=item.EnableRemoveZero;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
183
206
|
JSIndexScript.prototype.Get=function(id)
|
|
184
207
|
{
|
|
185
208
|
var data=g_CustomIndex.Get(id);
|
|
@@ -4779,25 +4802,12 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4779
4802
|
{
|
|
4780
4803
|
let indexInfo = scriptData.Get(item.Index);
|
|
4781
4804
|
if (!indexInfo) continue;
|
|
4782
|
-
|
|
4783
|
-
if (item.Lock) indexInfo.Lock=item.Lock;
|
|
4805
|
+
JSIndexScript.ModifyAttribute(indexInfo, item);
|
|
4784
4806
|
indexInfo.ID=item.Index;
|
|
4785
|
-
|
|
4786
|
-
|
|
4787
|
-
if (item.IsShortTitle) indexInfo.IsShortTitle=item.IsShortTitle;
|
|
4788
|
-
if (item.TitleFont) indexInfo.TitleFont=item.TitleFont;
|
|
4789
|
-
if (IFrameSplitOperator.IsBool(item.IsSync)) indexInfo.IsSync=item.IsSync;
|
|
4790
|
-
chart.WindowIndex[i] = new ScriptIndex(indexInfo.Name, indexInfo.Script, args,indexInfo); //脚本执行
|
|
4807
|
+
|
|
4808
|
+
chart.WindowIndex[i] = new ScriptIndex(indexInfo.Name, indexInfo.Script, indexInfo.Args,indexInfo); //脚本执行
|
|
4791
4809
|
if (item.StringFormat>0) chart.WindowIndex[i].StringFormat=item.StringFormat;
|
|
4792
4810
|
if (item.FloatPrecision>=0) chart.WindowIndex[i].FloatPrecision=item.FloatPrecision;
|
|
4793
|
-
|
|
4794
|
-
if (item.YAxis)
|
|
4795
|
-
{
|
|
4796
|
-
if (!indexInfo.YAxis) indexInfo.YAxis={ };
|
|
4797
|
-
if (IFrameSplitOperator.IsNumber(item.YAxis.FloatPrecision)) indexInfo.YAxis.FloatPrecision=item.YAxis.FloatPrecision;
|
|
4798
|
-
if (IFrameSplitOperator.IsNumber(item.YAxis.StringFormat)) indexInfo.YAxis.StringFormat=item.YAxis.StringFormat;
|
|
4799
|
-
if (IFrameSplitOperator.IsBool(item.YAxis.EnableRemoveZero)) indexInfo.YAxis.EnableRemoveZero=item.YAxis.EnableRemoveZero;
|
|
4800
|
-
}
|
|
4801
4811
|
}
|
|
4802
4812
|
|
|
4803
4813
|
}
|
|
@@ -12285,20 +12295,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
12285
12295
|
this.RemoveMinSizeWindows(); //清空隐藏的指标
|
|
12286
12296
|
var index=this.AddNewSubFrame(option);
|
|
12287
12297
|
|
|
12288
|
-
|
|
12289
|
-
{
|
|
12290
|
-
if (option.FloatPrecision>=0) indexInfo.FloatPrecision=option.FloatPrecision;
|
|
12291
|
-
if (option.StringFormat>0) indexInfo.StringFormat=option.StringFormat;
|
|
12292
|
-
if (option.Args) indexInfo.Args=option.Args;
|
|
12293
|
-
if (option.Lock) indexInfo.Lock=option.Lock;
|
|
12294
|
-
if (option.YAxis)
|
|
12295
|
-
{
|
|
12296
|
-
indexInfo.YAxis={ };
|
|
12297
|
-
if (IFrameSplitOperator.IsNumber(option.YAxis.FloatPrecision)) indexInfo.YAxis.FloatPrecision=option.YAxis.FloatPrecision;
|
|
12298
|
-
if (IFrameSplitOperator.IsNumber(option.YAxis.StringFormat)) indexInfo.YAxis.StringFormat=option.YAxis.StringFormat;
|
|
12299
|
-
if (IFrameSplitOperator.IsBool(option.YAxis.EnableRemoveZero)) indexInfo.YAxis.EnableRemoveZero=option.YAxis.EnableRemoveZero;
|
|
12300
|
-
}
|
|
12301
|
-
}
|
|
12298
|
+
JSIndexScript.ModifyAttribute(indexInfo, option);
|
|
12302
12299
|
|
|
12303
12300
|
this.WindowIndex[index] = new ScriptIndex(indexInfo.Name, indexInfo.Script, indexInfo.Args,indexInfo); //脚本执行
|
|
12304
12301
|
if (this.ClassName=="MinuteChartContainer" || this.ClassName=="MinuteChartHScreenContainer")
|
|
@@ -47298,6 +47295,8 @@ function IFrameSplitOperator()
|
|
|
47298
47295
|
{
|
|
47299
47296
|
|
|
47300
47297
|
}
|
|
47298
|
+
|
|
47299
|
+
this.SetOption=function(option) { }
|
|
47301
47300
|
}
|
|
47302
47301
|
|
|
47303
47302
|
//字符串格式化 千分位分割
|
|
@@ -48564,7 +48563,7 @@ function FrameSplitY()
|
|
|
48564
48563
|
this.DefaultSplitType=0;
|
|
48565
48564
|
this.Custom=[]; //[{Type:0}]; 定制刻度
|
|
48566
48565
|
this.DefaultYMaxMin; //{ Max:null, Min:null }; //指定最大,最小, Y轴范围必须比最大值大, 比最小值小
|
|
48567
|
-
this.EnableRemoveZero=
|
|
48566
|
+
this.EnableRemoveZero=g_JSChartResource.Frame.EnableRemoveZero;
|
|
48568
48567
|
this.LineType=null; //线段样式
|
|
48569
48568
|
this.IgnoreYValue = null; //在这个数组里的数字不显示在刻度上
|
|
48570
48569
|
this.FixedYMaxMin; //{ Max, Min} 固定Y轴最大最小值
|
|
@@ -48589,6 +48588,22 @@ function FrameSplitY()
|
|
|
48589
48588
|
return true;
|
|
48590
48589
|
}
|
|
48591
48590
|
|
|
48591
|
+
|
|
48592
|
+
this.Reset=function() //重置
|
|
48593
|
+
{
|
|
48594
|
+
this.EnableRemoveZero=g_JSChartResource.Frame.EnableRemoveZero;
|
|
48595
|
+
this.StringFormat=g_JSChartResource.Frame.StringFormat;
|
|
48596
|
+
}
|
|
48597
|
+
|
|
48598
|
+
this.SetOption=function(option)
|
|
48599
|
+
{
|
|
48600
|
+
if (!option) return;
|
|
48601
|
+
|
|
48602
|
+
if (IFrameSplitOperator.IsNumber(option.FloatPrecision)) this.FloatPrecision=option.FloatPrecision;
|
|
48603
|
+
if (IFrameSplitOperator.IsNumber(option.StringFormat)) this.StringFormat=option.StringFormat;
|
|
48604
|
+
if (IFrameSplitOperator.IsBool(option.EnableRemoveZero)) this.EnableRemoveZero=option.EnableRemoveZero;
|
|
48605
|
+
}
|
|
48606
|
+
|
|
48592
48607
|
this.GetFloatPrecision=function(value,floatPrecision)
|
|
48593
48608
|
{
|
|
48594
48609
|
if (value>this.FLOATPRECISION_RANGE[0]) return floatPrecision;
|
|
@@ -66000,7 +66015,9 @@ function JSChartResource()
|
|
|
66000
66015
|
this.Frame={
|
|
66001
66016
|
XBottomOffset:2*GetDevicePixelRatio(), //X轴文字向下偏移
|
|
66002
66017
|
YTopOffset:2*GetDevicePixelRatio(), //Y轴顶部文字向下偏移
|
|
66003
|
-
YTextPadding:[2,2]
|
|
66018
|
+
YTextPadding:[2,2],
|
|
66019
|
+
EnableRemoveZero:true, //移除小数点后面的0
|
|
66020
|
+
StringFormat:0
|
|
66004
66021
|
};
|
|
66005
66022
|
this.ToolbarButtonStyle=0;
|
|
66006
66023
|
|
|
@@ -72029,18 +72046,9 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
72029
72046
|
{
|
|
72030
72047
|
if (windowIndex == 0) windowIndex = 1; //幅图指标,不能再主图显示
|
|
72031
72048
|
}
|
|
72032
|
-
|
|
72033
|
-
|
|
72034
|
-
|
|
72035
|
-
if (option.FloatPrecision>=0) indexData.FloatPrecision=option.FloatPrecision;
|
|
72036
|
-
if (option.StringFormat>0) indexData.StringFormat=option.StringFormat;
|
|
72037
|
-
if (option.Args) indexData.Args=option.Args;
|
|
72038
|
-
if (option.TitleFont) indexData.TitleFont=option.TitleFont;
|
|
72039
|
-
if (option.IsShortTitle) indexData.IsShortTitle=option.IsShortTitle;
|
|
72040
|
-
if (option.Lock) indexData.Lock=option.Lock;
|
|
72041
|
-
}
|
|
72042
|
-
|
|
72043
|
-
return this.ChangeScriptIndex(windowIndex, indexData,option);
|
|
72049
|
+
|
|
72050
|
+
JSIndexScript.ModifyAttribute(indexInfo, option)
|
|
72051
|
+
return this.ChangeScriptIndex(windowIndex, indexInfo, option);
|
|
72044
72052
|
}
|
|
72045
72053
|
|
|
72046
72054
|
//主图指标
|
|
@@ -72186,18 +72194,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
72186
72194
|
}
|
|
72187
72195
|
else if (indexInfo)
|
|
72188
72196
|
{
|
|
72189
|
-
|
|
72190
|
-
if (IFrameSplitOperator.IsNumber(obj.FloatPrecision)) indexInfo.FloatPrecision=obj.FloatPrecision;
|
|
72191
|
-
if (IFrameSplitOperator.IsNumber(obj.StringFormat)) indexInfo.StringFormat=obj.StringFormat;
|
|
72192
|
-
if (IFrameSplitOperator.IsBool(obj.IsSync)) indexInfo.IsSync=obj.IsSync;
|
|
72193
|
-
if (obj.YAxis)
|
|
72194
|
-
{
|
|
72195
|
-
if (!indexInfo.YAxis) indexInfo.YAxis={ };
|
|
72196
|
-
if (IFrameSplitOperator.IsNumber(obj.YAxis.FloatPrecision)) indexInfo.YAxis.FloatPrecision=obj.YAxis.FloatPrecision;
|
|
72197
|
-
if (IFrameSplitOperator.IsNumber(obj.YAxis.StringFormat)) indexInfo.YAxis.StringFormat=obj.YAxis.StringFormat;
|
|
72198
|
-
if (IFrameSplitOperator.IsBool(obj.YAxis.EnableRemoveZero)) indexInfo.YAxis.EnableRemoveZero=obj.YAxis.EnableRemoveZero;
|
|
72199
|
-
}
|
|
72200
|
-
|
|
72197
|
+
JSIndexScript.ModifyAttribute(indexInfo, obj);
|
|
72201
72198
|
var scriptIndex=new OverlayScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo); //脚本执行
|
|
72202
72199
|
scriptIndex.OverlayIndex={ IsOverlay:true, Identify:overlayFrame.Identify, WindowIndex:windowIndex, Frame:overlayFrame }; //叠加指标信息
|
|
72203
72200
|
overlayFrame.Script=scriptIndex;
|
|
@@ -72567,20 +72564,8 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
72567
72564
|
var indexInfo = systemScript.Get(indexID);
|
|
72568
72565
|
if (indexInfo)
|
|
72569
72566
|
{
|
|
72570
|
-
|
|
72571
|
-
|
|
72572
|
-
if (item.TitleFont) indexInfo.TitleFont=item.TitleFont;
|
|
72573
|
-
if (item.IsShortTitle) indexInfo.IsShortTitle=item.IsShortTitle;
|
|
72574
|
-
if (IFrameSplitOperator.IsBool(item.IsSync)) indexInfo.IsSync=item.IsSync;
|
|
72575
|
-
|
|
72576
|
-
if (item.YAxis)
|
|
72577
|
-
{
|
|
72578
|
-
if (!indexInfo.YAxis) indexInfo.YAxis={ };
|
|
72579
|
-
if (IFrameSplitOperator.IsNumber(item.YAxis.FloatPrecision)) indexInfo.YAxis.FloatPrecision=item.YAxis.FloatPrecision;
|
|
72580
|
-
if (IFrameSplitOperator.IsNumber(item.YAxis.StringFormat)) indexInfo.YAxis.StringFormat=item.YAxis.StringFormat;
|
|
72581
|
-
}
|
|
72582
|
-
|
|
72583
|
-
this.WindowIndex[i]=new ScriptIndex(indexInfo.Name,indexInfo.Script,args,indexInfo); //脚本执行
|
|
72567
|
+
JSIndexScript.ModifyAttribute(indexInfo,item);
|
|
72568
|
+
this.WindowIndex[i]=new ScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo); //脚本执行
|
|
72584
72569
|
}
|
|
72585
72570
|
}
|
|
72586
72571
|
}
|
|
@@ -114157,13 +114142,13 @@ function ScriptIndex(name,script,args,option)
|
|
|
114157
114142
|
{
|
|
114158
114143
|
//Y轴刻度格式 默认跟标题栏一致
|
|
114159
114144
|
var ySpliter=hqChart.Frame.SubFrame[windowIndex].Frame.YSplitOperator;
|
|
114160
|
-
ySpliter
|
|
114161
|
-
if (this.YAxis)
|
|
114145
|
+
if (ySpliter)
|
|
114162
114146
|
{
|
|
114163
|
-
|
|
114164
|
-
|
|
114147
|
+
ySpliter.Reset();
|
|
114148
|
+
ySpliter.FloatPrecision=this.FloatPrecision;
|
|
114149
|
+
if (this.YAxis) ySpliter.SetOption(this.YAxis);
|
|
114165
114150
|
}
|
|
114166
|
-
|
|
114151
|
+
|
|
114167
114152
|
if (this.YSpecificMaxMin) hqChart.Frame.SubFrame[windowIndex].Frame.YSpecificMaxMin=this.YSpecificMaxMin; //最大最小值
|
|
114168
114153
|
if (this.YSplitScale) hqChart.Frame.SubFrame[windowIndex].Frame.YSplitScale=this.YSplitScale; //固定刻度
|
|
114169
114154
|
}
|
|
@@ -114536,14 +114521,12 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
114536
114521
|
|
|
114537
114522
|
//修改Y轴分割方式
|
|
114538
114523
|
var ySpliter=this.OverlayIndex.Frame.Frame.YSplitOperator;
|
|
114539
|
-
if (
|
|
114540
|
-
ySpliter.FloatPrecision=this.FloatPrecision;
|
|
114541
|
-
ySpliter.EnableRemoveZero=true;
|
|
114542
|
-
if (this.YAxis)
|
|
114524
|
+
if (ySpliter)
|
|
114543
114525
|
{
|
|
114544
|
-
|
|
114545
|
-
|
|
114546
|
-
if (IFrameSplitOperator.
|
|
114526
|
+
ySpliter.Reset();
|
|
114527
|
+
ySpliter.FloatPrecision=this.FloatPrecision;
|
|
114528
|
+
if (IFrameSplitOperator.IsNumber(this.YSplitType)) ySpliter.SplitType=this.YSplitType;
|
|
114529
|
+
if (this.YAxis) ySpliter.SetOption(this.YAxis);
|
|
114547
114530
|
}
|
|
114548
114531
|
|
|
114549
114532
|
//指标名字
|
|
@@ -129325,7 +129308,7 @@ function ScrollBarBGChart()
|
|
|
129325
129308
|
|
|
129326
129309
|
|
|
129327
129310
|
|
|
129328
|
-
var HQCHART_VERSION="1.1.
|
|
129311
|
+
var HQCHART_VERSION="1.1.12934";
|
|
129329
129312
|
|
|
129330
129313
|
function PrintHQChartVersion()
|
|
129331
129314
|
{
|
|
@@ -82,7 +82,7 @@ JSNetwork.HttpRequest=function(obj) //对请求进行封装
|
|
|
82
82
|
Condition: 限制条件 { Symbol:'Index'/'Stock'(只支持指数/股票),Period:[](支持的周期), Include:[](指定支持的股票,代码全部大写包括后缀, Message:"提示信息")}
|
|
83
83
|
OutName:动态输出变量名字 [{Name:原始变量名, DynamicName:动态名字格式}] 如 {Name:"MA1", DynamicName:"MA{M1}"};
|
|
84
84
|
SplitType: Y轴分割类型,
|
|
85
|
-
YAxis:{ FloatPrecision:小数位数, StringFormat
|
|
85
|
+
YAxis:{ FloatPrecision:小数位数, StringFormat:, EnableRemoveZero } //Y轴刻度输出格式
|
|
86
86
|
*/
|
|
87
87
|
|
|
88
88
|
//周期条件枚举
|
|
@@ -224,6 +224,29 @@ JSIndexScript.AddIndex=function(aryIndex) //添加自定义指标
|
|
|
224
224
|
}
|
|
225
225
|
}
|
|
226
226
|
|
|
227
|
+
//修改指标属性
|
|
228
|
+
JSIndexScript.ModifyAttribute=function(indexInfo, attribute)
|
|
229
|
+
{
|
|
230
|
+
if (!attribute) return;
|
|
231
|
+
|
|
232
|
+
if (attribute.Args) indexInfo.Args=attribute.Args; //外部可以设置参数
|
|
233
|
+
if (IFrameSplitOperator.IsNumber(attribute.FloatPrecision)) indexInfo.FloatPrecision=attribute.FloatPrecision;
|
|
234
|
+
if (IFrameSplitOperator.IsNumber(attribute.StringFormat)) indexInfo.StringFormat=attribute.StringFormat;
|
|
235
|
+
if (IFrameSplitOperator.IsBool(attribute.IsSync)) indexInfo.IsSync=attribute.IsSync;
|
|
236
|
+
if (IFrameSplitOperator.IsBool(attribute.IsShortTitle)) indexInfo.IsShortTitle=attribute.IsShortTitle;
|
|
237
|
+
if (attribute.TitleFont) indexInfo.TitleFont=attribute.TitleFont;
|
|
238
|
+
if (attribute.Lock) indexInfo.Lock=attribute.Lock;
|
|
239
|
+
|
|
240
|
+
if (attribute.YAxis)
|
|
241
|
+
{
|
|
242
|
+
var item=attribute.YAxis;
|
|
243
|
+
if (!indexInfo.YAxis) indexInfo.YAxis={ };
|
|
244
|
+
if (IFrameSplitOperator.IsNumber(item.FloatPrecision)) indexInfo.YAxis.FloatPrecision=item.FloatPrecision;
|
|
245
|
+
if (IFrameSplitOperator.IsNumber(item.StringFormat)) indexInfo.YAxis.StringFormat=item.StringFormat;
|
|
246
|
+
if (IFrameSplitOperator.IsBool(item.EnableRemoveZero)) indexInfo.YAxis.EnableRemoveZero=item.EnableRemoveZero;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
227
250
|
JSIndexScript.prototype.Get=function(id)
|
|
228
251
|
{
|
|
229
252
|
var data=g_CustomIndex.Get(id);
|
|
@@ -4823,25 +4846,12 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4823
4846
|
{
|
|
4824
4847
|
let indexInfo = scriptData.Get(item.Index);
|
|
4825
4848
|
if (!indexInfo) continue;
|
|
4826
|
-
|
|
4827
|
-
if (item.Lock) indexInfo.Lock=item.Lock;
|
|
4849
|
+
JSIndexScript.ModifyAttribute(indexInfo, item);
|
|
4828
4850
|
indexInfo.ID=item.Index;
|
|
4829
|
-
|
|
4830
|
-
|
|
4831
|
-
if (item.IsShortTitle) indexInfo.IsShortTitle=item.IsShortTitle;
|
|
4832
|
-
if (item.TitleFont) indexInfo.TitleFont=item.TitleFont;
|
|
4833
|
-
if (IFrameSplitOperator.IsBool(item.IsSync)) indexInfo.IsSync=item.IsSync;
|
|
4834
|
-
chart.WindowIndex[i] = new ScriptIndex(indexInfo.Name, indexInfo.Script, args,indexInfo); //脚本执行
|
|
4851
|
+
|
|
4852
|
+
chart.WindowIndex[i] = new ScriptIndex(indexInfo.Name, indexInfo.Script, indexInfo.Args,indexInfo); //脚本执行
|
|
4835
4853
|
if (item.StringFormat>0) chart.WindowIndex[i].StringFormat=item.StringFormat;
|
|
4836
4854
|
if (item.FloatPrecision>=0) chart.WindowIndex[i].FloatPrecision=item.FloatPrecision;
|
|
4837
|
-
|
|
4838
|
-
if (item.YAxis)
|
|
4839
|
-
{
|
|
4840
|
-
if (!indexInfo.YAxis) indexInfo.YAxis={ };
|
|
4841
|
-
if (IFrameSplitOperator.IsNumber(item.YAxis.FloatPrecision)) indexInfo.YAxis.FloatPrecision=item.YAxis.FloatPrecision;
|
|
4842
|
-
if (IFrameSplitOperator.IsNumber(item.YAxis.StringFormat)) indexInfo.YAxis.StringFormat=item.YAxis.StringFormat;
|
|
4843
|
-
if (IFrameSplitOperator.IsBool(item.YAxis.EnableRemoveZero)) indexInfo.YAxis.EnableRemoveZero=item.YAxis.EnableRemoveZero;
|
|
4844
|
-
}
|
|
4845
4855
|
}
|
|
4846
4856
|
|
|
4847
4857
|
}
|
|
@@ -12329,20 +12339,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
12329
12339
|
this.RemoveMinSizeWindows(); //清空隐藏的指标
|
|
12330
12340
|
var index=this.AddNewSubFrame(option);
|
|
12331
12341
|
|
|
12332
|
-
|
|
12333
|
-
{
|
|
12334
|
-
if (option.FloatPrecision>=0) indexInfo.FloatPrecision=option.FloatPrecision;
|
|
12335
|
-
if (option.StringFormat>0) indexInfo.StringFormat=option.StringFormat;
|
|
12336
|
-
if (option.Args) indexInfo.Args=option.Args;
|
|
12337
|
-
if (option.Lock) indexInfo.Lock=option.Lock;
|
|
12338
|
-
if (option.YAxis)
|
|
12339
|
-
{
|
|
12340
|
-
indexInfo.YAxis={ };
|
|
12341
|
-
if (IFrameSplitOperator.IsNumber(option.YAxis.FloatPrecision)) indexInfo.YAxis.FloatPrecision=option.YAxis.FloatPrecision;
|
|
12342
|
-
if (IFrameSplitOperator.IsNumber(option.YAxis.StringFormat)) indexInfo.YAxis.StringFormat=option.YAxis.StringFormat;
|
|
12343
|
-
if (IFrameSplitOperator.IsBool(option.YAxis.EnableRemoveZero)) indexInfo.YAxis.EnableRemoveZero=option.YAxis.EnableRemoveZero;
|
|
12344
|
-
}
|
|
12345
|
-
}
|
|
12342
|
+
JSIndexScript.ModifyAttribute(indexInfo, option);
|
|
12346
12343
|
|
|
12347
12344
|
this.WindowIndex[index] = new ScriptIndex(indexInfo.Name, indexInfo.Script, indexInfo.Args,indexInfo); //脚本执行
|
|
12348
12345
|
if (this.ClassName=="MinuteChartContainer" || this.ClassName=="MinuteChartHScreenContainer")
|
|
@@ -47342,6 +47339,8 @@ function IFrameSplitOperator()
|
|
|
47342
47339
|
{
|
|
47343
47340
|
|
|
47344
47341
|
}
|
|
47342
|
+
|
|
47343
|
+
this.SetOption=function(option) { }
|
|
47345
47344
|
}
|
|
47346
47345
|
|
|
47347
47346
|
//字符串格式化 千分位分割
|
|
@@ -48608,7 +48607,7 @@ function FrameSplitY()
|
|
|
48608
48607
|
this.DefaultSplitType=0;
|
|
48609
48608
|
this.Custom=[]; //[{Type:0}]; 定制刻度
|
|
48610
48609
|
this.DefaultYMaxMin; //{ Max:null, Min:null }; //指定最大,最小, Y轴范围必须比最大值大, 比最小值小
|
|
48611
|
-
this.EnableRemoveZero=
|
|
48610
|
+
this.EnableRemoveZero=g_JSChartResource.Frame.EnableRemoveZero;
|
|
48612
48611
|
this.LineType=null; //线段样式
|
|
48613
48612
|
this.IgnoreYValue = null; //在这个数组里的数字不显示在刻度上
|
|
48614
48613
|
this.FixedYMaxMin; //{ Max, Min} 固定Y轴最大最小值
|
|
@@ -48633,6 +48632,22 @@ function FrameSplitY()
|
|
|
48633
48632
|
return true;
|
|
48634
48633
|
}
|
|
48635
48634
|
|
|
48635
|
+
|
|
48636
|
+
this.Reset=function() //重置
|
|
48637
|
+
{
|
|
48638
|
+
this.EnableRemoveZero=g_JSChartResource.Frame.EnableRemoveZero;
|
|
48639
|
+
this.StringFormat=g_JSChartResource.Frame.StringFormat;
|
|
48640
|
+
}
|
|
48641
|
+
|
|
48642
|
+
this.SetOption=function(option)
|
|
48643
|
+
{
|
|
48644
|
+
if (!option) return;
|
|
48645
|
+
|
|
48646
|
+
if (IFrameSplitOperator.IsNumber(option.FloatPrecision)) this.FloatPrecision=option.FloatPrecision;
|
|
48647
|
+
if (IFrameSplitOperator.IsNumber(option.StringFormat)) this.StringFormat=option.StringFormat;
|
|
48648
|
+
if (IFrameSplitOperator.IsBool(option.EnableRemoveZero)) this.EnableRemoveZero=option.EnableRemoveZero;
|
|
48649
|
+
}
|
|
48650
|
+
|
|
48636
48651
|
this.GetFloatPrecision=function(value,floatPrecision)
|
|
48637
48652
|
{
|
|
48638
48653
|
if (value>this.FLOATPRECISION_RANGE[0]) return floatPrecision;
|
|
@@ -66044,7 +66059,9 @@ function JSChartResource()
|
|
|
66044
66059
|
this.Frame={
|
|
66045
66060
|
XBottomOffset:2*GetDevicePixelRatio(), //X轴文字向下偏移
|
|
66046
66061
|
YTopOffset:2*GetDevicePixelRatio(), //Y轴顶部文字向下偏移
|
|
66047
|
-
YTextPadding:[2,2]
|
|
66062
|
+
YTextPadding:[2,2],
|
|
66063
|
+
EnableRemoveZero:true, //移除小数点后面的0
|
|
66064
|
+
StringFormat:0
|
|
66048
66065
|
};
|
|
66049
66066
|
this.ToolbarButtonStyle=0;
|
|
66050
66067
|
|
|
@@ -72073,18 +72090,9 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
72073
72090
|
{
|
|
72074
72091
|
if (windowIndex == 0) windowIndex = 1; //幅图指标,不能再主图显示
|
|
72075
72092
|
}
|
|
72076
|
-
|
|
72077
|
-
|
|
72078
|
-
|
|
72079
|
-
if (option.FloatPrecision>=0) indexData.FloatPrecision=option.FloatPrecision;
|
|
72080
|
-
if (option.StringFormat>0) indexData.StringFormat=option.StringFormat;
|
|
72081
|
-
if (option.Args) indexData.Args=option.Args;
|
|
72082
|
-
if (option.TitleFont) indexData.TitleFont=option.TitleFont;
|
|
72083
|
-
if (option.IsShortTitle) indexData.IsShortTitle=option.IsShortTitle;
|
|
72084
|
-
if (option.Lock) indexData.Lock=option.Lock;
|
|
72085
|
-
}
|
|
72086
|
-
|
|
72087
|
-
return this.ChangeScriptIndex(windowIndex, indexData,option);
|
|
72093
|
+
|
|
72094
|
+
JSIndexScript.ModifyAttribute(indexInfo, option)
|
|
72095
|
+
return this.ChangeScriptIndex(windowIndex, indexInfo, option);
|
|
72088
72096
|
}
|
|
72089
72097
|
|
|
72090
72098
|
//主图指标
|
|
@@ -72230,18 +72238,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
72230
72238
|
}
|
|
72231
72239
|
else if (indexInfo)
|
|
72232
72240
|
{
|
|
72233
|
-
|
|
72234
|
-
if (IFrameSplitOperator.IsNumber(obj.FloatPrecision)) indexInfo.FloatPrecision=obj.FloatPrecision;
|
|
72235
|
-
if (IFrameSplitOperator.IsNumber(obj.StringFormat)) indexInfo.StringFormat=obj.StringFormat;
|
|
72236
|
-
if (IFrameSplitOperator.IsBool(obj.IsSync)) indexInfo.IsSync=obj.IsSync;
|
|
72237
|
-
if (obj.YAxis)
|
|
72238
|
-
{
|
|
72239
|
-
if (!indexInfo.YAxis) indexInfo.YAxis={ };
|
|
72240
|
-
if (IFrameSplitOperator.IsNumber(obj.YAxis.FloatPrecision)) indexInfo.YAxis.FloatPrecision=obj.YAxis.FloatPrecision;
|
|
72241
|
-
if (IFrameSplitOperator.IsNumber(obj.YAxis.StringFormat)) indexInfo.YAxis.StringFormat=obj.YAxis.StringFormat;
|
|
72242
|
-
if (IFrameSplitOperator.IsBool(obj.YAxis.EnableRemoveZero)) indexInfo.YAxis.EnableRemoveZero=obj.YAxis.EnableRemoveZero;
|
|
72243
|
-
}
|
|
72244
|
-
|
|
72241
|
+
JSIndexScript.ModifyAttribute(indexInfo, obj);
|
|
72245
72242
|
var scriptIndex=new OverlayScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo); //脚本执行
|
|
72246
72243
|
scriptIndex.OverlayIndex={ IsOverlay:true, Identify:overlayFrame.Identify, WindowIndex:windowIndex, Frame:overlayFrame }; //叠加指标信息
|
|
72247
72244
|
overlayFrame.Script=scriptIndex;
|
|
@@ -72611,20 +72608,8 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
72611
72608
|
var indexInfo = systemScript.Get(indexID);
|
|
72612
72609
|
if (indexInfo)
|
|
72613
72610
|
{
|
|
72614
|
-
|
|
72615
|
-
|
|
72616
|
-
if (item.TitleFont) indexInfo.TitleFont=item.TitleFont;
|
|
72617
|
-
if (item.IsShortTitle) indexInfo.IsShortTitle=item.IsShortTitle;
|
|
72618
|
-
if (IFrameSplitOperator.IsBool(item.IsSync)) indexInfo.IsSync=item.IsSync;
|
|
72619
|
-
|
|
72620
|
-
if (item.YAxis)
|
|
72621
|
-
{
|
|
72622
|
-
if (!indexInfo.YAxis) indexInfo.YAxis={ };
|
|
72623
|
-
if (IFrameSplitOperator.IsNumber(item.YAxis.FloatPrecision)) indexInfo.YAxis.FloatPrecision=item.YAxis.FloatPrecision;
|
|
72624
|
-
if (IFrameSplitOperator.IsNumber(item.YAxis.StringFormat)) indexInfo.YAxis.StringFormat=item.YAxis.StringFormat;
|
|
72625
|
-
}
|
|
72626
|
-
|
|
72627
|
-
this.WindowIndex[i]=new ScriptIndex(indexInfo.Name,indexInfo.Script,args,indexInfo); //脚本执行
|
|
72611
|
+
JSIndexScript.ModifyAttribute(indexInfo,item);
|
|
72612
|
+
this.WindowIndex[i]=new ScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo); //脚本执行
|
|
72628
72613
|
}
|
|
72629
72614
|
}
|
|
72630
72615
|
}
|
|
@@ -114201,13 +114186,13 @@ function ScriptIndex(name,script,args,option)
|
|
|
114201
114186
|
{
|
|
114202
114187
|
//Y轴刻度格式 默认跟标题栏一致
|
|
114203
114188
|
var ySpliter=hqChart.Frame.SubFrame[windowIndex].Frame.YSplitOperator;
|
|
114204
|
-
ySpliter
|
|
114205
|
-
if (this.YAxis)
|
|
114189
|
+
if (ySpliter)
|
|
114206
114190
|
{
|
|
114207
|
-
|
|
114208
|
-
|
|
114191
|
+
ySpliter.Reset();
|
|
114192
|
+
ySpliter.FloatPrecision=this.FloatPrecision;
|
|
114193
|
+
if (this.YAxis) ySpliter.SetOption(this.YAxis);
|
|
114209
114194
|
}
|
|
114210
|
-
|
|
114195
|
+
|
|
114211
114196
|
if (this.YSpecificMaxMin) hqChart.Frame.SubFrame[windowIndex].Frame.YSpecificMaxMin=this.YSpecificMaxMin; //最大最小值
|
|
114212
114197
|
if (this.YSplitScale) hqChart.Frame.SubFrame[windowIndex].Frame.YSplitScale=this.YSplitScale; //固定刻度
|
|
114213
114198
|
}
|
|
@@ -114580,14 +114565,12 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
114580
114565
|
|
|
114581
114566
|
//修改Y轴分割方式
|
|
114582
114567
|
var ySpliter=this.OverlayIndex.Frame.Frame.YSplitOperator;
|
|
114583
|
-
if (
|
|
114584
|
-
ySpliter.FloatPrecision=this.FloatPrecision;
|
|
114585
|
-
ySpliter.EnableRemoveZero=true;
|
|
114586
|
-
if (this.YAxis)
|
|
114568
|
+
if (ySpliter)
|
|
114587
114569
|
{
|
|
114588
|
-
|
|
114589
|
-
|
|
114590
|
-
if (IFrameSplitOperator.
|
|
114570
|
+
ySpliter.Reset();
|
|
114571
|
+
ySpliter.FloatPrecision=this.FloatPrecision;
|
|
114572
|
+
if (IFrameSplitOperator.IsNumber(this.YSplitType)) ySpliter.SplitType=this.YSplitType;
|
|
114573
|
+
if (this.YAxis) ySpliter.SetOption(this.YAxis);
|
|
114591
114574
|
}
|
|
114592
114575
|
|
|
114593
114576
|
//指标名字
|
|
@@ -129483,7 +129466,7 @@ function HQChartScriptWorker()
|
|
|
129483
129466
|
|
|
129484
129467
|
|
|
129485
129468
|
|
|
129486
|
-
var HQCHART_VERSION="1.1.
|
|
129469
|
+
var HQCHART_VERSION="1.1.12934";
|
|
129487
129470
|
|
|
129488
129471
|
function PrintHQChartVersion()
|
|
129489
129472
|
{
|