hqchart 1.1.14128 → 1.1.14135

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.
@@ -7015,6 +7015,13 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7015
7015
  this.DialogModifyIndexParam; //指标参数修改
7016
7016
 
7017
7017
 
7018
+ this.GetVolUnit=function() //成交量单位
7019
+ {
7020
+ var upperSymbol=this.Symbol?this.Symbol.toUpperCase():null;
7021
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
7022
+ return unit;
7023
+ }
7024
+
7018
7025
  this.ClearStockCache=function()
7019
7026
  {
7020
7027
  this.StockCache.Data=null;
@@ -35358,6 +35365,13 @@ function ChartMinuteVolumBar()
35358
35365
  return this.DrawLinePoint({ MinuteVolBar:true });
35359
35366
  }
35360
35367
 
35368
+ this.GetVolUnit=function()
35369
+ {
35370
+ var upperSymbol=this.Symbol?this.Symbol.toUpperCase():null;
35371
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
35372
+ return unit;
35373
+ }
35374
+
35361
35375
  this.Draw=function()
35362
35376
  {
35363
35377
  var isHScreen = (this.ChartFrame.IsHScreen === true);
@@ -35380,9 +35394,11 @@ function ChartMinuteVolumBar()
35380
35394
  var yBottom=this.ChartFrame.GetYFromData(0);
35381
35395
  var yPrice=this.YClose; //上一分钟的价格
35382
35396
  var data=this.Data;
35397
+
35383
35398
  var bShowColorBar=MARKET_SUFFIX_NAME.IsShowMinuteColorVolBar(this.Symbol);
35384
-
35385
35399
  if (bShowColorBar) this.Canvas.strokeStyle=this.CustomColor;
35400
+ var unit=this.GetVolUnit();
35401
+
35386
35402
  for(var i=data.DataOffset,j=0;i<data.Data.length && j<xPointCount;++i,++j)
35387
35403
  {
35388
35404
  var item = data.Data[i];
@@ -35390,7 +35406,7 @@ function ChartMinuteVolumBar()
35390
35406
  if (!item) continue;
35391
35407
  var price=null;
35392
35408
 
35393
- vol=item.Vol;
35409
+ vol=item.Vol/unit;
35394
35410
  price=item.Close;
35395
35411
 
35396
35412
  if (!vol) continue;
@@ -35497,6 +35513,7 @@ function ChartMinuteVolumBar()
35497
35513
  var isHScreen=(this.ChartFrame.IsHScreen===true);
35498
35514
  var yPrice=this.YClose; //上一分钟的价格
35499
35515
  var yBottom=this.ChartFrame.GetYFromData(0);
35516
+ var unit=this.GetVolUnit();
35500
35517
  if (callAutionData.Ver==1.0)
35501
35518
  {
35502
35519
  for(var i in callAutionData.Data)
@@ -35507,12 +35524,12 @@ function ChartMinuteVolumBar()
35507
35524
  if (isBeforeOpen)
35508
35525
  {
35509
35526
  var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);
35510
- var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[0]);
35527
+ var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[0]/unit);
35511
35528
  }
35512
35529
  else
35513
35530
  {
35514
35531
  var x=this.ChartFrame.GetRightExtendXFromIndex(i,callAutionData);
35515
- var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[0]);
35532
+ var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[0]/unit);
35516
35533
  }
35517
35534
 
35518
35535
 
@@ -35545,13 +35562,13 @@ function ChartMinuteVolumBar()
35545
35562
  if (isBeforeOpen)
35546
35563
  {
35547
35564
  var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);
35548
- var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[0],false, { Range:range });
35565
+ var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[0]/unit,false, { Range:range });
35549
35566
  }
35550
35567
  else
35551
35568
  {
35552
35569
  var x=this.ChartFrame.GetRightExtendXFromIndex(i,callAutionData);
35553
- if (this.ShareAfterVol==1) var y=this.ChartFrame.GetYFromData(item.Vol[0]);
35554
- else var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[0],false, { Range:range });
35570
+ if (this.ShareAfterVol==1) var y=this.ChartFrame.GetYFromData(item.Vol[0]/unit);
35571
+ else var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[0]/unit,false, { Range:range });
35555
35572
  }
35556
35573
 
35557
35574
  this.Canvas.strokeStyle = this.GetBarColor(item.ColorID);
@@ -35575,13 +35592,13 @@ function ChartMinuteVolumBar()
35575
35592
  if (isBeforeOpen)
35576
35593
  {
35577
35594
  var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);
35578
- var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[1],false, { Range:range });
35595
+ var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[1]/unit,false, { Range:range });
35579
35596
  }
35580
35597
  else
35581
35598
  {
35582
35599
  var x=this.ChartFrame.GetRightExtendXFromIndex(i,callAutionData);
35583
- if (this.ShareAfterVol==1) var y=this.ChartFrame.GetYFromData(item.Vol[1]);
35584
- else var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[1],false, { Range:range });
35600
+ if (this.ShareAfterVol==1) var y=this.ChartFrame.GetYFromData(item.Vol[1]/unit);
35601
+ else var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[1]/unit,false, { Range:range });
35585
35602
  }
35586
35603
 
35587
35604
  this.Canvas.strokeStyle = this.GetBarColor(item.ColorID);
@@ -35630,6 +35647,7 @@ function ChartMinuteVolumBar()
35630
35647
 
35631
35648
  this.GetMaxMin=function()
35632
35649
  {
35650
+ var unit=this.GetVolUnit();
35633
35651
  var xPointCount=this.ChartFrame.XPointCount;
35634
35652
  var start=this.Data.DataOffset;
35635
35653
  if (this.ChartFrame.GlobalOption && this.ChartFrame.GlobalOption.IsValueFullRange===true)
@@ -35646,10 +35664,9 @@ function ChartMinuteVolumBar()
35646
35664
  {
35647
35665
  var item = this.Data.Data[i];
35648
35666
  if (!item || !item.Vol) continue;
35649
- if (range.Max == null) range.Max = item.Vol;
35650
- if (range.Max < item.Vol) range.Max = item.Vol;
35667
+ var value=item.Vol/unit;
35668
+ if (range.Max == null || range.Max < value) range.Max = value;
35651
35669
  }
35652
-
35653
35670
 
35654
35671
  if (this.ShareAfterVol==1)
35655
35672
  {
@@ -46719,6 +46736,7 @@ function KLineTooltipPaint()
46719
46736
  var upperSymbol;
46720
46737
  if (this.HQChart.Symbol) upperSymbol=this.HQChart.Symbol.toUpperCase();
46721
46738
  var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
46739
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
46722
46740
 
46723
46741
  var aryText=[];
46724
46742
  var result={ AryText:aryText };
@@ -46802,7 +46820,7 @@ function KLineTooltipPaint()
46802
46820
  title=g_JSChartLocalization.GetText('Tooltip-Vol',this.LanguageID);
46803
46821
  var vol=item.Vol;
46804
46822
  if (upperSymbol && MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol)) vol/=100; //A股统一转成手
46805
- text=IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);
46823
+ text=IFrameSplitOperator.FromatIntegerString(vol/unit,2,this.LanguageID);
46806
46824
  aryText.push({Title:title, TitleColor:this.TitleColor, Text:text, Color:this.VolColor });
46807
46825
  }
46808
46826
 
@@ -47179,6 +47197,7 @@ function MinuteTooltipPaint()
47179
47197
  if (this.HQChart.Symbol) upperSymbol=this.HQChart.Symbol.toUpperCase();
47180
47198
  var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
47181
47199
  var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
47200
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
47182
47201
 
47183
47202
  this.YClose=this.TitlePaint.YClose;
47184
47203
  this.YClose=item.YClose;
@@ -47245,7 +47264,7 @@ function MinuteTooltipPaint()
47245
47264
  if (IFrameSplitOperator.IsNumber(vol))
47246
47265
  {
47247
47266
  title=g_JSChartLocalization.GetText('Tooltip-Vol',this.LanguageID);
47248
- var text=IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);
47267
+ var text=IFrameSplitOperator.FromatIntegerString(vol/unit,2,this.LanguageID);
47249
47268
  aryText.push({Title:title, TitleColor:this.TitleColor, Text:text, Color:this.VolColor });
47250
47269
  }
47251
47270
 
@@ -47266,134 +47285,6 @@ function MinuteTooltipPaint()
47266
47285
 
47267
47286
  return result;
47268
47287
  }
47269
-
47270
- /*
47271
- this.DrawTooltipData=function(item)
47272
- {
47273
- //JSConsole.Chart.Log('[KLineTooltipPaint::DrawKLineData] ', item);
47274
- if (!this.HQChart.Symbol) return;
47275
-
47276
- var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
47277
- var left=this.GetLeft()+2*GetDevicePixelRatio();
47278
- var top=this.GetTop()+3*GetDevicePixelRatio();
47279
- this.YClose=this.KLineTitlePaint.YClose;
47280
- var upperSymbol=this.HQChart.Symbol.toUpperCase();
47281
-
47282
- if (this.IsHScreen)
47283
- {
47284
- this.Canvas.save();
47285
- var x=this.GetLeft()+this.Height, y=this.GetTop();
47286
-
47287
- this.Canvas.translate(x, y);
47288
- this.Canvas.rotate(90 * Math.PI / 180);
47289
-
47290
- //x, y 作为原点
47291
- left=2*GetDevicePixelRatio();
47292
- top=3*GetDevicePixelRatio();
47293
- }
47294
-
47295
- this.Canvas.textBaseline="top";
47296
- this.Canvas.textAlign="left";
47297
- this.Canvas.font=this.Font[0];
47298
- var labelWidth=this.Canvas.measureText('擎: ').width;
47299
-
47300
- var aryDateTime=item.DateTime.split(' ');
47301
- if (aryDateTime && aryDateTime.length==2)
47302
- {
47303
- var text=IFrameSplitOperator.FormatDateString(aryDateTime[0]);
47304
- this.Canvas.fillStyle=this.TitleColor;
47305
- this.Canvas.fillText(text, left,top);
47306
-
47307
- top+=this.LineHeight;
47308
- text=IFrameSplitOperator.FormatTimeString(aryDateTime[1]);
47309
- this.Canvas.fillText(text, left,top);
47310
- }
47311
-
47312
- var close=item.Close;
47313
- var increase=item.Increase;
47314
- var vol=item.Vol;
47315
- var amount=item.Amount;
47316
- if (item.Before) //读取盘前数据
47317
- {
47318
- close=item.Before.Close;
47319
- increase=item.Before.Increase;
47320
- vol=item.Before.Vol;
47321
- amount=item.Before.Amount;
47322
- }
47323
-
47324
- //最新价格
47325
- top+=this.LineHeight;
47326
- this.Canvas.fillStyle=this.TitleColor;
47327
- text=g_JSChartLocalization.GetText('Tooltip-Price',this.LanguageID);
47328
- this.Canvas.fillText(text, left,top);
47329
- var color=this.KLineTitlePaint.GetColor(close,this.YClose);
47330
- var text=close.toFixed(defaultfloatPrecision);
47331
- this.Canvas.fillStyle=color;
47332
- this.Canvas.fillText(text,left+labelWidth,top);
47333
-
47334
- var isShowAvPrice=true;
47335
- if (item.Before) isShowAvPrice=false; //集合竞价均价
47336
- else if (MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol)) isShowAvPrice=false; //外汇没有均价
47337
- else if (MARKET_SUFFIX_NAME.IsET(upperSymbol) && !MARKET_SUFFIX_NAME.IsETShowAvPrice(upperSymbol)) isShowAvPrice=false;
47338
- else if (MARKET_SUFFIX_NAME.IsShowAvPrice && !MARKET_SUFFIX_NAME.IsShowAvPrice(upperSymbol)) isShowAvPrice=false;
47339
-
47340
- //均价
47341
- if (isShowAvPrice && IFrameSplitOperator.IsNumber(item.AvPrice) && this.IsShowAveragePrice)
47342
- {
47343
- top+=this.LineHeight;
47344
- this.Canvas.fillStyle=this.TitleColor;
47345
- text=g_JSChartLocalization.GetText('Tooltip-AvPrice',this.LanguageID);
47346
- this.Canvas.fillText(text, left,top);
47347
- var color=this.KLineTitlePaint.GetColor(item.AvPrice,this.YClose);
47348
- var text=item.AvPrice.toFixed(defaultfloatPrecision);
47349
- this.Canvas.fillStyle=color;
47350
- this.Canvas.fillText(text,left+labelWidth,top);
47351
- }
47352
-
47353
- //涨幅
47354
- top+=this.LineHeight;
47355
- this.Canvas.fillStyle=this.TitleColor;
47356
- text=g_JSChartLocalization.GetText('Tooltip-Increase',this.LanguageID);
47357
- this.Canvas.fillText(text, left,top);
47358
- var value=(close-this.YClose)/this.YClose*100;
47359
- var color = this.KLineTitlePaint.GetColor(value, 0);
47360
- var text = value.toFixed(2)+'%';
47361
- this.Canvas.fillStyle=color;
47362
- this.Canvas.fillText(text,left+labelWidth,top);
47363
-
47364
- //成交量
47365
- if (IFrameSplitOperator.IsNumber(vol))
47366
- {
47367
- this.Canvas.fillStyle=this.TitleColor;
47368
- top+=this.LineHeight;
47369
- text=g_JSChartLocalization.GetText('Tooltip-Vol',this.LanguageID);
47370
- this.Canvas.fillText(text, left,top);
47371
- var text=IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);
47372
- this.Canvas.fillText(text,left+labelWidth,top);
47373
- }
47374
-
47375
- //成交金额
47376
- if (IFrameSplitOperator.IsNumber(amount))
47377
- {
47378
- top+=this.LineHeight;
47379
- text=g_JSChartLocalization.GetText('Tooltip-Amount',this.LanguageID);
47380
- this.Canvas.fillText(text, left,top);
47381
- var text=IFrameSplitOperator.FormatValueString(amount,2,this.LanguageID);
47382
- this.Canvas.fillText(text,left+labelWidth,top);
47383
- }
47384
-
47385
- if (IFrameSplitOperator.IsNumber(item.Position))
47386
- {
47387
- top+=this.LineHeight;
47388
- text=g_JSChartLocalization.GetText('Tooltip-Position',this.LanguageID);
47389
- this.Canvas.fillText(text, left,top);
47390
- var text=IFrameSplitOperator.FormatValueString(item.Position,2,this.LanguageID);
47391
- this.Canvas.fillText(text,left+labelWidth,top);
47392
- }
47393
-
47394
- if (this.IsHScreen) this.Canvas.restore();
47395
- }
47396
- */
47397
47288
  }
47398
47289
 
47399
47290
  //PC端 分时图tooltip左侧固定
@@ -47549,6 +47440,7 @@ function MinuteLeftTooltipPaint()
47549
47440
  if (this.HQChart.Symbol) upperSymbol=this.HQChart.Symbol.toUpperCase();
47550
47441
  var defaultfloatPrecision=GetfloatPrecision(upperSymbol);//价格小数位数
47551
47442
  if (upperSymbol) isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
47443
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
47552
47444
 
47553
47445
  if (drawData.Type==0) //连续交易
47554
47446
  {
@@ -47572,7 +47464,7 @@ function MinuteLeftTooltipPaint()
47572
47464
  var titleItem=this.ForamtIncrease(item.Close,"PCTooltip-Increase");
47573
47465
  if (titleItem) aryText.push(titleItem);
47574
47466
 
47575
- var titleItem=this.FormatVol(item.Vol,'PCTooltip-Vol');
47467
+ var titleItem=this.FormatVol(item.Vol/unit,'PCTooltip-Vol');
47576
47468
  if (titleItem) aryText.push(titleItem);
47577
47469
 
47578
47470
  if (IFrameSplitOperator.IsNumber(item.Amount))
@@ -47618,10 +47510,10 @@ function MinuteLeftTooltipPaint()
47618
47510
 
47619
47511
  if (IFrameSplitOperator.IsNonEmptyArray(item.Vol))
47620
47512
  {
47621
- var titleItem=this.FormatVol(item.Vol[0],'PCTooltip-AC-Vol');
47513
+ var titleItem=this.FormatVol(item.Vol[0]/unit,'PCTooltip-AC-Vol');
47622
47514
  if (titleItem) aryText.push(titleItem);
47623
47515
 
47624
- var titleItem=this.FormatVol(item.Vol[1],'PCTooltip-AC-NotMatchVol');
47516
+ var titleItem=this.FormatVol(item.Vol[1]/unit,'PCTooltip-AC-NotMatchVol');
47625
47517
  if (titleItem) aryText.push(titleItem);
47626
47518
  }
47627
47519
  }
@@ -58281,8 +58173,8 @@ function DynamicKLineTitlePainting()
58281
58173
 
58282
58174
  if (IFrameSplitOperator.IsNumber(item.Vol)) //成交量
58283
58175
  {
58284
- var vol=item.Vol;
58285
- if (upperSymbol && MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol)) vol/=100; //A股原始单位股, 转成股
58176
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
58177
+ var vol=item.Vol/unit;
58286
58178
  var text=g_JSChartLocalization.GetText('KTitle-Vol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);
58287
58179
  aryText.push({ Text:text, Color:this.VolColor});
58288
58180
  }
@@ -58712,6 +58604,7 @@ function DynamicMinuteTitlePainting()
58712
58604
  var upperSymbol=this.Symbol.toUpperCase();
58713
58605
  var defaultfloatPrecision=GetfloatPrecision(this.Symbol); //价格小数位数
58714
58606
  var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
58607
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
58715
58608
 
58716
58609
  var item=data.Data;
58717
58610
  var isLastOne=data.IsLastOne;
@@ -58789,7 +58682,7 @@ function DynamicMinuteTitlePainting()
58789
58682
 
58790
58683
  if (IFrameSplitOperator.IsNumber(vol))
58791
58684
  {
58792
- var text=g_JSChartLocalization.GetText('MTitle-Vol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);
58685
+ var text=g_JSChartLocalization.GetText('MTitle-Vol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(vol/unit,2,this.LanguageID);
58793
58686
  aryText.push({Text:text, Color:this.VolColor});
58794
58687
  }
58795
58688
 
@@ -58896,7 +58789,8 @@ function DynamicMinuteTitlePainting()
58896
58789
  var aryText=[] //{ Color: Text: }
58897
58790
 
58898
58791
  var defaultfloatPrecision=GetfloatPrecision(this.Symbol);//价格小数位数
58899
-
58792
+ var upperSymbol=this.Symbol.toUpperCase();
58793
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
58900
58794
  //股票名称
58901
58795
  if (this.IsShowName) aryText.push({Text:this.Name, Color:this.NameColor});
58902
58796
 
@@ -58948,14 +58842,14 @@ function DynamicMinuteTitlePainting()
58948
58842
  {
58949
58843
  var filedName='MTitle-AC-Vol';
58950
58844
  if (data.Ver==1.0) filedName="MTitle-Vol";
58951
- var text=g_JSChartLocalization.GetText(filedName,this.LanguageID)+IFrameSplitOperator.FromatIntegerString(item.Vol[0],2);
58845
+ var text=g_JSChartLocalization.GetText(filedName,this.LanguageID)+IFrameSplitOperator.FromatIntegerString(item.Vol[0]/unit,2);
58952
58846
  aryText.push({Text:text, Color:this.VolColor});
58953
58847
  }
58954
58848
 
58955
58849
  //未匹配量
58956
58850
  if (IFrameSplitOperator.IsNumber(item.Vol[1]) && this.CallAuctionShowTitle.has("MTitle-AC-NotMatchVol"))
58957
58851
  {
58958
- var text=g_JSChartLocalization.GetText('MTitle-AC-NotMatchVol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(item.Vol[1],2);
58852
+ var text=g_JSChartLocalization.GetText('MTitle-AC-NotMatchVol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(item.Vol[1]/unit,2);
58959
58853
  aryText.push({Text:text, Color:this.VolColor});
58960
58854
  }
58961
58855
 
@@ -89981,7 +89875,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
89981
89875
  var symbol=data.stock[0].symbol;
89982
89876
  var upperSymbol=symbol.toUpperCase();
89983
89877
  var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);
89984
-
89878
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
89985
89879
  var yClose=data.stock[0].yclose;
89986
89880
  var preClose=data.stock[0].yclose; //前一个数据价格
89987
89881
  var stockData=data.stock[0];
@@ -90008,8 +89902,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
90008
89902
  item.Price=jsData[1];
90009
89903
  if (!item.Price) item.Price=preClose;
90010
89904
  else preClose=item.Price;
90011
- if (isSHSZ) item.Vol[0]=jsData[2]/100; //沪深股票原始单位股
90012
- else item.Vol[0]=jsData[2];
89905
+ item.Vol[0]=jsData[2];
90013
89906
  item.Amount=jsData[3];
90014
89907
 
90015
89908
  if (IFrameSplitOperator.IsNumber(jsData[4]) && jsData[4]>19000101) //日期
@@ -90045,7 +89938,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
90045
89938
  beforeOpenData.Data.push(item);
90046
89939
  }
90047
89940
 
90048
- beforeOpenData.VolMax=max;
89941
+ beforeOpenData.VolMax=max/unit;
90049
89942
  beforeOpenData.VolMin=0;
90050
89943
  }
90051
89944
  else if (beforeOpenData.Ver==3.0)
@@ -90073,7 +89966,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
90073
89966
  beforeOpenData.Data.push(item);
90074
89967
  }
90075
89968
 
90076
- beforeOpenData.VolMax=max;
89969
+ beforeOpenData.VolMax=max/unit;
90077
89970
  beforeOpenData.VolMin=0;
90078
89971
  }
90079
89972
 
@@ -90088,12 +89981,14 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
90088
89981
  var stockData=data.stock[0];
90089
89982
  var date=stockData.date; //日期
90090
89983
  if (!stockData.afterinfo) return null;
90091
-
89984
+ var symbol=data.stock[0].symbol;
89985
+ var upperSymbol=symbol.toUpperCase();
90092
89986
  var afterCloseData={ Data:[], TotalCount:3*60, Ver:2.0, Date:date };
90093
89987
  var item=stockData.afterinfo;
90094
89988
  if (IFrameSplitOperator.IsNumber(item.totalcount)) afterCloseData.TotalCount=item.totalcount;
90095
89989
  if (IFrameSplitOperator.IsNumber(item.ver)) afterCloseData.Ver=item.ver;
90096
89990
  var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_AFTERCLOSE_EXTENDDATA; //扩展数据序号
89991
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
90097
89992
 
90098
89993
  if (afterCloseData.Ver==1.0)
90099
89994
  {
@@ -90139,7 +90034,7 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
90139
90034
  afterCloseData.Data.push(item);
90140
90035
  }
90141
90036
 
90142
- afterCloseData.VolMax=max;
90037
+ afterCloseData.VolMax=max/unit;
90143
90038
  afterCloseData.VolMin=0;
90144
90039
  }
90145
90040
  else if (afterCloseData.Ver==3.0)
@@ -90166,7 +90061,7 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
90166
90061
  afterCloseData.Data.push(item);
90167
90062
  }
90168
90063
 
90169
- afterCloseData.VolMax=max;
90064
+ afterCloseData.VolMax=max/unit;
90170
90065
  afterCloseData.VolMin=0;
90171
90066
  }
90172
90067
 
@@ -90203,8 +90098,7 @@ MinuteChartContainer.JsonDataToMinuteData=function(data,isBeforeData)
90203
90098
  item.Open=jsData.open;
90204
90099
  item.High=jsData.high;
90205
90100
  item.Low=jsData.low;
90206
- if (isSHSZ) item.Vol=jsData.vol/100; //沪深股票原始单位股
90207
- else item.Vol=jsData.vol;
90101
+ item.Vol=jsData.vol;
90208
90102
  item.Amount=jsData.amount;
90209
90103
  if (jsData.date>0) date=jsData.date; //分钟数据中有日期 优先使用
90210
90104
  item.DateTime=date.toString()+" "+jsData.time.toString();
@@ -90288,7 +90182,6 @@ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
90288
90182
 
90289
90183
  if (jsData[extendDataIndex]) item.ExtendData=jsData[extendDataIndex];
90290
90184
  item.DateTime=item.Date.toString()+" "+item.Time.toString();
90291
- if (isSHSZ) item.Vol=item.Vol/100; //沪深股票原始单位股
90292
90185
 
90293
90186
  if (IFrameSplitOperator.IsNumber(minuteData.YClose) && item.Close)
90294
90187
  item.Increase=(item.Close-minuteData.YClose)/minuteData.YClose*100; //涨幅 (最新价格-昨收)/昨收*100;
@@ -90382,8 +90275,7 @@ MinuteChartContainer.JsonDataToMinuteDataArray=function(data)
90382
90275
  item.High=jsData[3];
90383
90276
  item.Low=jsData[4];
90384
90277
  item.Increase=null;
90385
- if (isSHSZ) item.Vol=jsData[5]/100; //原始单位股
90386
- else item.Vol=jsData[5];
90278
+ item.Vol=jsData[5];
90387
90279
  item.Amount=jsData[6];
90388
90280
  if (7<jsData.length && jsData[7]>0) item.AvPrice=jsData[7]; //均价
90389
90281
  item.DateTime=date.toString()+" "+jsData[0].toString();
@@ -90462,12 +90354,8 @@ MinuteChartContainer.JsonDataToHistoryMinuteLineColorData=function(data)
90462
90354
 
90463
90355
  MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, isBeforeOpen, symbol)
90464
90356
  {
90465
- var isSHSZ=false;
90466
- if (symbol)
90467
- {
90468
- var upperSymbol=symbol.toUpperCase();
90469
- isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);
90470
- }
90357
+ var upperSymbol=symbol?symbol.toUpperCase():null;
90358
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
90471
90359
 
90472
90360
  var date=callAuctionData.Date;
90473
90361
  var yClose=callAuctionData.YClose;
@@ -90487,7 +90375,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
90487
90375
  item.Price=jsData[1];
90488
90376
  if (!item.Price) item.Price=preClose;
90489
90377
  else preClose=item.Price;
90490
- item.Vol[0]=isSHSZ ? jsData[2]/100 : jsData[2]; //沪深股票原始单位股
90378
+ item.Vol[0]=jsData[2]; //沪深股票原始单位股
90491
90379
  item.Amount=jsData[3];
90492
90380
  if (IFrameSplitOperator.IsNumber(jsData[4])) //日期
90493
90381
  item.Date=jsData[4];
@@ -90522,7 +90410,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
90522
90410
  callAuctionData.Data.push(item);
90523
90411
  }
90524
90412
 
90525
- callAuctionData.VolMax=max;
90413
+ callAuctionData.VolMax=max/unit;
90526
90414
  callAuctionData.VolMin=0;
90527
90415
  }
90528
90416
  else if (beforeOpenData.Ver==3.0)
@@ -90550,7 +90438,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
90550
90438
  callAuctionData.Data.push(item);
90551
90439
  }
90552
90440
 
90553
- callAuctionData.VolMax=max;
90441
+ callAuctionData.VolMax=max/unit;
90554
90442
  callAuctionData.VolMin=0;
90555
90443
  }
90556
90444
  }
@@ -90606,201 +90494,6 @@ MinuteChartContainer.JosnDataToAfterCloseDataArray=function(data)
90606
90494
  return aryDay;
90607
90495
  }
90608
90496
 
90609
- /*
90610
- 历史分钟走势图
90611
- */
90612
- /* 废弃 统一使用 MinuteChartContainer
90613
- function HistoryMinuteChartContainer(uielement)
90614
- {
90615
- this.newMethod=MinuteChartContainer; //派生
90616
- this.newMethod(uielement);
90617
- delete this.newMethod;
90618
-
90619
- this.HistoryMinuteApiUrl="http://127.0.0.1:8080/cache/minuteday/day/";
90620
- this.ClassName='HistoryMinuteChartContainer';
90621
-
90622
- //创建主图K线画法
90623
- this.CreateMainKLine=function()
90624
- {
90625
- //分钟线
90626
- var minuteLine=new ChartMinutePriceLine();
90627
- minuteLine.Canvas=this.Canvas;
90628
- minuteLine.ChartBorder=this.Frame.SubFrame[0].Frame.ChartBorder;
90629
- minuteLine.ChartFrame=this.Frame.SubFrame[0].Frame;
90630
- minuteLine.Name="Minute-Line";
90631
- minuteLine.Color=g_JSChartResource.Minute.PriceColor;
90632
-
90633
- this.ChartPaint[0]=minuteLine;
90634
-
90635
- //分钟线均线
90636
- var averageLine=new ChartLine();
90637
- averageLine.Canvas=this.Canvas;
90638
- averageLine.ChartBorder=this.Frame.SubFrame[0].Frame.ChartBorder;
90639
- averageLine.ChartFrame=this.Frame.SubFrame[0].Frame;
90640
- averageLine.Name="Minute-Average-Line";
90641
- averageLine.Color=g_JSChartResource.Minute.AvPriceColor;
90642
- this.ChartPaint[1]=averageLine;
90643
-
90644
- var averageLine=new ChartMinuteVolumBar();
90645
- averageLine.Color=g_JSChartResource.Minute.VolBarColor;
90646
- averageLine.Canvas=this.Canvas;
90647
- averageLine.ChartBorder=this.Frame.SubFrame[1].Frame.ChartBorder;
90648
- averageLine.ChartFrame=this.Frame.SubFrame[1].Frame;
90649
- averageLine.Name="Minute-Vol-Bar";
90650
- this.ChartPaint[2]=averageLine;
90651
-
90652
-
90653
- this.TitlePaint[0]=new DynamicMinuteTitlePainting();
90654
- this.TitlePaint[0].Frame=this.Frame.SubFrame[0].Frame;
90655
- this.TitlePaint[0].Canvas=this.Canvas;
90656
- this.TitlePaint[0].IsShowDate=true;
90657
- }
90658
-
90659
- //设置交易日期
90660
- this.ChangeTradeDate=function(trdateDate)
90661
- {
90662
- if (!trdateDate) return;
90663
-
90664
- this.TradeDate=trdateDate;
90665
- this.RequestData(); //更新数据
90666
- }
90667
-
90668
- this.RequestData=function()
90669
- {
90670
- var date=new Date();
90671
- var nowDate=date.getFullYear()*10000+(date.getMonth()+1)*100+date.getDate();
90672
- if (nowDate==this.TradeDate) this.RequestMinuteData();
90673
- else this.RequestHistoryMinuteData();
90674
- }
90675
-
90676
- //请求分钟数据
90677
- this.RequestHistoryMinuteData=function()
90678
- {
90679
- var self=this;
90680
- var url=this.HistoryMinuteApiUrl+this.TradeDate.toString()+"/"+this.Symbol+".json";
90681
-
90682
- JSNetwork.HttpRequest({
90683
- url: url,
90684
- type:"get",
90685
- dataType: "json",
90686
- async:true,
90687
- success: function (data)
90688
- {
90689
- self.ChartSplashPaint.EnableSplash(false);
90690
- self.RecvHistoryMinuteData(data);
90691
- },
90692
- error:function(reqeust)
90693
- {
90694
- self.ChartSplashPaint.EnableSplash(false);
90695
- self.RecvHistoryMinuteError(reqeust);
90696
- }
90697
- });
90698
- }
90699
-
90700
- this.RecvHistoryMinuteError=function(reqeust)
90701
- {
90702
- if (reqeust.status!=404) return;
90703
-
90704
- var sourceData=new ChartData();
90705
- this.SourceData=sourceData;
90706
-
90707
- for(var i in this.ChartPaint)
90708
- {
90709
- this.ChartPaint[i].Data=sourceData;
90710
- if (i==0) this.ChartPaint[i].NotSupportMessage='没有权限访问!';
90711
- }
90712
-
90713
- this.TitlePaint[0].Data=this.SourceData; //动态标题
90714
- this.TitlePaint[0].Symbol=this.Symbol;
90715
- this.TitlePaint[0].Name=null;
90716
-
90717
- this.Draw();
90718
- }
90719
-
90720
- this.RecvHistoryMinuteData=function(data)
90721
- {
90722
- var aryMinuteData=HistoryMinuteChartContainer.JsonDataToMinuteData(data);
90723
-
90724
- //原始数据
90725
- var sourceData=new ChartData();
90726
- sourceData.Data=aryMinuteData;
90727
-
90728
- this.TradeDate=data.date;
90729
-
90730
- this.SourceData=sourceData;
90731
- this.Symbol=data.symbol;
90732
- this.Name=data.name;
90733
-
90734
- this.BindMainData(sourceData,data.day.yclose);
90735
-
90736
- if (this.Frame.SubFrame.length>2)
90737
- {
90738
- var bindData=new ChartData();
90739
- bindData.Data=aryMinuteData;
90740
- for(var i=2; i<this.Frame.SubFrame.length; ++i)
90741
- {
90742
- this.BindIndexData(i,bindData);
90743
- }
90744
- }
90745
-
90746
- this.UpdateFrameMaxMin(); //调整坐标最大 最小值
90747
- this.Frame.SetSizeChage(true);
90748
- this.Draw();
90749
-
90750
- //this.AutoUpdata();
90751
- }
90752
-
90753
- }
90754
-
90755
- //API 返回数据 转化为array[]
90756
- HistoryMinuteChartContainer.JsonDataToMinuteData=function(data)
90757
- {
90758
- var aryMinuteData=[];
90759
- for(var i in data.minute.time)
90760
- {
90761
- var item=new MinuteData();
90762
-
90763
- if (data.minute.price[i]<=0 && i>0) //当前这一分钟价格为空,使用上一分钟的数据
90764
- {
90765
- item.Close=aryMinuteData[i-1].Close;
90766
- item.Open=aryMinuteData[i-1].Close;
90767
- item.High=item.Close;
90768
- item.Low=item.Close;
90769
- item.Vol=data.minute.vol[i]; //原始单位股
90770
- item.Amount=data.minute.amount[i];
90771
- item.DateTime=data.date.toString()+" "+data.minute.time[i].toString();
90772
- //item.Increate=jsData.increate;
90773
- //item.Risefall=jsData.risefall;
90774
- item.AvPrice=aryMinuteData[i-1].AvPrice;
90775
- }
90776
- else
90777
- {
90778
- item.Close=data.minute.price[i];
90779
- item.Open=data.minute.open[i];
90780
- item.High=data.minute.high[i];
90781
- item.Low=data.minute.low[i];
90782
- item.Vol=data.minute.vol[i]; //原始单位股
90783
- item.Amount=data.minute.amount[i];
90784
- item.DateTime=data.date.toString()+" "+data.minute.time[i].toString();
90785
- //item.Increate=jsData.increate;
90786
- //item.Risefall=jsData.risefall;
90787
- item.AvPrice=data.minute.avprice[i];
90788
- }
90789
-
90790
- //价格是0的 都用空
90791
- if (item.Open<=0) item.Open=null;
90792
- if (item.Close<=0) item.Close=null;
90793
- if (item.AvPrice<=0) item.AvPrice=null;
90794
- if (item.High<=0) item.High=null;
90795
- if (item.Low<=0) item.Low=null;
90796
-
90797
- aryMinuteData[i]=item;
90798
- }
90799
-
90800
- return aryMinuteData;
90801
- }
90802
- */
90803
-
90804
90497
  /////////////////////////////////////////////////////////////////////////////
90805
90498
  // 自定义指数
90806
90499
  //
@@ -95861,6 +95554,16 @@ var MARKET_SUFFIX_NAME=
95861
95554
  if (ChartData.IsMinutePeriod(period,true)) return false; //内置分钟K线不支持复权
95862
95555
 
95863
95556
  return true;
95557
+ },
95558
+
95559
+ //获取成交量单位
95560
+ GetVolUnit:function(upperSymbol)
95561
+ {
95562
+ if (!upperSymbol) return 1;
95563
+ if (MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol)) return 100; //单位手=100股
95564
+ if (MARKET_SUFFIX_NAME.IsBJ(upperSymbol)) return 100; //单位手=100股
95565
+
95566
+ return 1;
95864
95567
  }
95865
95568
  }
95866
95569
 
@@ -99152,6 +98855,8 @@ function GetLocalTime(i) //得到标准时区的时间的函数
99152
98855
 
99153
98856
 
99154
98857
 
98858
+
98859
+
99155
98860
  /*
99156
98861
  Copyright (c) 2018 jones
99157
98862
 
@@ -111635,9 +111340,7 @@ function JSSymbolData(ast,option,jsExecute)
111635
111340
  return kData.GetClose();
111636
111341
  case 'VOL':
111637
111342
  case 'V':
111638
- if (MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol))
111639
- return kData.GetVol(100); //A股的 把股转成手
111640
- return kData.GetVol();
111343
+ return kData.GetVol(MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol));
111641
111344
  case 'OPEN':
111642
111345
  case 'O':
111643
111346
  return kData.GetOpen();
@@ -112266,9 +111969,7 @@ function JSSymbolData(ast,option,jsExecute)
112266
111969
  return this.Data.GetClose();
112267
111970
  case 'VOL':
112268
111971
  case 'V':
112269
- if (MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol) && this.DataType==HQ_DATA_TYPE.KLINE_ID) //!! A股K线量单位时股,分时图单位还是手
112270
- return this.Data.GetVol(100); //A股的 把股转成手
112271
- return this.Data.GetVol();
111972
+ return this.Data.GetVol(MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol));
112272
111973
  case 'OPEN':
112273
111974
  case 'O':
112274
111975
  return this.Data.GetOpen();
@@ -112514,9 +112215,7 @@ function JSSymbolData(ast,option,jsExecute)
112514
112215
  return result.GetAmount();
112515
112216
  case 'V':
112516
112217
  case "VOL":
112517
- if (MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol))
112518
- return result.GetVol(100);
112519
- return result.GetVol();
112218
+ return result.GetVol(MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol));
112520
112219
  case "VOLINSTK":
112521
112220
  return result.GetPosition();
112522
112221
  default:
@@ -145394,6 +145093,7 @@ function JSDialogTooltip()
145394
145093
  {
145395
145094
  var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
145396
145095
  var upperSymbol=this.HQChart.Symbol.toUpperCase();
145096
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
145397
145097
  var priceFormat=0;
145398
145098
  if (this.Style==1) priceFormat=1;
145399
145099
 
@@ -145411,7 +145111,7 @@ function JSDialogTooltip()
145411
145111
  this.ForamtPrice(data.High,yClose, defaultfloatPrecision,'DialogTooltip-High',priceFormat),
145412
145112
  this.ForamtPrice(data.Low,yClose, defaultfloatPrecision,'DialogTooltip-Low',priceFormat),
145413
145113
  this.ForamtPrice(data.Close,yClose, defaultfloatPrecision,'DialogTooltip-Close',priceFormat),
145414
- this.FormatVol(data.Vol,'DialogTooltip-Vol' ),
145114
+ this.FormatVol(data.Vol/unit,'DialogTooltip-Vol' ),
145415
145115
  this.FormatAmount(data.Amount,'DialogTooltip-Amount' ),
145416
145116
  this.FormatIncrease(data.Close,yClose,defaultfloatPrecision,'DialogTooltip-Increase',priceFormat),
145417
145117
  this.FormatAmplitude(data.High,data.Low,yClose,defaultfloatPrecision,'DialogTooltip-Amplitude',priceFormat),
@@ -145473,6 +145173,8 @@ function JSDialogTooltip()
145473
145173
  this.GetFormatMinuteTooltipText=function(data)
145474
145174
  {
145475
145175
  var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
145176
+ var upperSymbol=this.HQChart.Symbol.toUpperCase();
145177
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
145476
145178
  var aryText=[];
145477
145179
  if (data.Type==0) //连续交易
145478
145180
  {
@@ -145487,7 +145189,7 @@ function JSDialogTooltip()
145487
145189
  this.ForamtPrice(item.AvPrice,item.YClose, defaultfloatPrecision,'DialogTooltip-AvPrice', 1),
145488
145190
  this.FormatRisefall(item.Close,item.YClose, defaultfloatPrecision,'DialogTooltip-Risefall'),
145489
145191
  this.FormatIncrease(item.Close,item.YClose,defaultfloatPrecision,'DialogTooltip-Increase', 1),
145490
- this.FormatVol(item.Vol,'DialogTooltip-Vol' ),
145192
+ this.FormatVol(item.Vol/unit,'DialogTooltip-Vol' ),
145491
145193
  this.FormatAmount(item.Amount,'DialogTooltip-Amount' ),
145492
145194
  ];
145493
145195
 
@@ -145520,7 +145222,7 @@ function JSDialogTooltip()
145520
145222
  this.FormatTime(item.Time, null, timeForamt, 'DialogTooltip-Time'),
145521
145223
  this.ForamtPrice(item.Price,item.YClose, defaultfloatPrecision,'DialogTooltip-AC-Price',1),
145522
145224
  this.FormatIncrease(item.Price,item.YClose,defaultfloatPrecision,'DialogTooltip-AC-Increase',1),
145523
- this.FormatVol(item.Vol[0],'DialogTooltip-AC-Vol' ),
145225
+ this.FormatVol(item.Vol[0]/unit,'DialogTooltip-AC-Vol' ),
145524
145226
  ];
145525
145227
  }
145526
145228
  else
@@ -146385,6 +146087,7 @@ function JSFloatTooltip()
146385
146087
  var symbol=kItem.Symbol;
146386
146088
  var upperSymbol=symbol.toUpperCase();
146387
146089
  var defaultfloatPrecision=GetfloatPrecision(symbol);//价格小数位数
146090
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
146388
146091
 
146389
146092
  //日期
146390
146093
  var dateItem=this.ForamtDate(data.Date,"YYYY/MM/DD/W",'FloatTooltip-Date' );
@@ -146406,7 +146109,7 @@ function JSFloatTooltip()
146406
146109
  this.ForamtPrice(data.Low,yClose, defaultfloatPrecision,'FloatTooltip-Low'),
146407
146110
  this.ForamtPrice(data.Close,yClose, defaultfloatPrecision,'FloatTooltip-Close'),
146408
146111
  this.ForamtPrice(data.YClose,data.YClose, defaultfloatPrecision,'FloatTooltip-YClose'),
146409
- this.FormatVol(data.Vol,'FloatTooltip-Vol' ),
146112
+ this.FormatVol(data.Vol/unit,'FloatTooltip-Vol' ),
146410
146113
  this.FormatAmount(data.Amount,'FloatTooltip-Amount' ),
146411
146114
  this.FormatIncrease(data.Close,yClose,defaultfloatPrecision,'FloatTooltip-Increase'),
146412
146115
  this.FormatAmplitude(data.High,data.Low,yClose,defaultfloatPrecision,'FloatTooltip-Amplitude'),
@@ -148962,7 +148665,7 @@ function HQChartScriptWorker()
148962
148665
 
148963
148666
 
148964
148667
 
148965
- var HQCHART_VERSION="1.1.14127";
148668
+ var HQCHART_VERSION="1.1.14134";
148966
148669
 
148967
148670
  function PrintHQChartVersion()
148968
148671
  {