hqchart 1.1.15428 → 1.1.15446

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.
@@ -7073,6 +7073,9 @@ var JSCHART_EVENT_ID=
7073
7073
  ON_BEFORE_DRAW_HLINE:180, //画图工具-水平线(ChartDrawPictureHorizontalLine) 绘图前
7074
7074
 
7075
7075
  ON_HIDE_ALL_POP_DIV:181, //隐藏所有弹框div
7076
+
7077
+ //工具条
7078
+ ON_CLICK_STATUSBAR_ITEM:301,
7076
7079
  }
7077
7080
 
7078
7081
  var JSCHART_OPERATOR_ID=
@@ -55224,6 +55227,9 @@ function StockChip()
55224
55227
  if (recvData && recvData.PreventDefault)
55225
55228
  return recvData.Result;
55226
55229
 
55230
+ if (MARKET_SUFFIX_NAME.IsIncludes(symbol, ARRAY_CHINA_FUTURES_SUFFIX))
55231
+ return this.CalculateChip_Futrues();
55232
+
55227
55233
  if (MARKET_SUFFIX_NAME.IsSHSZIndex(symbol)) return false; //指数暂时不支持移动筹码
55228
55234
 
55229
55235
  var bindData=this.HQChart.ChartPaint[0].Data;
@@ -55353,6 +55359,142 @@ function StockChip()
55353
55359
  return true;
55354
55360
  }
55355
55361
 
55362
+ this.CalculateChip_Futrues=function() //计算期货筹码 (持仓和量计算的)
55363
+ {
55364
+ if (!this.HQChart) return false;
55365
+ var symbol=this.HQChart.Symbol;
55366
+ if (!symbol) return false;
55367
+ var upperSymbol=symbol.toUpperCase();
55368
+
55369
+ if (!MARKET_SUFFIX_NAME.IsIncludes(symbol, ARRAY_CHINA_FUTURES_SUFFIX)) return false;
55370
+
55371
+ var bindData=this.HQChart.GetKData();
55372
+ //if (bindData.Period>=4) return false; //分钟K线不支持, 没时间做,以后再做吧
55373
+ var count=bindData.DataOffset+parseInt(this.HQChart.CursorIndex);
55374
+ if (count>=bindData.Data.length) count=bindData.Data.length-1;
55375
+ var selData=bindData.Data[count];
55376
+ var yPrice=selData.Close;
55377
+
55378
+ var mouseY=this.HQChart.LastPoint.Y;
55379
+ if (mouseY) yPrice=this.HQChart.Frame.SubFrame[0].Frame.GetYData(mouseY);
55380
+
55381
+ //JSConsole.Chart.Log("[StockChip::CalculateChip]",count,this.HQChart.CursorIndex,selData);
55382
+ const rate=1;
55383
+ var aryVol=[];
55384
+ var seed=1,vol,maxPrice,minPrice;
55385
+ for(let i=count;i>=0;--i)
55386
+ {
55387
+ var item=bindData.Data[i];
55388
+ var changeRate=1; //换手率
55389
+ if (item.Position>0) changeRate=item.Vol/item.Position;
55390
+ if (i==count) vol=item.Vol*changeRate;
55391
+ else vol=item.Vol*seed;
55392
+ var dataItem={Vol:vol,High:item.High,Low:item.Low};
55393
+ aryVol.push(dataItem);
55394
+ seed*=(1-changeRate*rate);
55395
+
55396
+ if (!maxPrice || maxPrice<item.High) maxPrice=item.High;
55397
+ if (!minPrice || minPrice>item.Low) minPrice=item.Low;
55398
+ }
55399
+
55400
+ //JSConsole.Chart.Log("[StockChip::CalculateChip]",maxPrice,minPrice);
55401
+ if (!maxPrice || !minPrice) return true;
55402
+
55403
+ var priceZoom=this.PriceZoom;
55404
+
55405
+ maxPrice=parseInt(maxPrice*priceZoom);
55406
+ minPrice=parseInt(minPrice*priceZoom);
55407
+
55408
+ var dataCount=maxPrice-minPrice;
55409
+ var aryChip=new Array()
55410
+ for(let i=0;i<=dataCount;++i)
55411
+ {
55412
+ aryChip.push(0);
55413
+ }
55414
+
55415
+ var dayChip=[];
55416
+ var distributeData;
55417
+ if (this.ShowType==2)
55418
+ {
55419
+ var dayChip=
55420
+ [
55421
+ {Day:100, Color:this.DAY_COLOR[1][5]}, {Day:60, Color:this.DAY_COLOR[1][4]}, {Day:30, Color:this.DAY_COLOR[1][3]},
55422
+ {Day:20, Color:this.DAY_COLOR[1][2]}, {Day:10, Color:this.DAY_COLOR[1][1]}, {Day:5, Color:this.DAY_COLOR[1][0]}
55423
+ ];
55424
+ for(let i in aryVol)
55425
+ {
55426
+ var item=aryVol[i];
55427
+ var high=parseInt(item.High*priceZoom);
55428
+ var low=parseInt(item.Low*priceZoom);
55429
+ var averageVol=item.Vol;
55430
+ if (high-low>0) averageVol=item.Vol/(high-low);
55431
+ if (averageVol<=0.000000001) continue;
55432
+
55433
+ for(var k=0;k<dayChip.length;++k)
55434
+ {
55435
+ if (i==dayChip[k].Day)
55436
+ {
55437
+ dayChip[k].Chip=aryChip.slice(0);
55438
+ break;
55439
+ }
55440
+ }
55441
+
55442
+ distributeData={Low:low, High:high, Vol:item.Vol, MaxPrice:maxPrice, MinPrice:minPrice};
55443
+ this.CalculateDistribute(aryChip, distributeData );
55444
+ }
55445
+ }
55446
+ else if (this.ShowType==1)
55447
+ {
55448
+ var dayChip=
55449
+ [
55450
+ {Day:5, Color:this.DAY_COLOR[0][0]},{Day:10, Color:this.DAY_COLOR[0][1]},{Day:20, Color:this.DAY_COLOR[0][2]},
55451
+ {Day:30, Color:this.DAY_COLOR[0][3]},{Day:60, Color:this.DAY_COLOR[0][4]},{Day:100, Color:this.DAY_COLOR[0][5]}
55452
+ ];
55453
+
55454
+ for(let i=aryVol.length-1;i>=0;--i)
55455
+ {
55456
+ var item=aryVol[i];
55457
+ var high=parseInt(item.High*priceZoom);
55458
+ var low=parseInt(item.Low*priceZoom);
55459
+ var averageVol=item.Vol;
55460
+ if (high-low>0) averageVol=item.Vol/(high-low);
55461
+ if (averageVol<=0.000000001) continue;
55462
+
55463
+ for(var k=0;k<dayChip.length;++k)
55464
+ {
55465
+ if (i==dayChip[k].Day)
55466
+ {
55467
+ dayChip[k].Chip=aryChip.slice(0);
55468
+ break;
55469
+ }
55470
+ }
55471
+
55472
+ distributeData={Low:low, High:high, Vol:item.Vol, MaxPrice:maxPrice, MinPrice:minPrice};
55473
+ this.CalculateDistribute(aryChip, distributeData);
55474
+ }
55475
+ }
55476
+ else
55477
+ {
55478
+ for(let i in aryVol)
55479
+ {
55480
+ var item=aryVol[i];
55481
+ var high=parseInt(item.High*priceZoom);
55482
+ var low=parseInt(item.Low*priceZoom);
55483
+ var averageVol=item.Vol;
55484
+ if (high-low>0) averageVol=item.Vol/(high-low);
55485
+ if (averageVol<=0.000000001) continue;
55486
+
55487
+ distributeData={Low:low, High:high, Vol:item.Vol, MaxPrice:maxPrice, MinPrice:minPrice};
55488
+ this.CalculateDistribute(aryChip, distributeData);
55489
+ }
55490
+ }
55491
+
55492
+ if (!distributeData) return false;
55493
+
55494
+ this.Data={AllChip:aryChip, MaxVol:distributeData.MaxVol, MaxPrice:maxPrice, MinPrice:minPrice,SelectData:selData, DayChip:dayChip, YPrice:yPrice};
55495
+ return true;
55496
+ }
55497
+
55356
55498
  this.DrawFrame=function() //X轴成交量坐标
55357
55499
  {
55358
55500
  if (this.IsShowX==false) return;
@@ -83531,13 +83673,13 @@ function JSChartResource()
83531
83673
  {
83532
83674
  Color:"RGB(60,60,60)",
83533
83675
  Mergin:{ Left:5, Right:5, Top:4, Bottom:2 },
83534
- Font:{ Size:12, Name:"微软雅黑" }
83676
+ Font:{ Size:14, Name:"微软雅黑" }
83535
83677
  },
83536
83678
 
83537
83679
  Row:
83538
83680
  {
83539
83681
  Mergin:{ Top:2, Bottom:2 },
83540
- Font:{ Size:15, Name:"微软雅黑"},
83682
+ Font:{ Size:14, Name:"微软雅黑"},
83541
83683
  BarMergin:{ Top:2, Left:3, Right:3, Bottom:2 }
83542
83684
  },
83543
83685
 
@@ -83953,6 +84095,57 @@ function JSChartResource()
83953
84095
  BorderColor:"rgb(192,192,192)"
83954
84096
  }
83955
84097
 
84098
+ this.StatusBar=
84099
+ {
84100
+ Table:
84101
+ {
84102
+ Font:14*GetDevicePixelRatio() +'px 微软雅黑',
84103
+ TitleColor:"rgb(90,90,90)",
84104
+ AryTextColor:["rgb(90,90,90)","rgb(192,192,0)"],
84105
+ Margin:{ Left:1*GetDevicePixelRatio(), Top:0, Bottom:0, Right:0 },
84106
+ CellMargin:
84107
+ {
84108
+ Top:5*GetDevicePixelRatio(),
84109
+ Bottom:5*GetDevicePixelRatio(),
84110
+ Left:5*GetDevicePixelRatio(),
84111
+ Right:5*GetDevicePixelRatio(),
84112
+ YOffset:1* GetDevicePixelRatio(),
84113
+ },
84114
+
84115
+ Separator: { Left:10, Right:10, Line:{ Width:1, Color:"rgb(192,192,192)", Top:2, Bottom:2 } }
84116
+ },
84117
+
84118
+ DateTime:
84119
+ {
84120
+ Font:14*GetDevicePixelRatio() +'px 微软雅黑',
84121
+ TitleColor:"rgb(90,90,90)",
84122
+ Format:"HH:MM:SS",
84123
+ MaxText:"99:99:99",
84124
+ Margin:{ Left:2*GetDevicePixelRatio(), Top:5*GetDevicePixelRatio(), Bottom:5*GetDevicePixelRatio(), Right:5*GetDevicePixelRatio(), YOffset:1*GetDevicePixelRatio() },
84125
+ },
84126
+
84127
+ RightToolbar:
84128
+ {
84129
+ Icon:{ Family:"iconfont", Size:14*GetDevicePixelRatio() },
84130
+
84131
+ Margin:{ Left:1*GetDevicePixelRatio(), Top:0, Bottom:0, Right:2*GetDevicePixelRatio() },
84132
+ CellMargin:
84133
+ {
84134
+ Top:5*GetDevicePixelRatio(),
84135
+ Bottom:5*GetDevicePixelRatio(),
84136
+ Left:2*GetDevicePixelRatio(),
84137
+ Right:2*GetDevicePixelRatio(),
84138
+ YOffset:0,
84139
+ },
84140
+ },
84141
+
84142
+ UpTextColor:"rgb(238,21,21)", //上涨文字颜色
84143
+ DownTextColor:"rgb(25,158,0)", //下跌文字颜色
84144
+ UnchangeTextColor:"rgb(90,90,90)", //平盘文字颜色
84145
+
84146
+ BorderColor:"rgb(192,192,192)"
84147
+ }
84148
+
83956
84149
 
83957
84150
  //自定义风格
83958
84151
  this.SetStyle=function(style)
@@ -84922,9 +85115,66 @@ function JSChartResource()
84922
85115
 
84923
85116
  if (style.SmallFloatTooltipV2) this.SetSmallFloatTooltipV2(style.SmallFloatTooltipV2);
84924
85117
  if (style.StockInfo) this.SetStockInfo(style.StockInfo);
85118
+ if (style.StatusBar) this.SetStatusBar(style.StatusBar);
84925
85119
 
84926
85120
  }
84927
85121
 
85122
+ this.SetStatusBar=function(style)
85123
+ {
85124
+ var dest=this.StatusBar;
85125
+
85126
+ if (style.Table)
85127
+ {
85128
+ var item=style.Table;
85129
+ if (item.Font) dest.Table.Font=item.Font;
85130
+ if (item.TitleColor) dest.Table.TitleColor=item.TitleColor;
85131
+ if (IFrameSplitOperator.IsNonEmptyArray(item.AryTextColor)) dest.Table.AryTextColor=item.AryTextColor.slice();
85132
+ CopyMarginConfig(dest.Table.Margin, item.Margin);
85133
+ if (item.CellMargin)
85134
+ {
85135
+ var subItem=item.CellMargin;
85136
+ CopyMarginConfig(dest.Table.CellMargin, subItem);
85137
+ if (IFrameSplitOperator.IsNumber(subItem.YOffset)) dest.Table.CellMargin.YOffset=subItem.YOffset
85138
+ }
85139
+
85140
+ if (item.Separator)
85141
+ {
85142
+ var subItem=item.Separator;
85143
+ var subDest=dest.Table.Separator;
85144
+ if (IFrameSplitOperator.IsNumber(subItem.Left)) subDest.Left=subItem.Left;
85145
+ if (IFrameSplitOperator.IsNumber(subItem.Right)) subDest.Left=subItem.Right;
85146
+
85147
+ if (subItem.Line)
85148
+ {
85149
+ if (IFrameSplitOperator.IsNumber(subItem.Line.Width)) subDest.Line.Width=subItem.Line.Width;
85150
+ if (IFrameSplitOperator.IsNumber(subItem.Line.Top)) subDest.Line.Top=subItem.Line.Top;
85151
+ if (IFrameSplitOperator.IsNumber(subItem.Line.Bottom)) subDest.Line.Bottom=subItem.Line.Bottom;
85152
+ if (subItem.Line.Color) subDest.Line.Color=subItem.Line.Color;
85153
+ }
85154
+ }
85155
+ }
85156
+
85157
+ if (style.DateTime)
85158
+ {
85159
+ var item=style.DateTime;
85160
+ if (item.Font) dest.DateTime.Font=item.Font;
85161
+ if (item.TitleColor) dest.DateTime.TitleColor=item.TitleColor;
85162
+ if (item.Format) dest.DateTime.Format=item.Format;
85163
+ if (item.MaxText) dest.DateTime.MaxText=item.MaxText;
85164
+ if (item.Margin)
85165
+ {
85166
+ var subItem=item.Margin;
85167
+ CopyMarginConfig(dest.DateTime.Margin, subItem);
85168
+ if (IFrameSplitOperator.IsNumber(subItem.YOffset)) dest.DateTime.Margin.YOffset=subItem.YOffset;
85169
+ }
85170
+ }
85171
+
85172
+ if (style.UpTextColor) dest.UpTextColor=style.UpTextColor;
85173
+ if (style.DownTextColor) dest.DownTextColor=style.DownTextColor;
85174
+ if (style.UnchangeTextColor) dest.UnchangeTextColor=style.UnchangeTextColor;
85175
+ if (style.BorderColor) dest.BorderColor=style.BorderColor;
85176
+ }
85177
+
84928
85178
  this.SetStockInfo=function(style)
84929
85179
  {
84930
85180
  var dest=this.StockInfo;
@@ -106642,6 +106892,7 @@ var MARKET_SUFFIX_NAME=
106642
106892
  DCE: '.DCE', //大连商品交易所(Dalian Commodity Exchange)
106643
106893
  CZCE: '.CZC', //郑州期货交易所
106644
106894
  GZFE:".GZFE", //广州期货交易所
106895
+ INE:".INE", //上海国际能源交易中心
106645
106896
 
106646
106897
  USA:'.USA', //美股
106647
106898
  FTSE:'.FTSE', //富时中国
@@ -106886,11 +107137,61 @@ var MARKET_SUFFIX_NAME=
106886
107137
  return upperSymbol.indexOf(this.GZFE) > 0;
106887
107138
  },
106888
107139
 
107140
+ IsINE:function(upperSymbol)
107141
+ {
107142
+ if (!upperSymbol) return false;
107143
+ return upperSymbol.indexOf(this.INE) > 0;
107144
+ },
107145
+
107146
+ //是否包含某一个市场的
107147
+ IsIncludes:function(symbol, arySuffix)
107148
+ {
107149
+ if (!symbol) return false;
107150
+ if (!IFrameSplitOperator.IsNonEmptyArray(arySuffix)) return false;
107151
+ var upperSymbol=symbol.toUpperCase();
107152
+
107153
+ var bMatch=false;
107154
+ for(var i=0;i<arySuffix.length;++i)
107155
+ {
107156
+ var item=arySuffix[i];
107157
+ switch(item)
107158
+ {
107159
+ case this.SHFE:
107160
+ case this.SHFE2:
107161
+ if (this.IsSHFE(upperSymbol)) bMatch=true;
107162
+ break;
107163
+ case this.CFFEX2:
107164
+ case this.CFFEX:
107165
+ case this.CFFEX3:
107166
+ if (this.IsCFFEX(upperSymbol)) bMatch=true;
107167
+ break;
107168
+ case this.DCE:
107169
+ if (this.IsDCE(upperSymbol)) bMatch=true;
107170
+ break;
107171
+ case this.CZCE:
107172
+ if (this.IsCZCE(upperSymbol)) bMatch=true;
107173
+ break;
107174
+ case this.GZFE:
107175
+ if (this.IsGZFE(upperSymbol)) bMatch=true;
107176
+ break;
107177
+ case this.INE:
107178
+ if (this.IsINE(upperSymbol)) bMatch=true;
107179
+ break;
107180
+ }
107181
+
107182
+ if (bMatch) return true;
107183
+ }
107184
+
107185
+ return false;
107186
+ },
107187
+
106889
107188
  IsChinaFutures:function(upperSymbol) //是否是国内期货 /期权
106890
107189
  {
107190
+ if (!upperSymbol) return false;
107191
+
106891
107192
  return this.IsSHO(upperSymbol) || this.IsSZO(upperSymbol) ||
106892
- this.IsGZFE(upperSymbol) ||
106893
- this.IsCFFEX(upperSymbol) || this.IsCZCE(upperSymbol) || this.IsDCE(upperSymbol) || this.IsSHFE(upperSymbol);
107193
+ this.IsGZFE(upperSymbol) || this.IsINE(upperSymbol) ||
107194
+ this.IsCFFEX(upperSymbol) || this.IsCZCE(upperSymbol) || this.IsDCE(upperSymbol) || this.IsSHFE(upperSymbol);
106894
107195
  },
106895
107196
 
106896
107197
  IsFutures:function(upperSymbol) //是否是期货 包含国外的
@@ -107399,6 +107700,16 @@ var MARKET_SUFFIX_NAME=
107399
107700
 
107400
107701
  }
107401
107702
 
107703
+ //国内期货市场
107704
+ const ARRAY_CHINA_FUTURES_SUFFIX=
107705
+ [
107706
+ MARKET_SUFFIX_NAME.SHFE,
107707
+ MARKET_SUFFIX_NAME.CFFEX,
107708
+ MARKET_SUFFIX_NAME.DCE,
107709
+ MARKET_SUFFIX_NAME.CZCE,
107710
+ MARKET_SUFFIX_NAME.GZFE,
107711
+ MARKET_SUFFIX_NAME.INE
107712
+ ];
107402
107713
 
107403
107714
  //走势图分钟数据对应的时间
107404
107715
  function MinuteTimeStringData()
@@ -107744,7 +108055,8 @@ function MinuteTimeStringData()
107744
108055
  if (MARKET_SUFFIX_NAME.IsTW(upperSymbol)) return this.GetTW(upperSymbol);
107745
108056
  if (MARKET_SUFFIX_NAME.IsJP(upperSymbol)) return this.GetJP(upperSymbol);
107746
108057
  if (MARKET_SUFFIX_NAME.IsUSA(upperSymbol)) return this.GetUSA(upperSymbol);
107747
- if (MARKET_SUFFIX_NAME.IsCFFEX(upperSymbol) || MARKET_SUFFIX_NAME.IsCZCE(upperSymbol) || MARKET_SUFFIX_NAME.IsDCE(upperSymbol) || MARKET_SUFFIX_NAME.IsSHFE(upperSymbol) || MARKET_SUFFIX_NAME.IsGZFE(upperSymbol))
108058
+ if (MARKET_SUFFIX_NAME.IsCFFEX(upperSymbol) || MARKET_SUFFIX_NAME.IsCZCE(upperSymbol) || MARKET_SUFFIX_NAME.IsDCE(upperSymbol) || MARKET_SUFFIX_NAME.IsSHFE(upperSymbol) ||
108059
+ MARKET_SUFFIX_NAME.IsGZFE(upperSymbol) || MARKET_SUFFIX_NAME.IsINE(upperSymbol))
107748
108060
  {
107749
108061
  var splitData = g_FuturesTimeData.GetSplitData(upperSymbol, option);
107750
108062
  if (!splitData) return null;
@@ -108236,7 +108548,7 @@ function MinuteCoordinateData()
108236
108548
  data=this.GetTWData(upperSymbol,width);
108237
108549
  else if (MARKET_SUFFIX_NAME.IsJP(upperSymbol))
108238
108550
  data=this.GetJPData(upperSymbol,width);
108239
- else if (MARKET_SUFFIX_NAME.IsCFFEX(upperSymbol) || MARKET_SUFFIX_NAME.IsCZCE(upperSymbol) || MARKET_SUFFIX_NAME.IsDCE(upperSymbol) || MARKET_SUFFIX_NAME.IsSHFE(upperSymbol) || MARKET_SUFFIX_NAME.IsGZFE(upperSymbol))
108551
+ else if (MARKET_SUFFIX_NAME.IsCFFEX(upperSymbol) || MARKET_SUFFIX_NAME.IsCZCE(upperSymbol) || MARKET_SUFFIX_NAME.IsDCE(upperSymbol) || MARKET_SUFFIX_NAME.IsSHFE(upperSymbol) || MARKET_SUFFIX_NAME.IsGZFE(upperSymbol) || MARKET_SUFFIX_NAME.IsINE(upperSymbol))
108240
108552
  return this.GetChinatFuturesData(upperSymbol, width, option);
108241
108553
  else if (MARKET_SUFFIX_NAME.IsUSA(upperSymbol))
108242
108554
  data = this.GetUSAData(upperSymbol,width);
@@ -109083,6 +109395,13 @@ function FuturesTimeData()
109083
109395
  [MARKET_SUFFIX_NAME.SHFE + '-LU', {Time:6,Decimal:0,Name:'低硫燃油'}],
109084
109396
  [MARKET_SUFFIX_NAME.SHFE + '-BC', {Time:4,Decimal:0,Name:'国际铜'}],
109085
109397
  [MARKET_SUFFIX_NAME.SHFE + '-EC', {Time:0,Decimal:0,Name:'集运指数'}],
109398
+
109399
+ //上海国际能源交易中心 独立的一个市场
109400
+ [MARKET_SUFFIX_NAME.INE + '-NR', {Time:6,Decimal:1,Name:'20号胶'}],
109401
+ [MARKET_SUFFIX_NAME.INE + '-SC', {Time:5,Decimal:1,Name:'原油'}],
109402
+ [MARKET_SUFFIX_NAME.INE + '-LU', {Time:6,Decimal:0,Name:'低硫燃油'}],
109403
+ [MARKET_SUFFIX_NAME.INE + '-BC', {Time:4,Decimal:0,Name:'国际铜'}],
109404
+ [MARKET_SUFFIX_NAME.INE + '-EC', {Time:0,Decimal:0,Name:'集运指数'}],
109086
109405
 
109087
109406
  //郑州期货交易所
109088
109407
  [MARKET_SUFFIX_NAME.CZCE + '-CF', {Time:6,Decimal:0,Name:"棉花"}],
@@ -109199,6 +109518,11 @@ function FuturesTimeData()
109199
109518
  oneWordName = MARKET_SUFFIX_NAME.GZFE + '-' + oneWord;
109200
109519
  twoWordsName = MARKET_SUFFIX_NAME.GZFE + '-' + twoWords;
109201
109520
  }
109521
+ else if (MARKET_SUFFIX_NAME.IsINE(upperSymbol)) //上海国际能源交易中心
109522
+ {
109523
+ oneWordName = MARKET_SUFFIX_NAME.INE + '-' + oneWord;
109524
+ twoWordsName = MARKET_SUFFIX_NAME.INE + '-' + twoWords;
109525
+ }
109202
109526
 
109203
109527
  if (this.MAP_TWOWORDS.has(twoWordsName))
109204
109528
  {
@@ -139439,13 +139763,13 @@ function GetBlackStyle()
139439
139763
  {
139440
139764
  Color:"RGB(245,245,245)",
139441
139765
  Mergin:{ Left:5, Right:5, Top:4, Bottom:2 },
139442
- Font:{ Size:12, Name:"微软雅黑" }
139766
+ //Font:{ Size:12, Name:"微软雅黑" }
139443
139767
  },
139444
139768
 
139445
139769
  Row:
139446
139770
  {
139447
139771
  Mergin:{ Top:2, Bottom:2 },
139448
- Font:{ Size:15, Name:"微软雅黑"},
139772
+ //Font:{ Size:15, Name:"微软雅黑"},
139449
139773
  BarMergin:{ Top:2, Left:3, Right:3, Bottom:2 }
139450
139774
  },
139451
139775
 
@@ -139793,6 +140117,48 @@ function GetBlackStyle()
139793
140117
  UpTextColor:"rgb(238,21,21)", //上涨文字颜色
139794
140118
  DownTextColor:"rgb(25,158,0)", //下跌文字颜色
139795
140119
  UnchangeTextColor:"rgb(90,90,90)", //平盘文字颜色
140120
+ BorderColor:'rgb(38,38,41)', //边框线
140121
+ },
140122
+
140123
+
140124
+ StatusBar:
140125
+ {
140126
+ Table:
140127
+ {
140128
+ //Font:14*GetDevicePixelRatio() +'px 微软雅黑',
140129
+ TitleColor:"rgb(250,250,250)",
140130
+ AryTextColor:["rgb(250,250,250)", "rgb(255, 185, 15)"],
140131
+ //Margin:{ Left:0, Top:0, Bottom:0, Right:0 },
140132
+ //CellMargin:{ Top:5, Bottom:5, Left:5, Right:5, YOffset:0 },
140133
+ //ItemSpace:20,
140134
+
140135
+ Separator:
140136
+ {
140137
+ //Left:20,
140138
+ // Right:20,
140139
+ Line:
140140
+ {
140141
+ //Width:1,
140142
+ Color:"rgb(38,38,41)",
140143
+ //Top:2,
140144
+ //Bottom:2
140145
+ }
140146
+ }
140147
+ },
140148
+
140149
+ DateTime:
140150
+ {
140151
+ //Font:14*GetDevicePixelRatio() +'px 微软雅黑',
140152
+ TitleColor:"rgb(250,250,250)",
140153
+ //Format:"HH:MM:SS",
140154
+ //MaxText:"99:99:99",
140155
+ //Margin:{ Left:2*GetDevicePixelRatio(), Top:5*GetDevicePixelRatio(), Bottom:5*GetDevicePixelRatio(), Right:5*GetDevicePixelRatio(), YOffset:1*GetDevicePixelRatio() },
140156
+ },
140157
+
140158
+ UpTextColor:"rgb(238,21,21)", //上涨文字颜色
140159
+ DownTextColor:"rgb(25,158,0)", //下跌文字颜色
140160
+ UnchangeTextColor:"rgb(90,90,90)", //平盘文字颜色
140161
+
139796
140162
  BorderColor:'rgb(38,38,41)', //边框线
139797
140163
  }
139798
140164
 
@@ -140344,8 +140710,11 @@ function JSDealChartContainer(uielement)
140344
140710
  var chart=this.ChartPaint[0];
140345
140711
  if (chart) chart.Data=null;
140346
140712
 
140347
- if (option && IFrameSplitOperator.IsNumber(option.TradeDate))
140348
- this.TradeDate=option.TradeDate;
140713
+ if (option)
140714
+ {
140715
+ if (IFrameSplitOperator.IsNumber(option.TradeDate)) this.TradeDate=option.TradeDate;
140716
+ if (IFrameSplitOperator.IsNonEmptyArray(option.Column)) this.SetColumn(option.Column);
140717
+ }
140349
140718
 
140350
140719
  if (!this.Symbol)
140351
140720
  {
@@ -140453,6 +140822,7 @@ function JSDealChartContainer(uielement)
140453
140822
  chart.Data=this.Data;
140454
140823
  chart.Symbol=this.Symbol;
140455
140824
  chart.YClose=data.yclose;
140825
+ chart.YFClose=data.yfclose;
140456
140826
  chart.Open=data.open;
140457
140827
 
140458
140828
  if (this.IsShowLastPage) this.SetLastPageDataOffset(); //显示最后一屏
@@ -141120,8 +141490,6 @@ var DEAL_COLUMN_ID=
141120
141490
  SYMBOL_ID:11, //股票代码
141121
141491
  NAME_ID:12, //股票名称
141122
141492
 
141123
-
141124
-
141125
141493
  //预留数值类型 10个
141126
141494
  RESERVE_NUMBER1_ID:201, //ReserveNumber1:
141127
141495
  RESERVE_NUMBER2_ID:202,
@@ -141199,6 +141567,7 @@ function ChartDealList()
141199
141567
  //this.Data={Offset:0, Data:[ {Time:925, Price:20.1, Vol:10000050, BS:1, Deal:45 }, {Time:925, Price:18.2, Vol:1150, BS:1, Deal:5 }] };
141200
141568
  this.Symbol;
141201
141569
  this.YClose; //昨收
141570
+ this.YFClose; //昨结算
141202
141571
  this.Open; //开盘价
141203
141572
  this.Decimal=2; //小数位数
141204
141573
  this.IsSingleTable=false; //单表模式
@@ -141353,7 +141722,6 @@ function ChartDealList()
141353
141722
  { Type:DEAL_COLUMN_ID.STRING_TIME_ID, Title:"时间", TextAlign:"center", Width:null, TextColor:g_JSChartResource.DealList.FieldColor.Time, MaxText:"88:88:88" },
141354
141723
  { Type:DEAL_COLUMN_ID.INDEX_ID, Title:"序号", TextAlign:"center", Width:null, TextColor:g_JSChartResource.DealList.FieldColor.Index, MaxText:"88888" },
141355
141724
 
141356
-
141357
141725
  { Type:DEAL_COLUMN_ID.CENTER_BAR_ID, Title:"柱子2", TextAlign:"center", Width:null, TextColor:g_JSChartResource.DealList.FieldColor.BarTitle, MaxText:"888888" },
141358
141726
  { Type:DEAL_COLUMN_ID.CUSTOM_TEXT_ID, Title:"自定义", TextAlign:"center", Width:null, TextColor:g_JSChartResource.DealList.FieldColor.Text, MaxText:"擎擎擎擎擎" },
141359
141727
 
@@ -141682,10 +142050,7 @@ function ChartDealList()
141682
142050
  }
141683
142051
  else if (item.Type==DEAL_COLUMN_ID.PRICE_ID)
141684
142052
  {
141685
- if (data.Price>this.YClose) textColor=this.UpColor;
141686
- else if (data.Price<this.YClose) textColor=this.DownColor;
141687
- else textColor=this.UnchangeColor;
141688
-
142053
+ textColor=this.GetPriceColor(data.Price);
141689
142054
  text=data.Price.toFixed(this.Decimal);
141690
142055
  }
141691
142056
  else if (item.Type==DEAL_COLUMN_ID.VOL_ID)
@@ -141786,6 +142151,29 @@ function ChartDealList()
141786
142151
  }
141787
142152
  }
141788
142153
 
142154
+ this.GetPriceColor=function(price)
142155
+ {
142156
+ var upperSymbol=null;
142157
+ if (this.Symbol) upperSymbol=this.Symbol.toUpperCase();
142158
+ if (MARKET_SUFFIX_NAME.IsChinaFutures(upperSymbol))
142159
+ {
142160
+ if (!IFrameSplitOperator.IsNumber(this.YFClose)) return this.UnchangeColor;
142161
+ return this.GetUpDownColor(price, this.YFClose);
142162
+ }
142163
+ else
142164
+ {
142165
+ if (!IFrameSplitOperator.IsNumber(this.YClose)) return this.UnchangeColor;
142166
+ return this.GetUpDownColor(price, this.YClose);
142167
+ }
142168
+ }
142169
+
142170
+ this.GetUpDownColor=function(price, price2)
142171
+ {
142172
+ if (price>price2) return this.UpColor;
142173
+ else if (price<price2) return this.DownColor;
142174
+ else return this.UnchangeColor;
142175
+ }
142176
+
141789
142177
  this.FormatReserveNumber=function(column, data, drawInfo)
141790
142178
  {
141791
142179
  if (column.DefaultText) drawInfo.Text=column.DefaultText;
@@ -143927,6 +144315,8 @@ function JSReportChartContainer(uielement)
143927
144315
  //80=整行背景色
143928
144316
  //101-199=数值型 201-299=字符型 301-350=进度条 351-400=按钮 401-499=日期时间
143929
144317
 
144318
+ var upperSymbol=null;
144319
+ if (stock.Symbol) upperSymbol=stock.Symbol.toUpperCase();
143930
144320
  if (IFrameSplitOperator.IsString(item[1])) stock.Name=item[1];
143931
144321
  if (IFrameSplitOperator.IsNumber(item[2])) stock.YClose=item[2];
143932
144322
  if (IFrameSplitOperator.IsNumber(item[3])) stock.Open=item[3];
@@ -143958,17 +144348,39 @@ function JSReportChartContainer(uielement)
143958
144348
 
143959
144349
  if (item[27]) stock.NameEx=item[27]; //扩展名字
143960
144350
 
144351
+ if (IFrameSplitOperator.IsNumber(item[38])) stock.Position=item[38]; //持仓量
144352
+ if (IFrameSplitOperator.IsNumber(item[39])) stock.FClose=item[39]; //结算价
144353
+ if (IFrameSplitOperator.IsNumber(item[40])) stock.YFClose=item[40]; //昨结算价
144354
+ if (IFrameSplitOperator.IsNumber(item[41])) stock.OpenPosition=item[41]; //开仓量
144355
+ if (IFrameSplitOperator.IsNumber(item[42])) stock.ClosePosition=item[42]; //平仓量
144356
+
143961
144357
  //衍生数据计算
143962
144358
  if (!IFrameSplitOperator.IsNumber(item[21])) //涨幅%
143963
144359
  {
143964
- if (IFrameSplitOperator.IsNumber(stock.Price) && IFrameSplitOperator.IsNumber(stock.YClose) && stock.YClose!=0)
143965
- stock.Increase=(stock.Price-stock.YClose)/stock.YClose*100;
144360
+ if (MARKET_SUFFIX_NAME.IsChinaFutures(upperSymbol))
144361
+ {
144362
+ if (IFrameSplitOperator.IsNumber(stock.Price) && IFrameSplitOperator.IsNumber(stock.YFClose) && stock.YFClose!=0)
144363
+ stock.Increase=(stock.Price-stock.YFClose)/stock.YFClose*100;
144364
+ }
144365
+ else
144366
+ {
144367
+ if (IFrameSplitOperator.IsNumber(stock.Price) && IFrameSplitOperator.IsNumber(stock.YClose) && stock.YClose!=0)
144368
+ stock.Increase=(stock.Price-stock.YClose)/stock.YClose*100;
144369
+ }
143966
144370
  }
143967
144371
 
143968
144372
  if (!IFrameSplitOperator.IsNumber(item[22])) //涨跌
143969
144373
  {
143970
- if (IFrameSplitOperator.IsNumber(stock.Price) && IFrameSplitOperator.IsNumber(stock.YClose))
143971
- stock.UpDown=stock.Price-stock.YClose;
144374
+ if (MARKET_SUFFIX_NAME.IsChinaFutures(upperSymbol))
144375
+ {
144376
+ if (IFrameSplitOperator.IsNumber(stock.Price) && IFrameSplitOperator.IsNumber(stock.YFClose))
144377
+ stock.UpDown=stock.Price-stock.YFClose;
144378
+ }
144379
+ else
144380
+ {
144381
+ if (IFrameSplitOperator.IsNumber(stock.Price) && IFrameSplitOperator.IsNumber(stock.YClose))
144382
+ stock.UpDown=stock.Price-stock.YClose;
144383
+ }
143972
144384
  }
143973
144385
 
143974
144386
  if (!IFrameSplitOperator.IsNumber(item[23])) //换手率%
@@ -143979,8 +144391,17 @@ function JSReportChartContainer(uielement)
143979
144391
 
143980
144392
  if (!IFrameSplitOperator.IsNumber(item[24])) //振幅%
143981
144393
  {
143982
- if (IFrameSplitOperator.IsNumber(stock.High) && IFrameSplitOperator.IsNumber(stock.Low) && IFrameSplitOperator.IsNumber(stock.YClose) && stock.YClose!=0)
143983
- stock.Amplitude=(stock.High-stock.Low)/stock.YClose*100;
144394
+ if (MARKET_SUFFIX_NAME.IsChinaFutures(upperSymbol))
144395
+ {
144396
+ if (IFrameSplitOperator.IsNumber(stock.High) && IFrameSplitOperator.IsNumber(stock.Low) && IFrameSplitOperator.IsNumber(stock.YFClose) && stock.YFClose!=0)
144397
+ stock.Amplitude=(stock.High-stock.Low)/stock.YFClose*100;
144398
+ }
144399
+ else
144400
+ {
144401
+ if (IFrameSplitOperator.IsNumber(stock.High) && IFrameSplitOperator.IsNumber(stock.Low) && IFrameSplitOperator.IsNumber(stock.YClose) && stock.YClose!=0)
144402
+ stock.Amplitude=(stock.High-stock.Low)/stock.YClose*100;
144403
+ }
144404
+
143984
144405
  }
143985
144406
 
143986
144407
  if (!IFrameSplitOperator.IsNumber(item[25])) //流通市值
@@ -144009,11 +144430,7 @@ function JSReportChartContainer(uielement)
144009
144430
 
144010
144431
  if (IFrameSplitOperator.IsBool(item[37])) stock.Checked=item[37];
144011
144432
 
144012
- if (IFrameSplitOperator.IsNumber(item[38])) stock.Position=item[38]; //持仓量
144013
- if (IFrameSplitOperator.IsNumber(item[39])) stock.FClose=item[39]; //结算价
144014
- if (IFrameSplitOperator.IsNumber(item[40])) stock.YFClose=item[40]; //昨结算价
144015
- if (IFrameSplitOperator.IsNumber(item[41])) stock.OpenPosition=item[41]; //开仓量
144016
- if (IFrameSplitOperator.IsNumber(item[42])) stock.ClosePosition=item[42]; //平仓量
144433
+
144017
144434
 
144018
144435
  //1,3,5,10,15 涨速%
144019
144436
  if (IFrameSplitOperator.IsNumber(item[43])) stock.RSpeed1M=item[43];
@@ -150303,7 +150720,16 @@ function ChartReport()
150303
150720
  }
150304
150721
  else //昨收价 计算颜色
150305
150722
  {
150306
- if (IFrameSplitOperator.IsNumber(stock.YClose)) yClose=stock.YClose;
150723
+ var upperSymbol=null;
150724
+ if (stock.Symbol) upperSymbol=stock.Symbol.toUpperCase();
150725
+ if (MARKET_SUFFIX_NAME.IsChinaFutures(upperSymbol) && IFrameSplitOperator.IsNumber(stock.YFClose))
150726
+ {
150727
+ yClose=stock.YFClose;
150728
+ }
150729
+ else
150730
+ {
150731
+ if (IFrameSplitOperator.IsNumber(stock.YClose)) yClose=stock.YClose;
150732
+ }
150307
150733
  }
150308
150734
 
150309
150735
  if (!IFrameSplitOperator.IsNumber(yClose))
@@ -163828,7 +164254,7 @@ function JSDialogTooltip()
163828
164254
  return item;
163829
164255
  }
163830
164256
 
163831
- if (IFrameSplitOperator.IsNumber(yClose) && format!=1)
164257
+ if (IFrameSplitOperator.IsNumber(yClose) && format!=1 && yClose!=0)
163832
164258
  {
163833
164259
  var value=(price-yClose)/yClose*100;
163834
164260
  item.Text=`${price.toFixed(defaultfloatPrecision)}(${value.toFixed(2)}%)`;
@@ -163904,9 +164330,7 @@ function JSDialogTooltip()
163904
164330
  Color:this.ValueColor
163905
164331
  };
163906
164332
 
163907
- if (!IFrameSplitOperator.IsNumber(price) || !IFrameSplitOperator.IsNumber(yClose)) return item;
163908
-
163909
-
164333
+ if (!IFrameSplitOperator.IsNumber(price) || !IFrameSplitOperator.IsNumber(yClose) || yClose===0) return item;
163910
164334
 
163911
164335
  var diffValue=price-yClose;
163912
164336
  var value=(price-yClose)/yClose;
@@ -163954,7 +164378,7 @@ function JSDialogTooltip()
163954
164378
  };
163955
164379
 
163956
164380
 
163957
- if (!IFrameSplitOperator.IsNumber(high) || !IFrameSplitOperator.IsNumber(low) || !IFrameSplitOperator.IsNumber(yClose)) return item;
164381
+ if (!IFrameSplitOperator.IsNumber(high) || !IFrameSplitOperator.IsNumber(low) || !IFrameSplitOperator.IsNumber(yClose) || yClose===0) return item;
163958
164382
 
163959
164383
  var diffValue=high-low;
163960
164384
  var value=(high-low)/yClose;
@@ -168147,7 +168571,7 @@ function HQChartScriptWorker()
168147
168571
 
168148
168572
 
168149
168573
 
168150
- var HQCHART_VERSION="1.1.15427";
168574
+ var HQCHART_VERSION="1.1.15445";
168151
168575
 
168152
168576
  function PrintHQChartVersion()
168153
168577
  {