hqchart 1.1.13623 → 1.1.13638

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,11 +12374,18 @@ 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)
12377
12381
  {
12378
12382
  if (frameItem.SplitCount) frame.YSplitOperator.SplitCount=frameItem.SplitCount;
12383
+ if (IFrameSplitOperator.IsNumber(frameItem.SplitType))
12384
+ {
12385
+ frame.YSplitOperator.SplitType=frameItem.SplitType;
12386
+ frame.YSplitOperator.DefaultSplitType=frameItem.SplitType;
12387
+ }
12388
+
12379
12389
  if (IFrameSplitOperator.IsBool(frameItem.IsShowXLine)) frame.IsShowXLine=frameItem.IsShowXLine;
12380
12390
  if (IFrameSplitOperator.IsBool(frameItem.IsShowYLine)) frame.IsShowYLine=frameItem.IsShowYLine;
12381
12391
 
@@ -16900,6 +16910,8 @@ function MinuteFrame()
16900
16910
  this.BeforeOpenVerticalInfo=[]; //盘前集合竞价X轴
16901
16911
  this.AfterCloseVerticalInfo=[]; //收盘集合竞价X轴
16902
16912
 
16913
+ this.NightDayConfig=CloneData(g_JSChartResource.Minute.NightDay);
16914
+
16903
16915
  this.DrawFrame=function()
16904
16916
  {
16905
16917
  if (!this.IsMinSize)
@@ -16911,6 +16923,8 @@ function MinuteFrame()
16911
16923
 
16912
16924
  if (this.BeforeDrawXYCallback) this.BeforeDrawXYCallback(this);
16913
16925
 
16926
+ this.DrawNightDayBG(); //绘制夜盘 日盘背景
16927
+
16914
16928
  this.DrawTitleBG();
16915
16929
  this.DrawHorizontal();
16916
16930
  this.DrawVertical();
@@ -17354,6 +17368,86 @@ function MinuteFrame()
17354
17368
  }
17355
17369
  }
17356
17370
 
17371
+ this.DrawNightDayBG=function()
17372
+ {
17373
+ if (this.DayCount!=1) return;
17374
+ if (!this.HQChart) return;
17375
+ if (!this.HQChart.EnableNightDayBG) return;
17376
+
17377
+ var symbol=this.HQChart.Symbol;
17378
+ if (!symbol) return;
17379
+
17380
+ var xIndex=-1;
17381
+ //获取夜盘和日期的分界线X索引位置
17382
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CUSTOM_MINUTE_NIGHT_DAY_X_INDEX)
17383
+ if (!event || !event.Callback) return;
17384
+
17385
+ var sendData={ Symbol:symbol, XIndex:xIndex, MinuteTimeStringData:g_MinuteTimeStringData };
17386
+ event.Callback(event,sendData,this);
17387
+ xIndex=sendData.XIndex;
17388
+ if (xIndex<0) return;
17389
+
17390
+ var border=this.ChartBorder.GetBorder();
17391
+ var x=this.GetXFromIndex(xIndex);
17392
+
17393
+ var rtNight={ Left: border.Left, Top:border.TopEx, Right:x, Bottom:border.Bottom };
17394
+ rtNight.Width=rtNight.Right-rtNight.Left;
17395
+ rtNight.Height=rtNight.Bottom-rtNight.Top;
17396
+
17397
+ this.Canvas.fillStyle = this.NightDayConfig.NightBGColor;
17398
+ this.Canvas.fillRect(rtNight.Left, rtNight.Top, rtNight.Width, rtNight.Height);
17399
+
17400
+ if (this.Identify!=0) return;
17401
+
17402
+ //显示 日盘夜盘文字
17403
+ this.Canvas.font=this.NightDayConfig.Font;
17404
+ this.Canvas.textBaseline = "bottom";
17405
+ this.Canvas.textAlign = 'left';
17406
+ var aryTitle=[{ Title:"夜盘", Position:1, Config:this.NightDayConfig.Night }, { Title:"日盘", Position:0,Config:this.NightDayConfig.Day }];
17407
+ var textHeight= this.Canvas.measureText("擎").width;
17408
+ for(var i=0;i<aryTitle.length;++i)
17409
+ {
17410
+ var item=aryTitle[i];
17411
+ var text=g_JSChartLocalization.GetText(item.Title,this.HQChart.LanguageID);
17412
+ var testWidth = this.Canvas.measureText(text).width;
17413
+ var rtItem=
17414
+ {
17415
+ Width:testWidth+item.Config.Margin.Left+item.Config.Margin.Right,
17416
+ Height:textHeight+item.Config.Margin.Top+item.Config.Margin.Bottom,
17417
+ Bottom:border.Bottom
17418
+ };
17419
+ rtItem.Top=rtItem.Bottom-rtItem.Height;
17420
+
17421
+ if (item.Position===1)
17422
+ {
17423
+ rtItem.Right=x-1;
17424
+ rtItem.Left=rtItem.Right-rtItem.Width;
17425
+ }
17426
+ else
17427
+ {
17428
+ rtItem.Left=x+1;
17429
+ rtItem.Right=rtItem.Left+rtItem.Width;
17430
+ }
17431
+
17432
+ if (item.Config.BGColor)
17433
+ {
17434
+ this.Canvas.fillStyle = item.Config.BGColor;
17435
+ this.Canvas.fillRect(rtItem.Left, rtItem.Top, rtItem.Width, rtItem.Height);
17436
+ }
17437
+
17438
+ if (item.Config.BorderColor)
17439
+ {
17440
+ this.Canvas.strokeStyle = item.Config.BorderColor;
17441
+ this.Canvas.strokeRect(ToFixedPoint(rtItem.Left), ToFixedPoint(rtItem.Top), ToFixedRect(rtItem.Width), ToFixedRect(rtItem.Height));
17442
+ }
17443
+
17444
+
17445
+ this.Canvas.fillStyle = item.Config.Color;
17446
+ this.Canvas.fillText(text, rtItem.Left+item.Config.Margin.Left, rtItem.Bottom-item.Config.Margin.Bottom );
17447
+ }
17448
+
17449
+ }
17450
+
17357
17451
  //选中的画图工具X轴坐标信息
17358
17452
  this.DrawPictureXCoordinate=function(drawPicture, range, option)
17359
17453
  {
@@ -18933,6 +19027,89 @@ function MinuteHScreenFrame()
18933
19027
  return this.GetLeftExtendYFromData(value,isLimit,obj);
18934
19028
  }
18935
19029
 
19030
+ this.DrawNightDayBG=function()
19031
+ {
19032
+ if (this.DayCount!=1) return;
19033
+ if (!this.HQChart) return;
19034
+ if (!this.HQChart.EnableNightDayBG) return;
19035
+
19036
+ var symbol=this.HQChart.Symbol;
19037
+ if (!symbol) return;
19038
+
19039
+ var xIndex=-1;
19040
+ //获取夜盘和日期的分界线X索引位置
19041
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CUSTOM_MINUTE_NIGHT_DAY_X_INDEX)
19042
+ if (!event || !event.Callback) return;
19043
+
19044
+ var sendData={ Symbol:symbol, XIndex:xIndex, MinuteTimeStringData:g_MinuteTimeStringData };
19045
+ event.Callback(event,sendData,this);
19046
+ xIndex=sendData.XIndex;
19047
+ if (xIndex<0) return;
19048
+
19049
+ var border=this.ChartBorder.GetHScreenBorder();
19050
+ var y=this.GetXFromIndex(xIndex);
19051
+
19052
+ var rtNight={ Left: border.Left, Top:border.Top, Right:border.RightEx, Bottom:y };
19053
+ rtNight.Width=rtNight.Right-rtNight.Left;
19054
+ rtNight.Height=rtNight.Bottom-rtNight.Top;
19055
+
19056
+ this.Canvas.fillStyle = this.NightDayConfig.NightBGColor;
19057
+ this.Canvas.fillRect(rtNight.Left, rtNight.Top, rtNight.Width, rtNight.Height);
19058
+
19059
+ if (this.Identify!=0) return;
19060
+
19061
+ //显示 日盘夜盘文字
19062
+ this.Canvas.font=this.NightDayConfig.Font;
19063
+ this.Canvas.textBaseline = "bottom";
19064
+ this.Canvas.textAlign = 'left';
19065
+ var aryTitle=[{ Title:"夜盘", Position:1, Config:this.NightDayConfig.Night }, { Title:"日盘", Position:0,Config:this.NightDayConfig.Day }];
19066
+ var textHeight= this.Canvas.measureText("擎").width;
19067
+ for(var i=0;i<aryTitle.length;++i)
19068
+ {
19069
+ var item=aryTitle[i];
19070
+ var text=g_JSChartLocalization.GetText(item.Title,this.HQChart.LanguageID);
19071
+ var testWidth = this.Canvas.measureText(text).width;
19072
+ var rtItem=
19073
+ {
19074
+ Height:testWidth+item.Config.Margin.Left+item.Config.Margin.Right,
19075
+ Width:textHeight+item.Config.Margin.Top+item.Config.Margin.Bottom,
19076
+ Left:border.Left
19077
+ };
19078
+ rtItem.Right=rtItem.Left+rtItem.Width;
19079
+
19080
+ if (item.Position===1)
19081
+ {
19082
+ rtItem.Bottom=y-1;
19083
+ rtItem.Top=rtItem.Bottom-rtItem.Height;
19084
+ }
19085
+ else
19086
+ {
19087
+ rtItem.Top=y+1;
19088
+ rtItem.Bottom=rtItem.Top+rtItem.Height;
19089
+ }
19090
+
19091
+ if (item.Config.BGColor)
19092
+ {
19093
+ this.Canvas.fillStyle = item.Config.BGColor;
19094
+ this.Canvas.fillRect(rtItem.Left, rtItem.Top, rtItem.Width, rtItem.Height);
19095
+ }
19096
+
19097
+ if (item.Config.BorderColor)
19098
+ {
19099
+ this.Canvas.strokeStyle = item.Config.BorderColor;
19100
+ this.Canvas.strokeRect(ToFixedPoint(rtItem.Left), ToFixedPoint(rtItem.Top), ToFixedRect(rtItem.Width), ToFixedRect(rtItem.Height));
19101
+ }
19102
+
19103
+ this.Canvas.fillStyle = item.Config.Color;
19104
+ var xText=rtItem.Left;
19105
+ var yText=rtItem.Top;
19106
+ this.Canvas.save();
19107
+ this.Canvas.translate(xText,yText);
19108
+ this.Canvas.rotate(90 * Math.PI / 180);
19109
+ this.Canvas.fillText(text, item.Config.Margin.Left, -item.Config.Margin.Bottom);
19110
+ this.Canvas.restore();
19111
+ }
19112
+ }
18936
19113
 
18937
19114
  }
18938
19115
 
@@ -22859,6 +23036,7 @@ function HQTradeFrame()
22859
23036
  for (var i in this.SubFrame)
22860
23037
  {
22861
23038
  var item = this.SubFrame[i];
23039
+ if (item.Height<=0) continue;
22862
23040
  if (item.Frame.DrawInsideHorizontal) item.Frame.DrawInsideHorizontal();
22863
23041
  }
22864
23042
  }
@@ -54269,7 +54447,7 @@ function ChartCorssCursor()
54269
54447
  }
54270
54448
  }
54271
54449
 
54272
- //X轴 Bottom=10 使用第1个指标框位置
54450
+ //X轴 Bottom=8 自定义X轴文字位置
54273
54451
  if ((this.ShowTextMode.Bottom===1 || this.ShowTextMode.Bottom==8) && this.StringFormatX.Operator())
54274
54452
  {
54275
54453
  var text=this.StringFormatX.Text;
@@ -70802,6 +70980,14 @@ function JSChartResource()
70802
70980
  Point:{ Color:"rgb(65,105,225)", Radius:2*GetDevicePixelRatio() },
70803
70981
  };
70804
70982
 
70983
+ this.Minute.NightDay=
70984
+ {
70985
+ NightBGColor:"rgba(0,0,0,0.2)",
70986
+ Font:`${12*GetDevicePixelRatio()}px 微软雅黑`,
70987
+ 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 } },
70988
+ 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 } },
70989
+ }
70990
+
70805
70991
  this.DefaultTextColor="rgb(43,54,69)"; //图形中默认的字体颜色
70806
70992
  this.DefaultTextFont=14*GetDevicePixelRatio() +'px 微软雅黑'; //图形中默认的字体
70807
70993
  this.TitleFont=13*GetDevicePixelRatio() +'px 微软雅黑'; //指标显示,tooltip显示字体
@@ -72086,6 +72272,29 @@ function JSChartResource()
72086
72272
  if (item.Point.Radius) this.Minute.After.Point.Radius=item.Point.Radius;
72087
72273
  }
72088
72274
  }
72275
+
72276
+ if (style.Minute.NightDay)
72277
+ {
72278
+ var item=style.Minute.NightDay;
72279
+ if (item.NightBGColor) this.Minute.NightDay.NightBGColor=item.NightBGColor;
72280
+ if (item.Font) this.Minute.NightDay.Font=item.Font;
72281
+ if (item.Day)
72282
+ {
72283
+ var subItem=item.Day;
72284
+ if (subItem.Color) this.Minute.NightDay.Day.Color=subItem.Color;
72285
+ if (subItem.BGColor) this.Minute.NightDay.Day.BGColor=subItem.BGColor;
72286
+ if (subItem.BorderColor) this.Minute.NightDay.Day.BorderColor=subItem.BorderColor;
72287
+ CopyMarginConfig(this.Minute.NightDay.Day.Margin,subItem.Margin);
72288
+ }
72289
+ if (item.Night)
72290
+ {
72291
+ var subItem=item.Night;
72292
+ if (subItem.Color) this.Minute.NightDay.Night.Color=subItem.Color;
72293
+ if (subItem.BGColor) this.Minute.NightDay.Night.BGColor=subItem.BGColor;
72294
+ if (subItem.BorderColor) this.Minute.NightDay.Night.BorderColor=subItem.BorderColor;
72295
+ CopyMarginConfig(this.Minute.NightDay.Night.Margin,subItem.Margin);
72296
+ }
72297
+ }
72089
72298
  }
72090
72299
 
72091
72300
  if (style.DefaultTextColor) this.DefaultTextColor = style.DefaultTextColor;
@@ -73297,7 +73506,11 @@ function JSChartLocalization()
73297
73506
  ["Toolbar-"+JSCHART_BUTTON_ID.CHIP_LONG, {CN:"远期成本分布", EN:"Long chip", TC:"远期成本分布"}],
73298
73507
  ["Toolbar-"+JSCHART_BUTTON_ID.CHIP_DEFULT, {CN:"默认筹码分布", EN:"Default chip", TC:"默认筹码分布"}],
73299
73508
  ["Toolbar-"+JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE, {CN:"删除", EN:"Delete", TC:"删除"}],
73300
- ["Toolbar-"+JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING, {CN:"设置", EN:"Setting", TC:"设置"}]
73509
+ ["Toolbar-"+JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING, {CN:"设置", EN:"Setting", TC:"设置"}],
73510
+
73511
+ //日盘|夜盘
73512
+ ["日盘",{CN:'日盘', EN:'Day', TC:'日盤'}],
73513
+ ["夜盘",{CN:'夜盘', EN:'Night', TC:'夜盤'} ]
73301
73514
  ]);
73302
73515
 
73303
73516
  this.GetText=function(key,language)
@@ -81816,6 +82029,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
81816
82029
 
81817
82030
  this.ZoomStepPixel=50;
81818
82031
  this.BaselineType=0; //基准线类型 0=最新昨收盘 1=多日前昨收盘
82032
+ this.EnableNightDayBG=false; //是否启动夜盘背景色
81819
82033
 
81820
82034
  //集合竞价设置 obj={ Left:true/false, Right:true/false, MultiDay:{Left:, Right:} }
81821
82035
  this.SetCallCationDataBorder=function(obj)
@@ -83606,6 +83820,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
83606
83820
  frame.GlobalOption=this.GlobalOption;
83607
83821
  if (i<2) frame.ChartBorder.TitleHeight=0;
83608
83822
  frame.XPointCount=243;
83823
+ frame.HQChart=this;
83824
+ frame.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
83609
83825
 
83610
83826
  if (i>=2)
83611
83827
  {
@@ -83695,6 +83911,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
83695
83911
  frame.Identify=id; //窗口序号
83696
83912
  frame.XPointCount=243;
83697
83913
  frame.GlobalOption=this.GlobalOption;
83914
+ frame.HQChart=this;
83915
+ frame.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
83698
83916
 
83699
83917
 
83700
83918
  if (id>=2)
@@ -89328,6 +89546,8 @@ function MinuteChartHScreenContainer(uielement)
89328
89546
  frame.Identify=i;
89329
89547
  if (i<2) frame.ChartBorder.TitleHeight=0;
89330
89548
  frame.XPointCount=243;
89549
+ frame.HQChart=this;
89550
+ frame.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
89331
89551
 
89332
89552
  var DEFAULT_HORIZONTAL=[9,8,7,6,5,4,3,2,1];
89333
89553
  frame.HorizontalMax=DEFAULT_HORIZONTAL[0];
@@ -122326,6 +122546,8 @@ function APIScriptIndex(name,script,args,option, isOverlay)
122326
122546
  if (item.isshow==false) outVarItem.IsShow = false;
122327
122547
  if (item.isexdata==true) outVarItem.IsExData = true;
122328
122548
  if (item.BreakPoint) outVarItem.BreakPoint=item.BreakPoint;
122549
+ if (item.UpColor) outVarItem.UpColor=item.UpColor;
122550
+ if (item.DownColor) outVarItem.DownColor=item.DownColor;
122329
122551
 
122330
122552
  result.push(outVarItem);
122331
122553
  }
@@ -123857,6 +124079,13 @@ function GetBlackStyle()
123857
124079
  {
123858
124080
  BGColor:"rgba(105,105,105,0.5)",
123859
124081
  AvPriceColor:'rgb(248,248,255)' //均线
124082
+ },
124083
+ NightDay:
124084
+ {
124085
+ NightBGColor:"rgb(22,22,22)",
124086
+ Font:`${12*GetDevicePixelRatio()}px 微软雅黑`,
124087
+ 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 } },
124088
+ 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
124089
  }
123861
124090
  },
123862
124091
 
@@ -141139,7 +141368,7 @@ function HQChartScriptWorker()
141139
141368
 
141140
141369
 
141141
141370
 
141142
- var HQCHART_VERSION="1.1.13622";
141371
+ var HQCHART_VERSION="1.1.13637";
141143
141372
 
141144
141373
  function PrintHQChartVersion()
141145
141374
  {