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.
@@ -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
 
@@ -83590,6 +83592,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
83590
83592
  if (end>=count) end=count-1;
83591
83593
  var endItem=data.Data[end];
83592
83594
 
83595
+ if (!startItem || !endItem) return;
83596
+
83593
83597
  JSConsole.Chart.Log('[MinuteChartContainer::UpdateSelectRect]',startItem,endItem);
83594
83598
  paint.SetPoint(startItem, { Index:0 });
83595
83599
  paint.SetPoint(endItem, { Index:1 });
@@ -93682,8 +93686,10 @@ function MinuteSelectRectDialog(divElement)
93682
93686
  if(showData.Low>item.Low) showData.Low=item.Low;
93683
93687
  }
93684
93688
 
93689
+ if (showData.Count<=0) return false;
93690
+
93685
93691
  if (showData.Vol>0) showData.AvPrice=showData.Amount/showData.Vol; //均价
93686
- if (item.Open>0)
93692
+ if (showData.Open>0)
93687
93693
  {
93688
93694
  showData.Increase = (showData.Close - showData.Open) / showData.Open *100; //区间涨幅
93689
93695
  showData.Amplitude = (showData.High - showData.Low) / showData.Open * 100; //区间振幅
@@ -93726,6 +93732,8 @@ function MinuteSelectRectDialog(divElement)
93726
93732
 
93727
93733
  $(".parameter-content").html(div);
93728
93734
  this.BindEvent();
93735
+
93736
+ return true;
93729
93737
  }
93730
93738
 
93731
93739
  this.BindEvent = function ()
@@ -93769,7 +93777,7 @@ function MinuteSelectRectDialog(divElement)
93769
93777
  this.RectSelectPaint=event.data.RectSelectPaint;
93770
93778
  this.HQChart=chart;
93771
93779
  this.HQChart.HideSelectRect();
93772
- this.BindData();
93780
+ if (!this.BindData()) return;
93773
93781
 
93774
93782
  this.Show(); //通过CSS居中显示
93775
93783
  }
@@ -99959,20 +99967,17 @@ function Node(ErrorHandler)
99959
99967
  return;
99960
99968
  }
99961
99969
 
99962
- if (callee.Name=='GPJYVALUE')
99970
+ //专业财务数据
99971
+ for(var i=0;i<JS_ARRAY_PROFESSIONAL_FINANCE.length;++i)
99963
99972
  {
99964
- var item={ ID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_GPJYVALUE, Args:args, FunctionName:callee.Name };
99965
- if (token) item.Token={ Index:token.Start, Line:token.LineNumber };
99966
- this.FunctionData.push(item);
99967
- return;
99968
- }
99969
-
99970
- if (callee.Name=="SCJYVALUE")
99971
- {
99972
- var item={ ID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SCJYVALUE, Args:args, FunctionName:callee.Name };
99973
- if (token) item.Token={ Index:token.Start, Line:token.LineNumber };
99974
- this.FunctionData.push(item);
99975
- 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
+ }
99976
99981
  }
99977
99982
 
99978
99983
  if (callee.Name==='MARGIN')
@@ -113138,74 +113143,41 @@ function JSSymbolData(ast,option,jsExecute)
113138
113143
  apiDownload.Download();
113139
113144
  }
113140
113145
 
113141
- this.GetGPJYValue=function(jobItem)
113146
+ this.GetProFinance=function(jobItem)
113142
113147
  {
113143
- var aryArgs=this.JobArgumentsToArray(jobItem, 3);
113144
- var key=this.GetStockDataKey(jobItem,aryArgs);
113145
- if (this.StockData.has(key)) return this.Execute.RunNextJob();
113146
-
113147
- var self=this;
113148
- //TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理
113149
- var dataType=aryArgs[2]==1?0:2;
113150
- if (this.NetworkFilter)
113148
+ var jobID=jobItem.ID;
113149
+ var finder=null;
113150
+ for(var i=0;i<JS_ARRAY_PROFESSIONAL_FINANCE.length;++i)
113151
113151
  {
113152
- var dateRange=this.Data.GetDateRange();
113153
- var obj=
113152
+ var item=JS_ARRAY_PROFESSIONAL_FINANCE[i];
113153
+ if (item.JobID==jobID)
113154
113154
  {
113155
- Name:'JSSymbolData::GetGPJYValue', //类名::
113156
- Explain:'股票交易类数据GPJYVALUE(ID,N,TYPE)',
113157
- JobID:jobItem.ID,
113158
- Request:{ Url:self.StockHistoryDayApiUrl, Type:'POST', Data:{ Args:aryArgs, symbol: this.Symbol, daterange:dateRange } },
113159
- Self:this,
113160
- PreventDefault:false
113161
- };
113162
- this.NetworkFilter(obj, function(recvData)
113163
- {
113164
- self.RecvStockValue(recvData,jobItem,key,dataType);
113165
- self.Execute.RunNextJob();
113166
- });
113167
-
113168
- if (obj.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
113155
+ finder=item;
113156
+ break;
113157
+ }
113169
113158
  }
113170
113159
 
113171
- var apiDownload=new DownloadGPJYValue(
113172
- {
113173
- Job:jobItem,
113174
- Symbol:this.Symbol,
113175
- Url:this.StockHistoryDayApiUrl,
113176
- Args:aryArgs,
113177
- DataKey:key,
113178
- Callback:function(recvData, jobItem, key)
113179
- {
113180
- self.RecvStockValue(recvData, jobItem, key,dataType);
113181
- self.Execute.RunNextJob();
113182
- },
113183
- ErrorCallback:function(strError)
113184
- {
113185
- self.AddStockValueError(key,strError);
113186
- }
113187
- });
113160
+ if (!finder) return this.Execute.RunNextJob();
113188
113161
 
113189
- apiDownload.Download();
113190
- }
113191
-
113192
- this.GetSCJYValue=function(jobItem)
113193
- {
113194
- var aryArgs=this.JobArgumentsToArray(jobItem, 3);
113162
+ var aryArgs=this.JobArgumentsToArray(jobItem, finder.ArgCount);
113195
113163
  var key=this.GetStockDataKey(jobItem,aryArgs);
113196
113164
  if (this.StockData.has(key)) return this.Execute.RunNextJob();
113197
113165
 
113198
113166
  var self=this;
113199
- //TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理
113200
- var dataType=aryArgs[2]==1?0:2;
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
+
113201
113173
  if (this.NetworkFilter)
113202
113174
  {
113203
113175
  var dateRange=this.Data.GetDateRange();
113204
113176
  var obj=
113205
113177
  {
113206
- Name:'JSSymbolData::GetSCJYValue', //类名::
113207
- Explain:'股票交易类数据SCJYVALUE(ID,N,TYPE)',
113208
- JobID:jobItem.ID,
113178
+ Name:finder.FuncName, //类名::
113179
+ Explain:finder.Explain,
113180
+ JobID:jobID,
113209
113181
  Request:{ Url:self.StockHistoryDayApiUrl, Type:'POST', Data:{ Args:aryArgs, symbol: this.Symbol, daterange:dateRange } },
113210
113182
  Self:this,
113211
113183
  PreventDefault:false
@@ -113219,25 +113191,7 @@ function JSSymbolData(ast,option,jsExecute)
113219
113191
  if (obj.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
113220
113192
  }
113221
113193
 
113222
- var apiDownload=new DownloadSCJYValue(
113223
- {
113224
- Job:jobItem,
113225
- Symbol:this.Symbol,
113226
- Url:this.StockHistoryDayApiUrl,
113227
- Args:aryArgs,
113228
- DataKey:key,
113229
- Callback:function(recvData, jobItem, key)
113230
- {
113231
- self.RecvStockValue(recvData, jobItem, key,dataType);
113232
- self.Execute.RunNextJob();
113233
- },
113234
- ErrorCallback:function(strError)
113235
- {
113236
- self.AddStockValueError(key,strError);
113237
- }
113238
- });
113239
-
113240
- apiDownload.Download();
113194
+ JSConsole.Chart.Warn(`[JSSymbolData::GetProFinance] ${finder.FuncName} Not implemented.`);
113241
113195
  }
113242
113196
 
113243
113197
  this.GetVariantData=function(jobItem)
@@ -115237,6 +115191,11 @@ var JS_EXECUTE_JOB_ID=
115237
115191
  JOB_DOWNLOAD_GPJYVALUE:304, //引用股票交易类数据 GPJYVALUE(ID,N,TYPE),ID为数据编号,N表示第几个数据,TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理
115238
115192
  JOB_DOWNLOAD_VARIANT:305, //CAPITAL , TOTALCAPITAL, EXCHANGE
115239
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
+
115240
115199
 
115241
115200
 
115242
115201
 
@@ -115433,6 +115392,36 @@ var JS_EXECUTE_JOB_ID=
115433
115392
 
115434
115393
  };
115435
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
+
115436
115425
  function JSExecute(ast,option)
115437
115426
  {
115438
115427
  this.AST=ast; //语法树
@@ -115645,10 +115634,15 @@ function JSExecute(ast,option)
115645
115634
  return this.SymbolData.GetFinValue(jobItem);
115646
115635
  case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_FINANCE:
115647
115636
  return this.SymbolData.GetFinance(jobItem);
115637
+
115638
+ //专业财务数据
115648
115639
  case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_GPJYVALUE:
115649
- return this.SymbolData.GetGPJYValue(jobItem);
115640
+ case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_GPJYONE:
115650
115641
  case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SCJYVALUE:
115651
- return this.SymbolData.GetSCJYValue(jobItem);
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);
115652
115646
 
115653
115647
  case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_VARIANT: //CAPITAL, TOTALCAPITAL
115654
115648
  return this.SymbolData.GetVariantData(jobItem);
@@ -117008,11 +117002,15 @@ function JSExecute(ast,option)
117008
117002
  node.Out=this.SymbolData.GetStockCacheData( {FunctionName:funcName, Args:args, ArgCount:3, Node:node } );
117009
117003
  break;
117010
117004
  case "GPJYVALUE":
117011
- node.Out=this.SymbolData.GetStockCacheData( {FunctionName:funcName, Args:args, ArgCount:3, Node:node } );
117012
- break;
117013
117005
  case "SCJYVALUE":
117006
+ case "BKJYVALUE":
117014
117007
  node.Out=this.SymbolData.GetStockCacheData( {FunctionName:funcName, Args:args, ArgCount:3, Node:node } );
117015
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;
117016
117014
  case "MARGIN":
117017
117015
  node.Out=this.SymbolData.GetMarginCacheData(args[0],node);
117018
117016
  break;
@@ -124638,285 +124636,6 @@ function DownloadFinanceData(obj)
124638
124636
  }
124639
124637
  }
124640
124638
 
124641
- function DownloadGPJYValue(obj)
124642
- {
124643
- this.Url=obj.Url;
124644
- this.RealtimeUrl=obj.RealtimeUrl;
124645
- this.Job=obj.Job;
124646
- this.Symbol=obj.Symbol;
124647
- this.Args=obj.Args;
124648
- this.DataKey=obj.DataKey;
124649
- this.RecvCallback=obj.Callback;
124650
- this.ErrorCallback=obj.ErrorCallback;
124651
-
124652
- this.Download=function()
124653
- {
124654
- var self=this;
124655
- var fieldList=this.GetFieldList();
124656
- if (!fieldList)
124657
- {
124658
- message=`${this.Job.FunctionName}(${this.Args[0]}, ${this.Args[1]}, ${this.Args[2]}) can't support.`;
124659
- this.ErrorCallback(message);
124660
- self.RecvCallback(null, self.Job, self.DataKey, true);
124661
- return;
124662
- }
124663
-
124664
- //请求数据
124665
- JSNetwork.HttpRequest({
124666
- url: this.Url,
124667
- data:
124668
- {
124669
- "field": fieldList,
124670
- "symbol": [this.Symbol],
124671
- "orderfield":"date",
124672
- "order":-1,
124673
- "start":0,
124674
- "end":5
124675
- },
124676
- type:"post",
124677
- dataType: "json",
124678
- async:true,
124679
- success: function (recvData)
124680
- {
124681
- var data=self.ToHQChartData(recvData);
124682
- if (data && data.length>0)
124683
- {
124684
- data.sort(function (a, b) { return (a.Date-b.Date) });
124685
- }
124686
- self.RecvCallback(data, self.Job, self.DataKey);
124687
- }
124688
- });
124689
- }
124690
-
124691
- this.GetFieldList=function()
124692
- {
124693
- var id=this.Args[0];
124694
- switch(id)
124695
- {
124696
- case 1: //1--股东人数 股东户数(户)
124697
- return ["shareholder", "date", "symbol"];
124698
- case 2: //2--龙虎榜 买入总计(万元) 卖出总计(万元)
124699
- return ["tradedetail.buy","tradedetail.sell", "date", "symbol"];
124700
- case 3: //3--融资融券1 融资余额(万元) 融券余量(股)
124701
- return ["margin","date", "symbol"];
124702
- case 4: //4--大宗交易 成交均价(元) 成交额(万元)
124703
- return ["blocktrading.amount","blocktrading.price","date", "symbol"]
124704
- default:
124705
- return null;
124706
- }
124707
- }
124708
-
124709
- this.ToHQChartData=function(recvData)
124710
- {
124711
- if (!recvData.stock || recvData.stock.length!=1) return null;
124712
-
124713
- var aryData=[];
124714
- var setDate=new Set(); //有重复数据 去掉
124715
- var stock=recvData.stock[0];
124716
- var id=this.Args[0];
124717
- var subID=this.Args[1];
124718
- for(var i in stock.stockday)
124719
- {
124720
- var item=stock.stockday[i];
124721
-
124722
- var hqchartItem=this.ToHQChartItemData(item,id,subID);
124723
- if (hqchartItem && !setDate.has(hqchartItem.Date))
124724
- {
124725
- aryData.push(hqchartItem);
124726
- setDate.add(hqchartItem.Date);
124727
- }
124728
- }
124729
-
124730
- return aryData;
124731
- }
124732
-
124733
- this.ToHQChartItemData=function(item, id, subID)
124734
- {
124735
- if (!item) return null;
124736
- var date=item.date;
124737
- switch(id)
124738
- {
124739
- case 1:
124740
- if (!item.shareholder) return null;
124741
- return { Date:date, Value:item.shareholder.count };
124742
- case 2:
124743
- if (!item.tradedetail && item.tradedetail[0]) return null;
124744
- if (subID==0)
124745
- return { Date:date, Value:item.tradedetail[0].buy };
124746
- else
124747
- return { Date:date, Value:item.tradedetail[0].sell };
124748
- case 3:
124749
- if (!item.margin) return null;
124750
- if (subID==0)
124751
- {
124752
- if (item.margin.buy)
124753
- return { Date:date, Value:item.margin.buy.balance };
124754
- }
124755
- else
124756
- {
124757
- if (item.margin.sell)
124758
- return { Date:date, Value:item.margin.sell.balance };
124759
- }
124760
- return null;
124761
- case 4:
124762
- if (!item.blocktrading) return null;
124763
- if (subID==0)
124764
- return { Date:date, Value:item.blocktrading.price };
124765
- else
124766
- return { Date:date, Value:item.blocktrading.amount };
124767
- default:
124768
- return null;
124769
- }
124770
- }
124771
- }
124772
-
124773
-
124774
-
124775
- /*
124776
- 引用市场总的交易类数据.如果指标支持云数据函数,则不需要[专业财务数据]下载.
124777
- SCJYVALUE(ID,N,TYPE),ID为数据编号,N表示第几个数据,TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理
124778
-
124779
- 市场交易类数据函数,数据编号如下:
124780
- 1--融资融券 沪深融资余额(万元) 沪深融券余额(万元)
124781
- 2--陆股通资金流入 沪股通流入金额(亿元) 深股通流入金额(亿元)
124782
- 3--沪深涨停股个数 涨停股个数 曾涨停股个数 [注:该指标展示20160926日之后的数据]
124783
- 4--沪深跌停股个数 跌停股个数 曾跌停股个数
124784
- 5--上证50股指期货 净持仓(手)[注:该指标展示20171009日之后的数据]
124785
- 6--沪深300股指期货 净持仓(手) [注:该指标展示20171009日之后的数据]
124786
- 7--中证500股指期货 净持仓(手) [注:该指标展示20171009日之后的数据]
124787
- 8--ETF基金规模数据 ETF基金规模(亿) ETF净申赎(亿)
124788
- 9--每周新增投资者 新增投资者(万户)
124789
- 10--增减持统计 增持额(万元) 减持额(万元)[注:部分公司公告滞后,造成每天查看的数据可能会不一样]
124790
- 11--大宗交易 溢价的大宗交易额(万元) 折价的大宗交易额(万元)
124791
- 12--限售解禁 限售解禁计划额(亿元) 限售解禁股份实际上市金额(亿元)[注:该指标展示201802月之后的数据;部分股票的解禁日期延后,造成不同日期提取的某天的计划额可能不同]
124792
- 13--分红 市场总分红额(亿元)[注:除权派息日的A股市场总分红额]
124793
- 14--募资 市场总募资额(亿元)[注:发行日期/除权日期的首发、配股和增发的总募资额]
124794
- 15--打板资金 封板成功资金(亿元) 封板失败资金(亿元) [注:该指标展示20160926日之后的数据]
124795
- */
124796
- function DownloadSCJYValue(obj)
124797
- {
124798
- this.Url=obj.Url;
124799
- //this.RealtimeUrl=obj.RealtimeUrl;
124800
- this.Job=obj.Job;
124801
- this.Symbol=obj.Symbol;
124802
- this.Args=obj.Args;
124803
- this.DataKey=obj.DataKey;
124804
- this.RecvCallback=obj.Callback;
124805
- this.ErrorCallback=obj.ErrorCallback;
124806
-
124807
- this.Download=function()
124808
- {
124809
- var self=this;
124810
- var query=this.GetQueryCondtion();
124811
- if (!query)
124812
- {
124813
- message=`${this.Job.FunctionName}(${this.Args[0]}, ${this.Args[1]}, ${this.Args[2]}) can't support.`;
124814
- this.ErrorCallback(message);
124815
- self.RecvCallback(null, self.Job, self.DataKey, true);
124816
- return;
124817
- }
124818
-
124819
- //请求数据
124820
- JSNetwork.HttpRequest({
124821
- url: this.Url,
124822
- data:
124823
- {
124824
- "field": query.Field,
124825
- "symbol": query.Symbol,
124826
- "condition":query.Cond ,
124827
- "start": 0,
124828
- "end": 2000
124829
- },
124830
- type:"post",
124831
- dataType: "json",
124832
- async:true,
124833
- success: function (recvData)
124834
- {
124835
- var data=self.ToHQChartData(recvData);
124836
- if (data) //排序
124837
- data.sort(function (a, b) { return (a.Date - b.Date) });
124838
-
124839
- self.RecvCallback(data, self.Job, self.DataKey);
124840
- }
124841
- });
124842
-
124843
- }
124844
-
124845
- this.GetQueryCondtion=function()
124846
- {
124847
- var day=new Date();
124848
- var endDate=day.getFullYear()*10000+(day.getMonth()+1)*100+day.getDate();
124849
- day.setDate(day.getDate()-100); //取最近1000条数据
124850
- var startDate=day.getFullYear()*10000+(day.getMonth()+1)*100+day.getDate()
124851
- var id=this.Args[0];
124852
- switch(id)
124853
- {
124854
- case 1:
124855
- var data=
124856
- {
124857
- Symbol:["CNA.ci"],
124858
- Field:["margin"],
124859
- Cond:
124860
- [
124861
- {"item":["date","int32","gte",startDate.toString(),"lte",endDate.toString()]},
124862
- {"item":["margin","doc","exists","true"]}
124863
- ]
124864
- }
124865
- return data;
124866
- }
124867
- }
124868
-
124869
- this.ToHQChartData=function(recvData)
124870
- {
124871
- if (!recvData.stock || recvData.stock.length!=1) return null;
124872
-
124873
- var aryData=[];
124874
- var setDate=new Set(); //有重复数据 去掉
124875
- var stock=recvData.stock[0];
124876
- var id=this.Args[0];
124877
- var subID=this.Args[1];
124878
- for(var i in stock.stockday)
124879
- {
124880
- var item=stock.stockday[i];
124881
-
124882
- var hqchartItem=this.ToHQChartItemData(item,id,subID);
124883
- if (hqchartItem && !setDate.has(hqchartItem.Date))
124884
- {
124885
- aryData.push(hqchartItem);
124886
- setDate.add(hqchartItem.Date);
124887
- }
124888
- }
124889
-
124890
- return aryData;
124891
- }
124892
-
124893
- this.ToHQChartItemData=function(item, id, subID)
124894
- {
124895
- if (!item) return null;
124896
- var date=item.date;
124897
- var subItem=null;
124898
- switch(id)
124899
- {
124900
- case 1:
124901
- if (!item.margin) return null;
124902
- subItem=item.margin;
124903
- if (subID==1)
124904
- {
124905
- if (!subItem.buy || !IFrameSplitOperator.IsNumber(subItem.buy.balance)) return null;
124906
- return { Date:date, Value:subItem.buy.balance }
124907
- }
124908
- else
124909
- {
124910
- if (!IFrameSplitOperator.IsNumber(subItem.sell.balance)) return null;
124911
- return { Date:date, Value:subItem.sell.balance }
124912
- }
124913
-
124914
- default:
124915
- return null;
124916
- }
124917
- }
124918
- }
124919
-
124920
124639
  function DownloadGroupData(obj)
124921
124640
  {
124922
124641
  this.Url=obj.Url;
@@ -138809,7 +138528,7 @@ function ScrollBarBGChart()
138809
138528
 
138810
138529
 
138811
138530
 
138812
- var HQCHART_VERSION="1.1.13792";
138531
+ var HQCHART_VERSION="1.1.13801";
138813
138532
 
138814
138533
  function PrintHQChartVersion()
138815
138534
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.13792";
8
+ var HQCHART_VERSION="1.1.13801";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {