hqchart 1.1.14734 → 1.1.14746

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.
@@ -7080,6 +7080,18 @@ var JSCHART_MENU_ID=
7080
7080
  CMD_REPORT_CHANGE_COLUMN_ID:105, //报价列表 切换列 Arg[Column, ]
7081
7081
  }
7082
7082
 
7083
+ var JSCHART_TRADE_STATUS_ID=
7084
+ {
7085
+ START_ID:1000, //8:45~9:15
7086
+ BEFORE_OPEN_ID:2000, //9:15~9:25 是开盘集合竞价阶段
7087
+ TRADE_ID:3000, //9:25~14:57 是连续竞价阶段
7088
+ AFTER_CLOSE_ID:4000, //14:57~15:00 是收盘集合竞价阶段
7089
+ CLOSE_ID:5000, //15:00 后,首先发 CLOSE 标志
7090
+ ENDTR_ID:6000, //交易结束
7091
+ //上面状态个位数 是停牌状态 如3001 连续交易时间段停牌
7092
+ SUSP_ID:1, //停牌
7093
+ }
7094
+
7083
7095
 
7084
7096
  function PhoneDBClick()
7085
7097
  {
@@ -7296,6 +7308,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7296
7308
 
7297
7309
  //图形中的单元选中状态
7298
7310
  MapIndexChartCache:new Map(), //key 指标GUID
7311
+
7312
+ TradeStatus:null, //当前交易状态 { Date, Time:数据最后更新的时间, Status: }
7299
7313
  };
7300
7314
 
7301
7315
  this.VerticalDrag; //通过X轴左右拖动数据(手势才有)
@@ -10330,7 +10344,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10330
10344
 
10331
10345
  var bDrawDialogTooltip=false;
10332
10346
  var ptPosition=null; //鼠标位置 null 无效 -1 在外面 >=0 对应的指标窗口中ID
10333
- var corssCursorPos=this.GetCorssCursorPosition()
10347
+ var corssCursorPos=this.GetCorssCursorPosition();
10334
10348
  if (corssCursorPos.LastPoint.X!=null || corssCursorPos.LastPoint.Y!=null)
10335
10349
  {
10336
10350
  if (this.ChartCorssCursor)
@@ -10784,6 +10798,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10784
10798
  this.DrawDynamicInfo=function(option)
10785
10799
  {
10786
10800
  this.LastMouseStatus.MouseOnToolbar=null; //鼠标在工具栏按钮上
10801
+ if (this.ChartCorssCursor) this.ChartCorssCursor.Status=0;
10787
10802
 
10788
10803
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_BEFORE_DRAW_DYNAMIC_INFO);
10789
10804
  if (event && event.Callback)
@@ -15819,6 +15834,26 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
15819
15834
  {
15820
15835
  return false;
15821
15836
  }
15837
+
15838
+ //更新交易状态
15839
+ this.UpdateTradeStatusData=function(data, option)
15840
+ {
15841
+ if (option)
15842
+ {
15843
+ //是否清空
15844
+ if (option.IsClear===true) this.GlobalOption.TradeStatus=null;
15845
+ }
15846
+
15847
+ if (!data) return false;
15848
+
15849
+ if (IFrameSplitOperator.IsNumber(data.Date) && IFrameSplitOperator.IsNumber(data.Time) && IFrameSplitOperator.IsNumber(data.Status))
15850
+ {
15851
+ this.GlobalOption.TradeStatus={ Date:data.Date, Time:data.Time, Status:data.Status };
15852
+ return true;
15853
+ }
15854
+
15855
+ return false;
15856
+ }
15822
15857
  }
15823
15858
 
15824
15859
  function GetDevicePixelRatio()
@@ -16354,6 +16389,40 @@ function ChartBorder()
16354
16389
  {
16355
16390
  return this.TitleHeight;
16356
16391
  }
16392
+
16393
+ //是否显示单日集合竞价 盘前
16394
+ this.IsShowBeforeOpen=function()
16395
+ {
16396
+ if (this.LeftExtendWidth<10) return false;
16397
+
16398
+ return true;
16399
+ }
16400
+
16401
+ //是否显示单日集合竞价 盘后
16402
+ this.IsShowAfterClose=function()
16403
+ {
16404
+ if (this.RightExtendWidth<10) return false;
16405
+
16406
+ return true;
16407
+ }
16408
+
16409
+ //是否显示多日集合竞价 盘前
16410
+ this.IsShowMultiDayBeforeOpen=function()
16411
+ {
16412
+ if (!this.MultiDayMinute) return false;
16413
+ if (this.MultiDayMinute.Count<=1 || this.MultiDayMinute.Left<=0) return false;
16414
+
16415
+ return true;
16416
+ }
16417
+
16418
+ //是否显示多日集合竞价 盘后
16419
+ this.IsShowMultiDayAfterClose=function()
16420
+ {
16421
+ if (!this.MultiDayMinute) return false;
16422
+ if (this.MultiDayMinute.Count<=1 || this.MultiDayMinute.Right<=0) return false;
16423
+
16424
+ return true;
16425
+ }
16357
16426
  }
16358
16427
 
16359
16428
  //框架外部挂接
@@ -17024,7 +17093,7 @@ function AverageWidthFrame()
17024
17093
  }
17025
17094
  else
17026
17095
  {
17027
- var right=border.Right-3;
17096
+ var right=border.RightEx-3;
17028
17097
  var left=border.Left;
17029
17098
  var yButton=border.Top+this.ChartBorder.TitleHeight/2;
17030
17099
 
@@ -58332,7 +58401,7 @@ function FrameSplitY()
58332
58401
 
58333
58402
  this.RightFrameSplitY();
58334
58403
  this.MainOverlayFrameSplitY(); //主图Y轴绑定叠加Y轴坐标
58335
- this.CallAcutionSplitY(this.SplitCount,splitData);
58404
+ this.CallAcutionSplitYV2(splitData, this.Frame.HorizontalInfo.slice());
58336
58405
 
58337
58406
  if (this.EnableRemoveZero) this.RemoveZero(this.Frame.HorizontalInfo);
58338
58407
 
@@ -58413,6 +58482,173 @@ function FrameSplitY()
58413
58482
  }
58414
58483
  }
58415
58484
 
58485
+ this.CallAcutionSplitYV2=function(splitData, aryHorizontalInfo)
58486
+ {
58487
+ if (!this.IsCallAuctionFrame()) return;
58488
+ if (!IFrameSplitOperator.IsNonEmptyArray(aryHorizontalInfo)) return;
58489
+
58490
+ var aryCallAcution=this.GetCallAcutionSplitYV2(splitData,aryHorizontalInfo);
58491
+ if (!aryCallAcution) return;
58492
+
58493
+ for(var i=0; i<this.Frame.HorizontalInfo.length; ++i) //把显示的数据迁移到 Message[2] Message[3]
58494
+ {
58495
+ var item=this.Frame.HorizontalInfo[i];
58496
+ if (aryCallAcution.IsBeforeData)
58497
+ {
58498
+ item.Message[2]=item.Message[0];
58499
+ item.Message[0]=null;
58500
+ }
58501
+
58502
+ if (aryCallAcution.IsAfterData && (this.ShareAfterVol==0 || this.ShareAfterVol==2) )
58503
+ {
58504
+ item.Message[3]=item.Message[1];
58505
+ item.Message[1]=null;
58506
+ }
58507
+ }
58508
+
58509
+ //集合竞价的坐标插入最后
58510
+ for(var i=0; i<aryCallAcution.HorizontalInfo.length; ++i)
58511
+ {
58512
+ var item=aryCallAcution.HorizontalInfo[i];
58513
+ this.Frame.HorizontalInfo.push(item);
58514
+ }
58515
+ }
58516
+
58517
+ this.GetCallAcutionSplitYV2=function(splitData, arySource)
58518
+ {
58519
+ if (!this.IsCallAuctionFrame()) return null;
58520
+
58521
+ var bBeforeData=(this.IsBeforeData==true && this.BeforeOpenData && (this.BeforeOpenData.Ver==2.0 || this.BeforeOpenData.Ver==3.0));
58522
+ var bAfterData=(this.IsAfterData==true && this.AfterCloseData && (this.AfterCloseData.Ver==2.0 || this.AfterCloseData.Ver==3.0));
58523
+
58524
+ var bottom=this.Frame.ChartBorder.GetBottomEx();
58525
+ var height=this.Frame.ChartBorder.GetHeightEx();
58526
+ var bHScreen=this.Frame.IsHScreen;
58527
+ if (this.Frame.IsHScreen)
58528
+ {
58529
+ var border=this.Frame.GetBorder();
58530
+ var width=border.RightEx-border.LeftEx;
58531
+ }
58532
+
58533
+ if (bBeforeData || bAfterData)
58534
+ {
58535
+ var aryHorizontalInfo=[];
58536
+ for(var i=0;i<arySource.length;++i)
58537
+ {
58538
+ var hItem=arySource[i];
58539
+ if (!hItem || !IFrameSplitOperator.IsNumber(hItem.Value)) continue;
58540
+ var y=this.Frame.GetYFromData(hItem.Value);
58541
+
58542
+ var item=new CoordinateInfo();
58543
+ item.Value=hItem.Value;
58544
+ item.LineType=8;
58545
+ if (bBeforeData)
58546
+ {
58547
+ if (bHScreen)
58548
+ {
58549
+ var value=(y-border.LeftEx)/width*(this.BeforeOpenData.VolMax-this.BeforeOpenData.VolMin)+this.BeforeOpenData.VolMin;
58550
+ }
58551
+ else
58552
+ {
58553
+ var value=(bottom-y)/height*(this.BeforeOpenData.VolMax-this.BeforeOpenData.VolMin)+this.BeforeOpenData.VolMin;
58554
+ }
58555
+
58556
+ item.Message[0]=this.FormatValueString(value);
58557
+ }
58558
+
58559
+ if (bAfterData && (this.ShareAfterVol==0 || this.ShareAfterVol==2) )
58560
+ {
58561
+ if (bHScreen)
58562
+ {
58563
+ var value=(y-border.LeftEx)/width*(this.AfterCloseData.VolMax-this.AfterCloseData.VolMin)+this.AfterCloseData.VolMin;
58564
+ }
58565
+ else
58566
+ {
58567
+ var value=(bottom-y)/height*(this.AfterCloseData.VolMax-this.AfterCloseData.VolMin)+this.AfterCloseData.VolMin;
58568
+ }
58569
+
58570
+ item.Message[1]=this.FormatValueString(value);
58571
+ }
58572
+
58573
+ aryHorizontalInfo.push(item);
58574
+ }
58575
+
58576
+ return { HorizontalInfo:aryHorizontalInfo, IsBeforeData:bBeforeData, IsAfterData:bAfterData };
58577
+ }
58578
+
58579
+ var bMultiDayBeforeData=false, bMultiDayAfterData=false;
58580
+ var beforeDayData=null, afterDayData=null;
58581
+ if (this.MultiDayBeforeOpenData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData))
58582
+ {
58583
+ bMultiDayBeforeData=true;
58584
+ var firstDayData=this.MultiDayBeforeOpenData[0];
58585
+ if (firstDayData.Ver==2.0 || firstDayData.Ver==3.0)
58586
+ beforeDayData=firstDayData;
58587
+ }
58588
+
58589
+ if (this.MultiDayAfterCloseData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData))
58590
+ {
58591
+ bMultiDayAfterData=true;
58592
+ var firstDayData=this.MultiDayAfterCloseData[0];
58593
+ if (firstDayData.Ver==2.0 || firstDayData.Ver==3.0)
58594
+ afterDayData=firstDayData;
58595
+ }
58596
+
58597
+ if (bMultiDayBeforeData || bMultiDayAfterData)
58598
+ {
58599
+ var aryHorizontalInfo=[];
58600
+ for(var i=0;i<arySource.length;++i)
58601
+ {
58602
+ var hItem=arySource[i];
58603
+ if (!hItem || !IFrameSplitOperator.IsNumber(hItem.Value)) continue;
58604
+ var y=this.Frame.GetYFromData(hItem.Value);
58605
+
58606
+ var item=new CoordinateInfo();
58607
+ item.Value=hItem.Value;
58608
+ item.LineType=9;
58609
+
58610
+ var isVaild=false;
58611
+ if (beforeDayData)
58612
+ {
58613
+ if (bHScreen)
58614
+ {
58615
+ var value=(y-border.LeftEx)/width*(beforeDayData.VolMax-beforeDayData.VolMin)+beforeDayData.VolMin;
58616
+ }
58617
+ else
58618
+ {
58619
+ var value=(bottom-y)/height*(beforeDayData.VolMax-beforeDayData.VolMin)+beforeDayData.VolMin;
58620
+ }
58621
+
58622
+ item.Message[0]=this.FormatValueString(value);
58623
+ isVaild=true;
58624
+ }
58625
+
58626
+ if (afterDayData && (this.ShareAfterVol==0 || this.ShareAfterVol==2))
58627
+ {
58628
+ if (bHScreen)
58629
+ {
58630
+ var value=(y-border.LeftEx)/width*(afterDayData.VolMax-afterDayData.VolMin)+afterDayData.VolMin;
58631
+ }
58632
+ else
58633
+ {
58634
+ var value=(bottom-y)/height*(afterDayData.VolMax-afterDayData.VolMin)+afterDayData.VolMin;
58635
+ }
58636
+
58637
+ item.Message[1]=this.FormatValueString(value);
58638
+ isVaild=true;
58639
+ }
58640
+
58641
+ if (isVaild) aryHorizontalInfo.push(item);
58642
+ }
58643
+
58644
+ if (IFrameSplitOperator.IsNonEmptyArray(aryHorizontalInfo))
58645
+ return { HorizontalInfo:aryHorizontalInfo, IsBeforeData:bMultiDayBeforeData, IsAfterData:bMultiDayAfterData };
58646
+ }
58647
+
58648
+ return null;
58649
+ }
58650
+
58651
+ /* 废弃 使用 CallAcutionSplitYV2
58416
58652
  this.CallAcutionSplitY=function(count,splitData)
58417
58653
  {
58418
58654
  if (!this.IsCallAuctionFrame()) return;
@@ -58443,6 +58679,7 @@ function FrameSplitY()
58443
58679
  this.Frame.HorizontalInfo.push(item);
58444
58680
  }
58445
58681
  }
58682
+ */
58446
58683
 
58447
58684
  this.IsCallAuctionFrame=function()
58448
58685
  {
@@ -58453,6 +58690,7 @@ function FrameSplitY()
58453
58690
  return this.HQChart.IsCallAuctionFrame(this.Frame.Identify);
58454
58691
  }
58455
58692
 
58693
+ /* 废弃 使用 GetCallAcutionSplitYV2
58456
58694
  this.GetCallAcutionSplitY=function(count,splitData)
58457
58695
  {
58458
58696
  if (!this.IsCallAuctionFrame()) return null;
@@ -58547,6 +58785,7 @@ function FrameSplitY()
58547
58785
 
58548
58786
  return null;
58549
58787
  }
58788
+ */
58550
58789
 
58551
58790
  this.RightFrameSplitY=function()
58552
58791
  {
@@ -64206,7 +64445,17 @@ function DynamicMinuteTitlePainting()
64206
64445
  {
64207
64446
  this.OnDrawEventCallback(null);
64208
64447
 
64209
- if (this.IsAlwaysShowLastData)
64448
+ var bShowLastData=this.IsAlwaysShowLastData
64449
+ if (this.DrawStatus && this.DrawStatus.IsTitleShowLatestData)
64450
+ {
64451
+ var status=this.DrawStatus;
64452
+ if (!IFrameSplitOperator.IsNumber(status.FrameID) || status.FrameID<0)
64453
+ bShowLastData=true;
64454
+ else if (status.CorssCursorTouchEnd && status.IsOnTouch==false)
64455
+ bShowLastData=true;
64456
+ }
64457
+
64458
+ if (bShowLastData)
64210
64459
  {
64211
64460
  this.Canvas.save();
64212
64461
  this.DrawLastDataItem();
@@ -64406,6 +64655,7 @@ function DynamicChartTitlePainting()
64406
64655
  this.IsShowIndexTitle=true; //是否显示指标标题信息
64407
64656
  this.IsShowNameArrow=false;
64408
64657
  this.NameArrowConfig=CloneData(g_JSChartResource.IndexTitle.NameArrow);
64658
+ this.CustomLocation; //自定义位置 { IsShow:, Top:, TitleHeight: }
64409
64659
 
64410
64660
  this.TradeIndex; //专家系统名字{Name:'名字', Param:'参数'}
64411
64661
  this.IsShowTradeIndexTitle=true;
@@ -65095,7 +65345,16 @@ function DynamicChartTitlePainting()
65095
65345
  if (this.Frame.IsShowIndexTitle==false) return;
65096
65346
  if (g_JSChartResource.IsDOMFrameTitle===true) return;
65097
65347
  if (!this.Data) return;
65098
- if (this.Frame.ChartBorder.TitleHeight<5) return;
65348
+ if (this.CustomLocation)
65349
+ {
65350
+ if (!this.CustomLocation.IsShow) return;
65351
+ if (!IFrameSplitOperator.IsNumber(this.CustomLocation.Top) || !IFrameSplitOperator.IsNumber(this.CustomLocation.TitleHeight)) return;
65352
+ }
65353
+ else
65354
+ {
65355
+ if (this.Frame.ChartBorder.TitleHeight<5) return;
65356
+ }
65357
+
65099
65358
  if (this.CursorIndex==null && !(this.GlobalOption && this.GlobalOption.IsDisplayLatest)) return;
65100
65359
 
65101
65360
  if (this.Frame.IsHScreen===true)
@@ -65117,6 +65376,11 @@ function DynamicChartTitlePainting()
65117
65376
 
65118
65377
  var left=this.Frame.ChartBorder.GetLeft()+this.MerginLeft;
65119
65378
  var bottom=this.Frame.ChartBorder.GetTop()+this.Frame.ChartBorder.TitleHeight/2; //上下居中显示
65379
+ if (this.CustomLocation) //自定义标题位置
65380
+ {
65381
+ bottom=this.Frame.ChartBorder.GetTop()+this.CustomLocation.Top+this.CustomLocation.TitleHeight/2;
65382
+ }
65383
+
65120
65384
  var right=this.Frame.ChartBorder.GetRight();
65121
65385
 
65122
65386
  var toolbarInfo={ Width:0, YCenter:bottom };
@@ -95271,6 +95535,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
95271
95535
  this.UpdateCallCationData(beforeOpenData,afterCloseData);
95272
95536
  this.UpdateLineColorData(aryColorData,data.stock[0].date);
95273
95537
  this.UpdateLatestMinuteData(aryMinuteData, data.stock[0].date, data.stock[0]);
95538
+ this.UpdateTradeStatusData(data.TradeStatus);
95274
95539
  this.UpdateHistoryMinuteUI(updateTime);
95275
95540
  this.RecvMinuteDataEvent({FunctionName:"RecvMinuteData"} );
95276
95541
  this.RequestOverlayMinuteData(); //请求叠加数据 (主数据下载完再下载)
@@ -95297,6 +95562,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
95297
95562
 
95298
95563
  this.ColorLineData=aryColorData;
95299
95564
 
95565
+ this.UpdateTradeStatusData(data.TradeStatus);
95300
95566
  this.UpdateMinuteUI(data.stock[0], {FunctionName:"RecvMinuteData", Day:{ IsFirstData:bFirstData} });
95301
95567
 
95302
95568
  if (data.AutoUpdate===false) //不执行自动更新
@@ -148133,7 +148399,7 @@ function ScrollBarBGChart()
148133
148399
 
148134
148400
 
148135
148401
 
148136
- var HQCHART_VERSION="1.1.14733";
148402
+ var HQCHART_VERSION="1.1.14745";
148137
148403
 
148138
148404
  function PrintHQChartVersion()
148139
148405
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.14733";
8
+ var HQCHART_VERSION="1.1.14745";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -55762,7 +55762,6 @@ HQData.Minute_RequestMinuteData=function(data, callback)
55762
55762
 
55763
55763
  var lastPrice=stockItem.minute[stockItem.minute.length-1].price;
55764
55764
 
55765
-
55766
55765
  if (bBuySellBar) //盘口分析
55767
55766
  {
55768
55767
  var aryBuy=[];
@@ -55803,6 +55802,95 @@ HQData.Minute_RequestMinuteData=function(data, callback)
55803
55802
  }, 50);
55804
55803
  }
55805
55804
 
55805
+ HQData.Minute_RequestMinuteDataV2=function(data, callback)
55806
+ {
55807
+ data.PreventDefault=true;
55808
+ var symbol=data.Request.Data.symbol[0]; //请求的股票代码
55809
+ var callcation=data.Request.Data.callcation; //集合竞价
55810
+ console.log(`[HQData::Minute_RequestMinuteDataV2] Symbol=${symbol}`);
55811
+
55812
+ setTimeout(()=>
55813
+ {
55814
+ var fullData=HQData.GetDayMinuteDataBySymbol(symbol);
55815
+ var srcStock=fullData[0];
55816
+ var stockItem={ date:srcStock.date, minute:srcStock.minute, yclose:srcStock.yclose, symbol:symbol, name:symbol };
55817
+
55818
+ if (callcation.Before)
55819
+ {
55820
+ var TEST_BEFORE_DATA=
55821
+ [
55822
+ [8.52, 50000, 30000, 1, 200000],
55823
+ [8.53, 55000, 40000, 0, 80000],
55824
+ [8.52, 40000, 60000, 1, 80000],
55825
+ [8.55, 30000, 21000, 2, 44000],
55826
+ [8.51, 21000, 25000, 2, 40000],
55827
+ [8.50, 36000, 55000, 2, 60000],
55828
+ [8.49, 10000, 20000, 2, 33000],
55829
+ ];
55830
+
55831
+ var date=new Date(parseInt(stockItem.date/10000),(stockItem.date/100%100-1),stockItem.date%100, 9, 15, 0);
55832
+ var count=10*60; //9:15-9:25
55833
+ var before=[];
55834
+ for(var i=0;i<count;++i)
55835
+ {
55836
+ var time=date.getHours()*10000+date.getMinutes()*100+date.getSeconds();
55837
+ var testIndex=Math.floor(Math.random()*10)%TEST_BEFORE_DATA.length;
55838
+ var testData=TEST_BEFORE_DATA[testIndex];
55839
+ var item=[ time, null, null, null, null, null ];
55840
+ if (i%20==0 || i==count-1)
55841
+ {
55842
+ item=[ time, testData[0], testData[1], testData[2], testData[3], (testData[1]+testData[2])*1.5 ];
55843
+ }
55844
+ before.push(item);
55845
+ date.setSeconds(date.getSeconds()+1);
55846
+ }
55847
+
55848
+ //before.length=200;
55849
+ var beforeinfo={ totalcount:count, ver:2.0 };
55850
+
55851
+ stockItem.before=before;
55852
+ stockItem.beforeinfo=beforeinfo;
55853
+
55854
+ var TEST_AFTER_DATA=
55855
+ [
55856
+ [8.51, 40000, 30000, 1, 80000],
55857
+ [8.51, 55000, 60000, 0, 150000],
55858
+ [8.51, 30000, 60000, 1, 160000],
55859
+ [8.51, 35000, 21000, 2, 50000],
55860
+ [8.51, 21000, 35000, 2, 70000],
55861
+ [8.51, 26000, 55000, 2, 100000],
55862
+ [8.51, 30000, 10000, 2, 50000],
55863
+ ];
55864
+
55865
+ var date=new Date(parseInt(stockItem.date/10000),(stockItem.date/100%100-1),stockItem.date%100, 14, 57, 0);
55866
+ var count=3*60; //14:57-15:00
55867
+ var after=[];
55868
+ for(var i=0;i<count;++i)
55869
+ {
55870
+ var time=date.getHours()*10000+date.getMinutes()*100+date.getSeconds();
55871
+ var testIndex=Math.floor(Math.random()*10)%TEST_AFTER_DATA.length;
55872
+ var testData=TEST_AFTER_DATA[testIndex];
55873
+ var item=[ time, null, null, null, null, null ];
55874
+ if (i%10==0 || i==count-1)
55875
+ {
55876
+ item=[ time, testData[0], testData[1], testData[2], testData[3], (testData[1]+testData[2])*1.5 ];
55877
+ }
55878
+ after.push(item);
55879
+ date.setSeconds(date.getSeconds()+1);
55880
+ }
55881
+
55882
+ var afterinfo={ totalcount:count, ver:2.0 };
55883
+ stockItem.after=after;
55884
+ stockItem.afterinfo=afterinfo;
55885
+ }
55886
+
55887
+ //stockItem.minute.length=0;
55888
+
55889
+ var hqchartData={code:0, stock:[stockItem] };
55890
+ callback(hqchartData);
55891
+ }, 50);
55892
+ }
55893
+
55806
55894
  HQData.Minute_RequestPopMinuteData=function(data, callback)
55807
55895
  {
55808
55896
  data.PreventDefault=true;