hqchart 1.1.12813 → 1.1.12822

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.
@@ -166,6 +166,7 @@ function JSIndexScript()
166
166
  ['神奇九转', this.NineTurns],
167
167
  ['EMA', this.EMA3], ['EMA4', this.EMA4], ['EMA5', this.EMA5],['EMA6', this.EMA6],
168
168
  ["ICHIMOKU",this.ICHIMOKU],["CDP-STD", this.CDP_STD],["TBP-STD",this.TBP_STD],
169
+ ["ADX", this.ADX],
169
170
 
170
171
  //通达信特色指标
171
172
  ["散户线", this.ShareholderCount],["NXTS", this.NXTS],["FKX", this.FKX],["两融资金", this.Margin4],
@@ -4170,6 +4171,28 @@ TBP:REF(REF(C,1)+IF(DIRECT0>50,MIN(MF0,MF1),MAX(MF0,MF1)),1);\n\
4170
4171
  return data;
4171
4172
  }
4172
4173
 
4174
+ JSIndexScript.prototype.ADX = function ()
4175
+ {
4176
+ let data =
4177
+ {
4178
+ Name: 'ADX', Description: '均趋向指标', IsMainIndex: false,
4179
+ Args: [{ Name: 'N', Value: 14 }],
4180
+ Script: //脚本
4181
+ `TR1:=SMA(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),N,1);
4182
+ HD:=HIGH-REF(HIGH,1);
4183
+ LD:=REF(LOW,1)-LOW;
4184
+ DMP:=SMA(IF(HD>0 AND HD>LD,HD,0),N,1);
4185
+ DMM:=SMA(IF(LD>0 AND LD>HD,LD,0),N,1);
4186
+ PDI:DMP*100/TR1,COLORRED,DOTLINE;
4187
+ MDI:DMM*100/TR1,COLORGREEN,DOTLINE;
4188
+ ADX:SMA(ABS(MDI-PDI)/(MDI+PDI)*100,N,1),COLORYELLOW,LINETHICK2;
4189
+ 20;
4190
+ 40;`
4191
+ };
4192
+
4193
+ return data;
4194
+ }
4195
+
4173
4196
 
4174
4197
  JSIndexScript.prototype.TEST = function ()
4175
4198
  {
@@ -52068,8 +52091,8 @@ function ChartSplashPaint()
52068
52091
  {
52069
52092
  this.Frame;
52070
52093
  this.Canvas; //画布
52071
- this.Font=g_JSChartResource.DefaultTextFont; //字体
52072
- this.TextColor=g_JSChartResource.DefaultTextColor; //文本颜色
52094
+ this.Font=g_JSChartResource.SplashScreen.Font; //字体
52095
+ this.TextColor=g_JSChartResource.SplashScreen.TextColor; //文本颜色
52073
52096
  this.IsEnableSplash=false;
52074
52097
  this.SplashTitle='数据加载中';
52075
52098
  this.HQChart;
@@ -66252,7 +66275,9 @@ function JSChartResource()
66252
66275
  this.SplashScreen=
66253
66276
  {
66254
66277
  BGColor:"rgba(112,128,144,0.5)",
66255
- Title:"下载数据中......"
66278
+ Title:"下载数据中......",
66279
+ TextColor:"rgb(43,54,69)",
66280
+ Font:14*GetDevicePixelRatio() +'px 微软雅黑'
66256
66281
  }
66257
66282
 
66258
66283
  this.HLCArea=
@@ -67333,6 +67358,8 @@ function JSChartResource()
67333
67358
  var item=style.SplashScreen;
67334
67359
  if (item.BGColor) this.SplashScreen.BGColor=item.BGColor;
67335
67360
  if (item.Title) this.SplashScreen.Title=item.Title;
67361
+ if (item.TextColor) this.SplashScreen.TextColor=item.TextColor;
67362
+ if (item.Font) this.SplashScreen.Font=item.Font;
67336
67363
  }
67337
67364
 
67338
67365
  if (style.HLCArea)
@@ -71300,7 +71327,7 @@ function KLineChartContainer(uielement,OffscreenElement)
71300
71327
  item.BindData(this,windowIndex,hisData);
71301
71328
  }
71302
71329
 
71303
- //叠加指标
71330
+ //叠加指标 option={ CheckRunCount:执行次数检测 ,SyncExecute:同步|异步检测 }
71304
71331
  this.BindOverlayIndexData=function(overlayItem, windowIndex, hisData, option)
71305
71332
  {
71306
71333
  if (!overlayItem.Script) return;
@@ -71313,8 +71340,20 @@ function KLineChartContainer(uielement,OffscreenElement)
71313
71340
 
71314
71341
  if (typeof(overlayItem.Script.ExecuteScript)=='function')
71315
71342
  {
71316
- if (option && option.CheckRunCount)
71317
- if (overlayItem.Script.IsExcessRunCount()) return;
71343
+ if (option)
71344
+ {
71345
+ if (option.CheckRunCount) //检测执行次数
71346
+ {
71347
+ if (overlayItem.Script.IsExcessRunCount())
71348
+ return;
71349
+ }
71350
+
71351
+ if (IFrameSplitOperator.IsBool(option.SyncExecute)) //异步|同步
71352
+ {
71353
+ if (overlayItem.Script.IsSync!=option.SyncExecute)
71354
+ return;
71355
+ }
71356
+ }
71318
71357
 
71319
71358
  overlayItem.Script.ExecuteScript(this,windowIndex,hisData);
71320
71359
  return;
@@ -71490,7 +71529,7 @@ function KLineChartContainer(uielement,OffscreenElement)
71490
71529
  for(var i=0;i<this.Frame.SubFrame.length;++i)
71491
71530
  {
71492
71531
  var item=this.Frame.SubFrame[i];
71493
- for(var j in item.OverlayIndex)
71532
+ for(var j=0; j<item.OverlayIndex.length; ++j)
71494
71533
  {
71495
71534
  var overlayItem=item.OverlayIndex[j];
71496
71535
  this.BindOverlayIndexData(overlayItem,i,hisData,option)
@@ -71573,12 +71612,14 @@ function KLineChartContainer(uielement,OffscreenElement)
71573
71612
 
71574
71613
  if (page.Enable) page.Index=1; //第一页下载完成
71575
71614
 
71576
- this.BindInstructionIndexData(bindData); //执行指示脚本
71615
+ this.BindInstructionIndexData(bindData); //执行指示脚本
71577
71616
  for(var i=0; i<this.Frame.SubFrame.length; ++i) //执行指标
71578
71617
  {
71579
71618
  this.BindIndexData(i,bindData);
71580
71619
  }
71581
71620
 
71621
+ this.BindAllOverlayIndexData(bindData, { SyncExecute:true }); //同步模式叠加指标
71622
+
71582
71623
  //刷新画图
71583
71624
  this.UpdataDataoffset(); //更新数据偏移
71584
71625
  this.UpdateFrameMaxMin(); //调整坐标最大 最小值
@@ -71586,8 +71627,8 @@ function KLineChartContainer(uielement,OffscreenElement)
71586
71627
  this.UpdatePointByCursorIndex(2); //取消十字光标
71587
71628
  this.Draw();
71588
71629
 
71589
- //叠加指标
71590
- this.BindAllOverlayIndexData(bindData);
71630
+
71631
+ this.BindAllOverlayIndexData(bindData,{ SyncExecute:false } ); //异步模式叠加指标
71591
71632
 
71592
71633
  if (this.mapEvent.has(JSCHART_EVENT_ID.RECV_HISTROY_DATA))
71593
71634
  {
@@ -71881,6 +71922,8 @@ function KLineChartContainer(uielement,OffscreenElement)
71881
71922
  this.BindIndexData(i,bindData);
71882
71923
  }
71883
71924
 
71925
+ this.BindAllOverlayIndexData(bindData, { SyncExecute:true }); //同步模式叠加指标
71926
+
71884
71927
  //刷新画图
71885
71928
  this.UpdataDataoffset(); //更新数据偏移
71886
71929
  this.UpdatePointByCursorIndex(2); //切换周期了取消十字光标
@@ -71889,7 +71932,7 @@ function KLineChartContainer(uielement,OffscreenElement)
71889
71932
  this.Draw();
71890
71933
 
71891
71934
  //叠加指标
71892
- this.BindAllOverlayIndexData(bindData);
71935
+ this.BindAllOverlayIndexData(bindData, { SyncExecute:false } ); //异步模式叠加指标
71893
71936
 
71894
71937
  if (this.mapEvent.has(JSCHART_EVENT_ID.RECV_HISTROY_DATA))
71895
71938
  {
@@ -72181,6 +72224,8 @@ function KLineChartContainer(uielement,OffscreenElement)
72181
72224
  this.BindIndexData(i,bindData, { CheckRunCount:true });
72182
72225
  }
72183
72226
 
72227
+ this.BindAllOverlayIndexData(bindData, { CheckRunCount:true, SyncExecute:true }); //同步模式叠加指标
72228
+
72184
72229
  //刷新画图
72185
72230
  this.UpdataDataoffset(); //更新数据偏移
72186
72231
  this.UpdatePointByCursorIndex(1); //更新十字光标位子
@@ -72188,10 +72233,10 @@ function KLineChartContainer(uielement,OffscreenElement)
72188
72233
  this.Frame.SetSizeChage(true);
72189
72234
  this.Draw();
72190
72235
 
72191
- this.SendKLineUpdateEvent(bindData);
72236
+ this.SendKLineUpdateEvent(bindData);
72192
72237
 
72193
72238
  //叠加指标计算
72194
- this.BindAllOverlayIndexData(bindData,{ CheckRunCount:true });
72239
+ this.BindAllOverlayIndexData(bindData, { CheckRunCount:true,SyncExecute:false }); //异步模式叠加指标
72195
72240
 
72196
72241
  if (this.mapEvent.has(JSCHART_EVENT_ID.ON_RECV_REALTIME_DATA))
72197
72242
  {
@@ -72429,6 +72474,8 @@ function KLineChartContainer(uielement,OffscreenElement)
72429
72474
  this.BindIndexData(i,bindData);
72430
72475
  }
72431
72476
 
72477
+ this.BindAllOverlayIndexData(bindData, { CheckRunCount:true, SyncExecute:true }); //同步模式叠加指标
72478
+
72432
72479
  //刷新画图
72433
72480
  this.UpdataDataoffset(); //更新数据偏移
72434
72481
  this.UpdatePointByCursorIndex(1); //更新十字光标位子
@@ -72439,7 +72486,7 @@ function KLineChartContainer(uielement,OffscreenElement)
72439
72486
  this.SendKLineUpdateEvent(bindData);
72440
72487
 
72441
72488
  //更新叠加指标
72442
- this.BindAllOverlayIndexData(bindData);
72489
+ this.BindAllOverlayIndexData(bindData, { CheckRunCount:true,SyncExecute:false }); //异步模式叠加指标
72443
72490
 
72444
72491
  if (this.mapEvent.has(JSCHART_EVENT_ID.ON_RECV_REALTIME_DATA))
72445
72492
  {
@@ -72505,6 +72552,8 @@ function KLineChartContainer(uielement,OffscreenElement)
72505
72552
  this.BindIndexData(i,bindData);
72506
72553
  }
72507
72554
 
72555
+ this.BindAllOverlayIndexData(bindData, { CheckRunCount:true, SyncExecute:true }); //同步模式叠加指标
72556
+
72508
72557
  //刷新画图
72509
72558
  this.UpdataDataoffset(); //更新数据偏移
72510
72559
  this.UpdatePointByCursorIndex(1); //更新十字光标位子
@@ -72515,7 +72564,7 @@ function KLineChartContainer(uielement,OffscreenElement)
72515
72564
  this.SendKLineUpdateEvent(bindData);
72516
72565
 
72517
72566
  //更新叠加指标
72518
- this.BindAllOverlayIndexData(bindData);
72567
+ this.BindAllOverlayIndexData(bindData, { CheckRunCount:true, SyncExecute:false }); //异步模式叠加指标
72519
72568
  }
72520
72569
 
72521
72570
  //更新当天的全量分钟数据
@@ -73450,7 +73499,7 @@ function KLineChartContainer(uielement,OffscreenElement)
73450
73499
 
73451
73500
  if (IFrameSplitOperator.IsNumber(obj.FloatPrecision)) indexData.FloatPrecision=obj.FloatPrecision;
73452
73501
  if (IFrameSplitOperator.IsNumber(obj.StringFormat)) indexData.StringFormat=obj.StringFormat;
73453
-
73502
+ if (IFrameSplitOperator.IsBool(obj.IsSync)) indexData.IsSync=obj.IsSync;
73454
73503
  var scriptIndex=new OverlayScriptIndex(indexData.Name,indexData.Script,indexData.Args,indexData); //脚本执行
73455
73504
  scriptIndex.OverlayIndex={ IsOverlay:true, Identify:overlayFrame.Identify, WindowIndex:windowIndex, Frame:overlayFrame }; //叠加指标信息
73456
73505
  overlayFrame.Script=scriptIndex;
@@ -75964,6 +76013,8 @@ function KLineChartContainer(uielement,OffscreenElement)
75964
76013
  this.BindIndexData(i,bindData);
75965
76014
  }
75966
76015
 
76016
+ this.BindAllOverlayIndexData(bindData, { SyncExecute:true }); //同步模式叠加指标
76017
+
75967
76018
  //刷新画图
75968
76019
  this.UpdataDataoffset(); //更新数据偏移
75969
76020
  this.UpdatePointByCursorIndex(); //更新十字光标位子
@@ -75973,7 +76024,7 @@ function KLineChartContainer(uielement,OffscreenElement)
75973
76024
  this.Draw();
75974
76025
 
75975
76026
  //叠加指标计算
75976
- this.BindAllOverlayIndexData(bindData);
76027
+ this.BindAllOverlayIndexData(bindData, { SyncExecute:false }); //异步模式叠加指标
75977
76028
  }
75978
76029
 
75979
76030
  this.RequestZoomMinuteData=function(requestData)
@@ -76257,6 +76308,8 @@ function KLineChartContainer(uielement,OffscreenElement)
76257
76308
  this.BindIndexData(i,bindData);
76258
76309
  }
76259
76310
 
76311
+ this.BindAllOverlayIndexData(bindData, { SyncExecute:true }); //同步模式叠加指标
76312
+
76260
76313
  //刷新画图
76261
76314
  this.UpdataDataoffset(); //更新数据偏移
76262
76315
  this.UpdatePointByCursorIndex(); //更新十字光标位子
@@ -76269,7 +76322,7 @@ function KLineChartContainer(uielement,OffscreenElement)
76269
76322
  this.ReqeustKLineInfoData( { FunctionName:option.RecvFuncName, StartDate:firstData.Date } );
76270
76323
 
76271
76324
  //叠加指标计算
76272
- this.BindAllOverlayIndexData(bindData);
76325
+ this.BindAllOverlayIndexData(bindData, { SyncExecute:false }); //异步模式叠加指标
76273
76326
  }
76274
76327
 
76275
76328
  this.RequestZoomDayData=function(requestData)
@@ -81517,7 +81570,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
81517
81570
  for(var i=0;i<this.Frame.SubFrame.length;++i)
81518
81571
  {
81519
81572
  var item=this.Frame.SubFrame[i];
81520
- for(var j in item.OverlayIndex)
81573
+ for(var j=0;j<item.OverlayIndex.length; ++j)
81521
81574
  {
81522
81575
  var overlayItem=item.OverlayIndex[j];
81523
81576
  this.BindOverlayIndexData(overlayItem,i,hisData,option)
@@ -112405,6 +112458,7 @@ function JSExecute(ast,option)
112405
112458
  outVar=this.SymbolData.GetOtherSymolCacheData({ Literal:outVar });
112406
112459
  varName="__temp_li_"+i+"__";
112407
112460
  var type=0;
112461
+ if (!Array.isArray(outVar)) outVar=this.SingleDataToArrayData(outVar);
112408
112462
  this.OutVarTable.push({Name:varName, Data:outVar, Type:type, NoneName:true});
112409
112463
  }
112410
112464
  else if (item.Expression.Type==Syntax.BinaryExpression)
@@ -117171,7 +117225,9 @@ function OverlayScriptIndex(name,script,args,option)
117171
117225
 
117172
117226
  param.HQChart.UpdataDataoffset(); //更新数据偏移
117173
117227
  param.HQChart.UpdateFrameMaxMin(); //调整坐标最大 最小值
117174
- param.HQChart.Draw();
117228
+
117229
+ if (param.Self.IsSync===false) //异步需要马上刷新,同步主图数据更新的时候会刷新的
117230
+ param.HQChart.Draw();
117175
117231
 
117176
117232
  var event=hqChart.GetOverlayIndexEvent(); //指标计算完成回调
117177
117233
  if (event)
@@ -120881,6 +120937,12 @@ function GetBlackStyle()
120881
120937
  UnchagneBarColor: "rgb(228,228,228)", //平盘
120882
120938
  EmptyBarBGColor:'rgb(0,0,0)', //空心柱子背景色
120883
120939
 
120940
+ SplashScreen:
120941
+ {
120942
+ BGColor:"rgba(112,128,144,0.5)",
120943
+ TextColor:"rgb(230,230,230)",
120944
+ },
120945
+
120884
120946
  HLCArea:
120885
120947
  {
120886
120948
  HighLineColor:'rgb(238,21,21)',
@@ -131850,7 +131912,7 @@ function HQChartScriptWorker()
131850
131912
 
131851
131913
 
131852
131914
 
131853
- var HQCHART_VERSION="1.1.12812";
131915
+ var HQCHART_VERSION="1.1.12821";
131854
131916
 
131855
131917
  function PrintHQChartVersion()
131856
131918
  {