hqchart 1.1.13791 → 1.1.13802
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 +3 -2
- package/lib/umychart.vue.js +30 -55
- package/package.json +1 -1
- package/src/jscommon/umychart.NetworkFilterTest.js +130 -0
- package/src/jscommon/umychart.complier.js +79 -368
- package/src/jscommon/umychart.js +21 -4
- package/src/jscommon/umychart.testdata.js +130 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +101 -373
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.NetworkFilterTest.vue.js +130 -0
- package/src/jscommon/umychart.vue/umychart.vue.js +101 -373
|
@@ -11045,6 +11045,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
11045
11045
|
if (!paint) return;
|
|
11046
11046
|
|
|
11047
11047
|
var data=this.ChartPaint[0].Data;
|
|
11048
|
+
var count=data.Data.length;
|
|
11049
|
+
if (end>=count) end=count-1;
|
|
11048
11050
|
var startItem=data.Data[start];
|
|
11049
11051
|
var endItem=data.Data[end];
|
|
11050
11052
|
|
|
@@ -13781,8 +13783,13 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
13781
13783
|
if (!option) return false;
|
|
13782
13784
|
|
|
13783
13785
|
var frame=this.Frame.SubFrame[windowIndex];
|
|
13784
|
-
|
|
13785
|
-
|
|
13786
|
+
if (option.Delete)
|
|
13787
|
+
{
|
|
13788
|
+
var item=option.Delete;
|
|
13789
|
+
if (item.Window===true) this.DeleteIndexPaint(windowIndex); //删除主指标
|
|
13790
|
+
if (item.Overlay===true) this.DeleteWindowsOverlayIndex(windowIndex); //清空叠加指标
|
|
13791
|
+
}
|
|
13792
|
+
|
|
13786
13793
|
//清空标题栏
|
|
13787
13794
|
var titleIndex=windowIndex+1;
|
|
13788
13795
|
this.TitlePaint[titleIndex].Data=[];
|
|
@@ -13790,6 +13797,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
13790
13797
|
|
|
13791
13798
|
if (option.Window) //主指标
|
|
13792
13799
|
{
|
|
13800
|
+
this.DeleteIndexPaint(windowIndex); //删除主指标
|
|
13801
|
+
|
|
13793
13802
|
var item=option.Window;
|
|
13794
13803
|
|
|
13795
13804
|
if (item.Script) //自定义指标脚本
|
|
@@ -13829,6 +13838,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
13829
13838
|
var aryOverlayIndex=[];
|
|
13830
13839
|
if (IFrameSplitOperator.IsNonEmptyArray(option.OverlayIndex))
|
|
13831
13840
|
{
|
|
13841
|
+
this.DeleteWindowsOverlayIndex(windowIndex); //清空叠加指标
|
|
13842
|
+
|
|
13832
13843
|
for(var i=0;i<option.OverlayIndex.length;++i)
|
|
13833
13844
|
{
|
|
13834
13845
|
var item=option.OverlayIndex[i];
|
|
@@ -83625,6 +83636,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
83625
83636
|
if (end>=count) end=count-1;
|
|
83626
83637
|
var endItem=data.Data[end];
|
|
83627
83638
|
|
|
83639
|
+
if (!startItem || !endItem) return;
|
|
83640
|
+
|
|
83628
83641
|
JSConsole.Chart.Log('[MinuteChartContainer::UpdateSelectRect]',startItem,endItem);
|
|
83629
83642
|
paint.SetPoint(startItem, { Index:0 });
|
|
83630
83643
|
paint.SetPoint(endItem, { Index:1 });
|
|
@@ -93717,8 +93730,10 @@ function MinuteSelectRectDialog(divElement)
|
|
|
93717
93730
|
if(showData.Low>item.Low) showData.Low=item.Low;
|
|
93718
93731
|
}
|
|
93719
93732
|
|
|
93733
|
+
if (showData.Count<=0) return false;
|
|
93734
|
+
|
|
93720
93735
|
if (showData.Vol>0) showData.AvPrice=showData.Amount/showData.Vol; //均价
|
|
93721
|
-
if (
|
|
93736
|
+
if (showData.Open>0)
|
|
93722
93737
|
{
|
|
93723
93738
|
showData.Increase = (showData.Close - showData.Open) / showData.Open *100; //区间涨幅
|
|
93724
93739
|
showData.Amplitude = (showData.High - showData.Low) / showData.Open * 100; //区间振幅
|
|
@@ -93761,6 +93776,8 @@ function MinuteSelectRectDialog(divElement)
|
|
|
93761
93776
|
|
|
93762
93777
|
$(".parameter-content").html(div);
|
|
93763
93778
|
this.BindEvent();
|
|
93779
|
+
|
|
93780
|
+
return true;
|
|
93764
93781
|
}
|
|
93765
93782
|
|
|
93766
93783
|
this.BindEvent = function ()
|
|
@@ -93804,7 +93821,7 @@ function MinuteSelectRectDialog(divElement)
|
|
|
93804
93821
|
this.RectSelectPaint=event.data.RectSelectPaint;
|
|
93805
93822
|
this.HQChart=chart;
|
|
93806
93823
|
this.HQChart.HideSelectRect();
|
|
93807
|
-
this.BindData();
|
|
93824
|
+
if (!this.BindData()) return;
|
|
93808
93825
|
|
|
93809
93826
|
this.Show(); //通过CSS居中显示
|
|
93810
93827
|
}
|
|
@@ -99994,20 +100011,17 @@ function Node(ErrorHandler)
|
|
|
99994
100011
|
return;
|
|
99995
100012
|
}
|
|
99996
100013
|
|
|
99997
|
-
|
|
99998
|
-
|
|
99999
|
-
var item={ ID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_GPJYVALUE, Args:args, FunctionName:callee.Name };
|
|
100000
|
-
if (token) item.Token={ Index:token.Start, Line:token.LineNumber };
|
|
100001
|
-
this.FunctionData.push(item);
|
|
100002
|
-
return;
|
|
100003
|
-
}
|
|
100004
|
-
|
|
100005
|
-
if (callee.Name=="SCJYVALUE")
|
|
100014
|
+
//专业财务数据
|
|
100015
|
+
for(var i=0;i<JS_ARRAY_PROFESSIONAL_FINANCE.length;++i)
|
|
100006
100016
|
{
|
|
100007
|
-
var
|
|
100008
|
-
if (
|
|
100009
|
-
|
|
100010
|
-
|
|
100017
|
+
var financeItem=JS_ARRAY_PROFESSIONAL_FINANCE[i];
|
|
100018
|
+
if (financeItem.Name==callee.Name)
|
|
100019
|
+
{
|
|
100020
|
+
var item={ ID:financeItem.JobID, Args:args, FunctionName:callee.Name };
|
|
100021
|
+
if (token) item.Token={ Index:token.Start, Line:token.LineNumber };
|
|
100022
|
+
this.FunctionData.push(item);
|
|
100023
|
+
return;
|
|
100024
|
+
}
|
|
100011
100025
|
}
|
|
100012
100026
|
|
|
100013
100027
|
if (callee.Name==='MARGIN')
|
|
@@ -113173,74 +113187,41 @@ function JSSymbolData(ast,option,jsExecute)
|
|
|
113173
113187
|
apiDownload.Download();
|
|
113174
113188
|
}
|
|
113175
113189
|
|
|
113176
|
-
this.
|
|
113190
|
+
this.GetProFinance=function(jobItem)
|
|
113177
113191
|
{
|
|
113178
|
-
var
|
|
113179
|
-
var
|
|
113180
|
-
|
|
113181
|
-
|
|
113182
|
-
var self=this;
|
|
113183
|
-
//TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理
|
|
113184
|
-
var dataType=aryArgs[2]==1?0:2;
|
|
113185
|
-
if (this.NetworkFilter)
|
|
113192
|
+
var jobID=jobItem.ID;
|
|
113193
|
+
var finder=null;
|
|
113194
|
+
for(var i=0;i<JS_ARRAY_PROFESSIONAL_FINANCE.length;++i)
|
|
113186
113195
|
{
|
|
113187
|
-
var
|
|
113188
|
-
|
|
113196
|
+
var item=JS_ARRAY_PROFESSIONAL_FINANCE[i];
|
|
113197
|
+
if (item.JobID==jobID)
|
|
113189
113198
|
{
|
|
113190
|
-
|
|
113191
|
-
|
|
113192
|
-
|
|
113193
|
-
Request:{ Url:self.StockHistoryDayApiUrl, Type:'POST', Data:{ Args:aryArgs, symbol: this.Symbol, daterange:dateRange } },
|
|
113194
|
-
Self:this,
|
|
113195
|
-
PreventDefault:false
|
|
113196
|
-
};
|
|
113197
|
-
this.NetworkFilter(obj, function(recvData)
|
|
113198
|
-
{
|
|
113199
|
-
self.RecvStockValue(recvData,jobItem,key,dataType);
|
|
113200
|
-
self.Execute.RunNextJob();
|
|
113201
|
-
});
|
|
113202
|
-
|
|
113203
|
-
if (obj.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
|
|
113199
|
+
finder=item;
|
|
113200
|
+
break;
|
|
113201
|
+
}
|
|
113204
113202
|
}
|
|
113205
113203
|
|
|
113206
|
-
|
|
113207
|
-
{
|
|
113208
|
-
Job:jobItem,
|
|
113209
|
-
Symbol:this.Symbol,
|
|
113210
|
-
Url:this.StockHistoryDayApiUrl,
|
|
113211
|
-
Args:aryArgs,
|
|
113212
|
-
DataKey:key,
|
|
113213
|
-
Callback:function(recvData, jobItem, key)
|
|
113214
|
-
{
|
|
113215
|
-
self.RecvStockValue(recvData, jobItem, key,dataType);
|
|
113216
|
-
self.Execute.RunNextJob();
|
|
113217
|
-
},
|
|
113218
|
-
ErrorCallback:function(strError)
|
|
113219
|
-
{
|
|
113220
|
-
self.AddStockValueError(key,strError);
|
|
113221
|
-
}
|
|
113222
|
-
});
|
|
113223
|
-
|
|
113224
|
-
apiDownload.Download();
|
|
113225
|
-
}
|
|
113204
|
+
if (!finder) return this.Execute.RunNextJob();
|
|
113226
113205
|
|
|
113227
|
-
|
|
113228
|
-
{
|
|
113229
|
-
var aryArgs=this.JobArgumentsToArray(jobItem, 3);
|
|
113206
|
+
var aryArgs=this.JobArgumentsToArray(jobItem, finder.ArgCount);
|
|
113230
113207
|
var key=this.GetStockDataKey(jobItem,aryArgs);
|
|
113231
113208
|
if (this.StockData.has(key)) return this.Execute.RunNextJob();
|
|
113232
113209
|
|
|
113233
113210
|
var self=this;
|
|
113234
|
-
|
|
113235
|
-
|
|
113211
|
+
var dataType=0;
|
|
113212
|
+
if ([JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_GPJYVALUE,JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SCJYVALUE,JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_BKJYVALUE].includes(jobID))
|
|
113213
|
+
{
|
|
113214
|
+
dataType=aryArgs[2]==1?0:2; //TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理
|
|
113215
|
+
}
|
|
113216
|
+
|
|
113236
113217
|
if (this.NetworkFilter)
|
|
113237
113218
|
{
|
|
113238
113219
|
var dateRange=this.Data.GetDateRange();
|
|
113239
113220
|
var obj=
|
|
113240
113221
|
{
|
|
113241
|
-
Name:
|
|
113242
|
-
Explain:
|
|
113243
|
-
JobID:
|
|
113222
|
+
Name:finder.FuncName, //类名::
|
|
113223
|
+
Explain:finder.Explain,
|
|
113224
|
+
JobID:jobID,
|
|
113244
113225
|
Request:{ Url:self.StockHistoryDayApiUrl, Type:'POST', Data:{ Args:aryArgs, symbol: this.Symbol, daterange:dateRange } },
|
|
113245
113226
|
Self:this,
|
|
113246
113227
|
PreventDefault:false
|
|
@@ -113254,25 +113235,7 @@ function JSSymbolData(ast,option,jsExecute)
|
|
|
113254
113235
|
if (obj.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
|
|
113255
113236
|
}
|
|
113256
113237
|
|
|
113257
|
-
|
|
113258
|
-
{
|
|
113259
|
-
Job:jobItem,
|
|
113260
|
-
Symbol:this.Symbol,
|
|
113261
|
-
Url:this.StockHistoryDayApiUrl,
|
|
113262
|
-
Args:aryArgs,
|
|
113263
|
-
DataKey:key,
|
|
113264
|
-
Callback:function(recvData, jobItem, key)
|
|
113265
|
-
{
|
|
113266
|
-
self.RecvStockValue(recvData, jobItem, key,dataType);
|
|
113267
|
-
self.Execute.RunNextJob();
|
|
113268
|
-
},
|
|
113269
|
-
ErrorCallback:function(strError)
|
|
113270
|
-
{
|
|
113271
|
-
self.AddStockValueError(key,strError);
|
|
113272
|
-
}
|
|
113273
|
-
});
|
|
113274
|
-
|
|
113275
|
-
apiDownload.Download();
|
|
113238
|
+
JSConsole.Chart.Warn(`[JSSymbolData::GetProFinance] ${finder.FuncName} Not implemented.`);
|
|
113276
113239
|
}
|
|
113277
113240
|
|
|
113278
113241
|
this.GetVariantData=function(jobItem)
|
|
@@ -115272,6 +115235,11 @@ var JS_EXECUTE_JOB_ID=
|
|
|
115272
115235
|
JOB_DOWNLOAD_GPJYVALUE:304, //引用股票交易类数据 GPJYVALUE(ID,N,TYPE),ID为数据编号,N表示第几个数据,TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理
|
|
115273
115236
|
JOB_DOWNLOAD_VARIANT:305, //CAPITAL , TOTALCAPITAL, EXCHANGE
|
|
115274
115237
|
JOB_DOWNLOAD_SCJYVALUE:306, //引用市场总的交易类数据.SCJYVALUE(ID,N,TYPE),ID为数据编号,N表示第几个数据,TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理
|
|
115238
|
+
JOB_DOWNLOAD_GPJYONE:307, //GPJYONE(ID,N,Y,MMDD),ID为数据编号,N表示第几个数据(取1或2),Y和MMDD表示年和月日. 如果Y为0,MMDD为0,表示最新数据,MMDD为1,2,3...,表示倒数第2,3,4...个数据
|
|
115239
|
+
JOB_DOWNLOAD_SCJYONE:308, //SCJYONE(ID,N,Y,MMDD),ID为数据编号,N表示第几个数据(取1或2),Y和MMDD表示年和月日.如果Y为0,MMDD为0,表示最新数据,MMDD为1,2,3...,表示倒数第2,3,4...个数据
|
|
115240
|
+
JOB_DOWNLOAD_BKJYVALUE:309, //BKJYVALUE(ID,N,TYPE),ID为数据编号,N表示第几个数据(取1或2),TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理;2表示没有数据则为0.
|
|
115241
|
+
JOB_DOWNLOAD_BKJYONE:310, //BKJYONE(ID,N,Y,MMDD),ID为数据编号,N表示第几个数据(取1或2),Y和MMDD表示年和月日.如果Y为0,MMDD为0,表示最新数据,MMDD为1,2,3...,表示倒数第2,3,4...个数据
|
|
115242
|
+
|
|
115275
115243
|
|
|
115276
115244
|
|
|
115277
115245
|
|
|
@@ -115468,6 +115436,36 @@ var JS_EXECUTE_JOB_ID=
|
|
|
115468
115436
|
|
|
115469
115437
|
};
|
|
115470
115438
|
|
|
115439
|
+
|
|
115440
|
+
//专业财务数据
|
|
115441
|
+
var JS_ARRAY_PROFESSIONAL_FINANCE=
|
|
115442
|
+
[
|
|
115443
|
+
{
|
|
115444
|
+
Name:"GPJYVALUE", JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_GPJYVALUE,
|
|
115445
|
+
Explain:"股票交易类数据GPJYVALUE(ID,N,TYPE)", FuncName:"JSSymbolData::GetGPJYValue", ArgCount:3
|
|
115446
|
+
},
|
|
115447
|
+
{
|
|
115448
|
+
Name:"GPJYONE", JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_GPJYONE,
|
|
115449
|
+
Explain:"股票交易类数据GPJYONE(ID,N,Y,MMDD)", FuncName:"JSSymbolData::GetGPJYOne", ArgCount:4
|
|
115450
|
+
},
|
|
115451
|
+
{
|
|
115452
|
+
Name:"SCJYVALUE", JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SCJYVALUE,
|
|
115453
|
+
Explain:"市场交易类数据SCJYVALUE(ID,N,TYPE)", FuncName:"JSSymbolData::GetSCJYValue",ArgCount:3
|
|
115454
|
+
},
|
|
115455
|
+
{
|
|
115456
|
+
Name:"SCJYONE", JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SCJYONE,
|
|
115457
|
+
Explain:"市场交易类数据SCJYONE(ID,N,Y,MMDD)", FuncName:"JSSymbolData::GetSCJYOne",ArgCount:4
|
|
115458
|
+
},
|
|
115459
|
+
{
|
|
115460
|
+
Name:"BKJYVALUE", JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_BKJYVALUE,
|
|
115461
|
+
Explain:"板块交易类数据BKJYVALUE(ID,N,TYPE)", FuncName:"JSSymbolData::GetBKJYValue",ArgCount:3
|
|
115462
|
+
},
|
|
115463
|
+
{
|
|
115464
|
+
Name:"BKJYONE", JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_BKJYONE,
|
|
115465
|
+
Explain:"板块交易类数据BKJYONE(ID,N,Y,MMDD)", FuncName:"JSSymbolData::GetBKJYOne",ArgCount:4
|
|
115466
|
+
},
|
|
115467
|
+
];
|
|
115468
|
+
|
|
115471
115469
|
function JSExecute(ast,option)
|
|
115472
115470
|
{
|
|
115473
115471
|
this.AST=ast; //语法树
|
|
@@ -115680,10 +115678,15 @@ function JSExecute(ast,option)
|
|
|
115680
115678
|
return this.SymbolData.GetFinValue(jobItem);
|
|
115681
115679
|
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_FINANCE:
|
|
115682
115680
|
return this.SymbolData.GetFinance(jobItem);
|
|
115681
|
+
|
|
115682
|
+
//专业财务数据
|
|
115683
115683
|
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_GPJYVALUE:
|
|
115684
|
-
|
|
115684
|
+
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_GPJYONE:
|
|
115685
115685
|
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SCJYVALUE:
|
|
115686
|
-
|
|
115686
|
+
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SCJYONE:
|
|
115687
|
+
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_BKJYVALUE:
|
|
115688
|
+
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_BKJYONE:
|
|
115689
|
+
return this.SymbolData.GetProFinance(jobItem);
|
|
115687
115690
|
|
|
115688
115691
|
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_VARIANT: //CAPITAL, TOTALCAPITAL
|
|
115689
115692
|
return this.SymbolData.GetVariantData(jobItem);
|
|
@@ -117043,11 +117046,15 @@ function JSExecute(ast,option)
|
|
|
117043
117046
|
node.Out=this.SymbolData.GetStockCacheData( {FunctionName:funcName, Args:args, ArgCount:3, Node:node } );
|
|
117044
117047
|
break;
|
|
117045
117048
|
case "GPJYVALUE":
|
|
117046
|
-
node.Out=this.SymbolData.GetStockCacheData( {FunctionName:funcName, Args:args, ArgCount:3, Node:node } );
|
|
117047
|
-
break;
|
|
117048
117049
|
case "SCJYVALUE":
|
|
117050
|
+
case "BKJYVALUE":
|
|
117049
117051
|
node.Out=this.SymbolData.GetStockCacheData( {FunctionName:funcName, Args:args, ArgCount:3, Node:node } );
|
|
117050
117052
|
break;
|
|
117053
|
+
case "GPJYONE":
|
|
117054
|
+
case "SCJYONE":
|
|
117055
|
+
case "BKJYONE":
|
|
117056
|
+
node.Out=this.SymbolData.GetStockCacheData( {FunctionName:funcName, Args:args, ArgCount:4, Node:node } );
|
|
117057
|
+
break;
|
|
117051
117058
|
case "MARGIN":
|
|
117052
117059
|
node.Out=this.SymbolData.GetMarginCacheData(args[0],node);
|
|
117053
117060
|
break;
|
|
@@ -124673,285 +124680,6 @@ function DownloadFinanceData(obj)
|
|
|
124673
124680
|
}
|
|
124674
124681
|
}
|
|
124675
124682
|
|
|
124676
|
-
function DownloadGPJYValue(obj)
|
|
124677
|
-
{
|
|
124678
|
-
this.Url=obj.Url;
|
|
124679
|
-
this.RealtimeUrl=obj.RealtimeUrl;
|
|
124680
|
-
this.Job=obj.Job;
|
|
124681
|
-
this.Symbol=obj.Symbol;
|
|
124682
|
-
this.Args=obj.Args;
|
|
124683
|
-
this.DataKey=obj.DataKey;
|
|
124684
|
-
this.RecvCallback=obj.Callback;
|
|
124685
|
-
this.ErrorCallback=obj.ErrorCallback;
|
|
124686
|
-
|
|
124687
|
-
this.Download=function()
|
|
124688
|
-
{
|
|
124689
|
-
var self=this;
|
|
124690
|
-
var fieldList=this.GetFieldList();
|
|
124691
|
-
if (!fieldList)
|
|
124692
|
-
{
|
|
124693
|
-
message=`${this.Job.FunctionName}(${this.Args[0]}, ${this.Args[1]}, ${this.Args[2]}) can't support.`;
|
|
124694
|
-
this.ErrorCallback(message);
|
|
124695
|
-
self.RecvCallback(null, self.Job, self.DataKey, true);
|
|
124696
|
-
return;
|
|
124697
|
-
}
|
|
124698
|
-
|
|
124699
|
-
//请求数据
|
|
124700
|
-
JSNetwork.HttpRequest({
|
|
124701
|
-
url: this.Url,
|
|
124702
|
-
data:
|
|
124703
|
-
{
|
|
124704
|
-
"field": fieldList,
|
|
124705
|
-
"symbol": [this.Symbol],
|
|
124706
|
-
"orderfield":"date",
|
|
124707
|
-
"order":-1,
|
|
124708
|
-
"start":0,
|
|
124709
|
-
"end":5
|
|
124710
|
-
},
|
|
124711
|
-
type:"post",
|
|
124712
|
-
dataType: "json",
|
|
124713
|
-
async:true,
|
|
124714
|
-
success: function (recvData)
|
|
124715
|
-
{
|
|
124716
|
-
var data=self.ToHQChartData(recvData);
|
|
124717
|
-
if (data && data.length>0)
|
|
124718
|
-
{
|
|
124719
|
-
data.sort(function (a, b) { return (a.Date-b.Date) });
|
|
124720
|
-
}
|
|
124721
|
-
self.RecvCallback(data, self.Job, self.DataKey);
|
|
124722
|
-
}
|
|
124723
|
-
});
|
|
124724
|
-
}
|
|
124725
|
-
|
|
124726
|
-
this.GetFieldList=function()
|
|
124727
|
-
{
|
|
124728
|
-
var id=this.Args[0];
|
|
124729
|
-
switch(id)
|
|
124730
|
-
{
|
|
124731
|
-
case 1: //1--股东人数 股东户数(户)
|
|
124732
|
-
return ["shareholder", "date", "symbol"];
|
|
124733
|
-
case 2: //2--龙虎榜 买入总计(万元) 卖出总计(万元)
|
|
124734
|
-
return ["tradedetail.buy","tradedetail.sell", "date", "symbol"];
|
|
124735
|
-
case 3: //3--融资融券1 融资余额(万元) 融券余量(股)
|
|
124736
|
-
return ["margin","date", "symbol"];
|
|
124737
|
-
case 4: //4--大宗交易 成交均价(元) 成交额(万元)
|
|
124738
|
-
return ["blocktrading.amount","blocktrading.price","date", "symbol"]
|
|
124739
|
-
default:
|
|
124740
|
-
return null;
|
|
124741
|
-
}
|
|
124742
|
-
}
|
|
124743
|
-
|
|
124744
|
-
this.ToHQChartData=function(recvData)
|
|
124745
|
-
{
|
|
124746
|
-
if (!recvData.stock || recvData.stock.length!=1) return null;
|
|
124747
|
-
|
|
124748
|
-
var aryData=[];
|
|
124749
|
-
var setDate=new Set(); //有重复数据 去掉
|
|
124750
|
-
var stock=recvData.stock[0];
|
|
124751
|
-
var id=this.Args[0];
|
|
124752
|
-
var subID=this.Args[1];
|
|
124753
|
-
for(var i in stock.stockday)
|
|
124754
|
-
{
|
|
124755
|
-
var item=stock.stockday[i];
|
|
124756
|
-
|
|
124757
|
-
var hqchartItem=this.ToHQChartItemData(item,id,subID);
|
|
124758
|
-
if (hqchartItem && !setDate.has(hqchartItem.Date))
|
|
124759
|
-
{
|
|
124760
|
-
aryData.push(hqchartItem);
|
|
124761
|
-
setDate.add(hqchartItem.Date);
|
|
124762
|
-
}
|
|
124763
|
-
}
|
|
124764
|
-
|
|
124765
|
-
return aryData;
|
|
124766
|
-
}
|
|
124767
|
-
|
|
124768
|
-
this.ToHQChartItemData=function(item, id, subID)
|
|
124769
|
-
{
|
|
124770
|
-
if (!item) return null;
|
|
124771
|
-
var date=item.date;
|
|
124772
|
-
switch(id)
|
|
124773
|
-
{
|
|
124774
|
-
case 1:
|
|
124775
|
-
if (!item.shareholder) return null;
|
|
124776
|
-
return { Date:date, Value:item.shareholder.count };
|
|
124777
|
-
case 2:
|
|
124778
|
-
if (!item.tradedetail && item.tradedetail[0]) return null;
|
|
124779
|
-
if (subID==0)
|
|
124780
|
-
return { Date:date, Value:item.tradedetail[0].buy };
|
|
124781
|
-
else
|
|
124782
|
-
return { Date:date, Value:item.tradedetail[0].sell };
|
|
124783
|
-
case 3:
|
|
124784
|
-
if (!item.margin) return null;
|
|
124785
|
-
if (subID==0)
|
|
124786
|
-
{
|
|
124787
|
-
if (item.margin.buy)
|
|
124788
|
-
return { Date:date, Value:item.margin.buy.balance };
|
|
124789
|
-
}
|
|
124790
|
-
else
|
|
124791
|
-
{
|
|
124792
|
-
if (item.margin.sell)
|
|
124793
|
-
return { Date:date, Value:item.margin.sell.balance };
|
|
124794
|
-
}
|
|
124795
|
-
return null;
|
|
124796
|
-
case 4:
|
|
124797
|
-
if (!item.blocktrading) return null;
|
|
124798
|
-
if (subID==0)
|
|
124799
|
-
return { Date:date, Value:item.blocktrading.price };
|
|
124800
|
-
else
|
|
124801
|
-
return { Date:date, Value:item.blocktrading.amount };
|
|
124802
|
-
default:
|
|
124803
|
-
return null;
|
|
124804
|
-
}
|
|
124805
|
-
}
|
|
124806
|
-
}
|
|
124807
|
-
|
|
124808
|
-
|
|
124809
|
-
|
|
124810
|
-
/*
|
|
124811
|
-
引用市场总的交易类数据.如果指标支持云数据函数,则不需要[专业财务数据]下载.
|
|
124812
|
-
SCJYVALUE(ID,N,TYPE),ID为数据编号,N表示第几个数据,TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理
|
|
124813
|
-
|
|
124814
|
-
市场交易类数据函数,数据编号如下:
|
|
124815
|
-
1--融资融券 沪深融资余额(万元) 沪深融券余额(万元)
|
|
124816
|
-
2--陆股通资金流入 沪股通流入金额(亿元) 深股通流入金额(亿元)
|
|
124817
|
-
3--沪深涨停股个数 涨停股个数 曾涨停股个数 [注:该指标展示20160926日之后的数据]
|
|
124818
|
-
4--沪深跌停股个数 跌停股个数 曾跌停股个数
|
|
124819
|
-
5--上证50股指期货 净持仓(手)[注:该指标展示20171009日之后的数据]
|
|
124820
|
-
6--沪深300股指期货 净持仓(手) [注:该指标展示20171009日之后的数据]
|
|
124821
|
-
7--中证500股指期货 净持仓(手) [注:该指标展示20171009日之后的数据]
|
|
124822
|
-
8--ETF基金规模数据 ETF基金规模(亿) ETF净申赎(亿)
|
|
124823
|
-
9--每周新增投资者 新增投资者(万户)
|
|
124824
|
-
10--增减持统计 增持额(万元) 减持额(万元)[注:部分公司公告滞后,造成每天查看的数据可能会不一样]
|
|
124825
|
-
11--大宗交易 溢价的大宗交易额(万元) 折价的大宗交易额(万元)
|
|
124826
|
-
12--限售解禁 限售解禁计划额(亿元) 限售解禁股份实际上市金额(亿元)[注:该指标展示201802月之后的数据;部分股票的解禁日期延后,造成不同日期提取的某天的计划额可能不同]
|
|
124827
|
-
13--分红 市场总分红额(亿元)[注:除权派息日的A股市场总分红额]
|
|
124828
|
-
14--募资 市场总募资额(亿元)[注:发行日期/除权日期的首发、配股和增发的总募资额]
|
|
124829
|
-
15--打板资金 封板成功资金(亿元) 封板失败资金(亿元) [注:该指标展示20160926日之后的数据]
|
|
124830
|
-
*/
|
|
124831
|
-
function DownloadSCJYValue(obj)
|
|
124832
|
-
{
|
|
124833
|
-
this.Url=obj.Url;
|
|
124834
|
-
//this.RealtimeUrl=obj.RealtimeUrl;
|
|
124835
|
-
this.Job=obj.Job;
|
|
124836
|
-
this.Symbol=obj.Symbol;
|
|
124837
|
-
this.Args=obj.Args;
|
|
124838
|
-
this.DataKey=obj.DataKey;
|
|
124839
|
-
this.RecvCallback=obj.Callback;
|
|
124840
|
-
this.ErrorCallback=obj.ErrorCallback;
|
|
124841
|
-
|
|
124842
|
-
this.Download=function()
|
|
124843
|
-
{
|
|
124844
|
-
var self=this;
|
|
124845
|
-
var query=this.GetQueryCondtion();
|
|
124846
|
-
if (!query)
|
|
124847
|
-
{
|
|
124848
|
-
message=`${this.Job.FunctionName}(${this.Args[0]}, ${this.Args[1]}, ${this.Args[2]}) can't support.`;
|
|
124849
|
-
this.ErrorCallback(message);
|
|
124850
|
-
self.RecvCallback(null, self.Job, self.DataKey, true);
|
|
124851
|
-
return;
|
|
124852
|
-
}
|
|
124853
|
-
|
|
124854
|
-
//请求数据
|
|
124855
|
-
JSNetwork.HttpRequest({
|
|
124856
|
-
url: this.Url,
|
|
124857
|
-
data:
|
|
124858
|
-
{
|
|
124859
|
-
"field": query.Field,
|
|
124860
|
-
"symbol": query.Symbol,
|
|
124861
|
-
"condition":query.Cond ,
|
|
124862
|
-
"start": 0,
|
|
124863
|
-
"end": 2000
|
|
124864
|
-
},
|
|
124865
|
-
type:"post",
|
|
124866
|
-
dataType: "json",
|
|
124867
|
-
async:true,
|
|
124868
|
-
success: function (recvData)
|
|
124869
|
-
{
|
|
124870
|
-
var data=self.ToHQChartData(recvData);
|
|
124871
|
-
if (data) //排序
|
|
124872
|
-
data.sort(function (a, b) { return (a.Date - b.Date) });
|
|
124873
|
-
|
|
124874
|
-
self.RecvCallback(data, self.Job, self.DataKey);
|
|
124875
|
-
}
|
|
124876
|
-
});
|
|
124877
|
-
|
|
124878
|
-
}
|
|
124879
|
-
|
|
124880
|
-
this.GetQueryCondtion=function()
|
|
124881
|
-
{
|
|
124882
|
-
var day=new Date();
|
|
124883
|
-
var endDate=day.getFullYear()*10000+(day.getMonth()+1)*100+day.getDate();
|
|
124884
|
-
day.setDate(day.getDate()-100); //取最近1000条数据
|
|
124885
|
-
var startDate=day.getFullYear()*10000+(day.getMonth()+1)*100+day.getDate()
|
|
124886
|
-
var id=this.Args[0];
|
|
124887
|
-
switch(id)
|
|
124888
|
-
{
|
|
124889
|
-
case 1:
|
|
124890
|
-
var data=
|
|
124891
|
-
{
|
|
124892
|
-
Symbol:["CNA.ci"],
|
|
124893
|
-
Field:["margin"],
|
|
124894
|
-
Cond:
|
|
124895
|
-
[
|
|
124896
|
-
{"item":["date","int32","gte",startDate.toString(),"lte",endDate.toString()]},
|
|
124897
|
-
{"item":["margin","doc","exists","true"]}
|
|
124898
|
-
]
|
|
124899
|
-
}
|
|
124900
|
-
return data;
|
|
124901
|
-
}
|
|
124902
|
-
}
|
|
124903
|
-
|
|
124904
|
-
this.ToHQChartData=function(recvData)
|
|
124905
|
-
{
|
|
124906
|
-
if (!recvData.stock || recvData.stock.length!=1) return null;
|
|
124907
|
-
|
|
124908
|
-
var aryData=[];
|
|
124909
|
-
var setDate=new Set(); //有重复数据 去掉
|
|
124910
|
-
var stock=recvData.stock[0];
|
|
124911
|
-
var id=this.Args[0];
|
|
124912
|
-
var subID=this.Args[1];
|
|
124913
|
-
for(var i in stock.stockday)
|
|
124914
|
-
{
|
|
124915
|
-
var item=stock.stockday[i];
|
|
124916
|
-
|
|
124917
|
-
var hqchartItem=this.ToHQChartItemData(item,id,subID);
|
|
124918
|
-
if (hqchartItem && !setDate.has(hqchartItem.Date))
|
|
124919
|
-
{
|
|
124920
|
-
aryData.push(hqchartItem);
|
|
124921
|
-
setDate.add(hqchartItem.Date);
|
|
124922
|
-
}
|
|
124923
|
-
}
|
|
124924
|
-
|
|
124925
|
-
return aryData;
|
|
124926
|
-
}
|
|
124927
|
-
|
|
124928
|
-
this.ToHQChartItemData=function(item, id, subID)
|
|
124929
|
-
{
|
|
124930
|
-
if (!item) return null;
|
|
124931
|
-
var date=item.date;
|
|
124932
|
-
var subItem=null;
|
|
124933
|
-
switch(id)
|
|
124934
|
-
{
|
|
124935
|
-
case 1:
|
|
124936
|
-
if (!item.margin) return null;
|
|
124937
|
-
subItem=item.margin;
|
|
124938
|
-
if (subID==1)
|
|
124939
|
-
{
|
|
124940
|
-
if (!subItem.buy || !IFrameSplitOperator.IsNumber(subItem.buy.balance)) return null;
|
|
124941
|
-
return { Date:date, Value:subItem.buy.balance }
|
|
124942
|
-
}
|
|
124943
|
-
else
|
|
124944
|
-
{
|
|
124945
|
-
if (!IFrameSplitOperator.IsNumber(subItem.sell.balance)) return null;
|
|
124946
|
-
return { Date:date, Value:subItem.sell.balance }
|
|
124947
|
-
}
|
|
124948
|
-
|
|
124949
|
-
default:
|
|
124950
|
-
return null;
|
|
124951
|
-
}
|
|
124952
|
-
}
|
|
124953
|
-
}
|
|
124954
|
-
|
|
124955
124683
|
function DownloadGroupData(obj)
|
|
124956
124684
|
{
|
|
124957
124685
|
this.Url=obj.Url;
|
|
@@ -143356,7 +143084,7 @@ function HQChartScriptWorker()
|
|
|
143356
143084
|
|
|
143357
143085
|
|
|
143358
143086
|
|
|
143359
|
-
var HQCHART_VERSION="1.1.
|
|
143087
|
+
var HQCHART_VERSION="1.1.13801";
|
|
143360
143088
|
|
|
143361
143089
|
function PrintHQChartVersion()
|
|
143362
143090
|
{
|