hqchart 1.1.15106 → 1.1.15121

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.15106",
3
+ "version": "1.1.15121",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -35,7 +35,7 @@ function JSDialogSearchIndex()
35
35
 
36
36
  this.MaxRowCount=30; //行
37
37
  this.ColCount=3; //列
38
- this.MaxGroupCount=10; //分类最多个数
38
+ this.MaxGroupCount=20; //分类最多个数
39
39
 
40
40
  this.AryData=[];
41
41
  this.AryGroup=[]; //分类
@@ -316,12 +316,14 @@ function JSDialogSearchIndex()
316
316
  else if (indexItem.Type==1) //自定义脚本指标
317
317
  {
318
318
  var indexData={ ID:indexItem.ID, Name:indexItem.Name, Script:indexItem.Script, Args:indexItem.Args };
319
+ if (indexItem.Lock) indexData.Lock=indexItem.Lock;
319
320
  this.HQChart.ChangeScriptIndex(this.OpData.WindowIndex, indexData);
320
321
  }
321
322
  else if (indexItem.Type==2) //api指标
322
323
  {
323
- var indedData={ API: { ID:indexItem.ID, Name:indexItem.Name, Args:indexItem.Args, Url:'local'} };
324
- this.HQChart.ChangeAPIIndex(this.OpData.WindowIndex, indedData);
324
+ var indexData={ API: { ID:indexItem.ID, Name:indexItem.Name, Args:indexItem.Args, Url:'local'} };
325
+ if (indexItem.Lock) indexData.Lock=indexItem.Lock;
326
+ this.HQChart.ChangeAPIIndex(this.OpData.WindowIndex, indexData);
325
327
  }
326
328
  else if (indexItem.Type==3) //指标模板
327
329
  {
@@ -341,11 +343,13 @@ function JSDialogSearchIndex()
341
343
  else if (indexItem.Type==1) //自定义脚本指标
342
344
  {
343
345
  var obj={ WindowIndex:this.OpData.WindowIndex, IndexName:indexItem.ID, Name:indexItem.Name, Script:indexItem.Script, Args:indexItem.Args };
346
+ if (indexItem.Lock) obj.Lock=indexItem.Lock;
344
347
  this.HQChart.AddOverlayIndex(obj);
345
348
  }
346
349
  else if (indexItem.Type==2) //api指标
347
350
  {
348
351
  var obj={ WindowIndex:this.OpData.WindowIndex, API: { ID:indexItem.ID, Name:indexItem.Name, Args:indexItem.Args, Url:'local'} };
352
+ if (indexItem.Lock) obj.Lock=indexItem.Lock;
349
353
  this.HQChart.AddOverlayIndex(obj);
350
354
  }
351
355
  else if (indexItem.Type==3) //指标模板
@@ -372,6 +376,7 @@ function JSDialogSearchIndex()
372
376
  else if (indexItem.Type==2) //api指标
373
377
  {
374
378
  var indexData={ API: { ID:indexItem.ID, Name:indexItem.Name, Args:indexItem.Args, Url:'local'} };
379
+ if (indexItem.Lock) indexData.Lock=indexItem.Lock;
375
380
  this.HQChart.AddAPIIndexWindow(indexData, this.OpData);
376
381
  }
377
382
  else if (indexItem.Type==3) //指标模板
@@ -795,8 +800,21 @@ JSDialogSearchIndex.GetDefaultIndexData=function()
795
800
  Group:{ ID:"自定义", Name:"自定义"} ,
796
801
  AryIndex:
797
802
  [
798
- { Name:"收盘线(后台指标)", ID:"CLOSE_LINE", Type:2, Args:null },
799
- { Name:"高低均价(自定义脚本)", ID:"HIGH_LOW_AV", Type:1, Args:null , Script:"均价:(H+L)/2;高:H;低:L;", Args:[ { Name:'N', Value:20}, { Name:'M', Value:6}]},
803
+ { Name:"收盘线(后台指标)", ID:"API-DRAWTEXTREL", Type:2, Args:null },
804
+ { Name:"高低均价(自定义脚本)", ID:"HIGH_LOW_AV", Type:1, Script:"均价:(H+L)/2;高:H;低:L;", Args:[ { Name:'N', Value:20}, { Name:'M', Value:6}]},
805
+ { Name:"指标异常(后台指标)", ID:"API_ERRORMESSAGE", Type:2, Args:null,}
806
+ ]
807
+ },
808
+ {
809
+ Group:{ ID:"付费指标", Name:"付费指标"} ,
810
+ AryIndex:
811
+ [
812
+ { Name:"面积图(后台指标)", ID:"API-DRAWBAND", Type:2, Args:null, Lock:{ IsLocked:true } },
813
+ {
814
+ Name:"波段量能跟庄-波段量能", ID:"TEST_INDEX_4AE0_1", Type:1, Args:null,
815
+ Script:TEST_INDEX_4AE0_1,
816
+ Lock:{ IsLocked:true }
817
+ }
800
818
  ]
801
819
  },
802
820
  {
@@ -1296,5 +1314,24 @@ function JSDialogModifyIndexParam()
1296
1314
  }
1297
1315
 
1298
1316
 
1317
+ /////////////////////////////////////////////////////////////////////////////////////////////
1318
+ //测试指标
1319
+
1320
+ var TEST_INDEX_4AE0_1=`能量:=SQRT(VOL)*(((C-(H+L)/2))/((H+L)/2));
1321
+ 平滑能量:=EMA(能量,16);
1322
+ 能量惯性:EMA(平滑能量,16);
1323
+ DRAWICON(能量惯性>0 AND REF(能量惯性,1)<0,0,1);
1324
+ STICKLINE(能量惯性>=0,(能量惯性-能量惯性*0.05),(能量惯性-能量惯性*0.15),3,0), COLOR0000CC;
1325
+ STICKLINE(能量惯性>=0,(能量惯性-能量惯性*0.2),(能量惯性-能量惯性*0.35),3,0), COLOR0066FF;
1326
+ STICKLINE(能量惯性>=0,(能量惯性-能量惯性*0.4),(能量惯性-能量惯性*0.55),3,0),COLOR0099FF;
1327
+ STICKLINE(能量惯性>=0,(能量惯性-能量惯性*0.6),(能量惯性-能量惯性*0.75),3,0), COLOR00CCFF;
1328
+ STICKLINE(能量惯性>=0,(能量惯性-能量惯性*0.8),(能量惯性-能量惯性*0.95),3,0), COLOR00FFFF;
1329
+ STICKLINE(能量惯性<0,(能量惯性-能量惯性*0.05),(能量惯性-能量惯性*0.15),3,0), COLORFF3300;
1330
+ STICKLINE(能量惯性<0,(能量惯性-能量惯性*0.2),(能量惯性-能量惯性*0.35),3,0), COLORFF6600;
1331
+ STICKLINE(能量惯性<0,(能量惯性-能量惯性*0.4),(能量惯性-能量惯性*0.55),3,0), COLORFF9900;
1332
+ STICKLINE(能量惯性<0,(能量惯性-能量惯性*0.6),(能量惯性-能量惯性*0.75),3,0), COLORFFCC00;
1333
+ STICKLINE(能量惯性<0,(能量惯性-能量惯性*0.8),(能量惯性-能量惯性*0.95),3,0), COLORFFFF00;`
1334
+
1335
+
1299
1336
 
1300
1337
 
@@ -55865,7 +55865,7 @@ HQData.Minute_RequestMinuteData=function(data, callback)
55865
55865
  }
55866
55866
 
55867
55867
  //盘中
55868
- stockItem.minute.length=50;
55868
+ //stockItem.minute.length=50;
55869
55869
  //测试用 这里可以修改数据
55870
55870
  //var lastItem=srcStock.minute[srcStock.minute.length-1];
55871
55871
  //lastItem.price+=Math.ceil(Math.random()*10)/1000*lastItem.price;
@@ -57481,6 +57481,9 @@ HQData.Report_RequestStockData=function(data, callback)
57481
57481
  var testDate=new Date();
57482
57482
  testDate.setHours(testDate.getHours() + i*2)
57483
57483
  newItem[401]={ DateTime:testDate } ;
57484
+
57485
+
57486
+ newItem[JSCHART_DATA_FIELD_ID.REPORT_EXTENDDATA]={ Value:"ddddd" };
57484
57487
 
57485
57488
 
57486
57489
  item.Data=newItem;
@@ -58198,6 +58201,8 @@ HQData.Report_APIIndex=function(data, callback)
58198
58201
  HQData.APIIndex_SCATTER_PLOT_V2(data, callback);
58199
58202
  else if (request.Data.indexname=="API_KLINE_TABLE")
58200
58203
  HQData.APIIndex_KLINE_TABLE(data, callback);
58204
+ else if (request.Data.indexname=="API_MINUTE_TABLE")
58205
+ HQData.APIIndex_MINUTE_TABLE(data, callback);
58201
58206
  else if (request.Data.indexname=="API_DRAWSVG")
58202
58207
  HQData.APIIndex_DRAWSVG(data, callback);
58203
58208
  else if (request.Data.indexname=="API_BASELINE_BAR")
@@ -58205,6 +58210,9 @@ HQData.Report_APIIndex=function(data, callback)
58205
58210
  else if (request.Data.indexname=="API_VERTLINE")
58206
58211
  HQData.APIIndex_VERTLINE(data, callback);
58207
58212
 
58213
+ else if (request.Data.indexname=="API_ERRORMESSAGE")
58214
+ HQData.APIIndex_ErrorMessage(data, callback);
58215
+
58208
58216
 
58209
58217
  //付费图形
58210
58218
  else if (request.Data.indexname=="API_MARK_AREA_V2")
@@ -59400,6 +59408,114 @@ HQData.APIIndex_KLINE_TABLE=function(data, callback)
59400
59408
  }
59401
59409
 
59402
59410
 
59411
+ HQData.APIIndex_MINUTE_TABLE=function(data, callback)
59412
+ {
59413
+ data.PreventDefault=true;
59414
+ var hqchart=data.HQChart;
59415
+ var kData=data.HQChart.GetKData(); //hqchart图形的分钟数据
59416
+
59417
+ var tableData=
59418
+ {
59419
+ name:'JS_CHART_MINUTETABLE_9DFC', type:1,
59420
+ Draw:
59421
+ {
59422
+ DrawType:'JS_CHART_MINUTETABLE_9DFC',
59423
+ DrawData:[ ] , //数据 [ [ { Text, Color: BGColor }, ...... ], [],]
59424
+
59425
+ Config:
59426
+ {
59427
+ //BGColor:"rgba(238,232,205,0.5)",
59428
+ //BorderColor:"rgb(220,220,220)",
59429
+ TextColor:"rgb(250,250,250)",
59430
+ ItemMergin:{ Left:1, Right:1, Top:0, Bottom:0, YOffset:0 },
59431
+ TextFont:{ Family:'微软雅黑' , FontMaxSize:14*GetDevicePixelRatio(), },
59432
+ Style:1,
59433
+ CellWidth:18*GetDevicePixelRatio(),
59434
+ CellHeight:14*GetDevicePixelRatio(),
59435
+ RowCount:2,
59436
+ LineColor:"rgb(5,105,225)",
59437
+ LineDash:[5*GetDevicePixelRatio(),5*GetDevicePixelRatio()],
59438
+ }
59439
+ },
59440
+
59441
+ };
59442
+
59443
+ for(var i=0;i<kData.Data.length;++i)
59444
+ {
59445
+ var kItem=kData.Data[i];
59446
+
59447
+ //一列数据
59448
+ var colItem={ Date:kItem.Date, Time:kItem.Time, Data:[ ] };
59449
+
59450
+ if (kItem.Time==1030 || kItem.Time==1035)
59451
+ {
59452
+ colItem.Data[0]=
59453
+ {
59454
+ Text:"多", Color:"rgb(250,250,250)", BGColor:'rgb(250,0,0)', TextAlign:"center",
59455
+ Tooltip:
59456
+ {
59457
+ AryText:
59458
+ [
59459
+ {Title:"日期", Text:`${kItem.Date} ${kItem.Time}`},
59460
+ {Title:"买入价", Text:`${kItem.Close.toFixed(2)}`, TextColor:"rgb(250,0,0)"},
59461
+ {Title:"数量", Text:`${HQData.GetRandomTestData(100,400).toFixed(0)}`,TextColor:"rgb(255,165,0)" },
59462
+ ]
59463
+ }
59464
+ };
59465
+ }
59466
+ else if (kItem.Time==1033 || kItem.Time==1025)
59467
+ {
59468
+ colItem.Data[0]=
59469
+ {
59470
+ Text:"空", Color:"rgb(250,250,250)", BGColor:'rgb(0,128,0)', TextAlign:"center",
59471
+ Tooltip:
59472
+ {
59473
+ AryText:
59474
+ [
59475
+ {Title:"日期", Text:`${kItem.Date} ${kItem.Time}`},
59476
+ {Title:"买入价", Text:`${kItem.Close.toFixed(2)}`, TextColor:"rgb(250,0,0)"},
59477
+ {Title:"数量", Text:`${HQData.GetRandomTestData(100,400).toFixed(0)}`,TextColor:"rgb(255,165,0)" },
59478
+ ]
59479
+ }
59480
+ };
59481
+ }
59482
+ else if (kItem.Time==1028 || kItem.Time==1032 || kItem.Time==1034 )
59483
+ {
59484
+ colItem.Data[1]=
59485
+ {
59486
+ Text:"平", Color:"rgb(250,250,250)", BGColor:'rgb(255,165,0)', TextAlign:"center",
59487
+ Tooltip:
59488
+ {
59489
+ AryText:
59490
+ [
59491
+ {Title:"日期", Text:`${kItem.Date} ${kItem.Time}`},
59492
+ {Title:"卖入价", Text:`${kItem.Close.toFixed(2)}`, TextColor:"rgb(34,139,34)"},
59493
+ {Title:"数量", Text:`${HQData.GetRandomTestData(100,400).toFixed(0)}`,TextColor:"rgb(255,165,0)" },
59494
+ ]
59495
+ }
59496
+ };
59497
+ }
59498
+ else
59499
+ {
59500
+ continue;
59501
+ }
59502
+
59503
+
59504
+ tableData.Draw.DrawData.push(colItem);
59505
+ }
59506
+
59507
+ var apiData=
59508
+ {
59509
+ code:0,
59510
+ stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
59511
+ outdata: { date:kData.GetDate(), time:kData.GetTime(), outvar:[tableData] }
59512
+ };
59513
+
59514
+ console.log('[KLineChart::APIIndex_KLINE_TABLE2] apiData ', apiData);
59515
+ callback(apiData);
59516
+ }
59517
+
59518
+
59403
59519
  HQData.APIIndex_DRAWSVG=function(data, callback)
59404
59520
  {
59405
59521
  data.PreventDefault=true;
@@ -59788,3 +59904,11 @@ HQData.API_CHART_AREA_TEXT=function(data, callback)
59788
59904
  }
59789
59905
 
59790
59906
 
59907
+ HQData.APIIndex_ErrorMessage=function(data, callback)
59908
+ {
59909
+ var hqchartData={ outdata:{ date:null, time:null, outvar:[] } , code:0};
59910
+ hqchartData.error={ message:"错误提示信息" };
59911
+ callback(hqchartData);
59912
+ }
59913
+
59914
+
@@ -20534,7 +20534,7 @@ function ScriptIndex(name,script,args,option)
20534
20534
  Name:hqChart.Name,
20535
20535
  Data:hisData,
20536
20536
  SourceData:hqChart.SourceData,
20537
- Callback:this.RecvResultData, CallbackParam:param,
20537
+ Callback:(arg1, arg2)=>{ this.RecvResultData(arg1, arg2); }, CallbackParam:param,
20538
20538
  Async:true,
20539
20539
  MaxRequestDataCount:hqChart.MaxRequestDataCount,
20540
20540
  MaxRequestMinuteDayCount:hqChart.MaxRequestMinuteDayCount,
@@ -23223,6 +23223,18 @@ function OverlayScriptIndex(name,script,args,option)
23223
23223
  param.Self.OutVar=outVar;
23224
23224
  param.Self.BindData(hqChart,windowIndex,hisData);
23225
23225
 
23226
+ var frame=this.OverlayIndex.Frame.Frame;
23227
+ if (this.IsLocked==false) //不上锁
23228
+ {
23229
+ frame.SetLock(null);
23230
+ }
23231
+ else //上锁
23232
+ {
23233
+ let lockData={ IsLocked:true,Callback:this.LockCallback,IndexName:this.Name ,ID:this.LockID, IndexID:this.ID,
23234
+ BG:this.LockBG,Text:this.LockText,TextColor:this.LockTextColor, Font:this.LockFont, Count:this.LockCount, MinWidth:this.LockMinWidth };
23235
+ frame.SetLock(lockData);
23236
+ }
23237
+
23226
23238
  param.HQChart.UpdataDataoffset(); //更新数据偏移
23227
23239
  param.HQChart.UpdateFrameMaxMin(); //调整坐标最大 最小值
23228
23240
 
@@ -25083,20 +25095,20 @@ function APIScriptIndex(name,script,args,option, isOverlay)
25083
25095
  }
25084
25096
  this.BindData(hqChart,windowIndex,hisData);
25085
25097
 
25086
- if (!this.IsOverlayIndex)
25098
+ var frame=hqChart.Frame.SubFrame[windowIndex].Frame;
25099
+ if (this.IsOverlayIndex) frame=this.OverlayIndex.Frame.Frame;
25100
+
25101
+ if (this.IsLocked==false) //不上锁
25087
25102
  {
25088
- if (this.IsLocked==false) //不上锁
25089
- {
25090
- hqChart.Frame.SubFrame[windowIndex].Frame.SetLock(null);
25091
- }
25092
- else //上锁
25093
- {
25094
- let lockData={ IsLocked:true,Callback:this.LockCallback,IndexName:this.Name ,ID:this.LockID,
25095
- BG:this.LockBG,Text:this.LockText,TextColor:this.LockTextColor, Font:this.LockFont, Count:this.LockCount, MinWidth:this.LockMinWidth };
25096
- hqChart.Frame.SubFrame[windowIndex].Frame.SetLock(lockData);
25097
- }
25103
+ frame.SetLock(null);
25098
25104
  }
25099
-
25105
+ else //上锁
25106
+ {
25107
+ let lockData={ IsLocked:true,Callback:this.LockCallback,IndexName:this.Name ,ID:this.LockID,IndexID:this.ID,
25108
+ BG:this.LockBG,Text:this.LockText,TextColor:this.LockTextColor, Font:this.LockFont, Count:this.LockCount, MinWidth:this.LockMinWidth };
25109
+ frame.SetLock(lockData);
25110
+ }
25111
+
25100
25112
  hqChart.UpdataDataoffset(); //更新数据偏移
25101
25113
  hqChart.UpdateFrameMaxMin(); //调整坐标最大 最小值
25102
25114