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.
@@ -55692,6 +55692,10 @@ HQData.NetworkFilter=function(data, callback)
55692
55692
  HQData.Report_RequestVirtualStockData(data, callback); //股票数据 虚拟表格
55693
55693
  break;
55694
55694
 
55695
+ case "APIScriptIndex::ExecuteScript": //测试指标
55696
+ HQData.Report_APIIndex(data, callback);
55697
+ break;
55698
+
55695
55699
  }
55696
55700
  }
55697
55701
 
@@ -57349,3 +57353,266 @@ HQData.GetMulitDayMinuteDataByDate=function(aryDay, aryDate)
57349
57353
  }
57350
57354
 
57351
57355
 
57356
+ HQData.Report_APIIndex=function(data, callback)
57357
+ {
57358
+ var request=data.Request;
57359
+ if (request.Data.indexname=='API-MULTI_POINT')
57360
+ HQData.APIIndex_MULTI_POINT(data, callback);
57361
+ else if (request.Data.indexname=="API-DRAWTEXTREL")
57362
+ HQData.APIIndex_DRAWTEXTREL(data, callback);
57363
+ else if (request.Data.indexname=="API-DRAWCOLORKLINE")
57364
+ HQData.APIIndex_DRAWCOLORKLINE(data, callback);
57365
+ else if (request.Data.indexname=="API-DRAWBAND")
57366
+ HQData.APIIndex_DRAWBAND(data, callback);
57367
+ else if (request.Data.indexname=="API-MULTI_LINE")
57368
+ HQData.APIIndex_MULTI_LINE(data, callback);
57369
+ }
57370
+
57371
+
57372
+ HQData.APIIndex_MULTI_POINT=function(data, callback)
57373
+ {
57374
+ data.PreventDefault=true;
57375
+ var hqchart=data.HQChart;
57376
+ var kData=hqchart.GetKData();
57377
+
57378
+ var pointData=
57379
+ {
57380
+ name:'MULTI_POINT', type:1,
57381
+ Draw:
57382
+ {
57383
+ DrawType:'MULTI_POINT',
57384
+ DrawData:[],
57385
+ }
57386
+ };
57387
+
57388
+ var point=
57389
+ {
57390
+ Color:'rgb(211,211,211)',
57391
+ BGColor:"rgb(255,215,0)",
57392
+ PointRadius:10,
57393
+ LineWidth:2,
57394
+ Point:[ ]
57395
+ };
57396
+
57397
+ for(var i=kData.Data.length-1, j=0; i>=0 && j<6; i-=5, ++j)
57398
+ {
57399
+ var item=kData.Data[i];
57400
+ point.Point.push({Date:item.Date, Time:item.Time, Value:item.Low});
57401
+ }
57402
+
57403
+ pointData.Draw.DrawData.push(point);
57404
+
57405
+
57406
+ var point=
57407
+ {
57408
+ Color:'rgb(148,0,211)',
57409
+ BGColor:"rgb(30,144,255)",
57410
+ PointRadius:5,
57411
+ LineWidth:1,
57412
+ Point:[ ]
57413
+ };
57414
+
57415
+ for(var i=kData.Data.length-3, j=0; i>=0 && j<5; i-=6, ++j)
57416
+ {
57417
+ var item=kData.Data[i];
57418
+ point.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2});
57419
+ }
57420
+
57421
+ pointData.Draw.DrawData.push(point);
57422
+
57423
+ var apiData=
57424
+ {
57425
+ code:0, stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
57426
+ outdata: { date:kData.GetDate(), time:kData.GetTime(), outvar: [pointData] }
57427
+ };
57428
+
57429
+ console.log('[HQData.APIIndex_MULTI_POINT] apiData ', apiData);
57430
+ callback(apiData);
57431
+ }
57432
+
57433
+ HQData.APIIndex_DRAWTEXTREL=function(data, callback)
57434
+ {
57435
+ data.PreventDefault=true;
57436
+ var hqchart=data.HQChart;
57437
+ var kData=hqchart.GetKData();
57438
+
57439
+ var closeLine={ name:'价', type:0, data:kData.GetClose(), color:"rgb(255, 52, 179)" };
57440
+
57441
+ var divText=
57442
+ {
57443
+ name:'DRAWTEXTREL', type:1,
57444
+ Draw:
57445
+ {
57446
+ DrawType:'DRAWTEXTREL',
57447
+ DrawData:
57448
+ {
57449
+ Point: {X: 500, Y: 500 },
57450
+ Text: "!!!!前方高能!!!!"
57451
+ },
57452
+
57453
+ Font:"20px 微软雅黑"
57454
+ },
57455
+ color:"rgb(255,0,0)",
57456
+
57457
+ DrawVAlign:1,
57458
+ DrawAlign:1,
57459
+ }
57460
+
57461
+ var divText2=
57462
+ {
57463
+ name:'DRAWTEXTABS', type:1,
57464
+ Draw:
57465
+ {
57466
+ DrawType:'DRAWTEXTABS',
57467
+ DrawData:
57468
+ {
57469
+ Point: {X: 5, Y: 5 },
57470
+ Text: "后台指标示例"
57471
+ },
57472
+
57473
+ Font:"24px 微软雅黑"
57474
+ },
57475
+ color:"rgb(255,200,0)",
57476
+
57477
+ DrawVAlign:2,
57478
+ }
57479
+
57480
+ var apiData=
57481
+ {
57482
+ code:0,
57483
+ stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
57484
+ outdata: { date:kData.GetDate() ,time:kData.GetTime(), outvar:[closeLine,divText, divText2] }
57485
+ };
57486
+
57487
+ console.log('[HQData::APIIndex_DRAWTEXTREL] apiData ', apiData);
57488
+ callback(apiData);
57489
+ }
57490
+
57491
+
57492
+ HQData.APIIndex_DRAWCOLORKLINE=function(data, callback)
57493
+ {
57494
+ data.PreventDefault=true;
57495
+ var hqchart=data.HQChart;
57496
+ var kData=hqchart.GetKData();
57497
+
57498
+ var aryTestKData=[];
57499
+ var aryTestkData2=[];
57500
+ for(var i=0;i<kData.Data.length;++i)
57501
+ {
57502
+ var item=kData.Data[i];
57503
+ if (i%5==3) aryTestKData[i]={ Open:item.Open, High:item.High, Low:item.Low, Close:item.Close };
57504
+ else aryTestKData[i]=null;
57505
+
57506
+ if (i%13==5) aryTestkData2[i]={ Open:item.Open, High:item.High, Low:item.Low, Close:item.Close };
57507
+ else aryTestkData2[i]=null;
57508
+ }
57509
+
57510
+ var varKLine={ type:1, name:"条件K线", Draw:{ DrawData:aryTestKData, DrawType:'DRAWCOLORKLINE', IsEmptyBar:false, Color:"rgb(100,0,100)"} };
57511
+ var varKLine2={ type:1, name:"条件K线2", Draw:{ DrawData:aryTestkData2, DrawType:'DRAWCOLORKLINE', IsEmptyBar:false, Color:"rgb(255, 140, 0)"} };
57512
+
57513
+ var hqchartData=
57514
+ {
57515
+ outdata:
57516
+ {
57517
+ date:kData.GetDate(), time:kData.GetTime(),
57518
+ outvar:[ varKLine, varKLine2]
57519
+ } ,
57520
+ code:0
57521
+ };
57522
+
57523
+ console.log("[HQData.APIIndex_DRAWCOLORKLINE] DRAWCOLORKLINE=",hqchartData);
57524
+
57525
+ callback(hqchartData);
57526
+ }
57527
+
57528
+
57529
+ HQData.APIIndex_DRAWBAND=function(data, callback)
57530
+ {
57531
+ data.PreventDefault=true;
57532
+ var hqchart=data.HQChart;
57533
+ var kData=hqchart.GetKData();
57534
+
57535
+
57536
+ var bandData=
57537
+ {
57538
+ name:"DRAWBAND", type:1,
57539
+ Draw:
57540
+ {
57541
+ Name:"DRAWBAND",
57542
+ DrawType:"DRAWBAND",
57543
+ DrawData:[],
57544
+ Color:["rgb(220,20,60)","rgb(34,139,34)"]
57545
+ }
57546
+ };
57547
+
57548
+ for(var i=0;i<kData.Data.length;++i)
57549
+ {
57550
+ var kItem=kData.Data[i];
57551
+ bandData.Draw.DrawData[i]={ Value:kItem.Close, Value2:kItem.Open };
57552
+ }
57553
+
57554
+ //var closeLine={ Name:'收', Type:0, Data:aryClose };
57555
+ //var openLine={ Name:'开', Type:0, Data:aryOpen};
57556
+
57557
+ var hqchartData=
57558
+ {
57559
+ outdata:{ date:kData.GetDate(), time:kData.GetTime(), outvar:[ bandData, ] } ,
57560
+ code:0
57561
+ };
57562
+
57563
+ callback(hqchartData);
57564
+ }
57565
+
57566
+
57567
+ HQData.APIIndex_MULTI_LINE=function(data, callback)
57568
+ {
57569
+ data.PreventDefault=true;
57570
+ var hqchart=data.HQChart;
57571
+ var kData=hqchart.GetKData();
57572
+
57573
+ var line3=
57574
+ {
57575
+ name:'MULTI_LINE', type:1,
57576
+
57577
+ Draw:
57578
+ {
57579
+ DrawType:'MULTI_LINE', DrawData:[],
57580
+ LineWidth:5,
57581
+ Arrow:
57582
+ {
57583
+ Start:true, //是否绘制开始箭头 <-
57584
+ End:true, //是否绘制结束箭头 ->
57585
+ Angle:30, //三角斜边一直线夹角
57586
+ Length:10, //三角斜边长度
57587
+ LineWidth:4, //箭头粗细
57588
+ }
57589
+ }, //绘制线段数组
57590
+
57591
+ IsShowTitle:false
57592
+ };
57593
+
57594
+ var point3=
57595
+ {
57596
+ Color:'rgb(255,0,255)',
57597
+ Point:[]
57598
+ }
57599
+
57600
+ for(var i=kData.Data.length-10;i<kData.Data.length;++i)
57601
+ {
57602
+ var item=kData.Data[i];
57603
+ point3.Point.push({Date:item.Date, Time:item.Time, Value:item.High});
57604
+ }
57605
+ line3.Draw.DrawData.push(point3);
57606
+
57607
+ var apiData=
57608
+ {
57609
+ code:0,
57610
+ stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
57611
+ outdata: { date:kData.GetDate(), time:kData.GetTime(), outvar:[line3] }
57612
+ };
57613
+
57614
+ console.log('[HQData.APIIndex_MULTI_LINE] apiData ', apiData);
57615
+ callback(apiData);
57616
+ }
57617
+
57618
+
@@ -2758,6 +2758,8 @@ var JSCHART_BUTTON_ID=
2758
2758
  INDEX_NAME_BUTTON:43,
2759
2759
 
2760
2760
  ADD_INDEX_WINDOW:44, //增加指标窗口
2761
+
2762
+ CHIP_CLOSE:45, //关闭筹码图
2761
2763
  }
2762
2764
 
2763
2765
  var JSCHART_DATA_FIELD_ID=
@@ -4842,6 +4844,34 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
4842
4844
 
4843
4845
  }
4844
4846
 
4847
+ this.TryPhoneClickButton=function(x,y,e)
4848
+ {
4849
+ if (this.TryClickLock || this.TryClickIndexTitle) //指标枷锁区域 , 指标标题点击
4850
+ {
4851
+ if (this.TryClickLock && this.TryClickLock(x, y)) return true;
4852
+ if (this.TryClickIndexTitle && this.TryClickIndexTitle(x,y)) return true;
4853
+ }
4854
+
4855
+ if (this.ClickFrameButton)
4856
+ {
4857
+ var button=this.Frame.PtInButtons(x,y);
4858
+ if (button)
4859
+ {
4860
+ this.ClickFrameButton(button, e);
4861
+ return true;
4862
+ }
4863
+ }
4864
+
4865
+ button=this.PtInExtendChartButtons(x,y);
4866
+ if (button && this.ClickExtendChartButton)
4867
+ {
4868
+ this.ClickExtendChartButton(button, e);
4869
+ return true;
4870
+ }
4871
+
4872
+ return false;
4873
+ }
4874
+
4845
4875
  this.OnTouchStart=function(e)
4846
4876
  {
4847
4877
  if (this.ChartSplashPaint && this.ChartSplashPaint.IsEnableSplash == true) return;
@@ -4864,23 +4894,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
4864
4894
  var touches = this.GetToucheData(e, this.IsForceLandscape);
4865
4895
  var pt=this.PointAbsoluteToRelative(touches[0].clientX, touches[0].clientY, true);
4866
4896
 
4867
- if (this.TryClickLock || this.TryClickIndexTitle) //指标枷锁区域 , 指标标题点击
4868
- {
4869
- var x = pt.X;
4870
- var y = pt.Y;
4871
- if (this.TryClickLock && this.TryClickLock(x, y)) return;
4872
- if (this.TryClickIndexTitle && this.TryClickIndexTitle(x,y)) return;
4873
- }
4874
-
4875
- if (this.ClickFrameButton)
4876
- {
4877
- var button=this.Frame.PtInButtons(pt.X,pt.Y);
4878
- if (button)
4879
- {
4880
- this.ClickFrameButton(button, e);
4881
- return;
4882
- }
4883
- }
4897
+ if (this.TryPhoneClickButton(pt.X, pt.Y, e)) return;
4884
4898
 
4885
4899
  if (this.EnableVerticalDrag )
4886
4900
  {
@@ -44761,8 +44775,12 @@ function StockChipPhone()
44761
44775
  //手机端没有按钮
44762
44776
  this.DrawToolbar=function(moveonPoint, mouseStatus) { }
44763
44777
 
44778
+ this.CloseButtonConfig=CloneData(g_JSChartResource.StockChip.PhoneCloseButton);
44779
+
44780
+
44764
44781
  this.Draw=function()
44765
44782
  {
44783
+ this.Buttons=[];
44766
44784
  this.IsHScreen=this.ChartFrame.IsHScreen==true;
44767
44785
  this.PixelRatio=GetDevicePixelRatio();
44768
44786
  if (this.IsHScreen)
@@ -44805,6 +44823,7 @@ function StockChipPhone()
44805
44823
  }
44806
44824
 
44807
44825
  this.DrawBorder();
44826
+ this.DrawCloseButton();
44808
44827
  this.SizeChange=false;
44809
44828
  }
44810
44829
 
@@ -45167,6 +45186,73 @@ function StockChipPhone()
45167
45186
 
45168
45187
  this.Canvas.fill();
45169
45188
  }
45189
+
45190
+ //关闭按钮
45191
+ this.DrawCloseButton=function()
45192
+ {
45193
+ var config=this.CloseButtonConfig;
45194
+ var font=`${config.Size}px ${config.Family}`;
45195
+ var rtButton=null;
45196
+ if (this.IsHScreen)
45197
+ {
45198
+ var border=this.ChartBorder.GetHScreenBorder();
45199
+ var right=border.Left-2;
45200
+ var bottom=border.ChartHeight-2;
45201
+ var left=right-config.Size;
45202
+ var top=bottom-config.Size;
45203
+
45204
+ var rtButton={ Left:left, Top:top, Bottom:bottom, Right:right };
45205
+ rtButton.Width=rtButton.Right-rtButton.Left;
45206
+ rtButton.Height=rtButton.Bottom-rtButton.Top;
45207
+ }
45208
+ else
45209
+ {
45210
+ var border=this.ChartBorder.GetBorder();
45211
+ var top=border.Bottom+2;
45212
+ var bottom=top+config.Size;
45213
+ var right=border.ChartWidth-2;
45214
+ var left=right-config.Size;
45215
+
45216
+ var rtButton={ Left:left, Top:top, Bottom:bottom, Right:right };
45217
+ rtButton.Width=rtButton.Right-rtButton.Left;
45218
+ rtButton.Height=rtButton.Bottom-rtButton.Top;
45219
+ }
45220
+
45221
+ if (!rtButton) return;
45222
+
45223
+ if (config.Border)
45224
+ {
45225
+ if (config.Border.BGColor)
45226
+ {
45227
+ this.Canvas.fillStyle=config.Border.BGColor;
45228
+ this.Canvas.fillRect(rtButton.Left,rtButton.Top,rtButton.Width,rtButton.Height);
45229
+ }
45230
+ }
45231
+
45232
+ this.Canvas.fillStyle=config.Color;
45233
+ this.Canvas.font=font;
45234
+ this.Canvas.textAlign="left";
45235
+ this.Canvas.textBaseline="bottom";
45236
+ if (this.IsHScreen)
45237
+ {
45238
+ var radius=config.Size/2;
45239
+ var x=rtButton.Left+radius, y=rtButton.Bottom-radius;
45240
+ this.Canvas.save();
45241
+ this.Canvas.translate(x,y);
45242
+ this.Canvas.rotate(90 * Math.PI / 180);
45243
+ this.Canvas.fillText(config.Text,-radius,radius);
45244
+ this.Canvas.restore();
45245
+
45246
+ }
45247
+ else
45248
+ {
45249
+ this.Canvas.fillText(config.Text, rtButton.Left, rtButton.Bottom);
45250
+ }
45251
+
45252
+ var btnItem={ ID:JSCHART_BUTTON_ID.CHIP_CLOSE, Rect:rtButton };
45253
+ this.Buttons.push(btnItem);
45254
+
45255
+ }
45170
45256
  }
45171
45257
 
45172
45258
  //窗口分割
@@ -48848,6 +48934,10 @@ IFrameSplitOperator.FormatDateString=function(value,format, languageID)
48848
48934
  {
48849
48935
  case 'MM-DD':
48850
48936
  return IFrameSplitOperator.NumberToString(month) + '-' + IFrameSplitOperator.NumberToString(day);
48937
+ case "MM-DD/W":
48938
+ var date=new Date(year,month-1,day);
48939
+ var week=g_JSChartLocalization.GetText(WEEK_NAME[date.getDay()],languageID);
48940
+ return `${IFrameSplitOperator.NumberToString(month)}-${IFrameSplitOperator.NumberToString(day)}/${week}`;
48851
48941
  case "MM/DD":
48852
48942
  return `${IFrameSplitOperator.NumberToString(month)}/${IFrameSplitOperator.NumberToString(day)}`;
48853
48943
  case "MM/DD/W":
@@ -70401,6 +70491,16 @@ function JSChartResource()
70401
70491
  Size:13*GetDevicePixelRatio(),
70402
70492
  MerginLeft:4
70403
70493
  },
70494
+
70495
+ //手机端
70496
+ PhoneCloseButton:
70497
+ {
70498
+ Family:"iconfont",
70499
+ Size:16*GetDevicePixelRatio(),
70500
+ Text:"\ue60c",
70501
+ Color:"rgb(255,255,255)",
70502
+ Border:{ BGColor:"rgb(169,169,169)" }
70503
+ }
70404
70504
  }
70405
70505
 
70406
70506
  //深度图
@@ -71319,6 +71419,20 @@ function JSChartResource()
71319
71419
  if (item.DefaultButton) T_SetButtonStyle(item.DefaultButton, this.StockChip.DefaultButton);
71320
71420
  if (item.LongButton) T_SetButtonStyle(item.LongButton, this.StockChip.LongButton);
71321
71421
  if (item.RecentButton) T_SetButtonStyle(item.RecentButton, this.StockChip.RecentButton);
71422
+ if (item.CloseButton) T_SetButtonStyle(item.CloseButton, this.StockChip.CloseButton);
71423
+
71424
+ if (item.PhoneCloseButton)
71425
+ {
71426
+ var subItem=item.PhoneCloseButton;
71427
+ if (subItem.Family) this.StockChip.PhoneCloseButton.Family=subItem.Family;
71428
+ if (subItem.Text) this.StockChip.PhoneCloseButton.Text=subItem.Text;
71429
+ if (subItem.Color) this.StockChip.PhoneCloseButton.Color=subItem.Color;
71430
+ if (IFrameSplitOperator.IsNumber(subItem.Size)) this.StockChip.PhoneCloseButton.Size=subItem.Size;
71431
+ if (subItem.Border)
71432
+ {
71433
+ if (subItem.Border.BGColor) this.StockChip.PhoneCloseButton.Border.BGColor=subItem.Border.BGColor;
71434
+ }
71435
+ }
71322
71436
  }
71323
71437
 
71324
71438
  if (style.DepthChart)
@@ -80565,6 +80679,10 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
80565
80679
  button.Chart.ShowType=2;
80566
80680
  this.Draw();
80567
80681
  }
80682
+ else if (button.ID==JSCHART_BUTTON_ID.CHIP_CLOSE)
80683
+ {
80684
+ if (this.DeleteStockChipChart) this.DeleteStockChipChart();
80685
+ }
80568
80686
  }
80569
80687
 
80570
80688
  //成交量分布图数据请求
@@ -88165,6 +88283,9 @@ function KLineChartHScreenContainer(uielement)
88165
88283
  var touches = this.GetToucheData(e, false);
88166
88284
  var pt=this.PointAbsoluteToRelative(touches[0].clientX, touches[0].clientY, true);
88167
88285
 
88286
+ if (this.TryPhoneClickButton(pt.X,pt.Y,e)) return;
88287
+
88288
+ /*
88168
88289
  if (this.TryClickLock || this.TryClickIndexTitle) //指标枷锁区域, 指标标题点击
88169
88290
  {
88170
88291
  var x = pt.X;
@@ -88182,6 +88303,7 @@ function KLineChartHScreenContainer(uielement)
88182
88303
  return;
88183
88304
  }
88184
88305
  }
88306
+ */
88185
88307
 
88186
88308
  if (this.EnableVerticalDrag )
88187
88309
  {
@@ -498,7 +498,17 @@ function GetBlackStyle()
498
498
  StockChip:
499
499
  {
500
500
  InfoColor:'rgb(255,255,255)', //文字颜色
501
- DayInfoColor:'rgb(0,0,0)' //周期颜色内文字颜色
501
+ DayInfoColor:'rgb(0,0,0)', //周期颜色内文字颜色
502
+
503
+ //手机端
504
+ PhoneCloseButton:
505
+ {
506
+ Family:"iconfont",
507
+ Size:16*GetDevicePixelRatio(),
508
+ Text:"\ue60c",
509
+ Color:"rgb(255,255,255)",
510
+ Border:{ BGColor:"rgb(40,42,44)" }
511
+ }
502
512
  },
503
513
 
504
514
  //深度图