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
|
@@ -11001,6 +11001,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
11001
11001
|
if (!paint) return;
|
|
11002
11002
|
|
|
11003
11003
|
var data=this.ChartPaint[0].Data;
|
|
11004
|
+
var count=data.Data.length;
|
|
11005
|
+
if (end>=count) end=count-1;
|
|
11004
11006
|
var startItem=data.Data[start];
|
|
11005
11007
|
var endItem=data.Data[end];
|
|
11006
11008
|
|
|
@@ -13737,8 +13739,13 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
13737
13739
|
if (!option) return false;
|
|
13738
13740
|
|
|
13739
13741
|
var frame=this.Frame.SubFrame[windowIndex];
|
|
13740
|
-
|
|
13741
|
-
|
|
13742
|
+
if (option.Delete)
|
|
13743
|
+
{
|
|
13744
|
+
var item=option.Delete;
|
|
13745
|
+
if (item.Window===true) this.DeleteIndexPaint(windowIndex); //删除主指标
|
|
13746
|
+
if (item.Overlay===true) this.DeleteWindowsOverlayIndex(windowIndex); //清空叠加指标
|
|
13747
|
+
}
|
|
13748
|
+
|
|
13742
13749
|
//清空标题栏
|
|
13743
13750
|
var titleIndex=windowIndex+1;
|
|
13744
13751
|
this.TitlePaint[titleIndex].Data=[];
|
|
@@ -13746,6 +13753,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
13746
13753
|
|
|
13747
13754
|
if (option.Window) //主指标
|
|
13748
13755
|
{
|
|
13756
|
+
this.DeleteIndexPaint(windowIndex); //删除主指标
|
|
13757
|
+
|
|
13749
13758
|
var item=option.Window;
|
|
13750
13759
|
|
|
13751
13760
|
if (item.Script) //自定义指标脚本
|
|
@@ -13785,6 +13794,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
13785
13794
|
var aryOverlayIndex=[];
|
|
13786
13795
|
if (IFrameSplitOperator.IsNonEmptyArray(option.OverlayIndex))
|
|
13787
13796
|
{
|
|
13797
|
+
this.DeleteWindowsOverlayIndex(windowIndex); //清空叠加指标
|
|
13798
|
+
|
|
13788
13799
|
for(var i=0;i<option.OverlayIndex.length;++i)
|
|
13789
13800
|
{
|
|
13790
13801
|
var item=option.OverlayIndex[i];
|
|
@@ -83581,6 +83592,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
83581
83592
|
if (end>=count) end=count-1;
|
|
83582
83593
|
var endItem=data.Data[end];
|
|
83583
83594
|
|
|
83595
|
+
if (!startItem || !endItem) return;
|
|
83596
|
+
|
|
83584
83597
|
JSConsole.Chart.Log('[MinuteChartContainer::UpdateSelectRect]',startItem,endItem);
|
|
83585
83598
|
paint.SetPoint(startItem, { Index:0 });
|
|
83586
83599
|
paint.SetPoint(endItem, { Index:1 });
|
|
@@ -93673,8 +93686,10 @@ function MinuteSelectRectDialog(divElement)
|
|
|
93673
93686
|
if(showData.Low>item.Low) showData.Low=item.Low;
|
|
93674
93687
|
}
|
|
93675
93688
|
|
|
93689
|
+
if (showData.Count<=0) return false;
|
|
93690
|
+
|
|
93676
93691
|
if (showData.Vol>0) showData.AvPrice=showData.Amount/showData.Vol; //均价
|
|
93677
|
-
if (
|
|
93692
|
+
if (showData.Open>0)
|
|
93678
93693
|
{
|
|
93679
93694
|
showData.Increase = (showData.Close - showData.Open) / showData.Open *100; //区间涨幅
|
|
93680
93695
|
showData.Amplitude = (showData.High - showData.Low) / showData.Open * 100; //区间振幅
|
|
@@ -93717,6 +93732,8 @@ function MinuteSelectRectDialog(divElement)
|
|
|
93717
93732
|
|
|
93718
93733
|
$(".parameter-content").html(div);
|
|
93719
93734
|
this.BindEvent();
|
|
93735
|
+
|
|
93736
|
+
return true;
|
|
93720
93737
|
}
|
|
93721
93738
|
|
|
93722
93739
|
this.BindEvent = function ()
|
|
@@ -93760,7 +93777,7 @@ function MinuteSelectRectDialog(divElement)
|
|
|
93760
93777
|
this.RectSelectPaint=event.data.RectSelectPaint;
|
|
93761
93778
|
this.HQChart=chart;
|
|
93762
93779
|
this.HQChart.HideSelectRect();
|
|
93763
|
-
this.BindData();
|
|
93780
|
+
if (!this.BindData()) return;
|
|
93764
93781
|
|
|
93765
93782
|
this.Show(); //通过CSS居中显示
|
|
93766
93783
|
}
|
|
@@ -99950,20 +99967,17 @@ function Node(ErrorHandler)
|
|
|
99950
99967
|
return;
|
|
99951
99968
|
}
|
|
99952
99969
|
|
|
99953
|
-
|
|
99970
|
+
//专业财务数据
|
|
99971
|
+
for(var i=0;i<JS_ARRAY_PROFESSIONAL_FINANCE.length;++i)
|
|
99954
99972
|
{
|
|
99955
|
-
var
|
|
99956
|
-
if (
|
|
99957
|
-
|
|
99958
|
-
|
|
99959
|
-
|
|
99960
|
-
|
|
99961
|
-
|
|
99962
|
-
|
|
99963
|
-
var item={ ID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SCJYVALUE, Args:args, FunctionName:callee.Name };
|
|
99964
|
-
if (token) item.Token={ Index:token.Start, Line:token.LineNumber };
|
|
99965
|
-
this.FunctionData.push(item);
|
|
99966
|
-
return;
|
|
99973
|
+
var financeItem=JS_ARRAY_PROFESSIONAL_FINANCE[i];
|
|
99974
|
+
if (financeItem.Name==callee.Name)
|
|
99975
|
+
{
|
|
99976
|
+
var item={ ID:financeItem.JobID, Args:args, FunctionName:callee.Name };
|
|
99977
|
+
if (token) item.Token={ Index:token.Start, Line:token.LineNumber };
|
|
99978
|
+
this.FunctionData.push(item);
|
|
99979
|
+
return;
|
|
99980
|
+
}
|
|
99967
99981
|
}
|
|
99968
99982
|
|
|
99969
99983
|
if (callee.Name==='MARGIN')
|
|
@@ -113129,74 +113143,41 @@ function JSSymbolData(ast,option,jsExecute)
|
|
|
113129
113143
|
apiDownload.Download();
|
|
113130
113144
|
}
|
|
113131
113145
|
|
|
113132
|
-
this.
|
|
113146
|
+
this.GetProFinance=function(jobItem)
|
|
113133
113147
|
{
|
|
113134
|
-
var
|
|
113135
|
-
var
|
|
113136
|
-
|
|
113137
|
-
|
|
113138
|
-
var self=this;
|
|
113139
|
-
//TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理
|
|
113140
|
-
var dataType=aryArgs[2]==1?0:2;
|
|
113141
|
-
if (this.NetworkFilter)
|
|
113148
|
+
var jobID=jobItem.ID;
|
|
113149
|
+
var finder=null;
|
|
113150
|
+
for(var i=0;i<JS_ARRAY_PROFESSIONAL_FINANCE.length;++i)
|
|
113142
113151
|
{
|
|
113143
|
-
var
|
|
113144
|
-
|
|
113152
|
+
var item=JS_ARRAY_PROFESSIONAL_FINANCE[i];
|
|
113153
|
+
if (item.JobID==jobID)
|
|
113145
113154
|
{
|
|
113146
|
-
|
|
113147
|
-
|
|
113148
|
-
|
|
113149
|
-
Request:{ Url:self.StockHistoryDayApiUrl, Type:'POST', Data:{ Args:aryArgs, symbol: this.Symbol, daterange:dateRange } },
|
|
113150
|
-
Self:this,
|
|
113151
|
-
PreventDefault:false
|
|
113152
|
-
};
|
|
113153
|
-
this.NetworkFilter(obj, function(recvData)
|
|
113154
|
-
{
|
|
113155
|
-
self.RecvStockValue(recvData,jobItem,key,dataType);
|
|
113156
|
-
self.Execute.RunNextJob();
|
|
113157
|
-
});
|
|
113158
|
-
|
|
113159
|
-
if (obj.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
|
|
113155
|
+
finder=item;
|
|
113156
|
+
break;
|
|
113157
|
+
}
|
|
113160
113158
|
}
|
|
113161
113159
|
|
|
113162
|
-
|
|
113163
|
-
{
|
|
113164
|
-
Job:jobItem,
|
|
113165
|
-
Symbol:this.Symbol,
|
|
113166
|
-
Url:this.StockHistoryDayApiUrl,
|
|
113167
|
-
Args:aryArgs,
|
|
113168
|
-
DataKey:key,
|
|
113169
|
-
Callback:function(recvData, jobItem, key)
|
|
113170
|
-
{
|
|
113171
|
-
self.RecvStockValue(recvData, jobItem, key,dataType);
|
|
113172
|
-
self.Execute.RunNextJob();
|
|
113173
|
-
},
|
|
113174
|
-
ErrorCallback:function(strError)
|
|
113175
|
-
{
|
|
113176
|
-
self.AddStockValueError(key,strError);
|
|
113177
|
-
}
|
|
113178
|
-
});
|
|
113179
|
-
|
|
113180
|
-
apiDownload.Download();
|
|
113181
|
-
}
|
|
113160
|
+
if (!finder) return this.Execute.RunNextJob();
|
|
113182
113161
|
|
|
113183
|
-
|
|
113184
|
-
{
|
|
113185
|
-
var aryArgs=this.JobArgumentsToArray(jobItem, 3);
|
|
113162
|
+
var aryArgs=this.JobArgumentsToArray(jobItem, finder.ArgCount);
|
|
113186
113163
|
var key=this.GetStockDataKey(jobItem,aryArgs);
|
|
113187
113164
|
if (this.StockData.has(key)) return this.Execute.RunNextJob();
|
|
113188
113165
|
|
|
113189
113166
|
var self=this;
|
|
113190
|
-
|
|
113191
|
-
|
|
113167
|
+
var dataType=0;
|
|
113168
|
+
if ([JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_GPJYVALUE,JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SCJYVALUE,JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_BKJYVALUE].includes(jobID))
|
|
113169
|
+
{
|
|
113170
|
+
dataType=aryArgs[2]==1?0:2; //TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理
|
|
113171
|
+
}
|
|
113172
|
+
|
|
113192
113173
|
if (this.NetworkFilter)
|
|
113193
113174
|
{
|
|
113194
113175
|
var dateRange=this.Data.GetDateRange();
|
|
113195
113176
|
var obj=
|
|
113196
113177
|
{
|
|
113197
|
-
Name:
|
|
113198
|
-
Explain:
|
|
113199
|
-
JobID:
|
|
113178
|
+
Name:finder.FuncName, //类名::
|
|
113179
|
+
Explain:finder.Explain,
|
|
113180
|
+
JobID:jobID,
|
|
113200
113181
|
Request:{ Url:self.StockHistoryDayApiUrl, Type:'POST', Data:{ Args:aryArgs, symbol: this.Symbol, daterange:dateRange } },
|
|
113201
113182
|
Self:this,
|
|
113202
113183
|
PreventDefault:false
|
|
@@ -113210,25 +113191,7 @@ function JSSymbolData(ast,option,jsExecute)
|
|
|
113210
113191
|
if (obj.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
|
|
113211
113192
|
}
|
|
113212
113193
|
|
|
113213
|
-
|
|
113214
|
-
{
|
|
113215
|
-
Job:jobItem,
|
|
113216
|
-
Symbol:this.Symbol,
|
|
113217
|
-
Url:this.StockHistoryDayApiUrl,
|
|
113218
|
-
Args:aryArgs,
|
|
113219
|
-
DataKey:key,
|
|
113220
|
-
Callback:function(recvData, jobItem, key)
|
|
113221
|
-
{
|
|
113222
|
-
self.RecvStockValue(recvData, jobItem, key,dataType);
|
|
113223
|
-
self.Execute.RunNextJob();
|
|
113224
|
-
},
|
|
113225
|
-
ErrorCallback:function(strError)
|
|
113226
|
-
{
|
|
113227
|
-
self.AddStockValueError(key,strError);
|
|
113228
|
-
}
|
|
113229
|
-
});
|
|
113230
|
-
|
|
113231
|
-
apiDownload.Download();
|
|
113194
|
+
JSConsole.Chart.Warn(`[JSSymbolData::GetProFinance] ${finder.FuncName} Not implemented.`);
|
|
113232
113195
|
}
|
|
113233
113196
|
|
|
113234
113197
|
this.GetVariantData=function(jobItem)
|
|
@@ -115228,6 +115191,11 @@ var JS_EXECUTE_JOB_ID=
|
|
|
115228
115191
|
JOB_DOWNLOAD_GPJYVALUE:304, //引用股票交易类数据 GPJYVALUE(ID,N,TYPE),ID为数据编号,N表示第几个数据,TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理
|
|
115229
115192
|
JOB_DOWNLOAD_VARIANT:305, //CAPITAL , TOTALCAPITAL, EXCHANGE
|
|
115230
115193
|
JOB_DOWNLOAD_SCJYVALUE:306, //引用市场总的交易类数据.SCJYVALUE(ID,N,TYPE),ID为数据编号,N表示第几个数据,TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理
|
|
115194
|
+
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...个数据
|
|
115195
|
+
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...个数据
|
|
115196
|
+
JOB_DOWNLOAD_BKJYVALUE:309, //BKJYVALUE(ID,N,TYPE),ID为数据编号,N表示第几个数据(取1或2),TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理;2表示没有数据则为0.
|
|
115197
|
+
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...个数据
|
|
115198
|
+
|
|
115231
115199
|
|
|
115232
115200
|
|
|
115233
115201
|
|
|
@@ -115424,6 +115392,36 @@ var JS_EXECUTE_JOB_ID=
|
|
|
115424
115392
|
|
|
115425
115393
|
};
|
|
115426
115394
|
|
|
115395
|
+
|
|
115396
|
+
//专业财务数据
|
|
115397
|
+
var JS_ARRAY_PROFESSIONAL_FINANCE=
|
|
115398
|
+
[
|
|
115399
|
+
{
|
|
115400
|
+
Name:"GPJYVALUE", JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_GPJYVALUE,
|
|
115401
|
+
Explain:"股票交易类数据GPJYVALUE(ID,N,TYPE)", FuncName:"JSSymbolData::GetGPJYValue", ArgCount:3
|
|
115402
|
+
},
|
|
115403
|
+
{
|
|
115404
|
+
Name:"GPJYONE", JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_GPJYONE,
|
|
115405
|
+
Explain:"股票交易类数据GPJYONE(ID,N,Y,MMDD)", FuncName:"JSSymbolData::GetGPJYOne", ArgCount:4
|
|
115406
|
+
},
|
|
115407
|
+
{
|
|
115408
|
+
Name:"SCJYVALUE", JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SCJYVALUE,
|
|
115409
|
+
Explain:"市场交易类数据SCJYVALUE(ID,N,TYPE)", FuncName:"JSSymbolData::GetSCJYValue",ArgCount:3
|
|
115410
|
+
},
|
|
115411
|
+
{
|
|
115412
|
+
Name:"SCJYONE", JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SCJYONE,
|
|
115413
|
+
Explain:"市场交易类数据SCJYONE(ID,N,Y,MMDD)", FuncName:"JSSymbolData::GetSCJYOne",ArgCount:4
|
|
115414
|
+
},
|
|
115415
|
+
{
|
|
115416
|
+
Name:"BKJYVALUE", JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_BKJYVALUE,
|
|
115417
|
+
Explain:"板块交易类数据BKJYVALUE(ID,N,TYPE)", FuncName:"JSSymbolData::GetBKJYValue",ArgCount:3
|
|
115418
|
+
},
|
|
115419
|
+
{
|
|
115420
|
+
Name:"BKJYONE", JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_BKJYONE,
|
|
115421
|
+
Explain:"板块交易类数据BKJYONE(ID,N,Y,MMDD)", FuncName:"JSSymbolData::GetBKJYOne",ArgCount:4
|
|
115422
|
+
},
|
|
115423
|
+
];
|
|
115424
|
+
|
|
115427
115425
|
function JSExecute(ast,option)
|
|
115428
115426
|
{
|
|
115429
115427
|
this.AST=ast; //语法树
|
|
@@ -115636,10 +115634,15 @@ function JSExecute(ast,option)
|
|
|
115636
115634
|
return this.SymbolData.GetFinValue(jobItem);
|
|
115637
115635
|
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_FINANCE:
|
|
115638
115636
|
return this.SymbolData.GetFinance(jobItem);
|
|
115637
|
+
|
|
115638
|
+
//专业财务数据
|
|
115639
115639
|
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_GPJYVALUE:
|
|
115640
|
-
|
|
115640
|
+
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_GPJYONE:
|
|
115641
115641
|
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SCJYVALUE:
|
|
115642
|
-
|
|
115642
|
+
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SCJYONE:
|
|
115643
|
+
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_BKJYVALUE:
|
|
115644
|
+
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_BKJYONE:
|
|
115645
|
+
return this.SymbolData.GetProFinance(jobItem);
|
|
115643
115646
|
|
|
115644
115647
|
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_VARIANT: //CAPITAL, TOTALCAPITAL
|
|
115645
115648
|
return this.SymbolData.GetVariantData(jobItem);
|
|
@@ -116999,11 +117002,15 @@ function JSExecute(ast,option)
|
|
|
116999
117002
|
node.Out=this.SymbolData.GetStockCacheData( {FunctionName:funcName, Args:args, ArgCount:3, Node:node } );
|
|
117000
117003
|
break;
|
|
117001
117004
|
case "GPJYVALUE":
|
|
117002
|
-
node.Out=this.SymbolData.GetStockCacheData( {FunctionName:funcName, Args:args, ArgCount:3, Node:node } );
|
|
117003
|
-
break;
|
|
117004
117005
|
case "SCJYVALUE":
|
|
117006
|
+
case "BKJYVALUE":
|
|
117005
117007
|
node.Out=this.SymbolData.GetStockCacheData( {FunctionName:funcName, Args:args, ArgCount:3, Node:node } );
|
|
117006
117008
|
break;
|
|
117009
|
+
case "GPJYONE":
|
|
117010
|
+
case "SCJYONE":
|
|
117011
|
+
case "BKJYONE":
|
|
117012
|
+
node.Out=this.SymbolData.GetStockCacheData( {FunctionName:funcName, Args:args, ArgCount:4, Node:node } );
|
|
117013
|
+
break;
|
|
117007
117014
|
case "MARGIN":
|
|
117008
117015
|
node.Out=this.SymbolData.GetMarginCacheData(args[0],node);
|
|
117009
117016
|
break;
|
|
@@ -124629,285 +124636,6 @@ function DownloadFinanceData(obj)
|
|
|
124629
124636
|
}
|
|
124630
124637
|
}
|
|
124631
124638
|
|
|
124632
|
-
function DownloadGPJYValue(obj)
|
|
124633
|
-
{
|
|
124634
|
-
this.Url=obj.Url;
|
|
124635
|
-
this.RealtimeUrl=obj.RealtimeUrl;
|
|
124636
|
-
this.Job=obj.Job;
|
|
124637
|
-
this.Symbol=obj.Symbol;
|
|
124638
|
-
this.Args=obj.Args;
|
|
124639
|
-
this.DataKey=obj.DataKey;
|
|
124640
|
-
this.RecvCallback=obj.Callback;
|
|
124641
|
-
this.ErrorCallback=obj.ErrorCallback;
|
|
124642
|
-
|
|
124643
|
-
this.Download=function()
|
|
124644
|
-
{
|
|
124645
|
-
var self=this;
|
|
124646
|
-
var fieldList=this.GetFieldList();
|
|
124647
|
-
if (!fieldList)
|
|
124648
|
-
{
|
|
124649
|
-
message=`${this.Job.FunctionName}(${this.Args[0]}, ${this.Args[1]}, ${this.Args[2]}) can't support.`;
|
|
124650
|
-
this.ErrorCallback(message);
|
|
124651
|
-
self.RecvCallback(null, self.Job, self.DataKey, true);
|
|
124652
|
-
return;
|
|
124653
|
-
}
|
|
124654
|
-
|
|
124655
|
-
//请求数据
|
|
124656
|
-
JSNetwork.HttpRequest({
|
|
124657
|
-
url: this.Url,
|
|
124658
|
-
data:
|
|
124659
|
-
{
|
|
124660
|
-
"field": fieldList,
|
|
124661
|
-
"symbol": [this.Symbol],
|
|
124662
|
-
"orderfield":"date",
|
|
124663
|
-
"order":-1,
|
|
124664
|
-
"start":0,
|
|
124665
|
-
"end":5
|
|
124666
|
-
},
|
|
124667
|
-
type:"post",
|
|
124668
|
-
dataType: "json",
|
|
124669
|
-
async:true,
|
|
124670
|
-
success: function (recvData)
|
|
124671
|
-
{
|
|
124672
|
-
var data=self.ToHQChartData(recvData);
|
|
124673
|
-
if (data && data.length>0)
|
|
124674
|
-
{
|
|
124675
|
-
data.sort(function (a, b) { return (a.Date-b.Date) });
|
|
124676
|
-
}
|
|
124677
|
-
self.RecvCallback(data, self.Job, self.DataKey);
|
|
124678
|
-
}
|
|
124679
|
-
});
|
|
124680
|
-
}
|
|
124681
|
-
|
|
124682
|
-
this.GetFieldList=function()
|
|
124683
|
-
{
|
|
124684
|
-
var id=this.Args[0];
|
|
124685
|
-
switch(id)
|
|
124686
|
-
{
|
|
124687
|
-
case 1: //1--股东人数 股东户数(户)
|
|
124688
|
-
return ["shareholder", "date", "symbol"];
|
|
124689
|
-
case 2: //2--龙虎榜 买入总计(万元) 卖出总计(万元)
|
|
124690
|
-
return ["tradedetail.buy","tradedetail.sell", "date", "symbol"];
|
|
124691
|
-
case 3: //3--融资融券1 融资余额(万元) 融券余量(股)
|
|
124692
|
-
return ["margin","date", "symbol"];
|
|
124693
|
-
case 4: //4--大宗交易 成交均价(元) 成交额(万元)
|
|
124694
|
-
return ["blocktrading.amount","blocktrading.price","date", "symbol"]
|
|
124695
|
-
default:
|
|
124696
|
-
return null;
|
|
124697
|
-
}
|
|
124698
|
-
}
|
|
124699
|
-
|
|
124700
|
-
this.ToHQChartData=function(recvData)
|
|
124701
|
-
{
|
|
124702
|
-
if (!recvData.stock || recvData.stock.length!=1) return null;
|
|
124703
|
-
|
|
124704
|
-
var aryData=[];
|
|
124705
|
-
var setDate=new Set(); //有重复数据 去掉
|
|
124706
|
-
var stock=recvData.stock[0];
|
|
124707
|
-
var id=this.Args[0];
|
|
124708
|
-
var subID=this.Args[1];
|
|
124709
|
-
for(var i in stock.stockday)
|
|
124710
|
-
{
|
|
124711
|
-
var item=stock.stockday[i];
|
|
124712
|
-
|
|
124713
|
-
var hqchartItem=this.ToHQChartItemData(item,id,subID);
|
|
124714
|
-
if (hqchartItem && !setDate.has(hqchartItem.Date))
|
|
124715
|
-
{
|
|
124716
|
-
aryData.push(hqchartItem);
|
|
124717
|
-
setDate.add(hqchartItem.Date);
|
|
124718
|
-
}
|
|
124719
|
-
}
|
|
124720
|
-
|
|
124721
|
-
return aryData;
|
|
124722
|
-
}
|
|
124723
|
-
|
|
124724
|
-
this.ToHQChartItemData=function(item, id, subID)
|
|
124725
|
-
{
|
|
124726
|
-
if (!item) return null;
|
|
124727
|
-
var date=item.date;
|
|
124728
|
-
switch(id)
|
|
124729
|
-
{
|
|
124730
|
-
case 1:
|
|
124731
|
-
if (!item.shareholder) return null;
|
|
124732
|
-
return { Date:date, Value:item.shareholder.count };
|
|
124733
|
-
case 2:
|
|
124734
|
-
if (!item.tradedetail && item.tradedetail[0]) return null;
|
|
124735
|
-
if (subID==0)
|
|
124736
|
-
return { Date:date, Value:item.tradedetail[0].buy };
|
|
124737
|
-
else
|
|
124738
|
-
return { Date:date, Value:item.tradedetail[0].sell };
|
|
124739
|
-
case 3:
|
|
124740
|
-
if (!item.margin) return null;
|
|
124741
|
-
if (subID==0)
|
|
124742
|
-
{
|
|
124743
|
-
if (item.margin.buy)
|
|
124744
|
-
return { Date:date, Value:item.margin.buy.balance };
|
|
124745
|
-
}
|
|
124746
|
-
else
|
|
124747
|
-
{
|
|
124748
|
-
if (item.margin.sell)
|
|
124749
|
-
return { Date:date, Value:item.margin.sell.balance };
|
|
124750
|
-
}
|
|
124751
|
-
return null;
|
|
124752
|
-
case 4:
|
|
124753
|
-
if (!item.blocktrading) return null;
|
|
124754
|
-
if (subID==0)
|
|
124755
|
-
return { Date:date, Value:item.blocktrading.price };
|
|
124756
|
-
else
|
|
124757
|
-
return { Date:date, Value:item.blocktrading.amount };
|
|
124758
|
-
default:
|
|
124759
|
-
return null;
|
|
124760
|
-
}
|
|
124761
|
-
}
|
|
124762
|
-
}
|
|
124763
|
-
|
|
124764
|
-
|
|
124765
|
-
|
|
124766
|
-
/*
|
|
124767
|
-
引用市场总的交易类数据.如果指标支持云数据函数,则不需要[专业财务数据]下载.
|
|
124768
|
-
SCJYVALUE(ID,N,TYPE),ID为数据编号,N表示第几个数据,TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理
|
|
124769
|
-
|
|
124770
|
-
市场交易类数据函数,数据编号如下:
|
|
124771
|
-
1--融资融券 沪深融资余额(万元) 沪深融券余额(万元)
|
|
124772
|
-
2--陆股通资金流入 沪股通流入金额(亿元) 深股通流入金额(亿元)
|
|
124773
|
-
3--沪深涨停股个数 涨停股个数 曾涨停股个数 [注:该指标展示20160926日之后的数据]
|
|
124774
|
-
4--沪深跌停股个数 跌停股个数 曾跌停股个数
|
|
124775
|
-
5--上证50股指期货 净持仓(手)[注:该指标展示20171009日之后的数据]
|
|
124776
|
-
6--沪深300股指期货 净持仓(手) [注:该指标展示20171009日之后的数据]
|
|
124777
|
-
7--中证500股指期货 净持仓(手) [注:该指标展示20171009日之后的数据]
|
|
124778
|
-
8--ETF基金规模数据 ETF基金规模(亿) ETF净申赎(亿)
|
|
124779
|
-
9--每周新增投资者 新增投资者(万户)
|
|
124780
|
-
10--增减持统计 增持额(万元) 减持额(万元)[注:部分公司公告滞后,造成每天查看的数据可能会不一样]
|
|
124781
|
-
11--大宗交易 溢价的大宗交易额(万元) 折价的大宗交易额(万元)
|
|
124782
|
-
12--限售解禁 限售解禁计划额(亿元) 限售解禁股份实际上市金额(亿元)[注:该指标展示201802月之后的数据;部分股票的解禁日期延后,造成不同日期提取的某天的计划额可能不同]
|
|
124783
|
-
13--分红 市场总分红额(亿元)[注:除权派息日的A股市场总分红额]
|
|
124784
|
-
14--募资 市场总募资额(亿元)[注:发行日期/除权日期的首发、配股和增发的总募资额]
|
|
124785
|
-
15--打板资金 封板成功资金(亿元) 封板失败资金(亿元) [注:该指标展示20160926日之后的数据]
|
|
124786
|
-
*/
|
|
124787
|
-
function DownloadSCJYValue(obj)
|
|
124788
|
-
{
|
|
124789
|
-
this.Url=obj.Url;
|
|
124790
|
-
//this.RealtimeUrl=obj.RealtimeUrl;
|
|
124791
|
-
this.Job=obj.Job;
|
|
124792
|
-
this.Symbol=obj.Symbol;
|
|
124793
|
-
this.Args=obj.Args;
|
|
124794
|
-
this.DataKey=obj.DataKey;
|
|
124795
|
-
this.RecvCallback=obj.Callback;
|
|
124796
|
-
this.ErrorCallback=obj.ErrorCallback;
|
|
124797
|
-
|
|
124798
|
-
this.Download=function()
|
|
124799
|
-
{
|
|
124800
|
-
var self=this;
|
|
124801
|
-
var query=this.GetQueryCondtion();
|
|
124802
|
-
if (!query)
|
|
124803
|
-
{
|
|
124804
|
-
message=`${this.Job.FunctionName}(${this.Args[0]}, ${this.Args[1]}, ${this.Args[2]}) can't support.`;
|
|
124805
|
-
this.ErrorCallback(message);
|
|
124806
|
-
self.RecvCallback(null, self.Job, self.DataKey, true);
|
|
124807
|
-
return;
|
|
124808
|
-
}
|
|
124809
|
-
|
|
124810
|
-
//请求数据
|
|
124811
|
-
JSNetwork.HttpRequest({
|
|
124812
|
-
url: this.Url,
|
|
124813
|
-
data:
|
|
124814
|
-
{
|
|
124815
|
-
"field": query.Field,
|
|
124816
|
-
"symbol": query.Symbol,
|
|
124817
|
-
"condition":query.Cond ,
|
|
124818
|
-
"start": 0,
|
|
124819
|
-
"end": 2000
|
|
124820
|
-
},
|
|
124821
|
-
type:"post",
|
|
124822
|
-
dataType: "json",
|
|
124823
|
-
async:true,
|
|
124824
|
-
success: function (recvData)
|
|
124825
|
-
{
|
|
124826
|
-
var data=self.ToHQChartData(recvData);
|
|
124827
|
-
if (data) //排序
|
|
124828
|
-
data.sort(function (a, b) { return (a.Date - b.Date) });
|
|
124829
|
-
|
|
124830
|
-
self.RecvCallback(data, self.Job, self.DataKey);
|
|
124831
|
-
}
|
|
124832
|
-
});
|
|
124833
|
-
|
|
124834
|
-
}
|
|
124835
|
-
|
|
124836
|
-
this.GetQueryCondtion=function()
|
|
124837
|
-
{
|
|
124838
|
-
var day=new Date();
|
|
124839
|
-
var endDate=day.getFullYear()*10000+(day.getMonth()+1)*100+day.getDate();
|
|
124840
|
-
day.setDate(day.getDate()-100); //取最近1000条数据
|
|
124841
|
-
var startDate=day.getFullYear()*10000+(day.getMonth()+1)*100+day.getDate()
|
|
124842
|
-
var id=this.Args[0];
|
|
124843
|
-
switch(id)
|
|
124844
|
-
{
|
|
124845
|
-
case 1:
|
|
124846
|
-
var data=
|
|
124847
|
-
{
|
|
124848
|
-
Symbol:["CNA.ci"],
|
|
124849
|
-
Field:["margin"],
|
|
124850
|
-
Cond:
|
|
124851
|
-
[
|
|
124852
|
-
{"item":["date","int32","gte",startDate.toString(),"lte",endDate.toString()]},
|
|
124853
|
-
{"item":["margin","doc","exists","true"]}
|
|
124854
|
-
]
|
|
124855
|
-
}
|
|
124856
|
-
return data;
|
|
124857
|
-
}
|
|
124858
|
-
}
|
|
124859
|
-
|
|
124860
|
-
this.ToHQChartData=function(recvData)
|
|
124861
|
-
{
|
|
124862
|
-
if (!recvData.stock || recvData.stock.length!=1) return null;
|
|
124863
|
-
|
|
124864
|
-
var aryData=[];
|
|
124865
|
-
var setDate=new Set(); //有重复数据 去掉
|
|
124866
|
-
var stock=recvData.stock[0];
|
|
124867
|
-
var id=this.Args[0];
|
|
124868
|
-
var subID=this.Args[1];
|
|
124869
|
-
for(var i in stock.stockday)
|
|
124870
|
-
{
|
|
124871
|
-
var item=stock.stockday[i];
|
|
124872
|
-
|
|
124873
|
-
var hqchartItem=this.ToHQChartItemData(item,id,subID);
|
|
124874
|
-
if (hqchartItem && !setDate.has(hqchartItem.Date))
|
|
124875
|
-
{
|
|
124876
|
-
aryData.push(hqchartItem);
|
|
124877
|
-
setDate.add(hqchartItem.Date);
|
|
124878
|
-
}
|
|
124879
|
-
}
|
|
124880
|
-
|
|
124881
|
-
return aryData;
|
|
124882
|
-
}
|
|
124883
|
-
|
|
124884
|
-
this.ToHQChartItemData=function(item, id, subID)
|
|
124885
|
-
{
|
|
124886
|
-
if (!item) return null;
|
|
124887
|
-
var date=item.date;
|
|
124888
|
-
var subItem=null;
|
|
124889
|
-
switch(id)
|
|
124890
|
-
{
|
|
124891
|
-
case 1:
|
|
124892
|
-
if (!item.margin) return null;
|
|
124893
|
-
subItem=item.margin;
|
|
124894
|
-
if (subID==1)
|
|
124895
|
-
{
|
|
124896
|
-
if (!subItem.buy || !IFrameSplitOperator.IsNumber(subItem.buy.balance)) return null;
|
|
124897
|
-
return { Date:date, Value:subItem.buy.balance }
|
|
124898
|
-
}
|
|
124899
|
-
else
|
|
124900
|
-
{
|
|
124901
|
-
if (!IFrameSplitOperator.IsNumber(subItem.sell.balance)) return null;
|
|
124902
|
-
return { Date:date, Value:subItem.sell.balance }
|
|
124903
|
-
}
|
|
124904
|
-
|
|
124905
|
-
default:
|
|
124906
|
-
return null;
|
|
124907
|
-
}
|
|
124908
|
-
}
|
|
124909
|
-
}
|
|
124910
|
-
|
|
124911
124639
|
function DownloadGroupData(obj)
|
|
124912
124640
|
{
|
|
124913
124641
|
this.Url=obj.Url;
|
|
@@ -138800,7 +138528,7 @@ function ScrollBarBGChart()
|
|
|
138800
138528
|
|
|
138801
138529
|
|
|
138802
138530
|
|
|
138803
|
-
var HQCHART_VERSION="1.1.
|
|
138531
|
+
var HQCHART_VERSION="1.1.13801";
|
|
138804
138532
|
|
|
138805
138533
|
function PrintHQChartVersion()
|
|
138806
138534
|
{
|