hqchart 1.1.15343 → 1.1.15349

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.15343",
3
+ "version": "1.1.15349",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -55672,6 +55672,10 @@ HQData.NetworkFilter=function(data, callback)
55672
55672
  HQData.INDEX_RequestData(data,callback);
55673
55673
  break;
55674
55674
 
55675
+ case "JSSymbolData::GetIndustryData":
55676
+ HQData.INDUSTRY_RequestData(data,callback);
55677
+ break;
55678
+
55675
55679
  case 'JSSymbolData::GetSymbolData':
55676
55680
  //HQChart使用教程30-K线图如何对接第3方数据38-通达信指标K线数据
55677
55681
  HQData.RequestSymbolData(data,callback); //计算指标需要的K线数据
@@ -57324,6 +57328,30 @@ HQData.INDEX_RequestData=function(data,callback)
57324
57328
  callback(hqchartData);
57325
57329
  }
57326
57330
 
57331
+ HQData.INDUSTRY_RequestData=function(data, callback)
57332
+ {
57333
+ data.PreventDefault=true;
57334
+ var period=data.Period;
57335
+ var symbol=data.Request.Data.symbol;
57336
+ var indexSymbol="399001.sz";
57337
+ var dateRange=data.Request.Data.dateRange;
57338
+ var aryData=[];
57339
+ if (ChartData.IsMinutePeriod(period, true))
57340
+ {
57341
+ var fullData=HQData.GetM1KLineDataBySymbol(symbol);
57342
+ if (fullData) aryData=HQData.GetKLineDataByDateTime(fullData, dateRange.Start.Date, dateRange.Start.Time, dateRange.End.Date, dateRange.End.Time);
57343
+ }
57344
+ else if (ChartData.IsDayPeriod(period,true))
57345
+ {
57346
+ var fullData=HQData.GetDayKLineDataBySymbol(indexSymbol);
57347
+ if (fullData) aryData=HQData.GetKLineDataByDate(fullData, dateRange.Start.Date, dateRange.End.Date);
57348
+ }
57349
+
57350
+ var hqchartData={ name:indexSymbol, symbol:indexSymbol, data:aryData, ver:2.0 };
57351
+
57352
+ callback(hqchartData);
57353
+ }
57354
+
57327
57355
  HQData.RequestSymbolData=function(data,callback)
57328
57356
  {
57329
57357
  data.PreventDefault=true;
@@ -59003,6 +59031,7 @@ HQData.APIIndex_MULTI_BAR=function(data, callback)
59003
59031
  //{Date:20190916, Time: Value:15.5, Value2:0 },
59004
59032
  ],
59005
59033
  //Width:10
59034
+ AdWidth:{ Type:1, Value:0.8 }
59006
59035
  };
59007
59036
 
59008
59037
  var point2=
@@ -59016,6 +59045,7 @@ HQData.APIIndex_MULTI_BAR=function(data, callback)
59016
59045
  //{Date:20190916, Time: Value:15.5, Value2:0 },
59017
59046
  ],
59018
59047
  //Width:10
59048
+ AdWidth:{ Type:1, Value:0.5 }
59019
59049
  };
59020
59050
 
59021
59051
  for(var i=0;i<kData.Data.length;++i)
@@ -59342,6 +59372,8 @@ HQData.APIIndex_SCATTER_PLOT_V2=function(data, callback)
59342
59372
  };
59343
59373
  }
59344
59374
 
59375
+ //if ((i%6)==2) item.Radius2=20;
59376
+
59345
59377
 
59346
59378
  item.Tooltip=
59347
59379
  [
@@ -59404,6 +59436,7 @@ HQData.APIIndex_KLINE_TABLE=function(data, callback)
59404
59436
  { Name:"账户4", DayCount:8, OperatorID:0 },
59405
59437
  ]
59406
59438
 
59439
+
59407
59440
  for(var i=0;i<kData.Data.length;++i)
59408
59441
  {
59409
59442
  var kItem=kData.Data[i];
@@ -59464,6 +59497,7 @@ HQData.APIIndex_KLINE_TABLE=function(data, callback)
59464
59497
 
59465
59498
  tableData.Draw.DrawData.push(colItem);
59466
59499
  }
59500
+
59467
59501
 
59468
59502
  var apiData=
59469
59503
  {
@@ -1212,6 +1212,7 @@ var Syntax = {
1212
1212
  function Node(ErrorHandler)
1213
1213
  {
1214
1214
  this.IsNeedIndexData=false; //是否需要大盘数据
1215
+ this.IsNeedIndustryData=false; //行业数据下载
1215
1216
  this.IsNeedLatestIndexData=false; //是否需要下载最新大盘数据
1216
1217
  this.IsNeedSymbolData=false; //是否需要下载股票数据
1217
1218
  this.IsNeedMarginData=new Set();
@@ -1239,6 +1240,7 @@ function Node(ErrorHandler)
1239
1240
  if (this.IsNeedSymbolData) jobs.push({ID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SYMBOL_DATA});
1240
1241
  if (this.IsNeedIndexData) jobs.push({ID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_INDEX_DATA});
1241
1242
  if (this.IsNeedLatestIndexData) jobs.push({ID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_LATEST_INDEX_DATA});
1243
+ if (this.IsNeedIndustryData) jobs.push({ID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_INDUSTRY_DATA});
1242
1244
 
1243
1245
  //最新的个股行情数据
1244
1246
  for(var i=0;i<this.Dynainfo.length;++i)
@@ -1325,6 +1327,13 @@ function Node(ErrorHandler)
1325
1327
  return;
1326
1328
  }
1327
1329
 
1330
+ let setIndustryName=new Set(['HY_INDEXA','HY_INDEXC','HY_INDEXH','HY_INDEXL',"HY_INDEXO","HY_INDEXV",'HY_INDEXADV','HY_INDEXDEC']);
1331
+ if (setIndustryName.has(varName))
1332
+ {
1333
+ this.IsNeedIndustryData=true;
1334
+ return;
1335
+ }
1336
+
1328
1337
  let setSymbolDataName=new Set(['CLOSE','C','VOL','V','OPEN','O','HIGH','H','LOW','L','AMOUNT','AMO','VOLINSTK']);
1329
1338
  if (setSymbolDataName.has(varName))
1330
1339
  {
@@ -12133,6 +12142,7 @@ function JSSymbolData(ast,option,jsExecute)
12133
12142
 
12134
12143
  this.LatestData=new Map(); //最新行情 key=id value=数据
12135
12144
  this.IndexData; //大盘指数
12145
+ this.IndustryData; //行业数据
12136
12146
  this.LatestIndexData; //最新大盘数据
12137
12147
  this.MarginData=new Map(); //融资融券
12138
12148
  this.HKToSHSZData=new Map(); //北上资金
@@ -12525,168 +12535,130 @@ function JSSymbolData(ast,option,jsExecute)
12525
12535
  this.GetIndexData=function()
12526
12536
  {
12527
12537
  if (this.IndexData) return this.Execute.RunNextJob();
12538
+ if (!this.NetworkFilter) return this.Execute.RunNextJob();
12528
12539
 
12529
- var self=this;
12530
- if (ChartData.IsDayPeriod(this.Period,true)) //请求日线数据 9=季线
12540
+ var dateRange=this.Data.GetDateRange();
12541
+ var period=this.Period;
12542
+ var obj=
12531
12543
  {
12532
- if (this.NetworkFilter)
12533
- {
12534
- var dateRange=this.Data.GetDateRange();
12535
- var obj=
12536
- {
12537
- Name:'JSSymbolData::GetIndexData', //类名::
12538
- Explain:'大盘数据',
12539
- Period:self.Period,
12540
- Request:
12541
- {
12542
- Url:self.KLineApiUrl, Type:'POST' ,
12543
- Data:
12544
- {
12545
- field:[ "name", "symbol","yclose","open","price","high","low","vol",'up','down','stop','unchanged'],
12546
- indexSymbol:"000001.sh", symbol: this.Symbol, period:this.Period,
12547
- dateRange:dateRange
12548
- }
12549
- },
12550
- Self:this,
12551
- PreventDefault:false
12552
- };
12553
- this.NetworkFilter(obj, function(data)
12544
+ Name:'JSSymbolData::GetIndexData', //类名::
12545
+ Explain:'大盘数据',
12546
+ Period:period,
12547
+ Request:
12548
+ {
12549
+ Type:'POST' ,
12550
+ Data:
12554
12551
  {
12555
- self.RecvIndexHistroyData(data);
12556
- self.Execute.RunNextJob();
12557
- });
12552
+ field:[ "name", "symbol","yclose","open","price","high","low","vol",'up','down','stop','unchanged'],
12553
+ indexSymbol:"000001.sh", symbol: this.Symbol, period:period,
12554
+ dateRange:dateRange
12555
+ }
12556
+ },
12557
+ Self:this,
12558
+ PreventDefault:false
12559
+ };
12558
12560
 
12559
- if (obj.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
12560
- }
12561
+ this.NetworkFilter(obj, (data)=>
12562
+ {
12563
+ JSConsole.Complier.Log('[JSSymbolData::GetIndexData] recv data' , data);
12561
12564
 
12562
- JSNetwork.HttpRequest({
12563
- url: self.KLineApiUrl,
12564
- data:
12565
- {
12566
- "field": [ "name", "symbol","yclose","open","price","high","low","vol",'up','down','stop','unchanged'],
12567
- "symbol": '000001.sh',
12568
- "start": -1,
12569
- "count": self.MaxRequestDataCount+500 //多请求2年的数据 确保股票剔除停牌日期以后可以对上
12570
- },
12571
- type:"post",
12572
- dataType: "json",
12573
- async:true,
12574
- success: function (recvData)
12575
- {
12576
- self.RecvIndexHistroyData(recvData);
12577
- self.Execute.RunNextJob();
12578
- },
12579
- error: function(request)
12565
+ this.IndexData=this.APIKDataToChartData(data, period);
12566
+ this.Execute.RunNextJob();
12567
+ });
12568
+
12569
+ }
12570
+
12571
+
12572
+ this.APIKDataToChartData=function(data, period)
12573
+ {
12574
+ var result=null;
12575
+ if (ChartData.IsDayPeriod(period,true)) //请求日线数据
12576
+ {
12577
+ var hisData=this.JsonDataToHistoryData(data);
12578
+ result=new ChartData();
12579
+ result.DataType=0; /*日线数据 */
12580
+ result.Data=hisData;
12581
+
12582
+ if (this.IsApiPeriod==true)
12583
+ {
12584
+ result.Period=period;
12585
+ result.Data=this.Data.FixKData(hisData,period);
12586
+ }
12587
+ else
12588
+ {
12589
+ var aryOverlayData=this.SourceData.GetOverlayData(result.Data); //和主图数据拟合以后的数据
12590
+ result.Data=aryOverlayData;
12591
+
12592
+ if (ChartData.IsDayPeriod(period,false)) //周期数据
12580
12593
  {
12581
- self.RecvError(request);
12594
+ var periodData=result.GetPeriodData(period);
12595
+ result.Data=periodData;
12582
12596
  }
12583
- });
12597
+ }
12584
12598
  }
12585
- else if (ChartData.IsMinutePeriod(this.Period, true)) //请求分钟数据
12599
+ else if (ChartData.IsMinutePeriod(period, true))
12586
12600
  {
12587
- if (this.NetworkFilter)
12588
- {
12589
- var dateRange=this.Data.GetDateRange();
12590
- var obj=
12591
- {
12592
- Name:'JSSymbolData::GetIndexData', //类名::
12593
- Explain:'大盘数据',
12594
- Period:self.Period,
12595
- Request:{ Url:self.MinuteKLineApiUrl, Type:'POST' ,
12596
- Data:
12597
- {
12598
- field:["name","symbol","yclose","open","price","high","low","vol"],
12599
- indexSymbol:"000001.sh", symbol: this.Symbol, period:this.Period,
12600
- dateRange:dateRange
12601
- }
12602
- },
12603
- Self:this,
12604
- PreventDefault:false
12605
- };
12606
- this.NetworkFilter(obj, function(data)
12607
- {
12608
- self.RecvIndexMinuteHistroyData(data);
12609
- self.Execute.RunNextJob();
12610
- });
12601
+ var hisData=this.JsonDataToMinuteHistoryData(data);
12602
+ result=new ChartData();
12603
+ result.DataType=1; /*分钟线数据 */
12604
+ result.Data=hisData;
12611
12605
 
12612
- if (obj.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
12606
+ if (this.IsApiPeriod==true)
12607
+ {
12608
+ result.Period=this.Period;
12609
+ result.Data=this.Data.FixKData(hisData,period);
12613
12610
  }
12611
+ else
12612
+ {
12613
+ var aryOverlayData=this.SourceData.GetOverlayMinuteData(result.Data); //和主图数据拟合以后的数据
12614
+ result.Data=aryOverlayData;
12614
12615
 
12615
- JSNetwork.HttpRequest({
12616
- url: self.MinuteKLineApiUrl,
12617
- data:
12616
+ if (ChartData.IsMinutePeriod(period,false)) //周期数据
12618
12617
  {
12619
- "field": ["name","symbol","yclose","open","price","high","low","vol"],
12620
- "symbol": '000001.sh',
12621
- "start": -1,
12622
- "count": self.MaxRequestMinuteDayCount+5
12623
- },
12624
- type:"post",
12625
- dataType: "json",
12626
- async:true,
12627
- success: function (data)
12628
- {
12629
- self.RecvIndexMinuteHistroyData(data);
12630
- self.Execute.RunNextJob();
12631
- },
12632
- error: function(request)
12633
- {
12634
- self.RecvError(request);
12618
+ var periodData=result.GetPeriodData(period);
12619
+ result.Data=periodData;
12635
12620
  }
12636
- });
12621
+ }
12637
12622
  }
12638
12623
 
12624
+ return result;
12639
12625
  }
12640
12626
 
12641
- this.RecvIndexHistroyData=function(data)
12627
+ //获取行业数据
12628
+ this.GetIndustryData=function()
12642
12629
  {
12643
- JSConsole.Complier.Log('[JSSymbolData::RecvIndexHistroyData] recv data' , data);
12644
-
12645
- let hisData=this.JsonDataToHistoryData(data);
12646
- this.IndexData=new ChartData();
12647
- this.IndexData.DataType=0; /*日线数据 */
12648
- this.IndexData.Data=hisData;
12630
+ if (this.IndustryData) return this.Execute.RunNextJob();
12631
+ if (!this.NetworkFilter) return this.Execute.RunNextJob();
12649
12632
 
12650
- if (this.IsApiPeriod==true)
12651
- {
12652
- this.IndexData.Period=this.Period;
12653
- this.IndexData.Data=this.Data.FixKData(hisData,this.Period);
12654
- }
12655
- else
12633
+ var dateRange=this.Data.GetDateRange();
12634
+ var period=this.Period;
12635
+ var obj=
12656
12636
  {
12657
- var aryOverlayData=this.SourceData.GetOverlayData(this.IndexData.Data); //和主图数据拟合以后的数据
12658
- this.IndexData.Data=aryOverlayData;
12659
-
12660
- if (ChartData.IsDayPeriod(this.Period,false)) //周期数据
12661
- {
12662
- let periodData=this.IndexData.GetPeriodData(this.Period);
12663
- this.IndexData.Data=periodData;
12664
- }
12665
- }
12666
- }
12667
-
12668
- this.RecvIndexMinuteHistroyData=function(data)
12669
- {
12670
- JSConsole.Complier.Log('[JSSymbolData::RecvIndexMinuteHistroyData] recv data' , data);
12637
+ Name:'JSSymbolData::GetIndustryData', //类名::
12638
+ Explain:'行业数据',
12639
+ Period:period,
12640
+ Request:
12641
+ {
12642
+ Url:self.KLineApiUrl, Type:'POST' ,
12643
+ Data:
12644
+ {
12645
+ field:[ "name", "symbol","yclose","open","price","high","low","vol",'up','down','stop','unchanged'],
12646
+ symbol: this.Symbol, period:period,
12647
+ dateRange:dateRange
12648
+ }
12649
+ },
12650
+ Self:this,
12651
+ PreventDefault:false
12652
+ };
12671
12653
 
12672
- let hisData=this.JsonDataToMinuteHistoryData(data);
12673
- this.IndexData=new ChartData();
12674
- this.IndexData.DataType=1; /*分钟线数据 */
12675
- this.IndexData.Data=hisData;
12654
+
12655
+ this.NetworkFilter(obj, (data)=>
12656
+ {
12657
+ JSConsole.Complier.Log('[JSSymbolData::GetIndustryData] recv data' , data);
12676
12658
 
12677
- if (this.IsApiPeriod==true)
12678
- {
12679
- this.IndexData.Period=this.Period;
12680
- this.IndexData.Data=this.Data.FixKData(hisData,this.Period);
12681
- }
12682
- else
12683
- {
12684
- if (ChartData.IsMinutePeriod(this.Period,false)) //周期数据
12685
- {
12686
- let periodData=this.IndexData.GetPeriodData(this.Period);
12687
- this.IndexData.Data=periodData;
12688
- }
12689
- }
12659
+ this.IndustryData=this.APIKDataToChartData(data, period);
12660
+ this.Execute.RunNextJob();
12661
+ });
12690
12662
  }
12691
12663
 
12692
12664
  this.GetOtherSymbolParam=function(name)
@@ -13030,6 +13002,32 @@ function JSSymbolData(ast,option,jsExecute)
13030
13002
  }
13031
13003
  }
13032
13004
 
13005
+ //获取大盘指数缓存数据
13006
+ this.GetIndustryCacheData=function(dataName)
13007
+ {
13008
+ if (!this.IndustryData) return [];
13009
+
13010
+ switch(dataName)
13011
+ {
13012
+ case 'HY_INDEXA':
13013
+ return this.IndustryData.GetAmount();
13014
+ case 'HY_INDEXC':
13015
+ return this.IndustryData.GetClose();
13016
+ case 'HY_INDEXH':
13017
+ return this.IndustryData.GetHigh();
13018
+ case 'HY_INDEXL':
13019
+ return this.IndustryData.GetLow();
13020
+ case 'HY_INDEXO':
13021
+ return this.IndustryData.GetOpen();
13022
+ case 'HY_INDEXV':
13023
+ return this.IndustryData.GetVol();
13024
+ case 'HY_INDEXADV':
13025
+ return this.IndustryData.GetUp();
13026
+ case 'HY_INDEXDEC':
13027
+ return this.IndustryData.GetDown();
13028
+ }
13029
+ }
13030
+
13033
13031
  //指数转成对应的板块
13034
13032
  this.GetBlockSymbol=function(symbol)
13035
13033
  {
@@ -16972,6 +16970,7 @@ var JS_EXECUTE_JOB_ID=
16972
16970
  JOB_DOWNLOAD_LATEST_INDEX_DATA:8, //下载最新大盘数据
16973
16971
  JOB_DOWNLOAD_OTHER_SYMBOL_DATA:9, //下载其他股票的K线数据
16974
16972
  JOB_DOWNLOAD_SYMBOL_PERIOD_DATA:10, //下载周期数据
16973
+ JOB_DOWNLOAD_INDUSTRY_DATA:11, //行业数据
16975
16974
 
16976
16975
  JOB_DOWNLOAD_FINVALUE:301, //引用专业财务数据 FINVALUE(ID),ID为数据编号
16977
16976
  JOB_DOWNLOAD_FINONE:302, //引用指定年和月日的某类型的财务数据 FINONE(ID,Y,MMDD),ID为数据编号,Y和MMDD表示年和月日.
@@ -17258,6 +17257,10 @@ function JSExecute(ast,option)
17258
17257
  ['INDEXA',null],['INDEXC',null],['INDEXH',null],['INDEXL',null],['INDEXO',null],['INDEXV',null],
17259
17258
  ['INDEXADV',null],['INDEXDEC',null],
17260
17259
 
17260
+ //行业数据
17261
+ ["HY_INDEXA",null],["HY_INDEXC",null],["HY_INDEXH",null],["HY_INDEXL",null],["HY_INDEXO",null],["HY_INDEXV",null],
17262
+ ["HY_INDEXADV",null],["HY_INDEXDEC",null],
17263
+
17261
17264
  ["ADVANCE",null],['DECLINE', null],
17262
17265
 
17263
17266
  ['FROMOPEN',null], //已开盘有多长分钟
@@ -17382,6 +17385,8 @@ function JSExecute(ast,option)
17382
17385
  return this.SymbolData.GetSymbolPeriodData(jobItem);
17383
17386
  case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_INDEX_DATA:
17384
17387
  return this.SymbolData.GetIndexData();
17388
+ case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_INDUSTRY_DATA:
17389
+ return this.SymbolData.GetIndustryData();
17385
17390
  case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_LATEST_INDEX_DATA:
17386
17391
  return this.SymbolData.GetLatestIndexData();
17387
17392
  case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_INDEX_INCREASE_DATA:
@@ -17506,6 +17511,16 @@ function JSExecute(ast,option)
17506
17511
  case 'INDEXADV':
17507
17512
  case 'INDEXDEC':
17508
17513
  return this.SymbolData.GetIndexCacheData(name);
17514
+ //行业数据
17515
+ case 'HY_INDEXA':
17516
+ case 'HY_INDEXC':
17517
+ case 'HY_INDEXH':
17518
+ case 'HY_INDEXL':
17519
+ case 'HY_INDEXO':
17520
+ case 'HY_INDEXV':
17521
+ case 'HY_INDEXADV':
17522
+ case 'HY_INDEXDEC':
17523
+ return this.SymbolData.GetIndustryCacheData(name);
17509
17524
  case 'CURRBARSCOUNT':
17510
17525
  return this.SymbolData.GetCurrBarsCount();
17511
17526
  case "BARPOS":
@@ -34462,6 +34462,7 @@ function ChartKLineTable()
34462
34462
  this.MapCache=null; //key=date/date-time value={ Date:, Time:, Data:[ ] }
34463
34463
  this.GetKValue=ChartData.GetKValue;
34464
34464
  this.AryCellRect=[]; //保存单元格信息
34465
+ this.AryNameRect=[]; //右侧行的名字
34465
34466
 
34466
34467
 
34467
34468
  this.SetOption=function(option)
@@ -34564,6 +34565,7 @@ function ChartKLineTable()
34564
34565
  this.Draw=function()
34565
34566
  {
34566
34567
  this.AryCellRect=[];
34568
+ this.AryNameRect=[];
34567
34569
  if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
34568
34570
  if (this.IsShowIndexTitleOnly()) return;
34569
34571
  if (this.IsHideScriptIndex()) return;
@@ -34770,6 +34772,8 @@ function ChartKLineTable()
34770
34772
  this.Canvas.textBaseline='bottom';
34771
34773
  this.Canvas.textAlign='left';
34772
34774
  this.Canvas.fillText(item.Name,rtBG.Left+2,yText);
34775
+
34776
+ this.AryNameRect.push({ Rect:rtBG, Item:item, Index:i });
34773
34777
  }
34774
34778
 
34775
34779
  y+=this.RowHeight;
@@ -89324,6 +89328,19 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
89324
89328
  this.ChartCorssCursor.OnDBClick(data);
89325
89329
  bDraw=data.Draw
89326
89330
  }
89331
+
89332
+ if (this.TryDBClickChartTooltipData) //外部预留接口
89333
+ {
89334
+ var data={ e:e, X:x, Y:y, Draw:false, PreventDefault:false };
89335
+ this.TryDBClickChartTooltipData(data, this);
89336
+ if (data.Draw) bDraw=true;
89337
+
89338
+ if (data.PreventDefault)
89339
+ {
89340
+ if (bDraw) this.Draw();
89341
+ return;
89342
+ }
89343
+ }
89327
89344
 
89328
89345
  if (this.EnableYDrag && (this.EnableYDrag.Left || this.EnableYDrag.Right) && this.Frame && this.Frame.PtInFrameY)
89329
89346
  {
@@ -158,6 +158,10 @@ HQData.NetworkFilter=function(data, callback)
158
158
  HQData.INDEX_RequestData(data,callback);
159
159
  break;
160
160
 
161
+ case "JSSymbolData::GetIndustryData":
162
+ HQData.INDUSTRY_RequestData(data,callback);
163
+ break;
164
+
161
165
  case 'JSSymbolData::GetSymbolData':
162
166
  //HQChart使用教程30-K线图如何对接第3方数据38-通达信指标K线数据
163
167
  HQData.RequestSymbolData(data,callback); //计算指标需要的K线数据
@@ -1810,6 +1814,30 @@ HQData.INDEX_RequestData=function(data,callback)
1810
1814
  callback(hqchartData);
1811
1815
  }
1812
1816
 
1817
+ HQData.INDUSTRY_RequestData=function(data, callback)
1818
+ {
1819
+ data.PreventDefault=true;
1820
+ var period=data.Period;
1821
+ var symbol=data.Request.Data.symbol;
1822
+ var indexSymbol="399001.sz";
1823
+ var dateRange=data.Request.Data.dateRange;
1824
+ var aryData=[];
1825
+ if (ChartData.IsMinutePeriod(period, true))
1826
+ {
1827
+ var fullData=HQData.GetM1KLineDataBySymbol(symbol);
1828
+ if (fullData) aryData=HQData.GetKLineDataByDateTime(fullData, dateRange.Start.Date, dateRange.Start.Time, dateRange.End.Date, dateRange.End.Time);
1829
+ }
1830
+ else if (ChartData.IsDayPeriod(period,true))
1831
+ {
1832
+ var fullData=HQData.GetDayKLineDataBySymbol(indexSymbol);
1833
+ if (fullData) aryData=HQData.GetKLineDataByDate(fullData, dateRange.Start.Date, dateRange.End.Date);
1834
+ }
1835
+
1836
+ var hqchartData={ name:indexSymbol, symbol:indexSymbol, data:aryData, ver:2.0 };
1837
+
1838
+ callback(hqchartData);
1839
+ }
1840
+
1813
1841
  HQData.RequestSymbolData=function(data,callback)
1814
1842
  {
1815
1843
  data.PreventDefault=true;
@@ -3489,6 +3517,7 @@ HQData.APIIndex_MULTI_BAR=function(data, callback)
3489
3517
  //{Date:20190916, Time: Value:15.5, Value2:0 },
3490
3518
  ],
3491
3519
  //Width:10
3520
+ AdWidth:{ Type:1, Value:0.8 }
3492
3521
  };
3493
3522
 
3494
3523
  var point2=
@@ -3502,6 +3531,7 @@ HQData.APIIndex_MULTI_BAR=function(data, callback)
3502
3531
  //{Date:20190916, Time: Value:15.5, Value2:0 },
3503
3532
  ],
3504
3533
  //Width:10
3534
+ AdWidth:{ Type:1, Value:0.5 }
3505
3535
  };
3506
3536
 
3507
3537
  for(var i=0;i<kData.Data.length;++i)
@@ -3828,6 +3858,8 @@ HQData.APIIndex_SCATTER_PLOT_V2=function(data, callback)
3828
3858
  };
3829
3859
  }
3830
3860
 
3861
+ //if ((i%6)==2) item.Radius2=20;
3862
+
3831
3863
 
3832
3864
  item.Tooltip=
3833
3865
  [
@@ -3890,6 +3922,7 @@ HQData.APIIndex_KLINE_TABLE=function(data, callback)
3890
3922
  { Name:"账户4", DayCount:8, OperatorID:0 },
3891
3923
  ]
3892
3924
 
3925
+
3893
3926
  for(var i=0;i<kData.Data.length;++i)
3894
3927
  {
3895
3928
  var kItem=kData.Data[i];
@@ -3950,6 +3983,7 @@ HQData.APIIndex_KLINE_TABLE=function(data, callback)
3950
3983
 
3951
3984
  tableData.Draw.DrawData.push(colItem);
3952
3985
  }
3986
+
3953
3987
 
3954
3988
  var apiData=
3955
3989
  {