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.
@@ -2984,6 +2984,18 @@ var JSCHART_MENU_ID=
2984
2984
  CMD_REPORT_CHANGE_COLUMN_ID:105, //报价列表 切换列 Arg[Column, ]
2985
2985
  }
2986
2986
 
2987
+ var JSCHART_TRADE_STATUS_ID=
2988
+ {
2989
+ START_ID:1000, //8:45~9:15
2990
+ BEFORE_OPEN_ID:2000, //9:15~9:25 是开盘集合竞价阶段
2991
+ TRADE_ID:3000, //9:25~14:57 是连续竞价阶段
2992
+ AFTER_CLOSE_ID:4000, //14:57~15:00 是收盘集合竞价阶段
2993
+ CLOSE_ID:5000, //15:00 后,首先发 CLOSE 标志
2994
+ ENDTR_ID:6000, //交易结束
2995
+ //上面状态个位数 是停牌状态 如3001 连续交易时间段停牌
2996
+ SUSP_ID:1, //停牌
2997
+ }
2998
+
2987
2999
 
2988
3000
  function PhoneDBClick()
2989
3001
  {
@@ -3200,6 +3212,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
3200
3212
 
3201
3213
  //图形中的单元选中状态
3202
3214
  MapIndexChartCache:new Map(), //key 指标GUID
3215
+
3216
+ TradeStatus:null, //当前交易状态 { Date, Time:数据最后更新的时间, Status: }
3203
3217
  };
3204
3218
 
3205
3219
  this.VerticalDrag; //通过X轴左右拖动数据(手势才有)
@@ -6234,7 +6248,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
6234
6248
 
6235
6249
  var bDrawDialogTooltip=false;
6236
6250
  var ptPosition=null; //鼠标位置 null 无效 -1 在外面 >=0 对应的指标窗口中ID
6237
- var corssCursorPos=this.GetCorssCursorPosition()
6251
+ var corssCursorPos=this.GetCorssCursorPosition();
6238
6252
  if (corssCursorPos.LastPoint.X!=null || corssCursorPos.LastPoint.Y!=null)
6239
6253
  {
6240
6254
  if (this.ChartCorssCursor)
@@ -6688,6 +6702,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
6688
6702
  this.DrawDynamicInfo=function(option)
6689
6703
  {
6690
6704
  this.LastMouseStatus.MouseOnToolbar=null; //鼠标在工具栏按钮上
6705
+ if (this.ChartCorssCursor) this.ChartCorssCursor.Status=0;
6691
6706
 
6692
6707
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_BEFORE_DRAW_DYNAMIC_INFO);
6693
6708
  if (event && event.Callback)
@@ -11723,6 +11738,26 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
11723
11738
  {
11724
11739
  return false;
11725
11740
  }
11741
+
11742
+ //更新交易状态
11743
+ this.UpdateTradeStatusData=function(data, option)
11744
+ {
11745
+ if (option)
11746
+ {
11747
+ //是否清空
11748
+ if (option.IsClear===true) this.GlobalOption.TradeStatus=null;
11749
+ }
11750
+
11751
+ if (!data) return false;
11752
+
11753
+ if (IFrameSplitOperator.IsNumber(data.Date) && IFrameSplitOperator.IsNumber(data.Time) && IFrameSplitOperator.IsNumber(data.Status))
11754
+ {
11755
+ this.GlobalOption.TradeStatus={ Date:data.Date, Time:data.Time, Status:data.Status };
11756
+ return true;
11757
+ }
11758
+
11759
+ return false;
11760
+ }
11726
11761
  }
11727
11762
 
11728
11763
  function GetDevicePixelRatio()
@@ -12258,6 +12293,40 @@ function ChartBorder()
12258
12293
  {
12259
12294
  return this.TitleHeight;
12260
12295
  }
12296
+
12297
+ //是否显示单日集合竞价 盘前
12298
+ this.IsShowBeforeOpen=function()
12299
+ {
12300
+ if (this.LeftExtendWidth<10) return false;
12301
+
12302
+ return true;
12303
+ }
12304
+
12305
+ //是否显示单日集合竞价 盘后
12306
+ this.IsShowAfterClose=function()
12307
+ {
12308
+ if (this.RightExtendWidth<10) return false;
12309
+
12310
+ return true;
12311
+ }
12312
+
12313
+ //是否显示多日集合竞价 盘前
12314
+ this.IsShowMultiDayBeforeOpen=function()
12315
+ {
12316
+ if (!this.MultiDayMinute) return false;
12317
+ if (this.MultiDayMinute.Count<=1 || this.MultiDayMinute.Left<=0) return false;
12318
+
12319
+ return true;
12320
+ }
12321
+
12322
+ //是否显示多日集合竞价 盘后
12323
+ this.IsShowMultiDayAfterClose=function()
12324
+ {
12325
+ if (!this.MultiDayMinute) return false;
12326
+ if (this.MultiDayMinute.Count<=1 || this.MultiDayMinute.Right<=0) return false;
12327
+
12328
+ return true;
12329
+ }
12261
12330
  }
12262
12331
 
12263
12332
  //框架外部挂接
@@ -12928,7 +12997,7 @@ function AverageWidthFrame()
12928
12997
  }
12929
12998
  else
12930
12999
  {
12931
- var right=border.Right-3;
13000
+ var right=border.RightEx-3;
12932
13001
  var left=border.Left;
12933
13002
  var yButton=border.Top+this.ChartBorder.TitleHeight/2;
12934
13003
 
@@ -54236,7 +54305,7 @@ function FrameSplitY()
54236
54305
 
54237
54306
  this.RightFrameSplitY();
54238
54307
  this.MainOverlayFrameSplitY(); //主图Y轴绑定叠加Y轴坐标
54239
- this.CallAcutionSplitY(this.SplitCount,splitData);
54308
+ this.CallAcutionSplitYV2(splitData, this.Frame.HorizontalInfo.slice());
54240
54309
 
54241
54310
  if (this.EnableRemoveZero) this.RemoveZero(this.Frame.HorizontalInfo);
54242
54311
 
@@ -54317,6 +54386,173 @@ function FrameSplitY()
54317
54386
  }
54318
54387
  }
54319
54388
 
54389
+ this.CallAcutionSplitYV2=function(splitData, aryHorizontalInfo)
54390
+ {
54391
+ if (!this.IsCallAuctionFrame()) return;
54392
+ if (!IFrameSplitOperator.IsNonEmptyArray(aryHorizontalInfo)) return;
54393
+
54394
+ var aryCallAcution=this.GetCallAcutionSplitYV2(splitData,aryHorizontalInfo);
54395
+ if (!aryCallAcution) return;
54396
+
54397
+ for(var i=0; i<this.Frame.HorizontalInfo.length; ++i) //把显示的数据迁移到 Message[2] Message[3]
54398
+ {
54399
+ var item=this.Frame.HorizontalInfo[i];
54400
+ if (aryCallAcution.IsBeforeData)
54401
+ {
54402
+ item.Message[2]=item.Message[0];
54403
+ item.Message[0]=null;
54404
+ }
54405
+
54406
+ if (aryCallAcution.IsAfterData && (this.ShareAfterVol==0 || this.ShareAfterVol==2) )
54407
+ {
54408
+ item.Message[3]=item.Message[1];
54409
+ item.Message[1]=null;
54410
+ }
54411
+ }
54412
+
54413
+ //集合竞价的坐标插入最后
54414
+ for(var i=0; i<aryCallAcution.HorizontalInfo.length; ++i)
54415
+ {
54416
+ var item=aryCallAcution.HorizontalInfo[i];
54417
+ this.Frame.HorizontalInfo.push(item);
54418
+ }
54419
+ }
54420
+
54421
+ this.GetCallAcutionSplitYV2=function(splitData, arySource)
54422
+ {
54423
+ if (!this.IsCallAuctionFrame()) return null;
54424
+
54425
+ var bBeforeData=(this.IsBeforeData==true && this.BeforeOpenData && (this.BeforeOpenData.Ver==2.0 || this.BeforeOpenData.Ver==3.0));
54426
+ var bAfterData=(this.IsAfterData==true && this.AfterCloseData && (this.AfterCloseData.Ver==2.0 || this.AfterCloseData.Ver==3.0));
54427
+
54428
+ var bottom=this.Frame.ChartBorder.GetBottomEx();
54429
+ var height=this.Frame.ChartBorder.GetHeightEx();
54430
+ var bHScreen=this.Frame.IsHScreen;
54431
+ if (this.Frame.IsHScreen)
54432
+ {
54433
+ var border=this.Frame.GetBorder();
54434
+ var width=border.RightEx-border.LeftEx;
54435
+ }
54436
+
54437
+ if (bBeforeData || bAfterData)
54438
+ {
54439
+ var aryHorizontalInfo=[];
54440
+ for(var i=0;i<arySource.length;++i)
54441
+ {
54442
+ var hItem=arySource[i];
54443
+ if (!hItem || !IFrameSplitOperator.IsNumber(hItem.Value)) continue;
54444
+ var y=this.Frame.GetYFromData(hItem.Value);
54445
+
54446
+ var item=new CoordinateInfo();
54447
+ item.Value=hItem.Value;
54448
+ item.LineType=8;
54449
+ if (bBeforeData)
54450
+ {
54451
+ if (bHScreen)
54452
+ {
54453
+ var value=(y-border.LeftEx)/width*(this.BeforeOpenData.VolMax-this.BeforeOpenData.VolMin)+this.BeforeOpenData.VolMin;
54454
+ }
54455
+ else
54456
+ {
54457
+ var value=(bottom-y)/height*(this.BeforeOpenData.VolMax-this.BeforeOpenData.VolMin)+this.BeforeOpenData.VolMin;
54458
+ }
54459
+
54460
+ item.Message[0]=this.FormatValueString(value);
54461
+ }
54462
+
54463
+ if (bAfterData && (this.ShareAfterVol==0 || this.ShareAfterVol==2) )
54464
+ {
54465
+ if (bHScreen)
54466
+ {
54467
+ var value=(y-border.LeftEx)/width*(this.AfterCloseData.VolMax-this.AfterCloseData.VolMin)+this.AfterCloseData.VolMin;
54468
+ }
54469
+ else
54470
+ {
54471
+ var value=(bottom-y)/height*(this.AfterCloseData.VolMax-this.AfterCloseData.VolMin)+this.AfterCloseData.VolMin;
54472
+ }
54473
+
54474
+ item.Message[1]=this.FormatValueString(value);
54475
+ }
54476
+
54477
+ aryHorizontalInfo.push(item);
54478
+ }
54479
+
54480
+ return { HorizontalInfo:aryHorizontalInfo, IsBeforeData:bBeforeData, IsAfterData:bAfterData };
54481
+ }
54482
+
54483
+ var bMultiDayBeforeData=false, bMultiDayAfterData=false;
54484
+ var beforeDayData=null, afterDayData=null;
54485
+ if (this.MultiDayBeforeOpenData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData))
54486
+ {
54487
+ bMultiDayBeforeData=true;
54488
+ var firstDayData=this.MultiDayBeforeOpenData[0];
54489
+ if (firstDayData.Ver==2.0 || firstDayData.Ver==3.0)
54490
+ beforeDayData=firstDayData;
54491
+ }
54492
+
54493
+ if (this.MultiDayAfterCloseData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData))
54494
+ {
54495
+ bMultiDayAfterData=true;
54496
+ var firstDayData=this.MultiDayAfterCloseData[0];
54497
+ if (firstDayData.Ver==2.0 || firstDayData.Ver==3.0)
54498
+ afterDayData=firstDayData;
54499
+ }
54500
+
54501
+ if (bMultiDayBeforeData || bMultiDayAfterData)
54502
+ {
54503
+ var aryHorizontalInfo=[];
54504
+ for(var i=0;i<arySource.length;++i)
54505
+ {
54506
+ var hItem=arySource[i];
54507
+ if (!hItem || !IFrameSplitOperator.IsNumber(hItem.Value)) continue;
54508
+ var y=this.Frame.GetYFromData(hItem.Value);
54509
+
54510
+ var item=new CoordinateInfo();
54511
+ item.Value=hItem.Value;
54512
+ item.LineType=9;
54513
+
54514
+ var isVaild=false;
54515
+ if (beforeDayData)
54516
+ {
54517
+ if (bHScreen)
54518
+ {
54519
+ var value=(y-border.LeftEx)/width*(beforeDayData.VolMax-beforeDayData.VolMin)+beforeDayData.VolMin;
54520
+ }
54521
+ else
54522
+ {
54523
+ var value=(bottom-y)/height*(beforeDayData.VolMax-beforeDayData.VolMin)+beforeDayData.VolMin;
54524
+ }
54525
+
54526
+ item.Message[0]=this.FormatValueString(value);
54527
+ isVaild=true;
54528
+ }
54529
+
54530
+ if (afterDayData && (this.ShareAfterVol==0 || this.ShareAfterVol==2))
54531
+ {
54532
+ if (bHScreen)
54533
+ {
54534
+ var value=(y-border.LeftEx)/width*(afterDayData.VolMax-afterDayData.VolMin)+afterDayData.VolMin;
54535
+ }
54536
+ else
54537
+ {
54538
+ var value=(bottom-y)/height*(afterDayData.VolMax-afterDayData.VolMin)+afterDayData.VolMin;
54539
+ }
54540
+
54541
+ item.Message[1]=this.FormatValueString(value);
54542
+ isVaild=true;
54543
+ }
54544
+
54545
+ if (isVaild) aryHorizontalInfo.push(item);
54546
+ }
54547
+
54548
+ if (IFrameSplitOperator.IsNonEmptyArray(aryHorizontalInfo))
54549
+ return { HorizontalInfo:aryHorizontalInfo, IsBeforeData:bMultiDayBeforeData, IsAfterData:bMultiDayAfterData };
54550
+ }
54551
+
54552
+ return null;
54553
+ }
54554
+
54555
+ /* 废弃 使用 CallAcutionSplitYV2
54320
54556
  this.CallAcutionSplitY=function(count,splitData)
54321
54557
  {
54322
54558
  if (!this.IsCallAuctionFrame()) return;
@@ -54347,6 +54583,7 @@ function FrameSplitY()
54347
54583
  this.Frame.HorizontalInfo.push(item);
54348
54584
  }
54349
54585
  }
54586
+ */
54350
54587
 
54351
54588
  this.IsCallAuctionFrame=function()
54352
54589
  {
@@ -54357,6 +54594,7 @@ function FrameSplitY()
54357
54594
  return this.HQChart.IsCallAuctionFrame(this.Frame.Identify);
54358
54595
  }
54359
54596
 
54597
+ /* 废弃 使用 GetCallAcutionSplitYV2
54360
54598
  this.GetCallAcutionSplitY=function(count,splitData)
54361
54599
  {
54362
54600
  if (!this.IsCallAuctionFrame()) return null;
@@ -54451,6 +54689,7 @@ function FrameSplitY()
54451
54689
 
54452
54690
  return null;
54453
54691
  }
54692
+ */
54454
54693
 
54455
54694
  this.RightFrameSplitY=function()
54456
54695
  {
@@ -60110,7 +60349,17 @@ function DynamicMinuteTitlePainting()
60110
60349
  {
60111
60350
  this.OnDrawEventCallback(null);
60112
60351
 
60113
- if (this.IsAlwaysShowLastData)
60352
+ var bShowLastData=this.IsAlwaysShowLastData
60353
+ if (this.DrawStatus && this.DrawStatus.IsTitleShowLatestData)
60354
+ {
60355
+ var status=this.DrawStatus;
60356
+ if (!IFrameSplitOperator.IsNumber(status.FrameID) || status.FrameID<0)
60357
+ bShowLastData=true;
60358
+ else if (status.CorssCursorTouchEnd && status.IsOnTouch==false)
60359
+ bShowLastData=true;
60360
+ }
60361
+
60362
+ if (bShowLastData)
60114
60363
  {
60115
60364
  this.Canvas.save();
60116
60365
  this.DrawLastDataItem();
@@ -60310,6 +60559,7 @@ function DynamicChartTitlePainting()
60310
60559
  this.IsShowIndexTitle=true; //是否显示指标标题信息
60311
60560
  this.IsShowNameArrow=false;
60312
60561
  this.NameArrowConfig=CloneData(g_JSChartResource.IndexTitle.NameArrow);
60562
+ this.CustomLocation; //自定义位置 { IsShow:, Top:, TitleHeight: }
60313
60563
 
60314
60564
  this.TradeIndex; //专家系统名字{Name:'名字', Param:'参数'}
60315
60565
  this.IsShowTradeIndexTitle=true;
@@ -60999,7 +61249,16 @@ function DynamicChartTitlePainting()
60999
61249
  if (this.Frame.IsShowIndexTitle==false) return;
61000
61250
  if (g_JSChartResource.IsDOMFrameTitle===true) return;
61001
61251
  if (!this.Data) return;
61002
- if (this.Frame.ChartBorder.TitleHeight<5) return;
61252
+ if (this.CustomLocation)
61253
+ {
61254
+ if (!this.CustomLocation.IsShow) return;
61255
+ if (!IFrameSplitOperator.IsNumber(this.CustomLocation.Top) || !IFrameSplitOperator.IsNumber(this.CustomLocation.TitleHeight)) return;
61256
+ }
61257
+ else
61258
+ {
61259
+ if (this.Frame.ChartBorder.TitleHeight<5) return;
61260
+ }
61261
+
61003
61262
  if (this.CursorIndex==null && !(this.GlobalOption && this.GlobalOption.IsDisplayLatest)) return;
61004
61263
 
61005
61264
  if (this.Frame.IsHScreen===true)
@@ -61021,6 +61280,11 @@ function DynamicChartTitlePainting()
61021
61280
 
61022
61281
  var left=this.Frame.ChartBorder.GetLeft()+this.MerginLeft;
61023
61282
  var bottom=this.Frame.ChartBorder.GetTop()+this.Frame.ChartBorder.TitleHeight/2; //上下居中显示
61283
+ if (this.CustomLocation) //自定义标题位置
61284
+ {
61285
+ bottom=this.Frame.ChartBorder.GetTop()+this.CustomLocation.Top+this.CustomLocation.TitleHeight/2;
61286
+ }
61287
+
61024
61288
  var right=this.Frame.ChartBorder.GetRight();
61025
61289
 
61026
61290
  var toolbarInfo={ Width:0, YCenter:bottom };
@@ -91175,6 +91439,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
91175
91439
  this.UpdateCallCationData(beforeOpenData,afterCloseData);
91176
91440
  this.UpdateLineColorData(aryColorData,data.stock[0].date);
91177
91441
  this.UpdateLatestMinuteData(aryMinuteData, data.stock[0].date, data.stock[0]);
91442
+ this.UpdateTradeStatusData(data.TradeStatus);
91178
91443
  this.UpdateHistoryMinuteUI(updateTime);
91179
91444
  this.RecvMinuteDataEvent({FunctionName:"RecvMinuteData"} );
91180
91445
  this.RequestOverlayMinuteData(); //请求叠加数据 (主数据下载完再下载)
@@ -91201,6 +91466,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
91201
91466
 
91202
91467
  this.ColorLineData=aryColorData;
91203
91468
 
91469
+ this.UpdateTradeStatusData(data.TradeStatus);
91204
91470
  this.UpdateMinuteUI(data.stock[0], {FunctionName:"RecvMinuteData", Day:{ IsFirstData:bFirstData} });
91205
91471
 
91206
91472
  if (data.AutoUpdate===false) //不执行自动更新
@@ -230,7 +230,6 @@ HQData.Minute_RequestMinuteData=function(data, callback)
230
230
 
231
231
  var lastPrice=stockItem.minute[stockItem.minute.length-1].price;
232
232
 
233
-
234
233
  if (bBuySellBar) //盘口分析
235
234
  {
236
235
  var aryBuy=[];
@@ -271,6 +270,95 @@ HQData.Minute_RequestMinuteData=function(data, callback)
271
270
  }, 50);
272
271
  }
273
272
 
273
+ HQData.Minute_RequestMinuteDataV2=function(data, callback)
274
+ {
275
+ data.PreventDefault=true;
276
+ var symbol=data.Request.Data.symbol[0]; //请求的股票代码
277
+ var callcation=data.Request.Data.callcation; //集合竞价
278
+ console.log(`[HQData::Minute_RequestMinuteDataV2] Symbol=${symbol}`);
279
+
280
+ setTimeout(()=>
281
+ {
282
+ var fullData=HQData.GetDayMinuteDataBySymbol(symbol);
283
+ var srcStock=fullData[0];
284
+ var stockItem={ date:srcStock.date, minute:srcStock.minute, yclose:srcStock.yclose, symbol:symbol, name:symbol };
285
+
286
+ if (callcation.Before)
287
+ {
288
+ var TEST_BEFORE_DATA=
289
+ [
290
+ [8.52, 50000, 30000, 1, 200000],
291
+ [8.53, 55000, 40000, 0, 80000],
292
+ [8.52, 40000, 60000, 1, 80000],
293
+ [8.55, 30000, 21000, 2, 44000],
294
+ [8.51, 21000, 25000, 2, 40000],
295
+ [8.50, 36000, 55000, 2, 60000],
296
+ [8.49, 10000, 20000, 2, 33000],
297
+ ];
298
+
299
+ var date=new Date(parseInt(stockItem.date/10000),(stockItem.date/100%100-1),stockItem.date%100, 9, 15, 0);
300
+ var count=10*60; //9:15-9:25
301
+ var before=[];
302
+ for(var i=0;i<count;++i)
303
+ {
304
+ var time=date.getHours()*10000+date.getMinutes()*100+date.getSeconds();
305
+ var testIndex=Math.floor(Math.random()*10)%TEST_BEFORE_DATA.length;
306
+ var testData=TEST_BEFORE_DATA[testIndex];
307
+ var item=[ time, null, null, null, null, null ];
308
+ if (i%20==0 || i==count-1)
309
+ {
310
+ item=[ time, testData[0], testData[1], testData[2], testData[3], (testData[1]+testData[2])*1.5 ];
311
+ }
312
+ before.push(item);
313
+ date.setSeconds(date.getSeconds()+1);
314
+ }
315
+
316
+ //before.length=200;
317
+ var beforeinfo={ totalcount:count, ver:2.0 };
318
+
319
+ stockItem.before=before;
320
+ stockItem.beforeinfo=beforeinfo;
321
+
322
+ var TEST_AFTER_DATA=
323
+ [
324
+ [8.51, 40000, 30000, 1, 80000],
325
+ [8.51, 55000, 60000, 0, 150000],
326
+ [8.51, 30000, 60000, 1, 160000],
327
+ [8.51, 35000, 21000, 2, 50000],
328
+ [8.51, 21000, 35000, 2, 70000],
329
+ [8.51, 26000, 55000, 2, 100000],
330
+ [8.51, 30000, 10000, 2, 50000],
331
+ ];
332
+
333
+ var date=new Date(parseInt(stockItem.date/10000),(stockItem.date/100%100-1),stockItem.date%100, 14, 57, 0);
334
+ var count=3*60; //14:57-15:00
335
+ var after=[];
336
+ for(var i=0;i<count;++i)
337
+ {
338
+ var time=date.getHours()*10000+date.getMinutes()*100+date.getSeconds();
339
+ var testIndex=Math.floor(Math.random()*10)%TEST_AFTER_DATA.length;
340
+ var testData=TEST_AFTER_DATA[testIndex];
341
+ var item=[ time, null, null, null, null, null ];
342
+ if (i%10==0 || i==count-1)
343
+ {
344
+ item=[ time, testData[0], testData[1], testData[2], testData[3], (testData[1]+testData[2])*1.5 ];
345
+ }
346
+ after.push(item);
347
+ date.setSeconds(date.getSeconds()+1);
348
+ }
349
+
350
+ var afterinfo={ totalcount:count, ver:2.0 };
351
+ stockItem.after=after;
352
+ stockItem.afterinfo=afterinfo;
353
+ }
354
+
355
+ //stockItem.minute.length=0;
356
+
357
+ var hqchartData={code:0, stock:[stockItem] };
358
+ callback(hqchartData);
359
+ }, 50);
360
+ }
361
+
274
362
  HQData.Minute_RequestPopMinuteData=function(data, callback)
275
363
  {
276
364
  data.PreventDefault=true;