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.
@@ -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
 
@@ -83634,6 +83636,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
83634
83636
  if (end>=count) end=count-1;
83635
83637
  var endItem=data.Data[end];
83636
83638
 
83639
+ if (!startItem || !endItem) return;
83640
+
83637
83641
  JSConsole.Chart.Log('[MinuteChartContainer::UpdateSelectRect]',startItem,endItem);
83638
83642
  paint.SetPoint(startItem, { Index:0 });
83639
83643
  paint.SetPoint(endItem, { Index:1 });
@@ -93726,8 +93730,10 @@ function MinuteSelectRectDialog(divElement)
93726
93730
  if(showData.Low>item.Low) showData.Low=item.Low;
93727
93731
  }
93728
93732
 
93733
+ if (showData.Count<=0) return false;
93734
+
93729
93735
  if (showData.Vol>0) showData.AvPrice=showData.Amount/showData.Vol; //均价
93730
- if (item.Open>0)
93736
+ if (showData.Open>0)
93731
93737
  {
93732
93738
  showData.Increase = (showData.Close - showData.Open) / showData.Open *100; //区间涨幅
93733
93739
  showData.Amplitude = (showData.High - showData.Low) / showData.Open * 100; //区间振幅
@@ -93770,6 +93776,8 @@ function MinuteSelectRectDialog(divElement)
93770
93776
 
93771
93777
  $(".parameter-content").html(div);
93772
93778
  this.BindEvent();
93779
+
93780
+ return true;
93773
93781
  }
93774
93782
 
93775
93783
  this.BindEvent = function ()
@@ -93813,7 +93821,7 @@ function MinuteSelectRectDialog(divElement)
93813
93821
  this.RectSelectPaint=event.data.RectSelectPaint;
93814
93822
  this.HQChart=chart;
93815
93823
  this.HQChart.HideSelectRect();
93816
- this.BindData();
93824
+ if (!this.BindData()) return;
93817
93825
 
93818
93826
  this.Show(); //通过CSS居中显示
93819
93827
  }
@@ -100003,20 +100011,17 @@ function Node(ErrorHandler)
100003
100011
  return;
100004
100012
  }
100005
100013
 
100006
- if (callee.Name=='GPJYVALUE')
100014
+ //专业财务数据
100015
+ for(var i=0;i<JS_ARRAY_PROFESSIONAL_FINANCE.length;++i)
100007
100016
  {
100008
- var item={ ID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_GPJYVALUE, Args:args, FunctionName:callee.Name };
100009
- if (token) item.Token={ Index:token.Start, Line:token.LineNumber };
100010
- this.FunctionData.push(item);
100011
- return;
100012
- }
100013
-
100014
- if (callee.Name=="SCJYVALUE")
100015
- {
100016
- var item={ ID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SCJYVALUE, Args:args, FunctionName:callee.Name };
100017
- if (token) item.Token={ Index:token.Start, Line:token.LineNumber };
100018
- this.FunctionData.push(item);
100019
- return;
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
+ }
100020
100025
  }
100021
100026
 
100022
100027
  if (callee.Name==='MARGIN')
@@ -113182,74 +113187,41 @@ function JSSymbolData(ast,option,jsExecute)
113182
113187
  apiDownload.Download();
113183
113188
  }
113184
113189
 
113185
- this.GetGPJYValue=function(jobItem)
113190
+ this.GetProFinance=function(jobItem)
113186
113191
  {
113187
- var aryArgs=this.JobArgumentsToArray(jobItem, 3);
113188
- var key=this.GetStockDataKey(jobItem,aryArgs);
113189
- if (this.StockData.has(key)) return this.Execute.RunNextJob();
113190
-
113191
- var self=this;
113192
- //TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理
113193
- var dataType=aryArgs[2]==1?0:2;
113194
- if (this.NetworkFilter)
113192
+ var jobID=jobItem.ID;
113193
+ var finder=null;
113194
+ for(var i=0;i<JS_ARRAY_PROFESSIONAL_FINANCE.length;++i)
113195
113195
  {
113196
- var dateRange=this.Data.GetDateRange();
113197
- var obj=
113196
+ var item=JS_ARRAY_PROFESSIONAL_FINANCE[i];
113197
+ if (item.JobID==jobID)
113198
113198
  {
113199
- Name:'JSSymbolData::GetGPJYValue', //类名::
113200
- Explain:'股票交易类数据GPJYVALUE(ID,N,TYPE)',
113201
- JobID:jobItem.ID,
113202
- Request:{ Url:self.StockHistoryDayApiUrl, Type:'POST', Data:{ Args:aryArgs, symbol: this.Symbol, daterange:dateRange } },
113203
- Self:this,
113204
- PreventDefault:false
113205
- };
113206
- this.NetworkFilter(obj, function(recvData)
113207
- {
113208
- self.RecvStockValue(recvData,jobItem,key,dataType);
113209
- self.Execute.RunNextJob();
113210
- });
113211
-
113212
- if (obj.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
113199
+ finder=item;
113200
+ break;
113201
+ }
113213
113202
  }
113214
113203
 
113215
- var apiDownload=new DownloadGPJYValue(
113216
- {
113217
- Job:jobItem,
113218
- Symbol:this.Symbol,
113219
- Url:this.StockHistoryDayApiUrl,
113220
- Args:aryArgs,
113221
- DataKey:key,
113222
- Callback:function(recvData, jobItem, key)
113223
- {
113224
- self.RecvStockValue(recvData, jobItem, key,dataType);
113225
- self.Execute.RunNextJob();
113226
- },
113227
- ErrorCallback:function(strError)
113228
- {
113229
- self.AddStockValueError(key,strError);
113230
- }
113231
- });
113204
+ if (!finder) return this.Execute.RunNextJob();
113232
113205
 
113233
- apiDownload.Download();
113234
- }
113235
-
113236
- this.GetSCJYValue=function(jobItem)
113237
- {
113238
- var aryArgs=this.JobArgumentsToArray(jobItem, 3);
113206
+ var aryArgs=this.JobArgumentsToArray(jobItem, finder.ArgCount);
113239
113207
  var key=this.GetStockDataKey(jobItem,aryArgs);
113240
113208
  if (this.StockData.has(key)) return this.Execute.RunNextJob();
113241
113209
 
113242
113210
  var self=this;
113243
- //TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理
113244
- var dataType=aryArgs[2]==1?0:2;
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
+
113245
113217
  if (this.NetworkFilter)
113246
113218
  {
113247
113219
  var dateRange=this.Data.GetDateRange();
113248
113220
  var obj=
113249
113221
  {
113250
- Name:'JSSymbolData::GetSCJYValue', //类名::
113251
- Explain:'股票交易类数据SCJYVALUE(ID,N,TYPE)',
113252
- JobID:jobItem.ID,
113222
+ Name:finder.FuncName, //类名::
113223
+ Explain:finder.Explain,
113224
+ JobID:jobID,
113253
113225
  Request:{ Url:self.StockHistoryDayApiUrl, Type:'POST', Data:{ Args:aryArgs, symbol: this.Symbol, daterange:dateRange } },
113254
113226
  Self:this,
113255
113227
  PreventDefault:false
@@ -113263,25 +113235,7 @@ function JSSymbolData(ast,option,jsExecute)
113263
113235
  if (obj.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
113264
113236
  }
113265
113237
 
113266
- var apiDownload=new DownloadSCJYValue(
113267
- {
113268
- Job:jobItem,
113269
- Symbol:this.Symbol,
113270
- Url:this.StockHistoryDayApiUrl,
113271
- Args:aryArgs,
113272
- DataKey:key,
113273
- Callback:function(recvData, jobItem, key)
113274
- {
113275
- self.RecvStockValue(recvData, jobItem, key,dataType);
113276
- self.Execute.RunNextJob();
113277
- },
113278
- ErrorCallback:function(strError)
113279
- {
113280
- self.AddStockValueError(key,strError);
113281
- }
113282
- });
113283
-
113284
- apiDownload.Download();
113238
+ JSConsole.Chart.Warn(`[JSSymbolData::GetProFinance] ${finder.FuncName} Not implemented.`);
113285
113239
  }
113286
113240
 
113287
113241
  this.GetVariantData=function(jobItem)
@@ -115281,6 +115235,11 @@ var JS_EXECUTE_JOB_ID=
115281
115235
  JOB_DOWNLOAD_GPJYVALUE:304, //引用股票交易类数据 GPJYVALUE(ID,N,TYPE),ID为数据编号,N表示第几个数据,TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理
115282
115236
  JOB_DOWNLOAD_VARIANT:305, //CAPITAL , TOTALCAPITAL, EXCHANGE
115283
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
+
115284
115243
 
115285
115244
 
115286
115245
 
@@ -115477,6 +115436,36 @@ var JS_EXECUTE_JOB_ID=
115477
115436
 
115478
115437
  };
115479
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
+
115480
115469
  function JSExecute(ast,option)
115481
115470
  {
115482
115471
  this.AST=ast; //语法树
@@ -115689,10 +115678,15 @@ function JSExecute(ast,option)
115689
115678
  return this.SymbolData.GetFinValue(jobItem);
115690
115679
  case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_FINANCE:
115691
115680
  return this.SymbolData.GetFinance(jobItem);
115681
+
115682
+ //专业财务数据
115692
115683
  case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_GPJYVALUE:
115693
- return this.SymbolData.GetGPJYValue(jobItem);
115684
+ case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_GPJYONE:
115694
115685
  case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SCJYVALUE:
115695
- return this.SymbolData.GetSCJYValue(jobItem);
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);
115696
115690
 
115697
115691
  case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_VARIANT: //CAPITAL, TOTALCAPITAL
115698
115692
  return this.SymbolData.GetVariantData(jobItem);
@@ -117052,11 +117046,15 @@ function JSExecute(ast,option)
117052
117046
  node.Out=this.SymbolData.GetStockCacheData( {FunctionName:funcName, Args:args, ArgCount:3, Node:node } );
117053
117047
  break;
117054
117048
  case "GPJYVALUE":
117055
- node.Out=this.SymbolData.GetStockCacheData( {FunctionName:funcName, Args:args, ArgCount:3, Node:node } );
117056
- break;
117057
117049
  case "SCJYVALUE":
117050
+ case "BKJYVALUE":
117058
117051
  node.Out=this.SymbolData.GetStockCacheData( {FunctionName:funcName, Args:args, ArgCount:3, Node:node } );
117059
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;
117060
117058
  case "MARGIN":
117061
117059
  node.Out=this.SymbolData.GetMarginCacheData(args[0],node);
117062
117060
  break;
@@ -124682,285 +124680,6 @@ function DownloadFinanceData(obj)
124682
124680
  }
124683
124681
  }
124684
124682
 
124685
- function DownloadGPJYValue(obj)
124686
- {
124687
- this.Url=obj.Url;
124688
- this.RealtimeUrl=obj.RealtimeUrl;
124689
- this.Job=obj.Job;
124690
- this.Symbol=obj.Symbol;
124691
- this.Args=obj.Args;
124692
- this.DataKey=obj.DataKey;
124693
- this.RecvCallback=obj.Callback;
124694
- this.ErrorCallback=obj.ErrorCallback;
124695
-
124696
- this.Download=function()
124697
- {
124698
- var self=this;
124699
- var fieldList=this.GetFieldList();
124700
- if (!fieldList)
124701
- {
124702
- message=`${this.Job.FunctionName}(${this.Args[0]}, ${this.Args[1]}, ${this.Args[2]}) can't support.`;
124703
- this.ErrorCallback(message);
124704
- self.RecvCallback(null, self.Job, self.DataKey, true);
124705
- return;
124706
- }
124707
-
124708
- //请求数据
124709
- JSNetwork.HttpRequest({
124710
- url: this.Url,
124711
- data:
124712
- {
124713
- "field": fieldList,
124714
- "symbol": [this.Symbol],
124715
- "orderfield":"date",
124716
- "order":-1,
124717
- "start":0,
124718
- "end":5
124719
- },
124720
- type:"post",
124721
- dataType: "json",
124722
- async:true,
124723
- success: function (recvData)
124724
- {
124725
- var data=self.ToHQChartData(recvData);
124726
- if (data && data.length>0)
124727
- {
124728
- data.sort(function (a, b) { return (a.Date-b.Date) });
124729
- }
124730
- self.RecvCallback(data, self.Job, self.DataKey);
124731
- }
124732
- });
124733
- }
124734
-
124735
- this.GetFieldList=function()
124736
- {
124737
- var id=this.Args[0];
124738
- switch(id)
124739
- {
124740
- case 1: //1--股东人数 股东户数(户)
124741
- return ["shareholder", "date", "symbol"];
124742
- case 2: //2--龙虎榜 买入总计(万元) 卖出总计(万元)
124743
- return ["tradedetail.buy","tradedetail.sell", "date", "symbol"];
124744
- case 3: //3--融资融券1 融资余额(万元) 融券余量(股)
124745
- return ["margin","date", "symbol"];
124746
- case 4: //4--大宗交易 成交均价(元) 成交额(万元)
124747
- return ["blocktrading.amount","blocktrading.price","date", "symbol"]
124748
- default:
124749
- return null;
124750
- }
124751
- }
124752
-
124753
- this.ToHQChartData=function(recvData)
124754
- {
124755
- if (!recvData.stock || recvData.stock.length!=1) return null;
124756
-
124757
- var aryData=[];
124758
- var setDate=new Set(); //有重复数据 去掉
124759
- var stock=recvData.stock[0];
124760
- var id=this.Args[0];
124761
- var subID=this.Args[1];
124762
- for(var i in stock.stockday)
124763
- {
124764
- var item=stock.stockday[i];
124765
-
124766
- var hqchartItem=this.ToHQChartItemData(item,id,subID);
124767
- if (hqchartItem && !setDate.has(hqchartItem.Date))
124768
- {
124769
- aryData.push(hqchartItem);
124770
- setDate.add(hqchartItem.Date);
124771
- }
124772
- }
124773
-
124774
- return aryData;
124775
- }
124776
-
124777
- this.ToHQChartItemData=function(item, id, subID)
124778
- {
124779
- if (!item) return null;
124780
- var date=item.date;
124781
- switch(id)
124782
- {
124783
- case 1:
124784
- if (!item.shareholder) return null;
124785
- return { Date:date, Value:item.shareholder.count };
124786
- case 2:
124787
- if (!item.tradedetail && item.tradedetail[0]) return null;
124788
- if (subID==0)
124789
- return { Date:date, Value:item.tradedetail[0].buy };
124790
- else
124791
- return { Date:date, Value:item.tradedetail[0].sell };
124792
- case 3:
124793
- if (!item.margin) return null;
124794
- if (subID==0)
124795
- {
124796
- if (item.margin.buy)
124797
- return { Date:date, Value:item.margin.buy.balance };
124798
- }
124799
- else
124800
- {
124801
- if (item.margin.sell)
124802
- return { Date:date, Value:item.margin.sell.balance };
124803
- }
124804
- return null;
124805
- case 4:
124806
- if (!item.blocktrading) return null;
124807
- if (subID==0)
124808
- return { Date:date, Value:item.blocktrading.price };
124809
- else
124810
- return { Date:date, Value:item.blocktrading.amount };
124811
- default:
124812
- return null;
124813
- }
124814
- }
124815
- }
124816
-
124817
-
124818
-
124819
- /*
124820
- 引用市场总的交易类数据.如果指标支持云数据函数,则不需要[专业财务数据]下载.
124821
- SCJYVALUE(ID,N,TYPE),ID为数据编号,N表示第几个数据,TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理
124822
-
124823
- 市场交易类数据函数,数据编号如下:
124824
- 1--融资融券 沪深融资余额(万元) 沪深融券余额(万元)
124825
- 2--陆股通资金流入 沪股通流入金额(亿元) 深股通流入金额(亿元)
124826
- 3--沪深涨停股个数 涨停股个数 曾涨停股个数 [注:该指标展示20160926日之后的数据]
124827
- 4--沪深跌停股个数 跌停股个数 曾跌停股个数
124828
- 5--上证50股指期货 净持仓(手)[注:该指标展示20171009日之后的数据]
124829
- 6--沪深300股指期货 净持仓(手) [注:该指标展示20171009日之后的数据]
124830
- 7--中证500股指期货 净持仓(手) [注:该指标展示20171009日之后的数据]
124831
- 8--ETF基金规模数据 ETF基金规模(亿) ETF净申赎(亿)
124832
- 9--每周新增投资者 新增投资者(万户)
124833
- 10--增减持统计 增持额(万元) 减持额(万元)[注:部分公司公告滞后,造成每天查看的数据可能会不一样]
124834
- 11--大宗交易 溢价的大宗交易额(万元) 折价的大宗交易额(万元)
124835
- 12--限售解禁 限售解禁计划额(亿元) 限售解禁股份实际上市金额(亿元)[注:该指标展示201802月之后的数据;部分股票的解禁日期延后,造成不同日期提取的某天的计划额可能不同]
124836
- 13--分红 市场总分红额(亿元)[注:除权派息日的A股市场总分红额]
124837
- 14--募资 市场总募资额(亿元)[注:发行日期/除权日期的首发、配股和增发的总募资额]
124838
- 15--打板资金 封板成功资金(亿元) 封板失败资金(亿元) [注:该指标展示20160926日之后的数据]
124839
- */
124840
- function DownloadSCJYValue(obj)
124841
- {
124842
- this.Url=obj.Url;
124843
- //this.RealtimeUrl=obj.RealtimeUrl;
124844
- this.Job=obj.Job;
124845
- this.Symbol=obj.Symbol;
124846
- this.Args=obj.Args;
124847
- this.DataKey=obj.DataKey;
124848
- this.RecvCallback=obj.Callback;
124849
- this.ErrorCallback=obj.ErrorCallback;
124850
-
124851
- this.Download=function()
124852
- {
124853
- var self=this;
124854
- var query=this.GetQueryCondtion();
124855
- if (!query)
124856
- {
124857
- message=`${this.Job.FunctionName}(${this.Args[0]}, ${this.Args[1]}, ${this.Args[2]}) can't support.`;
124858
- this.ErrorCallback(message);
124859
- self.RecvCallback(null, self.Job, self.DataKey, true);
124860
- return;
124861
- }
124862
-
124863
- //请求数据
124864
- JSNetwork.HttpRequest({
124865
- url: this.Url,
124866
- data:
124867
- {
124868
- "field": query.Field,
124869
- "symbol": query.Symbol,
124870
- "condition":query.Cond ,
124871
- "start": 0,
124872
- "end": 2000
124873
- },
124874
- type:"post",
124875
- dataType: "json",
124876
- async:true,
124877
- success: function (recvData)
124878
- {
124879
- var data=self.ToHQChartData(recvData);
124880
- if (data) //排序
124881
- data.sort(function (a, b) { return (a.Date - b.Date) });
124882
-
124883
- self.RecvCallback(data, self.Job, self.DataKey);
124884
- }
124885
- });
124886
-
124887
- }
124888
-
124889
- this.GetQueryCondtion=function()
124890
- {
124891
- var day=new Date();
124892
- var endDate=day.getFullYear()*10000+(day.getMonth()+1)*100+day.getDate();
124893
- day.setDate(day.getDate()-100); //取最近1000条数据
124894
- var startDate=day.getFullYear()*10000+(day.getMonth()+1)*100+day.getDate()
124895
- var id=this.Args[0];
124896
- switch(id)
124897
- {
124898
- case 1:
124899
- var data=
124900
- {
124901
- Symbol:["CNA.ci"],
124902
- Field:["margin"],
124903
- Cond:
124904
- [
124905
- {"item":["date","int32","gte",startDate.toString(),"lte",endDate.toString()]},
124906
- {"item":["margin","doc","exists","true"]}
124907
- ]
124908
- }
124909
- return data;
124910
- }
124911
- }
124912
-
124913
- this.ToHQChartData=function(recvData)
124914
- {
124915
- if (!recvData.stock || recvData.stock.length!=1) return null;
124916
-
124917
- var aryData=[];
124918
- var setDate=new Set(); //有重复数据 去掉
124919
- var stock=recvData.stock[0];
124920
- var id=this.Args[0];
124921
- var subID=this.Args[1];
124922
- for(var i in stock.stockday)
124923
- {
124924
- var item=stock.stockday[i];
124925
-
124926
- var hqchartItem=this.ToHQChartItemData(item,id,subID);
124927
- if (hqchartItem && !setDate.has(hqchartItem.Date))
124928
- {
124929
- aryData.push(hqchartItem);
124930
- setDate.add(hqchartItem.Date);
124931
- }
124932
- }
124933
-
124934
- return aryData;
124935
- }
124936
-
124937
- this.ToHQChartItemData=function(item, id, subID)
124938
- {
124939
- if (!item) return null;
124940
- var date=item.date;
124941
- var subItem=null;
124942
- switch(id)
124943
- {
124944
- case 1:
124945
- if (!item.margin) return null;
124946
- subItem=item.margin;
124947
- if (subID==1)
124948
- {
124949
- if (!subItem.buy || !IFrameSplitOperator.IsNumber(subItem.buy.balance)) return null;
124950
- return { Date:date, Value:subItem.buy.balance }
124951
- }
124952
- else
124953
- {
124954
- if (!IFrameSplitOperator.IsNumber(subItem.sell.balance)) return null;
124955
- return { Date:date, Value:subItem.sell.balance }
124956
- }
124957
-
124958
- default:
124959
- return null;
124960
- }
124961
- }
124962
- }
124963
-
124964
124683
  function DownloadGroupData(obj)
124965
124684
  {
124966
124685
  this.Url=obj.Url;
@@ -143365,7 +143084,7 @@ function HQChartScriptWorker()
143365
143084
 
143366
143085
 
143367
143086
 
143368
- var HQCHART_VERSION="1.1.13792";
143087
+ var HQCHART_VERSION="1.1.13801";
143369
143088
 
143370
143089
  function PrintHQChartVersion()
143371
143090
  {