hqchart 1.1.15360 → 1.1.15368

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.
@@ -7193,6 +7193,7 @@ var JSCHART_DATA_FIELD_ID=
7193
7193
  KLINE_COLOR_DATA:66, //K线自定义颜色数据
7194
7194
  KLINE_DAY_EXTENDDATA:25,
7195
7195
  KLINE_MINUTE_EXTENDDATA:25,
7196
+ KLINE_TICK_EXTENDDATA:25,
7196
7197
 
7197
7198
  //OrderBook Heatmap
7198
7199
  KLINE_HEATMAP:67,
@@ -11811,6 +11812,23 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
11811
11812
  this.LastPoint.FrameID=frameID;
11812
11813
  if (IFrameSplitOperator.IsNumber(frameID) && frameID>=0) //在K线内部移动,调整K线索引
11813
11814
  this.CursorIndex=this.Frame.GetXData(x);
11815
+
11816
+ if (this.TryMouseMoveChartTooltipData)
11817
+ {
11818
+ //DrawDynamic:{ Enable, Option: }
11819
+ var data={ e:e, X:x, Y:y, Draw:false, DrawDynamic:null, PreventDefault:false, MouseStatus:null };
11820
+ this.TryMouseMoveChartTooltipData(data, this);
11821
+
11822
+ if (data.MouseStatus) mouseStatus=data.MouseStatus;
11823
+
11824
+ if (data.PreventDefault)
11825
+ {
11826
+ if (data.Draw) this.Draw();
11827
+ if (data.DrawDynamic && data.DrawDynamic.Enable) this.DrawDynamicInfo(data.DrawDynamic.Option);
11828
+ this.SetCursor(mouseStatus);
11829
+ return;
11830
+ }
11831
+ }
11814
11832
 
11815
11833
 
11816
11834
  if (this.EnableBorderDrag && this.Frame && !this.CurrentChartDrawPicture)
@@ -39019,7 +39037,7 @@ function ChartKLineTable()
39019
39037
  }
39020
39038
  }
39021
39039
 
39022
- if (rtBG.Width>5)
39040
+ //if (rtBG.Width>5)
39023
39041
  {
39024
39042
  this.AryCellRect.push({ Item:{ Cell:item, Colunm:data, RowIndex:i, SubCell:subItem, SubIndex:j, Tooltip:subItem.Tooltip, Type:2 }, Rect:rtSubBG });
39025
39043
  }
@@ -39060,7 +39078,7 @@ function ChartKLineTable()
39060
39078
  }
39061
39079
  }
39062
39080
 
39063
- if (rtBG.Width>5)
39081
+ //if (rtBG.Width>5)
39064
39082
  {
39065
39083
  this.AryCellRect.push({ Item:{ Cell:item, Colunm:data, RowIndex:i, Tooltip:item.Tooltip, Type:1 }, Rect:rtBG });
39066
39084
  }
@@ -90299,14 +90317,26 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
90299
90317
  {
90300
90318
  var self=this;
90301
90319
  var start=0;
90302
- if (this.SourceData && this.SourceData.Data) start=this.SourceData.Data.length;
90320
+ var hisData=this.GetKData();
90321
+ var dateRange=hisData.GetDateRange();
90322
+
90303
90323
  if (this.NetworkFilter)
90304
90324
  {
90325
+ var kLineDrawType=this.GetKLineDrawType();
90305
90326
  var obj=
90306
90327
  {
90307
90328
  Name:'KLineChartContainer::RequestTickRealtimeData', //类名::
90308
90329
  Explain:'当天最新分笔数据',
90309
- Request:{ Url:self.TickApiUrl, Data:{ symbol: self.Symbol, start:start, end:start+1000 }, Type:'POST' },
90330
+ Request:
90331
+ {
90332
+ Url:self.TickApiUrl,
90333
+ Data:
90334
+ {
90335
+ symbol:self.Symbol, period:this.Period, right:this.Right,
90336
+ dateRange:dateRange, klineDrawType:kLineDrawType
90337
+ },
90338
+ Type:'POST'
90339
+ },
90310
90340
  Self:this,
90311
90341
  PreventDefault:false
90312
90342
  };
@@ -90319,29 +90349,14 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
90319
90349
 
90320
90350
  if (obj.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
90321
90351
  }
90322
-
90323
- JSNetwork.HttpRequest({
90324
- url: self.TickApiUrl,
90325
- data:{"symbol":self.Symbol, start:start-10, end:start+1000 },
90326
- type:"post",
90327
- dataType: "json",
90328
- async:true,
90329
- success: function (data)
90330
- {
90331
- self.ChartSplashPaint.EnableSplash(false);
90332
- self.RecvTickRealtimeData(data);
90333
- self.AutoUpdate();
90334
- }
90335
- });
90336
90352
  }
90337
90353
 
90338
90354
  this.RecvTickRealtimeData=function(data)
90339
90355
  {
90340
- if (data.ver==2.0)
90341
- var aryDayData=KLineChartContainer.JsonDataToTickDataV2(data); //增量数据
90342
- else
90343
- var aryDayData=KLineChartContainer.JsonDataToTickData(data); //增量数据
90344
- if (!aryDayData || aryDayData.length<=0) return;
90356
+ var aryDayData=null;
90357
+ if (data.ver==2.0) aryDayData=KLineChartContainer.JsonDataToTickDataV2(data); //增量数据
90358
+ else aryDayData=KLineChartContainer.JsonDataToTickData(data); //增量数据
90359
+ if (!IFrameSplitOperator.IsNonEmptyArray(aryDayData)) return;
90345
90360
 
90346
90361
  var redraw=false; //强制重绘
90347
90362
  if (data.redraw==true) redraw=true;
@@ -90351,7 +90366,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
90351
90366
  var lastTime=0;
90352
90367
  if (source.length>0) lastTime=source[source.length-1].Time;
90353
90368
  var newCount=0;
90354
- for(var i in aryDayData)
90369
+ for(var i=0; i<aryDayData.length; ++i)
90355
90370
  {
90356
90371
  var item=aryDayData[i];
90357
90372
  if (item.Time<=lastTime) continue;
@@ -95336,20 +95351,24 @@ KLineChartContainer.JsonDataToTickDataV2=function(data)
95336
95351
  {
95337
95352
  var aryDayData=[];
95338
95353
  if (!IFrameSplitOperator.IsNonEmptyArray(data.data)) return aryDayData;
95339
-
95354
+ var extendDataIndex=JSCHART_DATA_FIELD_ID.KLINE_TICK_EXTENDDATA;
95340
95355
  for(var i=0;i<data.data.length;++i)
95341
95356
  {
95342
95357
  var item = new HistoryData();
95343
- var tick=data.data[i]; //[ date, time, yClose, price, extendData]
95358
+ var tick=data.data[i]; //[ date, time, yClose, price, vol, amount, flag,]
95344
95359
  if (!tick) continue;
95345
95360
 
95346
95361
  item.Date = tick[0];
95347
95362
  item.Time=tick[1];
95348
95363
  item.YClose = tick[2];
95349
95364
  item.Low=item.High=item.Close=item.Open = tick[3];
95365
+ item.Vol = tick[4]; //原始单位股
95366
+ item.Amount = tick[5];
95367
+ item.Flag=tick[6];
95368
+
95350
95369
  aryDayData.push(item);
95351
95370
 
95352
- if (tick[4]) item.ExtendData=tick[4];
95371
+ if (tick[extendDataIndex]) item.ExtendData=tick[extendDataIndex];
95353
95372
  }
95354
95373
 
95355
95374
  return aryDayData;
@@ -118420,6 +118439,32 @@ function JSAlgorithm(errorHandler,symbolData)
118420
118439
  return result;
118421
118440
  }
118422
118441
 
118442
+ //VARCAT6(A,B,C,D,E,F):将六个字符串A,B,C,D,E,F相加成一个字符串.
118443
+ //每个数据都进行序列运算,若用于多股选股,建议换用STRCAT6
118444
+ //用法: VARCAT6('多头',VAR2STR(C,2),' ',VAR2STR(O,2),' ',VAR2STR(MA(C,5),2))将六个字符串相加成一个字符串
118445
+ this.VARCAT6=function(data,data2,data3,data4,data5)
118446
+ {
118447
+ var aryData=[];
118448
+ if (Array.isArray(data) || IFrameSplitOperator.IsString(data)) aryData.push(data);
118449
+ if (Array.isArray(data2) || IFrameSplitOperator.IsString(data2)) aryData.push(data2);
118450
+ if (Array.isArray(data3) || IFrameSplitOperator.IsString(data3)) aryData.push(data3);
118451
+ if (Array.isArray(data4) || IFrameSplitOperator.IsString(data4)) aryData.push(data4);
118452
+ if (Array.isArray(data5) || IFrameSplitOperator.IsString(data5)) aryData.push(data5);
118453
+
118454
+ if (!IFrameSplitOperator.IsNonEmptyArray(aryData)) return [];
118455
+ if (aryData.length==1) return data;
118456
+
118457
+ var tempData=this.VARCAT(aryData[0], aryData[1]);
118458
+ var result=tempData;
118459
+ for(var i=2;i<aryData.length;++i)
118460
+ {
118461
+ result=this.VARCAT(tempData,aryData[i]);
118462
+ tempData=result;
118463
+ }
118464
+
118465
+ return result;
118466
+ }
118467
+
118423
118468
  //FINDSTR(A,B):在字符串A中查找字符串B,如果找到返回1,否则返回0.
118424
118469
  //用法: FINDSTR('多头开仓','开仓')在字符串'多头开仓'中查找字符串'开仓',返回1
118425
118470
  this.FINDSTR=function(data, data2)
@@ -118546,6 +118591,8 @@ function JSAlgorithm(errorHandler,symbolData)
118546
118591
  this.VAR2STR=function(data,n)
118547
118592
  {
118548
118593
  var result=[];
118594
+ var dec=0;
118595
+ if (IFrameSplitOperator.IsNumber(n)) dec=n;
118549
118596
  if (Array.isArray(data))
118550
118597
  {
118551
118598
  for(var i=0;i<data.length;++i)
@@ -118553,13 +118600,13 @@ function JSAlgorithm(errorHandler,symbolData)
118553
118600
  result[i]=null;
118554
118601
  var item=data[i];
118555
118602
  if (this.IsNumber(item))
118556
- result[i]=item.toFixed(n);
118603
+ result[i]=item.toFixed(dec);
118557
118604
  }
118558
118605
  }
118559
118606
  else
118560
118607
  {
118561
118608
  if (this.IsNumber(data))
118562
- result=data.toFixed(n);
118609
+ result=data.toFixed(dec);
118563
118610
  }
118564
118611
 
118565
118612
  return result;
@@ -120271,6 +120318,8 @@ function JSAlgorithm(errorHandler,symbolData)
120271
120318
  return this.VAR2STR(args[0], args[1]);
120272
120319
  case "VARCAT":
120273
120320
  return this.VARCAT(args[0], args[1]);
120321
+ case "VARCAT6":
120322
+ return this.VARCAT6(args[0], args[1],args[2], args[3],args[4], args[5]);
120274
120323
  case "STRSPACE":
120275
120324
  return this.STRSPACE(args[0]);
120276
120325
  case "FINDSTR":
@@ -120483,7 +120532,8 @@ function JSDraw(errorHandler,symbolData)
120483
120532
  var drawData=[];
120484
120533
  var result={ DrawData:drawData, DrawType:'DRAWFLAGTEXT' };
120485
120534
  if (!text) return result;
120486
-
120535
+ var bArrayText=Array.isArray(text); //是否是数组字符串
120536
+
120487
120537
  if (Array.isArray(condition))
120488
120538
  {
120489
120539
  if (condition.length<=0) return result;
@@ -120494,14 +120544,18 @@ function JSDraw(errorHandler,symbolData)
120494
120544
  drawData[i]=null;
120495
120545
 
120496
120546
  if (isNaN(condition[i]) || !condition[i]) continue;
120547
+
120548
+ var outText=null;
120549
+ if (!bArrayText) outText=text;
120550
+ else if (bArrayText && text[i]) outText=text[i];
120497
120551
 
120498
120552
  if (bSinglePrice)
120499
120553
  {
120500
- drawData[i]={ YValue:price, Text:text };
120554
+ drawData[i]={ YValue:price, Text:outText };
120501
120555
  }
120502
120556
  else
120503
120557
  {
120504
- if (IFrameSplitOperator.IsNumber(price[i])) drawData[i]={ YValue:price[i], Text:text };
120558
+ if (IFrameSplitOperator.IsNumber(price[i])) drawData[i]={ YValue:price[i], Text:outText };
120505
120559
  }
120506
120560
  }
120507
120561
  }
@@ -120510,13 +120564,17 @@ function JSDraw(errorHandler,symbolData)
120510
120564
  var bSinglePrice=IFrameSplitOperator.IsNumber(price);
120511
120565
  for(var i=0;i<this.SymbolData.Data.Data.length;++i)
120512
120566
  {
120567
+ var outText=null;
120568
+ if (!bArrayText) outText=text;
120569
+ else if (bArrayText && text[i]) outText=text[i];
120570
+
120513
120571
  if (bSinglePrice)
120514
120572
  {
120515
- drawData[i]={ YValue:price, Text:text };
120573
+ drawData[i]={ YValue:price, Text:outText };
120516
120574
  }
120517
120575
  else
120518
120576
  {
120519
- if (IFrameSplitOperator.IsNumber(price[i])) drawData[i]={ YValue:price[i], Text:text };
120577
+ if (IFrameSplitOperator.IsNumber(price[i])) drawData[i]={ YValue:price[i], Text:outText };
120520
120578
  }
120521
120579
  }
120522
120580
  }
@@ -130714,6 +130772,7 @@ function JSExplainer(ast,option)
130714
130772
  ["STRCAT", { Name:"STRCAT", Param:{ Count:2 }, ToString:function(args) { return `字符串相加`; } } ],
130715
130773
  ["STRCAT6",{ Name:"STRCAT6", Param:{ Dynamic:true }, ToString:function(args) { return `字符串相加`; } } ],
130716
130774
  ["VARCAT", { Name:"VARCAT", Param:{ Count:2 }, ToString:function(args) { return `字符串相加`; } } ],
130775
+ ["VARCAT6", { Name:"VARCAT", Param:{ Dynamic:true }, ToString:function(args) { return `字符串相加`; } } ],
130717
130776
  ["STRSPACE", { Name:"STRSPACE", Param:{ Count:1 }, ToString:function(args) { return `字符串${args[0]}加一空格`; } } ],
130718
130777
  ["SUBSTR", { Name:"SUBSTR", Param:{ Count:3 }, ToString:function(args) { return `字符串${args[0]}中取一部分`; } } ],
130719
130778
  ["STRCMP", { Name:"STRCMP", Param:{ Count:2 }, ToString:function(args) { return `字符串${args[0]}和字符串${args[1]}比较`; } } ],
@@ -149654,7 +149713,7 @@ function ChartReport()
149654
149713
 
149655
149714
  this.FormaTimeDrawInfo=function(column, stock, drawInfo, data)
149656
149715
  {
149657
- if (!IFrameSplitOperator.IsNumber(stock.Time)) return;
149716
+ if (!stock || !IFrameSplitOperator.IsNumber(stock.Time)) return;
149658
149717
 
149659
149718
  if (column.ValueType==0) //0=hhmm 1=hhmmss 2=hhmmss.fff
149660
149719
  {
@@ -149672,7 +149731,7 @@ function ChartReport()
149672
149731
 
149673
149732
  this.FormaDateDrawInfo=function(column, stock, drawInfo, data)
149674
149733
  {
149675
- if (!IFrameSplitOperator.IsNumber(stock.Date)) return;
149734
+ if (!stock || !IFrameSplitOperator.IsNumber(stock.Date)) return;
149676
149735
 
149677
149736
  if (column.FormatType==0)
149678
149737
  drawInfo.Text=IFrameSplitOperator.FormatDateString(stock.Date,"YYYY-MM-DD");
@@ -167501,7 +167560,7 @@ function HQChartScriptWorker()
167501
167560
 
167502
167561
 
167503
167562
 
167504
- var HQCHART_VERSION="1.1.15359";
167563
+ var HQCHART_VERSION="1.1.15367";
167505
167564
 
167506
167565
  function PrintHQChartVersion()
167507
167566
  {