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.
@@ -4785,6 +4785,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4785
4785
  if (IFrameSplitOperator.IsBool(option.EnableNewIndex)) chart.EnableNewIndex=option.EnableNewIndex;
4786
4786
  if (IFrameSplitOperator.IsBool(option.EnableIndexChartDrag)) chart.EnableIndexChartDrag=option.EnableIndexChartDrag;
4787
4787
  if (IFrameSplitOperator.IsBool(option.EnableVerifyRecvData)) chart.EnableVerifyRecvData=option.EnableVerifyRecvData;
4788
+ if (IFrameSplitOperator.IsBool(option.EnableNightDayBG)) chart.EnableNightDayBG=option.EnableNightDayBG;
4788
4789
 
4789
4790
  if (option.GlobalOption)
4790
4791
  {
@@ -6539,6 +6540,8 @@ var JSCHART_EVENT_ID=
6539
6540
 
6540
6541
  ON_FORMAT_KLINE_HIGH_LOW_TITLE:154, //K线最高最低价格式化内容
6541
6542
  ON_CUSTOM_CORSSCURSOR_POSITION:155, //自定义十字光标X轴的输出的位置
6543
+
6544
+ ON_CUSTOM_MINUTE_NIGHT_DAY_X_INDEX:156, //日盘夜盘的分界线
6542
6545
  }
6543
6546
 
6544
6547
  var JSCHART_OPERATOR_ID=
@@ -12327,6 +12330,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
12327
12330
  if (IFrameSplitOperator.IsBool(windowItem.IsShowIndexName)) frame.IsShowIndexName=windowItem.IsShowIndexName;
12328
12331
  if (IFrameSplitOperator.IsNumber(windowItem.IndexParamSpace)) frame.IndexParamSpace=windowItem.IndexParamSpace;
12329
12332
  if (IFrameSplitOperator.IsNumber(windowItem.IndexTitleSpace)) frame.IndexTitleSpace=windowItem.IndexTitleSpace;
12333
+ if (!IFrameSplitOperator.IsUndefined(windowItem.HorizontalReserved)) frame.HorizontalReserved=windowItem.HorizontalReserved; //Y轴上下预留
12330
12334
  }
12331
12335
 
12332
12336
  if (frameItem)
@@ -16856,6 +16860,8 @@ function MinuteFrame()
16856
16860
  this.BeforeOpenVerticalInfo=[]; //盘前集合竞价X轴
16857
16861
  this.AfterCloseVerticalInfo=[]; //收盘集合竞价X轴
16858
16862
 
16863
+ this.NightDayConfig=CloneData(g_JSChartResource.Minute.NightDay);
16864
+
16859
16865
  this.DrawFrame=function()
16860
16866
  {
16861
16867
  if (!this.IsMinSize)
@@ -16867,6 +16873,8 @@ function MinuteFrame()
16867
16873
 
16868
16874
  if (this.BeforeDrawXYCallback) this.BeforeDrawXYCallback(this);
16869
16875
 
16876
+ this.DrawNightDayBG(); //绘制夜盘 日盘背景
16877
+
16870
16878
  this.DrawTitleBG();
16871
16879
  this.DrawHorizontal();
16872
16880
  this.DrawVertical();
@@ -17310,6 +17318,86 @@ function MinuteFrame()
17310
17318
  }
17311
17319
  }
17312
17320
 
17321
+ this.DrawNightDayBG=function()
17322
+ {
17323
+ if (this.DayCount!=1) return;
17324
+ if (!this.HQChart) return;
17325
+ if (!this.HQChart.EnableNightDayBG) return;
17326
+
17327
+ var symbol=this.HQChart.Symbol;
17328
+ if (!symbol) return;
17329
+
17330
+ var xIndex=-1;
17331
+ //获取夜盘和日期的分界线X索引位置
17332
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CUSTOM_MINUTE_NIGHT_DAY_X_INDEX)
17333
+ if (!event || !event.Callback) return;
17334
+
17335
+ var sendData={ Symbol:symbol, XIndex:xIndex, MinuteTimeStringData:g_MinuteTimeStringData };
17336
+ event.Callback(event,sendData,this);
17337
+ xIndex=sendData.XIndex;
17338
+ if (xIndex<0) return;
17339
+
17340
+ var border=this.ChartBorder.GetBorder();
17341
+ var x=this.GetXFromIndex(xIndex);
17342
+
17343
+ var rtNight={ Left: border.Left, Top:border.TopEx, Right:x, Bottom:border.Bottom };
17344
+ rtNight.Width=rtNight.Right-rtNight.Left;
17345
+ rtNight.Height=rtNight.Bottom-rtNight.Top;
17346
+
17347
+ this.Canvas.fillStyle = this.NightDayConfig.NightBGColor;
17348
+ this.Canvas.fillRect(rtNight.Left, rtNight.Top, rtNight.Width, rtNight.Height);
17349
+
17350
+ if (this.Identify!=0) return;
17351
+
17352
+ //显示 日盘夜盘文字
17353
+ this.Canvas.font=this.NightDayConfig.Font;
17354
+ this.Canvas.textBaseline = "bottom";
17355
+ this.Canvas.textAlign = 'left';
17356
+ var aryTitle=[{ Title:"夜盘", Position:1, Config:this.NightDayConfig.Night }, { Title:"日盘", Position:0,Config:this.NightDayConfig.Day }];
17357
+ var textHeight= this.Canvas.measureText("擎").width;
17358
+ for(var i=0;i<aryTitle.length;++i)
17359
+ {
17360
+ var item=aryTitle[i];
17361
+ var text=g_JSChartLocalization.GetText(item.Title,this.HQChart.LanguageID);
17362
+ var testWidth = this.Canvas.measureText(text).width;
17363
+ var rtItem=
17364
+ {
17365
+ Width:testWidth+item.Config.Margin.Left+item.Config.Margin.Right,
17366
+ Height:textHeight+item.Config.Margin.Top+item.Config.Margin.Bottom,
17367
+ Bottom:border.Bottom
17368
+ };
17369
+ rtItem.Top=rtItem.Bottom-rtItem.Height;
17370
+
17371
+ if (item.Position===1)
17372
+ {
17373
+ rtItem.Right=x-1;
17374
+ rtItem.Left=rtItem.Right-rtItem.Width;
17375
+ }
17376
+ else
17377
+ {
17378
+ rtItem.Left=x+1;
17379
+ rtItem.Right=rtItem.Left+rtItem.Width;
17380
+ }
17381
+
17382
+ if (item.Config.BGColor)
17383
+ {
17384
+ this.Canvas.fillStyle = item.Config.BGColor;
17385
+ this.Canvas.fillRect(rtItem.Left, rtItem.Top, rtItem.Width, rtItem.Height);
17386
+ }
17387
+
17388
+ if (item.Config.BorderColor)
17389
+ {
17390
+ this.Canvas.strokeStyle = item.Config.BorderColor;
17391
+ this.Canvas.strokeRect(ToFixedPoint(rtItem.Left), ToFixedPoint(rtItem.Top), ToFixedRect(rtItem.Width), ToFixedRect(rtItem.Height));
17392
+ }
17393
+
17394
+
17395
+ this.Canvas.fillStyle = item.Config.Color;
17396
+ this.Canvas.fillText(text, rtItem.Left+item.Config.Margin.Left, rtItem.Bottom-item.Config.Margin.Bottom );
17397
+ }
17398
+
17399
+ }
17400
+
17313
17401
  //选中的画图工具X轴坐标信息
17314
17402
  this.DrawPictureXCoordinate=function(drawPicture, range, option)
17315
17403
  {
@@ -18889,6 +18977,89 @@ function MinuteHScreenFrame()
18889
18977
  return this.GetLeftExtendYFromData(value,isLimit,obj);
18890
18978
  }
18891
18979
 
18980
+ this.DrawNightDayBG=function()
18981
+ {
18982
+ if (this.DayCount!=1) return;
18983
+ if (!this.HQChart) return;
18984
+ if (!this.HQChart.EnableNightDayBG) return;
18985
+
18986
+ var symbol=this.HQChart.Symbol;
18987
+ if (!symbol) return;
18988
+
18989
+ var xIndex=-1;
18990
+ //获取夜盘和日期的分界线X索引位置
18991
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CUSTOM_MINUTE_NIGHT_DAY_X_INDEX)
18992
+ if (!event || !event.Callback) return;
18993
+
18994
+ var sendData={ Symbol:symbol, XIndex:xIndex, MinuteTimeStringData:g_MinuteTimeStringData };
18995
+ event.Callback(event,sendData,this);
18996
+ xIndex=sendData.XIndex;
18997
+ if (xIndex<0) return;
18998
+
18999
+ var border=this.ChartBorder.GetHScreenBorder();
19000
+ var y=this.GetXFromIndex(xIndex);
19001
+
19002
+ var rtNight={ Left: border.Left, Top:border.Top, Right:border.RightEx, Bottom:y };
19003
+ rtNight.Width=rtNight.Right-rtNight.Left;
19004
+ rtNight.Height=rtNight.Bottom-rtNight.Top;
19005
+
19006
+ this.Canvas.fillStyle = this.NightDayConfig.NightBGColor;
19007
+ this.Canvas.fillRect(rtNight.Left, rtNight.Top, rtNight.Width, rtNight.Height);
19008
+
19009
+ if (this.Identify!=0) return;
19010
+
19011
+ //显示 日盘夜盘文字
19012
+ this.Canvas.font=this.NightDayConfig.Font;
19013
+ this.Canvas.textBaseline = "bottom";
19014
+ this.Canvas.textAlign = 'left';
19015
+ var aryTitle=[{ Title:"夜盘", Position:1, Config:this.NightDayConfig.Night }, { Title:"日盘", Position:0,Config:this.NightDayConfig.Day }];
19016
+ var textHeight= this.Canvas.measureText("擎").width;
19017
+ for(var i=0;i<aryTitle.length;++i)
19018
+ {
19019
+ var item=aryTitle[i];
19020
+ var text=g_JSChartLocalization.GetText(item.Title,this.HQChart.LanguageID);
19021
+ var testWidth = this.Canvas.measureText(text).width;
19022
+ var rtItem=
19023
+ {
19024
+ Height:testWidth+item.Config.Margin.Left+item.Config.Margin.Right,
19025
+ Width:textHeight+item.Config.Margin.Top+item.Config.Margin.Bottom,
19026
+ Left:border.Left
19027
+ };
19028
+ rtItem.Right=rtItem.Left+rtItem.Width;
19029
+
19030
+ if (item.Position===1)
19031
+ {
19032
+ rtItem.Bottom=y-1;
19033
+ rtItem.Top=rtItem.Bottom-rtItem.Height;
19034
+ }
19035
+ else
19036
+ {
19037
+ rtItem.Top=y+1;
19038
+ rtItem.Bottom=rtItem.Top+rtItem.Height;
19039
+ }
19040
+
19041
+ if (item.Config.BGColor)
19042
+ {
19043
+ this.Canvas.fillStyle = item.Config.BGColor;
19044
+ this.Canvas.fillRect(rtItem.Left, rtItem.Top, rtItem.Width, rtItem.Height);
19045
+ }
19046
+
19047
+ if (item.Config.BorderColor)
19048
+ {
19049
+ this.Canvas.strokeStyle = item.Config.BorderColor;
19050
+ this.Canvas.strokeRect(ToFixedPoint(rtItem.Left), ToFixedPoint(rtItem.Top), ToFixedRect(rtItem.Width), ToFixedRect(rtItem.Height));
19051
+ }
19052
+
19053
+ this.Canvas.fillStyle = item.Config.Color;
19054
+ var xText=rtItem.Left;
19055
+ var yText=rtItem.Top;
19056
+ this.Canvas.save();
19057
+ this.Canvas.translate(xText,yText);
19058
+ this.Canvas.rotate(90 * Math.PI / 180);
19059
+ this.Canvas.fillText(text, item.Config.Margin.Left, -item.Config.Margin.Bottom);
19060
+ this.Canvas.restore();
19061
+ }
19062
+ }
18892
19063
 
18893
19064
  }
18894
19065
 
@@ -22815,6 +22986,7 @@ function HQTradeFrame()
22815
22986
  for (var i in this.SubFrame)
22816
22987
  {
22817
22988
  var item = this.SubFrame[i];
22989
+ if (item.Height<=0) continue;
22818
22990
  if (item.Frame.DrawInsideHorizontal) item.Frame.DrawInsideHorizontal();
22819
22991
  }
22820
22992
  }
@@ -54225,7 +54397,7 @@ function ChartCorssCursor()
54225
54397
  }
54226
54398
  }
54227
54399
 
54228
- //X轴 Bottom=10 使用第1个指标框位置
54400
+ //X轴 Bottom=8 自定义X轴文字位置
54229
54401
  if ((this.ShowTextMode.Bottom===1 || this.ShowTextMode.Bottom==8) && this.StringFormatX.Operator())
54230
54402
  {
54231
54403
  var text=this.StringFormatX.Text;
@@ -70758,6 +70930,14 @@ function JSChartResource()
70758
70930
  Point:{ Color:"rgb(65,105,225)", Radius:2*GetDevicePixelRatio() },
70759
70931
  };
70760
70932
 
70933
+ this.Minute.NightDay=
70934
+ {
70935
+ NightBGColor:"rgba(0,0,0,0.2)",
70936
+ Font:`${12*GetDevicePixelRatio()}px 微软雅黑`,
70937
+ 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 } },
70938
+ 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 } },
70939
+ }
70940
+
70761
70941
  this.DefaultTextColor="rgb(43,54,69)"; //图形中默认的字体颜色
70762
70942
  this.DefaultTextFont=14*GetDevicePixelRatio() +'px 微软雅黑'; //图形中默认的字体
70763
70943
  this.TitleFont=13*GetDevicePixelRatio() +'px 微软雅黑'; //指标显示,tooltip显示字体
@@ -72042,6 +72222,29 @@ function JSChartResource()
72042
72222
  if (item.Point.Radius) this.Minute.After.Point.Radius=item.Point.Radius;
72043
72223
  }
72044
72224
  }
72225
+
72226
+ if (style.Minute.NightDay)
72227
+ {
72228
+ var item=style.Minute.NightDay;
72229
+ if (item.NightBGColor) this.Minute.NightDay.NightBGColor=item.NightBGColor;
72230
+ if (item.Font) this.Minute.NightDay.Font=item.Font;
72231
+ if (item.Day)
72232
+ {
72233
+ var subItem=item.Day;
72234
+ if (subItem.Color) this.Minute.NightDay.Day.Color=subItem.Color;
72235
+ if (subItem.BGColor) this.Minute.NightDay.Day.BGColor=subItem.BGColor;
72236
+ if (subItem.BorderColor) this.Minute.NightDay.Day.BorderColor=subItem.BorderColor;
72237
+ CopyMarginConfig(this.Minute.NightDay.Day.Margin,subItem.Margin);
72238
+ }
72239
+ if (item.Night)
72240
+ {
72241
+ var subItem=item.Night;
72242
+ if (subItem.Color) this.Minute.NightDay.Night.Color=subItem.Color;
72243
+ if (subItem.BGColor) this.Minute.NightDay.Night.BGColor=subItem.BGColor;
72244
+ if (subItem.BorderColor) this.Minute.NightDay.Night.BorderColor=subItem.BorderColor;
72245
+ CopyMarginConfig(this.Minute.NightDay.Night.Margin,subItem.Margin);
72246
+ }
72247
+ }
72045
72248
  }
72046
72249
 
72047
72250
  if (style.DefaultTextColor) this.DefaultTextColor = style.DefaultTextColor;
@@ -73253,7 +73456,11 @@ function JSChartLocalization()
73253
73456
  ["Toolbar-"+JSCHART_BUTTON_ID.CHIP_LONG, {CN:"远期成本分布", EN:"Long chip", TC:"远期成本分布"}],
73254
73457
  ["Toolbar-"+JSCHART_BUTTON_ID.CHIP_DEFULT, {CN:"默认筹码分布", EN:"Default chip", TC:"默认筹码分布"}],
73255
73458
  ["Toolbar-"+JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE, {CN:"删除", EN:"Delete", TC:"删除"}],
73256
- ["Toolbar-"+JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING, {CN:"设置", EN:"Setting", TC:"设置"}]
73459
+ ["Toolbar-"+JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING, {CN:"设置", EN:"Setting", TC:"设置"}],
73460
+
73461
+ //日盘|夜盘
73462
+ ["日盘",{CN:'日盘', EN:'Day', TC:'日盤'}],
73463
+ ["夜盘",{CN:'夜盘', EN:'Night', TC:'夜盤'} ]
73257
73464
  ]);
73258
73465
 
73259
73466
  this.GetText=function(key,language)
@@ -81772,6 +81979,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
81772
81979
 
81773
81980
  this.ZoomStepPixel=50;
81774
81981
  this.BaselineType=0; //基准线类型 0=最新昨收盘 1=多日前昨收盘
81982
+ this.EnableNightDayBG=false; //是否启动夜盘背景色
81775
81983
 
81776
81984
  //集合竞价设置 obj={ Left:true/false, Right:true/false, MultiDay:{Left:, Right:} }
81777
81985
  this.SetCallCationDataBorder=function(obj)
@@ -83562,6 +83770,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
83562
83770
  frame.GlobalOption=this.GlobalOption;
83563
83771
  if (i<2) frame.ChartBorder.TitleHeight=0;
83564
83772
  frame.XPointCount=243;
83773
+ frame.HQChart=this;
83774
+ frame.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
83565
83775
 
83566
83776
  if (i>=2)
83567
83777
  {
@@ -83651,6 +83861,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
83651
83861
  frame.Identify=id; //窗口序号
83652
83862
  frame.XPointCount=243;
83653
83863
  frame.GlobalOption=this.GlobalOption;
83864
+ frame.HQChart=this;
83865
+ frame.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
83654
83866
 
83655
83867
 
83656
83868
  if (id>=2)
@@ -89284,6 +89496,8 @@ function MinuteChartHScreenContainer(uielement)
89284
89496
  frame.Identify=i;
89285
89497
  if (i<2) frame.ChartBorder.TitleHeight=0;
89286
89498
  frame.XPointCount=243;
89499
+ frame.HQChart=this;
89500
+ frame.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
89287
89501
 
89288
89502
  var DEFAULT_HORIZONTAL=[9,8,7,6,5,4,3,2,1];
89289
89503
  frame.HorizontalMax=DEFAULT_HORIZONTAL[0];
@@ -122282,6 +122496,8 @@ function APIScriptIndex(name,script,args,option, isOverlay)
122282
122496
  if (item.isshow==false) outVarItem.IsShow = false;
122283
122497
  if (item.isexdata==true) outVarItem.IsExData = true;
122284
122498
  if (item.BreakPoint) outVarItem.BreakPoint=item.BreakPoint;
122499
+ if (item.UpColor) outVarItem.UpColor=item.UpColor;
122500
+ if (item.DownColor) outVarItem.DownColor=item.DownColor;
122285
122501
 
122286
122502
  result.push(outVarItem);
122287
122503
  }
@@ -123813,6 +124029,13 @@ function GetBlackStyle()
123813
124029
  {
123814
124030
  BGColor:"rgba(105,105,105,0.5)",
123815
124031
  AvPriceColor:'rgb(248,248,255)' //均线
124032
+ },
124033
+ NightDay:
124034
+ {
124035
+ NightBGColor:"rgb(22,22,22)",
124036
+ Font:`${12*GetDevicePixelRatio()}px 微软雅黑`,
124037
+ 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 } },
124038
+ 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 } },
123816
124039
  }
123817
124040
  },
123818
124041
 
@@ -137181,7 +137404,7 @@ function ScrollBarBGChart()
137181
137404
 
137182
137405
 
137183
137406
 
137184
- var HQCHART_VERSION="1.1.13622";
137407
+ var HQCHART_VERSION="1.1.13635";
137185
137408
 
137186
137409
  function PrintHQChartVersion()
137187
137410
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.13622";
8
+ var HQCHART_VERSION="1.1.13635";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {