hqchart 1.1.14128 → 1.1.14133

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.
@@ -6971,6 +6971,13 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
6971
6971
  this.DialogModifyIndexParam; //指标参数修改
6972
6972
 
6973
6973
 
6974
+ this.GetVolUnit=function() //成交量单位
6975
+ {
6976
+ var upperSymbol=this.Symbol?this.Symbol.toUpperCase():null;
6977
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
6978
+ return unit;
6979
+ }
6980
+
6974
6981
  this.ClearStockCache=function()
6975
6982
  {
6976
6983
  this.StockCache.Data=null;
@@ -35314,6 +35321,13 @@ function ChartMinuteVolumBar()
35314
35321
  return this.DrawLinePoint({ MinuteVolBar:true });
35315
35322
  }
35316
35323
 
35324
+ this.GetVolUnit=function()
35325
+ {
35326
+ var upperSymbol=this.Symbol?this.Symbol.toUpperCase():null;
35327
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
35328
+ return unit;
35329
+ }
35330
+
35317
35331
  this.Draw=function()
35318
35332
  {
35319
35333
  var isHScreen = (this.ChartFrame.IsHScreen === true);
@@ -35336,9 +35350,11 @@ function ChartMinuteVolumBar()
35336
35350
  var yBottom=this.ChartFrame.GetYFromData(0);
35337
35351
  var yPrice=this.YClose; //上一分钟的价格
35338
35352
  var data=this.Data;
35353
+
35339
35354
  var bShowColorBar=MARKET_SUFFIX_NAME.IsShowMinuteColorVolBar(this.Symbol);
35340
-
35341
35355
  if (bShowColorBar) this.Canvas.strokeStyle=this.CustomColor;
35356
+ var unit=this.GetVolUnit();
35357
+
35342
35358
  for(var i=data.DataOffset,j=0;i<data.Data.length && j<xPointCount;++i,++j)
35343
35359
  {
35344
35360
  var item = data.Data[i];
@@ -35346,7 +35362,7 @@ function ChartMinuteVolumBar()
35346
35362
  if (!item) continue;
35347
35363
  var price=null;
35348
35364
 
35349
- vol=item.Vol;
35365
+ vol=item.Vol/unit;
35350
35366
  price=item.Close;
35351
35367
 
35352
35368
  if (!vol) continue;
@@ -35453,6 +35469,7 @@ function ChartMinuteVolumBar()
35453
35469
  var isHScreen=(this.ChartFrame.IsHScreen===true);
35454
35470
  var yPrice=this.YClose; //上一分钟的价格
35455
35471
  var yBottom=this.ChartFrame.GetYFromData(0);
35472
+ var unit=this.GetVolUnit();
35456
35473
  if (callAutionData.Ver==1.0)
35457
35474
  {
35458
35475
  for(var i in callAutionData.Data)
@@ -35463,12 +35480,12 @@ function ChartMinuteVolumBar()
35463
35480
  if (isBeforeOpen)
35464
35481
  {
35465
35482
  var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);
35466
- var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[0]);
35483
+ var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[0]/unit);
35467
35484
  }
35468
35485
  else
35469
35486
  {
35470
35487
  var x=this.ChartFrame.GetRightExtendXFromIndex(i,callAutionData);
35471
- var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[0]);
35488
+ var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[0]/unit);
35472
35489
  }
35473
35490
 
35474
35491
 
@@ -35501,13 +35518,13 @@ function ChartMinuteVolumBar()
35501
35518
  if (isBeforeOpen)
35502
35519
  {
35503
35520
  var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);
35504
- var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[0],false, { Range:range });
35521
+ var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[0]/unit,false, { Range:range });
35505
35522
  }
35506
35523
  else
35507
35524
  {
35508
35525
  var x=this.ChartFrame.GetRightExtendXFromIndex(i,callAutionData);
35509
- if (this.ShareAfterVol==1) var y=this.ChartFrame.GetYFromData(item.Vol[0]);
35510
- else var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[0],false, { Range:range });
35526
+ if (this.ShareAfterVol==1) var y=this.ChartFrame.GetYFromData(item.Vol[0]/unit);
35527
+ else var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[0]/unit,false, { Range:range });
35511
35528
  }
35512
35529
 
35513
35530
  this.Canvas.strokeStyle = this.GetBarColor(item.ColorID);
@@ -35531,13 +35548,13 @@ function ChartMinuteVolumBar()
35531
35548
  if (isBeforeOpen)
35532
35549
  {
35533
35550
  var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);
35534
- var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[1],false, { Range:range });
35551
+ var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[1]/unit,false, { Range:range });
35535
35552
  }
35536
35553
  else
35537
35554
  {
35538
35555
  var x=this.ChartFrame.GetRightExtendXFromIndex(i,callAutionData);
35539
- if (this.ShareAfterVol==1) var y=this.ChartFrame.GetYFromData(item.Vol[1]);
35540
- else var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[1],false, { Range:range });
35556
+ if (this.ShareAfterVol==1) var y=this.ChartFrame.GetYFromData(item.Vol[1]/unit);
35557
+ else var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[1]/unit,false, { Range:range });
35541
35558
  }
35542
35559
 
35543
35560
  this.Canvas.strokeStyle = this.GetBarColor(item.ColorID);
@@ -35586,6 +35603,7 @@ function ChartMinuteVolumBar()
35586
35603
 
35587
35604
  this.GetMaxMin=function()
35588
35605
  {
35606
+ var unit=this.GetVolUnit();
35589
35607
  var xPointCount=this.ChartFrame.XPointCount;
35590
35608
  var start=this.Data.DataOffset;
35591
35609
  if (this.ChartFrame.GlobalOption && this.ChartFrame.GlobalOption.IsValueFullRange===true)
@@ -35602,10 +35620,9 @@ function ChartMinuteVolumBar()
35602
35620
  {
35603
35621
  var item = this.Data.Data[i];
35604
35622
  if (!item || !item.Vol) continue;
35605
- if (range.Max == null) range.Max = item.Vol;
35606
- if (range.Max < item.Vol) range.Max = item.Vol;
35623
+ var value=item.Vol/unit;
35624
+ if (range.Max == null || range.Max < value) range.Max = value;
35607
35625
  }
35608
-
35609
35626
 
35610
35627
  if (this.ShareAfterVol==1)
35611
35628
  {
@@ -46675,6 +46692,7 @@ function KLineTooltipPaint()
46675
46692
  var upperSymbol;
46676
46693
  if (this.HQChart.Symbol) upperSymbol=this.HQChart.Symbol.toUpperCase();
46677
46694
  var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
46695
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
46678
46696
 
46679
46697
  var aryText=[];
46680
46698
  var result={ AryText:aryText };
@@ -46758,7 +46776,7 @@ function KLineTooltipPaint()
46758
46776
  title=g_JSChartLocalization.GetText('Tooltip-Vol',this.LanguageID);
46759
46777
  var vol=item.Vol;
46760
46778
  if (upperSymbol && MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol)) vol/=100; //A股统一转成手
46761
- text=IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);
46779
+ text=IFrameSplitOperator.FromatIntegerString(vol/unit,2,this.LanguageID);
46762
46780
  aryText.push({Title:title, TitleColor:this.TitleColor, Text:text, Color:this.VolColor });
46763
46781
  }
46764
46782
 
@@ -47135,6 +47153,7 @@ function MinuteTooltipPaint()
47135
47153
  if (this.HQChart.Symbol) upperSymbol=this.HQChart.Symbol.toUpperCase();
47136
47154
  var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
47137
47155
  var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
47156
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
47138
47157
 
47139
47158
  this.YClose=this.TitlePaint.YClose;
47140
47159
  this.YClose=item.YClose;
@@ -47201,7 +47220,7 @@ function MinuteTooltipPaint()
47201
47220
  if (IFrameSplitOperator.IsNumber(vol))
47202
47221
  {
47203
47222
  title=g_JSChartLocalization.GetText('Tooltip-Vol',this.LanguageID);
47204
- var text=IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);
47223
+ var text=IFrameSplitOperator.FromatIntegerString(vol/unit,2,this.LanguageID);
47205
47224
  aryText.push({Title:title, TitleColor:this.TitleColor, Text:text, Color:this.VolColor });
47206
47225
  }
47207
47226
 
@@ -47222,134 +47241,6 @@ function MinuteTooltipPaint()
47222
47241
 
47223
47242
  return result;
47224
47243
  }
47225
-
47226
- /*
47227
- this.DrawTooltipData=function(item)
47228
- {
47229
- //JSConsole.Chart.Log('[KLineTooltipPaint::DrawKLineData] ', item);
47230
- if (!this.HQChart.Symbol) return;
47231
-
47232
- var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
47233
- var left=this.GetLeft()+2*GetDevicePixelRatio();
47234
- var top=this.GetTop()+3*GetDevicePixelRatio();
47235
- this.YClose=this.KLineTitlePaint.YClose;
47236
- var upperSymbol=this.HQChart.Symbol.toUpperCase();
47237
-
47238
- if (this.IsHScreen)
47239
- {
47240
- this.Canvas.save();
47241
- var x=this.GetLeft()+this.Height, y=this.GetTop();
47242
-
47243
- this.Canvas.translate(x, y);
47244
- this.Canvas.rotate(90 * Math.PI / 180);
47245
-
47246
- //x, y 作为原点
47247
- left=2*GetDevicePixelRatio();
47248
- top=3*GetDevicePixelRatio();
47249
- }
47250
-
47251
- this.Canvas.textBaseline="top";
47252
- this.Canvas.textAlign="left";
47253
- this.Canvas.font=this.Font[0];
47254
- var labelWidth=this.Canvas.measureText('擎: ').width;
47255
-
47256
- var aryDateTime=item.DateTime.split(' ');
47257
- if (aryDateTime && aryDateTime.length==2)
47258
- {
47259
- var text=IFrameSplitOperator.FormatDateString(aryDateTime[0]);
47260
- this.Canvas.fillStyle=this.TitleColor;
47261
- this.Canvas.fillText(text, left,top);
47262
-
47263
- top+=this.LineHeight;
47264
- text=IFrameSplitOperator.FormatTimeString(aryDateTime[1]);
47265
- this.Canvas.fillText(text, left,top);
47266
- }
47267
-
47268
- var close=item.Close;
47269
- var increase=item.Increase;
47270
- var vol=item.Vol;
47271
- var amount=item.Amount;
47272
- if (item.Before) //读取盘前数据
47273
- {
47274
- close=item.Before.Close;
47275
- increase=item.Before.Increase;
47276
- vol=item.Before.Vol;
47277
- amount=item.Before.Amount;
47278
- }
47279
-
47280
- //最新价格
47281
- top+=this.LineHeight;
47282
- this.Canvas.fillStyle=this.TitleColor;
47283
- text=g_JSChartLocalization.GetText('Tooltip-Price',this.LanguageID);
47284
- this.Canvas.fillText(text, left,top);
47285
- var color=this.KLineTitlePaint.GetColor(close,this.YClose);
47286
- var text=close.toFixed(defaultfloatPrecision);
47287
- this.Canvas.fillStyle=color;
47288
- this.Canvas.fillText(text,left+labelWidth,top);
47289
-
47290
- var isShowAvPrice=true;
47291
- if (item.Before) isShowAvPrice=false; //集合竞价均价
47292
- else if (MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol)) isShowAvPrice=false; //外汇没有均价
47293
- else if (MARKET_SUFFIX_NAME.IsET(upperSymbol) && !MARKET_SUFFIX_NAME.IsETShowAvPrice(upperSymbol)) isShowAvPrice=false;
47294
- else if (MARKET_SUFFIX_NAME.IsShowAvPrice && !MARKET_SUFFIX_NAME.IsShowAvPrice(upperSymbol)) isShowAvPrice=false;
47295
-
47296
- //均价
47297
- if (isShowAvPrice && IFrameSplitOperator.IsNumber(item.AvPrice) && this.IsShowAveragePrice)
47298
- {
47299
- top+=this.LineHeight;
47300
- this.Canvas.fillStyle=this.TitleColor;
47301
- text=g_JSChartLocalization.GetText('Tooltip-AvPrice',this.LanguageID);
47302
- this.Canvas.fillText(text, left,top);
47303
- var color=this.KLineTitlePaint.GetColor(item.AvPrice,this.YClose);
47304
- var text=item.AvPrice.toFixed(defaultfloatPrecision);
47305
- this.Canvas.fillStyle=color;
47306
- this.Canvas.fillText(text,left+labelWidth,top);
47307
- }
47308
-
47309
- //涨幅
47310
- top+=this.LineHeight;
47311
- this.Canvas.fillStyle=this.TitleColor;
47312
- text=g_JSChartLocalization.GetText('Tooltip-Increase',this.LanguageID);
47313
- this.Canvas.fillText(text, left,top);
47314
- var value=(close-this.YClose)/this.YClose*100;
47315
- var color = this.KLineTitlePaint.GetColor(value, 0);
47316
- var text = value.toFixed(2)+'%';
47317
- this.Canvas.fillStyle=color;
47318
- this.Canvas.fillText(text,left+labelWidth,top);
47319
-
47320
- //成交量
47321
- if (IFrameSplitOperator.IsNumber(vol))
47322
- {
47323
- this.Canvas.fillStyle=this.TitleColor;
47324
- top+=this.LineHeight;
47325
- text=g_JSChartLocalization.GetText('Tooltip-Vol',this.LanguageID);
47326
- this.Canvas.fillText(text, left,top);
47327
- var text=IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);
47328
- this.Canvas.fillText(text,left+labelWidth,top);
47329
- }
47330
-
47331
- //成交金额
47332
- if (IFrameSplitOperator.IsNumber(amount))
47333
- {
47334
- top+=this.LineHeight;
47335
- text=g_JSChartLocalization.GetText('Tooltip-Amount',this.LanguageID);
47336
- this.Canvas.fillText(text, left,top);
47337
- var text=IFrameSplitOperator.FormatValueString(amount,2,this.LanguageID);
47338
- this.Canvas.fillText(text,left+labelWidth,top);
47339
- }
47340
-
47341
- if (IFrameSplitOperator.IsNumber(item.Position))
47342
- {
47343
- top+=this.LineHeight;
47344
- text=g_JSChartLocalization.GetText('Tooltip-Position',this.LanguageID);
47345
- this.Canvas.fillText(text, left,top);
47346
- var text=IFrameSplitOperator.FormatValueString(item.Position,2,this.LanguageID);
47347
- this.Canvas.fillText(text,left+labelWidth,top);
47348
- }
47349
-
47350
- if (this.IsHScreen) this.Canvas.restore();
47351
- }
47352
- */
47353
47244
  }
47354
47245
 
47355
47246
  //PC端 分时图tooltip左侧固定
@@ -47505,6 +47396,7 @@ function MinuteLeftTooltipPaint()
47505
47396
  if (this.HQChart.Symbol) upperSymbol=this.HQChart.Symbol.toUpperCase();
47506
47397
  var defaultfloatPrecision=GetfloatPrecision(upperSymbol);//价格小数位数
47507
47398
  if (upperSymbol) isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
47399
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
47508
47400
 
47509
47401
  if (drawData.Type==0) //连续交易
47510
47402
  {
@@ -47528,7 +47420,7 @@ function MinuteLeftTooltipPaint()
47528
47420
  var titleItem=this.ForamtIncrease(item.Close,"PCTooltip-Increase");
47529
47421
  if (titleItem) aryText.push(titleItem);
47530
47422
 
47531
- var titleItem=this.FormatVol(item.Vol,'PCTooltip-Vol');
47423
+ var titleItem=this.FormatVol(item.Vol/unit,'PCTooltip-Vol');
47532
47424
  if (titleItem) aryText.push(titleItem);
47533
47425
 
47534
47426
  if (IFrameSplitOperator.IsNumber(item.Amount))
@@ -47574,10 +47466,10 @@ function MinuteLeftTooltipPaint()
47574
47466
 
47575
47467
  if (IFrameSplitOperator.IsNonEmptyArray(item.Vol))
47576
47468
  {
47577
- var titleItem=this.FormatVol(item.Vol[0],'PCTooltip-AC-Vol');
47469
+ var titleItem=this.FormatVol(item.Vol[0]/unit,'PCTooltip-AC-Vol');
47578
47470
  if (titleItem) aryText.push(titleItem);
47579
47471
 
47580
- var titleItem=this.FormatVol(item.Vol[1],'PCTooltip-AC-NotMatchVol');
47472
+ var titleItem=this.FormatVol(item.Vol[1]/unit,'PCTooltip-AC-NotMatchVol');
47581
47473
  if (titleItem) aryText.push(titleItem);
47582
47474
  }
47583
47475
  }
@@ -58237,8 +58129,8 @@ function DynamicKLineTitlePainting()
58237
58129
 
58238
58130
  if (IFrameSplitOperator.IsNumber(item.Vol)) //成交量
58239
58131
  {
58240
- var vol=item.Vol;
58241
- if (upperSymbol && MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol)) vol/=100; //A股原始单位股, 转成股
58132
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
58133
+ var vol=item.Vol/unit;
58242
58134
  var text=g_JSChartLocalization.GetText('KTitle-Vol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);
58243
58135
  aryText.push({ Text:text, Color:this.VolColor});
58244
58136
  }
@@ -58668,6 +58560,7 @@ function DynamicMinuteTitlePainting()
58668
58560
  var upperSymbol=this.Symbol.toUpperCase();
58669
58561
  var defaultfloatPrecision=GetfloatPrecision(this.Symbol); //价格小数位数
58670
58562
  var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
58563
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
58671
58564
 
58672
58565
  var item=data.Data;
58673
58566
  var isLastOne=data.IsLastOne;
@@ -58745,7 +58638,7 @@ function DynamicMinuteTitlePainting()
58745
58638
 
58746
58639
  if (IFrameSplitOperator.IsNumber(vol))
58747
58640
  {
58748
- var text=g_JSChartLocalization.GetText('MTitle-Vol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);
58641
+ var text=g_JSChartLocalization.GetText('MTitle-Vol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(vol/unit,2,this.LanguageID);
58749
58642
  aryText.push({Text:text, Color:this.VolColor});
58750
58643
  }
58751
58644
 
@@ -58852,7 +58745,8 @@ function DynamicMinuteTitlePainting()
58852
58745
  var aryText=[] //{ Color: Text: }
58853
58746
 
58854
58747
  var defaultfloatPrecision=GetfloatPrecision(this.Symbol);//价格小数位数
58855
-
58748
+ var upperSymbol=this.Symbol.toUpperCase();
58749
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
58856
58750
  //股票名称
58857
58751
  if (this.IsShowName) aryText.push({Text:this.Name, Color:this.NameColor});
58858
58752
 
@@ -58904,14 +58798,14 @@ function DynamicMinuteTitlePainting()
58904
58798
  {
58905
58799
  var filedName='MTitle-AC-Vol';
58906
58800
  if (data.Ver==1.0) filedName="MTitle-Vol";
58907
- var text=g_JSChartLocalization.GetText(filedName,this.LanguageID)+IFrameSplitOperator.FromatIntegerString(item.Vol[0],2);
58801
+ var text=g_JSChartLocalization.GetText(filedName,this.LanguageID)+IFrameSplitOperator.FromatIntegerString(item.Vol[0]/unit,2);
58908
58802
  aryText.push({Text:text, Color:this.VolColor});
58909
58803
  }
58910
58804
 
58911
58805
  //未匹配量
58912
58806
  if (IFrameSplitOperator.IsNumber(item.Vol[1]) && this.CallAuctionShowTitle.has("MTitle-AC-NotMatchVol"))
58913
58807
  {
58914
- var text=g_JSChartLocalization.GetText('MTitle-AC-NotMatchVol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(item.Vol[1],2);
58808
+ var text=g_JSChartLocalization.GetText('MTitle-AC-NotMatchVol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(item.Vol[1]/unit,2);
58915
58809
  aryText.push({Text:text, Color:this.VolColor});
58916
58810
  }
58917
58811
 
@@ -89937,7 +89831,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
89937
89831
  var symbol=data.stock[0].symbol;
89938
89832
  var upperSymbol=symbol.toUpperCase();
89939
89833
  var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);
89940
-
89834
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
89941
89835
  var yClose=data.stock[0].yclose;
89942
89836
  var preClose=data.stock[0].yclose; //前一个数据价格
89943
89837
  var stockData=data.stock[0];
@@ -89964,8 +89858,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
89964
89858
  item.Price=jsData[1];
89965
89859
  if (!item.Price) item.Price=preClose;
89966
89860
  else preClose=item.Price;
89967
- if (isSHSZ) item.Vol[0]=jsData[2]/100; //沪深股票原始单位股
89968
- else item.Vol[0]=jsData[2];
89861
+ item.Vol[0]=jsData[2];
89969
89862
  item.Amount=jsData[3];
89970
89863
 
89971
89864
  if (IFrameSplitOperator.IsNumber(jsData[4]) && jsData[4]>19000101) //日期
@@ -90001,7 +89894,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
90001
89894
  beforeOpenData.Data.push(item);
90002
89895
  }
90003
89896
 
90004
- beforeOpenData.VolMax=max;
89897
+ beforeOpenData.VolMax=max/unit;
90005
89898
  beforeOpenData.VolMin=0;
90006
89899
  }
90007
89900
  else if (beforeOpenData.Ver==3.0)
@@ -90029,7 +89922,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
90029
89922
  beforeOpenData.Data.push(item);
90030
89923
  }
90031
89924
 
90032
- beforeOpenData.VolMax=max;
89925
+ beforeOpenData.VolMax=max/unit;
90033
89926
  beforeOpenData.VolMin=0;
90034
89927
  }
90035
89928
 
@@ -90044,12 +89937,14 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
90044
89937
  var stockData=data.stock[0];
90045
89938
  var date=stockData.date; //日期
90046
89939
  if (!stockData.afterinfo) return null;
90047
-
89940
+ var symbol=data.stock[0].symbol;
89941
+ var upperSymbol=symbol.toLowerCase();
90048
89942
  var afterCloseData={ Data:[], TotalCount:3*60, Ver:2.0, Date:date };
90049
89943
  var item=stockData.afterinfo;
90050
89944
  if (IFrameSplitOperator.IsNumber(item.totalcount)) afterCloseData.TotalCount=item.totalcount;
90051
89945
  if (IFrameSplitOperator.IsNumber(item.ver)) afterCloseData.Ver=item.ver;
90052
89946
  var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_AFTERCLOSE_EXTENDDATA; //扩展数据序号
89947
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
90053
89948
 
90054
89949
  if (afterCloseData.Ver==1.0)
90055
89950
  {
@@ -90095,7 +89990,7 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
90095
89990
  afterCloseData.Data.push(item);
90096
89991
  }
90097
89992
 
90098
- afterCloseData.VolMax=max;
89993
+ afterCloseData.VolMax=max/unit;
90099
89994
  afterCloseData.VolMin=0;
90100
89995
  }
90101
89996
  else if (afterCloseData.Ver==3.0)
@@ -90122,7 +90017,7 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
90122
90017
  afterCloseData.Data.push(item);
90123
90018
  }
90124
90019
 
90125
- afterCloseData.VolMax=max;
90020
+ afterCloseData.VolMax=max/unit;
90126
90021
  afterCloseData.VolMin=0;
90127
90022
  }
90128
90023
 
@@ -90159,8 +90054,7 @@ MinuteChartContainer.JsonDataToMinuteData=function(data,isBeforeData)
90159
90054
  item.Open=jsData.open;
90160
90055
  item.High=jsData.high;
90161
90056
  item.Low=jsData.low;
90162
- if (isSHSZ) item.Vol=jsData.vol/100; //沪深股票原始单位股
90163
- else item.Vol=jsData.vol;
90057
+ item.Vol=jsData.vol;
90164
90058
  item.Amount=jsData.amount;
90165
90059
  if (jsData.date>0) date=jsData.date; //分钟数据中有日期 优先使用
90166
90060
  item.DateTime=date.toString()+" "+jsData.time.toString();
@@ -90244,7 +90138,6 @@ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
90244
90138
 
90245
90139
  if (jsData[extendDataIndex]) item.ExtendData=jsData[extendDataIndex];
90246
90140
  item.DateTime=item.Date.toString()+" "+item.Time.toString();
90247
- if (isSHSZ) item.Vol=item.Vol/100; //沪深股票原始单位股
90248
90141
 
90249
90142
  if (IFrameSplitOperator.IsNumber(minuteData.YClose) && item.Close)
90250
90143
  item.Increase=(item.Close-minuteData.YClose)/minuteData.YClose*100; //涨幅 (最新价格-昨收)/昨收*100;
@@ -90338,8 +90231,7 @@ MinuteChartContainer.JsonDataToMinuteDataArray=function(data)
90338
90231
  item.High=jsData[3];
90339
90232
  item.Low=jsData[4];
90340
90233
  item.Increase=null;
90341
- if (isSHSZ) item.Vol=jsData[5]/100; //原始单位股
90342
- else item.Vol=jsData[5];
90234
+ item.Vol=jsData[5];
90343
90235
  item.Amount=jsData[6];
90344
90236
  if (7<jsData.length && jsData[7]>0) item.AvPrice=jsData[7]; //均价
90345
90237
  item.DateTime=date.toString()+" "+jsData[0].toString();
@@ -90418,12 +90310,8 @@ MinuteChartContainer.JsonDataToHistoryMinuteLineColorData=function(data)
90418
90310
 
90419
90311
  MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, isBeforeOpen, symbol)
90420
90312
  {
90421
- var isSHSZ=false;
90422
- if (symbol)
90423
- {
90424
- var upperSymbol=symbol.toUpperCase();
90425
- isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);
90426
- }
90313
+ var upperSymbol=symbol?symbol.toUpperCase():null;
90314
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
90427
90315
 
90428
90316
  var date=callAuctionData.Date;
90429
90317
  var yClose=callAuctionData.YClose;
@@ -90443,7 +90331,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
90443
90331
  item.Price=jsData[1];
90444
90332
  if (!item.Price) item.Price=preClose;
90445
90333
  else preClose=item.Price;
90446
- item.Vol[0]=isSHSZ ? jsData[2]/100 : jsData[2]; //沪深股票原始单位股
90334
+ item.Vol[0]=jsData[2]; //沪深股票原始单位股
90447
90335
  item.Amount=jsData[3];
90448
90336
  if (IFrameSplitOperator.IsNumber(jsData[4])) //日期
90449
90337
  item.Date=jsData[4];
@@ -90478,7 +90366,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
90478
90366
  callAuctionData.Data.push(item);
90479
90367
  }
90480
90368
 
90481
- callAuctionData.VolMax=max;
90369
+ callAuctionData.VolMax=max/unit;
90482
90370
  callAuctionData.VolMin=0;
90483
90371
  }
90484
90372
  else if (beforeOpenData.Ver==3.0)
@@ -90506,7 +90394,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
90506
90394
  callAuctionData.Data.push(item);
90507
90395
  }
90508
90396
 
90509
- callAuctionData.VolMax=max;
90397
+ callAuctionData.VolMax=max/unit;
90510
90398
  callAuctionData.VolMin=0;
90511
90399
  }
90512
90400
  }
@@ -90562,201 +90450,6 @@ MinuteChartContainer.JosnDataToAfterCloseDataArray=function(data)
90562
90450
  return aryDay;
90563
90451
  }
90564
90452
 
90565
- /*
90566
- 历史分钟走势图
90567
- */
90568
- /* 废弃 统一使用 MinuteChartContainer
90569
- function HistoryMinuteChartContainer(uielement)
90570
- {
90571
- this.newMethod=MinuteChartContainer; //派生
90572
- this.newMethod(uielement);
90573
- delete this.newMethod;
90574
-
90575
- this.HistoryMinuteApiUrl="http://127.0.0.1:8080/cache/minuteday/day/";
90576
- this.ClassName='HistoryMinuteChartContainer';
90577
-
90578
- //创建主图K线画法
90579
- this.CreateMainKLine=function()
90580
- {
90581
- //分钟线
90582
- var minuteLine=new ChartMinutePriceLine();
90583
- minuteLine.Canvas=this.Canvas;
90584
- minuteLine.ChartBorder=this.Frame.SubFrame[0].Frame.ChartBorder;
90585
- minuteLine.ChartFrame=this.Frame.SubFrame[0].Frame;
90586
- minuteLine.Name="Minute-Line";
90587
- minuteLine.Color=g_JSChartResource.Minute.PriceColor;
90588
-
90589
- this.ChartPaint[0]=minuteLine;
90590
-
90591
- //分钟线均线
90592
- var averageLine=new ChartLine();
90593
- averageLine.Canvas=this.Canvas;
90594
- averageLine.ChartBorder=this.Frame.SubFrame[0].Frame.ChartBorder;
90595
- averageLine.ChartFrame=this.Frame.SubFrame[0].Frame;
90596
- averageLine.Name="Minute-Average-Line";
90597
- averageLine.Color=g_JSChartResource.Minute.AvPriceColor;
90598
- this.ChartPaint[1]=averageLine;
90599
-
90600
- var averageLine=new ChartMinuteVolumBar();
90601
- averageLine.Color=g_JSChartResource.Minute.VolBarColor;
90602
- averageLine.Canvas=this.Canvas;
90603
- averageLine.ChartBorder=this.Frame.SubFrame[1].Frame.ChartBorder;
90604
- averageLine.ChartFrame=this.Frame.SubFrame[1].Frame;
90605
- averageLine.Name="Minute-Vol-Bar";
90606
- this.ChartPaint[2]=averageLine;
90607
-
90608
-
90609
- this.TitlePaint[0]=new DynamicMinuteTitlePainting();
90610
- this.TitlePaint[0].Frame=this.Frame.SubFrame[0].Frame;
90611
- this.TitlePaint[0].Canvas=this.Canvas;
90612
- this.TitlePaint[0].IsShowDate=true;
90613
- }
90614
-
90615
- //设置交易日期
90616
- this.ChangeTradeDate=function(trdateDate)
90617
- {
90618
- if (!trdateDate) return;
90619
-
90620
- this.TradeDate=trdateDate;
90621
- this.RequestData(); //更新数据
90622
- }
90623
-
90624
- this.RequestData=function()
90625
- {
90626
- var date=new Date();
90627
- var nowDate=date.getFullYear()*10000+(date.getMonth()+1)*100+date.getDate();
90628
- if (nowDate==this.TradeDate) this.RequestMinuteData();
90629
- else this.RequestHistoryMinuteData();
90630
- }
90631
-
90632
- //请求分钟数据
90633
- this.RequestHistoryMinuteData=function()
90634
- {
90635
- var self=this;
90636
- var url=this.HistoryMinuteApiUrl+this.TradeDate.toString()+"/"+this.Symbol+".json";
90637
-
90638
- JSNetwork.HttpRequest({
90639
- url: url,
90640
- type:"get",
90641
- dataType: "json",
90642
- async:true,
90643
- success: function (data)
90644
- {
90645
- self.ChartSplashPaint.EnableSplash(false);
90646
- self.RecvHistoryMinuteData(data);
90647
- },
90648
- error:function(reqeust)
90649
- {
90650
- self.ChartSplashPaint.EnableSplash(false);
90651
- self.RecvHistoryMinuteError(reqeust);
90652
- }
90653
- });
90654
- }
90655
-
90656
- this.RecvHistoryMinuteError=function(reqeust)
90657
- {
90658
- if (reqeust.status!=404) return;
90659
-
90660
- var sourceData=new ChartData();
90661
- this.SourceData=sourceData;
90662
-
90663
- for(var i in this.ChartPaint)
90664
- {
90665
- this.ChartPaint[i].Data=sourceData;
90666
- if (i==0) this.ChartPaint[i].NotSupportMessage='没有权限访问!';
90667
- }
90668
-
90669
- this.TitlePaint[0].Data=this.SourceData; //动态标题
90670
- this.TitlePaint[0].Symbol=this.Symbol;
90671
- this.TitlePaint[0].Name=null;
90672
-
90673
- this.Draw();
90674
- }
90675
-
90676
- this.RecvHistoryMinuteData=function(data)
90677
- {
90678
- var aryMinuteData=HistoryMinuteChartContainer.JsonDataToMinuteData(data);
90679
-
90680
- //原始数据
90681
- var sourceData=new ChartData();
90682
- sourceData.Data=aryMinuteData;
90683
-
90684
- this.TradeDate=data.date;
90685
-
90686
- this.SourceData=sourceData;
90687
- this.Symbol=data.symbol;
90688
- this.Name=data.name;
90689
-
90690
- this.BindMainData(sourceData,data.day.yclose);
90691
-
90692
- if (this.Frame.SubFrame.length>2)
90693
- {
90694
- var bindData=new ChartData();
90695
- bindData.Data=aryMinuteData;
90696
- for(var i=2; i<this.Frame.SubFrame.length; ++i)
90697
- {
90698
- this.BindIndexData(i,bindData);
90699
- }
90700
- }
90701
-
90702
- this.UpdateFrameMaxMin(); //调整坐标最大 最小值
90703
- this.Frame.SetSizeChage(true);
90704
- this.Draw();
90705
-
90706
- //this.AutoUpdata();
90707
- }
90708
-
90709
- }
90710
-
90711
- //API 返回数据 转化为array[]
90712
- HistoryMinuteChartContainer.JsonDataToMinuteData=function(data)
90713
- {
90714
- var aryMinuteData=[];
90715
- for(var i in data.minute.time)
90716
- {
90717
- var item=new MinuteData();
90718
-
90719
- if (data.minute.price[i]<=0 && i>0) //当前这一分钟价格为空,使用上一分钟的数据
90720
- {
90721
- item.Close=aryMinuteData[i-1].Close;
90722
- item.Open=aryMinuteData[i-1].Close;
90723
- item.High=item.Close;
90724
- item.Low=item.Close;
90725
- item.Vol=data.minute.vol[i]; //原始单位股
90726
- item.Amount=data.minute.amount[i];
90727
- item.DateTime=data.date.toString()+" "+data.minute.time[i].toString();
90728
- //item.Increate=jsData.increate;
90729
- //item.Risefall=jsData.risefall;
90730
- item.AvPrice=aryMinuteData[i-1].AvPrice;
90731
- }
90732
- else
90733
- {
90734
- item.Close=data.minute.price[i];
90735
- item.Open=data.minute.open[i];
90736
- item.High=data.minute.high[i];
90737
- item.Low=data.minute.low[i];
90738
- item.Vol=data.minute.vol[i]; //原始单位股
90739
- item.Amount=data.minute.amount[i];
90740
- item.DateTime=data.date.toString()+" "+data.minute.time[i].toString();
90741
- //item.Increate=jsData.increate;
90742
- //item.Risefall=jsData.risefall;
90743
- item.AvPrice=data.minute.avprice[i];
90744
- }
90745
-
90746
- //价格是0的 都用空
90747
- if (item.Open<=0) item.Open=null;
90748
- if (item.Close<=0) item.Close=null;
90749
- if (item.AvPrice<=0) item.AvPrice=null;
90750
- if (item.High<=0) item.High=null;
90751
- if (item.Low<=0) item.Low=null;
90752
-
90753
- aryMinuteData[i]=item;
90754
- }
90755
-
90756
- return aryMinuteData;
90757
- }
90758
- */
90759
-
90760
90453
  /////////////////////////////////////////////////////////////////////////////
90761
90454
  // 自定义指数
90762
90455
  //
@@ -95817,6 +95510,16 @@ var MARKET_SUFFIX_NAME=
95817
95510
  if (ChartData.IsMinutePeriod(period,true)) return false; //内置分钟K线不支持复权
95818
95511
 
95819
95512
  return true;
95513
+ },
95514
+
95515
+ //获取成交量单位
95516
+ GetVolUnit:function(upperSymbol)
95517
+ {
95518
+ if (!upperSymbol) return 1;
95519
+ if (MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol)) return 100; //单位手=100股
95520
+ if (MARKET_SUFFIX_NAME.IsBJ(upperSymbol)) return 100; //单位手=100股
95521
+
95522
+ return 1;
95820
95523
  }
95821
95524
  }
95822
95525
 
@@ -99108,6 +98811,8 @@ function GetLocalTime(i) //得到标准时区的时间的函数
99108
98811
 
99109
98812
 
99110
98813
 
98814
+
98815
+
99111
98816
  /*
99112
98817
  Copyright (c) 2018 jones
99113
98818
 
@@ -111591,9 +111296,7 @@ function JSSymbolData(ast,option,jsExecute)
111591
111296
  return kData.GetClose();
111592
111297
  case 'VOL':
111593
111298
  case 'V':
111594
- if (MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol))
111595
- return kData.GetVol(100); //A股的 把股转成手
111596
- return kData.GetVol();
111299
+ return kData.GetVol(MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol));
111597
111300
  case 'OPEN':
111598
111301
  case 'O':
111599
111302
  return kData.GetOpen();
@@ -112222,9 +111925,7 @@ function JSSymbolData(ast,option,jsExecute)
112222
111925
  return this.Data.GetClose();
112223
111926
  case 'VOL':
112224
111927
  case 'V':
112225
- if (MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol) && this.DataType==HQ_DATA_TYPE.KLINE_ID) //!! A股K线量单位时股,分时图单位还是手
112226
- return this.Data.GetVol(100); //A股的 把股转成手
112227
- return this.Data.GetVol();
111928
+ return this.Data.GetVol(MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol));
112228
111929
  case 'OPEN':
112229
111930
  case 'O':
112230
111931
  return this.Data.GetOpen();
@@ -112470,9 +112171,7 @@ function JSSymbolData(ast,option,jsExecute)
112470
112171
  return result.GetAmount();
112471
112172
  case 'V':
112472
112173
  case "VOL":
112473
- if (MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol))
112474
- return result.GetVol(100);
112475
- return result.GetVol();
112174
+ return result.GetVol(MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol));
112476
112175
  case "VOLINSTK":
112477
112176
  return result.GetPosition();
112478
112177
  default:
@@ -139693,7 +139392,7 @@ function ScrollBarBGChart()
139693
139392
 
139694
139393
 
139695
139394
 
139696
- var HQCHART_VERSION="1.1.14127";
139395
+ var HQCHART_VERSION="1.1.14132";
139697
139396
 
139698
139397
  function PrintHQChartVersion()
139699
139398
  {