hqchart 1.1.14258 → 1.1.14269

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.
@@ -55710,6 +55710,10 @@ HQData.NetworkFilter=function(data, callback)
55710
55710
  HQData.Report_RequestVirtualStockData(data, callback); //股票数据 虚拟表格
55711
55711
  break;
55712
55712
 
55713
+ case "APIScriptIndex::ExecuteScript": //测试指标
55714
+ HQData.Report_APIIndex(data, callback);
55715
+ break;
55716
+
55713
55717
  }
55714
55718
  }
55715
55719
 
@@ -57367,6 +57371,269 @@ HQData.GetMulitDayMinuteDataByDate=function(aryDay, aryDate)
57367
57371
  }
57368
57372
 
57369
57373
 
57374
+ HQData.Report_APIIndex=function(data, callback)
57375
+ {
57376
+ var request=data.Request;
57377
+ if (request.Data.indexname=='API-MULTI_POINT')
57378
+ HQData.APIIndex_MULTI_POINT(data, callback);
57379
+ else if (request.Data.indexname=="API-DRAWTEXTREL")
57380
+ HQData.APIIndex_DRAWTEXTREL(data, callback);
57381
+ else if (request.Data.indexname=="API-DRAWCOLORKLINE")
57382
+ HQData.APIIndex_DRAWCOLORKLINE(data, callback);
57383
+ else if (request.Data.indexname=="API-DRAWBAND")
57384
+ HQData.APIIndex_DRAWBAND(data, callback);
57385
+ else if (request.Data.indexname=="API-MULTI_LINE")
57386
+ HQData.APIIndex_MULTI_LINE(data, callback);
57387
+ }
57388
+
57389
+
57390
+ HQData.APIIndex_MULTI_POINT=function(data, callback)
57391
+ {
57392
+ data.PreventDefault=true;
57393
+ var hqchart=data.HQChart;
57394
+ var kData=hqchart.GetKData();
57395
+
57396
+ var pointData=
57397
+ {
57398
+ name:'MULTI_POINT', type:1,
57399
+ Draw:
57400
+ {
57401
+ DrawType:'MULTI_POINT',
57402
+ DrawData:[],
57403
+ }
57404
+ };
57405
+
57406
+ var point=
57407
+ {
57408
+ Color:'rgb(211,211,211)',
57409
+ BGColor:"rgb(255,215,0)",
57410
+ PointRadius:10,
57411
+ LineWidth:2,
57412
+ Point:[ ]
57413
+ };
57414
+
57415
+ for(var i=kData.Data.length-1, j=0; i>=0 && j<6; i-=5, ++j)
57416
+ {
57417
+ var item=kData.Data[i];
57418
+ point.Point.push({Date:item.Date, Time:item.Time, Value:item.Low});
57419
+ }
57420
+
57421
+ pointData.Draw.DrawData.push(point);
57422
+
57423
+
57424
+ var point=
57425
+ {
57426
+ Color:'rgb(148,0,211)',
57427
+ BGColor:"rgb(30,144,255)",
57428
+ PointRadius:5,
57429
+ LineWidth:1,
57430
+ Point:[ ]
57431
+ };
57432
+
57433
+ for(var i=kData.Data.length-3, j=0; i>=0 && j<5; i-=6, ++j)
57434
+ {
57435
+ var item=kData.Data[i];
57436
+ point.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2});
57437
+ }
57438
+
57439
+ pointData.Draw.DrawData.push(point);
57440
+
57441
+ var apiData=
57442
+ {
57443
+ code:0, stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
57444
+ outdata: { date:kData.GetDate(), time:kData.GetTime(), outvar: [pointData] }
57445
+ };
57446
+
57447
+ console.log('[HQData.APIIndex_MULTI_POINT] apiData ', apiData);
57448
+ callback(apiData);
57449
+ }
57450
+
57451
+ HQData.APIIndex_DRAWTEXTREL=function(data, callback)
57452
+ {
57453
+ data.PreventDefault=true;
57454
+ var hqchart=data.HQChart;
57455
+ var kData=hqchart.GetKData();
57456
+
57457
+ var closeLine={ name:'价', type:0, data:kData.GetClose(), color:"rgb(255, 52, 179)" };
57458
+
57459
+ var divText=
57460
+ {
57461
+ name:'DRAWTEXTREL', type:1,
57462
+ Draw:
57463
+ {
57464
+ DrawType:'DRAWTEXTREL',
57465
+ DrawData:
57466
+ {
57467
+ Point: {X: 500, Y: 500 },
57468
+ Text: "!!!!前方高能!!!!"
57469
+ },
57470
+
57471
+ Font:"20px 微软雅黑"
57472
+ },
57473
+ color:"rgb(255,0,0)",
57474
+
57475
+ DrawVAlign:1,
57476
+ DrawAlign:1,
57477
+ }
57478
+
57479
+ var divText2=
57480
+ {
57481
+ name:'DRAWTEXTABS', type:1,
57482
+ Draw:
57483
+ {
57484
+ DrawType:'DRAWTEXTABS',
57485
+ DrawData:
57486
+ {
57487
+ Point: {X: 5, Y: 5 },
57488
+ Text: "后台指标示例"
57489
+ },
57490
+
57491
+ Font:"24px 微软雅黑"
57492
+ },
57493
+ color:"rgb(255,200,0)",
57494
+
57495
+ DrawVAlign:2,
57496
+ }
57497
+
57498
+ var apiData=
57499
+ {
57500
+ code:0,
57501
+ stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
57502
+ outdata: { date:kData.GetDate() ,time:kData.GetTime(), outvar:[closeLine,divText, divText2] }
57503
+ };
57504
+
57505
+ console.log('[HQData::APIIndex_DRAWTEXTREL] apiData ', apiData);
57506
+ callback(apiData);
57507
+ }
57508
+
57509
+
57510
+ HQData.APIIndex_DRAWCOLORKLINE=function(data, callback)
57511
+ {
57512
+ data.PreventDefault=true;
57513
+ var hqchart=data.HQChart;
57514
+ var kData=hqchart.GetKData();
57515
+
57516
+ var aryTestKData=[];
57517
+ var aryTestkData2=[];
57518
+ for(var i=0;i<kData.Data.length;++i)
57519
+ {
57520
+ var item=kData.Data[i];
57521
+ if (i%5==3) aryTestKData[i]={ Open:item.Open, High:item.High, Low:item.Low, Close:item.Close };
57522
+ else aryTestKData[i]=null;
57523
+
57524
+ if (i%13==5) aryTestkData2[i]={ Open:item.Open, High:item.High, Low:item.Low, Close:item.Close };
57525
+ else aryTestkData2[i]=null;
57526
+ }
57527
+
57528
+ var varKLine={ type:1, name:"条件K线", Draw:{ DrawData:aryTestKData, DrawType:'DRAWCOLORKLINE', IsEmptyBar:false, Color:"rgb(100,0,100)"} };
57529
+ var varKLine2={ type:1, name:"条件K线2", Draw:{ DrawData:aryTestkData2, DrawType:'DRAWCOLORKLINE', IsEmptyBar:false, Color:"rgb(255, 140, 0)"} };
57530
+
57531
+ var hqchartData=
57532
+ {
57533
+ outdata:
57534
+ {
57535
+ date:kData.GetDate(), time:kData.GetTime(),
57536
+ outvar:[ varKLine, varKLine2]
57537
+ } ,
57538
+ code:0
57539
+ };
57540
+
57541
+ console.log("[HQData.APIIndex_DRAWCOLORKLINE] DRAWCOLORKLINE=",hqchartData);
57542
+
57543
+ callback(hqchartData);
57544
+ }
57545
+
57546
+
57547
+ HQData.APIIndex_DRAWBAND=function(data, callback)
57548
+ {
57549
+ data.PreventDefault=true;
57550
+ var hqchart=data.HQChart;
57551
+ var kData=hqchart.GetKData();
57552
+
57553
+
57554
+ var bandData=
57555
+ {
57556
+ name:"DRAWBAND", type:1,
57557
+ Draw:
57558
+ {
57559
+ Name:"DRAWBAND",
57560
+ DrawType:"DRAWBAND",
57561
+ DrawData:[],
57562
+ Color:["rgb(220,20,60)","rgb(34,139,34)"]
57563
+ }
57564
+ };
57565
+
57566
+ for(var i=0;i<kData.Data.length;++i)
57567
+ {
57568
+ var kItem=kData.Data[i];
57569
+ bandData.Draw.DrawData[i]={ Value:kItem.Close, Value2:kItem.Open };
57570
+ }
57571
+
57572
+ //var closeLine={ Name:'收', Type:0, Data:aryClose };
57573
+ //var openLine={ Name:'开', Type:0, Data:aryOpen};
57574
+
57575
+ var hqchartData=
57576
+ {
57577
+ outdata:{ date:kData.GetDate(), time:kData.GetTime(), outvar:[ bandData, ] } ,
57578
+ code:0
57579
+ };
57580
+
57581
+ callback(hqchartData);
57582
+ }
57583
+
57584
+
57585
+ HQData.APIIndex_MULTI_LINE=function(data, callback)
57586
+ {
57587
+ data.PreventDefault=true;
57588
+ var hqchart=data.HQChart;
57589
+ var kData=hqchart.GetKData();
57590
+
57591
+ var line3=
57592
+ {
57593
+ name:'MULTI_LINE', type:1,
57594
+
57595
+ Draw:
57596
+ {
57597
+ DrawType:'MULTI_LINE', DrawData:[],
57598
+ LineWidth:5,
57599
+ Arrow:
57600
+ {
57601
+ Start:true, //是否绘制开始箭头 <-
57602
+ End:true, //是否绘制结束箭头 ->
57603
+ Angle:30, //三角斜边一直线夹角
57604
+ Length:10, //三角斜边长度
57605
+ LineWidth:4, //箭头粗细
57606
+ }
57607
+ }, //绘制线段数组
57608
+
57609
+ IsShowTitle:false
57610
+ };
57611
+
57612
+ var point3=
57613
+ {
57614
+ Color:'rgb(255,0,255)',
57615
+ Point:[]
57616
+ }
57617
+
57618
+ for(var i=kData.Data.length-10;i<kData.Data.length;++i)
57619
+ {
57620
+ var item=kData.Data[i];
57621
+ point3.Point.push({Date:item.Date, Time:item.Time, Value:item.High});
57622
+ }
57623
+ line3.Draw.DrawData.push(point3);
57624
+
57625
+ var apiData=
57626
+ {
57627
+ code:0,
57628
+ stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
57629
+ outdata: { date:kData.GetDate(), time:kData.GetTime(), outvar:[line3] }
57630
+ };
57631
+
57632
+ console.log('[HQData.APIIndex_MULTI_LINE] apiData ', apiData);
57633
+ callback(apiData);
57634
+ }
57635
+
57636
+
57370
57637
 
57371
57638
 
57372
57639
  /*暴露外部用的方法*/
@@ -6727,6 +6727,8 @@ var JSCHART_BUTTON_ID=
6727
6727
  INDEX_NAME_BUTTON:43,
6728
6728
 
6729
6729
  ADD_INDEX_WINDOW:44, //增加指标窗口
6730
+
6731
+ CHIP_CLOSE:45, //关闭筹码图
6730
6732
  }
6731
6733
 
6732
6734
  var JSCHART_DATA_FIELD_ID=
@@ -8811,6 +8813,34 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8811
8813
 
8812
8814
  }
8813
8815
 
8816
+ this.TryPhoneClickButton=function(x,y,e)
8817
+ {
8818
+ if (this.TryClickLock || this.TryClickIndexTitle) //指标枷锁区域 , 指标标题点击
8819
+ {
8820
+ if (this.TryClickLock && this.TryClickLock(x, y)) return true;
8821
+ if (this.TryClickIndexTitle && this.TryClickIndexTitle(x,y)) return true;
8822
+ }
8823
+
8824
+ if (this.ClickFrameButton)
8825
+ {
8826
+ var button=this.Frame.PtInButtons(x,y);
8827
+ if (button)
8828
+ {
8829
+ this.ClickFrameButton(button, e);
8830
+ return true;
8831
+ }
8832
+ }
8833
+
8834
+ button=this.PtInExtendChartButtons(x,y);
8835
+ if (button && this.ClickExtendChartButton)
8836
+ {
8837
+ this.ClickExtendChartButton(button, e);
8838
+ return true;
8839
+ }
8840
+
8841
+ return false;
8842
+ }
8843
+
8814
8844
  this.OnTouchStart=function(e)
8815
8845
  {
8816
8846
  if (this.ChartSplashPaint && this.ChartSplashPaint.IsEnableSplash == true) return;
@@ -8833,23 +8863,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8833
8863
  var touches = this.GetToucheData(e, this.IsForceLandscape);
8834
8864
  var pt=this.PointAbsoluteToRelative(touches[0].clientX, touches[0].clientY, true);
8835
8865
 
8836
- if (this.TryClickLock || this.TryClickIndexTitle) //指标枷锁区域 , 指标标题点击
8837
- {
8838
- var x = pt.X;
8839
- var y = pt.Y;
8840
- if (this.TryClickLock && this.TryClickLock(x, y)) return;
8841
- if (this.TryClickIndexTitle && this.TryClickIndexTitle(x,y)) return;
8842
- }
8843
-
8844
- if (this.ClickFrameButton)
8845
- {
8846
- var button=this.Frame.PtInButtons(pt.X,pt.Y);
8847
- if (button)
8848
- {
8849
- this.ClickFrameButton(button, e);
8850
- return;
8851
- }
8852
- }
8866
+ if (this.TryPhoneClickButton(pt.X, pt.Y, e)) return;
8853
8867
 
8854
8868
  if (this.EnableVerticalDrag )
8855
8869
  {
@@ -48730,8 +48744,12 @@ function StockChipPhone()
48730
48744
  //手机端没有按钮
48731
48745
  this.DrawToolbar=function(moveonPoint, mouseStatus) { }
48732
48746
 
48747
+ this.CloseButtonConfig=CloneData(g_JSChartResource.StockChip.PhoneCloseButton);
48748
+
48749
+
48733
48750
  this.Draw=function()
48734
48751
  {
48752
+ this.Buttons=[];
48735
48753
  this.IsHScreen=this.ChartFrame.IsHScreen==true;
48736
48754
  this.PixelRatio=GetDevicePixelRatio();
48737
48755
  if (this.IsHScreen)
@@ -48774,6 +48792,7 @@ function StockChipPhone()
48774
48792
  }
48775
48793
 
48776
48794
  this.DrawBorder();
48795
+ this.DrawCloseButton();
48777
48796
  this.SizeChange=false;
48778
48797
  }
48779
48798
 
@@ -49136,6 +49155,73 @@ function StockChipPhone()
49136
49155
 
49137
49156
  this.Canvas.fill();
49138
49157
  }
49158
+
49159
+ //关闭按钮
49160
+ this.DrawCloseButton=function()
49161
+ {
49162
+ var config=this.CloseButtonConfig;
49163
+ var font=`${config.Size}px ${config.Family}`;
49164
+ var rtButton=null;
49165
+ if (this.IsHScreen)
49166
+ {
49167
+ var border=this.ChartBorder.GetHScreenBorder();
49168
+ var right=border.Left-2;
49169
+ var bottom=border.ChartHeight-2;
49170
+ var left=right-config.Size;
49171
+ var top=bottom-config.Size;
49172
+
49173
+ var rtButton={ Left:left, Top:top, Bottom:bottom, Right:right };
49174
+ rtButton.Width=rtButton.Right-rtButton.Left;
49175
+ rtButton.Height=rtButton.Bottom-rtButton.Top;
49176
+ }
49177
+ else
49178
+ {
49179
+ var border=this.ChartBorder.GetBorder();
49180
+ var top=border.Bottom+2;
49181
+ var bottom=top+config.Size;
49182
+ var right=border.ChartWidth-2;
49183
+ var left=right-config.Size;
49184
+
49185
+ var rtButton={ Left:left, Top:top, Bottom:bottom, Right:right };
49186
+ rtButton.Width=rtButton.Right-rtButton.Left;
49187
+ rtButton.Height=rtButton.Bottom-rtButton.Top;
49188
+ }
49189
+
49190
+ if (!rtButton) return;
49191
+
49192
+ if (config.Border)
49193
+ {
49194
+ if (config.Border.BGColor)
49195
+ {
49196
+ this.Canvas.fillStyle=config.Border.BGColor;
49197
+ this.Canvas.fillRect(rtButton.Left,rtButton.Top,rtButton.Width,rtButton.Height);
49198
+ }
49199
+ }
49200
+
49201
+ this.Canvas.fillStyle=config.Color;
49202
+ this.Canvas.font=font;
49203
+ this.Canvas.textAlign="left";
49204
+ this.Canvas.textBaseline="bottom";
49205
+ if (this.IsHScreen)
49206
+ {
49207
+ var radius=config.Size/2;
49208
+ var x=rtButton.Left+radius, y=rtButton.Bottom-radius;
49209
+ this.Canvas.save();
49210
+ this.Canvas.translate(x,y);
49211
+ this.Canvas.rotate(90 * Math.PI / 180);
49212
+ this.Canvas.fillText(config.Text,-radius,radius);
49213
+ this.Canvas.restore();
49214
+
49215
+ }
49216
+ else
49217
+ {
49218
+ this.Canvas.fillText(config.Text, rtButton.Left, rtButton.Bottom);
49219
+ }
49220
+
49221
+ var btnItem={ ID:JSCHART_BUTTON_ID.CHIP_CLOSE, Rect:rtButton };
49222
+ this.Buttons.push(btnItem);
49223
+
49224
+ }
49139
49225
  }
49140
49226
 
49141
49227
  //窗口分割
@@ -52817,6 +52903,10 @@ IFrameSplitOperator.FormatDateString=function(value,format, languageID)
52817
52903
  {
52818
52904
  case 'MM-DD':
52819
52905
  return IFrameSplitOperator.NumberToString(month) + '-' + IFrameSplitOperator.NumberToString(day);
52906
+ case "MM-DD/W":
52907
+ var date=new Date(year,month-1,day);
52908
+ var week=g_JSChartLocalization.GetText(WEEK_NAME[date.getDay()],languageID);
52909
+ return `${IFrameSplitOperator.NumberToString(month)}-${IFrameSplitOperator.NumberToString(day)}/${week}`;
52820
52910
  case "MM/DD":
52821
52911
  return `${IFrameSplitOperator.NumberToString(month)}/${IFrameSplitOperator.NumberToString(day)}`;
52822
52912
  case "MM/DD/W":
@@ -74370,6 +74460,16 @@ function JSChartResource()
74370
74460
  Size:13*GetDevicePixelRatio(),
74371
74461
  MerginLeft:4
74372
74462
  },
74463
+
74464
+ //手机端
74465
+ PhoneCloseButton:
74466
+ {
74467
+ Family:"iconfont",
74468
+ Size:16*GetDevicePixelRatio(),
74469
+ Text:"\ue60c",
74470
+ Color:"rgb(255,255,255)",
74471
+ Border:{ BGColor:"rgb(169,169,169)" }
74472
+ }
74373
74473
  }
74374
74474
 
74375
74475
  //深度图
@@ -75288,6 +75388,20 @@ function JSChartResource()
75288
75388
  if (item.DefaultButton) T_SetButtonStyle(item.DefaultButton, this.StockChip.DefaultButton);
75289
75389
  if (item.LongButton) T_SetButtonStyle(item.LongButton, this.StockChip.LongButton);
75290
75390
  if (item.RecentButton) T_SetButtonStyle(item.RecentButton, this.StockChip.RecentButton);
75391
+ if (item.CloseButton) T_SetButtonStyle(item.CloseButton, this.StockChip.CloseButton);
75392
+
75393
+ if (item.PhoneCloseButton)
75394
+ {
75395
+ var subItem=item.PhoneCloseButton;
75396
+ if (subItem.Family) this.StockChip.PhoneCloseButton.Family=subItem.Family;
75397
+ if (subItem.Text) this.StockChip.PhoneCloseButton.Text=subItem.Text;
75398
+ if (subItem.Color) this.StockChip.PhoneCloseButton.Color=subItem.Color;
75399
+ if (IFrameSplitOperator.IsNumber(subItem.Size)) this.StockChip.PhoneCloseButton.Size=subItem.Size;
75400
+ if (subItem.Border)
75401
+ {
75402
+ if (subItem.Border.BGColor) this.StockChip.PhoneCloseButton.Border.BGColor=subItem.Border.BGColor;
75403
+ }
75404
+ }
75291
75405
  }
75292
75406
 
75293
75407
  if (style.DepthChart)
@@ -84534,6 +84648,10 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
84534
84648
  button.Chart.ShowType=2;
84535
84649
  this.Draw();
84536
84650
  }
84651
+ else if (button.ID==JSCHART_BUTTON_ID.CHIP_CLOSE)
84652
+ {
84653
+ if (this.DeleteStockChipChart) this.DeleteStockChipChart();
84654
+ }
84537
84655
  }
84538
84656
 
84539
84657
  //成交量分布图数据请求
@@ -92134,6 +92252,9 @@ function KLineChartHScreenContainer(uielement)
92134
92252
  var touches = this.GetToucheData(e, false);
92135
92253
  var pt=this.PointAbsoluteToRelative(touches[0].clientX, touches[0].clientY, true);
92136
92254
 
92255
+ if (this.TryPhoneClickButton(pt.X,pt.Y,e)) return;
92256
+
92257
+ /*
92137
92258
  if (this.TryClickLock || this.TryClickIndexTitle) //指标枷锁区域, 指标标题点击
92138
92259
  {
92139
92260
  var x = pt.X;
@@ -92151,6 +92272,7 @@ function KLineChartHScreenContainer(uielement)
92151
92272
  return;
92152
92273
  }
92153
92274
  }
92275
+ */
92154
92276
 
92155
92277
  if (this.EnableVerticalDrag )
92156
92278
  {
@@ -126044,7 +126166,17 @@ function GetBlackStyle()
126044
126166
  StockChip:
126045
126167
  {
126046
126168
  InfoColor:'rgb(255,255,255)', //文字颜色
126047
- DayInfoColor:'rgb(0,0,0)' //周期颜色内文字颜色
126169
+ DayInfoColor:'rgb(0,0,0)', //周期颜色内文字颜色
126170
+
126171
+ //手机端
126172
+ PhoneCloseButton:
126173
+ {
126174
+ Family:"iconfont",
126175
+ Size:16*GetDevicePixelRatio(),
126176
+ Text:"\ue60c",
126177
+ Color:"rgb(255,255,255)",
126178
+ Border:{ BGColor:"rgb(40,42,44)" }
126179
+ }
126048
126180
  },
126049
126181
 
126050
126182
  //深度图
@@ -150014,7 +150146,7 @@ function HQChartScriptWorker()
150014
150146
 
150015
150147
 
150016
150148
 
150017
- var HQCHART_VERSION="1.1.14257";
150149
+ var HQCHART_VERSION="1.1.14268";
150018
150150
 
150019
150151
  function PrintHQChartVersion()
150020
150152
  {