hqchart 1.1.14040 → 1.1.14050

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.
@@ -212,6 +212,14 @@ HQData.Minute_RequestMinuteData=function(data, callback)
212
212
  stockItem.beforeinfo=beforeinfo;
213
213
  }
214
214
 
215
+ /* 测试用 这里可以修改数据
216
+ for(var i=0;i<srcStock.minute.length;++i)
217
+ {
218
+ var item=srcStock.minute[i];
219
+ if (item.amount<1000000) item.amount*=100000;
220
+ }
221
+ */
222
+
215
223
  var hqchartData={code:0, stock:[stockItem] };
216
224
 
217
225
 
@@ -1192,6 +1200,10 @@ HQData.Report_RequestStockData=function(data, callback)
1192
1200
  extendData[6]=(Math.round(Math.random()*60))/100;
1193
1201
  extendData[7]=(Math.round(Math.random()*60))/100;
1194
1202
  extendData[8]=(Math.round(Math.random()*60))/100;
1203
+
1204
+
1205
+ newItem[101]=105.0;
1206
+ newItem[201]=`A-[${HQData.GetRandomTestData(-90,90)}]-B`
1195
1207
 
1196
1208
 
1197
1209
  item.Data=newItem;
@@ -1482,17 +1494,17 @@ HQData.Keyboard_RequestSymbolList=function(data, callback)
1482
1494
  arySymbol.push( { Symbol:"02", Name:"分价表", TypeName:"功能键", Priority:1, Color:"rgb(220,20,60)" ,Data:{ PageName:"分价表", Type:2 }} );
1483
1495
  arySymbol.push( { Symbol:"06", Name:"自选股", TypeName:"功能键", Priority:1 , Color:"rgb(220,20,60)", Data:{ PageName:"自选股", Type:2 }} );
1484
1496
 
1485
- arySymbol.push( { Symbol:"MACD", Name:"平滑异同平均线", TypeName:"指标", Priority:2 , Color:"rgb(0,0,255)", Data:{ Index:"MACD", Type:1 }} );
1486
- arySymbol.push( { Symbol:"RSI", Name:"相对强弱指标", TypeName:"指标", Priority:2, Color:"rgb(0,0,255)",Data:{ Index:"RSI", Type:1 }} );
1487
- arySymbol.push( { Symbol:"MA", Name:"均线", TypeName:"指标", Priority:2, Color:"rgb(0,0,255)" ,Data:{ Index:"MA", Type:1 } } );
1488
- arySymbol.push( { Symbol:"BOLL", Name:"布林线", TypeName:"指标", Priority:2, Color:"rgb(0,0,255)" ,Data:{ Index:"BOLL", Type:1 } } );
1489
- arySymbol.push( { Symbol:"KDJ", Name:"随机指标", TypeName:"指标", Priority:2, Color:"rgb(0,0,255)" ,Data:{ Index:"KDJ", Type:1 } } );
1490
- arySymbol.push( { Symbol:"SKDJ", Name:"慢速随机指标", TypeName:"指标", Priority:2, Color:"rgb(0,0,255)" ,Data:{ Index:"SKDJ", Type:1 } } );
1491
- arySymbol.push( { Symbol:"KD", Name:"随机指标KD", TypeName:"指标", Priority:2, Color:"rgb(0,0,255)" ,Data:{ Index:"KD", Type:1 } } );
1492
- arySymbol.push( { Symbol:"MARSI", Name:"相对强弱平均线", TypeName:"指标", Priority:2, Color:"rgb(0,0,255)" ,Data:{ Index:"MARSI", Type:1 } } );
1493
- arySymbol.push( { Symbol:"VMACD", Name:"量平滑异同平均", TypeName:"指标", Priority:2, Color:"rgb(0,0,255)" ,Data:{ Index:"VMACD", Type:1 } } );
1494
- arySymbol.push( { Symbol:"AMO", Name:"成交金额", TypeName:"指标", Priority:2, Color:"rgb(0,0,255)" ,Data:{ Index:"AMO", Type:1 } } );
1495
- arySymbol.push( { Symbol:"SQJZ", Name:"神奇九转", TypeName:"指标", Priority:2, Color:"rgb(0,0,255)" ,Data:{ Index:"SQJZ", Type:1 } } );
1497
+ arySymbol.push( { Symbol:"MACD", Name:"平滑异同平均线", TypeName:"指标", Priority:2 , Color:"rgb(0,144,255)", Data:{ Index:"MACD", Type:1 }} );
1498
+ arySymbol.push( { Symbol:"RSI", Name:"相对强弱指标", TypeName:"指标", Priority:2, Color:"rgb(0,144,255)",Data:{ Index:"RSI", Type:1 }} );
1499
+ arySymbol.push( { Symbol:"MA", Name:"均线", TypeName:"指标", Priority:2, Color:"rgb(0,144,255)" ,Data:{ Index:"MA", Type:1 } } );
1500
+ arySymbol.push( { Symbol:"BOLL", Name:"布林线", TypeName:"指标", Priority:2, Color:"rgb(0,144,255)" ,Data:{ Index:"BOLL", Type:1 } } );
1501
+ arySymbol.push( { Symbol:"KDJ", Name:"随机指标", TypeName:"指标", Priority:2, Color:"rgb(0,144,255)" ,Data:{ Index:"KDJ", Type:1 } } );
1502
+ arySymbol.push( { Symbol:"SKDJ", Name:"慢速随机指标", TypeName:"指标", Priority:2, Color:"rgb(0,144,255)" ,Data:{ Index:"SKDJ", Type:1 } } );
1503
+ arySymbol.push( { Symbol:"KD", Name:"随机指标KD", TypeName:"指标", Priority:2, Color:"rgb(0,144,255)" ,Data:{ Index:"KD", Type:1 } } );
1504
+ arySymbol.push( { Symbol:"MARSI", Name:"相对强弱平均线", TypeName:"指标", Priority:2, Color:"rgb(0,144,255)" ,Data:{ Index:"MARSI", Type:1 } } );
1505
+ arySymbol.push( { Symbol:"VMACD", Name:"量平滑异同平均", TypeName:"指标", Priority:2, Color:"rgb(0,144,255)" ,Data:{ Index:"VMACD", Type:1 } } );
1506
+ arySymbol.push( { Symbol:"AMO", Name:"成交金额", TypeName:"指标", Priority:2, Color:"rgb(0,144,255)" ,Data:{ Index:"AMO", Type:1 } } );
1507
+ arySymbol.push( { Symbol:"SQJZ", Name:"神奇九转", TypeName:"指标", Priority:2, Color:"rgb(0,144,255)" ,Data:{ Index:"SQJZ", Type:1 } } );
1496
1508
 
1497
1509
  callback(arySymbol);
1498
1510
  }
@@ -5647,6 +5647,9 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5647
5647
  if (option.TooltipDialog && option.TooltipDialog.Enable)
5648
5648
  chart.InitalTooltipDialog(option.TooltipDialog);
5649
5649
 
5650
+ if (option.FloatTooltip && option.FloatTooltip.Enable)
5651
+ chart.InitalFloatTooltip(option.FloatTooltip);
5652
+
5650
5653
  if (option.SelectRectDialog && option.SelectRectDialog.Enable)
5651
5654
  {
5652
5655
  chart.InitalSelectRectDialog(option.SelectRectDialog);
@@ -6558,9 +6561,11 @@ var JSCHART_EVENT_ID=
6558
6561
  ON_CUSTOM_MINUTE_BG:157, //自定义分时图背景颜色
6559
6562
  ON_CLICK_HORIZONTAL_LABEL:158, //点击Y轴刻度标签
6560
6563
 
6561
- ON_FORMAT_DIALOG_TOOLTIP_TEXT:159, //格式化Tooltip对话框显示文字
6564
+ ON_FORMAT_DIALOG_TOOLTIP:159, //格式化Tooltip对话框显示文字
6565
+
6566
+ ON_CHANGE_KLINE_RIGHT:160, //切换复权
6562
6567
 
6563
- ON_CHANGE_KLINE_RIGHT:160, //切换复权
6568
+ ON_FORMAT_KLINE_FLOAT_TOOLTIP:161, //格式化k线浮动框显示文字
6564
6569
  }
6565
6570
 
6566
6571
  var JSCHART_OPERATOR_ID=
@@ -6964,6 +6969,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
6964
6969
 
6965
6970
  this.DialogTooltip; //tooltip信息
6966
6971
  this.DialogSelectRect; //区间统计
6972
+ this.FloatTooltip; //浮动tooltip信息
6967
6973
 
6968
6974
 
6969
6975
  this.ClearStockCache=function()
@@ -6997,6 +7003,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
6997
7003
  this.DialogTooltip.Create();
6998
7004
  }
6999
7005
 
7006
+ this.InitalFloatTooltip=function(option)
7007
+ {
7008
+ if (this.FloatTooltip) return;
7009
+
7010
+ this.FloatTooltip=new JSFloatTooltip();
7011
+ this.FloatTooltip.Inital(this, option);
7012
+ this.FloatTooltip.Create();
7013
+ }
7014
+
7000
7015
  this.InitalModifyDrawDialog=function()
7001
7016
  {
7002
7017
  if ( this.DialogModifyDraw) return;
@@ -7015,6 +7030,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7015
7030
  this.DialogSelectRect.Create();
7016
7031
  }
7017
7032
 
7033
+
7034
+
7018
7035
  this.DrawSelectRectDialog=function()
7019
7036
  {
7020
7037
 
@@ -7088,6 +7105,13 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7088
7105
  this.DialogTooltip.Close();
7089
7106
  }
7090
7107
 
7108
+ this.HideFloatTooltip=function()
7109
+ {
7110
+ if (!this.FloatTooltip) return;
7111
+
7112
+ this.FloatTooltip.Hide();
7113
+ }
7114
+
7091
7115
  this.DestroyTooltipDialog=function()
7092
7116
  {
7093
7117
  if (!this.DialogTooltip) return;
@@ -7096,6 +7120,14 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7096
7120
  this.DialogTooltip=null;
7097
7121
  }
7098
7122
 
7123
+ this.DestroyFloatTooltip=function()
7124
+ {
7125
+ if (!this.FloatTooltip) return;
7126
+
7127
+ this.FloatTooltip.Destroy();
7128
+ this.FloatTooltip=null;
7129
+ }
7130
+
7099
7131
 
7100
7132
 
7101
7133
  //obj={ Element:, Canvas: }
@@ -7148,6 +7180,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7148
7180
  this.IsDestroy=true;
7149
7181
  this.StopAutoUpdate();
7150
7182
  this.DestroyTooltipDialog();
7183
+ this.DestroyFloatTooltip();
7151
7184
  }
7152
7185
 
7153
7186
  this.ChartDestory=this.ChartDestroy; //老版本写错了,需要兼容下
@@ -10919,6 +10952,17 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10919
10952
 
10920
10953
  }
10921
10954
 
10955
+ this.DrawFloatTooltip=function(point,toolTip)
10956
+ {
10957
+
10958
+ }
10959
+
10960
+ //更新实时行情到浮动tooltip
10961
+ this.UpdateHQFloatTooltip=function(item)
10962
+ {
10963
+
10964
+ }
10965
+
10922
10966
  this.ShowTooltip=function(x,y,toolTip)
10923
10967
  {
10924
10968
  if (!this.IsShowTooltip) return;
@@ -10930,11 +10974,18 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10930
10974
  this.TooltipCache.Data=null;
10931
10975
  this.TooltipCache.X=x;
10932
10976
  this.TooltipCache.Y=y;
10933
-
10977
+ var bHideFloatToolip=true;
10934
10978
  if (toolTip.Type===0) //K线信息
10935
10979
  {
10936
10980
  if (!this.KLineTooltipConfig.Enable) return;
10937
10981
 
10982
+ if (this.FloatTooltip)
10983
+ {
10984
+ this.DrawFloatTooltip({X:x, Y:y, YMove:20/pixelTatio}, toolTip);
10985
+ bHideFloatToolip=false;
10986
+ return;
10987
+ }
10988
+
10938
10989
  var scrollPos=GetScrollPosition();
10939
10990
  var left = x;
10940
10991
  var top = y;
@@ -11128,6 +11179,9 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
11128
11179
  this.Tooltip.innerHTML=format.Text;
11129
11180
  this.Tooltip.style.display = "block";
11130
11181
  }
11182
+
11183
+
11184
+ if (bHideFloatToolip) this.HideFloatTooltip();
11131
11185
  }
11132
11186
 
11133
11187
  this.UpdateDOMTooltip=function(toolTipType, data)
@@ -11164,6 +11218,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
11164
11218
  this.TooltipCache.Data=null;
11165
11219
 
11166
11220
  if (this.Tooltip.style.display!="none") this.Tooltip.style.display = "none";
11221
+
11222
+ this.HideFloatTooltip();
11167
11223
  }
11168
11224
 
11169
11225
  this.UpdateSelectRect=function(start,end)
@@ -12029,6 +12085,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
12029
12085
 
12030
12086
  if (this.PopMinuteChart) this.PopMinuteChart.ReloadResource(option);
12031
12087
  if (this.DialogTooltip) this.DialogTooltip.ReloadResource(option);
12088
+ if (this.FloatTooltip) this.FloatTooltip.ReloadResource(option);
12032
12089
  if (this.DialogSelectRect) this.DialogSelectRect.ReloadResource(option);
12033
12090
  }
12034
12091
 
@@ -14371,6 +14428,8 @@ function CoordinateInfo()
14371
14428
  this.ExtendData; //扩展属性
14372
14429
  //百分比 { PriceColor:, PercentageColor:, SplitColor:, Font: }
14373
14430
  //自定义刻度 { Custom:{ Position: 1=强制内部 }}
14431
+ //输出位置的Y轴偏移
14432
+ //this.YOffset;
14374
14433
  this.AreaData; //区域: { Start:, End:, BGColor:, Position:[0=左, 1=右] }
14375
14434
 
14376
14435
  //不在当前屏范围 (可定义刻度使用)
@@ -73201,8 +73260,20 @@ function JSChartResource()
73201
73260
 
73202
73261
  TextColor:"rgb(0,0,0)", //数值名称
73203
73262
  ValueColor:"rgb(0,0,0)", //数值
73263
+ };
73204
73264
 
73205
-
73265
+ this.FloatTooltip=
73266
+ {
73267
+ BGColor:'rgb(250,250,250)', //背景色
73268
+ BorderColor:'rgb(20,20,20)', //边框颜色
73269
+ VolColor:"rgb(255, 185, 15)", //标题成交量
73270
+ AmountColor:"rgb(79, 79, 79)", //成交金额
73271
+ DateTimeColor:'rgb(60,60,60)',
73272
+ TurnoverRateColor:'rgb(43,54,69)', //换手率
73273
+ PositionColor:"rgb(255,0,255)", //持仓
73274
+
73275
+ TextColor:"rgb(0,0,0)", //数值名称
73276
+ ValueColor:"rgb(0,0,0)", //数值
73206
73277
  };
73207
73278
 
73208
73279
  //区间统计
@@ -74251,6 +74322,22 @@ function JSChartResource()
74251
74322
  if (item.ValueColor) this.DialogTooltip.ValueColor=item.ValueColor;
74252
74323
  }
74253
74324
 
74325
+ if (style.FloatTooltip)
74326
+ {
74327
+ var item=style.FloatTooltip;
74328
+ if (item.BGColor) this.FloatTooltip.BGColor=item.BGColor;
74329
+ if (item.BorderColor) this.FloatTooltip.BorderColor=item.BorderColor;
74330
+
74331
+ if (item.DateTimeColor) this.FloatTooltip.DateTimeColor=item.DateTimeColor;
74332
+ if (item.VolColor) this.FloatTooltip.VolColor=item.VolColor;
74333
+ if (item.AmountColor) this.FloatTooltip.AmountColor=item.AmountColor;
74334
+ if (item.TurnoverRateColor) this.FloatTooltip.TurnoverRateColor=item.TurnoverRateColor;
74335
+ if (item.PositionColor) this.FloatTooltip.PositionColor=item.PositionColor;
74336
+
74337
+ if (item.TextColor) this.FloatTooltip.TextColor=item.TextColor;
74338
+ if (item.ValueColor) this.FloatTooltip.ValueColor=item.ValueColor;
74339
+ }
74340
+
74254
74341
  if (style.DialogSelectRect)
74255
74342
  {
74256
74343
  var item=style.DialogSelectRect;
@@ -75353,7 +75440,26 @@ function JSChartLocalization()
75353
75440
  ['DialogTooltip-AC-Vol', {CN:'匹配量', EN:'Vol', TC:'匹配量'}],
75354
75441
  ['DialogTooltip-Value', {CN:'数值', EN:'Value', TC:'数值'}],
75355
75442
 
75443
+ ['FloatTooltip-Date', {CN:'日期', EN:'Date', TC:'日期'}],
75444
+ ['FloatTooltip-Time', {CN:'时间', EN:'Time', TC:'時間'}],
75445
+ ['FloatTooltip-Open', {CN:'开盘价', EN:'Open', TC:'開盤價'}],
75446
+ ['FloatTooltip-High', {CN:'最高价', EN:'High', TC:'最高價'}],
75447
+ ['FloatTooltip-Low', {CN:'最低价', EN:'Low', TC:'最低價'}],
75448
+ ['FloatTooltip-Close', {CN:'收盘价', EN:'Close', TC:'收盤價'}],
75449
+ ['FloatTooltip-YClose', {CN:'昨收价', EN:'YClose', TC:'昨收價'}],
75450
+ ['FloatTooltip-Increase', {CN:'涨幅', EN:'Increase', TC:'漲幅'}],
75451
+ ['FloatTooltip-Risefall', {CN:'涨跌', EN:'Risefall', TC:'漲跌'}],
75452
+ ['FloatTooltip-Vol', {CN:'成交量', EN:'Volume', TC:'數量'}],
75453
+ ['FloatTooltip-Amount', {CN:'成交额', EN:'Amount', TC:'金額'}],
75454
+ ['FloatTooltip-Exchange', {CN:'换手率', EN:'Exchange', TC:'換手'}],
75455
+ ['FloatTooltip-Position', {CN:'持仓量', EN:'Position', TC:'持倉'}],
75456
+ ['FloatTooltip-Price', {CN:'价格', EN:'Price', TC:'價格'}],
75457
+ ['FloatTooltip-AvPrice', {CN:'均价', EN:'AVPrice:', TC:'均價'}],
75458
+ ['FloatTooltip-FClose', {CN:"结算价", EN:'Settlement', TC:'結算價'}],
75459
+ ['FloatTooltip-YSettlePrice', {CN:"昨结算", EN:'YSettlement', TC:'昨結算'}],
75460
+ ['FloatTooltip-Amplitude', {CN:'振幅', EN:'amplitude', TC:'振幅'}],
75356
75461
 
75462
+
75357
75463
  ['DialogSelectRect-StartPrice', {CN:'起始价:', EN:'Start Price:', TC:'起始價'}],
75358
75464
  ['DialogSelectRect-EndPrice', {CN:'最终价:', EN:"End Price:", TC:'最终價'}],
75359
75465
  ['DialogSelectRect-High', {CN:'最高价:', EN:'High:', TC:'最高價'}],
@@ -78828,6 +78934,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
78828
78934
 
78829
78935
  this.SendKLineUpdateEvent(bindData);
78830
78936
  this.UpdateDOMTooltip(0, bindData);
78937
+ this.UpdateHQFloatTooltip(bindData);
78831
78938
 
78832
78939
  //叠加指标计算
78833
78940
  this.BindAllOverlayIndexData(bindData, { CheckRunCount:true,SyncExecute:false }); //异步模式叠加指标
@@ -79086,6 +79193,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
79086
79193
 
79087
79194
  this.SendKLineUpdateEvent(bindData);
79088
79195
  this.UpdateDOMTooltip(0, bindData);
79196
+ this.UpdateHQFloatTooltip(bindData);
79089
79197
 
79090
79198
  //更新叠加指标
79091
79199
  this.BindAllOverlayIndexData(bindData, { CheckRunCount:true,SyncExecute:false }); //异步模式叠加指标
@@ -83621,18 +83729,34 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
83621
83729
  if (!this.DialogTooltip) return false;
83622
83730
  if (!this.ChartCorssCursor) return false;
83623
83731
 
83732
+ var dataType=0;
83624
83733
  var kItem=null;
83625
83734
  if (this.ChartCorssCursor.ClientPos>=0)
83626
83735
  {
83627
83736
  var hisData=this.ChartOperator_Temp_GetHistroyData();;
83628
83737
  if (!hisData) return false; //数据还没有到达
83738
+ if (!IFrameSplitOperator.IsNonEmptyArray(hisData.Data)) return false;
83629
83739
 
83630
83740
  var dataIndex=hisData.DataOffset+this.ChartCorssCursor.CursorIndex;
83741
+ if (dataIndex>=hisData.Data.length) dataIndex=hisData.Data.length-1;
83631
83742
  var kItem=hisData.Data[dataIndex];
83632
83743
  }
83744
+ else //取最后一个数据
83745
+ {
83746
+ var hisData=this.ChartOperator_Temp_GetHistroyData();;
83747
+ if (!hisData) return false; //数据还没有到达
83748
+ if (!IFrameSplitOperator.IsNonEmptyArray(hisData.Data)) return false;
83749
+ var kItem=hisData.Data[hisData.Data.length-1];
83750
+ var dataID={ Symbol:this.Symbol, Date:kItem.Date };
83751
+ if (IFrameSplitOperator.IsNumber(kItem.Time)) dataID.Time=kItem.Time;
83752
+ if (!this.DialogTooltip.IsEqualDataID(dataID)) return false;
83753
+
83754
+ dataType=1;
83755
+ }
83633
83756
 
83634
83757
  var sendData=
83635
83758
  {
83759
+ DataType:dataType, //0=全部更新 1=更新实时K线
83636
83760
  ClientPos:this.ChartCorssCursor.ClientPos, //位置
83637
83761
  IsShowCorss:this.ChartCorssCursor.IsShowCorss, //是否显示十字线
83638
83762
  KItem:kItem,
@@ -83640,7 +83764,6 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
83640
83764
  LastValue:this.ChartCorssCursor.LastValue,
83641
83765
  };
83642
83766
 
83643
-
83644
83767
  this.DialogTooltip.Update(sendData);
83645
83768
 
83646
83769
  return true;
@@ -83681,6 +83804,52 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
83681
83804
 
83682
83805
  this.DialogSelectRect.Update(sendData);
83683
83806
  }
83807
+
83808
+ this.DrawFloatTooltip=function(point,toolTip)
83809
+ {
83810
+ if (!this.FloatTooltip) return;
83811
+
83812
+ this.UpdateFloatTooltip(point, toolTip)
83813
+ }
83814
+
83815
+ this.UpdateFloatTooltip=function(point, toolTip)
83816
+ {
83817
+ if (!this.FloatTooltip) return;
83818
+
83819
+ var sendData=
83820
+ {
83821
+ Tooltip:toolTip,
83822
+ Point:point,
83823
+ Symbol:this.Symbol,
83824
+ Name:this.Name,
83825
+ DataType:1,
83826
+ };
83827
+
83828
+ this.FloatTooltip.Update(sendData);
83829
+ }
83830
+
83831
+ this.UpdateHQFloatTooltip=function(kData)
83832
+ {
83833
+ if (!this.FloatTooltip) return;
83834
+ if (!this.FloatTooltip.IsShow()) return;
83835
+ if (!kData || !IFrameSplitOperator.IsNonEmptyArray(kData.Data)) return;
83836
+
83837
+ var lastItem=kData.Data[kData.Data.length-1];
83838
+ if (!lastItem) return;
83839
+
83840
+ var dataID={ Symbol:kData.Symbol, Date:lastItem.Date, Time:lastItem.Time };
83841
+ if (!this.FloatTooltip.IsEqualHQID(dataID)) return;
83842
+
83843
+ var sendData=
83844
+ {
83845
+ Data:lastItem,
83846
+ Symbol:this.Symbol,
83847
+ Name:this.Name,
83848
+ DataType:2,
83849
+ };
83850
+
83851
+ this.FloatTooltip.Update(sendData);
83852
+ }
83684
83853
  }
83685
83854
 
83686
83855
  //API 返回数据 转化为array[]
@@ -89507,6 +89676,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
89507
89676
  if (!this.ChartCorssCursor) return false;
89508
89677
 
89509
89678
  var minuteItem=null; //{ Type:0=连续交易 1=集合竞价, Data:数据 }
89679
+ var dataType=0; //0=全部更新 2=分时实时数据更新
89510
89680
  if (this.ChartCorssCursor.ClientPos>=0)
89511
89681
  {
89512
89682
  var titlePaint=this.TitlePaint[0];
@@ -89516,21 +89686,32 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
89516
89686
  if ((pointInfo.ClientPos==2 || pointInfo.ClientPos==3 || (pointInfo.ClientPos>=200&& pointInfo.ClientPos<=299) || (pointInfo.ClientPos>=300&& pointInfo.ClientPos<=399)))
89517
89687
  {
89518
89688
  var auctionData=titlePaint.GetCurrentAuctionData();
89519
- if (!auctionData) return;
89689
+ if (!auctionData) return false;
89520
89690
  minuteItem={ Type:1, Data:auctionData };
89521
89691
  }
89522
89692
  else
89523
89693
  {
89524
89694
  var minuteData=titlePaint.GetCurrentKLineData();
89525
- if (!minuteData) return;
89695
+ if (!minuteData) return false;
89526
89696
  minuteItem={ Type:0, Data:minuteData };
89527
89697
  }
89528
89698
  }
89529
-
89699
+ }
89700
+ else //实时数据更新
89701
+ {
89702
+ if (!this.SourceData || !IFrameSplitOperator.IsNonEmptyArray(this.SourceData.Data)) return false;
89703
+ var minuteData=this.SourceData.Data[this.SourceData.Data.length-1];
89704
+
89705
+ var dataID={ Symbol:this.Symbol, Date:minuteData.Date, Time:minuteData.Time };
89706
+ if (!this.DialogTooltip.IsEqualDataID(dataID)) return false;
89707
+
89708
+ minuteItem={ Type:0, Data:minuteData };
89709
+ dataType=2;
89530
89710
  }
89531
89711
 
89532
89712
  var sendData=
89533
89713
  {
89714
+ DataType:dataType,
89534
89715
  ClientPos:this.ChartCorssCursor.ClientPos, //位置
89535
89716
  IsShowCorss:this.ChartCorssCursor.IsShowCorss, //是否显示十字线
89536
89717
  MinItem:minuteItem,
@@ -95963,7 +96144,8 @@ function MinuteTimeStringData()
95963
96144
  {
95964
96145
  this.SHSZ = null; //上海深证交易所时间
95965
96146
  this.BJ=null;
95966
- this.SHO=null; //上海股票期权交易时间
96147
+ this.SHO=null; //上海期权交易时间
96148
+ this.SZO=null; //深证期权交易时间
95967
96149
  this.HK = null; //香港交易所时间
95968
96150
  this.Futures=new Map(); //期货交易时间 key=时间名称 Value=数据
95969
96151
  this.USA = null; //美股交易时间
@@ -96000,12 +96182,18 @@ function MinuteTimeStringData()
96000
96182
  return this.BJ;
96001
96183
  }
96002
96184
 
96003
- this.GetSHO=function()
96185
+ this.GetSHO=function(upperSymbol)
96004
96186
  {
96005
96187
  if (!this.SHO) this.SHO=this.CreateSHOData();
96006
96188
  return this.SHO;
96007
96189
  }
96008
96190
 
96191
+ this.GetSZO=function(upperSymbol)
96192
+ {
96193
+ if (!this.SZO) this.SZO=this.CreateSZOData();
96194
+ return this.SZO;
96195
+ }
96196
+
96009
96197
  this.GetHK=function(upperSymbol)
96010
96198
  {
96011
96199
  if (!this.HK) this.HK = this.CreateHKData();
@@ -96119,6 +96307,17 @@ function MinuteTimeStringData()
96119
96307
  return this.CreateTimeData(TIME_SPLIT);
96120
96308
  }
96121
96309
 
96310
+ this.CreateSZOData=function()
96311
+ {
96312
+ const TIME_SPLIT =
96313
+ [
96314
+ { Start: 930, End: 1129 },
96315
+ { Start: 1300, End: 1500 }
96316
+ ];
96317
+
96318
+ return this.CreateTimeData(TIME_SPLIT);
96319
+ }
96320
+
96122
96321
  this.CreateHKData = function ()
96123
96322
  {
96124
96323
  const TIME_SPLIT =
@@ -96269,7 +96468,8 @@ function MinuteTimeStringData()
96269
96468
  if (!symbol) return this.SHSZ;
96270
96469
 
96271
96470
  var upperSymbol = symbol.toLocaleUpperCase(); //转成大写
96272
- if (MARKET_SUFFIX_NAME.IsSHO(upperSymbol) || MARKET_SUFFIX_NAME.IsSZO(upperSymbol)) return this.GetSHO();
96471
+ if (MARKET_SUFFIX_NAME.IsSHO(upperSymbol)) return this.GetSHO();
96472
+ if (MARKET_SUFFIX_NAME.IsSZO(upperSymbol)) return this.GetSZO();
96273
96473
  if (MARKET_SUFFIX_NAME.IsSH(upperSymbol) || MARKET_SUFFIX_NAME.IsSZ(upperSymbol)) return this.GetSHSZ(upperSymbol);
96274
96474
  if (MARKET_SUFFIX_NAME.IsBJ(upperSymbol)) return this.GetBJ(upperSymbol);
96275
96475
  if (MARKET_SUFFIX_NAME.IsHK(upperSymbol)) return this.GetHK(upperSymbol);
@@ -96754,12 +96954,14 @@ function MinuteCoordinateData()
96754
96954
  else
96755
96955
  {
96756
96956
  var upperSymbol = symbol.toLocaleUpperCase(); //转成大写
96757
- if (MARKET_SUFFIX_NAME.IsSH(upperSymbol) || MARKET_SUFFIX_NAME.IsSZ(upperSymbol) || MARKET_SUFFIX_NAME.IsSHSZIndex(upperSymbol))
96957
+ if (MARKET_SUFFIX_NAME.IsSHO(upperSymbol))
96958
+ data=this.GetSHOData(upperSymbol,width);
96959
+ else if (MARKET_SUFFIX_NAME.IsSZO(upperSymbol))
96960
+ data=this.GetSZOData(upperSymbol,width);
96961
+ else if (MARKET_SUFFIX_NAME.IsSH(upperSymbol) || MARKET_SUFFIX_NAME.IsSZ(upperSymbol) || MARKET_SUFFIX_NAME.IsSHSZIndex(upperSymbol))
96758
96962
  data = this.GetSHSZData(upperSymbol,width);
96759
96963
  else if (MARKET_SUFFIX_NAME.IsBJ(upperSymbol))
96760
96964
  data=this.GetBJData(upperSymbol,width);
96761
- else if (MARKET_SUFFIX_NAME.IsSHO(upperSymbol) || MARKET_SUFFIX_NAME.IsSZO(upperSymbol))
96762
- data=this.GetSHOData(upperSymbol,width);
96763
96965
  else if (MARKET_SUFFIX_NAME.IsHK(upperSymbol))
96764
96966
  data=this.GetHKData(upperSymbol,width);
96765
96967
  else if (MARKET_SUFFIX_NAME.IsTW(upperSymbol))
@@ -96843,6 +97045,12 @@ function MinuteCoordinateData()
96843
97045
  return result;
96844
97046
  }
96845
97047
 
97048
+ this.GetSZOData=function(upperSymbol,width)
97049
+ {
97050
+ var result=SHO_MINUTE_X_COORDINATE;
97051
+ return result;
97052
+ }
97053
+
96846
97054
  this.GetFuturesData = function (upperSymbol,width,timeData)
96847
97055
  {
96848
97056
  var splitData = timeData.GetSplitData(upperSymbol);
@@ -125263,6 +125471,21 @@ function GetBlackStyle()
125263
125471
  TitleBGColor:"rgb(200, 66, 69)",
125264
125472
  },
125265
125473
 
125474
+ FloatTooltip:
125475
+ {
125476
+ BGColor:'rgb(20,20,20)', //背景色
125477
+ BorderColor:'rgb(170,170,170)', //边框颜色
125478
+
125479
+ VolColor:"rgb(255, 185, 15)", //标题成交量
125480
+ AmountColor:"rgb(210,210,210)", //成交金额
125481
+ DateTimeColor:'rgb(210,210,210)',
125482
+ TurnoverRateColor:'rgb(43,54,69)', //换手率
125483
+ PositionColor:"rgb(255,0,255)", //持仓
125484
+
125485
+ TextColor:"rgb(210,210,210)", //数值名称
125486
+ ValueColor:"rgb(210,210,210)", //数值
125487
+ },
125488
+
125266
125489
  DialogSelectRect:
125267
125490
  {
125268
125491
  BGColor:'rgb(20,20,20)', //背景色
@@ -139257,7 +139480,7 @@ function ScrollBarBGChart()
139257
139480
 
139258
139481
 
139259
139482
 
139260
- var HQCHART_VERSION="1.1.14039";
139483
+ var HQCHART_VERSION="1.1.14049";
139261
139484
 
139262
139485
  function PrintHQChartVersion()
139263
139486
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.14039";
8
+ var HQCHART_VERSION="1.1.14049";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -55744,6 +55744,14 @@ HQData.Minute_RequestMinuteData=function(data, callback)
55744
55744
  stockItem.beforeinfo=beforeinfo;
55745
55745
  }
55746
55746
 
55747
+ /* 测试用 这里可以修改数据
55748
+ for(var i=0;i<srcStock.minute.length;++i)
55749
+ {
55750
+ var item=srcStock.minute[i];
55751
+ if (item.amount<1000000) item.amount*=100000;
55752
+ }
55753
+ */
55754
+
55747
55755
  var hqchartData={code:0, stock:[stockItem] };
55748
55756
 
55749
55757
 
@@ -56724,6 +56732,10 @@ HQData.Report_RequestStockData=function(data, callback)
56724
56732
  extendData[6]=(Math.round(Math.random()*60))/100;
56725
56733
  extendData[7]=(Math.round(Math.random()*60))/100;
56726
56734
  extendData[8]=(Math.round(Math.random()*60))/100;
56735
+
56736
+
56737
+ newItem[101]=105.0;
56738
+ newItem[201]=`A-[${HQData.GetRandomTestData(-90,90)}]-B`
56727
56739
 
56728
56740
 
56729
56741
  item.Data=newItem;
@@ -57014,17 +57026,17 @@ HQData.Keyboard_RequestSymbolList=function(data, callback)
57014
57026
  arySymbol.push( { Symbol:"02", Name:"分价表", TypeName:"功能键", Priority:1, Color:"rgb(220,20,60)" ,Data:{ PageName:"分价表", Type:2 }} );
57015
57027
  arySymbol.push( { Symbol:"06", Name:"自选股", TypeName:"功能键", Priority:1 , Color:"rgb(220,20,60)", Data:{ PageName:"自选股", Type:2 }} );
57016
57028
 
57017
- arySymbol.push( { Symbol:"MACD", Name:"平滑异同平均线", TypeName:"指标", Priority:2 , Color:"rgb(0,0,255)", Data:{ Index:"MACD", Type:1 }} );
57018
- arySymbol.push( { Symbol:"RSI", Name:"相对强弱指标", TypeName:"指标", Priority:2, Color:"rgb(0,0,255)",Data:{ Index:"RSI", Type:1 }} );
57019
- arySymbol.push( { Symbol:"MA", Name:"均线", TypeName:"指标", Priority:2, Color:"rgb(0,0,255)" ,Data:{ Index:"MA", Type:1 } } );
57020
- arySymbol.push( { Symbol:"BOLL", Name:"布林线", TypeName:"指标", Priority:2, Color:"rgb(0,0,255)" ,Data:{ Index:"BOLL", Type:1 } } );
57021
- arySymbol.push( { Symbol:"KDJ", Name:"随机指标", TypeName:"指标", Priority:2, Color:"rgb(0,0,255)" ,Data:{ Index:"KDJ", Type:1 } } );
57022
- arySymbol.push( { Symbol:"SKDJ", Name:"慢速随机指标", TypeName:"指标", Priority:2, Color:"rgb(0,0,255)" ,Data:{ Index:"SKDJ", Type:1 } } );
57023
- arySymbol.push( { Symbol:"KD", Name:"随机指标KD", TypeName:"指标", Priority:2, Color:"rgb(0,0,255)" ,Data:{ Index:"KD", Type:1 } } );
57024
- arySymbol.push( { Symbol:"MARSI", Name:"相对强弱平均线", TypeName:"指标", Priority:2, Color:"rgb(0,0,255)" ,Data:{ Index:"MARSI", Type:1 } } );
57025
- arySymbol.push( { Symbol:"VMACD", Name:"量平滑异同平均", TypeName:"指标", Priority:2, Color:"rgb(0,0,255)" ,Data:{ Index:"VMACD", Type:1 } } );
57026
- arySymbol.push( { Symbol:"AMO", Name:"成交金额", TypeName:"指标", Priority:2, Color:"rgb(0,0,255)" ,Data:{ Index:"AMO", Type:1 } } );
57027
- arySymbol.push( { Symbol:"SQJZ", Name:"神奇九转", TypeName:"指标", Priority:2, Color:"rgb(0,0,255)" ,Data:{ Index:"SQJZ", Type:1 } } );
57029
+ arySymbol.push( { Symbol:"MACD", Name:"平滑异同平均线", TypeName:"指标", Priority:2 , Color:"rgb(0,144,255)", Data:{ Index:"MACD", Type:1 }} );
57030
+ arySymbol.push( { Symbol:"RSI", Name:"相对强弱指标", TypeName:"指标", Priority:2, Color:"rgb(0,144,255)",Data:{ Index:"RSI", Type:1 }} );
57031
+ arySymbol.push( { Symbol:"MA", Name:"均线", TypeName:"指标", Priority:2, Color:"rgb(0,144,255)" ,Data:{ Index:"MA", Type:1 } } );
57032
+ arySymbol.push( { Symbol:"BOLL", Name:"布林线", TypeName:"指标", Priority:2, Color:"rgb(0,144,255)" ,Data:{ Index:"BOLL", Type:1 } } );
57033
+ arySymbol.push( { Symbol:"KDJ", Name:"随机指标", TypeName:"指标", Priority:2, Color:"rgb(0,144,255)" ,Data:{ Index:"KDJ", Type:1 } } );
57034
+ arySymbol.push( { Symbol:"SKDJ", Name:"慢速随机指标", TypeName:"指标", Priority:2, Color:"rgb(0,144,255)" ,Data:{ Index:"SKDJ", Type:1 } } );
57035
+ arySymbol.push( { Symbol:"KD", Name:"随机指标KD", TypeName:"指标", Priority:2, Color:"rgb(0,144,255)" ,Data:{ Index:"KD", Type:1 } } );
57036
+ arySymbol.push( { Symbol:"MARSI", Name:"相对强弱平均线", TypeName:"指标", Priority:2, Color:"rgb(0,144,255)" ,Data:{ Index:"MARSI", Type:1 } } );
57037
+ arySymbol.push( { Symbol:"VMACD", Name:"量平滑异同平均", TypeName:"指标", Priority:2, Color:"rgb(0,144,255)" ,Data:{ Index:"VMACD", Type:1 } } );
57038
+ arySymbol.push( { Symbol:"AMO", Name:"成交金额", TypeName:"指标", Priority:2, Color:"rgb(0,144,255)" ,Data:{ Index:"AMO", Type:1 } } );
57039
+ arySymbol.push( { Symbol:"SQJZ", Name:"神奇九转", TypeName:"指标", Priority:2, Color:"rgb(0,144,255)" ,Data:{ Index:"SQJZ", Type:1 } } );
57028
57040
 
57029
57041
  callback(arySymbol);
57030
57042
  }