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.
@@ -15870,7 +15870,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
15870
15870
  {
15871
15871
  //清空当前鼠标坐标
15872
15872
  this.LastPoint.X=null;
15873
- this.LastPoint.Y=null
15873
+ this.LastPoint.Y=null;
15874
15874
  this.HideTooltip();
15875
15875
  this.CloseTooltipDialog();
15876
15876
  }
@@ -15879,7 +15879,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
15879
15879
  if (IFrameSplitOperator.IsNumber(data.X) && IFrameSplitOperator.IsNumber(data.Y))
15880
15880
  {
15881
15881
  //设置鼠标位置
15882
- if (this.LastPoint && !IFrameSplitOperator.IsNumber(this.LastPoint.X) && !IFrameSplitOperator.IsNumber(this.LastPoint.Y))
15882
+ if (this.LastPoint && (!IFrameSplitOperator.IsNumber(this.LastPoint.X) || !IFrameSplitOperator.IsNumber(this.LastPoint.Y)))
15883
15883
  {
15884
15884
  this.LastPoint.X=data.X;
15885
15885
  this.LastPoint.Y=data.Y;
@@ -39420,10 +39420,10 @@ function ChartMinuteVolumBar()
39420
39420
  var unit=this.GetVolUnit();
39421
39421
  if (callAutionData.Ver==1.0)
39422
39422
  {
39423
- for(var i in callAutionData.Data)
39423
+ for(var i=0;i<callAutionData.Data.length;++i)
39424
39424
  {
39425
39425
  var item=callAutionData.Data[i];
39426
- if (!item || !IFrameSplitOperator.IsNumber(item.Vol[0])) continue;
39426
+ if (!item || !IFrameSplitOperator.IsNonEmptyArray(item.Vol) || !IFrameSplitOperator.IsNumber(item.Vol[0])) continue;
39427
39427
 
39428
39428
  if (isBeforeOpen)
39429
39429
  {
@@ -39457,11 +39457,11 @@ function ChartMinuteVolumBar()
39457
39457
  {
39458
39458
  var range={ Max: callAutionData.VolMax, Min:callAutionData.VolMin }
39459
39459
 
39460
- for(var i in callAutionData.Data)
39460
+ for(var i=0; i<callAutionData.Data.length; ++i)
39461
39461
  {
39462
39462
  var item=callAutionData.Data[i];
39463
39463
  if (!item) continue;
39464
- if (IFrameSplitOperator.IsPlusNumber(item.Vol[0]))
39464
+ if (item.Vol && IFrameSplitOperator.IsPlusNumber(item.Vol[0]))
39465
39465
  {
39466
39466
  if (isBeforeOpen)
39467
39467
  {
@@ -39491,7 +39491,7 @@ function ChartMinuteVolumBar()
39491
39491
  this.Canvas.stroke();
39492
39492
  }
39493
39493
 
39494
- if (IFrameSplitOperator.IsPlusNumber(item.Vol[1]))
39494
+ if (item.Vol && IFrameSplitOperator.IsPlusNumber(item.Vol[1]))
39495
39495
  {
39496
39496
  if (isBeforeOpen)
39497
39497
  {
@@ -44471,16 +44471,23 @@ function ChartMinutePriceLine()
44471
44471
  var item=callAutionData.Data[i];
44472
44472
  if (!item || !IFrameSplitOperator.IsNumber(item.Price))
44473
44473
  {
44474
- if (i==0 && isBeforeOpen && IFrameSplitOperator.IsNumber(this.YClose))
44474
+ if (i==0 && isBeforeOpen)
44475
44475
  {
44476
- var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);
44477
- var y=this.ChartFrame.GetLeftExtendYFromData(this.YClose);
44476
+ //盘前集合竞价起始点为昨收或昨结算
44477
+ var price=callAutionData.YClose;
44478
+ if (IFrameSplitOperator.IsNumber(callAutionData.YClearing)) price=callAutionData.YClearing;
44478
44479
 
44479
- this.Canvas.strokeStyle=this.BeforeLineColor;
44480
- this.Canvas.beginPath();
44481
- if (isHScreen) this.Canvas.moveTo(y,x);
44482
- else this.Canvas.moveTo(x,y);
44483
- bFirstPoint=false;
44480
+ if (IFrameSplitOperator.IsNumber(price))
44481
+ {
44482
+ var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);
44483
+ var y=this.ChartFrame.GetLeftExtendYFromData(price);
44484
+
44485
+ this.Canvas.strokeStyle=this.BeforeLineColor;
44486
+ this.Canvas.beginPath();
44487
+ if (isHScreen) this.Canvas.moveTo(y,x);
44488
+ else this.Canvas.moveTo(x,y);
44489
+ bFirstPoint=false;
44490
+ }
44484
44491
  }
44485
44492
 
44486
44493
  continue;
@@ -96649,6 +96656,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96649
96656
  //更新最新的几条数据
96650
96657
  this.UpdateLatestMinuteDataV2=function(minuteData)
96651
96658
  {
96659
+ if (!minuteData || !IFrameSplitOperator.IsNonEmptyArray(minuteData.Data)) return;
96660
+
96652
96661
  if (this.DayCount>1)
96653
96662
  {
96654
96663
  if (!this.DayData) return;
@@ -96657,7 +96666,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96657
96666
  for(var i=0; i<this.DayData.length; ++i)
96658
96667
  {
96659
96668
  var item=this.DayData[i];
96660
- if (item.Date===date)
96669
+ if (item.Date===minuteData.Date)
96661
96670
  {
96662
96671
  findItem=item;
96663
96672
  break;
@@ -96843,24 +96852,50 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96843
96852
  this.ColorLineData=aryColorLineData;
96844
96853
  }
96845
96854
 
96846
- this.UpdateCallCationData=function(beforeOpenData,afterCloseData)
96855
+ this.UpdateCallCationData=function(beforeOpenData,afterCloseData,option)
96847
96856
  {
96848
- if (beforeOpenData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData))
96857
+ var dataType=0;
96858
+ if (option && IFrameSplitOperator.IsNumber(option.DataType)) dataType=option.DataType;
96859
+
96860
+ if (dataType==1)
96849
96861
  {
96850
- var lastItem=this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1];
96851
- if (lastItem.Date==beforeOpenData.Date) //存在更新
96852
- this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1]=beforeOpenData;
96853
- else if (lastItem.Date<beforeOpenData.Date) //新的一天插入
96854
- this.MultiDayBeforeOpenData.push(beforeOpenData);
96855
- }
96862
+ if (beforeOpenData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData))
96863
+ {
96864
+ var lastItem=this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1];
96865
+ if (lastItem.Date==beforeOpenData.Date) //增量更新
96866
+ {
96867
+ this.UpdateLatestCallCationData(lastItem, beforeOpenData);
96868
+ }
96869
+ }
96856
96870
 
96857
- if (afterCloseData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData))
96871
+ if (afterCloseData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData))
96872
+ {
96873
+ var lastItem=this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1];
96874
+ if (lastItem.Date==afterCloseData.Date) //增量更新
96875
+ {
96876
+ this.UpdateLatestCallCationData(lastItem, afterCloseData);
96877
+ }
96878
+ }
96879
+ }
96880
+ else
96858
96881
  {
96859
- var lastItem=this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1];
96860
- if (lastItem.Date==afterCloseData.Date)
96861
- this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1]=afterCloseData;
96862
- else if (lastItem.Date<afterCloseData.Date)
96863
- this.MultiDayAfterCloseData.push(afterCloseData);
96882
+ if (beforeOpenData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData))
96883
+ {
96884
+ var lastItem=this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1];
96885
+ if (lastItem.Date==beforeOpenData.Date) //存在更新
96886
+ this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1]=beforeOpenData;
96887
+ else if (lastItem.Date<beforeOpenData.Date) //新的一天插入
96888
+ this.MultiDayBeforeOpenData.push(beforeOpenData);
96889
+ }
96890
+
96891
+ if (afterCloseData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData))
96892
+ {
96893
+ var lastItem=this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1];
96894
+ if (lastItem.Date==afterCloseData.Date)
96895
+ this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1]=afterCloseData;
96896
+ else if (lastItem.Date<afterCloseData.Date)
96897
+ this.MultiDayAfterCloseData.push(afterCloseData);
96898
+ }
96864
96899
  }
96865
96900
 
96866
96901
  this.CaclutateCallCationYRange();
@@ -96876,9 +96911,16 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96876
96911
  var afterCloseData=MinuteChartContainer.JsonDataToAfterCloseData(data);
96877
96912
  var updateTime=MinuteChartContainer.JsonDataToMinuteLastUpdateTime(data); //数据最后的更新时间
96878
96913
 
96914
+ if (data.LatestPointFlash) //最新数据闪烁
96915
+ {
96916
+ var item=data.LatestPointFlash;
96917
+ if (IFrameSplitOperator.IsNumber(item.FlashCount))
96918
+ this.SetLatestPointFlash(item.FlashCount)
96919
+ }
96920
+
96879
96921
  if (this.DayCount>1) //多日走势图
96880
96922
  {
96881
- this.UpdateCallCationData(beforeOpenData,afterCloseData);
96923
+ this.UpdateCallCationData(beforeOpenData,afterCloseData, { DataType:1});
96882
96924
  this.UpdateLineColorData(aryColorData,minuteData.date);
96883
96925
  this.UpdateLatestMinuteDataV2(minuteData);
96884
96926
  this.UpdateHistoryMinuteUI(updateTime);
@@ -96890,10 +96932,13 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96890
96932
  return;
96891
96933
  }
96892
96934
 
96893
- if (this.IsBeforeData && beforeOpenData) this.BeforeOpenData=beforeOpenData;
96894
- if (this.IsAfterData && afterCloseData) this.AfterCloseData=afterCloseData;
96935
+ //if (this.IsBeforeData && beforeOpenData) this.BeforeOpenData=beforeOpenData;
96936
+ //if (this.IsAfterData && afterCloseData) this.AfterCloseData=afterCloseData;
96937
+
96938
+ //盘前盘后数据更新
96939
+ if (this.IsBeforeData && beforeOpenData) this.UpdateLatestCallCationData(this.BeforeOpenData, beforeOpenData);
96940
+ if (this.IsAfterData && afterCloseData) this.UpdateLatestCallCationData(this.AfterCloseData, afterCloseData);
96895
96941
 
96896
- //原始数据
96897
96942
  this.UpdateLatestMinuteDataV2(minuteData);
96898
96943
  this.UpdateMinuteUI(data.stock[0], {FunctionName:"RecvUpdateMinuteData"});
96899
96944
 
@@ -96908,6 +96953,45 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96908
96953
  }
96909
96954
  }
96910
96955
 
96956
+ this.UpdateLatestCallCationData=function(destData, updateData)
96957
+ {
96958
+ if (!destData) return;
96959
+ if (!updateData || !IFrameSplitOperator.IsNonEmptyArray(updateData.Data)) return;
96960
+
96961
+ if (destData.Data.length==0)
96962
+ {
96963
+ destData.Data=updateData.Data;
96964
+ destData.VolMax=updateData.VolMax;
96965
+ destData.VolMin=updateData.VolMin;
96966
+ return;
96967
+ }
96968
+
96969
+ //覆盖历史数据
96970
+ var mapData=new Map(updateData.Data.map((obj) => [obj.Time, obj]));
96971
+ var lastTime=null; //最后的时间
96972
+ for(var i=0;i<destData.Data.length;++i)
96973
+ {
96974
+ var item=destData.Data[i];
96975
+ lastTime=item.Time;
96976
+ if (!mapData.has(item.Time)) continue;
96977
+ var newItem=mapData.get(item.Time);
96978
+ if (!newItem || !IFrameSplitOperator.IsNumber(newItem.Price)) continue; //只覆盖有效数据
96979
+
96980
+ destData.Data[i]=newItem;
96981
+ }
96982
+
96983
+ //新数据往后插
96984
+ for(var i=0;i<updateData.Data.length;++i)
96985
+ {
96986
+ var item=updateData.Data[i];
96987
+ if (item.Time<=lastTime) continue;
96988
+ destData.Data.push(item);
96989
+ }
96990
+
96991
+ if (destData.VolMax<updateData.VolMax) destData.VolMax=updateData.VolMax;
96992
+ if (IFrameSplitOperator.IsNumber(updateData.TotalCount) && updateData.TotalCount>destData.TotalCount) updateData.TotalCount=destData.TotalCount;
96993
+ }
96994
+
96911
96995
  this.RecvBuySellData=function(data)
96912
96996
  {
96913
96997
  if (!data) return;
@@ -96974,7 +97058,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96974
97058
 
96975
97059
  if (this.DayCount>1) //多日走势图
96976
97060
  {
96977
- this.UpdateCallCationData(beforeOpenData,afterCloseData);
97061
+ this.UpdateCallCationData(beforeOpenData,afterCloseData, { DataType:0});
96978
97062
  this.UpdateLineColorData(aryColorData,data.stock[0].date);
96979
97063
  this.UpdateLatestMinuteData(aryMinuteData, data.stock[0].date, data.stock[0]);
96980
97064
  this.UpdateTradeStatusData(data.TradeStatus);
@@ -98791,7 +98875,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
98791
98875
  var preClose=data.stock[0].yclose; //前一个数据价格
98792
98876
  var stockData=data.stock[0];
98793
98877
  var date=stockData.date; //日期
98794
- var beforeOpenData={ Data:[], TotalCount:15, Ver:1.0, Date:date };
98878
+ var beforeOpenData={ Data:[], TotalCount:15, Ver:1.0, Date:date, YClose:stockData.yclose, YClearing:stockData.yclearing };
98795
98879
  var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_BEFOREOPEN_EXTENDDATA; //扩展数据序号
98796
98880
  if (stockData.beforeinfo)
98797
98881
  {
@@ -98827,7 +98911,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
98827
98911
  else if (beforeOpenData.Ver==2.0)
98828
98912
  {
98829
98913
  var max=0;
98830
- for(var i in stockData.before)
98914
+ for(var i=0;i<stockData.before.length;++i)
98831
98915
  {
98832
98916
  var item=new BeforeOpenData();
98833
98917
  var jsData=stockData.before[i];
@@ -98839,7 +98923,6 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
98839
98923
  item.Vol[1]=jsData[3]; //未匹配量
98840
98924
  item.ColorID=jsData[4]; //柱子颜色ID
98841
98925
  if (IFrameSplitOperator.IsNumber(jsData[6])) item.Date=jsData[6] //日期
98842
- item.DateTime=`${item.Date} ${item.Time})`;
98843
98926
 
98844
98927
  var totalVol=item.Vol[0]+item.Vol[1];
98845
98928
  if (IFrameSplitOperator.IsNumber(jsData[5])) totalVol=jsData[5];
@@ -98851,12 +98934,14 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
98851
98934
 
98852
98935
  beforeOpenData.VolMax=max/unit;
98853
98936
  beforeOpenData.VolMin=0;
98937
+
98938
+ if (stockData.beforeinfo && stockData.beforeinfo.TimeConfig) //固定时间
98939
+ MinuteChartContainer.CompleteCallAuctionData(stockData.beforeinfo.TimeConfig, beforeOpenData);
98854
98940
  }
98855
98941
  else if (beforeOpenData.Ver==3.0)
98856
98942
  {
98857
98943
  var max=0;
98858
-
98859
- for(var i in stockData.before)
98944
+ for(var i=0; i<stockData.before.length; ++i)
98860
98945
  {
98861
98946
  var item=new BeforeOpenData();
98862
98947
  var jsData=stockData.before[i];
@@ -98867,7 +98952,6 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
98867
98952
  item.AvPrice=jsData[2]; //均价
98868
98953
  item.Vol[0]=jsData[3]; //匹配量
98869
98954
  item.ColorID=jsData[4]; //柱子颜色ID
98870
- item.DateTime=date.toString()+" "+item.Time.toString();
98871
98955
 
98872
98956
  var totalVol=item.Vol[0];
98873
98957
  if (IFrameSplitOperator.IsNumber(jsData[5])) totalVol=jsData[5];
@@ -98879,11 +98963,72 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
98879
98963
 
98880
98964
  beforeOpenData.VolMax=max/unit;
98881
98965
  beforeOpenData.VolMin=0;
98966
+
98967
+ if (stockData.beforeinfo && stockData.beforeinfo.TimeConfig) //固定时间
98968
+ MinuteChartContainer.CompleteCallAuctionData(stockData.beforeinfo.TimeConfig, beforeOpenData);
98882
98969
  }
98883
98970
 
98884
98971
  return beforeOpenData;
98885
98972
  }
98886
98973
 
98974
+
98975
+ MinuteChartContainer.CompleteCallAuctionData=function(timeConfig, callAuctionData)
98976
+ {
98977
+ var aryData=MinuteChartContainer.CreateCallAuctionTimeData(timeConfig);
98978
+ if (!IFrameSplitOperator.IsNonEmptyArray(aryData)) return false;
98979
+
98980
+ var mapData=new Map(callAuctionData.Data.map((obj) => [obj.Time, obj]));
98981
+ for(var i=0;i<aryData.length;++i)
98982
+ {
98983
+ var time=aryData[i].Time;
98984
+ if (!mapData.has(time)) continue;
98985
+
98986
+ var item=mapData.get(time);
98987
+ aryData[i]=item;
98988
+ }
98989
+
98990
+ callAuctionData.Data=aryData;
98991
+ callAuctionData.TotalCount=aryData.length;
98992
+
98993
+ return true;
98994
+ }
98995
+
98996
+ //创建集合竞价秒级时间 { AryTime:[ { Start:92500, End:92459, Date:20250101 } ] } hhmmss
98997
+ MinuteChartContainer.CreateCallAuctionTimeData=function(config)
98998
+ {
98999
+ if (!config || !IFrameSplitOperator.IsNonEmptyArray(config.AryTime)) return null;
99000
+
99001
+ var step=1; //1s
99002
+ if (IFrameSplitOperator.IsPlusNumber(config.Step)) step=config.Step;
99003
+ var aryData=[];
99004
+ for(var i=0;i<config.AryTime.length;++i)
99005
+ {
99006
+ var item=config.AryTime[i];
99007
+
99008
+ var value=item.Start;
99009
+ var hour=parseInt(value/10000);
99010
+ var minute=parseInt((value%10000)/100);
99011
+ var second=value%100;
99012
+ var startTime=new Date(2021,5,2, hour,minute, second);
99013
+
99014
+ value=item.End;
99015
+ var hour=parseInt(value/10000);
99016
+ var minute=parseInt((value%10000)/100);
99017
+ var second=value%100;
99018
+ var endTime=new Date(2021,5,2, hour,minute, second);
99019
+
99020
+ for(var j=0; j<5000 && startTime<=endTime; ++j)
99021
+ {
99022
+ var time=startTime.getHours()*10000+startTime.getMinutes()*100+startTime.getSeconds();
99023
+ var secItem={ Time:time, Date:item.Date };
99024
+ aryData.push(secItem);
99025
+ startTime.setSeconds(startTime.getSeconds()+step);
99026
+ }
99027
+ }
99028
+
99029
+ return aryData;
99030
+ }
99031
+
98887
99032
  //收盘集合竞价
98888
99033
  MinuteChartContainer.JsonDataToAfterCloseData=function(data)
98889
99034
  {
@@ -98894,7 +99039,7 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
98894
99039
  if (!stockData.afterinfo) return null;
98895
99040
  var symbol=data.stock[0].symbol;
98896
99041
  var upperSymbol=symbol.toUpperCase();
98897
- var afterCloseData={ Data:[], TotalCount:3*60, Ver:2.0, Date:date };
99042
+ var afterCloseData={ Data:[], TotalCount:3*60, Ver:2.0, Date:date, YClose:stockData.yclose, YClearing:stockData.yclearing };
98898
99043
  var item=stockData.afterinfo;
98899
99044
  if (IFrameSplitOperator.IsNumber(item.totalcount)) afterCloseData.TotalCount=item.totalcount;
98900
99045
  if (IFrameSplitOperator.IsNumber(item.ver)) afterCloseData.Ver=item.ver;
@@ -98924,7 +99069,7 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
98924
99069
  else if (afterCloseData.Ver==2.0)
98925
99070
  {
98926
99071
  var max=0;
98927
- for(var i in stockData.after)
99072
+ for(var i=0; i<stockData.after.length; ++i)
98928
99073
  {
98929
99074
  var item=new AfterCloseData();
98930
99075
  var jsData=stockData.after[i];
@@ -98947,6 +99092,9 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
98947
99092
 
98948
99093
  afterCloseData.VolMax=max/unit;
98949
99094
  afterCloseData.VolMin=0;
99095
+
99096
+ if (stockData.afterinfo && stockData.afterinfo.TimeConfig) //固定时间
99097
+ MinuteChartContainer.CompleteCallAuctionData(stockData.afterinfo.TimeConfig, afterCloseData);
98950
99098
  }
98951
99099
  else if (afterCloseData.Ver==3.0)
98952
99100
  {
@@ -98974,6 +99122,9 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
98974
99122
 
98975
99123
  afterCloseData.VolMax=max/unit;
98976
99124
  afterCloseData.VolMin=0;
99125
+
99126
+ if (stockData.afterinfo && stockData.afterinfo.TimeConfig) //固定时间
99127
+ MinuteChartContainer.CompleteCallAuctionData(stockData.afterinfo.TimeConfig, afterCloseData);
98977
99128
  }
98978
99129
 
98979
99130
  return afterCloseData;
@@ -99095,12 +99246,13 @@ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
99095
99246
 
99096
99247
  item.DateTime=`${item.Date} ${item.Time}`;
99097
99248
 
99098
- if (IFrameSplitOperator.IsNumber(minuteData.YClose) && item.Close)
99099
- item.Increase=(item.Close-minuteData.YClose)/minuteData.YClose*100; //涨幅 (最新价格-昨收)/昨收*100;
99100
-
99101
- if (isFutures && minuteData.YClearing && item.Close)
99102
- item.Increase=(item.Close-minuteData.YClearing)/minuteData.YClearing*100; //涨幅 (最新价格-昨结算价)/昨结算价*100;
99103
-
99249
+ if (!IFrameSplitOperator.IsNumber(item.Increase) && IFrameSplitOperator.IsNumber(minuteData.YClose) && item.Close)
99250
+ {
99251
+ if (isFutures && minuteData.YClearing && item.Close)
99252
+ item.Increase=(item.Close-minuteData.YClearing)/minuteData.YClearing*100; //涨幅 (最新价格-昨结算价)/昨结算价*100;
99253
+ else
99254
+ item.Increase=(item.Close-minuteData.YClose)/minuteData.YClose*100; //涨幅 (最新价格-昨收)/昨收*100;
99255
+ }
99104
99256
 
99105
99257
  minuteData.Data.push(item);
99106
99258
  }
@@ -99264,8 +99416,9 @@ MinuteChartContainer.JsonDataToHistoryMinuteLineColorData=function(data)
99264
99416
  }
99265
99417
 
99266
99418
 
99267
- MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, isBeforeOpen, symbol)
99419
+ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, isBeforeOpen, symbol, dataInfo)
99268
99420
  {
99421
+ if (!IFrameSplitOperator.IsNonEmptyArray(data)) return;
99269
99422
  var upperSymbol=symbol?symbol.toUpperCase():null;
99270
99423
  var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
99271
99424
 
@@ -99276,7 +99429,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
99276
99429
  if (callAuctionData.Ver==1.0)
99277
99430
  {
99278
99431
  var preClose=null;
99279
- for(var i in data)
99432
+ for(var i=0; i<data.length; ++i)
99280
99433
  {
99281
99434
  var item=isBeforeOpen? new BeforeOpenData() : new AfterCloseData();
99282
99435
  var jsData=data[i];
@@ -99300,7 +99453,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
99300
99453
  else if (callAuctionData.Ver==2.0)
99301
99454
  {
99302
99455
  var max=0;
99303
- for(var i in data)
99456
+ for(var i=0; i<data.length; ++i)
99304
99457
  {
99305
99458
  var item=isBeforeOpen? new BeforeOpenData() : new AfterCloseData();
99306
99459
  var jsData=data[i];
@@ -99312,7 +99465,6 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
99312
99465
  item.Vol[0]=jsData[2]; //匹配量
99313
99466
  item.Vol[1]=jsData[3]; //未匹配量
99314
99467
  item.ColorID=jsData[4]; //柱子颜色ID
99315
- item.DateTime=date.toString()+" "+item.Time.toString();
99316
99468
 
99317
99469
  var totalVol=item.Vol[0]+item.Vol[1];
99318
99470
  if (IFrameSplitOperator.IsNumber(jsData[5])) totalVol=jsData[5];
@@ -99324,6 +99476,9 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
99324
99476
 
99325
99477
  callAuctionData.VolMax=max/unit;
99326
99478
  callAuctionData.VolMin=0;
99479
+
99480
+ if (dataInfo && dataInfo.TimeConfig) //固定时间
99481
+ MinuteChartContainer.CompleteCallAuctionData(dataInfo.TimeConfig, callAuctionData);
99327
99482
  }
99328
99483
  else if (beforeOpenData.Ver==3.0)
99329
99484
  {
@@ -99340,7 +99495,6 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
99340
99495
  item.AvPrice=jsData[2]; //均价
99341
99496
  item.Vol[0]=jsData[3]; //匹配量
99342
99497
  item.ColorID=jsData[4]; //柱子颜色ID
99343
- item.DateTime=date.toString()+" "+item.Time.toString();
99344
99498
 
99345
99499
  var totalVol=item.Vol[0];
99346
99500
  if (IFrameSplitOperator.IsNumber(jsData[5])) totalVol=jsData[5];
@@ -99352,6 +99506,9 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
99352
99506
 
99353
99507
  callAuctionData.VolMax=max/unit;
99354
99508
  callAuctionData.VolMin=0;
99509
+
99510
+ if (dataInfo && dataInfo.TimeConfig) //固定时间
99511
+ MinuteChartContainer.CompleteCallAuctionData(dataInfo.TimeConfig, callAuctionData);
99355
99512
  }
99356
99513
  }
99357
99514
 
@@ -99360,7 +99517,7 @@ MinuteChartContainer.JosnDataToBeforeOpenDataArray=function(data)
99360
99517
  if (!data || !data.data) return null;
99361
99518
 
99362
99519
  var aryDay=[];
99363
- for(var i in data.data)
99520
+ for(var i=0; i<data.data.length; ++i)
99364
99521
  {
99365
99522
  var dayItem=data.data[i];
99366
99523
  var beforeOpenData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose, YClearing:dayItem.YClearing };
@@ -99370,7 +99527,7 @@ MinuteChartContainer.JosnDataToBeforeOpenDataArray=function(data)
99370
99527
  if (IFrameSplitOperator.IsNumber(dayItem.beforeinfo.ver)) beforeOpenData.Ver=dayItem.beforeinfo.ver;
99371
99528
  }
99372
99529
 
99373
- MinuteChartContainer.JsonDataToCallAuctionItem(dayItem.before, beforeOpenData, true, data.symbol);
99530
+ MinuteChartContainer.JsonDataToCallAuctionItem(dayItem.before, beforeOpenData, true, data.symbol, dayItem.beforeinfo);
99374
99531
 
99375
99532
  aryDay.push(beforeOpenData);
99376
99533
  }
@@ -99385,7 +99542,7 @@ MinuteChartContainer.JosnDataToAfterCloseDataArray=function(data)
99385
99542
  if (!data || !data.data) return null;
99386
99543
 
99387
99544
  var aryDay=[];
99388
- for(var i in data.data)
99545
+ for(var i=0; i<data.data.length; ++i)
99389
99546
  {
99390
99547
  var dayItem=data.data[i];
99391
99548
  var afterCloseData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose, YClearing:dayItem.YClearing };
@@ -99396,7 +99553,7 @@ MinuteChartContainer.JosnDataToAfterCloseDataArray=function(data)
99396
99553
  if (IFrameSplitOperator.IsNumber(dayItem.afterinfo.ver)) afterCloseData.Ver=dayItem.afterinfo.ver;
99397
99554
  }
99398
99555
 
99399
- MinuteChartContainer.JsonDataToCallAuctionItem(dayItem.after, afterCloseData, false, data.symbol);
99556
+ MinuteChartContainer.JsonDataToCallAuctionItem(dayItem.after, afterCloseData, false, data.symbol, dayItem.afterinfo);
99400
99557
 
99401
99558
  aryDay.push(afterCloseData);
99402
99559
  }
@@ -151239,7 +151396,7 @@ function ScrollBarBGChart()
151239
151396
 
151240
151397
 
151241
151398
 
151242
- var HQCHART_VERSION="1.1.14946";
151399
+ var HQCHART_VERSION="1.1.14952";
151243
151400
 
151244
151401
  function PrintHQChartVersion()
151245
151402
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.14946";
8
+ var HQCHART_VERSION="1.1.14952";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {