hqchart 1.1.14947 → 1.1.14953

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.
@@ -15914,7 +15914,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
15914
15914
  {
15915
15915
  //清空当前鼠标坐标
15916
15916
  this.LastPoint.X=null;
15917
- this.LastPoint.Y=null
15917
+ this.LastPoint.Y=null;
15918
15918
  this.HideTooltip();
15919
15919
  this.CloseTooltipDialog();
15920
15920
  }
@@ -15923,7 +15923,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
15923
15923
  if (IFrameSplitOperator.IsNumber(data.X) && IFrameSplitOperator.IsNumber(data.Y))
15924
15924
  {
15925
15925
  //设置鼠标位置
15926
- if (this.LastPoint && !IFrameSplitOperator.IsNumber(this.LastPoint.X) && !IFrameSplitOperator.IsNumber(this.LastPoint.Y))
15926
+ if (this.LastPoint && (!IFrameSplitOperator.IsNumber(this.LastPoint.X) || !IFrameSplitOperator.IsNumber(this.LastPoint.Y)))
15927
15927
  {
15928
15928
  this.LastPoint.X=data.X;
15929
15929
  this.LastPoint.Y=data.Y;
@@ -39464,10 +39464,10 @@ function ChartMinuteVolumBar()
39464
39464
  var unit=this.GetVolUnit();
39465
39465
  if (callAutionData.Ver==1.0)
39466
39466
  {
39467
- for(var i in callAutionData.Data)
39467
+ for(var i=0;i<callAutionData.Data.length;++i)
39468
39468
  {
39469
39469
  var item=callAutionData.Data[i];
39470
- if (!item || !IFrameSplitOperator.IsNumber(item.Vol[0])) continue;
39470
+ if (!item || !IFrameSplitOperator.IsNonEmptyArray(item.Vol) || !IFrameSplitOperator.IsNumber(item.Vol[0])) continue;
39471
39471
 
39472
39472
  if (isBeforeOpen)
39473
39473
  {
@@ -39501,11 +39501,11 @@ function ChartMinuteVolumBar()
39501
39501
  {
39502
39502
  var range={ Max: callAutionData.VolMax, Min:callAutionData.VolMin }
39503
39503
 
39504
- for(var i in callAutionData.Data)
39504
+ for(var i=0; i<callAutionData.Data.length; ++i)
39505
39505
  {
39506
39506
  var item=callAutionData.Data[i];
39507
39507
  if (!item) continue;
39508
- if (IFrameSplitOperator.IsPlusNumber(item.Vol[0]))
39508
+ if (item.Vol && IFrameSplitOperator.IsPlusNumber(item.Vol[0]))
39509
39509
  {
39510
39510
  if (isBeforeOpen)
39511
39511
  {
@@ -39535,7 +39535,7 @@ function ChartMinuteVolumBar()
39535
39535
  this.Canvas.stroke();
39536
39536
  }
39537
39537
 
39538
- if (IFrameSplitOperator.IsPlusNumber(item.Vol[1]))
39538
+ if (item.Vol && IFrameSplitOperator.IsPlusNumber(item.Vol[1]))
39539
39539
  {
39540
39540
  if (isBeforeOpen)
39541
39541
  {
@@ -44515,16 +44515,23 @@ function ChartMinutePriceLine()
44515
44515
  var item=callAutionData.Data[i];
44516
44516
  if (!item || !IFrameSplitOperator.IsNumber(item.Price))
44517
44517
  {
44518
- if (i==0 && isBeforeOpen && IFrameSplitOperator.IsNumber(this.YClose))
44518
+ if (i==0 && isBeforeOpen)
44519
44519
  {
44520
- var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);
44521
- var y=this.ChartFrame.GetLeftExtendYFromData(this.YClose);
44520
+ //盘前集合竞价起始点为昨收或昨结算
44521
+ var price=callAutionData.YClose;
44522
+ if (IFrameSplitOperator.IsNumber(callAutionData.YClearing)) price=callAutionData.YClearing;
44522
44523
 
44523
- this.Canvas.strokeStyle=this.BeforeLineColor;
44524
- this.Canvas.beginPath();
44525
- if (isHScreen) this.Canvas.moveTo(y,x);
44526
- else this.Canvas.moveTo(x,y);
44527
- bFirstPoint=false;
44524
+ if (IFrameSplitOperator.IsNumber(price))
44525
+ {
44526
+ var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);
44527
+ var y=this.ChartFrame.GetLeftExtendYFromData(price);
44528
+
44529
+ this.Canvas.strokeStyle=this.BeforeLineColor;
44530
+ this.Canvas.beginPath();
44531
+ if (isHScreen) this.Canvas.moveTo(y,x);
44532
+ else this.Canvas.moveTo(x,y);
44533
+ bFirstPoint=false;
44534
+ }
44528
44535
  }
44529
44536
 
44530
44537
  continue;
@@ -96693,6 +96700,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96693
96700
  //更新最新的几条数据
96694
96701
  this.UpdateLatestMinuteDataV2=function(minuteData)
96695
96702
  {
96703
+ if (!minuteData || !IFrameSplitOperator.IsNonEmptyArray(minuteData.Data)) return;
96704
+
96696
96705
  if (this.DayCount>1)
96697
96706
  {
96698
96707
  if (!this.DayData) return;
@@ -96701,7 +96710,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96701
96710
  for(var i=0; i<this.DayData.length; ++i)
96702
96711
  {
96703
96712
  var item=this.DayData[i];
96704
- if (item.Date===date)
96713
+ if (item.Date===minuteData.Date)
96705
96714
  {
96706
96715
  findItem=item;
96707
96716
  break;
@@ -96887,24 +96896,50 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96887
96896
  this.ColorLineData=aryColorLineData;
96888
96897
  }
96889
96898
 
96890
- this.UpdateCallCationData=function(beforeOpenData,afterCloseData)
96899
+ this.UpdateCallCationData=function(beforeOpenData,afterCloseData,option)
96891
96900
  {
96892
- if (beforeOpenData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData))
96901
+ var dataType=0;
96902
+ if (option && IFrameSplitOperator.IsNumber(option.DataType)) dataType=option.DataType;
96903
+
96904
+ if (dataType==1)
96893
96905
  {
96894
- var lastItem=this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1];
96895
- if (lastItem.Date==beforeOpenData.Date) //存在更新
96896
- this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1]=beforeOpenData;
96897
- else if (lastItem.Date<beforeOpenData.Date) //新的一天插入
96898
- this.MultiDayBeforeOpenData.push(beforeOpenData);
96899
- }
96906
+ if (beforeOpenData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData))
96907
+ {
96908
+ var lastItem=this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1];
96909
+ if (lastItem.Date==beforeOpenData.Date) //增量更新
96910
+ {
96911
+ this.UpdateLatestCallCationData(lastItem, beforeOpenData);
96912
+ }
96913
+ }
96900
96914
 
96901
- if (afterCloseData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData))
96915
+ if (afterCloseData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData))
96916
+ {
96917
+ var lastItem=this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1];
96918
+ if (lastItem.Date==afterCloseData.Date) //增量更新
96919
+ {
96920
+ this.UpdateLatestCallCationData(lastItem, afterCloseData);
96921
+ }
96922
+ }
96923
+ }
96924
+ else
96902
96925
  {
96903
- var lastItem=this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1];
96904
- if (lastItem.Date==afterCloseData.Date)
96905
- this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1]=afterCloseData;
96906
- else if (lastItem.Date<afterCloseData.Date)
96907
- this.MultiDayAfterCloseData.push(afterCloseData);
96926
+ if (beforeOpenData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData))
96927
+ {
96928
+ var lastItem=this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1];
96929
+ if (lastItem.Date==beforeOpenData.Date) //存在更新
96930
+ this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1]=beforeOpenData;
96931
+ else if (lastItem.Date<beforeOpenData.Date) //新的一天插入
96932
+ this.MultiDayBeforeOpenData.push(beforeOpenData);
96933
+ }
96934
+
96935
+ if (afterCloseData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData))
96936
+ {
96937
+ var lastItem=this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1];
96938
+ if (lastItem.Date==afterCloseData.Date)
96939
+ this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1]=afterCloseData;
96940
+ else if (lastItem.Date<afterCloseData.Date)
96941
+ this.MultiDayAfterCloseData.push(afterCloseData);
96942
+ }
96908
96943
  }
96909
96944
 
96910
96945
  this.CaclutateCallCationYRange();
@@ -96920,9 +96955,16 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96920
96955
  var afterCloseData=MinuteChartContainer.JsonDataToAfterCloseData(data);
96921
96956
  var updateTime=MinuteChartContainer.JsonDataToMinuteLastUpdateTime(data); //数据最后的更新时间
96922
96957
 
96958
+ if (data.LatestPointFlash) //最新数据闪烁
96959
+ {
96960
+ var item=data.LatestPointFlash;
96961
+ if (IFrameSplitOperator.IsNumber(item.FlashCount))
96962
+ this.SetLatestPointFlash(item.FlashCount)
96963
+ }
96964
+
96923
96965
  if (this.DayCount>1) //多日走势图
96924
96966
  {
96925
- this.UpdateCallCationData(beforeOpenData,afterCloseData);
96967
+ this.UpdateCallCationData(beforeOpenData,afterCloseData, { DataType:1});
96926
96968
  this.UpdateLineColorData(aryColorData,minuteData.date);
96927
96969
  this.UpdateLatestMinuteDataV2(minuteData);
96928
96970
  this.UpdateHistoryMinuteUI(updateTime);
@@ -96934,10 +96976,13 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96934
96976
  return;
96935
96977
  }
96936
96978
 
96937
- if (this.IsBeforeData && beforeOpenData) this.BeforeOpenData=beforeOpenData;
96938
- if (this.IsAfterData && afterCloseData) this.AfterCloseData=afterCloseData;
96979
+ //if (this.IsBeforeData && beforeOpenData) this.BeforeOpenData=beforeOpenData;
96980
+ //if (this.IsAfterData && afterCloseData) this.AfterCloseData=afterCloseData;
96981
+
96982
+ //盘前盘后数据更新
96983
+ if (this.IsBeforeData && beforeOpenData) this.UpdateLatestCallCationData(this.BeforeOpenData, beforeOpenData);
96984
+ if (this.IsAfterData && afterCloseData) this.UpdateLatestCallCationData(this.AfterCloseData, afterCloseData);
96939
96985
 
96940
- //原始数据
96941
96986
  this.UpdateLatestMinuteDataV2(minuteData);
96942
96987
  this.UpdateMinuteUI(data.stock[0], {FunctionName:"RecvUpdateMinuteData"});
96943
96988
 
@@ -96952,6 +96997,45 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96952
96997
  }
96953
96998
  }
96954
96999
 
97000
+ this.UpdateLatestCallCationData=function(destData, updateData)
97001
+ {
97002
+ if (!destData) return;
97003
+ if (!updateData || !IFrameSplitOperator.IsNonEmptyArray(updateData.Data)) return;
97004
+
97005
+ if (destData.Data.length==0)
97006
+ {
97007
+ destData.Data=updateData.Data;
97008
+ destData.VolMax=updateData.VolMax;
97009
+ destData.VolMin=updateData.VolMin;
97010
+ return;
97011
+ }
97012
+
97013
+ //覆盖历史数据
97014
+ var mapData=new Map(updateData.Data.map((obj) => [obj.Time, obj]));
97015
+ var lastTime=null; //最后的时间
97016
+ for(var i=0;i<destData.Data.length;++i)
97017
+ {
97018
+ var item=destData.Data[i];
97019
+ lastTime=item.Time;
97020
+ if (!mapData.has(item.Time)) continue;
97021
+ var newItem=mapData.get(item.Time);
97022
+ if (!newItem || !IFrameSplitOperator.IsNumber(newItem.Price)) continue; //只覆盖有效数据
97023
+
97024
+ destData.Data[i]=newItem;
97025
+ }
97026
+
97027
+ //新数据往后插
97028
+ for(var i=0;i<updateData.Data.length;++i)
97029
+ {
97030
+ var item=updateData.Data[i];
97031
+ if (item.Time<=lastTime) continue;
97032
+ destData.Data.push(item);
97033
+ }
97034
+
97035
+ if (destData.VolMax<updateData.VolMax) destData.VolMax=updateData.VolMax;
97036
+ if (IFrameSplitOperator.IsNumber(updateData.TotalCount) && updateData.TotalCount>destData.TotalCount) updateData.TotalCount=destData.TotalCount;
97037
+ }
97038
+
96955
97039
  this.RecvBuySellData=function(data)
96956
97040
  {
96957
97041
  if (!data) return;
@@ -97018,7 +97102,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
97018
97102
 
97019
97103
  if (this.DayCount>1) //多日走势图
97020
97104
  {
97021
- this.UpdateCallCationData(beforeOpenData,afterCloseData);
97105
+ this.UpdateCallCationData(beforeOpenData,afterCloseData, { DataType:0});
97022
97106
  this.UpdateLineColorData(aryColorData,data.stock[0].date);
97023
97107
  this.UpdateLatestMinuteData(aryMinuteData, data.stock[0].date, data.stock[0]);
97024
97108
  this.UpdateTradeStatusData(data.TradeStatus);
@@ -98835,7 +98919,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
98835
98919
  var preClose=data.stock[0].yclose; //前一个数据价格
98836
98920
  var stockData=data.stock[0];
98837
98921
  var date=stockData.date; //日期
98838
- var beforeOpenData={ Data:[], TotalCount:15, Ver:1.0, Date:date };
98922
+ var beforeOpenData={ Data:[], TotalCount:15, Ver:1.0, Date:date, YClose:stockData.yclose, YClearing:stockData.yclearing };
98839
98923
  var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_BEFOREOPEN_EXTENDDATA; //扩展数据序号
98840
98924
  if (stockData.beforeinfo)
98841
98925
  {
@@ -98871,7 +98955,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
98871
98955
  else if (beforeOpenData.Ver==2.0)
98872
98956
  {
98873
98957
  var max=0;
98874
- for(var i in stockData.before)
98958
+ for(var i=0;i<stockData.before.length;++i)
98875
98959
  {
98876
98960
  var item=new BeforeOpenData();
98877
98961
  var jsData=stockData.before[i];
@@ -98883,7 +98967,6 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
98883
98967
  item.Vol[1]=jsData[3]; //未匹配量
98884
98968
  item.ColorID=jsData[4]; //柱子颜色ID
98885
98969
  if (IFrameSplitOperator.IsNumber(jsData[6])) item.Date=jsData[6] //日期
98886
- item.DateTime=`${item.Date} ${item.Time})`;
98887
98970
 
98888
98971
  var totalVol=item.Vol[0]+item.Vol[1];
98889
98972
  if (IFrameSplitOperator.IsNumber(jsData[5])) totalVol=jsData[5];
@@ -98895,12 +98978,14 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
98895
98978
 
98896
98979
  beforeOpenData.VolMax=max/unit;
98897
98980
  beforeOpenData.VolMin=0;
98981
+
98982
+ if (stockData.beforeinfo && stockData.beforeinfo.TimeConfig) //固定时间
98983
+ MinuteChartContainer.CompleteCallAuctionData(stockData.beforeinfo.TimeConfig, beforeOpenData);
98898
98984
  }
98899
98985
  else if (beforeOpenData.Ver==3.0)
98900
98986
  {
98901
98987
  var max=0;
98902
-
98903
- for(var i in stockData.before)
98988
+ for(var i=0; i<stockData.before.length; ++i)
98904
98989
  {
98905
98990
  var item=new BeforeOpenData();
98906
98991
  var jsData=stockData.before[i];
@@ -98911,7 +98996,6 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
98911
98996
  item.AvPrice=jsData[2]; //均价
98912
98997
  item.Vol[0]=jsData[3]; //匹配量
98913
98998
  item.ColorID=jsData[4]; //柱子颜色ID
98914
- item.DateTime=date.toString()+" "+item.Time.toString();
98915
98999
 
98916
99000
  var totalVol=item.Vol[0];
98917
99001
  if (IFrameSplitOperator.IsNumber(jsData[5])) totalVol=jsData[5];
@@ -98923,11 +99007,72 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
98923
99007
 
98924
99008
  beforeOpenData.VolMax=max/unit;
98925
99009
  beforeOpenData.VolMin=0;
99010
+
99011
+ if (stockData.beforeinfo && stockData.beforeinfo.TimeConfig) //固定时间
99012
+ MinuteChartContainer.CompleteCallAuctionData(stockData.beforeinfo.TimeConfig, beforeOpenData);
98926
99013
  }
98927
99014
 
98928
99015
  return beforeOpenData;
98929
99016
  }
98930
99017
 
99018
+
99019
+ MinuteChartContainer.CompleteCallAuctionData=function(timeConfig, callAuctionData)
99020
+ {
99021
+ var aryData=MinuteChartContainer.CreateCallAuctionTimeData(timeConfig);
99022
+ if (!IFrameSplitOperator.IsNonEmptyArray(aryData)) return false;
99023
+
99024
+ var mapData=new Map(callAuctionData.Data.map((obj) => [obj.Time, obj]));
99025
+ for(var i=0;i<aryData.length;++i)
99026
+ {
99027
+ var time=aryData[i].Time;
99028
+ if (!mapData.has(time)) continue;
99029
+
99030
+ var item=mapData.get(time);
99031
+ aryData[i]=item;
99032
+ }
99033
+
99034
+ callAuctionData.Data=aryData;
99035
+ callAuctionData.TotalCount=aryData.length;
99036
+
99037
+ return true;
99038
+ }
99039
+
99040
+ //创建集合竞价秒级时间 { AryTime:[ { Start:92500, End:92459, Date:20250101 } ] } hhmmss
99041
+ MinuteChartContainer.CreateCallAuctionTimeData=function(config)
99042
+ {
99043
+ if (!config || !IFrameSplitOperator.IsNonEmptyArray(config.AryTime)) return null;
99044
+
99045
+ var step=1; //1s
99046
+ if (IFrameSplitOperator.IsPlusNumber(config.Step)) step=config.Step;
99047
+ var aryData=[];
99048
+ for(var i=0;i<config.AryTime.length;++i)
99049
+ {
99050
+ var item=config.AryTime[i];
99051
+
99052
+ var value=item.Start;
99053
+ var hour=parseInt(value/10000);
99054
+ var minute=parseInt((value%10000)/100);
99055
+ var second=value%100;
99056
+ var startTime=new Date(2021,5,2, hour,minute, second);
99057
+
99058
+ value=item.End;
99059
+ var hour=parseInt(value/10000);
99060
+ var minute=parseInt((value%10000)/100);
99061
+ var second=value%100;
99062
+ var endTime=new Date(2021,5,2, hour,minute, second);
99063
+
99064
+ for(var j=0; j<5000 && startTime<=endTime; ++j)
99065
+ {
99066
+ var time=startTime.getHours()*10000+startTime.getMinutes()*100+startTime.getSeconds();
99067
+ var secItem={ Time:time, Date:item.Date };
99068
+ aryData.push(secItem);
99069
+ startTime.setSeconds(startTime.getSeconds()+step);
99070
+ }
99071
+ }
99072
+
99073
+ return aryData;
99074
+ }
99075
+
98931
99076
  //收盘集合竞价
98932
99077
  MinuteChartContainer.JsonDataToAfterCloseData=function(data)
98933
99078
  {
@@ -98938,7 +99083,7 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
98938
99083
  if (!stockData.afterinfo) return null;
98939
99084
  var symbol=data.stock[0].symbol;
98940
99085
  var upperSymbol=symbol.toUpperCase();
98941
- var afterCloseData={ Data:[], TotalCount:3*60, Ver:2.0, Date:date };
99086
+ var afterCloseData={ Data:[], TotalCount:3*60, Ver:2.0, Date:date, YClose:stockData.yclose, YClearing:stockData.yclearing };
98942
99087
  var item=stockData.afterinfo;
98943
99088
  if (IFrameSplitOperator.IsNumber(item.totalcount)) afterCloseData.TotalCount=item.totalcount;
98944
99089
  if (IFrameSplitOperator.IsNumber(item.ver)) afterCloseData.Ver=item.ver;
@@ -98968,7 +99113,7 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
98968
99113
  else if (afterCloseData.Ver==2.0)
98969
99114
  {
98970
99115
  var max=0;
98971
- for(var i in stockData.after)
99116
+ for(var i=0; i<stockData.after.length; ++i)
98972
99117
  {
98973
99118
  var item=new AfterCloseData();
98974
99119
  var jsData=stockData.after[i];
@@ -98991,6 +99136,9 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
98991
99136
 
98992
99137
  afterCloseData.VolMax=max/unit;
98993
99138
  afterCloseData.VolMin=0;
99139
+
99140
+ if (stockData.afterinfo && stockData.afterinfo.TimeConfig) //固定时间
99141
+ MinuteChartContainer.CompleteCallAuctionData(stockData.afterinfo.TimeConfig, afterCloseData);
98994
99142
  }
98995
99143
  else if (afterCloseData.Ver==3.0)
98996
99144
  {
@@ -99018,6 +99166,9 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
99018
99166
 
99019
99167
  afterCloseData.VolMax=max/unit;
99020
99168
  afterCloseData.VolMin=0;
99169
+
99170
+ if (stockData.afterinfo && stockData.afterinfo.TimeConfig) //固定时间
99171
+ MinuteChartContainer.CompleteCallAuctionData(stockData.afterinfo.TimeConfig, afterCloseData);
99021
99172
  }
99022
99173
 
99023
99174
  return afterCloseData;
@@ -99139,12 +99290,13 @@ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
99139
99290
 
99140
99291
  item.DateTime=`${item.Date} ${item.Time}`;
99141
99292
 
99142
- if (IFrameSplitOperator.IsNumber(minuteData.YClose) && item.Close)
99143
- item.Increase=(item.Close-minuteData.YClose)/minuteData.YClose*100; //涨幅 (最新价格-昨收)/昨收*100;
99144
-
99145
- if (isFutures && minuteData.YClearing && item.Close)
99146
- item.Increase=(item.Close-minuteData.YClearing)/minuteData.YClearing*100; //涨幅 (最新价格-昨结算价)/昨结算价*100;
99147
-
99293
+ if (!IFrameSplitOperator.IsNumber(item.Increase) && IFrameSplitOperator.IsNumber(minuteData.YClose) && item.Close)
99294
+ {
99295
+ if (isFutures && minuteData.YClearing && item.Close)
99296
+ item.Increase=(item.Close-minuteData.YClearing)/minuteData.YClearing*100; //涨幅 (最新价格-昨结算价)/昨结算价*100;
99297
+ else
99298
+ item.Increase=(item.Close-minuteData.YClose)/minuteData.YClose*100; //涨幅 (最新价格-昨收)/昨收*100;
99299
+ }
99148
99300
 
99149
99301
  minuteData.Data.push(item);
99150
99302
  }
@@ -99308,8 +99460,9 @@ MinuteChartContainer.JsonDataToHistoryMinuteLineColorData=function(data)
99308
99460
  }
99309
99461
 
99310
99462
 
99311
- MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, isBeforeOpen, symbol)
99463
+ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, isBeforeOpen, symbol, dataInfo)
99312
99464
  {
99465
+ if (!IFrameSplitOperator.IsNonEmptyArray(data)) return;
99313
99466
  var upperSymbol=symbol?symbol.toUpperCase():null;
99314
99467
  var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
99315
99468
 
@@ -99320,7 +99473,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
99320
99473
  if (callAuctionData.Ver==1.0)
99321
99474
  {
99322
99475
  var preClose=null;
99323
- for(var i in data)
99476
+ for(var i=0; i<data.length; ++i)
99324
99477
  {
99325
99478
  var item=isBeforeOpen? new BeforeOpenData() : new AfterCloseData();
99326
99479
  var jsData=data[i];
@@ -99344,7 +99497,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
99344
99497
  else if (callAuctionData.Ver==2.0)
99345
99498
  {
99346
99499
  var max=0;
99347
- for(var i in data)
99500
+ for(var i=0; i<data.length; ++i)
99348
99501
  {
99349
99502
  var item=isBeforeOpen? new BeforeOpenData() : new AfterCloseData();
99350
99503
  var jsData=data[i];
@@ -99356,7 +99509,6 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
99356
99509
  item.Vol[0]=jsData[2]; //匹配量
99357
99510
  item.Vol[1]=jsData[3]; //未匹配量
99358
99511
  item.ColorID=jsData[4]; //柱子颜色ID
99359
- item.DateTime=date.toString()+" "+item.Time.toString();
99360
99512
 
99361
99513
  var totalVol=item.Vol[0]+item.Vol[1];
99362
99514
  if (IFrameSplitOperator.IsNumber(jsData[5])) totalVol=jsData[5];
@@ -99368,6 +99520,9 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
99368
99520
 
99369
99521
  callAuctionData.VolMax=max/unit;
99370
99522
  callAuctionData.VolMin=0;
99523
+
99524
+ if (dataInfo && dataInfo.TimeConfig) //固定时间
99525
+ MinuteChartContainer.CompleteCallAuctionData(dataInfo.TimeConfig, callAuctionData);
99371
99526
  }
99372
99527
  else if (beforeOpenData.Ver==3.0)
99373
99528
  {
@@ -99384,7 +99539,6 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
99384
99539
  item.AvPrice=jsData[2]; //均价
99385
99540
  item.Vol[0]=jsData[3]; //匹配量
99386
99541
  item.ColorID=jsData[4]; //柱子颜色ID
99387
- item.DateTime=date.toString()+" "+item.Time.toString();
99388
99542
 
99389
99543
  var totalVol=item.Vol[0];
99390
99544
  if (IFrameSplitOperator.IsNumber(jsData[5])) totalVol=jsData[5];
@@ -99396,6 +99550,9 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
99396
99550
 
99397
99551
  callAuctionData.VolMax=max/unit;
99398
99552
  callAuctionData.VolMin=0;
99553
+
99554
+ if (dataInfo && dataInfo.TimeConfig) //固定时间
99555
+ MinuteChartContainer.CompleteCallAuctionData(dataInfo.TimeConfig, callAuctionData);
99399
99556
  }
99400
99557
  }
99401
99558
 
@@ -99404,7 +99561,7 @@ MinuteChartContainer.JosnDataToBeforeOpenDataArray=function(data)
99404
99561
  if (!data || !data.data) return null;
99405
99562
 
99406
99563
  var aryDay=[];
99407
- for(var i in data.data)
99564
+ for(var i=0; i<data.data.length; ++i)
99408
99565
  {
99409
99566
  var dayItem=data.data[i];
99410
99567
  var beforeOpenData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose, YClearing:dayItem.YClearing };
@@ -99414,7 +99571,7 @@ MinuteChartContainer.JosnDataToBeforeOpenDataArray=function(data)
99414
99571
  if (IFrameSplitOperator.IsNumber(dayItem.beforeinfo.ver)) beforeOpenData.Ver=dayItem.beforeinfo.ver;
99415
99572
  }
99416
99573
 
99417
- MinuteChartContainer.JsonDataToCallAuctionItem(dayItem.before, beforeOpenData, true, data.symbol);
99574
+ MinuteChartContainer.JsonDataToCallAuctionItem(dayItem.before, beforeOpenData, true, data.symbol, dayItem.beforeinfo);
99418
99575
 
99419
99576
  aryDay.push(beforeOpenData);
99420
99577
  }
@@ -99429,7 +99586,7 @@ MinuteChartContainer.JosnDataToAfterCloseDataArray=function(data)
99429
99586
  if (!data || !data.data) return null;
99430
99587
 
99431
99588
  var aryDay=[];
99432
- for(var i in data.data)
99589
+ for(var i=0; i<data.data.length; ++i)
99433
99590
  {
99434
99591
  var dayItem=data.data[i];
99435
99592
  var afterCloseData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose, YClearing:dayItem.YClearing };
@@ -99440,7 +99597,7 @@ MinuteChartContainer.JosnDataToAfterCloseDataArray=function(data)
99440
99597
  if (IFrameSplitOperator.IsNumber(dayItem.afterinfo.ver)) afterCloseData.Ver=dayItem.afterinfo.ver;
99441
99598
  }
99442
99599
 
99443
- MinuteChartContainer.JsonDataToCallAuctionItem(dayItem.after, afterCloseData, false, data.symbol);
99600
+ MinuteChartContainer.JsonDataToCallAuctionItem(dayItem.after, afterCloseData, false, data.symbol, dayItem.afterinfo);
99444
99601
 
99445
99602
  aryDay.push(afterCloseData);
99446
99603
  }
@@ -162614,7 +162771,7 @@ function HQChartScriptWorker()
162614
162771
 
162615
162772
 
162616
162773
 
162617
- var HQCHART_VERSION="1.1.14946";
162774
+ var HQCHART_VERSION="1.1.14952";
162618
162775
 
162619
162776
  function PrintHQChartVersion()
162620
162777
  {