hqchart 1.1.15494 → 1.1.15515

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.
@@ -62874,6 +62874,7 @@ function FrameSplitMinuteX()
62874
62874
 
62875
62875
  const minuteCoordinate = g_MinuteCoordinateData;
62876
62876
  var xcoordinateData = minuteCoordinate.GetCoordinateData(this.Symbol, width, this.Frame.GlobalOption);
62877
+ if (!xcoordinateData) return;
62877
62878
  var minuteCount=xcoordinateData.Count;
62878
62879
  var minuteMiddleCount=xcoordinateData.MiddleCount>0? xcoordinateData.MiddleCount: parseInt(minuteCount/2);
62879
62880
  var xcoordinate = xcoordinateData.Data;
@@ -107044,7 +107045,9 @@ var MARKET_SUFFIX_NAME=
107044
107045
  CFFEX3:'.CF', //中期所 (China Financial Futures Exchange)
107045
107046
  DCE: '.DCE', //大连商品交易所(Dalian Commodity Exchange)
107046
107047
  CZCE: '.CZC', //郑州期货交易所
107047
- GZFE:".GZFE", //广州期货交易所
107048
+ CZCE2:".CZCE", //郑州期货交易所
107049
+ GZFE:".GZFE", //广州期货交易所
107050
+ GZFE2:"GFEX", //广州期货交易所
107048
107051
  INE:".INE", //上海国际能源交易中心
107049
107052
 
107050
107053
  USA:'.USA', //美股
@@ -107259,6 +107262,25 @@ var MARKET_SUFFIX_NAME=
107259
107262
  if (upperSymbol.indexOf(this.SHFE2) > 0) return true;
107260
107263
  return false;
107261
107264
  },
107265
+
107266
+ IsSHFEOption:function(upperSymbol)
107267
+ {
107268
+ if (!upperSymbol) return false;
107269
+ if (!this.IsSHFE(upperSymbol)) return false;
107270
+ var shortSymbol=JSChart.GetShortSymbol(upperSymbol);
107271
+ //ZN2605-P-20600
107272
+ var aryValue=shortSymbol.split("-");
107273
+ if (!aryValue || aryValue.length!=3) return false;
107274
+
107275
+ var strValue=aryValue[0];
107276
+ const regex = /([a-zA-Z]+)(\d+)/;
107277
+ const match = strValue.match(regex);
107278
+ if (!match || !match[1] || !match[2]) return false;
107279
+
107280
+ var prefix=match[1];
107281
+
107282
+ return true;
107283
+ },
107262
107284
 
107263
107285
  IsCFFEX: function (upperSymbol)
107264
107286
  {
@@ -107298,16 +107320,77 @@ var MARKET_SUFFIX_NAME=
107298
107320
  return upperSymbol.indexOf(this.DCE) > 0;
107299
107321
  },
107300
107322
 
107323
+ IsDCEOption:function(upperSymbol)
107324
+ {
107325
+ if (!upperSymbol) return false;
107326
+ if (!this.IsDCE(upperSymbol)) return false;
107327
+ var shortSymbol=JSChart.GetShortSymbol(upperSymbol);
107328
+ //M2605-P-2400
107329
+ var aryValue=shortSymbol.split("-");
107330
+ if (!aryValue || aryValue.length!=3) return false;
107331
+
107332
+ var strValue=aryValue[0];
107333
+ const regex = /([a-zA-Z]+)(\d+)/;
107334
+ const match = strValue.match(regex);
107335
+ if (!match || !match[1] || !match[2]) return false;
107336
+
107337
+ var prefix=match[1];
107338
+
107339
+ return true;
107340
+ },
107341
+
107301
107342
  IsCZCE: function (upperSymbol)
107302
107343
  {
107303
107344
  if (!upperSymbol) return false;
107304
- return upperSymbol.indexOf(this.CZCE) > 0;
107345
+
107346
+ return upperSymbol.indexOf(this.CZCE) > 0 || upperSymbol.indexOf(this.CZCE2)>0;
107347
+ },
107348
+
107349
+ IsCZCEOption:function(upperSymbol)
107350
+ {
107351
+ if (!upperSymbol) return false;
107352
+ if (!this.IsCZCE(upperSymbol)) return false;
107353
+ var shortSymbol=JSChart.GetShortSymbol(upperSymbol);
107354
+ //ZN2605-P-20600
107355
+ var aryValue=shortSymbol.split("-");
107356
+ if (!aryValue || aryValue.length!=3) return false;
107357
+
107358
+ var strValue=aryValue[0];
107359
+ const regex = /([a-zA-Z]+)(\d+)/;
107360
+ const match = strValue.match(regex);
107361
+ if (!match || !match[1] || !match[2]) return false;
107362
+
107363
+ var prefix=match[1];
107364
+
107365
+ return true;
107305
107366
  },
107306
107367
 
107307
107368
  IsGZFE:function(upperSymbol)
107308
107369
  {
107309
107370
  if (!upperSymbol) return false;
107310
- return upperSymbol.indexOf(this.GZFE) > 0;
107371
+ if (upperSymbol.indexOf(this.GZFE)>0) return true;
107372
+ if (upperSymbol.indexOf(this.GZFE2)>0) return true;
107373
+
107374
+ return false;
107375
+ },
107376
+
107377
+ IsGZFEOption:function(upperSymbol)
107378
+ {
107379
+ if (!upperSymbol) return false;
107380
+ if (!this.IsGZFE(upperSymbol)) return false;
107381
+ var shortSymbol=JSChart.GetShortSymbol(upperSymbol);
107382
+ //ZN2605-P-20600
107383
+ var aryValue=shortSymbol.split("-");
107384
+ if (!aryValue || aryValue.length!=3) return false;
107385
+
107386
+ var strValue=aryValue[0];
107387
+ const regex = /([a-zA-Z]+)(\d+)/;
107388
+ const match = strValue.match(regex);
107389
+ if (!match || !match[1] || !match[2]) return false;
107390
+
107391
+ var prefix=match[1];
107392
+
107393
+ return true;
107311
107394
  },
107312
107395
 
107313
107396
  IsINE:function(upperSymbol)
@@ -107316,6 +107399,26 @@ var MARKET_SUFFIX_NAME=
107316
107399
  return upperSymbol.indexOf(this.INE) > 0;
107317
107400
  },
107318
107401
 
107402
+
107403
+ IsINEOption:function(upperSymbol)
107404
+ {
107405
+ if (!upperSymbol) return false;
107406
+ if (!this.IsINE(upperSymbol)) return false;
107407
+ var shortSymbol=JSChart.GetShortSymbol(upperSymbol);
107408
+ //ZN2605-P-20600
107409
+ var aryValue=shortSymbol.split("-");
107410
+ if (!aryValue || aryValue.length!=3) return false;
107411
+
107412
+ var strValue=aryValue[0];
107413
+ const regex = /([a-zA-Z]+)(\d+)/;
107414
+ const match = strValue.match(regex);
107415
+ if (!match || !match[1] || !match[2]) return false;
107416
+
107417
+ var prefix=match[1];
107418
+
107419
+ return true;
107420
+ },
107421
+
107319
107422
  //是否包含某一个市场的
107320
107423
  IsIncludes:function(symbol, arySuffix)
107321
107424
  {
@@ -107548,6 +107651,43 @@ var MARKET_SUFFIX_NAME=
107548
107651
  return false;
107549
107652
  },
107550
107653
 
107654
+ IsSHSZETF:function(symbol) //是否是沪深ETF
107655
+ {
107656
+ if (!symbol) return false;
107657
+ var upperSymbol=symbol.toUpperCase();
107658
+ if (this.IsSHETF(upperSymbol)) return true;
107659
+ else if (this.IsSZETF(upperSymbol)) return true;
107660
+
107661
+
107662
+ return false;
107663
+ },
107664
+
107665
+ IsSHETF:function(upperSymbol)
107666
+ {
107667
+ if (upperSymbol && this.IsSH(upperSymbol))
107668
+ {
107669
+ //上证ETF:通常以51开头
107670
+ if (upperSymbol.charAt(0)=='5' && upperSymbol.charAt(1)=='1')
107671
+ return true;
107672
+ if (upperSymbol.charAt(0)=='5' && upperSymbol.charAt(1)=='8')
107673
+ return true;
107674
+ }
107675
+
107676
+ return false;
107677
+ },
107678
+
107679
+ IsSZETF:function(upperSymbol)
107680
+ {
107681
+ if (upperSymbol && this.IsSZ(upperSymbol))
107682
+ {
107683
+ //深交所上市的ETF代码以15开头
107684
+ if (upperSymbol.charAt(0)=='1' && upperSymbol.charAt(1)=='5')
107685
+ return true;
107686
+ }
107687
+
107688
+ return false;
107689
+ },
107690
+
107551
107691
  GetMarketStatus:function(symbol) //获取市场状态 0=闭市 1=盘前 2=盘中 3=盘后
107552
107692
  {
107553
107693
  if (!symbol) return 0;
@@ -132396,6 +132536,7 @@ JSComplier.AddFunction=function(obj) //添加函数 { Name:函数名, Descrip
132396
132536
  {
132397
132537
  if (!obj || !obj.Name) return;
132398
132538
 
132539
+ var ID=obj.Name.toUpperCase();
132399
132540
  g_JSComplierResource.CustomFunction.Data.set(ID, obj);
132400
132541
  }
132401
132542
 
@@ -144535,7 +144676,7 @@ function JSReportChartContainer(uielement)
144535
144676
  //18=内盘 19=外盘 20=现量 21=涨幅% 22=涨跌 23=换手率% 24=振幅% 25=流通市值 26=总市值 27=扩展名字
144536
144677
  //30=全局扩展数据 31=当前板块扩展数据
144537
144678
  //32=收盘价线 33=K线 35=时间 36=日期字段 38=持仓量 39=结算价 40=昨结算价 41=开仓量 42=平仓量
144538
- //43=1m涨速% 44=3m涨速% 45=5m涨速% 46=10m涨速% 47=15m涨速%
144679
+ //43=1m涨速% 44=3m涨速% 45=5m涨速% 46=10m涨速% 47=15m涨速% 48=交割日期 49=开始日期 50=过期时间
144539
144680
  //80=整行背景色
144540
144681
  //101-199=数值型 201-299=字符型 301-350=进度条 351-400=按钮 401-499=日期时间
144541
144682
 
@@ -144654,8 +144795,6 @@ function JSReportChartContainer(uielement)
144654
144795
 
144655
144796
  if (IFrameSplitOperator.IsBool(item[37])) stock.Checked=item[37];
144656
144797
 
144657
-
144658
-
144659
144798
  //1,3,5,10,15 涨速%
144660
144799
  if (IFrameSplitOperator.IsNumber(item[43])) stock.RSpeed1M=item[43];
144661
144800
  if (IFrameSplitOperator.IsNumber(item[44])) stock.RSpeed3M=item[44];
@@ -144663,9 +144802,6 @@ function JSReportChartContainer(uielement)
144663
144802
  if (IFrameSplitOperator.IsNumber(item[46])) stock.RSpeed10M=item[46];
144664
144803
  if (IFrameSplitOperator.IsNumber(item[47])) stock.RSpeed15M=item[47];
144665
144804
 
144666
- if (item[80] || item[80]===null) stock.BGColor=item[80]; //整行背景色
144667
- if (item[JSCHART_DATA_FIELD_ID.REPORT_EXTENDDATA]) stock.ExtendDataV2=item[JSCHART_DATA_FIELD_ID.REPORT_EXTENDDATA]; //扩展数据2
144668
-
144669
144805
  function __Temp_IsNumberOrObject(value)
144670
144806
  {
144671
144807
  if (IFrameSplitOperator.IsNumber(value)) return true;
@@ -144680,6 +144816,14 @@ function JSReportChartContainer(uielement)
144680
144816
  return false;
144681
144817
  }
144682
144818
 
144819
+ if (__Temp_IsNumberOrObject(item[48])) stock.DeliveryDate=item[48];
144820
+ if (__Temp_IsNumberOrObject(item[49])) stock.OpenDate=item[49];
144821
+ if (__Temp_IsNumberOrObject(item[50])) stock.ExpireDate=item[50];
144822
+
144823
+
144824
+ if (item[80] || item[80]===null) stock.BGColor=item[80]; //整行背景色
144825
+ if (item[JSCHART_DATA_FIELD_ID.REPORT_EXTENDDATA]) stock.ExtendDataV2=item[JSCHART_DATA_FIELD_ID.REPORT_EXTENDDATA]; //扩展数据2
144826
+
144683
144827
  //10个数值型 101-199
144684
144828
  if (__Temp_IsNumberOrObject(item[101])) stock.ReserveNumber1=item[101];
144685
144829
  if (__Temp_IsNumberOrObject(item[102])) stock.ReserveNumber2=item[102];
@@ -147781,6 +147925,9 @@ var REPORT_COLUMN_ID=
147781
147925
  FUTURES_YCLOSE_ID:36, //期货昨结算
147782
147926
  FUTURES_OPEN_POSITION_ID:37, //期货开仓量
147783
147927
  FUTURES_CLOSE_POSITION_ID:38, //期货平仓量
147928
+ DELIVERY_DATE_ID:39, //交割日期
147929
+ OPEN_DATE_ID:40,
147930
+ EXPIRE_DATE_ID:41,
147784
147931
 
147785
147932
 
147786
147933
  //1,3,5,10,15分钟涨速
@@ -147932,6 +148079,10 @@ var MAP_COLUMN_FIELD=new Map([
147932
148079
  [REPORT_COLUMN_ID.FUTURES_OPEN_POSITION_ID, "OpenPosition"],
147933
148080
  [REPORT_COLUMN_ID.FUTURES_CLOSE_POSITION_ID, "ClosePosition"],
147934
148081
 
148082
+ [REPORT_COLUMN_ID.DELIVERY_DATE_ID, "DeliveryDate"],
148083
+ [REPORT_COLUMN_ID.OPEN_DATE_ID, "OpenDate"],
148084
+ [REPORT_COLUMN_ID.EXPIRE_DATE_ID, "ExpireDate"],
148085
+
147935
148086
  [REPORT_COLUMN_ID.RISING_SPEED_1M_ID, "RSpeed1M"],
147936
148087
  [REPORT_COLUMN_ID.RISING_SPEED_3M_ID, "RSpeed3M"],
147937
148088
  [REPORT_COLUMN_ID.RISING_SPEED_5M_ID, "RSpeed5M"],
@@ -148603,6 +148754,9 @@ function ChartReport()
148603
148754
 
148604
148755
  { Type:REPORT_COLUMN_ID.TIME_ID, Title:"时间", TextAlign:"left", ValueType:0, TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"99:99:99.999" },
148605
148756
  { Type:REPORT_COLUMN_ID.DATE_ID, Title:"日期", TextAlign:"left", FormatType:0, TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"9999-99-99" },
148757
+ { Type:REPORT_COLUMN_ID.DELIVERY_DATE_ID, Title:"交割日", TextAlign:"left", FormatType:0, TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"9999-99-99" },
148758
+ { Type:REPORT_COLUMN_ID.OPEN_DATE_ID, Title:"上市日", TextAlign:"left", FormatType:0, TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"9999-99-99" },
148759
+ { Type:REPORT_COLUMN_ID.EXPIRE_DATE_ID, Title:"到期日", TextAlign:"left", FormatType:0, TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"9999-99-99" },
148606
148760
 
148607
148761
  { Type:REPORT_COLUMN_ID.CHECKBOX_ID, Title:"", TextAlign:"center", FixedWidth:20*GetDevicePixelRatio() },
148608
148762
 
@@ -149759,7 +149913,7 @@ function ChartReport()
149759
149913
  else if (column.Type==REPORT_COLUMN_ID.SYMBOL_ID)
149760
149914
  {
149761
149915
  if (stock && stock.Symbol) drawInfo.Text=stock.Symbol;
149762
- else drawInfo.Text=data.Symbol;
149916
+ else drawInfo.Text=MARKET_SUFFIX_NAME.GetShortSymbol(data.Symbol);
149763
149917
 
149764
149918
  this.FormatDrawInfo(column, stock, drawInfo, data);
149765
149919
  }
@@ -149992,7 +150146,7 @@ function ChartReport()
149992
150146
  this.FormaTimeDrawInfo(column, stock, drawInfo, data);
149993
150147
  this.FormatDrawInfoEvent(stock, data, column, drawInfo);
149994
150148
  }
149995
- else if (column.Type==REPORT_COLUMN_ID.DATE_ID)
150149
+ else if (column.Type==REPORT_COLUMN_ID.DATE_ID || column.Type==REPORT_COLUMN_ID.DELIVERY_DATE_ID || column.Type==REPORT_COLUMN_ID.OPEN_DATE_ID || column.Type==REPORT_COLUMN_ID.EXPIRE_DATE_ID)
149996
150150
  {
149997
150151
  this.FormaDateDrawInfo(column, stock, drawInfo, data);
149998
150152
  this.FormatDrawInfoEvent(stock, data, column, drawInfo);
@@ -150918,20 +151072,26 @@ function ChartReport()
150918
151072
 
150919
151073
  this.FormaDateDrawInfo=function(column, stock, drawInfo, data)
150920
151074
  {
150921
- if (!stock || !IFrameSplitOperator.IsNumber(stock.Date)) return;
151075
+ var fieldName=MAP_COLUMN_FIELD.get(column.Type);
151076
+ if (!stock || !fieldName) return;
151077
+ var date=stock[fieldName];
151078
+
151079
+ if (!IFrameSplitOperator.IsNumber(date)) return;
150922
151080
 
150923
151081
  if (column.FormatType==0)
150924
- drawInfo.Text=IFrameSplitOperator.FormatDateString(stock.Date,"YYYY-MM-DD");
151082
+ drawInfo.Text=IFrameSplitOperator.FormatDateString(date,"YYYY-MM-DD");
150925
151083
  else if (column.FormatType==1)
150926
- drawInfo.Text=IFrameSplitOperator.FormatDateString(stock.Date,"YYYY/MM/DD");
151084
+ drawInfo.Text=IFrameSplitOperator.FormatDateString(date,"YYYY/MM/DD");
150927
151085
  else if (column.FormatType==2)
150928
- drawInfo.Text=IFrameSplitOperator.FormatDateString(stock.Date,"YYYY/MM/DD/W");
151086
+ drawInfo.Text=IFrameSplitOperator.FormatDateString(date,"YYYY/MM/DD/W");
150929
151087
  else if (column.FormatType==3)
150930
- drawInfo.Text=IFrameSplitOperator.FormatDateString(stock.Date,"YYYY-MM");
150931
- else if (column.FormatType==4)
150932
- drawInfo.Text=IFrameSplitOperator.FormatDateString(stock.Date,"MM/DD");
151088
+ drawInfo.Text=IFrameSplitOperator.FormatDateString(date,"YYYY-MM");
150933
151089
  else if (column.FormatType==4)
150934
- drawInfo.Text=IFrameSplitOperator.FormatDateString(stock.Date,"MM-DD");
151090
+ drawInfo.Text=IFrameSplitOperator.FormatDateString(date,"MM/DD");
151091
+ else if (column.FormatType==5)
151092
+ drawInfo.Text=IFrameSplitOperator.FormatDateString(date,"MM-DD");
151093
+ else
151094
+ drawInfo.Text=IFrameSplitOperator.FormatDateString(date,"YYYY-MM-DD");
150935
151095
  }
150936
151096
 
150937
151097
 
@@ -165894,7 +166054,7 @@ function JSFloatTooltip()
165894
166054
  Color:this.ValueColor
165895
166055
  };
165896
166056
 
165897
- if (!IFrameSplitOperator.IsNumber(price) || !IFrameSplitOperator.IsNumber(yClose)) return item;
166057
+ if (!IFrameSplitOperator.IsNumber(price) || !IFrameSplitOperator.IsNumber(yClose) || yClose===0) return item;
165898
166058
 
165899
166059
  var diffValue=price-yClose;
165900
166060
  var value=(price-yClose)/yClose;
@@ -165935,7 +166095,7 @@ function JSFloatTooltip()
165935
166095
  };
165936
166096
 
165937
166097
 
165938
- if (!IFrameSplitOperator.IsNumber(high) || !IFrameSplitOperator.IsNumber(low) || !IFrameSplitOperator.IsNumber(yClose)) return item;
166098
+ if (!IFrameSplitOperator.IsNumber(high) || !IFrameSplitOperator.IsNumber(low) || !IFrameSplitOperator.IsNumber(yClose) || yClose===0) return item;
165939
166099
 
165940
166100
  var diffValue=high-low;
165941
166101
  var value=(diffValue)/yClose;
@@ -171712,7 +171872,7 @@ function ChartStockData()
171712
171872
 
171713
171873
 
171714
171874
 
171715
- var HQCHART_VERSION="1.1.15493";
171875
+ var HQCHART_VERSION="1.1.15514";
171716
171876
 
171717
171877
  function PrintHQChartVersion()
171718
171878
  {