hqchart 1.1.13793 → 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 +23 -50
- 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 +10 -2
- package/src/jscommon/umychart.testdata.js +130 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +90 -371
- 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 +90 -371
|
@@ -1254,20 +1254,17 @@ function Node(ErrorHandler)
|
|
|
1254
1254
|
return;
|
|
1255
1255
|
}
|
|
1256
1256
|
|
|
1257
|
-
|
|
1257
|
+
//专业财务数据
|
|
1258
|
+
for(var i=0;i<JS_ARRAY_PROFESSIONAL_FINANCE.length;++i)
|
|
1258
1259
|
{
|
|
1259
|
-
var
|
|
1260
|
-
if (
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
var item={ ID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SCJYVALUE, Args:args, FunctionName:callee.Name };
|
|
1268
|
-
if (token) item.Token={ Index:token.Start, Line:token.LineNumber };
|
|
1269
|
-
this.FunctionData.push(item);
|
|
1270
|
-
return;
|
|
1260
|
+
var financeItem=JS_ARRAY_PROFESSIONAL_FINANCE[i];
|
|
1261
|
+
if (financeItem.Name==callee.Name)
|
|
1262
|
+
{
|
|
1263
|
+
var item={ ID:financeItem.JobID, Args:args, FunctionName:callee.Name };
|
|
1264
|
+
if (token) item.Token={ Index:token.Start, Line:token.LineNumber };
|
|
1265
|
+
this.FunctionData.push(item);
|
|
1266
|
+
return;
|
|
1267
|
+
}
|
|
1271
1268
|
}
|
|
1272
1269
|
|
|
1273
1270
|
if (callee.Name==='MARGIN')
|
|
@@ -14433,74 +14430,41 @@ function JSSymbolData(ast,option,jsExecute)
|
|
|
14433
14430
|
apiDownload.Download();
|
|
14434
14431
|
}
|
|
14435
14432
|
|
|
14436
|
-
this.
|
|
14433
|
+
this.GetProFinance=function(jobItem)
|
|
14437
14434
|
{
|
|
14438
|
-
var
|
|
14439
|
-
var
|
|
14440
|
-
|
|
14441
|
-
|
|
14442
|
-
var self=this;
|
|
14443
|
-
//TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理
|
|
14444
|
-
var dataType=aryArgs[2]==1?0:2;
|
|
14445
|
-
if (this.NetworkFilter)
|
|
14435
|
+
var jobID=jobItem.ID;
|
|
14436
|
+
var finder=null;
|
|
14437
|
+
for(var i=0;i<JS_ARRAY_PROFESSIONAL_FINANCE.length;++i)
|
|
14446
14438
|
{
|
|
14447
|
-
var
|
|
14448
|
-
|
|
14439
|
+
var item=JS_ARRAY_PROFESSIONAL_FINANCE[i];
|
|
14440
|
+
if (item.JobID==jobID)
|
|
14449
14441
|
{
|
|
14450
|
-
|
|
14451
|
-
|
|
14452
|
-
|
|
14453
|
-
Request:{ Url:self.StockHistoryDayApiUrl, Type:'POST', Data:{ Args:aryArgs, symbol: this.Symbol, daterange:dateRange } },
|
|
14454
|
-
Self:this,
|
|
14455
|
-
PreventDefault:false
|
|
14456
|
-
};
|
|
14457
|
-
this.NetworkFilter(obj, function(recvData)
|
|
14458
|
-
{
|
|
14459
|
-
self.RecvStockValue(recvData,jobItem,key,dataType);
|
|
14460
|
-
self.Execute.RunNextJob();
|
|
14461
|
-
});
|
|
14462
|
-
|
|
14463
|
-
if (obj.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
|
|
14442
|
+
finder=item;
|
|
14443
|
+
break;
|
|
14444
|
+
}
|
|
14464
14445
|
}
|
|
14465
14446
|
|
|
14466
|
-
|
|
14467
|
-
{
|
|
14468
|
-
Job:jobItem,
|
|
14469
|
-
Symbol:this.Symbol,
|
|
14470
|
-
Url:this.StockHistoryDayApiUrl,
|
|
14471
|
-
Args:aryArgs,
|
|
14472
|
-
DataKey:key,
|
|
14473
|
-
Callback:function(recvData, jobItem, key)
|
|
14474
|
-
{
|
|
14475
|
-
self.RecvStockValue(recvData, jobItem, key,dataType);
|
|
14476
|
-
self.Execute.RunNextJob();
|
|
14477
|
-
},
|
|
14478
|
-
ErrorCallback:function(strError)
|
|
14479
|
-
{
|
|
14480
|
-
self.AddStockValueError(key,strError);
|
|
14481
|
-
}
|
|
14482
|
-
});
|
|
14483
|
-
|
|
14484
|
-
apiDownload.Download();
|
|
14485
|
-
}
|
|
14447
|
+
if (!finder) return this.Execute.RunNextJob();
|
|
14486
14448
|
|
|
14487
|
-
|
|
14488
|
-
{
|
|
14489
|
-
var aryArgs=this.JobArgumentsToArray(jobItem, 3);
|
|
14449
|
+
var aryArgs=this.JobArgumentsToArray(jobItem, finder.ArgCount);
|
|
14490
14450
|
var key=this.GetStockDataKey(jobItem,aryArgs);
|
|
14491
14451
|
if (this.StockData.has(key)) return this.Execute.RunNextJob();
|
|
14492
14452
|
|
|
14493
14453
|
var self=this;
|
|
14494
|
-
|
|
14495
|
-
|
|
14454
|
+
var dataType=0;
|
|
14455
|
+
if ([JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_GPJYVALUE,JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SCJYVALUE,JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_BKJYVALUE].includes(jobID))
|
|
14456
|
+
{
|
|
14457
|
+
dataType=aryArgs[2]==1?0:2; //TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理
|
|
14458
|
+
}
|
|
14459
|
+
|
|
14496
14460
|
if (this.NetworkFilter)
|
|
14497
14461
|
{
|
|
14498
14462
|
var dateRange=this.Data.GetDateRange();
|
|
14499
14463
|
var obj=
|
|
14500
14464
|
{
|
|
14501
|
-
Name:
|
|
14502
|
-
Explain:
|
|
14503
|
-
JobID:
|
|
14465
|
+
Name:finder.FuncName, //类名::
|
|
14466
|
+
Explain:finder.Explain,
|
|
14467
|
+
JobID:jobID,
|
|
14504
14468
|
Request:{ Url:self.StockHistoryDayApiUrl, Type:'POST', Data:{ Args:aryArgs, symbol: this.Symbol, daterange:dateRange } },
|
|
14505
14469
|
Self:this,
|
|
14506
14470
|
PreventDefault:false
|
|
@@ -14514,25 +14478,7 @@ function JSSymbolData(ast,option,jsExecute)
|
|
|
14514
14478
|
if (obj.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
|
|
14515
14479
|
}
|
|
14516
14480
|
|
|
14517
|
-
|
|
14518
|
-
{
|
|
14519
|
-
Job:jobItem,
|
|
14520
|
-
Symbol:this.Symbol,
|
|
14521
|
-
Url:this.StockHistoryDayApiUrl,
|
|
14522
|
-
Args:aryArgs,
|
|
14523
|
-
DataKey:key,
|
|
14524
|
-
Callback:function(recvData, jobItem, key)
|
|
14525
|
-
{
|
|
14526
|
-
self.RecvStockValue(recvData, jobItem, key,dataType);
|
|
14527
|
-
self.Execute.RunNextJob();
|
|
14528
|
-
},
|
|
14529
|
-
ErrorCallback:function(strError)
|
|
14530
|
-
{
|
|
14531
|
-
self.AddStockValueError(key,strError);
|
|
14532
|
-
}
|
|
14533
|
-
});
|
|
14534
|
-
|
|
14535
|
-
apiDownload.Download();
|
|
14481
|
+
JSConsole.Chart.Warn(`[JSSymbolData::GetProFinance] ${finder.FuncName} Not implemented.`);
|
|
14536
14482
|
}
|
|
14537
14483
|
|
|
14538
14484
|
this.GetVariantData=function(jobItem)
|
|
@@ -16532,6 +16478,11 @@ var JS_EXECUTE_JOB_ID=
|
|
|
16532
16478
|
JOB_DOWNLOAD_GPJYVALUE:304, //引用股票交易类数据 GPJYVALUE(ID,N,TYPE),ID为数据编号,N表示第几个数据,TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理
|
|
16533
16479
|
JOB_DOWNLOAD_VARIANT:305, //CAPITAL , TOTALCAPITAL, EXCHANGE
|
|
16534
16480
|
JOB_DOWNLOAD_SCJYVALUE:306, //引用市场总的交易类数据.SCJYVALUE(ID,N,TYPE),ID为数据编号,N表示第几个数据,TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理
|
|
16481
|
+
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...个数据
|
|
16482
|
+
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...个数据
|
|
16483
|
+
JOB_DOWNLOAD_BKJYVALUE:309, //BKJYVALUE(ID,N,TYPE),ID为数据编号,N表示第几个数据(取1或2),TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理;2表示没有数据则为0.
|
|
16484
|
+
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...个数据
|
|
16485
|
+
|
|
16535
16486
|
|
|
16536
16487
|
|
|
16537
16488
|
|
|
@@ -16728,6 +16679,36 @@ var JS_EXECUTE_JOB_ID=
|
|
|
16728
16679
|
|
|
16729
16680
|
};
|
|
16730
16681
|
|
|
16682
|
+
|
|
16683
|
+
//专业财务数据
|
|
16684
|
+
var JS_ARRAY_PROFESSIONAL_FINANCE=
|
|
16685
|
+
[
|
|
16686
|
+
{
|
|
16687
|
+
Name:"GPJYVALUE", JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_GPJYVALUE,
|
|
16688
|
+
Explain:"股票交易类数据GPJYVALUE(ID,N,TYPE)", FuncName:"JSSymbolData::GetGPJYValue", ArgCount:3
|
|
16689
|
+
},
|
|
16690
|
+
{
|
|
16691
|
+
Name:"GPJYONE", JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_GPJYONE,
|
|
16692
|
+
Explain:"股票交易类数据GPJYONE(ID,N,Y,MMDD)", FuncName:"JSSymbolData::GetGPJYOne", ArgCount:4
|
|
16693
|
+
},
|
|
16694
|
+
{
|
|
16695
|
+
Name:"SCJYVALUE", JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SCJYVALUE,
|
|
16696
|
+
Explain:"市场交易类数据SCJYVALUE(ID,N,TYPE)", FuncName:"JSSymbolData::GetSCJYValue",ArgCount:3
|
|
16697
|
+
},
|
|
16698
|
+
{
|
|
16699
|
+
Name:"SCJYONE", JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SCJYONE,
|
|
16700
|
+
Explain:"市场交易类数据SCJYONE(ID,N,Y,MMDD)", FuncName:"JSSymbolData::GetSCJYOne",ArgCount:4
|
|
16701
|
+
},
|
|
16702
|
+
{
|
|
16703
|
+
Name:"BKJYVALUE", JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_BKJYVALUE,
|
|
16704
|
+
Explain:"板块交易类数据BKJYVALUE(ID,N,TYPE)", FuncName:"JSSymbolData::GetBKJYValue",ArgCount:3
|
|
16705
|
+
},
|
|
16706
|
+
{
|
|
16707
|
+
Name:"BKJYONE", JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_BKJYONE,
|
|
16708
|
+
Explain:"板块交易类数据BKJYONE(ID,N,Y,MMDD)", FuncName:"JSSymbolData::GetBKJYOne",ArgCount:4
|
|
16709
|
+
},
|
|
16710
|
+
];
|
|
16711
|
+
|
|
16731
16712
|
function JSExecute(ast,option)
|
|
16732
16713
|
{
|
|
16733
16714
|
this.AST=ast; //语法树
|
|
@@ -16940,10 +16921,15 @@ function JSExecute(ast,option)
|
|
|
16940
16921
|
return this.SymbolData.GetFinValue(jobItem);
|
|
16941
16922
|
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_FINANCE:
|
|
16942
16923
|
return this.SymbolData.GetFinance(jobItem);
|
|
16924
|
+
|
|
16925
|
+
//专业财务数据
|
|
16943
16926
|
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_GPJYVALUE:
|
|
16944
|
-
|
|
16927
|
+
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_GPJYONE:
|
|
16945
16928
|
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SCJYVALUE:
|
|
16946
|
-
|
|
16929
|
+
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SCJYONE:
|
|
16930
|
+
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_BKJYVALUE:
|
|
16931
|
+
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_BKJYONE:
|
|
16932
|
+
return this.SymbolData.GetProFinance(jobItem);
|
|
16947
16933
|
|
|
16948
16934
|
case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_VARIANT: //CAPITAL, TOTALCAPITAL
|
|
16949
16935
|
return this.SymbolData.GetVariantData(jobItem);
|
|
@@ -18303,11 +18289,15 @@ function JSExecute(ast,option)
|
|
|
18303
18289
|
node.Out=this.SymbolData.GetStockCacheData( {FunctionName:funcName, Args:args, ArgCount:3, Node:node } );
|
|
18304
18290
|
break;
|
|
18305
18291
|
case "GPJYVALUE":
|
|
18306
|
-
node.Out=this.SymbolData.GetStockCacheData( {FunctionName:funcName, Args:args, ArgCount:3, Node:node } );
|
|
18307
|
-
break;
|
|
18308
18292
|
case "SCJYVALUE":
|
|
18293
|
+
case "BKJYVALUE":
|
|
18309
18294
|
node.Out=this.SymbolData.GetStockCacheData( {FunctionName:funcName, Args:args, ArgCount:3, Node:node } );
|
|
18310
18295
|
break;
|
|
18296
|
+
case "GPJYONE":
|
|
18297
|
+
case "SCJYONE":
|
|
18298
|
+
case "BKJYONE":
|
|
18299
|
+
node.Out=this.SymbolData.GetStockCacheData( {FunctionName:funcName, Args:args, ArgCount:4, Node:node } );
|
|
18300
|
+
break;
|
|
18311
18301
|
case "MARGIN":
|
|
18312
18302
|
node.Out=this.SymbolData.GetMarginCacheData(args[0],node);
|
|
18313
18303
|
break;
|
|
@@ -25933,285 +25923,6 @@ function DownloadFinanceData(obj)
|
|
|
25933
25923
|
}
|
|
25934
25924
|
}
|
|
25935
25925
|
|
|
25936
|
-
function DownloadGPJYValue(obj)
|
|
25937
|
-
{
|
|
25938
|
-
this.Url=obj.Url;
|
|
25939
|
-
this.RealtimeUrl=obj.RealtimeUrl;
|
|
25940
|
-
this.Job=obj.Job;
|
|
25941
|
-
this.Symbol=obj.Symbol;
|
|
25942
|
-
this.Args=obj.Args;
|
|
25943
|
-
this.DataKey=obj.DataKey;
|
|
25944
|
-
this.RecvCallback=obj.Callback;
|
|
25945
|
-
this.ErrorCallback=obj.ErrorCallback;
|
|
25946
|
-
|
|
25947
|
-
this.Download=function()
|
|
25948
|
-
{
|
|
25949
|
-
var self=this;
|
|
25950
|
-
var fieldList=this.GetFieldList();
|
|
25951
|
-
if (!fieldList)
|
|
25952
|
-
{
|
|
25953
|
-
message=`${this.Job.FunctionName}(${this.Args[0]}, ${this.Args[1]}, ${this.Args[2]}) can't support.`;
|
|
25954
|
-
this.ErrorCallback(message);
|
|
25955
|
-
self.RecvCallback(null, self.Job, self.DataKey, true);
|
|
25956
|
-
return;
|
|
25957
|
-
}
|
|
25958
|
-
|
|
25959
|
-
//请求数据
|
|
25960
|
-
JSNetwork.HttpRequest({
|
|
25961
|
-
url: this.Url,
|
|
25962
|
-
data:
|
|
25963
|
-
{
|
|
25964
|
-
"field": fieldList,
|
|
25965
|
-
"symbol": [this.Symbol],
|
|
25966
|
-
"orderfield":"date",
|
|
25967
|
-
"order":-1,
|
|
25968
|
-
"start":0,
|
|
25969
|
-
"end":5
|
|
25970
|
-
},
|
|
25971
|
-
type:"post",
|
|
25972
|
-
dataType: "json",
|
|
25973
|
-
async:true,
|
|
25974
|
-
success: function (recvData)
|
|
25975
|
-
{
|
|
25976
|
-
var data=self.ToHQChartData(recvData);
|
|
25977
|
-
if (data && data.length>0)
|
|
25978
|
-
{
|
|
25979
|
-
data.sort(function (a, b) { return (a.Date-b.Date) });
|
|
25980
|
-
}
|
|
25981
|
-
self.RecvCallback(data, self.Job, self.DataKey);
|
|
25982
|
-
}
|
|
25983
|
-
});
|
|
25984
|
-
}
|
|
25985
|
-
|
|
25986
|
-
this.GetFieldList=function()
|
|
25987
|
-
{
|
|
25988
|
-
var id=this.Args[0];
|
|
25989
|
-
switch(id)
|
|
25990
|
-
{
|
|
25991
|
-
case 1: //1--股东人数 股东户数(户)
|
|
25992
|
-
return ["shareholder", "date", "symbol"];
|
|
25993
|
-
case 2: //2--龙虎榜 买入总计(万元) 卖出总计(万元)
|
|
25994
|
-
return ["tradedetail.buy","tradedetail.sell", "date", "symbol"];
|
|
25995
|
-
case 3: //3--融资融券1 融资余额(万元) 融券余量(股)
|
|
25996
|
-
return ["margin","date", "symbol"];
|
|
25997
|
-
case 4: //4--大宗交易 成交均价(元) 成交额(万元)
|
|
25998
|
-
return ["blocktrading.amount","blocktrading.price","date", "symbol"]
|
|
25999
|
-
default:
|
|
26000
|
-
return null;
|
|
26001
|
-
}
|
|
26002
|
-
}
|
|
26003
|
-
|
|
26004
|
-
this.ToHQChartData=function(recvData)
|
|
26005
|
-
{
|
|
26006
|
-
if (!recvData.stock || recvData.stock.length!=1) return null;
|
|
26007
|
-
|
|
26008
|
-
var aryData=[];
|
|
26009
|
-
var setDate=new Set(); //有重复数据 去掉
|
|
26010
|
-
var stock=recvData.stock[0];
|
|
26011
|
-
var id=this.Args[0];
|
|
26012
|
-
var subID=this.Args[1];
|
|
26013
|
-
for(var i in stock.stockday)
|
|
26014
|
-
{
|
|
26015
|
-
var item=stock.stockday[i];
|
|
26016
|
-
|
|
26017
|
-
var hqchartItem=this.ToHQChartItemData(item,id,subID);
|
|
26018
|
-
if (hqchartItem && !setDate.has(hqchartItem.Date))
|
|
26019
|
-
{
|
|
26020
|
-
aryData.push(hqchartItem);
|
|
26021
|
-
setDate.add(hqchartItem.Date);
|
|
26022
|
-
}
|
|
26023
|
-
}
|
|
26024
|
-
|
|
26025
|
-
return aryData;
|
|
26026
|
-
}
|
|
26027
|
-
|
|
26028
|
-
this.ToHQChartItemData=function(item, id, subID)
|
|
26029
|
-
{
|
|
26030
|
-
if (!item) return null;
|
|
26031
|
-
var date=item.date;
|
|
26032
|
-
switch(id)
|
|
26033
|
-
{
|
|
26034
|
-
case 1:
|
|
26035
|
-
if (!item.shareholder) return null;
|
|
26036
|
-
return { Date:date, Value:item.shareholder.count };
|
|
26037
|
-
case 2:
|
|
26038
|
-
if (!item.tradedetail && item.tradedetail[0]) return null;
|
|
26039
|
-
if (subID==0)
|
|
26040
|
-
return { Date:date, Value:item.tradedetail[0].buy };
|
|
26041
|
-
else
|
|
26042
|
-
return { Date:date, Value:item.tradedetail[0].sell };
|
|
26043
|
-
case 3:
|
|
26044
|
-
if (!item.margin) return null;
|
|
26045
|
-
if (subID==0)
|
|
26046
|
-
{
|
|
26047
|
-
if (item.margin.buy)
|
|
26048
|
-
return { Date:date, Value:item.margin.buy.balance };
|
|
26049
|
-
}
|
|
26050
|
-
else
|
|
26051
|
-
{
|
|
26052
|
-
if (item.margin.sell)
|
|
26053
|
-
return { Date:date, Value:item.margin.sell.balance };
|
|
26054
|
-
}
|
|
26055
|
-
return null;
|
|
26056
|
-
case 4:
|
|
26057
|
-
if (!item.blocktrading) return null;
|
|
26058
|
-
if (subID==0)
|
|
26059
|
-
return { Date:date, Value:item.blocktrading.price };
|
|
26060
|
-
else
|
|
26061
|
-
return { Date:date, Value:item.blocktrading.amount };
|
|
26062
|
-
default:
|
|
26063
|
-
return null;
|
|
26064
|
-
}
|
|
26065
|
-
}
|
|
26066
|
-
}
|
|
26067
|
-
|
|
26068
|
-
|
|
26069
|
-
|
|
26070
|
-
/*
|
|
26071
|
-
引用市场总的交易类数据.如果指标支持云数据函数,则不需要[专业财务数据]下载.
|
|
26072
|
-
SCJYVALUE(ID,N,TYPE),ID为数据编号,N表示第几个数据,TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理
|
|
26073
|
-
|
|
26074
|
-
市场交易类数据函数,数据编号如下:
|
|
26075
|
-
1--融资融券 沪深融资余额(万元) 沪深融券余额(万元)
|
|
26076
|
-
2--陆股通资金流入 沪股通流入金额(亿元) 深股通流入金额(亿元)
|
|
26077
|
-
3--沪深涨停股个数 涨停股个数 曾涨停股个数 [注:该指标展示20160926日之后的数据]
|
|
26078
|
-
4--沪深跌停股个数 跌停股个数 曾跌停股个数
|
|
26079
|
-
5--上证50股指期货 净持仓(手)[注:该指标展示20171009日之后的数据]
|
|
26080
|
-
6--沪深300股指期货 净持仓(手) [注:该指标展示20171009日之后的数据]
|
|
26081
|
-
7--中证500股指期货 净持仓(手) [注:该指标展示20171009日之后的数据]
|
|
26082
|
-
8--ETF基金规模数据 ETF基金规模(亿) ETF净申赎(亿)
|
|
26083
|
-
9--每周新增投资者 新增投资者(万户)
|
|
26084
|
-
10--增减持统计 增持额(万元) 减持额(万元)[注:部分公司公告滞后,造成每天查看的数据可能会不一样]
|
|
26085
|
-
11--大宗交易 溢价的大宗交易额(万元) 折价的大宗交易额(万元)
|
|
26086
|
-
12--限售解禁 限售解禁计划额(亿元) 限售解禁股份实际上市金额(亿元)[注:该指标展示201802月之后的数据;部分股票的解禁日期延后,造成不同日期提取的某天的计划额可能不同]
|
|
26087
|
-
13--分红 市场总分红额(亿元)[注:除权派息日的A股市场总分红额]
|
|
26088
|
-
14--募资 市场总募资额(亿元)[注:发行日期/除权日期的首发、配股和增发的总募资额]
|
|
26089
|
-
15--打板资金 封板成功资金(亿元) 封板失败资金(亿元) [注:该指标展示20160926日之后的数据]
|
|
26090
|
-
*/
|
|
26091
|
-
function DownloadSCJYValue(obj)
|
|
26092
|
-
{
|
|
26093
|
-
this.Url=obj.Url;
|
|
26094
|
-
//this.RealtimeUrl=obj.RealtimeUrl;
|
|
26095
|
-
this.Job=obj.Job;
|
|
26096
|
-
this.Symbol=obj.Symbol;
|
|
26097
|
-
this.Args=obj.Args;
|
|
26098
|
-
this.DataKey=obj.DataKey;
|
|
26099
|
-
this.RecvCallback=obj.Callback;
|
|
26100
|
-
this.ErrorCallback=obj.ErrorCallback;
|
|
26101
|
-
|
|
26102
|
-
this.Download=function()
|
|
26103
|
-
{
|
|
26104
|
-
var self=this;
|
|
26105
|
-
var query=this.GetQueryCondtion();
|
|
26106
|
-
if (!query)
|
|
26107
|
-
{
|
|
26108
|
-
message=`${this.Job.FunctionName}(${this.Args[0]}, ${this.Args[1]}, ${this.Args[2]}) can't support.`;
|
|
26109
|
-
this.ErrorCallback(message);
|
|
26110
|
-
self.RecvCallback(null, self.Job, self.DataKey, true);
|
|
26111
|
-
return;
|
|
26112
|
-
}
|
|
26113
|
-
|
|
26114
|
-
//请求数据
|
|
26115
|
-
JSNetwork.HttpRequest({
|
|
26116
|
-
url: this.Url,
|
|
26117
|
-
data:
|
|
26118
|
-
{
|
|
26119
|
-
"field": query.Field,
|
|
26120
|
-
"symbol": query.Symbol,
|
|
26121
|
-
"condition":query.Cond ,
|
|
26122
|
-
"start": 0,
|
|
26123
|
-
"end": 2000
|
|
26124
|
-
},
|
|
26125
|
-
type:"post",
|
|
26126
|
-
dataType: "json",
|
|
26127
|
-
async:true,
|
|
26128
|
-
success: function (recvData)
|
|
26129
|
-
{
|
|
26130
|
-
var data=self.ToHQChartData(recvData);
|
|
26131
|
-
if (data) //排序
|
|
26132
|
-
data.sort(function (a, b) { return (a.Date - b.Date) });
|
|
26133
|
-
|
|
26134
|
-
self.RecvCallback(data, self.Job, self.DataKey);
|
|
26135
|
-
}
|
|
26136
|
-
});
|
|
26137
|
-
|
|
26138
|
-
}
|
|
26139
|
-
|
|
26140
|
-
this.GetQueryCondtion=function()
|
|
26141
|
-
{
|
|
26142
|
-
var day=new Date();
|
|
26143
|
-
var endDate=day.getFullYear()*10000+(day.getMonth()+1)*100+day.getDate();
|
|
26144
|
-
day.setDate(day.getDate()-100); //取最近1000条数据
|
|
26145
|
-
var startDate=day.getFullYear()*10000+(day.getMonth()+1)*100+day.getDate()
|
|
26146
|
-
var id=this.Args[0];
|
|
26147
|
-
switch(id)
|
|
26148
|
-
{
|
|
26149
|
-
case 1:
|
|
26150
|
-
var data=
|
|
26151
|
-
{
|
|
26152
|
-
Symbol:["CNA.ci"],
|
|
26153
|
-
Field:["margin"],
|
|
26154
|
-
Cond:
|
|
26155
|
-
[
|
|
26156
|
-
{"item":["date","int32","gte",startDate.toString(),"lte",endDate.toString()]},
|
|
26157
|
-
{"item":["margin","doc","exists","true"]}
|
|
26158
|
-
]
|
|
26159
|
-
}
|
|
26160
|
-
return data;
|
|
26161
|
-
}
|
|
26162
|
-
}
|
|
26163
|
-
|
|
26164
|
-
this.ToHQChartData=function(recvData)
|
|
26165
|
-
{
|
|
26166
|
-
if (!recvData.stock || recvData.stock.length!=1) return null;
|
|
26167
|
-
|
|
26168
|
-
var aryData=[];
|
|
26169
|
-
var setDate=new Set(); //有重复数据 去掉
|
|
26170
|
-
var stock=recvData.stock[0];
|
|
26171
|
-
var id=this.Args[0];
|
|
26172
|
-
var subID=this.Args[1];
|
|
26173
|
-
for(var i in stock.stockday)
|
|
26174
|
-
{
|
|
26175
|
-
var item=stock.stockday[i];
|
|
26176
|
-
|
|
26177
|
-
var hqchartItem=this.ToHQChartItemData(item,id,subID);
|
|
26178
|
-
if (hqchartItem && !setDate.has(hqchartItem.Date))
|
|
26179
|
-
{
|
|
26180
|
-
aryData.push(hqchartItem);
|
|
26181
|
-
setDate.add(hqchartItem.Date);
|
|
26182
|
-
}
|
|
26183
|
-
}
|
|
26184
|
-
|
|
26185
|
-
return aryData;
|
|
26186
|
-
}
|
|
26187
|
-
|
|
26188
|
-
this.ToHQChartItemData=function(item, id, subID)
|
|
26189
|
-
{
|
|
26190
|
-
if (!item) return null;
|
|
26191
|
-
var date=item.date;
|
|
26192
|
-
var subItem=null;
|
|
26193
|
-
switch(id)
|
|
26194
|
-
{
|
|
26195
|
-
case 1:
|
|
26196
|
-
if (!item.margin) return null;
|
|
26197
|
-
subItem=item.margin;
|
|
26198
|
-
if (subID==1)
|
|
26199
|
-
{
|
|
26200
|
-
if (!subItem.buy || !IFrameSplitOperator.IsNumber(subItem.buy.balance)) return null;
|
|
26201
|
-
return { Date:date, Value:subItem.buy.balance }
|
|
26202
|
-
}
|
|
26203
|
-
else
|
|
26204
|
-
{
|
|
26205
|
-
if (!IFrameSplitOperator.IsNumber(subItem.sell.balance)) return null;
|
|
26206
|
-
return { Date:date, Value:subItem.sell.balance }
|
|
26207
|
-
}
|
|
26208
|
-
|
|
26209
|
-
default:
|
|
26210
|
-
return null;
|
|
26211
|
-
}
|
|
26212
|
-
}
|
|
26213
|
-
}
|
|
26214
|
-
|
|
26215
25926
|
function DownloadGroupData(obj)
|
|
26216
25927
|
{
|
|
26217
25928
|
this.Url=obj.Url;
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -7076,6 +7076,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
7076
7076
|
if (!paint) return;
|
|
7077
7077
|
|
|
7078
7078
|
var data=this.ChartPaint[0].Data;
|
|
7079
|
+
var count=data.Data.length;
|
|
7080
|
+
if (end>=count) end=count-1;
|
|
7079
7081
|
var startItem=data.Data[start];
|
|
7080
7082
|
var endItem=data.Data[end];
|
|
7081
7083
|
|
|
@@ -79665,6 +79667,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
79665
79667
|
if (end>=count) end=count-1;
|
|
79666
79668
|
var endItem=data.Data[end];
|
|
79667
79669
|
|
|
79670
|
+
if (!startItem || !endItem) return;
|
|
79671
|
+
|
|
79668
79672
|
JSConsole.Chart.Log('[MinuteChartContainer::UpdateSelectRect]',startItem,endItem);
|
|
79669
79673
|
paint.SetPoint(startItem, { Index:0 });
|
|
79670
79674
|
paint.SetPoint(endItem, { Index:1 });
|
|
@@ -89757,8 +89761,10 @@ function MinuteSelectRectDialog(divElement)
|
|
|
89757
89761
|
if(showData.Low>item.Low) showData.Low=item.Low;
|
|
89758
89762
|
}
|
|
89759
89763
|
|
|
89764
|
+
if (showData.Count<=0) return false;
|
|
89765
|
+
|
|
89760
89766
|
if (showData.Vol>0) showData.AvPrice=showData.Amount/showData.Vol; //均价
|
|
89761
|
-
if (
|
|
89767
|
+
if (showData.Open>0)
|
|
89762
89768
|
{
|
|
89763
89769
|
showData.Increase = (showData.Close - showData.Open) / showData.Open *100; //区间涨幅
|
|
89764
89770
|
showData.Amplitude = (showData.High - showData.Low) / showData.Open * 100; //区间振幅
|
|
@@ -89801,6 +89807,8 @@ function MinuteSelectRectDialog(divElement)
|
|
|
89801
89807
|
|
|
89802
89808
|
$(".parameter-content").html(div);
|
|
89803
89809
|
this.BindEvent();
|
|
89810
|
+
|
|
89811
|
+
return true;
|
|
89804
89812
|
}
|
|
89805
89813
|
|
|
89806
89814
|
this.BindEvent = function ()
|
|
@@ -89844,7 +89852,7 @@ function MinuteSelectRectDialog(divElement)
|
|
|
89844
89852
|
this.RectSelectPaint=event.data.RectSelectPaint;
|
|
89845
89853
|
this.HQChart=chart;
|
|
89846
89854
|
this.HQChart.HideSelectRect();
|
|
89847
|
-
this.BindData();
|
|
89855
|
+
if (!this.BindData()) return;
|
|
89848
89856
|
|
|
89849
89857
|
this.Show(); //通过CSS居中显示
|
|
89850
89858
|
}
|