hqchart 1.1.15390 → 1.1.15438

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.
@@ -32160,6 +32160,12 @@ function ChartKLine()
32160
32160
  TextColor: g_JSChartResource.DaySummaryKLine.TextColor,
32161
32161
  LeftMargin:g_JSChartResource.DaySummaryKLine.LeftMargin,
32162
32162
  }
32163
+
32164
+ this.PriceGapStyple=
32165
+ {
32166
+ Line:{ Color:g_JSChartResource.PriceGapStyple.Line.Color },
32167
+ Text:{ Color:g_JSChartResource.PriceGapStyple.Text.Color, Font: g_JSChartResource.PriceGapStyple.Text.Font }
32168
+ };
32163
32169
 
32164
32170
  }
32165
32171
 
@@ -60164,6 +60170,11 @@ IFrameSplitOperator.RemoveMarketSuffix=function(symbol)
60164
60170
  return symbol;
60165
60171
  }
60166
60172
 
60173
+ IFrameSplitOperator.IsNumberString=function(strValue)
60174
+ {
60175
+ return /^\d+$/.test(strValue);
60176
+ }
60177
+
60167
60178
  function FrameSplitKLinePriceY()
60168
60179
  {
60169
60180
  this.newMethod=IFrameSplitOperator; //派生
@@ -83476,13 +83487,13 @@ function JSChartResource()
83476
83487
  {
83477
83488
  Color:"RGB(60,60,60)",
83478
83489
  Mergin:{ Left:5, Right:5, Top:4, Bottom:2 },
83479
- Font:{ Size:12, Name:"微软雅黑" }
83490
+ Font:{ Size:14, Name:"微软雅黑" }
83480
83491
  },
83481
83492
 
83482
83493
  Row:
83483
83494
  {
83484
83495
  Mergin:{ Top:2, Bottom:2 },
83485
- Font:{ Size:15, Name:"微软雅黑"},
83496
+ Font:{ Size:14, Name:"微软雅黑"},
83486
83497
  BarMergin:{ Top:2, Left:3, Right:3, Bottom:2 }
83487
83498
  },
83488
83499
 
@@ -83834,6 +83845,70 @@ function JSChartResource()
83834
83845
  }
83835
83846
  }
83836
83847
 
83848
+ //买卖5档
83849
+ this.StockInfo=
83850
+ {
83851
+ Header:
83852
+ {
83853
+ Name:
83854
+ {
83855
+ Font:`${20*GetDevicePixelRatio()}px 微软雅黑`,
83856
+ Color:"rgb(90,90,90)",
83857
+ Margin:{ Left:5, Top:10, Bottom:5, Right:5, YOffset:0 },
83858
+ },
83859
+
83860
+ Symbol:
83861
+ {
83862
+ Font:`${18*GetDevicePixelRatio()}px 微软雅黑`,
83863
+ Color:"rgb(90,90,90)",
83864
+ Margin:{ Left:5, Top:10, Bottom:5, Right:5, YOffset:0 },
83865
+ },
83866
+
83867
+ AryCell:
83868
+ [
83869
+ { Font:`bold ${16*GetDevicePixelRatio()}px 微软雅黑`,Color:"rgb(90,90,90)", Margin:{ Left:5, Top:5, Bottom:5, Right:5, YOffset:0 } },
83870
+ { Font:`${16*GetDevicePixelRatio()}px 微软雅黑`,Color:"rgb(90,90,90)", Margin:{ Left:5, Top:5, Bottom:5, Right:5, YOffset:0 } },
83871
+ { Font:`${16*GetDevicePixelRatio()}px 微软雅黑`,Color:"rgb(90,90,90)", Margin:{ Left:5, Top:5, Bottom:5, Right:5, YOffset:0 } }
83872
+ ],
83873
+
83874
+ TextColor:"rgb(100,100,10)",
83875
+
83876
+ BottomLine:{ Enable:true, Color:"rgb(192,192,192)"} , //底部分割线
83877
+ },
83878
+
83879
+ BuySell:
83880
+ {
83881
+ Font:14*GetDevicePixelRatio() +'px 微软雅黑',
83882
+ TitleColor:"rgb(90,90,90)",
83883
+ VolColor:"rgb(90,90,90)",
83884
+ Margin:{ Left:0, Top:0, Bottom:0, Right:0 },
83885
+ CellMargin:{ Top:5, Bottom:5, Left:5, Right:5, YOffset:0 },
83886
+ BottomLine:{ Enable:true, Color:"rgb(192,192,192)"}, //底部分割线
83887
+ TopLine:{ Enable:false, Color:"rgb(192,192,192)"}, //底部分割线
83888
+
83889
+ CenterLine:
83890
+ {
83891
+ BuyColor:"rgb(228, 164, 54)",SellColor:"rgb(61, 147, 219)", NoneColor:"rgb(90,90,90)",
83892
+ Width:2*GetDevicePixelRatio()
83893
+ }
83894
+ },
83895
+
83896
+ Table:
83897
+ {
83898
+ Font:14*GetDevicePixelRatio() +'px 微软雅黑',
83899
+ TitleColor:"rgb(90,90,90)",
83900
+ TextColor:"rgb(90,90,90)",
83901
+ Margin:{ Left:0, Top:0, Bottom:0, Right:0 },
83902
+ CellMargin:{ Top:5, Bottom:5, Left:5, Right:5, YOffset:0 },
83903
+ },
83904
+
83905
+ UpTextColor:"rgb(238,21,21)", //上涨文字颜色
83906
+ DownTextColor:"rgb(25,158,0)", //下跌文字颜色
83907
+ UnchangeTextColor:"rgb(90,90,90)", //平盘文字颜色
83908
+
83909
+ BorderColor:"rgb(192,192,192)"
83910
+ }
83911
+
83837
83912
 
83838
83913
  //自定义风格
83839
83914
  this.SetStyle=function(style)
@@ -84802,7 +84877,129 @@ function JSChartResource()
84802
84877
  if (style.KLineCountDownPaint) this.SetKLineCountDownPaint(style.KLineCountDownPaint);
84803
84878
 
84804
84879
  if (style.SmallFloatTooltipV2) this.SetSmallFloatTooltipV2(style.SmallFloatTooltipV2);
84880
+ if (style.StockInfo) this.SetStockInfo(style.StockInfo);
84881
+
84882
+ }
84883
+
84884
+ this.SetStockInfo=function(style)
84885
+ {
84886
+ var dest=this.StockInfo;
84887
+
84888
+ if (style.BuySell)
84889
+ {
84890
+ var item=style.BuySell;
84891
+ if (item.Font) dest.BuySell.Font=item.Font;
84892
+ if (item.TitleColor) dest.BuySell.TitleColor=item.TitleColor;
84893
+ if (item.VolColor) dest.BuySell.VolColor=item.VolColor;
84894
+ CopyMarginConfig(dest.BuySell.Margin, item.Margin);
84895
+ if (item.CellMargin)
84896
+ {
84897
+ var subItem=item.CellMargin;
84898
+ CopyMarginConfig(dest.BuySell.CellMargin, subItem);
84899
+ if (IFrameSplitOperator.IsNumber(subItem.YOffset)) dest.BuySell.CellMargin.YOffset=subItem.YOffset
84900
+ }
84901
+
84902
+ if (item.BottomLine)
84903
+ {
84904
+ var subItem=item.BottomLine;
84905
+ if (subItem.Color) dest.BuySell.BottomLine.Color=subItem.Color;
84906
+ if (IFrameSplitOperator.IsBool(subItem.Enable)) dest.BuySell.BottomLine.Enable=subItem.Enable;
84907
+ }
84908
+
84909
+ if (item.TopLine)
84910
+ {
84911
+ var subItem=item.TopLine;
84912
+ if (subItem.Color) dest.BuySell.TopLine.Color=subItem.Color;
84913
+ if (IFrameSplitOperator.IsBool(subItem.Enable)) dest.BuySell.TopLine.Enable=subItem.Enable;
84914
+ }
84915
+
84916
+ if (item.CenterLine)
84917
+ {
84918
+ var subItem=item.CenterLine;
84919
+ if (subItem.BuyColor) dest.BuySell.CenterLine.BuyColor=subItem.BuyColor;
84920
+ if (subItem.SellColor) dest.BuySell.CenterLine.SellColor=subItem.SellColor;
84921
+ if (subItem.NoneColor) dest.BuySell.CenterLine.NoneColor=subItem.NoneColor;
84922
+ if (IFrameSplitOperator.IsNumber(subItem.Width)) dest.BuySell.CenterLine.Width=subItem.Width;
84923
+ }
84924
+
84925
+
84926
+ }
84927
+
84928
+ if (style.Table)
84929
+ {
84930
+ var item=style.Table;
84931
+ if (item.Font) dest.Table.Font=item.Font;
84932
+ if (item.TitleColor) dest.Table.TitleColor=item.TitleColor;
84933
+ if (item.TextColor) dest.Table.TextColor=item.TextColor;
84934
+ CopyMarginConfig(dest.Table.Margin, item.Margin);
84935
+ if (item.CellMargin)
84936
+ {
84937
+ var subItem=item.CellMargin;
84938
+ CopyMarginConfig(dest.Table.CellMargin, subItem);
84939
+ if (IFrameSplitOperator.IsNumber(subItem.YOffset)) dest.Table.CellMargin.YOffset=subItem.YOffset
84940
+ }
84941
+ }
84942
+
84943
+ if (style.Header)
84944
+ {
84945
+ var item=style.Header;
84946
+ if (item.Font) dest.Header.Font=item.Font;
84947
+ if (item.TextColor) dest.Header.TextColor=item.TextColor;
84948
+ if (item.Name)
84949
+ {
84950
+ var subItem=item.Name;
84951
+ if (subItem.Font) dest.Header.Name.Font=subItem.Font;
84952
+ if (subItem.Color) dest.Header.Name.Color=subItem.Color;
84953
+ if (subItem.Margin)
84954
+ {
84955
+ var margin=subItem.Margin;
84956
+ CopyMarginConfig(dest.Header.Name.Margin, margin);
84957
+ if (IFrameSplitOperator.IsNumber(margin.YOffset)) dest.Header.Name.Margin.YOffset=margin.YOffset
84958
+ }
84959
+ }
84960
+
84961
+ if (item.Symbol)
84962
+ {
84963
+ var subItem=item.Symbol;
84964
+ if (subItem.Font) dest.Header.Symbol.Font=subItem.Font;
84965
+ if (subItem.Color) dest.Header.Symbol.Color=subItem.Color;
84966
+ if (subItem.Margin)
84967
+ {
84968
+ var margin=subItem.Margin;
84969
+ CopyMarginConfig(dest.Header.Symbol.Margin, margin);
84970
+ if (IFrameSplitOperator.IsNumber(margin.YOffset)) dest.Header.Symbol.Margin.YOffset=margin.YOffset
84971
+ }
84972
+ }
84973
+
84974
+ if (IFrameSplitOperator.IsNonEmptyArray(item.AryCell))
84975
+ {
84976
+ for(var i=0;i<item.AryCell.length;++i)
84977
+ {
84978
+ var subItem=item.AryCell[i];
84979
+ if (!dest.Header.AryCell[i]) dest.Header.AryCell[i]={ };
84980
+ var subDest=dest.Header.AryCell[i];
84981
+ if (subItem.Font) subDest.Font=subItem.Font;
84982
+ if (subItem.Margin)
84983
+ {
84984
+ var margin=subItem.Margin;
84985
+ CopyMarginConfig(subDest.Margin, margin);
84986
+ if (IFrameSplitOperator.IsNumber(margin.YOffset)) subDest.YOffset=margin.YOffset
84987
+ }
84988
+ }
84989
+ }
84990
+
84991
+ if (item.BottomLine)
84992
+ {
84993
+ var subItem=item.BottomLine;
84994
+ if (subItem.Color) dest.Header.BottomLine.Color=subItem.Color;
84995
+ if (IFrameSplitOperator.IsBool(subItem.Enable)) dest.Header.BottomLine.Enable=subItem.Enable;
84996
+ }
84997
+ }
84805
84998
 
84999
+ if (style.UpTextColor) dest.UpTextColor=style.UpTextColor;
85000
+ if (style.DownTextColor) dest.DownTextColor=style.DownTextColor;
85001
+ if (style.UnchangeTextColor) dest.UnchangeTextColor=style.UnchangeTextColor;
85002
+ if (style.BorderColor) dest.BorderColor=style.BorderColor;
84806
85003
  }
84807
85004
 
84808
85005
  this.SetSmallFloatTooltipV2=function(style)
@@ -91399,6 +91596,9 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
91399
91596
  if (!option.Windows) return;
91400
91597
  var count=option.Windows.length;
91401
91598
  if (count<=0) return;
91599
+
91600
+ this.Frame.RestoreIndexWindows();
91601
+
91402
91602
  var currentLength=this.Frame.SubFrame.length;
91403
91603
 
91404
91604
  var period=null, right=null, symbol=null;
@@ -98329,6 +98529,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
98329
98529
  this.ChangeIndexTemplate=function(option) //切换指标模板 可以设置指标窗口个数 每个窗口的指标, 只能从第3个指标窗口开始设置,前面2个指标窗口固定无法设置
98330
98530
  {
98331
98531
  if (!Array.isArray(option.Windows)) return;
98532
+ this.Frame.RestoreIndexWindows();
98533
+
98332
98534
  var count=option.Windows.length;
98333
98535
  var currentLength=this.Frame.SubFrame.length;
98334
98536
  var startWindowIndex=2;
@@ -106396,6 +106598,7 @@ var MARKET_SUFFIX_NAME=
106396
106598
  DCE: '.DCE', //大连商品交易所(Dalian Commodity Exchange)
106397
106599
  CZCE: '.CZC', //郑州期货交易所
106398
106600
  GZFE:".GZFE", //广州期货交易所
106601
+ INE:".INE", //上海国际能源交易中心
106399
106602
 
106400
106603
  USA:'.USA', //美股
106401
106604
  FTSE:'.FTSE', //富时中国
@@ -106640,10 +106843,18 @@ var MARKET_SUFFIX_NAME=
106640
106843
  return upperSymbol.indexOf(this.GZFE) > 0;
106641
106844
  },
106642
106845
 
106846
+ IsINE:function(upperSymbol)
106847
+ {
106848
+ if (!upperSymbol) return false;
106849
+ return upperSymbol.indexOf(this.INE) > 0;
106850
+ },
106851
+
106643
106852
  IsChinaFutures:function(upperSymbol) //是否是国内期货 /期权
106644
106853
  {
106854
+ if (!upperSymbol) return false;
106855
+
106645
106856
  return this.IsSHO(upperSymbol) || this.IsSZO(upperSymbol) ||
106646
- this.IsGZFE(upperSymbol) ||
106857
+ this.IsGZFE(upperSymbol) || this.IsINE(upperSymbol) ||
106647
106858
  this.IsCFFEX(upperSymbol) || this.IsCZCE(upperSymbol) || this.IsDCE(upperSymbol) || this.IsSHFE(upperSymbol);
106648
106859
  },
106649
106860
 
@@ -106787,6 +106998,18 @@ var MARKET_SUFFIX_NAME=
106787
106998
  return false;
106788
106999
  },
106789
107000
 
107001
+ IsHKStock:function(symbol) //港股股票 全是数字
107002
+ {
107003
+ if (!symbol) return false;
107004
+ var upperSymbol=symbol.toUpperCase();
107005
+ if (!this.IsHK(upperSymbol)) return false;
107006
+
107007
+ var shortSymbol=this.GetShortSymbol(symbol);
107008
+ if (IFrameSplitOperator.IsNumberString(shortSymbol)) return true;
107009
+
107010
+ return false;
107011
+ },
107012
+
106790
107013
  GetMarketStatus:function(symbol) //获取市场状态 0=闭市 1=盘前 2=盘中 3=盘后
106791
107014
  {
106792
107015
  if (!symbol) return 0;
@@ -107127,7 +107350,18 @@ var MARKET_SUFFIX_NAME=
107127
107350
  if (MARKET_SUFFIX_NAME.IsBJ(upperSymbol)) return 100; //单位手=100股
107128
107351
 
107129
107352
  return 1;
107353
+ },
107354
+
107355
+ //获取不带后缀的代码
107356
+ GetShortSymbol:function(symbol)
107357
+ {
107358
+ if (!IFrameSplitOperator.IsString(symbol)) return null;
107359
+ var pos=symbol.lastIndexOf(".");
107360
+ if (pos<=0) return symbol;
107361
+
107362
+ return symbol.slice(0,pos);
107130
107363
  }
107364
+
107131
107365
  }
107132
107366
 
107133
107367
 
@@ -107475,7 +107709,8 @@ function MinuteTimeStringData()
107475
107709
  if (MARKET_SUFFIX_NAME.IsTW(upperSymbol)) return this.GetTW(upperSymbol);
107476
107710
  if (MARKET_SUFFIX_NAME.IsJP(upperSymbol)) return this.GetJP(upperSymbol);
107477
107711
  if (MARKET_SUFFIX_NAME.IsUSA(upperSymbol)) return this.GetUSA(upperSymbol);
107478
- 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))
107712
+ if (MARKET_SUFFIX_NAME.IsCFFEX(upperSymbol) || MARKET_SUFFIX_NAME.IsCZCE(upperSymbol) || MARKET_SUFFIX_NAME.IsDCE(upperSymbol) || MARKET_SUFFIX_NAME.IsSHFE(upperSymbol) ||
107713
+ MARKET_SUFFIX_NAME.IsGZFE(upperSymbol) || MARKET_SUFFIX_NAME.IsINE(upperSymbol))
107479
107714
  {
107480
107715
  var splitData = g_FuturesTimeData.GetSplitData(upperSymbol, option);
107481
107716
  if (!splitData) return null;
@@ -107967,7 +108202,7 @@ function MinuteCoordinateData()
107967
108202
  data=this.GetTWData(upperSymbol,width);
107968
108203
  else if (MARKET_SUFFIX_NAME.IsJP(upperSymbol))
107969
108204
  data=this.GetJPData(upperSymbol,width);
107970
- 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))
108205
+ 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))
107971
108206
  return this.GetChinatFuturesData(upperSymbol, width, option);
107972
108207
  else if (MARKET_SUFFIX_NAME.IsUSA(upperSymbol))
107973
108208
  data = this.GetUSAData(upperSymbol,width);
@@ -108814,6 +109049,13 @@ function FuturesTimeData()
108814
109049
  [MARKET_SUFFIX_NAME.SHFE + '-LU', {Time:6,Decimal:0,Name:'低硫燃油'}],
108815
109050
  [MARKET_SUFFIX_NAME.SHFE + '-BC', {Time:4,Decimal:0,Name:'国际铜'}],
108816
109051
  [MARKET_SUFFIX_NAME.SHFE + '-EC', {Time:0,Decimal:0,Name:'集运指数'}],
109052
+
109053
+ //上海国际能源交易中心 独立的一个市场
109054
+ [MARKET_SUFFIX_NAME.INE + '-NR', {Time:6,Decimal:1,Name:'20号胶'}],
109055
+ [MARKET_SUFFIX_NAME.INE + '-SC', {Time:5,Decimal:1,Name:'原油'}],
109056
+ [MARKET_SUFFIX_NAME.INE + '-LU', {Time:6,Decimal:0,Name:'低硫燃油'}],
109057
+ [MARKET_SUFFIX_NAME.INE + '-BC', {Time:4,Decimal:0,Name:'国际铜'}],
109058
+ [MARKET_SUFFIX_NAME.INE + '-EC', {Time:0,Decimal:0,Name:'集运指数'}],
108817
109059
 
108818
109060
  //郑州期货交易所
108819
109061
  [MARKET_SUFFIX_NAME.CZCE + '-CF', {Time:6,Decimal:0,Name:"棉花"}],
@@ -108930,6 +109172,11 @@ function FuturesTimeData()
108930
109172
  oneWordName = MARKET_SUFFIX_NAME.GZFE + '-' + oneWord;
108931
109173
  twoWordsName = MARKET_SUFFIX_NAME.GZFE + '-' + twoWords;
108932
109174
  }
109175
+ else if (MARKET_SUFFIX_NAME.IsINE(upperSymbol)) //上海国际能源交易中心
109176
+ {
109177
+ oneWordName = MARKET_SUFFIX_NAME.INE + '-' + oneWord;
109178
+ twoWordsName = MARKET_SUFFIX_NAME.INE + '-' + twoWords;
109179
+ }
108933
109180
 
108934
109181
  if (this.MAP_TWOWORDS.has(twoWordsName))
108935
109182
  {
@@ -123375,13 +123622,13 @@ function JSSymbolData(ast,option,jsExecute)
123375
123622
 
123376
123623
  this.GetDynaCacheData=function(name)
123377
123624
  {
123625
+ var data=null;
123378
123626
  if (MAP_DYNAINFO_SHORTCUT.has(name))
123379
123627
  {
123380
123628
  var item=MAP_DYNAINFO_SHORTCUT.get(name);
123381
- return this.GetLatestCacheData(item.ID);
123629
+ data=this.GetLatestCacheData(item.ID);
123382
123630
  }
123383
-
123384
- return null;
123631
+ return data;
123385
123632
  }
123386
123633
 
123387
123634
  this.GetLatestIndexData=function()
@@ -124457,12 +124704,7 @@ function JSSymbolData(ast,option,jsExecute)
124457
124704
  { Url:self.RealtimeApiUrl, Type:'POST' ,
124458
124705
  Data:
124459
124706
  {
124460
- "field": [ "name", "symbol","yclose","open","price","high","low","vol"],
124461
- "symbol": self.Symbol,
124462
- "start": -1,
124463
- "count": self.MaxRequestDataCount,
124464
- "period":this.Period,
124465
- "right":this.Right
124707
+ symbol: self.Symbol,count: self.MaxRequestDataCount, period:this.Period,right:this.Right
124466
124708
  }
124467
124709
  },
124468
124710
  Self:this,
@@ -124474,6 +124716,7 @@ function JSSymbolData(ast,option,jsExecute)
124474
124716
  obj.Request.KLineDataTimeRange={Start:{ Date:this.KLineDateTimeRange.Start.Date}, End:{ Date:this.KLineDateTimeRange.End.Date} };
124475
124717
  if (this.IsNumber(this.KLineDateTimeRange.Start.Time)) obj.Request.KLineDataTimeRange.Start.Time=this.KLineDateTimeRange.Start.Time;
124476
124718
  if (this.IsNumber(this.KLineDateTimeRange.End.Time)) obj.Request.KLineDataTimeRange.End.Time=this.KLineDateTimeRange.End.Time;
124719
+ obj.Request.Data.dateRange=obj.Request.KLineDataTimeRange;
124477
124720
  }
124478
124721
 
124479
124722
  this.NetworkFilter(obj, function(data)
@@ -126835,13 +127078,14 @@ function JSSymbolData(ast,option,jsExecute)
126835
127078
  if (readArgument.Value=='') readArgument.Value=this.Symbol; //缺省使用股票代码
126836
127079
 
126837
127080
  var symbol=readArgument.Value;
127081
+ var upperSymbol=symbol.toUpperCase();
126838
127082
 
126839
127083
  //支持 SH60000, SZ000001
126840
127084
  //A股后缀小写
126841
- if (symbol.indexOf('.SH')>0) result.Symbol=symbol.replace('.SH', ".sh");
126842
- else if (symbol.indexOf('.SZ')>0) result.Symbol=symbol.replace('.SZ', ".sz");
126843
- else if (symbol.indexOf("SH")==0) result.Symbol=symbol.slice(2)+".sh";
126844
- else if (symbol.indexOf("SZ")==0) result.Symbol=symbol.slice(2)+".sz";
127085
+ if (upperSymbol.indexOf('.SH')>0) result.Symbol=symbol.replace('.SH', ".sh");
127086
+ else if (upperSymbol.indexOf('.SZ')>0) result.Symbol=symbol.replace('.SZ', ".sz");
127087
+ else if (upperSymbol.indexOf("SH")==0) result.Symbol=symbol.slice(2)+".sh";
127088
+ else if (upperSymbol.indexOf("SZ")==0) result.Symbol=symbol.slice(2)+".sz";
126845
127089
  else result.Symbol=symbol;
126846
127090
 
126847
127091
  return true;
@@ -128537,6 +128781,8 @@ function JSExecute(ast,option)
128537
128781
 
128538
128782
  this.ReadSymbolData=function(name,node)
128539
128783
  {
128784
+ if (MAP_DYNAINFO_SHORTCUT.has(name)) return this.SymbolData.GetDynaCacheData(name);
128785
+
128540
128786
  switch(name)
128541
128787
  {
128542
128788
  case 'CLOSE':
@@ -128604,7 +128850,6 @@ function JSExecute(ast,option)
128604
128850
  case 'CAPITAL':
128605
128851
  case 'EXCHANGE':
128606
128852
  case "HSL":
128607
-
128608
128853
  case "HYBLOCK":
128609
128854
  case "DYBLOCK":
128610
128855
  case "GNBLOCK":
@@ -128705,14 +128950,6 @@ function JSExecute(ast,option)
128705
128950
  return this.SymbolData.WEEKOFYEAR();
128706
128951
  case "DAYSTOTODAY":
128707
128952
  return this.SymbolData.DAYSTOTODAY();
128708
-
128709
- case "DYNA_NOW":
128710
- case "DYNA_ZAF":
128711
- case "DYNA_LB":
128712
- case "DYNA_ZAS":
128713
- case "SELLVOL":
128714
- case "BUYVOL":
128715
- return this.SymbolData.GetDynaCacheData(name);
128716
128953
  }
128717
128954
 
128718
128955
  this.ThrowUnexpectedNode(node, '变量'+name+'不存在', name);
@@ -138071,8 +138308,8 @@ function DownloadFinanceData(obj)
138071
138308
  {
138072
138309
  case 1: //FINANCE(1) 总股本(随时间可能有变化) 股
138073
138310
  case 7: //FINANCE(7) 流通股本(随时间可能有变化) 股
138074
- case "EXCHANGE": //换手率
138075
138311
  case "HSL"://换手率
138312
+ case "EXCHANGE": //换手率
138076
138313
  this.DownloadHistoryData(id);
138077
138314
  break;
138078
138315
  case 3:
@@ -138333,7 +138570,7 @@ function DownloadFinanceData(obj)
138333
138570
  if (!item.capital) return null;
138334
138571
  return { Date:date, Value:item.capital.total };
138335
138572
  case 7:
138336
- case "HSL": //换手率
138573
+ case "HSL":
138337
138574
  case "EXCHANGE": //换手率 历史流通股本
138338
138575
  if (!item.capital) return null;
138339
138576
  return { Date:date, Value:item.capital.a };
@@ -139180,13 +139417,13 @@ function GetBlackStyle()
139180
139417
  {
139181
139418
  Color:"RGB(245,245,245)",
139182
139419
  Mergin:{ Left:5, Right:5, Top:4, Bottom:2 },
139183
- Font:{ Size:12, Name:"微软雅黑" }
139420
+ //Font:{ Size:12, Name:"微软雅黑" }
139184
139421
  },
139185
139422
 
139186
139423
  Row:
139187
139424
  {
139188
139425
  Mergin:{ Top:2, Bottom:2 },
139189
- Font:{ Size:15, Name:"微软雅黑"},
139426
+ //Font:{ Size:15, Name:"微软雅黑"},
139190
139427
  BarMergin:{ Top:2, Left:3, Right:3, Bottom:2 }
139191
139428
  },
139192
139429
 
@@ -139474,6 +139711,67 @@ function GetBlackStyle()
139474
139711
  BGColor: { Selected:"rgb(234,85,4)", Default:"rgb(25,25,25)", MoveOn:"rgb(59,59,59)" },
139475
139712
  BorderColor:"rgb(60,60,60)",
139476
139713
  }
139714
+ },
139715
+
139716
+ StockInfo:
139717
+ {
139718
+ Header:
139719
+ {
139720
+ Name:
139721
+ {
139722
+ //Font:`${20*GetDevicePixelRatio()}px 微软雅黑`,
139723
+ Color:"rgb(255,255,0)",
139724
+ //Margin:{ Left:5, Top:10, Bottom:5, Right:10, YOffset:0 },
139725
+ },
139726
+
139727
+ Symbol:
139728
+ {
139729
+ //Font:`${18*GetDevicePixelRatio()}px 微软雅黑`,
139730
+ Color:"rgb(250,250,250)",
139731
+ //Margin:{ Left:5, Top:10, Bottom:5, Right:5, YOffset:0 },
139732
+ },
139733
+
139734
+ AryCell:
139735
+ [
139736
+ //{ Font:`bold ${16*GetDevicePixelRatio()}px 微软雅黑`, Margin:{ Left:5, Top:5, Bottom:5, Right:15, YOffset:0 } },
139737
+ //{ Font:`${16*GetDevicePixelRatio()}px 微软雅黑`, Margin:{ Left:5, Top:5, Bottom:5, Right:15, YOffset:0 } },
139738
+ //{ Font:`${16*GetDevicePixelRatio()}px 微软雅黑`, Margin:{ Left:5, Top:5, Bottom:5, Right:5, YOffset:0 } }
139739
+ ],
139740
+
139741
+ TextColor:"rgb(250,250,250)",
139742
+
139743
+ BottomLine:{ Enable:true, Color:"rgb(60,60,60)"} , //底部分割线
139744
+ },
139745
+
139746
+ BuySell:
139747
+ {
139748
+ //Font:14*GetDevicePixelRatio() +'px 微软雅黑',
139749
+ TitleColor:"rgb(250,250,250)",
139750
+ VolColor:"rgb(250,250,250)",
139751
+ //Margin:{ Left:0, Top:0, Bottom:0, Right:0 },
139752
+ //CellMargin:{ Top:5, Bottom:5, YOffset:0, Left:5, Right:5, YOffset:-5 },
139753
+ BottomLine:{ Enable:true, Color:"rgb(60,60,60)"} , //底部分割线
139754
+ TopLine:{ Enable:false, Color:"rgb(60,60,60)"} , //顶部分割线
139755
+
139756
+ CenterLine:
139757
+ {
139758
+ NoneColor:"rgb(60,60,60)",
139759
+ }
139760
+ },
139761
+
139762
+ Table:
139763
+ {
139764
+ Font:14*GetDevicePixelRatio() +'px 微软雅黑',
139765
+ TitleColor:"rgb(250,250,250)",
139766
+ TextColor:"rgb(250,250,250)",
139767
+ //Margin:{ Left:0, Top:0, Bottom:0, Right:0 },
139768
+ //CellMargin:{ Top:5, Bottom:5, YOffset:0, Left:5, Right:5, YOffset:-5 },
139769
+ },
139770
+
139771
+ UpTextColor:"rgb(238,21,21)", //上涨文字颜色
139772
+ DownTextColor:"rgb(25,158,0)", //下跌文字颜色
139773
+ UnchangeTextColor:"rgb(90,90,90)", //平盘文字颜色
139774
+ BorderColor:'rgb(38,38,41)', //边框线
139477
139775
  }
139478
139776
 
139479
139777
  };
@@ -139542,9 +139840,18 @@ function JSDealChart(divElement)
139542
139840
  this.OnSize=function()
139543
139841
  {
139544
139842
  //画布大小通过div获取
139545
- var height=parseInt(this.DivElement.style.height.replace("px",""));
139843
+ var height=this.DivElement.offsetHeight;
139844
+ var width=this.DivElement.offsetWidth;
139845
+ if (this.DivElement.style.height && this.DivElement.style.width)
139846
+ {
139847
+ if (this.DivElement.style.height.includes("px"))
139848
+ height=parseInt(this.DivElement.style.height.replace("px",""));
139849
+ if (this.DivElement.style.width.includes("px"))
139850
+ width=parseInt(this.DivElement.style.width.replace("px",""));
139851
+ }
139852
+
139546
139853
  this.CanvasElement.height=height;
139547
- this.CanvasElement.width=parseInt(this.DivElement.style.width.replace("px",""));
139854
+ this.CanvasElement.width=width;
139548
139855
  this.CanvasElement.style.width=this.CanvasElement.width+'px';
139549
139856
  this.CanvasElement.style.height=this.CanvasElement.height+'px';
139550
139857
 
@@ -140009,14 +140316,17 @@ function JSDealChartContainer(uielement)
140009
140316
  this.ChangeSymbol=function(symbol, option)
140010
140317
  {
140011
140318
  this.Symbol=symbol;
140012
- this.Data=null;
140013
- this.SourceData=null;
140319
+ this.Data={ DataOffset:0, Data:[] }; //分笔数据
140320
+ this.SourceData={DataOffset:0, Data:[] }; //原始分笔数据
140014
140321
 
140015
140322
  var chart=this.ChartPaint[0];
140016
140323
  if (chart) chart.Data=null;
140017
140324
 
140018
- if (option && IFrameSplitOperator.IsNumber(option.TradeDate))
140019
- this.TradeDate=option.TradeDate;
140325
+ if (option)
140326
+ {
140327
+ if (IFrameSplitOperator.IsNumber(option.TradeDate)) this.TradeDate=option.TradeDate;
140328
+ if (IFrameSplitOperator.IsNonEmptyArray(option.Column)) this.SetColumn(option.Column);
140329
+ }
140020
140330
 
140021
140331
  if (!this.Symbol)
140022
140332
  {
@@ -140124,6 +140434,7 @@ function JSDealChartContainer(uielement)
140124
140434
  chart.Data=this.Data;
140125
140435
  chart.Symbol=this.Symbol;
140126
140436
  chart.YClose=data.yclose;
140437
+ chart.YFClose=data.yfclose;
140127
140438
  chart.Open=data.open;
140128
140439
 
140129
140440
  if (this.IsShowLastPage) this.SetLastPageDataOffset(); //显示最后一屏
@@ -140657,17 +140968,23 @@ JSDealChartContainer.JsonDataToDealData=function(data)
140657
140968
 
140658
140969
  if (item[100]) dealItem.Guid=item[100];
140659
140970
 
140660
- //10个数值型 101-199
140661
- if (IFrameSplitOperator.IsNumber(item[101])) dealItem.ReserveNumber1=item[101];
140662
- if (IFrameSplitOperator.IsNumber(item[102])) dealItem.ReserveNumber2=item[102];
140663
- if (IFrameSplitOperator.IsNumber(item[103])) dealItem.ReserveNumber3=item[103];
140664
- if (IFrameSplitOperator.IsNumber(item[104])) dealItem.ReserveNumber4=item[104];
140665
- if (IFrameSplitOperator.IsNumber(item[105])) dealItem.ReserveNumber5=item[105];
140666
- if (IFrameSplitOperator.IsNumber(item[106])) dealItem.ReserveNumber6=item[106];
140667
- if (IFrameSplitOperator.IsNumber(item[107])) dealItem.ReserveNumber7=item[107];
140668
- if (IFrameSplitOperator.IsNumber(item[108])) dealItem.ReserveNumber8=item[108];
140669
- if (IFrameSplitOperator.IsNumber(item[109])) dealItem.ReserveNumber9=item[109];
140670
- if (IFrameSplitOperator.IsNumber(item[110])) dealItem.ReserveNumber10=item[110];
140971
+ //柱子类型
140972
+ if (item[50]) dealItem.MultiBar1=item[50];
140973
+ if (item[51]) dealItem.MultiBar2=item[51];
140974
+ if (item[52]) dealItem.MultiBar3=item[52];
140975
+ if (item[53]) dealItem.MultiBar4=item[53];
140976
+
140977
+ //10个数值型 101-199
140978
+ if (IFrameSplitOperator.IsNumber(item[101])) dealItem.ReserveNumber1=item[101];
140979
+ if (IFrameSplitOperator.IsNumber(item[102])) dealItem.ReserveNumber2=item[102];
140980
+ if (IFrameSplitOperator.IsNumber(item[103])) dealItem.ReserveNumber3=item[103];
140981
+ if (IFrameSplitOperator.IsNumber(item[104])) dealItem.ReserveNumber4=item[104];
140982
+ if (IFrameSplitOperator.IsNumber(item[105])) dealItem.ReserveNumber5=item[105];
140983
+ if (IFrameSplitOperator.IsNumber(item[106])) dealItem.ReserveNumber6=item[106];
140984
+ if (IFrameSplitOperator.IsNumber(item[107])) dealItem.ReserveNumber7=item[107];
140985
+ if (IFrameSplitOperator.IsNumber(item[108])) dealItem.ReserveNumber8=item[108];
140986
+ if (IFrameSplitOperator.IsNumber(item[109])) dealItem.ReserveNumber9=item[109];
140987
+ if (IFrameSplitOperator.IsNumber(item[110])) dealItem.ReserveNumber10=item[110];
140671
140988
 
140672
140989
  //10个字符型 201-299
140673
140990
  if (IFrameSplitOperator.IsString(item[201]) || IFrameSplitOperator.IsObject(item[201])) dealItem.ReserveString1=item[201];
@@ -140778,14 +141095,13 @@ var DEAL_COLUMN_ID=
140778
141095
  UPDOWN_ID:5, //涨跌
140779
141096
  STRING_TIME_ID:6, //字符串时间
140780
141097
  INDEX_ID:7, //序号 从1开始
140781
- MULTI_BAR_ID:8, //多颜色柱子
141098
+
140782
141099
  CENTER_BAR_ID:9, //中心柱子
140783
141100
  CUSTOM_TEXT_ID:10, //自定义文本
140784
141101
 
140785
141102
  SYMBOL_ID:11, //股票代码
140786
141103
  NAME_ID:12, //股票名称
140787
141104
 
140788
-
140789
141105
  //预留数值类型 10个
140790
141106
  RESERVE_NUMBER1_ID:201, //ReserveNumber1:
140791
141107
  RESERVE_NUMBER2_ID:202,
@@ -140809,6 +141125,11 @@ var DEAL_COLUMN_ID=
140809
141125
  RESERVE_STRING8_ID:308,
140810
141126
  RESERVE_STRING9_ID:309,
140811
141127
  RESERVE_STRING10_ID:310,
141128
+
141129
+ MULTI_BAR_ID:50, //多颜色柱子
141130
+ MULTI_BAR2_ID:51,
141131
+ MULTI_BAR3_ID:52,
141132
+ MULTI_BAR4_ID:53
140812
141133
  }
140813
141134
 
140814
141135
  var MAP_DEAL_COLUMN_FIELD=new Map(
@@ -140817,6 +141138,11 @@ var MAP_DEAL_COLUMN_FIELD=new Map(
140817
141138
  [DEAL_COLUMN_ID.NAME_ID, "Name"],
140818
141139
  [DEAL_COLUMN_ID.PRICE_ID, "Price"],
140819
141140
 
141141
+ [DEAL_COLUMN_ID.MULTI_BAR_ID, "MultiBar1"],
141142
+ [DEAL_COLUMN_ID.MULTI_BAR2_ID, "MultiBar2"],
141143
+ [DEAL_COLUMN_ID.MULTI_BAR3_ID, "MultiBar3"],
141144
+ [DEAL_COLUMN_ID.MULTI_BAR4_ID, "MultiBar4"],
141145
+
140820
141146
  [DEAL_COLUMN_ID.RESERVE_NUMBER1_ID,"ReserveNumber1"],
140821
141147
  [DEAL_COLUMN_ID.RESERVE_NUMBER2_ID,"ReserveNumber2"],
140822
141148
  [DEAL_COLUMN_ID.RESERVE_NUMBER3_ID,"ReserveNumber3"],
@@ -140853,6 +141179,7 @@ function ChartDealList()
140853
141179
  //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 }] };
140854
141180
  this.Symbol;
140855
141181
  this.YClose; //昨收
141182
+ this.YFClose; //昨结算
140856
141183
  this.Open; //开盘价
140857
141184
  this.Decimal=2; //小数位数
140858
141185
  this.IsSingleTable=false; //单表模式
@@ -140973,7 +141300,7 @@ function ChartDealList()
140973
141300
 
140974
141301
  if (item.ChartTooltip) colItem.ChartTooltip={ Enable:item.ChartTooltip.Enable, Type:item.ChartTooltip.Type }; //图形提示信息
140975
141302
 
140976
- if (item.Type==DEAL_COLUMN_ID.MULTI_BAR_ID || item.Type==DEAL_COLUMN_ID.CENTER_BAR_ID)
141303
+ if (item.Type==DEAL_COLUMN_ID.CENTER_BAR_ID)
140977
141304
  {
140978
141305
  if (!IFrameSplitOperator.IsNumber(item.DataIndex)) continue;
140979
141306
  colItem.DataIndex=item.DataIndex; //柱子数据所在原始数据索引列
@@ -140986,6 +141313,8 @@ function ChartDealList()
140986
141313
  {
140987
141314
  if (item.Format) colItem.Format=item.Format; //数据格式化设置{ Type:1=原始 2=千分位分割 3=万亿转换, ExFloatPrecision:万亿转换以后的小数位数 }
140988
141315
  if (IFrameSplitOperator.IsNumber(item.ColorType)) colItem.ColorType=item.ColorType; //0=默认 1=(>0, =0, <0) 2=(>=0, <0)
141316
+ if (IFrameSplitOperator.IsNumber(item.FloatPrecision)) colItem.FloatPrecision=item.FloatPrecision;
141317
+ if (item.StringFormat) colItem.StringFormat=item.StringFormat; //"{0}%" 输出增加固定字符
140989
141318
  }
140990
141319
 
140991
141320
  this.Column.push(colItem);
@@ -141005,7 +141334,6 @@ function ChartDealList()
141005
141334
  { Type:DEAL_COLUMN_ID.STRING_TIME_ID, Title:"时间", TextAlign:"center", Width:null, TextColor:g_JSChartResource.DealList.FieldColor.Time, MaxText:"88:88:88" },
141006
141335
  { Type:DEAL_COLUMN_ID.INDEX_ID, Title:"序号", TextAlign:"center", Width:null, TextColor:g_JSChartResource.DealList.FieldColor.Index, MaxText:"88888" },
141007
141336
 
141008
- { Type:DEAL_COLUMN_ID.MULTI_BAR_ID, Title:"柱子", TextAlign:"center", Width:null, TextColor:g_JSChartResource.DealList.FieldColor.BarTitle, MaxText:"888888" },
141009
141337
  { Type:DEAL_COLUMN_ID.CENTER_BAR_ID, Title:"柱子2", TextAlign:"center", Width:null, TextColor:g_JSChartResource.DealList.FieldColor.BarTitle, MaxText:"888888" },
141010
141338
  { Type:DEAL_COLUMN_ID.CUSTOM_TEXT_ID, Title:"自定义", TextAlign:"center", Width:null, TextColor:g_JSChartResource.DealList.FieldColor.Text, MaxText:"擎擎擎擎擎" },
141011
141339
 
@@ -141033,6 +141361,11 @@ function ChartDealList()
141033
141361
  { Type:DEAL_COLUMN_ID.RESERVE_STRING8_ID, Title:"文字8", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
141034
141362
  { Type:DEAL_COLUMN_ID.RESERVE_STRING9_ID, Title:"文字9", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
141035
141363
  { Type:DEAL_COLUMN_ID.RESERVE_STRING10_ID, Title:"文字10", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
141364
+
141365
+ { Type:DEAL_COLUMN_ID.MULTI_BAR_ID, Title:"柱子", TextAlign:"center", Width:null, TextColor:g_JSChartResource.DealList.FieldColor.BarTitle, MaxText:"888888" },
141366
+ { Type:DEAL_COLUMN_ID.MULTI_BAR2_ID, Title:"柱子2", TextAlign:"center", Width:null, TextColor:g_JSChartResource.DealList.FieldColor.BarTitle, MaxText:"888888" },
141367
+ { Type:DEAL_COLUMN_ID.MULTI_BAR3_ID, Title:"柱子3", TextAlign:"center", Width:null, TextColor:g_JSChartResource.DealList.FieldColor.BarTitle, MaxText:"888888" },
141368
+ { Type:DEAL_COLUMN_ID.MULTI_BAR4_ID, Title:"柱子4", TextAlign:"center", Width:null, TextColor:g_JSChartResource.DealList.FieldColor.BarTitle, MaxText:"888888" },
141036
141369
 
141037
141370
  ];
141038
141371
 
@@ -141329,10 +141662,7 @@ function ChartDealList()
141329
141662
  }
141330
141663
  else if (item.Type==DEAL_COLUMN_ID.PRICE_ID)
141331
141664
  {
141332
- if (data.Price>this.YClose) textColor=this.UpColor;
141333
- else if (data.Price<this.YClose) textColor=this.DownColor;
141334
- else textColor=this.UnchangeColor;
141335
-
141665
+ textColor=this.GetPriceColor(data.Price);
141336
141666
  text=data.Price.toFixed(this.Decimal);
141337
141667
  }
141338
141668
  else if (item.Type==DEAL_COLUMN_ID.VOL_ID)
@@ -141373,7 +141703,7 @@ function ChartDealList()
141373
141703
  {
141374
141704
  text=(dataIndex+1).toString();
141375
141705
  }
141376
- else if (item.Type==DEAL_COLUMN_ID.MULTI_BAR_ID)
141706
+ else if (this.IsMulitBar(item.Type))
141377
141707
  {
141378
141708
  var rtItem={Left:left, Top:top, Width:itemWidth, Height:this.RowHeight};
141379
141709
  this.DrawMultiBar(item, data, rtItem);
@@ -141433,6 +141763,29 @@ function ChartDealList()
141433
141763
  }
141434
141764
  }
141435
141765
 
141766
+ this.GetPriceColor=function(price)
141767
+ {
141768
+ var upperSymbol=null;
141769
+ if (this.Symbol) upperSymbol=this.Symbol.toUpperCase();
141770
+ if (MARKET_SUFFIX_NAME.IsChinaFutures(upperSymbol))
141771
+ {
141772
+ if (!IFrameSplitOperator.IsNumber(this.YFClose)) return this.UnchangeColor;
141773
+ return this.GetUpDownColor(price, this.YFClose);
141774
+ }
141775
+ else
141776
+ {
141777
+ if (!IFrameSplitOperator.IsNumber(this.YClose)) return this.UnchangeColor;
141778
+ return this.GetUpDownColor(price, this.YClose);
141779
+ }
141780
+ }
141781
+
141782
+ this.GetUpDownColor=function(price, price2)
141783
+ {
141784
+ if (price>price2) return this.UpColor;
141785
+ else if (price<price2) return this.DownColor;
141786
+ else return this.UnchangeColor;
141787
+ }
141788
+
141436
141789
  this.FormatReserveNumber=function(column, data, drawInfo)
141437
141790
  {
141438
141791
  if (column.DefaultText) drawInfo.Text=column.DefaultText;
@@ -141474,6 +141827,11 @@ function ChartDealList()
141474
141827
  break;
141475
141828
  }
141476
141829
  }
141830
+
141831
+ if (column.StringFormat && text)
141832
+ {
141833
+ text=column.StringFormat.replace("{0}", text);
141834
+ }
141477
141835
 
141478
141836
  drawInfo.Text=text;
141479
141837
  }
@@ -141595,8 +141953,10 @@ function ChartDealList()
141595
141953
 
141596
141954
  this.DrawMultiBar=function(colunmInfo, data, rtItem)
141597
141955
  {
141598
- if (!data.Source || !IFrameSplitOperator.IsNonEmptyArray(data.Source)) return false;
141599
- var barData=data.Source[colunmInfo.DataIndex]; //{ Value:[0.4,0,2], Color:[0,1] };
141956
+ var fieldName=MAP_DEAL_COLUMN_FIELD.get(colunmInfo.Type);
141957
+ if (!data || !fieldName) return;
141958
+
141959
+ var barData=data[fieldName]; //{ Value:[0.4,0,2], Color:[0,1] };
141600
141960
  if (!barData) return false;
141601
141961
  if (!IFrameSplitOperator.IsNonEmptyArray(barData.Value)) return false;
141602
141962
 
@@ -141784,6 +142144,16 @@ function ChartDealList()
141784
142144
  return ARARY_TYPE.includes(value);
141785
142145
  }
141786
142146
 
142147
+ this.IsMulitBar=function(value)
142148
+ {
142149
+ var ARARY_TYPE=
142150
+ [
142151
+ DEAL_COLUMN_ID.MULTI_BAR_ID,DEAL_COLUMN_ID.MULTI_BAR2_ID,DEAL_COLUMN_ID.MULTI_BAR3_ID,DEAL_COLUMN_ID.MULTI_BAR4_ID,
142152
+ ];
142153
+
142154
+ return ARARY_TYPE.includes(value);
142155
+ }
142156
+
141787
142157
  this.IsReserveNumber=function(value)
141788
142158
  {
141789
142159
  var ARARY_TYPE=
@@ -143557,6 +143927,8 @@ function JSReportChartContainer(uielement)
143557
143927
  //80=整行背景色
143558
143928
  //101-199=数值型 201-299=字符型 301-350=进度条 351-400=按钮 401-499=日期时间
143559
143929
 
143930
+ var upperSymbol=null;
143931
+ if (stock.Symbol) upperSymbol=stock.Symbol.toUpperCase();
143560
143932
  if (IFrameSplitOperator.IsString(item[1])) stock.Name=item[1];
143561
143933
  if (IFrameSplitOperator.IsNumber(item[2])) stock.YClose=item[2];
143562
143934
  if (IFrameSplitOperator.IsNumber(item[3])) stock.Open=item[3];
@@ -143588,17 +143960,39 @@ function JSReportChartContainer(uielement)
143588
143960
 
143589
143961
  if (item[27]) stock.NameEx=item[27]; //扩展名字
143590
143962
 
143963
+ if (IFrameSplitOperator.IsNumber(item[38])) stock.Position=item[38]; //持仓量
143964
+ if (IFrameSplitOperator.IsNumber(item[39])) stock.FClose=item[39]; //结算价
143965
+ if (IFrameSplitOperator.IsNumber(item[40])) stock.YFClose=item[40]; //昨结算价
143966
+ if (IFrameSplitOperator.IsNumber(item[41])) stock.OpenPosition=item[41]; //开仓量
143967
+ if (IFrameSplitOperator.IsNumber(item[42])) stock.ClosePosition=item[42]; //平仓量
143968
+
143591
143969
  //衍生数据计算
143592
143970
  if (!IFrameSplitOperator.IsNumber(item[21])) //涨幅%
143593
143971
  {
143594
- if (IFrameSplitOperator.IsNumber(stock.Price) && IFrameSplitOperator.IsNumber(stock.YClose) && stock.YClose!=0)
143595
- stock.Increase=(stock.Price-stock.YClose)/stock.YClose*100;
143972
+ if (MARKET_SUFFIX_NAME.IsChinaFutures(upperSymbol))
143973
+ {
143974
+ if (IFrameSplitOperator.IsNumber(stock.Price) && IFrameSplitOperator.IsNumber(stock.YFClose) && stock.YFClose!=0)
143975
+ stock.Increase=(stock.Price-stock.YFClose)/stock.YFClose*100;
143976
+ }
143977
+ else
143978
+ {
143979
+ if (IFrameSplitOperator.IsNumber(stock.Price) && IFrameSplitOperator.IsNumber(stock.YClose) && stock.YClose!=0)
143980
+ stock.Increase=(stock.Price-stock.YClose)/stock.YClose*100;
143981
+ }
143596
143982
  }
143597
143983
 
143598
143984
  if (!IFrameSplitOperator.IsNumber(item[22])) //涨跌
143599
143985
  {
143600
- if (IFrameSplitOperator.IsNumber(stock.Price) && IFrameSplitOperator.IsNumber(stock.YClose))
143601
- stock.UpDown=stock.Price-stock.YClose;
143986
+ if (MARKET_SUFFIX_NAME.IsChinaFutures(upperSymbol))
143987
+ {
143988
+ if (IFrameSplitOperator.IsNumber(stock.Price) && IFrameSplitOperator.IsNumber(stock.YFClose))
143989
+ stock.UpDown=stock.Price-stock.YFClose;
143990
+ }
143991
+ else
143992
+ {
143993
+ if (IFrameSplitOperator.IsNumber(stock.Price) && IFrameSplitOperator.IsNumber(stock.YClose))
143994
+ stock.UpDown=stock.Price-stock.YClose;
143995
+ }
143602
143996
  }
143603
143997
 
143604
143998
  if (!IFrameSplitOperator.IsNumber(item[23])) //换手率%
@@ -143609,8 +144003,17 @@ function JSReportChartContainer(uielement)
143609
144003
 
143610
144004
  if (!IFrameSplitOperator.IsNumber(item[24])) //振幅%
143611
144005
  {
143612
- if (IFrameSplitOperator.IsNumber(stock.High) && IFrameSplitOperator.IsNumber(stock.Low) && IFrameSplitOperator.IsNumber(stock.YClose) && stock.YClose!=0)
143613
- stock.Amplitude=(stock.High-stock.Low)/stock.YClose*100;
144006
+ if (MARKET_SUFFIX_NAME.IsChinaFutures(upperSymbol))
144007
+ {
144008
+ if (IFrameSplitOperator.IsNumber(stock.High) && IFrameSplitOperator.IsNumber(stock.Low) && IFrameSplitOperator.IsNumber(stock.YFClose) && stock.YFClose!=0)
144009
+ stock.Amplitude=(stock.High-stock.Low)/stock.YFClose*100;
144010
+ }
144011
+ else
144012
+ {
144013
+ if (IFrameSplitOperator.IsNumber(stock.High) && IFrameSplitOperator.IsNumber(stock.Low) && IFrameSplitOperator.IsNumber(stock.YClose) && stock.YClose!=0)
144014
+ stock.Amplitude=(stock.High-stock.Low)/stock.YClose*100;
144015
+ }
144016
+
143614
144017
  }
143615
144018
 
143616
144019
  if (!IFrameSplitOperator.IsNumber(item[25])) //流通市值
@@ -143639,11 +144042,7 @@ function JSReportChartContainer(uielement)
143639
144042
 
143640
144043
  if (IFrameSplitOperator.IsBool(item[37])) stock.Checked=item[37];
143641
144044
 
143642
- if (IFrameSplitOperator.IsNumber(item[38])) stock.Position=item[38]; //持仓量
143643
- if (IFrameSplitOperator.IsNumber(item[39])) stock.FClose=item[39]; //结算价
143644
- if (IFrameSplitOperator.IsNumber(item[40])) stock.YFClose=item[40]; //昨结算价
143645
- if (IFrameSplitOperator.IsNumber(item[41])) stock.OpenPosition=item[41]; //开仓量
143646
- if (IFrameSplitOperator.IsNumber(item[42])) stock.ClosePosition=item[42]; //平仓量
144045
+
143647
144046
 
143648
144047
  //1,3,5,10,15 涨速%
143649
144048
  if (IFrameSplitOperator.IsNumber(item[43])) stock.RSpeed1M=item[43];
@@ -149933,7 +150332,16 @@ function ChartReport()
149933
150332
  }
149934
150333
  else //昨收价 计算颜色
149935
150334
  {
149936
- if (IFrameSplitOperator.IsNumber(stock.YClose)) yClose=stock.YClose;
150335
+ var upperSymbol=null;
150336
+ if (stock.Symbol) upperSymbol=stock.Symbol.toUpperCase();
150337
+ if (MARKET_SUFFIX_NAME.IsChinaFutures(upperSymbol) && IFrameSplitOperator.IsNumber(stock.YFClose))
150338
+ {
150339
+ yClose=stock.YFClose;
150340
+ }
150341
+ else
150342
+ {
150343
+ if (IFrameSplitOperator.IsNumber(stock.YClose)) yClose=stock.YClose;
150344
+ }
149937
150345
  }
149938
150346
 
149939
150347
  if (!IFrameSplitOperator.IsNumber(yClose))
@@ -155762,7 +156170,7 @@ function ScrollBarBGChart()
155762
156170
 
155763
156171
 
155764
156172
 
155765
- var HQCHART_VERSION="1.1.15389";
156173
+ var HQCHART_VERSION="1.1.15437";
155766
156174
 
155767
156175
  function PrintHQChartVersion()
155768
156176
  {