hqchart 1.1.12905 → 1.1.12928
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.NetworkFilterTest.vue.js +2 -2
- package/lib/umychart.vue.js +31 -24
- package/package.json +2 -1
- package/src/jscommon/umychart.NetworkFilterTest.js +21 -0
- package/src/jscommon/umychart.complier.js +30 -2
- package/src/jscommon/umychart.index.data.js +3 -2
- package/src/jscommon/umychart.js +73 -45
- package/src/jscommon/umychart.node/umychart.node.js +11661 -8473
- package/src/jscommon/umychart.testdata/000001.sz.minute.kline.js +2681 -0
- package/src/jscommon/umychart.testdata/000151.sz.day.kline.js +6084 -0
- package/src/jscommon/umychart.testdata.js +21 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +107 -50
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.NetworkFilterTest.vue.js +21 -0
- package/src/jscommon/umychart.vue/umychart.vue.js +107 -50
|
@@ -11,7 +11,7 @@ HQData.RequestRealtimeData(data,callback);break;case'KLineChartContainer::Reques
|
|
|
11
11
|
HQData.RequestFlowCapitalData(data,callback);break;case'KLineChartContainer::ReqeustHistoryMinuteData'://分钟全量数据下载
|
|
12
12
|
HQData.RequestHistoryMinuteData(data,callback);break;case'KLineChartContainer::RequestMinuteRealtimeData'://分钟增量数据更新
|
|
13
13
|
HQData.RequestMinuteRealtimeData(data,callback);break;case"JSSymbolData::GetVariantData"://额外的变量数据
|
|
14
|
-
HQData.RequestIndexVariantData(data,callback);break;case"AnnouncementInfo::RequestData":HQData.AnnouncementInfo_RequestData(data,callback);break;case"PforecastInfo::RequestData":HQData.PforecastInfo_RequestData(data,callback);break;case"InvestorInfo::RequestData":HQData.InvestorInfo_RequestData(data,callback);break;case"ResearchInfo::RequestData":break;case"BlockTrading::RequestData":HQData.BlockTrading_RequestData(data,callback);break;case"TradeDetail::RequestData":HQData.TradeDetail_RequestData(data,callback);break;}};HQData.RequestMinuteData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol[0];//请求的股票代码
|
|
14
|
+
HQData.RequestIndexVariantData(data,callback);break;case"JSSymbolData::GetOtherSymbolData":HQData.RequestOtherSymbolData(data,callback);break;case"AnnouncementInfo::RequestData":HQData.AnnouncementInfo_RequestData(data,callback);break;case"PforecastInfo::RequestData":HQData.PforecastInfo_RequestData(data,callback);break;case"InvestorInfo::RequestData":HQData.InvestorInfo_RequestData(data,callback);break;case"ResearchInfo::RequestData":break;case"BlockTrading::RequestData":HQData.BlockTrading_RequestData(data,callback);break;case"TradeDetail::RequestData":HQData.TradeDetail_RequestData(data,callback);break;}};HQData.RequestMinuteData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol[0];//请求的股票代码
|
|
15
15
|
var dayCount=data.Request.Data.daycount;console.log("[HQData::RequestMinuteData] Symbol="+symbol);var hqchartData=MINUTE_1DAY_DATA;hqchartData.stock[0].symbol=symbol;hqchartData.stock[0].name=symbol;callback(hqchartData);};HQData.RequestMinuteDaysData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol;//请求的股票代码
|
|
16
16
|
var dayCount=data.Request.Data.daycount;console.log("[HQData::RequestMinuteDaysData] Symbol="+symbol);var hqchartData=MINUTE_5DAY_DATA;hqchartData.symbol=symbol;hqchartData.name=symbol;callback(hqchartData);};HQData.RequestHistoryData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol;//请求的股票代码
|
|
17
17
|
console.log("[HQData::RequestMinuteDaysData] Symbol="+symbol);var hqchartData=KLINE_DAY_DATA;hqchartData.symbol=symbol;hqchartData.name=symbol;callback(hqchartData);};HQData.RequestFlowCapitalData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol;//请求的股票代码
|
|
@@ -20,4 +20,4 @@ console.log("[HQData::RequestRealtimeData] Symbol="+symbol);var hqchartData=KLIN
|
|
|
20
20
|
console.log("[HQData::RequestHistoryMinuteData] Symbol="+symbol);var hqchartData=KLINE_MINUTE_DATA;hqchartData.name=symbol;hqchartData.symbol=symbol;callback(hqchartData);};HQData.RequestMinuteRealtimeData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol[0];//请求的股票代码
|
|
21
21
|
console.log("[HQData::RequestMinuteRealtimeData] Symbol="+symbol);var hqchartData=JSON.parse((0,_stringify2.default)(KLINE_1MINUTE_DATA));var kItem=hqchartData.data[0];var price=kItem[5];var value=Math.ceil(Math.random()*10)/1000*price;var bUp=Math.ceil(Math.random()*10)>=5;if(bUp)price+=value;else price-=value;kItem[5]=price;kItem[3]=Math.max(price,kItem[3]);kItem[4]=Math.min(price,kItem[4]);hqchartData.name=symbol;hqchartData.symbol=symbol;callback(hqchartData);};HQData.RequestIndexVariantData=function(data,callback){var varName=data.Request.Data.VariantName;//变量名称
|
|
22
22
|
if(varName=="FROMOPEN"){var hqchartData={};//单数据
|
|
23
|
-
hqchartData.Data={Date:20230707,Value:240};hqchartData.DataType=1;callback(hqchartData);}};HQData.AnnouncementInfo_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;var hqchartData={symbol:symbol,report:[]};var kData=data.HQChart.ChartPaint[0].Data;for(var i=0,j=1;i<kData.Data.length;++i){var kItem=kData.Data[i];if(i%10!=4)continue;var itemReport={releasedate:kItem.Date,time:kItem.Time,title:"\u516C\u544A("+j+") xxxx"};hqchartData.report.push(itemReport);++j;}callback(hqchartData);};HQData.PforecastInfo_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;var hqchartData={symbol:symbol,report:[]};var kData=data.HQChart.ChartPaint[0].Data;for(var i=0,j=1;i<kData.Data.length;++i){var kItem=kData.Data[i];if(i%10!=4)continue;var itemReport={date:kItem.Date,time:kItem.Time,title:"\u516C\u544A("+j+") xxxx"};hqchartData.report.push(itemReport);++j;}callback(hqchartData);};HQData.InvestorInfo_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;callback(TEST_NEWSINTERACT_DATA);};HQData.BlockTrading_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;callback(TEST_BLOCK_TRADING_DATA);};HQData.TradeDetail_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;callback(TEST_TRADE_DETAL_DATA);};/*暴露外部用的方法*/exports.default={HQData:HQData};
|
|
23
|
+
hqchartData.Data={Date:20230707,Value:240};hqchartData.DataType=1;callback(hqchartData);}};HQData.RequestOtherSymbolData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol;var period=data.Request.Data.period;var right=data.Request.Data.right;var hqchartData=null;if(ChartData.IsDayPeriod(period,true))hqchartData=KLINE_DAY_DATA2;else if(ChartData.IsMinutePeriod(period,true))hqchartData=KLINE_MINUTE_DATA2;hqchartData.name=symbol;hqchartData.symbol=symbol;callback(hqchartData);};HQData.AnnouncementInfo_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;var hqchartData={symbol:symbol,report:[]};var kData=data.HQChart.ChartPaint[0].Data;for(var i=0,j=1;i<kData.Data.length;++i){var kItem=kData.Data[i];if(i%10!=4)continue;var itemReport={releasedate:kItem.Date,time:kItem.Time,title:"\u516C\u544A("+j+") xxxx"};hqchartData.report.push(itemReport);++j;}callback(hqchartData);};HQData.PforecastInfo_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;var hqchartData={symbol:symbol,report:[]};var kData=data.HQChart.ChartPaint[0].Data;for(var i=0,j=1;i<kData.Data.length;++i){var kItem=kData.Data[i];if(i%10!=4)continue;var itemReport={date:kItem.Date,time:kItem.Time,title:"\u516C\u544A("+j+") xxxx"};hqchartData.report.push(itemReport);++j;}callback(hqchartData);};HQData.InvestorInfo_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;callback(TEST_NEWSINTERACT_DATA);};HQData.BlockTrading_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;callback(TEST_BLOCK_TRADING_DATA);};HQData.TradeDetail_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;callback(TEST_TRADE_DETAL_DATA);};/*暴露外部用的方法*/exports.default={HQData:HQData};
|
package/lib/umychart.vue.js
CHANGED
|
@@ -49,7 +49,8 @@ JSNetwork.HttpReqeust=function(obj) //对请求进行封装
|
|
|
49
49
|
StringFormat: 1=带单位万/亿 2=原始格式
|
|
50
50
|
Condition: 限制条件 { Symbol:'Index'/'Stock'(只支持指数/股票),Period:[](支持的周期), Include:[](指定支持的股票,代码全部大写包括后缀, Message:"提示信息")}
|
|
51
51
|
OutName:动态输出变量名字 [{Name:原始变量名, DynamicName:动态名字格式}] 如 {Name:"MA1", DynamicName:"MA{M1}"};
|
|
52
|
-
SplitType: Y
|
|
52
|
+
SplitType: Y轴分割类型,
|
|
53
|
+
YAxis:{ FloatPrecision:小数位数, StringFormat: } //Y轴刻度输出格式
|
|
53
54
|
*///周期条件枚举
|
|
54
55
|
var CONDITION_PERIOD={MINUTE_ID:101,//分钟 走势图
|
|
55
56
|
MULTIDAY_MINUTE_ID:102,//多日分钟 走势图
|
|
@@ -373,7 +374,7 @@ STICKLINE(SS == -1 OR SM <= -1 AND SS == 0, B1, C, 10, 0), COLORCYAN;\n\
|
|
|
373
374
|
STICKLINE(SS == 2, B2, C, 10, 1), COLORRED;\n\
|
|
374
375
|
STICKLINE(SS == -2, B2, C, 10, 0), COLORCYAN;\n\
|
|
375
376
|
STICKLINE((SS == -1 OR SS == -2) AND SM > 0, B2, B1, 10, 1), COLORRED;\n\
|
|
376
|
-
STICKLINE((SS == 1 OR SS == 2) AND SM < 0, B2, B1, 10, 0), COLORCYAN;'};return data;};JSIndexScript.prototype.AMO=function(){var data={Name:'AMO',Description:'成交金额',IsMainIndex:false,Args:[{Name:'M1',Value:5},{Name:'M2',Value:10}],Script://脚本
|
|
377
|
+
STICKLINE((SS == 1 OR SS == 2) AND SM < 0, B2, B1, 10, 0), COLORCYAN;'};return data;};JSIndexScript.prototype.AMO=function(){var data={Name:'AMO',Description:'成交金额',IsMainIndex:false,StringFormat:2,YAxis:{FloatPrecision:0,StringFormat:2},Args:[{Name:'M1',Value:5},{Name:'M2',Value:10}],Script://脚本
|
|
377
378
|
'AMOW:AMOUNT/10000.0,VOLSTICK;\n\
|
|
378
379
|
AMO1:MA(AMOW,M1);\n\
|
|
379
380
|
AMO2:MA(AMOW,M2);'};return data;};JSIndexScript.prototype.VRSI=function(){var data={Name:'VRSI',Description:'相对强弱量',IsMainIndex:false,Args:[{Name:'N1',Value:6},{Name:'N2',Value:12},{Name:'N3',Value:24}],Script://脚本
|
|
@@ -1385,7 +1386,7 @@ var scriptData=new JSIndexScript();if(option.ColorIndex)//五彩K线
|
|
|
1385
1386
|
}else if(item.JsonData){chart.WindowIndex[i]=new JsonDataIndex(item.Name,item.Script,item.Args,item);//脚本执行
|
|
1386
1387
|
}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:指标执行地址 }
|
|
1387
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;if(item.Lock)_indexInfo2.Lock=item.Lock;_indexInfo2.ID=item.Index;var args=_indexInfo2.Args;if(item.Args)args=item.Args;if(item.IsShortTitle)_indexInfo2.IsShortTitle=item.IsShortTitle;if(item.TitleFont)_indexInfo2.TitleFont=item.TitleFont;if(IFrameSplitOperator.IsBool(item.IsSync))_indexInfo2.IsSync=item.IsSync;chart.WindowIndex[i]=new ScriptIndex(_indexInfo2.Name,_indexInfo2.Script,args,_indexInfo2);//脚本执行
|
|
1388
|
-
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;}}//叠加指标宽度
|
|
1389
|
+
if(item.StringFormat>0)chart.WindowIndex[i].StringFormat=item.StringFormat;if(item.FloatPrecision>=0)chart.WindowIndex[i].FloatPrecision=item.FloatPrecision;if(item.YAxis){if(!_indexInfo2.YAxis)_indexInfo2.YAxis={};if(IFrameSplitOperator.IsNumber(item.YAxis.FloatPrecision))_indexInfo2.YAxis.FloatPrecision=item.YAxis.FloatPrecision;if(IFrameSplitOperator.IsNumber(item.YAxis.StringFormat))_indexInfo2.YAxis.StringFormat=item.YAxis.StringFormat;if(IFrameSplitOperator.IsBool(item.YAxis.EnableRemoveZero))_indexInfo2.YAxis.EnableRemoveZero=item.YAxis.EnableRemoveZero;}}}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;}}//叠加指标宽度
|
|
1389
1390
|
if(option.OverlayIndexFrameWidth>40)chart.Frame.FixedRightWidth.Overlay=option.OverlayIndexFrameWidth;//叠加指标
|
|
1390
1391
|
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线图
|
|
1391
1392
|
this.CreateCustomKLineChartContainer=function(option){var chart=new CustomKLineChartContainer(this.CanvasElement);//创建改参数div
|
|
@@ -2074,8 +2075,7 @@ this.Frame.SetSizeChage(true);if(this.UpdateXShowText)this.UpdateXShowText();thi
|
|
|
2074
2075
|
this.Draw();return index;};//增加一个指标窗口
|
|
2075
2076
|
this.AddIndexWindow=function(indexName,option){//查找系统指标
|
|
2076
2077
|
var scriptData=new JSIndexScript();var indexInfo=scriptData.Get(indexName);if(!indexInfo)return;this.RemoveMinSizeWindows();//清空隐藏的指标
|
|
2077
|
-
var index=this.AddNewSubFrame(option);
|
|
2078
|
-
KLineType:indexInfo.KLineType,YSpecificMaxMin:indexInfo.YSpecificMaxMin,YSplitScale:indexInfo.YSplitScale,FloatPrecision:indexInfo.FloatPrecision,Condition:indexInfo.Condition,StringFormat:indexInfo.StringFormat,OutName:indexInfo.OutName};if(option){if(option.FloatPrecision>=0)indexData.FloatPrecision=option.FloatPrecision;if(option.StringFormat>0)indexData.StringFormat=option.StringFormat;if(option.Args)indexData.Args=option.Args;if(option.Lock)indexData.Lock=option.Lock;}this.WindowIndex[index]=new ScriptIndex(indexData.Name,indexData.Script,indexData.Args,indexData);//脚本执行
|
|
2078
|
+
var index=this.AddNewSubFrame(option);if(option){if(option.FloatPrecision>=0)indexInfo.FloatPrecision=option.FloatPrecision;if(option.StringFormat>0)indexInfo.StringFormat=option.StringFormat;if(option.Args)indexInfo.Args=option.Args;if(option.Lock)indexInfo.Lock=option.Lock;if(option.YAxis){indexInfo.YAxis={};if(IFrameSplitOperator.IsNumber(option.YAxis.FloatPrecision))indexInfo.YAxis.FloatPrecision=option.YAxis.FloatPrecision;if(IFrameSplitOperator.IsNumber(option.YAxis.StringFormat))indexInfo.YAxis.StringFormat=option.YAxis.StringFormat;if(IFrameSplitOperator.IsBool(option.YAxis.EnableRemoveZero))indexInfo.YAxis.EnableRemoveZero=option.YAxis.EnableRemoveZero;}}this.WindowIndex[index]=new ScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo);//脚本执行
|
|
2079
2079
|
if(this.ClassName=="MinuteChartContainer"||this.ClassName=="MinuteChartHScreenContainer")var bindData=this.SourceData;else var bindData=this.ChartPaint[0].Data;this.BindIndexData(index,bindData);//执行脚本
|
|
2080
2080
|
};this.AddAPIIndexWindow=function(indexData,option){if(!indexData.API)return;this.RemoveMinSizeWindows();//清空隐藏的指标
|
|
2081
2081
|
var index=this.AddNewSubFrame(option);//使用API挂接指标数据 API:{ Name:指标名字, Script:指标脚本可以为空, Args:参数可以为空, Url:指标执行地址 }
|
|
@@ -2530,7 +2530,7 @@ this.IsOverlayMaxMin=function(obj){if(!this.ChartKLine)return false;if(!this.Cha
|
|
|
2530
2530
|
if(obj.Text.TextAlign==='right')obj.X-=textWidth;var max=this.ChartKLine.Max,min=this.ChartKLine.Min;var isOverlayMax=false,isOverlayMin=false;var textHeight=20;//字体高度
|
|
2531
2531
|
if(max.X>=obj.X&&max.X<=obj.X+textWidth)//最大值X 坐标不在 刻度文字范围内
|
|
2532
2532
|
{var y1=max.Y+textHeight,y2=max.Y-textHeight;if(y1>=obj.Y-textHeight&&y1<=obj.Y+textHeight||y2>=obj.Y-textHeight&&y2<=obj.Y+textHeight)isOverlayMax=true;}if(isOverlayMax==true)return true;if(min.X>=obj.X&&min.X<=obj.X+textWidth){var y1=min.Y+textHeight,y2=min.Y-textHeight;if(y1>=obj.Y-textHeight&&y1<=obj.Y+textHeight||y2>=obj.Y-textHeight&&y2<=obj.Y+textHeight)isOverlayMin=true;}return isOverlayMax||isOverlayMin;};//分割x,y轴坐标信息
|
|
2533
|
-
this.SplitXYCoordinate=function(){if(this.XYSplit==false){if(this.XSplit){if(this.XSplitOperator
|
|
2533
|
+
this.SplitXYCoordinate=function(){if(this.XYSplit==false){if(this.XSplit){if(this.XSplitOperator)this.XSplitOperator.Operator();if(this.YSplitOperator&&this.YSplitOperator.CustomCoordinate)this.YSplitOperator.CustomCoordinate();}return;}if(this.YSplitOperator!=null)this.YSplitOperator.Operator();if(this.XSplitOperator!=null)this.XSplitOperator.Operator();if(this.Logarithmic)this.SplitLogarithmicXYCoordinate();};this.SplitLogarithmicXYCoordinate=function(){var up=this.Logarithmic.Up;var down=this.Logarithmic.Down;var logHeight=0;//对数额外高度
|
|
2534
2534
|
var count=0;var maxCount=Math.max(up.length,down.length);var aryLogHeight=[];for(var i=0;i<maxCount;++i){aryLogHeight[i]=i*2;}for(var i=0,j=aryLogHeight.length-1;i<up.length;++i,--j){var item=up[i];item.LogHeight=aryLogHeight[j];logHeight+=item.LogHeight;++count;}for(var i=0,j=aryLogHeight.length-1;i<down.length;++i,--j){var item=down[i];item.LogHeight=aryLogHeight[j];logHeight+=item.LogHeight;++count;}var heightRate=2*GetDevicePixelRatio();var top=this.ChartBorder.GetTopEx();var bottom=this.ChartBorder.GetBottomEx();var height=bottom-top;var perHeight=(height-logHeight*heightRate)/count;if(perHeight<0){perHeight=0;heightRate=height/logHeight;}if(this.CoordinateType==1)//反转坐标
|
|
2535
2535
|
{var itemTop=top;for(var i=down.length-1;i>=0;--i)//上部
|
|
2536
2536
|
{var item=down[i];item.Height=perHeight+heightRate*item.LogHeight;item.Top=itemTop;item.Bottom=item.Top+item.Height;itemTop=item.Bottom;}var itemBottom=bottom;for(var i=up.length-1;i>=0;--i)//下部
|
|
@@ -4807,7 +4807,8 @@ this.EndDate;//{ Date:, Index: }
|
|
|
4807
4807
|
this.CenterDate;//{ Date:, Index: }
|
|
4808
4808
|
this.HQChart;this.DragRect;//拖拽边框区域数组 []
|
|
4809
4809
|
this.ShowRangeText={Enable:false,Position:0,//0顶部 1=中间 2=底部
|
|
4810
|
-
Font:g_JSChartResource.RectSelect.RangeTextFont,Color:g_JSChartResource.RectSelect.RangeTextColor,BGColor:g_JSChartResource.RectSelect.RangeTextBGColor,SubPosition:0,SubFont:g_JSChartResource.RectSelect.RangeTextSubFont,SubColor:g_JSChartResource.RectSelect.RangeTextSubColor,SubBGColor:g_JSChartResource.RectSelect.RangeTextSubBGColor};this.BorderCache;this.IsOnlyOnePoint=false
|
|
4810
|
+
Font:g_JSChartResource.RectSelect.RangeTextFont,Color:g_JSChartResource.RectSelect.RangeTextColor,BGColor:g_JSChartResource.RectSelect.RangeTextBGColor,SubPosition:0,SubFont:g_JSChartResource.RectSelect.RangeTextSubFont,SubColor:g_JSChartResource.RectSelect.RangeTextSubColor,SubBGColor:g_JSChartResource.RectSelect.RangeTextSubBGColor};this.BorderCache;this.IsOnlyOnePoint=false;//空格选中区间,单点模式
|
|
4811
|
+
this.IsFullFrame=false;//区间选择包含子窗口
|
|
4811
4812
|
//设置参数接口
|
|
4812
4813
|
this.SetOption=function(option){if(option){if(option.LineColor)this.LineColor=option.LineColor;if(option.AreaColor)this.AreaColor=option.AreaColor;if(IFrameSplitOperator.IsBool(option.SpaceReselected))this.SpaceReselected=option.SpaceReselected;if(option.ShowRangeText){var item=option.ShowRangeText;if(IFrameSplitOperator.IsBool(item.Enable))this.ShowRangeText.Enable=item.Enable;if(IFrameSplitOperator.IsNumber(item.Position))this.ShowRangeText.Position=item.Position;if(IFrameSplitOperator.IsNumber(item.SubPosition))this.ShowRangeText.SubPosition=item.SubPosition;}}};this.ReloadResource=function(resource){this.LineColor=g_JSChartResource.RectSelect.LineColor;//竖线
|
|
4813
4814
|
this.LineWidth=g_JSChartResource.RectSelect.LineWidth;this.LineDotted=g_JSChartResource.RectSelect.LineDotted;this.AreaColor=g_JSChartResource.RectSelect.AreaColor;//面积
|
|
@@ -4820,7 +4821,8 @@ if(this.SubClient.FirstPoint&&this.SubClient.SecondPoint){var firstValue=this.Da
|
|
|
4820
4821
|
if(this.SubClient.End.Date<=this.StartDate.Date||this.SubClient.Start.Date>=this.EndDate.Date){this.SubClient.Start=null;this.SubClient.End=null;}else{if(this.SubClient.Start.Date<this.StartDate.Date)this.SubClient.Start.Date=this.StartDate.Date;if(this.SubClient.End.Date>this.EndDate.Date)this.SubClient.End.Date=this.EndDate.Date;}}}};this.GetCenterPoint=function(){if(!this.FirstPoint||!this.SecondPoint)return null;if(!IFrameSplitOperator.IsNumber(this.FirstPoint.DataIndex))return null;if(!IFrameSplitOperator.IsNumber(this.SecondPoint.DataIndex))return null;var count=this.FirstPoint.DataIndex-this.SecondPoint.DataIndex;if(Math.abs(count)<3)return null;var centerIndex=parseInt(this.FirstPoint.DataIndex+(this.SecondPoint.DataIndex-this.FirstPoint.DataIndex)/2);if(centerIndex<0)return null;var data=this.GetKData();if(!data||!data.Data)return null;var kItem=data.Data[centerIndex];if(!kItem)return null;return{Date:kItem.Date,Time:kItem.Time,DataIndex:centerIndex};};this.MovePoint=function(offset){if(!this.FirstPoint||!this.SecondPoint)return false;var data=this.GetKData();if(!data||!data.Data)return false;var dataIndex=this.FirstPoint.DataIndex+offset;var kItem=data.Data[dataIndex];if(!kItem)return false;var firstPoint={Date:kItem.Date,Time:kItem.Time,DataIndex:dataIndex};var dataIndex=this.SecondPoint.DataIndex+offset;var kItem=data.Data[dataIndex];if(!kItem)return false;var secondPoint={Date:kItem.Date,Time:kItem.Time,DataIndex:dataIndex};var dataIndex=this.CenterPoint.DataIndex+offset;var kItem=data.Data[dataIndex];if(!kItem)return false;var centerPoint={Date:kItem.Date,Time:kItem.Time,DataIndex:dataIndex};this.FirstPoint=firstPoint;this.SecondPoint=secondPoint;this.CenterPoint=centerPoint;return true;};this.MoveSubRect=function(step,isLeft){if(!this.FirstPoint||!this.SecondPoint)return false;if(!this.SubClient||!this.SubClient.FirstPoint||!this.SubClient.SecondPoint)return false;var data=this.GetKData();if(!data||!data.Data)return false;//区间范围
|
|
4821
4822
|
var startIndex=Math.min(this.FirstPoint.DataIndex,this.SecondPoint.DataIndex);var endIndex=Math.max(this.FirstPoint.DataIndex,this.SecondPoint.DataIndex);var subStartPoint=this.SubClient.FirstPoint;var subEndPoint=this.SubClient.SecondPoint;if(this.SubClient.FirstPoint.DataIndex>this.SubClient.SecondPoint.DataIndex){var subStartPoint=this.SubClient.SecondPoint;var subEndPoint=this.SubClient.FirstPoint;}var subStartIndex=subStartPoint.DataIndex;var subEndIndex=subEndPoint.DataIndex;if(isLeft){if(subStartIndex<=startIndex)return false;subStartIndex-=step;subEndIndex-=step;}else{if(subEndPoint.DataIndex>=endIndex)return false;subStartIndex+=step;subEndIndex+=step;}var bChanged=false;if(subStartIndex!=subStartPoint.DataIndex){subStartPoint.DataIndex=subStartIndex;var kItem=data.Data[subStartIndex];subStartPoint.Date=kItem.Date;subStartPoint.Time=kItem.Time;bChanged=true;}if(subEndIndex!=subStartPoint.DataIndex){subEndPoint.DataIndex=subEndIndex;var kItem=data.Data[subEndIndex];subEndPoint.Date=kItem.Date;subEndPoint.Time=kItem.Time;bChanged=true;}return bChanged;};this.SetPoint=function(kItem,option){var dataIndex=null;if(option){if(IFrameSplitOperator.IsNumber(option.DataIndex))dataIndex=option.DataIndex;}if(option&&IFrameSplitOperator.IsNumber(option.Index)){switch(option.Index){case 0:this.FirstPoint={Date:kItem.Date,Time:kItem.Time,DataIndex:dataIndex};this.CenterPoint=this.GetCenterPoint();return true;case 1:this.SecondPoint={Date:kItem.Date,Time:kItem.Time,DataIndex:dataIndex};this.CenterPoint=this.GetCenterPoint();return true;case 2://中心偏移
|
|
4822
4823
|
var offset=dataIndex-this.CenterPoint.DataIndex;//this.CenterPoint={ Date:kItem.Date, Time:kItem.Time, DataIndex:dataIndex };
|
|
4823
|
-
if(Math.abs(offset)>0)return this.MovePoint(offset);return false;case 3:this.SubClient.FirstPoint={Date:kItem.Date,Time:kItem.Time,DataIndex:dataIndex};return true;case 4:this.SubClient.SecondPoint={Date:kItem.Date,Time:kItem.Time,DataIndex:dataIndex};return true;default:return false;}}else{if(this.IsOnlyOnePoint){this.FirstPoint={Date:kItem.Date,Time:kItem.Time,DataIndex:dataIndex};return true;}if(!this.FirstPoint){this.FirstPoint={Date:kItem.Date,Time:kItem.Time,DataIndex:dataIndex};return true;}if(!this.SecondPoint){this.SecondPoint={Date:kItem.Date,Time:kItem.Time,DataIndex:dataIndex};this.CenterPoint=this.GetCenterPoint();return true;}return false;}};this.ClearPoint=function(){if(this.PreventClose)return false;var bRedraw=false;if(this.FirstPoint){this.FirstPoint=null;bRedraw=true;}if(this.SecondPoint){this.SecondPoint=null;bRedraw=true;}this.SubClient.FirstPoint=null;this.SubClient.SecondPoint=null;return bRedraw;};this.Draw=function(){this.BorderCache=null;this.StartDate=null;this.EndDate=null;this.CenterDate=null;this.DragRect=[];this.SubClient.Start=null;this.SubClient.End=null;if(!this.FirstPoint&&!this.SecondPoint)return;this.SortPoint();var data=this.GetKData();if(!data)return;this.Data=data;if(!this.ChartFrame||!this.ChartFrame.SubFrame)return;var subFrame=this.ChartFrame.SubFrame[0].Frame;if(!subFrame)return;var isHScreen=subFrame.IsHScreen===true;var dataWidth=subFrame.DataWidth;var distanceWidth=subFrame.DistanceWidth;var xPointCount=subFrame.XPointCount;if(isHScreen){var border=subFrame.GetBorder();var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.BottomEx;this.BorderCache=border;}else{var border=subFrame.GetBorder();
|
|
4824
|
+
if(Math.abs(offset)>0)return this.MovePoint(offset);return false;case 3:this.SubClient.FirstPoint={Date:kItem.Date,Time:kItem.Time,DataIndex:dataIndex};return true;case 4:this.SubClient.SecondPoint={Date:kItem.Date,Time:kItem.Time,DataIndex:dataIndex};return true;default:return false;}}else{if(this.IsOnlyOnePoint){this.FirstPoint={Date:kItem.Date,Time:kItem.Time,DataIndex:dataIndex};return true;}if(!this.FirstPoint){this.FirstPoint={Date:kItem.Date,Time:kItem.Time,DataIndex:dataIndex};return true;}if(!this.SecondPoint){this.SecondPoint={Date:kItem.Date,Time:kItem.Time,DataIndex:dataIndex};this.CenterPoint=this.GetCenterPoint();return true;}return false;}};this.ClearPoint=function(){if(this.PreventClose)return false;var bRedraw=false;if(this.FirstPoint){this.FirstPoint=null;bRedraw=true;}if(this.SecondPoint){this.SecondPoint=null;bRedraw=true;}this.SubClient.FirstPoint=null;this.SubClient.SecondPoint=null;return bRedraw;};this.Draw=function(){this.BorderCache=null;this.StartDate=null;this.EndDate=null;this.CenterDate=null;this.DragRect=[];this.SubClient.Start=null;this.SubClient.End=null;if(!this.FirstPoint&&!this.SecondPoint)return;this.SortPoint();var data=this.GetKData();if(!data)return;this.Data=data;if(!this.ChartFrame||!this.ChartFrame.SubFrame)return;var subFrame=this.ChartFrame.SubFrame[0].Frame;if(!subFrame)return;var isHScreen=subFrame.IsHScreen===true;var dataWidth=subFrame.DataWidth;var distanceWidth=subFrame.DistanceWidth;var xPointCount=subFrame.XPointCount;if(isHScreen){var border=subFrame.GetBorder();var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.BottomEx;this.BorderCache=border;}else{var border=subFrame.GetBorder();if(this.IsFullFrame)border=this.ChartFrame.ChartBorder.GetBorder();//全部指标窗口选中
|
|
4825
|
+
var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;var drawHeight=border.ChartHeight-border.TopTitle-5*GetDevicePixelRatio();var top=border.TopEx;var bottom=border.BottomEx;this.BorderCache=border;}this.Canvas.save();var isDayPeriod=ChartData.IsDayPeriod(this.HQChart.Period,true);var isMinuteChart=this.IsMinuteChart();var startPoint=null,endPoint=null,subStartPoint=null,subEndPoint=null;var startDate=null,startEnd=null;var aryLines=[];for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var item=this.Data.Data[i];if(!item)continue;var left=xOffset;var right=xOffset+dataWidth;if(isMinuteChart)var x=subFrame.GetXFromIndex(j);else var x=left+(right-left)/2;var value=this.DateToNumber(item,isMinuteChart);if(this.StartDate&&value==this.StartDate.Date){startPoint={XIndex:i,X:x,Top:top,Bottom:bottom,PointIndex:this.StartDate.Index,Type:0,Item:item};aryLines.push(startPoint);}if(this.EndDate&&value==this.EndDate.Date){endPoint={XIndex:i,X:x,Top:top,Bottom:bottom,PointIndex:this.EndDate.Index,Type:1,Item:item};aryLines.push(endPoint);}if(this.CenterDate&&value==this.CenterDate.Date){var centerPoint={XIndex:i,X:x,Top:top,Bottom:bottom,PointIndex:this.CenterDate.Index,Type:2,Item:item};aryLines.push(centerPoint);}if(this.SubClient&&this.SubClient.Start&&this.SubClient.End){if(value==this.SubClient.Start.Date){this.SubClient.Start.Point={Date:value,X:x,Top:top,Bottom:bottom,KItem:item};}if(value==this.SubClient.End.Date){this.SubClient.End.Point={Date:value,X:x,Top:top,Bottom:bottom,kItem:item};}}if(!startDate){startDate={Date:value,X:x,Top:top,Bottom:bottom};startEnd={Date:value,X:x,Top:top,Bottom:bottom};}else{startEnd.Date=value;startEnd.X=x;}if(startPoint&&endPoint)break;}this.DrawLines(aryLines);this.DrawArea(startPoint,endPoint,startDate,startEnd,this.AreaColor);if(this.SubClient&&this.SubClient.Start&&this.SubClient.End){this.DrawArea(this.SubClient.Start.Point,this.SubClient.End.Point,startDate,startEnd,this.SubAreaColor,4);if(this.SubClient.Start.Point){var item=this.SubClient.Start.Point;var point={X:item.X,Top:item.Top,Bottom:item.Bottom,PointIndex:item.DataIndex,Type:3,Item:item.KItem};aryLines.push(point);}}this.DrawRangeText(aryLines);this.Canvas.restore();};this.DrawRangeText=function(aryLines){if(!this.ShowRangeText)return;if(this.ShowRangeText.Enable==false)return;//文字
|
|
4824
4826
|
var border=this.BorderCache;var isMinuteChart=this.IsMinuteChart();var period=this.HQChart.Period;var x,y,text;for(var i=0;i<aryLines.length;++i){var item=aryLines[i];if(item.Type===0||item.Type==1||item.Type==3)//第1个点,第2个点
|
|
4825
4827
|
{if(isMinuteChart){var strDate=IFrameSplitOperator.FormatDateString(item.Item.Date,"YYYY-MM-DD");var strTime=IFrameSplitOperator.FormatTimeString(item.Item.Time,"HH:MM");text=strDate+' '+strTime;}else{var strDate=IFrameSplitOperator.FormatDateString(item.Item.Date,"YYYY-MM-DD");var strTime=null;if(ChartData.IsMinutePeriod(period,true))strTime=IFrameSplitOperator.FormatTimeString(item.Item.Time,"HH:MM");else if(ChartData.IsSecondPeriod(period)||ChartData.IsTickPeriod(period))strTime=IFrameSplitOperator.FormatTimeString(item.Item.Time,"HH:MM:SS");if(strTime)text=strDate+' '+strTime;else text=strDate;}if(item.Type==3){var postion=this.ShowRangeText.SubPosition;var bgColor=this.ShowRangeText.SubBGColor;var textColor=this.ShowRangeText.SubColor;this.Canvas.font=this.ShowRangeText.SubFont;var textHeight=this.GetFontHeight();}else{var postion=this.ShowRangeText.Position;var bgColor=this.ShowRangeText.BGColor;var textColor=this.ShowRangeText.Color;this.Canvas.font=this.ShowRangeText.Font;var textHeight=this.GetFontHeight();}var textWidth=this.Canvas.measureText(text).width+4;var rtBG={Height:textHeight,Width:textWidth};if(item.Type==0||item.Type==3)//第1个点
|
|
4826
4828
|
{if(textWidth>item.X){this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";x=item.X+2;rtBG.X=item.X;}else{this.Canvas.textAlign="right";this.Canvas.textBaseline="middle";x=item.X-2;rtBG.X=item.X-textWidth;}}else if(item.Type==1)//第2个点
|
|
@@ -4964,7 +4966,7 @@ PAGE_LAST_OVERLAY_INDEX_VALUE_ID:5//叠加指标前屏最后一个数据刻度
|
|
|
4964
4966
|
this.Frame;//框架信息
|
|
4965
4967
|
this.FrameSplitData;//坐标轴分割方法
|
|
4966
4968
|
this.SplitCount=5;//刻度个数
|
|
4967
|
-
this.StringFormat=0;//刻度字符串格式
|
|
4969
|
+
this.StringFormat=0;//刻度字符串格式 2=原始格式
|
|
4968
4970
|
this.IsShowLeftText=true;//显示左边刻度
|
|
4969
4971
|
this.IsShowRightText=true;//显示右边刻度
|
|
4970
4972
|
this.LanguageID=JSCHART_LANGUAGE_ID.LANGUAGE_CHINESE_ID;this.GetEventCallback;//事件回调
|
|
@@ -4991,7 +4993,8 @@ if(IFrameSplitOperator.IsNumber(option.LineType))info.LineType=option.LineType;i
|
|
|
4991
4993
|
if(!pageInfo)return;if(!this.OverlayIndex)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.OverlayIndex.ChartPaint))return;var event=null;if(this.GetEventCallback)event=this.GetEventCallback(JSCHART_EVENT_ID.ON_FORMAT_OVERLAY_INDEX_Y_LABEL);var endIndex=pageInfo.End.Index;var floatPrecision=2;if(IFrameSplitOperator.IsNumber(this.FloatPrecision))floatPrecision=this.FloatPrecision;for(var i=0,j=0;i<this.OverlayIndex.ChartPaint.length;++i){var chart=this.OverlayIndex.ChartPaint[i];if(!chart.ChartFrame)continue;if(!chart.GetItemData)continue;var aryItem=chart.GetItemData({Index:endIndex});if(!IFrameSplitOperator.IsNonEmptyArray(aryItem))continue;for(j=0;j<aryItem.length;++j){var item=aryItem[j];var info=new CoordinateInfo();info.Type=1;info.TextColor=g_JSChartResource.FrameLatestPrice.TextColor;info.LineColor=item.Color;info.LineType=-1;//默认不画线
|
|
4992
4994
|
info.IsLast=pageInfo.IsLast;//是否是最后一个数据
|
|
4993
4995
|
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轴刻度
|
|
4994
|
-
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;};
|
|
4996
|
+
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
|
+
{};}//字符串格式化 千分位分割
|
|
4995
4998
|
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=小数位数
|
|
4996
4999
|
IFrameSplitOperator.FormatValueString=function(value,floatPrecision,languageID){/*
|
|
4997
5000
|
if (value==null || isNaN(value))
|
|
@@ -5124,7 +5127,10 @@ this.Frame.HorizontalInfo.splice(0,0,item);}this.Frame.Logarithmic={Up:aryUp,Dow
|
|
|
5124
5127
|
if(!isFixedMaxMin)this.IntegerCoordinateSplit(splitData);this.Frame.HorizontalInfo=[];for(var i=0,value=splitData.Min;i<splitData.Count;++i,value+=splitData.Interval){this.Frame.HorizontalInfo[i]=new CoordinateInfo();this.Frame.HorizontalInfo[i].Value=value;if(this.IsShowLeftText)this.Frame.HorizontalInfo[i].Message[0]=value.toFixed(floatPrecision);if(this.IsShowRightText)this.Frame.HorizontalInfo[i].Message[1]=value.toFixed(floatPrecision);}};this.SplitFixed=function(splitData,floatPrecision)//固定分割坐标
|
|
5125
5128
|
{this.Frame.HorizontalInfo=[];for(var i=0,value=splitData.Min;i<splitData.Count;++i,value+=splitData.Interval){this.Frame.HorizontalInfo[i]=new CoordinateInfo();this.Frame.HorizontalInfo[i].Value=value;if(this.IsShowLeftText)this.Frame.HorizontalInfo[i].Message[0]=value.toFixed(floatPrecision);if(this.IsShowRightText)this.Frame.HorizontalInfo[i].Message[1]=value.toFixed(floatPrecision);}};this.SplitFixedV2=function(splitData,floatPrecision)//固定分割坐标
|
|
5126
5129
|
{this.Frame.HorizontalInfo=[];for(var i=0,value=splitData.Min;i<splitData.Count;++i,value+=splitData.Interval){this.Frame.HorizontalInfo[i]=new CoordinateInfo();this.Frame.HorizontalInfo[i].Value=value;if(this.IsShowLeftText)this.Frame.HorizontalInfo[i].Message[0]=value.toFixed(floatPrecision);if(this.IsShowRightText)this.Frame.HorizontalInfo[i].Message[1]=value.toFixed(floatPrecision);}if(!splitData.IsFixedMaxMin)//缩放不需要调整大小
|
|
5127
|
-
{if(floatPrecision==0){splitData.Max+=1;splitData.Min-=1;}else if(floatPrecision==1){splitData.Max+=0.1;splitData.Min-=0.1;}else if(floatPrecision==2){splitData.Max+=0.01;splitData.Min-=0.01;}}};this.CustomCoordinate=function(floatPrecision){
|
|
5130
|
+
{if(floatPrecision==0){splitData.Max+=1;splitData.Min-=1;}else if(floatPrecision==1){splitData.Max+=0.1;splitData.Min-=0.1;}else if(floatPrecision==2){splitData.Max+=0.01;splitData.Min-=0.01;}}};this.CustomCoordinate=function(floatPrecision){if(!IFrameSplitOperator.IsNumber(floatPrecision)){var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
|
|
5131
|
+
var width=this.Frame.ChartBorder.GetChartWidth();//画布的宽度
|
|
5132
|
+
var isPhoneModel=width<450*pixelTatio;floatPrecision=GetfloatPrecision(this.Symbol);if(isPhoneModel&&MARKET_SUFFIX_NAME.IsSHSZIndex(this.Symbol))floatPrecision=0;//手机端指数不显示小数位数,太长了
|
|
5133
|
+
if(this.FloatPrecision!=null)floatPrecision=this.FloatPrecision;}this.Frame.CustomHorizontalInfo=[];var data=this.InvokeCustomYCoordinateCallback();if(data&&data.PreventDefault==true)return;var lastCoordinate,pageLastCoordinate;for(var i=0;i<this.Custom.length;++i){var item=this.Custom[i];if(item.Type==JSCHART_CUSTOM_YCOORDINATE_ID.LATEST_VALUE_ID||item.Type==JSCHART_CUSTOM_YCOORDINATE_ID.PAGE_DATA_INCREASE||item.Type==JSCHART_CUSTOM_YCOORDINATE_ID.PAGE_LAST_PRICE_ID){var dec=floatPrecision;//外部设置小数位数
|
|
5128
5134
|
if(IFrameSplitOperator.IsNumber(item.FloatPrecision)&&item.FloatPrecision>=0)dec=item.FloatPrecision;var latestItem=this.GetLatestPrice(dec,item);if(latestItem){if(item.Type==JSCHART_CUSTOM_YCOORDINATE_ID.LATEST_VALUE_ID)lastCoordinate=latestItem;else if(item.Type==JSCHART_CUSTOM_YCOORDINATE_ID.PAGE_LAST_PRICE_ID)pageLastCoordinate=latestItem;else this.Frame.CustomHorizontalInfo.push(latestItem);}}else if(item.Type==JSCHART_CUSTOM_YCOORDINATE_ID.FIXED_VALUE_ID)//固定刻度
|
|
5129
5135
|
{this.CustomFixedCoordinate(item);}else if(item.Type==JSCHART_CUSTOM_YCOORDINATE_ID.PAGE_LAST_INDEX_VALUE_ID)//当前屏指标最后一个数据
|
|
5130
5136
|
{this.CustomLatestIndexDataCoordinate(item);}}//当前页最后一个数据和最新数据刻度如果相同,只显示一个
|
|
@@ -5165,7 +5171,8 @@ coordinate.Message[1]=IFrameSplitOperator.FormatValueString(value,floatPrecision
|
|
|
5165
5171
|
//this.Frame.HorizontalInfo[i].TextColor="rgb(100,0,200)";
|
|
5166
5172
|
//this.Frame.HorizontalInfo[i].LineColor="rgb(220,220,220)";
|
|
5167
5173
|
}}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.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};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)//手机端格式 如果有万,亿单位了 去掉小数
|
|
5168
|
-
{var floatPrecision=this.FloatPrecision;if(IFrameSplitOperator.IsNumber(value)&&Math.abs(value)>1000)floatPrecision=0;text=IFrameSplitOperator.FormatValueString(value,floatPrecision,this.LanguageID);}else
|
|
5174
|
+
{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)//原始数据输出
|
|
5175
|
+
{text=''+value.toFixed(this.FloatPrecision);}else{var absValue=Math.abs(value);if(absValue<0.0000000001){text=0;}else if(absValue<this.FLOATPRECISION_RANGE[this.FLOATPRECISION_RANGE.length-1]){text=value.toExponential(2).toString();}else{var floatPrecision=this.GetFloatPrecision(absValue,this.FloatPrecision);//数据比小数位数还小, 调整小数位数
|
|
5169
5176
|
text=IFrameSplitOperator.FormatValueString(value,floatPrecision,this.LanguageID);}}return text;};this.FilterIgnoreYValue=function(){if(!this.IgnoreYValue||this.IgnoreYValue.length<=0)return;var setValue=new _set2.default(this.IgnoreYValue);this.Frame.HorizontalInfo=this.Frame.HorizontalInfo.filter(function(item){return!setValue.has(item.Value);});};this.DynamicMessageText=function(){if(this.SplitType==2){for(var i=0;i<this.Frame.HorizontalInfo.length;++i){var item=this.Frame.HorizontalInfo[i];if(item.Message[0])item.Message[0]+='%';if(item.Message[1])item.Message[1]+='%';}}};this.CallAcutionSplitY=function(count,splitData){if(this.Frame.Identify!=1)return null;var aryCallAcution=this.GetCallAcutionSplitY(count,splitData);if(!aryCallAcution)return;for(var i=0;i<this.Frame.HorizontalInfo.length;++i)//把显示的数据迁移到 Message[2] Message[3]
|
|
5170
5177
|
{var item=this.Frame.HorizontalInfo[i];if(aryCallAcution.IsBeforeData){item.Message[2]=item.Message[0];item.Message[0]=null;}if(aryCallAcution.IsAfterData&&(this.ShareAfterVol==0||this.ShareAfterVol==2)){item.Message[3]=item.Message[1];item.Message[1]=null;}}//集合竞价的坐标插入最后
|
|
5171
5178
|
for(var i=0;i<aryCallAcution.HorizontalInfo.length;++i){var item=aryCallAcution.HorizontalInfo[i];this.Frame.HorizontalInfo.push(item);}};this.GetCallAcutionSplitY=function(count,splitData){if(this.Frame.Identify!=1)return null;var isBeforeData=this.IsBeforeData==true&&this.BeforeOpenData&&(this.BeforeOpenData.Ver==2.0||this.BeforeOpenData.Ver==3.0);var isAfterData=this.IsAfterData==true&&this.AfterCloseData&&(this.AfterCloseData.Ver==2.0||this.AfterCloseData.Ver==3.0);if(isBeforeData||isAfterData){var intervalY=(splitData.Max-splitData.Min)/(count-1);if(isBeforeData)var intervalLeft=(this.BeforeOpenData.VolMax-this.BeforeOpenData.VolMin)/(count-1);if(isAfterData)var intervalRight=(this.AfterCloseData.VolMax-this.AfterCloseData.VolMin)/(count-1);var aryHorizontalInfo=[];for(var i=0;i<count;++i){var item=new CoordinateInfo();var yValue=intervalY*i;item.Value=yValue;item.LineType=8;if(isBeforeData){var leftValue=intervalLeft*i;item.Message[0]=this.FormatValueString(leftValue);}if(isAfterData&&(this.ShareAfterVol==0||this.ShareAfterVol==2)){var rightValue=intervalRight*i;item.Message[1]=this.FormatValueString(rightValue);}aryHorizontalInfo.push(item);}return{HorizontalInfo:aryHorizontalInfo,IsBeforeData:isBeforeData,IsAfterData:isAfterData};}var isMultiDayBeforeData=false;var intervalLeft=null;if(this.MultiDayBeforeOpenData&&IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData)){isMultiDayBeforeData=true;var firstDayData=this.MultiDayBeforeOpenData[0];if(firstDayData.Ver==2.0||firstDayData.Ver==3.0){var intervalLeft=(firstDayData.VolMax-firstDayData.VolMin)/(count-1);}}var isMultiDayAfterData=false;var intervalRight=null;if(this.MultiDayAfterCloseData&&IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData)){isMultiDayAfterData=true;var firstDayData=this.MultiDayAfterCloseData[0];if(firstDayData.Ver==2.0||firstDayData.Ver==3.0){var intervalRight=(firstDayData.VolMax-firstDayData.VolMin)/(count-1);}}if(isMultiDayBeforeData||isMultiDayAfterData){var intervalY=(splitData.Max-splitData.Min)/(count-1);var aryHorizontalInfo=[];for(var i=0;i<count;++i){var item=new CoordinateInfo();var yValue=intervalY*i;item.Value=yValue;item.LineType=9;var isVaild=false;if(intervalLeft!=null){var leftValue=intervalLeft*i;item.Message[0]=this.FormatValueString(leftValue);isVaild=true;}if(intervalRight!=null&&(this.ShareAfterVol==0||this.ShareAfterVol==2)){var rightValue=intervalRight*i;item.Message[1]=this.FormatValueString(rightValue);isVaild=true;}if(isVaild)aryHorizontalInfo.push(item);}if(IFrameSplitOperator.IsNonEmptyArray(aryHorizontalInfo))return{HorizontalInfo:aryHorizontalInfo,IsBeforeData:isMultiDayBeforeData,IsAfterData:isMultiDayAfterData};}return null;};this.RightFrameSplitY=function(){if(!this.Frame.RightFrame)return;var rightFrame=this.Frame.RightFrame;if(rightFrame.YSplitOperator)rightFrame.YSplitOperator.Operator();for(var i=0;i<this.Frame.HorizontalInfo.length;++i){var item=this.Frame.HorizontalInfo[i];var y=this.Frame.GetYFromData(item.Value);var yValue=rightFrame.GetYData(y);item.Message[1]=IFrameSplitOperator.FormatValueString(yValue,this.FloatPrecision,this.LanguageID);}};this.CustomCoordinate=function(){this.Frame.CustomHorizontalInfo=[];var data=this.InvokeCustomYCoordinateCallback();if(data&&data.PreventDefault==true)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.Custom))return;for(var i=0;i<this.Custom.length;++i){var item=this.Custom[i];if(item.Type==JSCHART_CUSTOM_YCOORDINATE_ID.PAGE_LAST_INDEX_VALUE_ID)//当前屏最后一个数据
|
|
@@ -7288,9 +7295,8 @@ if(IFrameSplitOperator.IsBool(obj.IsShareY))frame.IsShareY=obj.IsShareY;if(IFram
|
|
|
7288
7295
|
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;//自定义刻度绘制在主图上
|
|
7289
7296
|
if(IFrameSplitOperator.IsBool(item.IsShowToolbar))frame.IsShowToolbar=item.IsShowToolbar;//是否显示工具栏
|
|
7290
7297
|
}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};//叠加指标信息
|
|
7291
|
-
overlayFrame.Script=apiIndex;}else if(indexInfo){
|
|
7292
|
-
var
|
|
7293
|
-
KLineType:indexInfo.KLineType,YSpecificMaxMin:indexInfo.YSpecificMaxMin,YSplitScale:indexInfo.YSplitScale,FloatPrecision:indexInfo.FloatPrecision,Condition:indexInfo.Condition,OutName:indexInfo.OutName};if(IFrameSplitOperator.IsNumber(obj.FloatPrecision))indexData.FloatPrecision=obj.FloatPrecision;if(IFrameSplitOperator.IsNumber(obj.StringFormat))indexData.StringFormat=obj.StringFormat;if(IFrameSplitOperator.IsBool(obj.IsSync))indexData.IsSync=obj.IsSync;var scriptIndex=new OverlayScriptIndex(indexData.Name,indexData.Script,indexData.Args,indexData);//脚本执行
|
|
7298
|
+
overlayFrame.Script=apiIndex;}else if(indexInfo){if(obj.Args)indexInfo.Args=obj.Args;//外部可以设置参数
|
|
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);//脚本执行
|
|
7294
7300
|
scriptIndex.OverlayIndex={IsOverlay:true,Identify:overlayFrame.Identify,WindowIndex:windowIndex,Frame:overlayFrame};//叠加指标信息
|
|
7295
7301
|
overlayFrame.Script=scriptIndex;}else{var scriptIndex=indexCustom.Create();scriptIndex.OverlayIndex={IsOverlay:true,Identify:overlayFrame.Identify,WindowIndex:windowIndex,Frame:overlayFrame};//叠加指标信息
|
|
7296
7302
|
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)//删除叠加指标
|
|
@@ -7329,8 +7335,7 @@ for(var i=0;i<currentLength;++i){this.DeleteIndexPaint(i);var frame=this.Frame.S
|
|
|
7329
7335
|
{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)//自定义指标脚本
|
|
7330
7336
|
{this.WindowIndex[i]=new ScriptIndex(item.Name,item.Script,item.Args,item);//脚本执行
|
|
7331
7337
|
}else if(item.API)//后台指标
|
|
7332
|
-
{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){var args=indexInfo.Args;if(option.Windows[i].Args)args=option.Windows[i].Args;
|
|
7333
|
-
KLineType:indexInfo.KLineType,YSpecificMaxMin:indexInfo.YSpecificMaxMin,YSplitScale:indexInfo.YSplitScale,FloatPrecision:indexInfo.FloatPrecision,Condition:indexInfo.Condition,OutName:indexInfo.OutName};if(item.TitleFont)indexData.TitleFont=item.TitleFont;this.WindowIndex[i]=new ScriptIndex(indexData.Name,indexData.Script,indexData.Args,indexData);//脚本执行
|
|
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){var args=indexInfo.Args;if(option.Windows[i].Args)args=option.Windows[i].Args;if(item.TitleFont)indexInfo.TitleFont=item.TitleFont;if(item.IsShortTitle)indexInfo.IsShortTitle=item.IsShortTitle;if(IFrameSplitOperator.IsBool(item.IsSync))indexInfo.IsSync=item.IsSync;if(item.YAxis){if(!indexInfo.YAxis)indexInfo.YAxis={};if(IFrameSplitOperator.IsNumber(item.YAxis.FloatPrecision))indexInfo.YAxis.FloatPrecision=item.YAxis.FloatPrecision;if(IFrameSplitOperator.IsNumber(item.YAxis.StringFormat))indexInfo.YAxis.StringFormat=item.YAxis.StringFormat;}this.WindowIndex[i]=new ScriptIndex(indexInfo.Name,indexInfo.Script,args,indexInfo);//脚本执行
|
|
7334
7339
|
}}}this.SetSubFrameAttribute(this.Frame.SubFrame[i],item,frameItem);}//最后一个显示X轴坐标
|
|
7335
7340
|
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)//请求指标
|
|
7336
7341
|
{this.BindIndexData(i,bindData);}this.UpdataDataoffset();//更新数据偏移
|
|
@@ -7388,7 +7393,7 @@ this.AddKLineInfo=function(infoName,bUpdate){var classInfo=JSKLineInfoMap.GetCla
|
|
|
7388
7393
|
return;}var infoItem=JSKLineInfoMap.Get(infoName);if(!infoItem)return;var item=infoItem.Create();item.MaxRequestDataCount=this.MaxRequestDataCount;this.ChartInfo.push(item);if(bUpdate==true){item.RequestData(this);//信息地雷信息
|
|
7389
7394
|
}};//删除信息地理
|
|
7390
7395
|
this.DeleteKLineInfo=function(infoName){var classInfo=JSKLineInfoMap.GetClassInfo(infoName);if(!classInfo){console.warn("[KLineChartContainer::DeleteKLineInfo] can't find infoname=",infoName);return;}for(var i in this.ChartInfo){var item=this.ChartInfo[i];if(item.ClassName==classInfo.ClassName){this.ChartInfo.splice(i,1);this.UpdataChartInfo();this.Draw();break;}}};//清空所有的信息地理
|
|
7391
|
-
this.ClearKLineInfo=function(){if(!this.ChartInfo||this.ChartInfo.length<=0)return;this.ChartInfo=[];var klinePaint=this.ChartPaint[0];klinePaint.InfoData=null;this.Draw();};//增加叠加股票
|
|
7396
|
+
this.ClearKLineInfo=function(){if(!this.ChartInfo||this.ChartInfo.length<=0)return;this.ChartInfo=[];var klinePaint=this.ChartPaint[0];klinePaint.InfoData=null;this.Draw();};//增加叠加股票
|
|
7392
7397
|
this.OverlaySymbol=function(symbol,option){for(var i in this.OverlayChartPaint){var item=this.OverlayChartPaint[i];if(item.Symbol===symbol){console.warn('[KLineChartContainer::OverlaySymbol] overlay symbol='+symbol+' exist.');return false;}}var paint=new ChartOverlayKLine();paint.Canvas=this.Canvas;paint.ChartBorder=this.Frame.SubFrame[0].Frame.ChartBorder;paint.ChartFrame=this.Frame.SubFrame[0].Frame;paint.Name="Overlay-KLine";paint.DrawType=this.KLineDrawType;paint.Symbol=symbol;paint.Identify='Overlay-KLine-'+symbol;if(option&&option.Color)paint.Color=option.Color;else paint.Color=g_JSChartResource.OverlaySymbol.Color[g_JSChartResource.OverlaySymbol.Random%g_JSChartResource.OverlaySymbol.Color.length];paint.SetOption(option);++g_JSChartResource.OverlaySymbol.Random;if(this.ChartPaint[0]&&this.ChartPaint[0].Data&&this.SourceData)paint.MainData=this.ChartPaint[0].Data;//绑定主图数据
|
|
7393
7398
|
this.OverlayChartPaint.push(paint);if(ChartData.IsDayPeriod(this.Period,true))this.RequestOverlayHistoryData();//请求日线数据
|
|
7394
7399
|
else if(ChartData.IsMinutePeriod(this.Period,true))this.RequestOverlayHistoryMinuteData();//请求分钟历史数据
|
|
@@ -8894,8 +8899,8 @@ SHO:'.SHO',//上海交易所 股票期权
|
|
|
8894
8899
|
SZO:".SZO",//深证交易所 股票期权
|
|
8895
8900
|
HK:'.HK',//港股
|
|
8896
8901
|
FHK:'.FHK',//港股期货
|
|
8897
|
-
SHFE:'.SHF',//上期所 (Shanghai Futures Exchange)
|
|
8898
|
-
SHFE2:'.SHFE',//上期所 (Shanghai Futures Exchange)
|
|
8902
|
+
SHFE:'.SHF',//上期所 (Shanghai Futures Exchange) | 上期所-能源
|
|
8903
|
+
SHFE2:'.SHFE',//上期所 (Shanghai Futures Exchange) | 上期所-能源
|
|
8899
8904
|
CFFEX:'.CFE',//中期所 (China Financial Futures Exchange)
|
|
8900
8905
|
DCE:'.DCE',//大连商品交易所(Dalian Commodity Exchange)
|
|
8901
8906
|
CZCE:'.CZC',//郑州期货交易所
|
|
@@ -11380,6 +11385,7 @@ this.LockCallback=null;this.LockID=null;this.LockBG=null;//锁背景色
|
|
|
11380
11385
|
this.LockTextColor=null;this.LockText=null;this.LockFont=null;this.LockCount=20;this.LockMinWidth=null;this.TitleFont=g_JSChartResource.TitleFont;//标题字体
|
|
11381
11386
|
this.IsShortTitle=false;//是否显示指标参数
|
|
11382
11387
|
this.IsUsePageData=false;//是否使用了K线界面数据
|
|
11388
|
+
this.YAxis=null;//Y轴刻度设置 { FloatPrecision, StringFormat, EnableRemoveZero }
|
|
11383
11389
|
//调试信息
|
|
11384
11390
|
this.Debug;// { Callback:, Count: }
|
|
11385
11391
|
this.IsSync=false;//是否是同步计算 (无数据请求)
|
|
@@ -11389,7 +11395,7 @@ this.MaxRunCount=-1;//最大执行次数 -1=无限
|
|
|
11389
11395
|
if(option){if(option.FloatPrecision>=0)this.FloatPrecision=option.FloatPrecision;if(option.StringFormat>0)this.StringFormat=option.StringFormat;if(option.ID)this.ID=option.ID;if(option.KLineType>=0||option.KLineType===-1)this.KLineType=option.KLineType;if(option.InstructionType)this.InstructionType=option.InstructionType;if(option.YSpecificMaxMin)this.YSpecificMaxMin=option.YSpecificMaxMin;if(option.YSplitScale)this.YSplitScale=option.YSplitScale;if(option.Condition)this.Condition=option.Condition;if(option.TitleFont)this.TitleFont=option.TitleFont;if(option.IsShortTitle)this.IsShortTitle=option.IsShortTitle;if(option.OutName)this.OutName=option.OutName;if(IFrameSplitOperator.IsNumber(option.YSplitType))this.YSplitType=option.YSplitType;if(IFrameSplitOperator.IsBool(option.IsSync))this.IsSync=option.IsSync;if(IFrameSplitOperator.IsNumber(option.MaxRunCount))this.MaxRunCount=option.MaxRunCount;if(option.Debug){if(IFrameSplitOperator.IsPlusNumber(option.Debug.Count)&&option.Debug.Callback){this.Debug={Count:option.Debug.Count,Callback:option.Debug.Callback};}}}if(option&&option.Lock){if(option.Lock.IsLocked==true)this.IsLocked=true;//指标上锁
|
|
11390
11396
|
if(option.Lock.Callback)this.LockCallback=option.Lock.Callback;//锁回调
|
|
11391
11397
|
if(option.Lock.ID)this.LockID=option.Lock.ID;//锁ID
|
|
11392
|
-
if(option.Lock.BG)this.LockBG=option.Lock.BG;if(option.Lock.TextColor)this.LockTextColor=option.Lock.TextColor;if(option.Lock.Text)this.LockText=option.Lock.Text;if(option.Lock.Font)this.LockFont=option.Lock.Font;if(option.Lock.Count)this.LockCount=option.Lock.Count;if(option.Lock.MinWidth)this.LockMinWidth=option.Lock.MinWidth*GetDevicePixelRatio();}if(args)this.Arguments=args;this.CopyTo=function(dest)//赋值到新实例出来
|
|
11398
|
+
if(option.Lock.BG)this.LockBG=option.Lock.BG;if(option.Lock.TextColor)this.LockTextColor=option.Lock.TextColor;if(option.Lock.Text)this.LockText=option.Lock.Text;if(option.Lock.Font)this.LockFont=option.Lock.Font;if(option.Lock.Count)this.LockCount=option.Lock.Count;if(option.Lock.MinWidth)this.LockMinWidth=option.Lock.MinWidth*GetDevicePixelRatio();}if(option&&option.YAxis){this.YAxis={};if(IFrameSplitOperator.IsNumber(option.YAxis.FloatPrecision))this.YAxis.FloatPrecision=option.YAxis.FloatPrecision;if(IFrameSplitOperator.IsNumber(option.YAxis.StringFormat))this.YAxis.StringFormat=option.YAxis.StringFormat;if(IFrameSplitOperator.IsBool(option.YAxis.EnableRemoveZero))this.YAxis.EnableRemoveZero=option.YAxis.EnableRemoveZero;}if(args)this.Arguments=args;this.CopyTo=function(dest)//赋值到新实例出来
|
|
11393
11399
|
{dest.FloatPrecision=this.FloatPrecision;dest.StringFormat=this.StringFormat;dest.KLineType=this.KLineType;dest.InstructionType=this.InstructionType;dest.Condition=this.Condition;dest.TitleFont=this.TitleFont;dest.IsShortTitle=this.IsShortTitle;dest.OutName=this.OutName;dest.Arguments=this.Arguments;dest.Script=this.Script;dest.Name=this.Name;dest.ID=this.ID;};this.SetLock=function(lockData){if(lockData.IsLocked==true){this.IsLocked=true;//指标上锁
|
|
11394
11400
|
if(lockData.Callback)this.LockCallback=lockData.Callback;//锁回调
|
|
11395
11401
|
if(lockData.ID)this.LockID=lockData.ID;//锁ID
|
|
@@ -11484,7 +11490,8 @@ return true;}else if(this.InstructionType==1)//交易系统
|
|
|
11484
11490
|
{var buyData,sellData;for(var i in this.OutVar){var _item26=this.OutVar[i];if(_item26.Name=='ENTERLONG')buyData=_item26.Data;else if(_item26.Name=='EXITLONG')sellData=_item26.Data;}hqChart.SetInstructionData(this.InstructionType,{Buy:buyData,Sell:sellData,Name:this.Name,Param:indexParam,ID:this.ID});//设置指示数据
|
|
11485
11491
|
return true;}};this.BindData=function(hqChart,windowIndex,hisData){if(windowIndex==0&&this.InstructionType){this.BindInstructionData(hqChart,windowIndex,hisData);return;}//清空主指标图形
|
|
11486
11492
|
hqChart.DeleteIndexPaint(windowIndex);if(windowIndex==0)hqChart.ShowKLine(true);if(this.OutVar==null||this.OutVar.length<0)return;//叠加一个K线背景
|
|
11487
|
-
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){
|
|
11493
|
+
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;ySpliter.FloatPrecision=this.FloatPrecision;if(this.YAxis){if(IFrameSplitOperator.IsNumber(this.YAxis.FloatPrecision))ySpliter.FloatPrecision=this.YAxis.FloatPrecision;if(IFrameSplitOperator.IsNumber(this.YAxis.StringFormat))ySpliter.StringFormat=this.YAxis.StringFormat;}if(this.YSpecificMaxMin)hqChart.Frame.SubFrame[windowIndex].Frame.YSpecificMaxMin=this.YSpecificMaxMin;//最大最小值
|
|
11488
11495
|
if(this.YSplitScale)hqChart.Frame.SubFrame[windowIndex].Frame.YSplitScale=this.YSplitScale;//固定刻度
|
|
11489
11496
|
}if(IFrameSplitOperator.IsNumber(this.YSplitType))hqChart.Frame.SubFrame[windowIndex].Frame.YSplitOperator.SplitType=this.YSplitType;/*
|
|
11490
11497
|
if (this.Name=='MA') //测试多线段
|
|
@@ -11535,7 +11542,7 @@ this.newMethod(name,script,args,option);delete this.newMethod;this.ClassName="Ov
|
|
|
11535
11542
|
this.OverlayIndex=null;// { IsOverlay:true, Identify:overlayFrame.Identify, WindowIndex:windowIndex, Frame:overlayFrame }
|
|
11536
11543
|
//显示指标不符合条件
|
|
11537
11544
|
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轴分割方式
|
|
11538
|
-
if(IFrameSplitOperator.IsNumber(this.YSplitType))this.
|
|
11545
|
+
var ySpliter=this.OverlayIndex.Frame.Frame.YSplitOperator;if(IFrameSplitOperator.IsNumber(this.YSplitType))ySpliter.SplitType=this.YSplitType;ySpliter.FloatPrecision=this.FloatPrecision;ySpliter.EnableRemoveZero=true;if(this.YAxis){if(IFrameSplitOperator.IsNumber(this.YAxis.FloatPrecision))ySpliter.FloatPrecision=this.YAxis.FloatPrecision;if(IFrameSplitOperator.IsNumber(this.YAxis.StringFormat))ySpliter.StringFormat=this.YAxis.StringFormat;if(IFrameSplitOperator.IsBool(this.YAxis.EnableRemoveZero))ySpliter.EnableRemoveZero=this.YAxis.EnableRemoveZero;}//指标名字
|
|
11539
11546
|
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;//给子框架设置标题
|
|
11540
11547
|
if(hqChart.Frame.SubFrame[windowIndex]){var mainFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(mainFrame)this.OverlayIndex.Frame.Frame.XPointCount=mainFrame.XPointCount;//跟主窗口同步下页面显示数据个数
|
|
11541
11548
|
}for(var i=0;i<this.OutVar.length;++i){var _item30=this.OutVar[i];if(_item30.IsExData===true)continue;//扩展数据不显示图形
|
|
@@ -12796,7 +12803,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
|
|
|
12796
12803
|
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);};}/********************************************************************************
|
|
12797
12804
|
* 版本信息输出
|
|
12798
12805
|
*
|
|
12799
|
-
*/var HQCHART_VERSION="1.1.
|
|
12806
|
+
*/var HQCHART_VERSION="1.1.12927";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();//把给外界调用的方法暴露出来
|
|
12800
12807
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
12801
12808
|
// BaseIndex:BaseIndex,
|
|
12802
12809
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hqchart",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.12928",
|
|
4
4
|
"description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
|
|
5
5
|
"main": "lib/main.js",
|
|
6
6
|
"scripts": {
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
},
|
|
30
30
|
"homepage": "https://github.com/jones2000/HQChart#readme",
|
|
31
31
|
"devDependencies": {
|
|
32
|
+
"babel-runtime": "^6.26.0",
|
|
32
33
|
"jquery": "^3.7.1"
|
|
33
34
|
}
|
|
34
35
|
}
|
|
@@ -48718,10 +48718,17 @@ HQData.NetworkFilter=function(data, callback)
|
|
|
48718
48718
|
HQData.RequestIndexVariantData(data,callback);
|
|
48719
48719
|
break;
|
|
48720
48720
|
|
|
48721
|
+
case "JSSymbolData::GetOtherSymbolData":
|
|
48722
|
+
HQData.RequestOtherSymbolData(data, callback);
|
|
48723
|
+
break;
|
|
48724
|
+
|
|
48721
48725
|
case "AnnouncementInfo::RequestData":
|
|
48722
48726
|
HQData.AnnouncementInfo_RequestData(data,callback);
|
|
48723
48727
|
break;
|
|
48724
48728
|
|
|
48729
|
+
|
|
48730
|
+
|
|
48731
|
+
|
|
48725
48732
|
case "PforecastInfo::RequestData":
|
|
48726
48733
|
HQData.PforecastInfo_RequestData(data,callback);
|
|
48727
48734
|
break;
|
|
@@ -48866,6 +48873,20 @@ HQData.RequestIndexVariantData=function(data,callback)
|
|
|
48866
48873
|
|
|
48867
48874
|
}
|
|
48868
48875
|
|
|
48876
|
+
HQData.RequestOtherSymbolData=function(data, callback)
|
|
48877
|
+
{
|
|
48878
|
+
data.PreventDefault=true;
|
|
48879
|
+
var symbol=data.Request.Data.symbol;
|
|
48880
|
+
var period=data.Request.Data.period;
|
|
48881
|
+
var right=data.Request.Data.right;
|
|
48882
|
+
var hqchartData=null;
|
|
48883
|
+
if (ChartData.IsDayPeriod(period,true)) hqchartData=KLINE_DAY_DATA2;
|
|
48884
|
+
else if (ChartData.IsMinutePeriod(period,true)) hqchartData=KLINE_MINUTE_DATA2;
|
|
48885
|
+
hqchartData.name=symbol;
|
|
48886
|
+
hqchartData.symbol=symbol;
|
|
48887
|
+
callback(hqchartData);
|
|
48888
|
+
}
|
|
48889
|
+
|
|
48869
48890
|
HQData.AnnouncementInfo_RequestData=function(data,callback)
|
|
48870
48891
|
{
|
|
48871
48892
|
data.PreventDefault=true;
|
|
@@ -19560,6 +19560,8 @@ function ScriptIndex(name,script,args,option)
|
|
|
19560
19560
|
this.TitleFont=g_JSChartResource.TitleFont; //标题字体
|
|
19561
19561
|
this.IsShortTitle=false; //是否显示指标参数
|
|
19562
19562
|
this.IsUsePageData=false; //是否使用了K线界面数据
|
|
19563
|
+
|
|
19564
|
+
this.YAxis=null; //Y轴刻度设置 { FloatPrecision, StringFormat, EnableRemoveZero }
|
|
19563
19565
|
|
|
19564
19566
|
//调试信息
|
|
19565
19567
|
this.Debug; // { Callback:, Count: }
|
|
@@ -19609,6 +19611,15 @@ function ScriptIndex(name,script,args,option)
|
|
|
19609
19611
|
if (option.Lock.MinWidth) this.LockMinWidth=option.Lock.MinWidth*GetDevicePixelRatio();
|
|
19610
19612
|
}
|
|
19611
19613
|
|
|
19614
|
+
if (option && option.YAxis)
|
|
19615
|
+
{
|
|
19616
|
+
this.YAxis={ };
|
|
19617
|
+
if (IFrameSplitOperator.IsNumber(option.YAxis.FloatPrecision)) this.YAxis.FloatPrecision=option.YAxis.FloatPrecision;
|
|
19618
|
+
if (IFrameSplitOperator.IsNumber(option.YAxis.StringFormat)) this.YAxis.StringFormat=option.YAxis.StringFormat;
|
|
19619
|
+
if (IFrameSplitOperator.IsBool(option.YAxis.EnableRemoveZero)) this.YAxis.EnableRemoveZero=option.YAxis.EnableRemoveZero;
|
|
19620
|
+
|
|
19621
|
+
}
|
|
19622
|
+
|
|
19612
19623
|
if (args) this.Arguments=args;
|
|
19613
19624
|
|
|
19614
19625
|
this.CopyTo=function(dest) //赋值到新实例出来
|
|
@@ -21286,7 +21297,15 @@ function ScriptIndex(name,script,args,option)
|
|
|
21286
21297
|
|
|
21287
21298
|
if (windowIndex>=1 && hqChart.Frame)
|
|
21288
21299
|
{
|
|
21289
|
-
|
|
21300
|
+
//Y轴刻度格式 默认跟标题栏一致
|
|
21301
|
+
var ySpliter=hqChart.Frame.SubFrame[windowIndex].Frame.YSplitOperator;
|
|
21302
|
+
ySpliter.FloatPrecision=this.FloatPrecision;
|
|
21303
|
+
if (this.YAxis)
|
|
21304
|
+
{
|
|
21305
|
+
if (IFrameSplitOperator.IsNumber(this.YAxis.FloatPrecision)) ySpliter.FloatPrecision=this.YAxis.FloatPrecision;
|
|
21306
|
+
if (IFrameSplitOperator.IsNumber(this.YAxis.StringFormat)) ySpliter.StringFormat=this.YAxis.StringFormat;
|
|
21307
|
+
}
|
|
21308
|
+
|
|
21290
21309
|
if (this.YSpecificMaxMin) hqChart.Frame.SubFrame[windowIndex].Frame.YSpecificMaxMin=this.YSpecificMaxMin; //最大最小值
|
|
21291
21310
|
if (this.YSplitScale) hqChart.Frame.SubFrame[windowIndex].Frame.YSplitScale=this.YSplitScale; //固定刻度
|
|
21292
21311
|
}
|
|
@@ -21658,7 +21677,16 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
21658
21677
|
if (!IFrameSplitOperator.IsNonEmptyArray(this.OutVar)) return;
|
|
21659
21678
|
|
|
21660
21679
|
//修改Y轴分割方式
|
|
21661
|
-
|
|
21680
|
+
var ySpliter=this.OverlayIndex.Frame.Frame.YSplitOperator;
|
|
21681
|
+
if (IFrameSplitOperator.IsNumber(this.YSplitType)) ySpliter.SplitType=this.YSplitType;
|
|
21682
|
+
ySpliter.FloatPrecision=this.FloatPrecision;
|
|
21683
|
+
ySpliter.EnableRemoveZero=true;
|
|
21684
|
+
if (this.YAxis)
|
|
21685
|
+
{
|
|
21686
|
+
if (IFrameSplitOperator.IsNumber(this.YAxis.FloatPrecision)) ySpliter.FloatPrecision=this.YAxis.FloatPrecision;
|
|
21687
|
+
if (IFrameSplitOperator.IsNumber(this.YAxis.StringFormat)) ySpliter.StringFormat=this.YAxis.StringFormat;
|
|
21688
|
+
if (IFrameSplitOperator.IsBool(this.YAxis.EnableRemoveZero)) ySpliter.EnableRemoveZero=this.YAxis.EnableRemoveZero;
|
|
21689
|
+
}
|
|
21662
21690
|
|
|
21663
21691
|
//指标名字
|
|
21664
21692
|
var titleInfo={ Data:[], Title:this.Name, Frame:this.OverlayIndex.Frame.Frame, Script:this };
|
|
@@ -25,7 +25,8 @@
|
|
|
25
25
|
StringFormat: 1=带单位万/亿 2=原始格式
|
|
26
26
|
Condition: 限制条件 { Symbol:'Index'/'Stock'(只支持指数/股票),Period:[](支持的周期), Include:[](指定支持的股票,代码全部大写包括后缀, Message:"提示信息")}
|
|
27
27
|
OutName:动态输出变量名字 [{Name:原始变量名, DynamicName:动态名字格式}] 如 {Name:"MA1", DynamicName:"MA{M1}"};
|
|
28
|
-
SplitType: Y
|
|
28
|
+
SplitType: Y轴分割类型,
|
|
29
|
+
YAxis:{ FloatPrecision:小数位数, StringFormat: } //Y轴刻度输出格式
|
|
29
30
|
*/
|
|
30
31
|
|
|
31
32
|
//周期条件枚举
|
|
@@ -1581,7 +1582,7 @@ JSIndexScript.prototype.AMO = function ()
|
|
|
1581
1582
|
{
|
|
1582
1583
|
let data =
|
|
1583
1584
|
{
|
|
1584
|
-
Name: 'AMO', Description: '成交金额', IsMainIndex: false,
|
|
1585
|
+
Name: 'AMO', Description: '成交金额', IsMainIndex: false, StringFormat:2, YAxis:{ FloatPrecision:0, StringFormat:2 },
|
|
1585
1586
|
Args: [{ Name: 'M1', Value: 5 },{ Name: 'M2', Value: 10 }],
|
|
1586
1587
|
Script: //脚本
|
|
1587
1588
|
'AMOW:AMOUNT/10000.0,VOLSTICK;\n\
|