hqchart 1.1.12503 → 1.1.12513

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.
@@ -10370,6 +10370,13 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10370
10370
  return false;
10371
10371
  }
10372
10372
 
10373
+ this.IsMinuteContainer=function()
10374
+ {
10375
+ if (this.ClassName=="MinuteChartContainer" || this.ClassName=="MinuteChartHScreenContainer") return true;
10376
+
10377
+ return false;
10378
+ }
10379
+
10373
10380
  this.UpdatePointByCursorIndex=function(type) //type 1=根据十字光标更新 2=强制取消十字光标
10374
10381
  {
10375
10382
  var pt={X:null, Y:null};
@@ -24945,9 +24952,12 @@ function IChartPainting()
24945
24952
  }
24946
24953
  else if (valueType==3)
24947
24954
  {
24948
- var price=this.Data.Data[i].Close;
24949
- if (price==null) continue;
24950
- value=price/this.YClose*this.MainYClose;
24955
+ var minItem=this.Data.Data[i];
24956
+ var mainItem=this.MainData.Data[i];
24957
+ if (!minItem || !IFrameSplitOperator.IsNumber(minItem.Close) || !IFrameSplitOperator.IsNumber(minItem.YClose)) continue;
24958
+ if (!mainItem || !IFrameSplitOperator.IsNumber(mainItem.Close) || !IFrameSplitOperator.IsNumber(mainItem.YClose)) continue;
24959
+ var price=minItem.Close;
24960
+ var value=price/minItem.YClose*mainItem.YClose;
24951
24961
  }
24952
24962
  else if (valueType==4)
24953
24963
  {
@@ -25067,9 +25077,12 @@ function IChartPainting()
25067
25077
  }
25068
25078
  else if (valueType==3)
25069
25079
  {
25070
- var price=this.Data.Data[i].Close;
25071
- if (price==null) continue;
25072
- var value=price/this.YClose*this.MainYClose;
25080
+ var minItem=this.Data.Data[i];
25081
+ var mainItem=this.MainData.Data[i];
25082
+ if (!minItem || !IFrameSplitOperator.IsNumber(minItem.Close) || !IFrameSplitOperator.IsNumber(minItem.YClose)) continue;
25083
+ if (!mainItem || !IFrameSplitOperator.IsNumber(mainItem.Close) || !IFrameSplitOperator.IsNumber(mainItem.YClose)) continue;
25084
+ var price=minItem.Close;
25085
+ var value=price/minItem.YClose*mainItem.YClose;
25073
25086
  }
25074
25087
  else
25075
25088
  {
@@ -35719,19 +35732,16 @@ function ChartOverlayMinutePriceLine()
35719
35732
 
35720
35733
  this.Color="rgb(65,105,225)";
35721
35734
  this.MainData; //主图数据
35722
- this.MainYClose; //主图股票的前收盘价
35723
35735
  this.SourceData; //原始数据
35724
35736
 
35725
35737
  this.ClassName="ChartOverlayMinutePriceLine";
35726
35738
  this.Title;
35727
35739
  this.Symbol; //叠加的股票代码
35728
- this.YClose; //叠加的股票前收盘
35729
35740
  this.Status=OVERLAY_STATUS_ID.STATUS_NONE_ID;
35730
35741
 
35731
35742
  this.OverlayType=0; //叠加方式 0=百分比叠加 1=绝对叠加
35732
35743
  this.IsCalcuateMaxMin=true; //是否参与计算Y轴的最大最小值
35733
35744
 
35734
-
35735
35745
  this.SetOption=function(option)
35736
35746
  {
35737
35747
  if (option)
@@ -35743,19 +35753,21 @@ function ChartOverlayMinutePriceLine()
35743
35753
 
35744
35754
  this.PtInChart=function(x,y)
35745
35755
  {
35746
- var option={ MinuteOverlayPrice:true, YClose:this.YClose, MainYClose:this.MainYClose, OverlayType:this.OverlayType };
35756
+ var option={ MinuteOverlayPrice:true, OverlayType:this.OverlayType };
35747
35757
  return this.PtInLine(x, y, option);
35748
35758
  }
35749
35759
 
35750
35760
  this.DrawSelectedStatus=function()
35751
35761
  {
35752
- var option={ MinuteOverlayPrice:true, YClose:this.YClose, MainYClose:this.MainYClose, OverlayType:this.OverlayType };
35762
+ var option={ MinuteOverlayPrice:true, OverlayType:this.OverlayType };
35753
35763
  this.DrawLinePoint(option);
35754
35764
  }
35755
35765
 
35756
35766
  this.Draw=function()
35757
35767
  {
35758
35768
  if (!this.Data) return;
35769
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return;
35770
+
35759
35771
  if (this.NotSupportMessage)
35760
35772
  {
35761
35773
  this.DrawNotSupportmessage();
@@ -35776,37 +35788,53 @@ function ChartOverlayMinutePriceLine()
35776
35788
  var bFirstPoint=true;
35777
35789
  var drawCount=0;
35778
35790
  var xOffset=0, showValue=0;
35791
+ var yClose=null, mainYClose=null;
35792
+ var pointCount=0;
35779
35793
  for(var i=this.Data.DataOffset+xOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
35780
35794
  {
35781
- var value=this.Data.Data[i].Close;
35782
- if (value==null) continue;
35795
+ var item=this.Data.Data[i];
35796
+ if (item && IFrameSplitOperator.IsNumber(item.Close))
35797
+ {
35798
+ if (bFirstPoint) //百分比使用每天的昨收计算
35799
+ {
35800
+ yClose=item.YClose;
35801
+ var minItem=this.MainData.Data[i];
35802
+ mainYClose=minItem.YClose;
35803
+ }
35783
35804
 
35784
- showValue=value; //绝对叠加
35785
- if (this.OverlayType==0) showValue=value/this.YClose*this.MainYClose; //百分比
35805
+ var value=item.Close;
35806
+ showValue=value; //绝对叠加
35786
35807
 
35787
- var x=this.ChartFrame.GetXFromIndex(j);
35788
- var y=this.ChartFrame.GetYFromData(showValue, false);
35808
+ if (this.OverlayType==0)
35809
+ showValue=value/yClose*mainYClose; //百分比
35789
35810
 
35790
- if (bFirstPoint)
35791
- {
35792
- this.Canvas.strokeStyle=this.Color;
35793
- this.Canvas.beginPath();
35794
- if (isHScreen) this.Canvas.moveTo(y,x);
35795
- else this.Canvas.moveTo(x,y);
35796
- bFirstPoint=false;
35797
- }
35798
- else
35799
- {
35800
- if (isHScreen) this.Canvas.lineTo(y,x);
35801
- else this.Canvas.lineTo(x,y);
35811
+ var x=this.ChartFrame.GetXFromIndex(j);
35812
+ var y=this.ChartFrame.GetYFromData(showValue, false);
35813
+
35814
+ if (bFirstPoint)
35815
+ {
35816
+ this.Canvas.strokeStyle=this.Color;
35817
+ this.Canvas.beginPath();
35818
+ if (isHScreen) this.Canvas.moveTo(y,x);
35819
+ else this.Canvas.moveTo(x,y);
35820
+ bFirstPoint=false;
35821
+ }
35822
+ else
35823
+ {
35824
+ if (isHScreen) this.Canvas.lineTo(y,x);
35825
+ else this.Canvas.lineTo(x,y);
35826
+ }
35827
+
35828
+ ++drawCount;
35802
35829
  }
35803
35830
 
35804
- ++drawCount;
35831
+ ++pointCount;
35805
35832
 
35806
- if (drawCount>=minuteCount) //上一天的数据和这天地数据线段要断开
35833
+ if (pointCount>=minuteCount) //上一天的数据和这天地数据线段要断开
35807
35834
  {
35808
35835
  bFirstPoint=true;
35809
- this.Canvas.stroke();
35836
+ pointCount=0;
35837
+ if (drawCount>0) this.Canvas.stroke();
35810
35838
  drawCount=0;
35811
35839
  }
35812
35840
  }
@@ -35819,24 +35847,46 @@ function ChartOverlayMinutePriceLine()
35819
35847
  this.GetMaxMin=function()
35820
35848
  {
35821
35849
  var xPointCount=this.ChartFrame.XPointCount;
35822
- var range={};
35850
+ var range={ Min:null, Max:null };
35823
35851
  if (!this.IsCalcuateMaxMin) return range;
35824
- if (this.YClose==null) return range;
35825
35852
 
35826
- range.Min=this.MainYClose;
35827
- range.Max=this.MainYClose;
35853
+ var minuteCount=this.ChartFrame.MinuteCount;
35854
+ var yClose=null, mainYClose=null;
35855
+ var bFirstPoint=true;
35856
+ var pointCount=0;
35828
35857
  for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
35829
35858
  {
35830
- var value=this.Data.Data[i].Close;
35831
- if (value==null) continue;
35859
+ var item=this.Data.Data[i];
35860
+ if (!item || !IFrameSplitOperator.IsNumber(item.Close))
35861
+ {
35862
+ ++pointCount;
35863
+ continue;
35864
+ }
35832
35865
 
35833
- if (this.OverlayType==0) value=value/this.YClose*this.MainYClose;
35866
+ if (bFirstPoint)
35867
+ {
35868
+ yClose=item.YClose;
35869
+ var minItem=this.MainData.Data[i];
35870
+ mainYClose=minItem.YClose;
35871
+ bFirstPoint=false;
35872
+ }
35873
+
35874
+ var value=item.Close;
35875
+ if (this.OverlayType==0) value=value/yClose*mainYClose;
35834
35876
 
35835
35877
  if (range.Max==null) range.Max=value;
35836
35878
  if (range.Min==null) range.Min=value;
35837
35879
 
35838
35880
  if (range.Max<value) range.Max=value;
35839
35881
  if (range.Min>value) range.Min=value;
35882
+
35883
+ ++pointCount;
35884
+
35885
+ if (pointCount>=minuteCount)
35886
+ {
35887
+ bFirstPoint=true;
35888
+ pointCount=0;
35889
+ }
35840
35890
  }
35841
35891
 
35842
35892
  //JSConsole.Chart.Log(`[ChartOverlayMinutePriceLine::GetMaxMin] max=${range.Max} min=${range.Min}`);
@@ -51215,7 +51265,16 @@ function HistoryDataStringFormat()
51215
51265
 
51216
51266
  this.Width=157;
51217
51267
  if (this.LanguageID==JSCHART_LANGUAGE_ID.LANGUAGE_ENGLISH_ID) this.Width=180;
51268
+ var titleData=this.GetFormatTitle(data);
51269
+ if (!titleData) return false;
51270
+ var outData=this.GenerateTitleHtml(titleData);
51271
+ if (!outData) return false;
51272
+
51273
+ this.Text=outData.Html;
51274
+ this.Height=outData.LineCount*this.LineHeight;
51275
+ return true;
51218
51276
 
51277
+ /*
51219
51278
  var date=new Date(parseInt(data.Date/10000),(data.Date/100%100-1),data.Date%100);
51220
51279
  var strDate=IFrameSplitOperator.FormatDateString(data.Date);
51221
51280
  var title2=g_JSChartLocalization.GetText(WEEK_NAME[date.getDay()],this.LanguageID);
@@ -51305,6 +51364,178 @@ function HistoryDataStringFormat()
51305
51364
 
51306
51365
  this.Height=this.LineCount*this.LineHeight;
51307
51366
  return true;
51367
+ */
51368
+ }
51369
+
51370
+ this.GenerateTitleHtml=function(data)
51371
+ {
51372
+ var lineCount=0;
51373
+ var strHtml="", text;
51374
+ if (data.Name)
51375
+ {
51376
+ text=`<span style='color:rgb(0,0,0);font:微软雅黑;font-size:12px;text-align:center;display: block;'>${data.Name}</span>`;
51377
+ strHtml+=text;
51378
+ ++lineCount;
51379
+ }
51380
+
51381
+ if (data.Title)
51382
+ {
51383
+ text=`<span class='tooltip-title'>${data.Title}</span>`;
51384
+ strHtml+=text;
51385
+ ++lineCount;
51386
+ }
51387
+
51388
+ if (IFrameSplitOperator.IsNonEmptyArray(data.AryText))
51389
+ {
51390
+ for(var i=0;i<data.AryText.length;++i)
51391
+ {
51392
+ var item=data.AryText[i];
51393
+ if (i>0) strHtml+='<br/>';
51394
+ var text=`<span class='tooltip-con'>${item.Title}</span><span class='tooltip-num' style='color:${item.Color};'>${item.Text}</span>`;
51395
+ strHtml+=text;
51396
+ ++lineCount;
51397
+ }
51398
+ }
51399
+
51400
+ return { Html:strHtml, LineCount:lineCount };
51401
+ }
51402
+
51403
+ this.GetFormatTitle=function(data)
51404
+ {
51405
+ if (!data) return null;
51406
+
51407
+ var upperSymbol=this.Symbol.toUpperCase();
51408
+ var defaultfloatPrecision=GetfloatPrecision(this.Symbol);//价格小数位数
51409
+ var date=new Date(parseInt(data.Date/10000),(data.Date/100%100-1),data.Date%100);
51410
+ var strDate=IFrameSplitOperator.FormatDateString(data.Date);
51411
+
51412
+ var title2=g_JSChartLocalization.GetText(WEEK_NAME[date.getDay()],this.LanguageID);
51413
+ var isTickPeriod=ChartData.IsTickPeriod(this.Value.ChartPaint.Data.Period);
51414
+ if (ChartData.IsMinutePeriod(this.Value.ChartPaint.Data.Period,true)) // 分钟周期
51415
+ {
51416
+ title2=IFrameSplitOperator.FormatTimeString(data.Time);
51417
+ }
51418
+ else if (ChartData.IsSecondPeriod(this.Value.ChartPaint.Data.Period) || isTickPeriod)
51419
+ {
51420
+ title2=IFrameSplitOperator.FormatTimeString(data.Time,'HH:MM:SS');
51421
+ }
51422
+
51423
+ var result={ AryText:null, Title:`${strDate}&nbsp&nbsp${title2}`, Name:null };
51424
+ if (isTickPeriod)
51425
+ {
51426
+ var aryText=
51427
+ [
51428
+ {
51429
+ Title:g_JSChartLocalization.GetText('DivTooltip-Price',this.LanguageID),
51430
+ Text:IFrameSplitOperator.IsNumber(data.Open)? data.Open.toFixed(defaultfloatPrecision):'--',
51431
+ Color:this.GetColor(data.Open,data.YClose)
51432
+ },
51433
+ ];
51434
+
51435
+ if (IFrameSplitOperator.IsNumber(data.YClose))
51436
+ {
51437
+ var increase=(data.Close-data.YClose)/data.YClose*100;
51438
+ var item=
51439
+ {
51440
+ Title:g_JSChartLocalization.GetText('DivTooltip-Increase',this.LanguageID),
51441
+ Text:`${increase.toFixed(2)}%`,
51442
+ Color:this.GetColor(increase,0)
51443
+ }
51444
+ aryText.push(item);
51445
+ }
51446
+
51447
+ result.AryText=aryText;
51448
+ }
51449
+ else if (data.IsNonTrade)
51450
+ {
51451
+
51452
+ }
51453
+ else
51454
+ {
51455
+ var vol=data.Vol;
51456
+ if (upperSymbol && MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol)) vol/=100; //A股统一转成手
51457
+ var eventUnchangeKLine=null; //定制平盘K线颜色事件
51458
+ if (this.GetEventCallback) eventUnchangeKLine=this.GetEventCallback(JSCHART_EVENT_ID.ON_CUSTOM_UNCHANGE_KLINE_TITLE_COLOR);
51459
+
51460
+ var aryText=
51461
+ [
51462
+ {
51463
+ Title:g_JSChartLocalization.GetText('DivTooltip-Open',this.LanguageID),
51464
+ Text:IFrameSplitOperator.IsNumber(data.Open)? data.Open.toFixed(defaultfloatPrecision):'--',
51465
+ Color:this.GetPriceColor("DivTooltip-Open",data.Open,data.YClose,data,eventUnchangeKLine),
51466
+ },
51467
+ {
51468
+ Title:g_JSChartLocalization.GetText('DivTooltip-High',this.LanguageID),
51469
+ Text:IFrameSplitOperator.IsNumber(data.High)? data.High.toFixed(defaultfloatPrecision):'--',
51470
+ Color:this.GetPriceColor("DivTooltip-High",data.High,data.YClose,data,eventUnchangeKLine)
51471
+ },
51472
+ {
51473
+ Title:g_JSChartLocalization.GetText('DivTooltip-Low',this.LanguageID),
51474
+ Text:IFrameSplitOperator.IsNumber(data.Low)? data.Low.toFixed(defaultfloatPrecision):'--',
51475
+ Color:this.GetPriceColor('DivTooltip-Low',data.Low,data.YClose,data,eventUnchangeKLine)
51476
+ },
51477
+ {
51478
+ Title:g_JSChartLocalization.GetText('DivTooltip-Close',this.LanguageID),
51479
+ Text:IFrameSplitOperator.IsNumber(data.Close)? data.Close.toFixed(defaultfloatPrecision):'--',
51480
+ Color:this.GetPriceColor('DivTooltip-Close',data.Close,data.YClose,data,eventUnchangeKLine)
51481
+ },
51482
+ {
51483
+ Title:g_JSChartLocalization.GetText('DivTooltip-Vol',this.LanguageID),
51484
+ Text:IFrameSplitOperator.IsNumber(vol)? IFrameSplitOperator.FormatValueString(vol,2,this.LanguageID):'--',
51485
+ Color:this.VolColor
51486
+ },
51487
+ {
51488
+ Title:g_JSChartLocalization.GetText('DivTooltip-Amount',this.LanguageID),
51489
+ Text:IFrameSplitOperator.IsNumber(data.Amount)? IFrameSplitOperator.FormatValueString(data.Amount,2,this.LanguageID):'--',
51490
+ Color:this.AmountColor
51491
+ }
51492
+ ];
51493
+
51494
+ if (IFrameSplitOperator.IsNumber(data.YClose))
51495
+ {
51496
+ var increase=(data.Close-data.YClose)/data.YClose*100;
51497
+ var item=
51498
+ {
51499
+ Title:g_JSChartLocalization.GetText('DivTooltip-Increase',this.LanguageID),
51500
+ Text:`${increase.toFixed(2)}%`,
51501
+ Color:this.GetColor(increase,0)
51502
+ }
51503
+ aryText.push(item);
51504
+ }
51505
+
51506
+ if(MARKET_SUFFIX_NAME.IsSHSZStockA(this.Symbol) && data.FlowCapital>0) //换手率
51507
+ {
51508
+ var value=data.Vol/data.FlowCapital*100;
51509
+ var item=
51510
+ {
51511
+ Title:g_JSChartLocalization.GetText('DivTooltip-Exchange',this.LanguageID),
51512
+ Text:`${value.toFixed(2)}%`,
51513
+ Color:this.TurnoverRateColor
51514
+ }
51515
+ aryText.push(item);
51516
+ }
51517
+
51518
+ if (MARKET_SUFFIX_NAME.IsFutures(upperSymbol) && IFrameSplitOperator.IsNumber(data.Position))
51519
+ {
51520
+ var item=
51521
+ {
51522
+ Title:g_JSChartLocalization.GetText('DivTooltip-Position',this.LanguageID),
51523
+ Text:`${data.Position}`,
51524
+ Color:this.PositionColor
51525
+ }
51526
+ }
51527
+
51528
+ //叠加股票
51529
+ if (this.Value.ChartPaint.Name=="Overlay-KLine")
51530
+ {
51531
+ result.Name=this.Value.ChartPaint.Title;
51532
+ }
51533
+
51534
+ result.AryText=aryText;
51535
+ }
51536
+
51537
+
51538
+ return result;
51308
51539
  }
51309
51540
 
51310
51541
  this.GetColor=function(price,yclse)
@@ -76783,7 +77014,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
76783
77014
  //叠加股票
76784
77015
  this.OverlaySymbol=function(symbol,option)
76785
77016
  {
76786
- for(var i in this.OverlayChartPaint)
77017
+ for(var i=0; i<this.OverlayChartPaint.length; ++i)
76787
77018
  {
76788
77019
  var item=this.OverlayChartPaint[i];
76789
77020
  if (item.Symbol==symbol)
@@ -76803,11 +77034,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
76803
77034
  if (option && option.Color) paint.Color=option.Color; //外部设置颜色
76804
77035
  else paint.Color=g_JSChartResource.OverlaySymbol.Color[g_JSChartResource.OverlaySymbol.Random%g_JSChartResource.OverlaySymbol.Color.length];
76805
77036
  ++g_JSChartResource.OverlaySymbol.Random;
76806
- if (this.ChartPaint[0].YClose>0 && this.ChartPaint[0].Data) //绑定主图数据
76807
- {
76808
- paint.MainData=this.ChartPaint[0].Data;
76809
- paint.MainYClose=this.ChartPaint[0].YClose;
76810
- }
77037
+ paint.MainData=this.SourceData; //绑定主图数据
76811
77038
 
76812
77039
  if (paint.SetOption) paint.SetOption(option);
76813
77040
 
@@ -77775,7 +78002,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
77775
78002
  for(var i=0; i<this.OverlayChartPaint.length; ++i)
77776
78003
  {
77777
78004
  let item=this.OverlayChartPaint[i];
77778
- if (!item.MainData || !(item.MainYClose>0) ) continue;
78005
+ if (!item.MainData) continue;
77779
78006
  if (item.Status!=OVERLAY_STATUS_ID.STATUS_NONE_ID) continue;
77780
78007
  var symbol=item.Symbol;
77781
78008
  if (!symbol) continue;
@@ -77836,7 +78063,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
77836
78063
  for(var j=0; j<this.OverlayChartPaint.length; ++j)
77837
78064
  {
77838
78065
  var item=this.OverlayChartPaint[j];
77839
- if (!item.MainData || !(item.MainYClose>0) ) continue;
78066
+ if (!item.MainData) continue;
77840
78067
  if (overlayData.symbol==item.Symbol)
77841
78068
  {
77842
78069
  this.RecvOverlayMinuteData(overlayData, item, { Redraw:false });
@@ -77997,6 +78224,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
77997
78224
  {
77998
78225
  var empytData=new ChartData();
77999
78226
  empytData.Date=item.Date;
78227
+ empytData.Data.length=item.Data.length;
78000
78228
  overlayDayData.push(empytData);
78001
78229
  }
78002
78230
  }
@@ -78230,11 +78458,10 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
78230
78458
  this.ExtendChartPaint[0].Name=this.Name;
78231
78459
  }
78232
78460
 
78233
- for(var i in this.OverlayChartPaint)
78461
+ for(var i=0; i<this.OverlayChartPaint.length; ++i)
78234
78462
  {
78235
78463
  var item=this.OverlayChartPaint[i];
78236
- item.MainData=this.ChartPaint[0].Data; //叠加股票
78237
- item.MainYClose=yClose;
78464
+ item.MainData=minuteData; //绑定主图数据
78238
78465
  }
78239
78466
  }
78240
78467
 
@@ -102020,6 +102247,36 @@ function JSDraw(errorHandler,symbolData)
102020
102247
  return result;
102021
102248
  }
102022
102249
 
102250
+ //叠加一个K线
102251
+ this.DRAWOVERLAYKLINE=function(open, high, low, close)
102252
+ {
102253
+ var drawData=[];
102254
+ var result={DrawData:drawData, DrawType:'DRAWOVERLAYKLINE'};
102255
+ var count=Math.max(high.length, open.length,low.length,close.length);
102256
+
102257
+ var kData=this.SymbolData.Data.Data;
102258
+ for(var i=0;i<count;++i)
102259
+ {
102260
+ var item={Open:null,High:null, Low:null, Close:null};
102261
+ var kItem=kData[i];
102262
+ if (i<high.length && i<open.length && i<low.length && i<close.length &&
102263
+ IFrameSplitOperator.IsNumber(open[i]) && IFrameSplitOperator.IsNumber(high[i]) && IFrameSplitOperator.IsNumber(low[i]) && IFrameSplitOperator.IsNumber(low[i]))
102264
+ {
102265
+
102266
+ item.Open=open[i];
102267
+ item.High=high[i];
102268
+ item.Low=low[i];
102269
+ item.Close=close[i];
102270
+ item.Date=kItem.Date;
102271
+ if (IFrameSplitOperator.IsNumber(kItem.Time)) item.Time=kItem.Time;
102272
+ }
102273
+
102274
+ drawData[i]=item;
102275
+ }
102276
+
102277
+ return result;
102278
+ }
102279
+
102023
102280
  /*
102024
102281
  DRAWCOLORKLINE 绘制K线
102025
102282
  用法:
@@ -103527,7 +103784,7 @@ JSDraw.prototype.IsDrawFunction=function(name)
103527
103784
  {
103528
103785
  let setFunctionName=new Set(
103529
103786
  [
103530
- "STICKLINE","DRAWTEXT",'SUPERDRAWTEXT','DRAWLINE','DRAWBAND','DRAWKLINE',"DRAWKLINE1",'DRAWKLINE_IF',"DRAWCOLORKLINE",'PLOYLINE',
103787
+ "STICKLINE","DRAWTEXT",'SUPERDRAWTEXT','DRAWLINE','DRAWBAND','DRAWKLINE',"DRAWKLINE1",'DRAWKLINE_IF',"DRAWCOLORKLINE",'PLOYLINE',"DRAWOVERLAYKLINE",
103531
103788
  'POLYLINE','DRAWNUMBER',"DRAWNUMBER_FIX",'DRAWICON','DRAWCHANNEL','PARTLINE','DRAWTEXT_FIX','DRAWGBK','DRAWTEXT_LINE','DRAWRECTREL',"DRAWTEXTABS","DRAWTEXTREL",
103532
103789
  'DRAWOVERLAYLINE',"FILLRGN", "FILLRGN2","FILLTOPRGN", "FILLBOTTOMRGN", "FILLVERTICALRGN","FLOATRGN","DRAWSL", "DRAWGBK2","DRAWGBK_DIV",
103533
103790
  "VERTLINE","HORLINE","TIPICON"
@@ -109811,6 +110068,10 @@ function JSExecute(ast,option)
109811
110068
  node.Draw=this.Draw.DRAWKLINE_IF(args[0],args[1],args[2],args[3],args[4]);
109812
110069
  node.Out=[];
109813
110070
  break;
110071
+ case "DRAWOVERLAYKLINE":
110072
+ node.Draw=this.Draw.DRAWOVERLAYKLINE(args[0],args[1],args[2],args[3]);
110073
+ node.Out=[];
110074
+ break;
109814
110075
  case "DRAWCOLORKLINE":
109815
110076
  node.Draw=this.Draw.DRAWCOLORKLINE(args[0],args[1],args[2]);
109816
110077
  node.Out=[];
@@ -112432,6 +112693,28 @@ function ScriptIndex(name,script,args,option)
112432
112693
  hqChart.ChartPaint.push(chart);
112433
112694
  }
112434
112695
 
112696
+ this.CreateOverlayKLine=function(hqChart,windowIndex,varItem,id)
112697
+ {
112698
+ var chart=null;
112699
+ if (hqChart.IsKLineContainer()) chart=new ChartOverlayKLine();
112700
+ else if (hqChart.IsMinuteContainer()) chart=new ChartOverlayMinutePriceLine();
112701
+ else return;
112702
+
112703
+ chart.Canvas=hqChart.Canvas;
112704
+ chart.Name=varItem.Name;
112705
+ chart.Identify=this.Guid;
112706
+ chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
112707
+ chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;
112708
+
112709
+ if (varItem.Color) chart.Color=this.GetColor(varItem.Color); //如果设置了颜色,使用外面设置的颜色
112710
+ else chart.Color=this.GetDefaultColor(id);
112711
+
112712
+ chart.Data.Data=varItem.Draw.DrawData;
112713
+ chart.MainData=hqChart.ChartPaint[0].Data;//绑定K线
112714
+
112715
+ hqChart.ChartPaint.push(chart);
112716
+ }
112717
+
112435
112718
  this.CreateDrawColorKLine=function(hqChart,windowIndex,varItem,i)
112436
112719
  {
112437
112720
  let chart=new ChartColorKline();
@@ -113272,6 +113555,9 @@ function ScriptIndex(name,script,args,option)
113272
113555
  case "DRAWKLINE1":
113273
113556
  this.CreateKLine(hqChart,windowIndex,item,i);
113274
113557
  break;
113558
+ case "DRAWOVERLAYKLINE":
113559
+ this.CreateOverlayKLine(hqChart,windowIndex,item,i);
113560
+ break;
113275
113561
  case "DRAWCOLORKLINE":
113276
113562
  this.CreateDrawColorKLine(hqChart,windowIndex,item,i);
113277
113563
  break;
@@ -128141,7 +128427,7 @@ function ScrollBarBGChart()
128141
128427
 
128142
128428
 
128143
128429
 
128144
- var HQCHART_VERSION="1.1.12502";
128430
+ var HQCHART_VERSION="1.1.12512";
128145
128431
 
128146
128432
  function PrintHQChartVersion()
128147
128433
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.12502";
8
+ var HQCHART_VERSION="1.1.12512";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -17,8 +17,8 @@
17
17
 
18
18
  function JSStockResource()
19
19
  {
20
- this.Domain = "https://opensource.zealink.com"; //API域名
21
- this.CacheDomain = "https://opensourcecache.zealink.com"; //缓存域名
20
+ this.Domain = "http://127.0.0.1:8886"; //API域名
21
+ this.CacheDomain = "http://127.0.0.1:8886"; //缓存域名
22
22
  }
23
23
 
24
24
  var g_JSStockResource = new JSStockResource();