hqchart 1.1.13623 → 1.1.13636

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.
@@ -4829,6 +4829,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4829
4829
  if (IFrameSplitOperator.IsBool(option.EnableNewIndex)) chart.EnableNewIndex=option.EnableNewIndex;
4830
4830
  if (IFrameSplitOperator.IsBool(option.EnableIndexChartDrag)) chart.EnableIndexChartDrag=option.EnableIndexChartDrag;
4831
4831
  if (IFrameSplitOperator.IsBool(option.EnableVerifyRecvData)) chart.EnableVerifyRecvData=option.EnableVerifyRecvData;
4832
+ if (IFrameSplitOperator.IsBool(option.EnableNightDayBG)) chart.EnableNightDayBG=option.EnableNightDayBG;
4832
4833
 
4833
4834
  if (option.GlobalOption)
4834
4835
  {
@@ -6583,6 +6584,8 @@ var JSCHART_EVENT_ID=
6583
6584
 
6584
6585
  ON_FORMAT_KLINE_HIGH_LOW_TITLE:154, //K线最高最低价格式化内容
6585
6586
  ON_CUSTOM_CORSSCURSOR_POSITION:155, //自定义十字光标X轴的输出的位置
6587
+
6588
+ ON_CUSTOM_MINUTE_NIGHT_DAY_X_INDEX:156, //日盘夜盘的分界线
6586
6589
  }
6587
6590
 
6588
6591
  var JSCHART_OPERATOR_ID=
@@ -12371,6 +12374,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
12371
12374
  if (IFrameSplitOperator.IsBool(windowItem.IsShowIndexName)) frame.IsShowIndexName=windowItem.IsShowIndexName;
12372
12375
  if (IFrameSplitOperator.IsNumber(windowItem.IndexParamSpace)) frame.IndexParamSpace=windowItem.IndexParamSpace;
12373
12376
  if (IFrameSplitOperator.IsNumber(windowItem.IndexTitleSpace)) frame.IndexTitleSpace=windowItem.IndexTitleSpace;
12377
+ if (!IFrameSplitOperator.IsUndefined(windowItem.HorizontalReserved)) frame.HorizontalReserved=windowItem.HorizontalReserved; //Y轴上下预留
12374
12378
  }
12375
12379
 
12376
12380
  if (frameItem)
@@ -16900,6 +16904,8 @@ function MinuteFrame()
16900
16904
  this.BeforeOpenVerticalInfo=[]; //盘前集合竞价X轴
16901
16905
  this.AfterCloseVerticalInfo=[]; //收盘集合竞价X轴
16902
16906
 
16907
+ this.NightDayConfig=CloneData(g_JSChartResource.Minute.NightDay);
16908
+
16903
16909
  this.DrawFrame=function()
16904
16910
  {
16905
16911
  if (!this.IsMinSize)
@@ -16911,6 +16917,8 @@ function MinuteFrame()
16911
16917
 
16912
16918
  if (this.BeforeDrawXYCallback) this.BeforeDrawXYCallback(this);
16913
16919
 
16920
+ this.DrawNightDayBG(); //绘制夜盘 日盘背景
16921
+
16914
16922
  this.DrawTitleBG();
16915
16923
  this.DrawHorizontal();
16916
16924
  this.DrawVertical();
@@ -17354,6 +17362,86 @@ function MinuteFrame()
17354
17362
  }
17355
17363
  }
17356
17364
 
17365
+ this.DrawNightDayBG=function()
17366
+ {
17367
+ if (this.DayCount!=1) return;
17368
+ if (!this.HQChart) return;
17369
+ if (!this.HQChart.EnableNightDayBG) return;
17370
+
17371
+ var symbol=this.HQChart.Symbol;
17372
+ if (!symbol) return;
17373
+
17374
+ var xIndex=-1;
17375
+ //获取夜盘和日期的分界线X索引位置
17376
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CUSTOM_MINUTE_NIGHT_DAY_X_INDEX)
17377
+ if (!event || !event.Callback) return;
17378
+
17379
+ var sendData={ Symbol:symbol, XIndex:xIndex, MinuteTimeStringData:g_MinuteTimeStringData };
17380
+ event.Callback(event,sendData,this);
17381
+ xIndex=sendData.XIndex;
17382
+ if (xIndex<0) return;
17383
+
17384
+ var border=this.ChartBorder.GetBorder();
17385
+ var x=this.GetXFromIndex(xIndex);
17386
+
17387
+ var rtNight={ Left: border.Left, Top:border.TopEx, Right:x, Bottom:border.Bottom };
17388
+ rtNight.Width=rtNight.Right-rtNight.Left;
17389
+ rtNight.Height=rtNight.Bottom-rtNight.Top;
17390
+
17391
+ this.Canvas.fillStyle = this.NightDayConfig.NightBGColor;
17392
+ this.Canvas.fillRect(rtNight.Left, rtNight.Top, rtNight.Width, rtNight.Height);
17393
+
17394
+ if (this.Identify!=0) return;
17395
+
17396
+ //显示 日盘夜盘文字
17397
+ this.Canvas.font=this.NightDayConfig.Font;
17398
+ this.Canvas.textBaseline = "bottom";
17399
+ this.Canvas.textAlign = 'left';
17400
+ var aryTitle=[{ Title:"夜盘", Position:1, Config:this.NightDayConfig.Night }, { Title:"日盘", Position:0,Config:this.NightDayConfig.Day }];
17401
+ var textHeight= this.Canvas.measureText("擎").width;
17402
+ for(var i=0;i<aryTitle.length;++i)
17403
+ {
17404
+ var item=aryTitle[i];
17405
+ var text=g_JSChartLocalization.GetText(item.Title,this.HQChart.LanguageID);
17406
+ var testWidth = this.Canvas.measureText(text).width;
17407
+ var rtItem=
17408
+ {
17409
+ Width:testWidth+item.Config.Margin.Left+item.Config.Margin.Right,
17410
+ Height:textHeight+item.Config.Margin.Top+item.Config.Margin.Bottom,
17411
+ Bottom:border.Bottom
17412
+ };
17413
+ rtItem.Top=rtItem.Bottom-rtItem.Height;
17414
+
17415
+ if (item.Position===1)
17416
+ {
17417
+ rtItem.Right=x-1;
17418
+ rtItem.Left=rtItem.Right-rtItem.Width;
17419
+ }
17420
+ else
17421
+ {
17422
+ rtItem.Left=x+1;
17423
+ rtItem.Right=rtItem.Left+rtItem.Width;
17424
+ }
17425
+
17426
+ if (item.Config.BGColor)
17427
+ {
17428
+ this.Canvas.fillStyle = item.Config.BGColor;
17429
+ this.Canvas.fillRect(rtItem.Left, rtItem.Top, rtItem.Width, rtItem.Height);
17430
+ }
17431
+
17432
+ if (item.Config.BorderColor)
17433
+ {
17434
+ this.Canvas.strokeStyle = item.Config.BorderColor;
17435
+ this.Canvas.strokeRect(ToFixedPoint(rtItem.Left), ToFixedPoint(rtItem.Top), ToFixedRect(rtItem.Width), ToFixedRect(rtItem.Height));
17436
+ }
17437
+
17438
+
17439
+ this.Canvas.fillStyle = item.Config.Color;
17440
+ this.Canvas.fillText(text, rtItem.Left+item.Config.Margin.Left, rtItem.Bottom-item.Config.Margin.Bottom );
17441
+ }
17442
+
17443
+ }
17444
+
17357
17445
  //选中的画图工具X轴坐标信息
17358
17446
  this.DrawPictureXCoordinate=function(drawPicture, range, option)
17359
17447
  {
@@ -18933,6 +19021,89 @@ function MinuteHScreenFrame()
18933
19021
  return this.GetLeftExtendYFromData(value,isLimit,obj);
18934
19022
  }
18935
19023
 
19024
+ this.DrawNightDayBG=function()
19025
+ {
19026
+ if (this.DayCount!=1) return;
19027
+ if (!this.HQChart) return;
19028
+ if (!this.HQChart.EnableNightDayBG) return;
19029
+
19030
+ var symbol=this.HQChart.Symbol;
19031
+ if (!symbol) return;
19032
+
19033
+ var xIndex=-1;
19034
+ //获取夜盘和日期的分界线X索引位置
19035
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CUSTOM_MINUTE_NIGHT_DAY_X_INDEX)
19036
+ if (!event || !event.Callback) return;
19037
+
19038
+ var sendData={ Symbol:symbol, XIndex:xIndex, MinuteTimeStringData:g_MinuteTimeStringData };
19039
+ event.Callback(event,sendData,this);
19040
+ xIndex=sendData.XIndex;
19041
+ if (xIndex<0) return;
19042
+
19043
+ var border=this.ChartBorder.GetHScreenBorder();
19044
+ var y=this.GetXFromIndex(xIndex);
19045
+
19046
+ var rtNight={ Left: border.Left, Top:border.Top, Right:border.RightEx, Bottom:y };
19047
+ rtNight.Width=rtNight.Right-rtNight.Left;
19048
+ rtNight.Height=rtNight.Bottom-rtNight.Top;
19049
+
19050
+ this.Canvas.fillStyle = this.NightDayConfig.NightBGColor;
19051
+ this.Canvas.fillRect(rtNight.Left, rtNight.Top, rtNight.Width, rtNight.Height);
19052
+
19053
+ if (this.Identify!=0) return;
19054
+
19055
+ //显示 日盘夜盘文字
19056
+ this.Canvas.font=this.NightDayConfig.Font;
19057
+ this.Canvas.textBaseline = "bottom";
19058
+ this.Canvas.textAlign = 'left';
19059
+ var aryTitle=[{ Title:"夜盘", Position:1, Config:this.NightDayConfig.Night }, { Title:"日盘", Position:0,Config:this.NightDayConfig.Day }];
19060
+ var textHeight= this.Canvas.measureText("擎").width;
19061
+ for(var i=0;i<aryTitle.length;++i)
19062
+ {
19063
+ var item=aryTitle[i];
19064
+ var text=g_JSChartLocalization.GetText(item.Title,this.HQChart.LanguageID);
19065
+ var testWidth = this.Canvas.measureText(text).width;
19066
+ var rtItem=
19067
+ {
19068
+ Height:testWidth+item.Config.Margin.Left+item.Config.Margin.Right,
19069
+ Width:textHeight+item.Config.Margin.Top+item.Config.Margin.Bottom,
19070
+ Left:border.Left
19071
+ };
19072
+ rtItem.Right=rtItem.Left+rtItem.Width;
19073
+
19074
+ if (item.Position===1)
19075
+ {
19076
+ rtItem.Bottom=y-1;
19077
+ rtItem.Top=rtItem.Bottom-rtItem.Height;
19078
+ }
19079
+ else
19080
+ {
19081
+ rtItem.Top=y+1;
19082
+ rtItem.Bottom=rtItem.Top+rtItem.Height;
19083
+ }
19084
+
19085
+ if (item.Config.BGColor)
19086
+ {
19087
+ this.Canvas.fillStyle = item.Config.BGColor;
19088
+ this.Canvas.fillRect(rtItem.Left, rtItem.Top, rtItem.Width, rtItem.Height);
19089
+ }
19090
+
19091
+ if (item.Config.BorderColor)
19092
+ {
19093
+ this.Canvas.strokeStyle = item.Config.BorderColor;
19094
+ this.Canvas.strokeRect(ToFixedPoint(rtItem.Left), ToFixedPoint(rtItem.Top), ToFixedRect(rtItem.Width), ToFixedRect(rtItem.Height));
19095
+ }
19096
+
19097
+ this.Canvas.fillStyle = item.Config.Color;
19098
+ var xText=rtItem.Left;
19099
+ var yText=rtItem.Top;
19100
+ this.Canvas.save();
19101
+ this.Canvas.translate(xText,yText);
19102
+ this.Canvas.rotate(90 * Math.PI / 180);
19103
+ this.Canvas.fillText(text, item.Config.Margin.Left, -item.Config.Margin.Bottom);
19104
+ this.Canvas.restore();
19105
+ }
19106
+ }
18936
19107
 
18937
19108
  }
18938
19109
 
@@ -22859,6 +23030,7 @@ function HQTradeFrame()
22859
23030
  for (var i in this.SubFrame)
22860
23031
  {
22861
23032
  var item = this.SubFrame[i];
23033
+ if (item.Height<=0) continue;
22862
23034
  if (item.Frame.DrawInsideHorizontal) item.Frame.DrawInsideHorizontal();
22863
23035
  }
22864
23036
  }
@@ -54269,7 +54441,7 @@ function ChartCorssCursor()
54269
54441
  }
54270
54442
  }
54271
54443
 
54272
- //X轴 Bottom=10 使用第1个指标框位置
54444
+ //X轴 Bottom=8 自定义X轴文字位置
54273
54445
  if ((this.ShowTextMode.Bottom===1 || this.ShowTextMode.Bottom==8) && this.StringFormatX.Operator())
54274
54446
  {
54275
54447
  var text=this.StringFormatX.Text;
@@ -70802,6 +70974,14 @@ function JSChartResource()
70802
70974
  Point:{ Color:"rgb(65,105,225)", Radius:2*GetDevicePixelRatio() },
70803
70975
  };
70804
70976
 
70977
+ this.Minute.NightDay=
70978
+ {
70979
+ NightBGColor:"rgba(0,0,0,0.2)",
70980
+ Font:`${12*GetDevicePixelRatio()}px 微软雅黑`,
70981
+ Day: { Color:"rgb(0,0,0)", BGColor:"rgb(179,179,179)", BorderColor:"rgb(179,179,179)", Margin:{ Left:5, Top:2, Bottom:2, Right:5 } },
70982
+ Night: { Color:"rgb(0,0,0)", BGColor:"rgb(179,179,179)", BorderColor:"rgb(179,179,179)", Margin:{ Left:5, Top:2, Bottom:2, Right:5 } },
70983
+ }
70984
+
70805
70985
  this.DefaultTextColor="rgb(43,54,69)"; //图形中默认的字体颜色
70806
70986
  this.DefaultTextFont=14*GetDevicePixelRatio() +'px 微软雅黑'; //图形中默认的字体
70807
70987
  this.TitleFont=13*GetDevicePixelRatio() +'px 微软雅黑'; //指标显示,tooltip显示字体
@@ -72086,6 +72266,29 @@ function JSChartResource()
72086
72266
  if (item.Point.Radius) this.Minute.After.Point.Radius=item.Point.Radius;
72087
72267
  }
72088
72268
  }
72269
+
72270
+ if (style.Minute.NightDay)
72271
+ {
72272
+ var item=style.Minute.NightDay;
72273
+ if (item.NightBGColor) this.Minute.NightDay.NightBGColor=item.NightBGColor;
72274
+ if (item.Font) this.Minute.NightDay.Font=item.Font;
72275
+ if (item.Day)
72276
+ {
72277
+ var subItem=item.Day;
72278
+ if (subItem.Color) this.Minute.NightDay.Day.Color=subItem.Color;
72279
+ if (subItem.BGColor) this.Minute.NightDay.Day.BGColor=subItem.BGColor;
72280
+ if (subItem.BorderColor) this.Minute.NightDay.Day.BorderColor=subItem.BorderColor;
72281
+ CopyMarginConfig(this.Minute.NightDay.Day.Margin,subItem.Margin);
72282
+ }
72283
+ if (item.Night)
72284
+ {
72285
+ var subItem=item.Night;
72286
+ if (subItem.Color) this.Minute.NightDay.Night.Color=subItem.Color;
72287
+ if (subItem.BGColor) this.Minute.NightDay.Night.BGColor=subItem.BGColor;
72288
+ if (subItem.BorderColor) this.Minute.NightDay.Night.BorderColor=subItem.BorderColor;
72289
+ CopyMarginConfig(this.Minute.NightDay.Night.Margin,subItem.Margin);
72290
+ }
72291
+ }
72089
72292
  }
72090
72293
 
72091
72294
  if (style.DefaultTextColor) this.DefaultTextColor = style.DefaultTextColor;
@@ -73297,7 +73500,11 @@ function JSChartLocalization()
73297
73500
  ["Toolbar-"+JSCHART_BUTTON_ID.CHIP_LONG, {CN:"远期成本分布", EN:"Long chip", TC:"远期成本分布"}],
73298
73501
  ["Toolbar-"+JSCHART_BUTTON_ID.CHIP_DEFULT, {CN:"默认筹码分布", EN:"Default chip", TC:"默认筹码分布"}],
73299
73502
  ["Toolbar-"+JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE, {CN:"删除", EN:"Delete", TC:"删除"}],
73300
- ["Toolbar-"+JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING, {CN:"设置", EN:"Setting", TC:"设置"}]
73503
+ ["Toolbar-"+JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING, {CN:"设置", EN:"Setting", TC:"设置"}],
73504
+
73505
+ //日盘|夜盘
73506
+ ["日盘",{CN:'日盘', EN:'Day', TC:'日盤'}],
73507
+ ["夜盘",{CN:'夜盘', EN:'Night', TC:'夜盤'} ]
73301
73508
  ]);
73302
73509
 
73303
73510
  this.GetText=function(key,language)
@@ -81816,6 +82023,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
81816
82023
 
81817
82024
  this.ZoomStepPixel=50;
81818
82025
  this.BaselineType=0; //基准线类型 0=最新昨收盘 1=多日前昨收盘
82026
+ this.EnableNightDayBG=false; //是否启动夜盘背景色
81819
82027
 
81820
82028
  //集合竞价设置 obj={ Left:true/false, Right:true/false, MultiDay:{Left:, Right:} }
81821
82029
  this.SetCallCationDataBorder=function(obj)
@@ -83606,6 +83814,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
83606
83814
  frame.GlobalOption=this.GlobalOption;
83607
83815
  if (i<2) frame.ChartBorder.TitleHeight=0;
83608
83816
  frame.XPointCount=243;
83817
+ frame.HQChart=this;
83818
+ frame.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
83609
83819
 
83610
83820
  if (i>=2)
83611
83821
  {
@@ -83695,6 +83905,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
83695
83905
  frame.Identify=id; //窗口序号
83696
83906
  frame.XPointCount=243;
83697
83907
  frame.GlobalOption=this.GlobalOption;
83908
+ frame.HQChart=this;
83909
+ frame.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
83698
83910
 
83699
83911
 
83700
83912
  if (id>=2)
@@ -89328,6 +89540,8 @@ function MinuteChartHScreenContainer(uielement)
89328
89540
  frame.Identify=i;
89329
89541
  if (i<2) frame.ChartBorder.TitleHeight=0;
89330
89542
  frame.XPointCount=243;
89543
+ frame.HQChart=this;
89544
+ frame.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
89331
89545
 
89332
89546
  var DEFAULT_HORIZONTAL=[9,8,7,6,5,4,3,2,1];
89333
89547
  frame.HorizontalMax=DEFAULT_HORIZONTAL[0];
@@ -122326,6 +122540,8 @@ function APIScriptIndex(name,script,args,option, isOverlay)
122326
122540
  if (item.isshow==false) outVarItem.IsShow = false;
122327
122541
  if (item.isexdata==true) outVarItem.IsExData = true;
122328
122542
  if (item.BreakPoint) outVarItem.BreakPoint=item.BreakPoint;
122543
+ if (item.UpColor) outVarItem.UpColor=item.UpColor;
122544
+ if (item.DownColor) outVarItem.DownColor=item.DownColor;
122329
122545
 
122330
122546
  result.push(outVarItem);
122331
122547
  }
@@ -123857,6 +124073,13 @@ function GetBlackStyle()
123857
124073
  {
123858
124074
  BGColor:"rgba(105,105,105,0.5)",
123859
124075
  AvPriceColor:'rgb(248,248,255)' //均线
124076
+ },
124077
+ NightDay:
124078
+ {
124079
+ NightBGColor:"rgb(22,22,22)",
124080
+ Font:`${12*GetDevicePixelRatio()}px 微软雅黑`,
124081
+ Day: { Color:"rgb(153,153,153)", BGColor:"rgb(51,51,51)", BorderColor:"rgb(51,51,51)", Margin:{ Left:5, Top:2, Bottom:2, Right:5 } },
124082
+ Night: { Color:"rgb(153,153,153)", BGColor:"rgb(51,51,51)", BorderColor:"rgb(51,51,51)", Margin:{ Left:5, Top:2, Bottom:2, Right:5 } },
123860
124083
  }
123861
124084
  },
123862
124085
 
@@ -141139,7 +141362,7 @@ function HQChartScriptWorker()
141139
141362
 
141140
141363
 
141141
141364
 
141142
- var HQCHART_VERSION="1.1.13622";
141365
+ var HQCHART_VERSION="1.1.13635";
141143
141366
 
141144
141367
  function PrintHQChartVersion()
141145
141368
  {