hqchart 1.1.14564 → 1.1.14591

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.14564",
3
+ "version": "1.1.14591",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -305,10 +305,14 @@ function JSDialogSearchIndex()
305
305
  {
306
306
  if (!IFrameSplitOperator.IsNumber(this.OpData.WindowIndex)) return;
307
307
  var indexItem=cellItem.IndexItem;
308
- if (indexItem.Type==0) //系统指标
308
+ if (indexItem.Type==0 ) //系统指标
309
309
  {
310
310
  this.HQChart.ChangeIndex(this.OpData.WindowIndex, indexItem.ID );
311
311
  }
312
+ else if(indexItem.Type==4 || indexItem.Type==5) //五彩K线
313
+ {
314
+ this.HQChart.ChangeInstructionIndex(indexItem.ID);
315
+ }
312
316
  else if (indexItem.Type==1) //自定义脚本指标
313
317
  {
314
318
  var indexData={ ID:indexItem.ID, Name:indexItem.Name, Script:indexItem.Script, Args:indexItem.Args };
@@ -348,6 +352,10 @@ function JSDialogSearchIndex()
348
352
  {
349
353
  this.HQChart.ChangeIndexTemplate(indexItem.TemplateData)
350
354
  }
355
+ else if(indexItem.Type==4 || indexItem.Type==5) //五彩K线
356
+ {
357
+ this.HQChart.ChangeInstructionIndex(indexItem.ID);
358
+ }
351
359
  }
352
360
  else if (this.OpData.OpType==3) //新增加指标窗口
353
361
  {
@@ -570,7 +578,7 @@ JSDialogSearchIndex.GetDefaultIndexData=function()
570
578
  Group:{ ID:"超买超卖型", Name:"超买超卖型"} ,
571
579
  AryIndex:
572
580
  [
573
- {Name:"ADTM 动态买卖气指标", ID:"ADTM", Type:0 }, //Type:0=系统指标 1=自定义通达信脚本 2=api指标
581
+ {Name:"ADTM 动态买卖气指标", ID:"ADTM", Type:0 }, //Type:0=系统指标 1=自定义通达信脚本 2=api指标 3=指标模板 4=交易系统 5=五彩K线
574
582
  {Name:"BIAS 乖离率", ID:"BIAS", Type:0},
575
583
  {Name:"BIAS36 三六乖离", ID:"BIAS36", Type:0 },
576
584
  {Name:"BIAS_QL 乖离率-传统版", ID:"BIAS_QL", Type:0 },
@@ -581,7 +589,17 @@ JSDialogSearchIndex.GetDefaultIndexData=function()
581
589
  {Name:"OSC 变动速率线", ID:"OSC", Type:0},
582
590
  {Name:"RSI 相对强弱指标", ID:"RSI", Type:0},
583
591
  {Name:"ROC 变动率指标", ID:"ROC", Type:0},
584
- {Name:"WR 威廉指标", ID:"WR", Type:0}
592
+ {Name:"WR 威廉指标", ID:"WR", Type:0},
593
+ {Name:"UDL 引力线", ID:"UDL", Type:0},
594
+ {Name:"LWR 威廉指标", ID:"LWR", Type:0},
595
+ {Name:"MARSI 相对强弱平均线", ID:"MARSI", Type:0},
596
+ {Name:"ACCER 幅度涨速", ID:"ACCER", Type:0},
597
+ {Name:"CYD 承接因子", ID:"CYD", Type:0},
598
+ {Name:"CYF 市场能量", ID:"CYF", Type:0},
599
+ {Name:"ADTM 动态买卖气指标", ID:"ADTM", Type:0},
600
+ {Name:"ATR 真实波幅", ID:"ATR", Type:0},
601
+ {Name:"DKX 多空线", ID:"DKX", Type:0},
602
+ {Name:"TAPI 加权指数成交值", ID:"TAPI", Type:0},
585
603
  ]
586
604
  },
587
605
 
@@ -596,7 +614,22 @@ JSDialogSearchIndex.GetDefaultIndexData=function()
596
614
  {Name:"MACD 平滑异同平均", ID:"MACD", Type:0 },
597
615
  {Name:"TRIX 三重指数平均线", ID:"TRIX", Type:0 },
598
616
  {Name:"UOS 终极指标", ID:"UOS", Type:0 },
599
- {Name:"TRIX 三重指数平均线", ID:"TRIX", Type:0 }
617
+ {Name:"TRIX 三重指数平均线", ID:"TRIX", Type:0 },
618
+ {Name:"VMACD 量平滑异同平均", ID:"VMACD", Type:0 },
619
+
620
+ {Name:"VMACD 量平滑异同平均", ID:"VMACD", Type:0 },
621
+ {Name:"SMACD 单线平滑异同平均线", ID:"SMACD", Type:0 },
622
+ {Name:"QACD 快速异同平均", ID:"QACD", Type:0 },
623
+ {Name:"VPT 量价曲线", ID:"VPT", Type:0 },
624
+ {Name:"WVAD 威廉变异离散量", ID:"WVAD", Type:0 },
625
+
626
+ {Name:"DBQR 对比强弱", ID:"DBQR", Type:0 },
627
+ {Name:"WVAD 威廉变异离散量", ID:"WVAD", Type:0 },
628
+ {Name:"JS 加速线", ID:"JS", Type:0 },
629
+ {Name:"CYE 市场趋势", ID:"CYE", Type:0 },
630
+ {Name:"QR 强弱指标", ID:"QR", Type:0 },
631
+ {Name:"GDX 轨道线", ID:"GDX", Type:0 },
632
+ {Name:"JLHB 绝路航标", ID:"JLHB", Type:0 },
600
633
  ]
601
634
  },
602
635
 
@@ -608,7 +641,18 @@ JSDialogSearchIndex.GetDefaultIndexData=function()
608
641
  {Name:"OBV 累积能量线", ID:"OBV", Type:0},
609
642
  {Name:"NVI 负成交量", ID:"NVI", Type:0},
610
643
  {Name:"PVI 正成交量", ID:"PVI", Type:0},
611
- {Name:"VOL 成交量", ID:"VOL", Type:0}
644
+ {Name:"VOL 成交量", ID:"VOL", Type:0},
645
+ {Name:"VOL-TDX 成交量(虚拟)", ID:"VOL-TDX", Type:0},
646
+ {Name:"AMO 成交金额", ID:"AMO", Type:0},
647
+ {Name:"AMO-TDX 成交金额(虚拟)", ID:"AMO-TDX", Type:0},
648
+ {Name:"VRSI 相对强弱量", ID:"VRSI", Type:0},
649
+ {Name:"HSCOL 换手柱", ID:"HSCOL", Type:0},
650
+ {Name:"DBQRV 对比强弱量", ID:"DBQRV", Type:0},
651
+ {Name:"DBLB 对比量比", ID:"DBLB", Type:0},
652
+ {Name:"WSBVOL 维斯波成交量", ID:"WSBVOL", Type:0},
653
+
654
+ {Name:"CCYD 持仓异动(适用于期货)", ID:"CCYD", Type:0},
655
+ {Name:"CCL 持仓量(适用于期货)", ID:"CCL", Type:0},
612
656
  ]
613
657
  },
614
658
  {
@@ -616,7 +660,22 @@ JSDialogSearchIndex.GetDefaultIndexData=function()
616
660
  AryIndex:
617
661
  [
618
662
  {Name:"MA 均线", ID:"MA", Type:0},
619
- {Name:"BBI 多空线", ID:"BBI", Type:0}
663
+ {Name:"MA4 4根均线", ID:"MA4", Type:0},
664
+ {Name:"MA5 5根均线", ID:"MA5", Type:0},
665
+ {Name:"MA7 6根均线", ID:"MA6", Type:0},
666
+ {Name:"MA7 7根均线", ID:"MA7", Type:0},
667
+ {Name:"MA8 8根均线", ID:"MA8", Type:0},
668
+ {Name:"BBI 多空线", ID:"BBI", Type:0},
669
+ {Name:"ACD 升降线", ID:"ACD", Type:0},
670
+ {Name:"EXPMA 指数平均线", ID:"EXPMA", Type:0},
671
+ {Name:"EXPMA_S 指数平均线-副图", ID:"EXPMA_S", Type:0},
672
+ {Name:"HMA 高价平均线", ID:"HMA", Type:0},
673
+ {Name:"LMA 低价平均线", ID:"LMA", Type:0},
674
+ {Name:"VMA 变异平均线", ID:"VMA", Type:0},
675
+ {Name:"AMV 成本价均线", ID:"AMV", Type:0},
676
+ {Name:"BBIBOLL 多空布林线", ID:"BBIBOLL", Type:0},
677
+ {Name:"ALLIGAT 鳄鱼线", ID:"ALLIGAT", Type:0},
678
+ {Name:"GMMA 顾比均线", ID:"GMMA", Type:0},
620
679
  ]
621
680
  },
622
681
  {
@@ -624,9 +683,13 @@ JSDialogSearchIndex.GetDefaultIndexData=function()
624
683
  AryIndex:
625
684
  [
626
685
  {Name:"BOLL 布林线", ID:"BOLL", Type:0},
627
- {Name:"BOLL副图 布林线", ID:"BOLL副图", Type:0},
686
+ {Name:"BOLL 布林线-副图", ID:"BOLL副图", Type:0},
628
687
  {Name:"MIKE 麦克支撑压力", ID:"MIKE", Type:0},
629
- {Name:"ENE 轨道线", ID:"ENE", Type:0}
688
+ {Name:"ENE 轨道线", ID:"ENE", Type:0},
689
+ {Name:"PBX 瀑布线", ID:"PBX", Type:0},
690
+ {Name:"XS 薛斯通道", ID:"XS", Type:0},
691
+ {Name:"XS2 薛斯通道II", ID:"XS2", Type:0},
692
+ {Name:"DC 唐奇安通道", ID:"DC", Type:0}
630
693
  ]
631
694
  },
632
695
  {
@@ -639,7 +702,91 @@ JSDialogSearchIndex.GetDefaultIndexData=function()
639
702
  {Name:"PSY 心理线", ID:"PSY", Type:0},
640
703
  {Name:"CR 带状能量线", ID:"CR", Type:0},
641
704
  {Name:"VR 成交量变异率", ID:"VR", Type:0},
642
- {Name:"WAD 威廉多空力度线", ID:"WAD", Type:0}
705
+ {Name:"WAD 威廉多空力度线", ID:"WAD", Type:0},
706
+ {Name:"PCNT 幅度比", ID:"PCNT", Type:0}
707
+ ]
708
+ },
709
+ {
710
+ Group:{ ID:"大势型", Name:"大势型"},
711
+ AryIndex:
712
+ [
713
+ {Name:"ABI 绝对广量指标", ID:"ABI", Type:0 },
714
+ {Name:"ADL 腾落指标", ID:"ADL", Type:0 },
715
+ ]
716
+ },
717
+
718
+ {
719
+ Group:{ ID:"五彩K线", Name:"五彩K线"} ,
720
+ AryIndex:
721
+ [
722
+ {Name:"五彩K线-十字星", ID:"五彩K线-十字星", Type:5},
723
+ {Name:"五彩K线-早晨之星", ID:"五彩K线-早晨之星", Type:5},
724
+ {Name:"五彩K线-黄昏之星", ID:"五彩K线-黄昏之星", Type:5},
725
+ {Name:"五彩K线-长十字", ID:"五彩K线-长十字", Type:5},
726
+
727
+ {Name:"五彩K线-身怀六甲", ID:"五彩K线-身怀六甲", Type:5},
728
+ {Name:"五彩K线-三个白武士", ID:"五彩K线-三个白武士", Type:5},
729
+ {Name:"五彩K线-三只乌鸦", ID:"五彩K线-三只乌鸦", Type:5},
730
+ {Name:"五彩K线-光头阳线", ID:"五彩K线-光头阳线", Type:5},
731
+
732
+ {Name:"五彩K线-光脚阴线", ID:"五彩K线-光脚阴线线", Type:5},
733
+ {Name:"五彩K线-垂死十字", ID:"五彩K线-垂死十字", Type:5},
734
+ {Name:"五彩K线-早晨十字星", ID:"五彩K线-早晨十字星", Type:5},
735
+ {Name:"五彩K线-黄昏十字星", ID:"五彩K线-黄昏十字星", Type:5},
736
+
737
+ {Name:"五彩K线-射击之星", ID:"五彩K线-射击之星", Type:5},
738
+ {Name:"五彩K线-倒转锤头", ID:"五彩K线-倒转锤头", Type:5},
739
+ {Name:"五彩K线-锤头", ID:"五彩K线-锤头", Type:5},
740
+ {Name:"五彩K线-吊颈", ID:"五彩K线-吊颈星", Type:5},
741
+
742
+ {Name:"五彩K线-穿头破脚", ID:"五彩K线-穿头破脚", Type:5},
743
+ {Name:"五彩K线-出水芙蓉", ID:"五彩K线-出水芙蓉", Type:5},
744
+ {Name:"五彩K线-乌云盖顶", ID:"五彩K线-乌云盖顶", Type:5},
745
+ {Name:"五彩K线-曙光初现", ID:"五彩K线-曙光初现", Type:5},
746
+
747
+ {Name:"五彩K线-十字胎", ID:"五彩K线-十字胎", Type:5},
748
+ {Name:"五彩K线-剑", ID:"五彩K线-剑", Type:5},
749
+ {Name:"五彩K线-平顶", ID:"五彩K线-平顶", Type:5},
750
+ {Name:"五彩K线-平底", ID:"五彩K线-平底", Type:5},
751
+
752
+ {Name:"五彩K线-大阳烛", ID:"五彩K线-大阳烛", Type:5},
753
+ {Name:"五彩K线-大阴烛", ID:"五彩K线-大阴烛", Type:5},
754
+
755
+ {Name:"五彩K线-好友反攻", ID:"五彩K线-好友反攻", Type:5},
756
+ {Name:"五彩K线-跳空缺口", ID:"五彩K线-跳空缺口", Type:5},
757
+
758
+ {Name:"五彩K线-双飞乌鸦", ID:"五彩K线-双飞乌鸦", Type:5},
759
+ {Name:"五彩K线-上升三部曲", ID:"五彩K线-上升三部曲", Type:5},
760
+ {Name:"五彩K线-下跌三部曲", ID:"五彩K线-下跌三部曲", Type:5},
761
+ {Name:"五彩K线-长下影", ID:"五彩K线-长下影", Type:5},
762
+
763
+ {Name:"五彩K线-长上影", ID:"五彩K线-长上影", Type:5},
764
+ {Name:"五彩K线-分离", ID:"五彩K线-分离", Type:5},
765
+
766
+ ]
767
+ },
768
+ {
769
+ Group:{ ID:"交易系统", Name:"交易系统"} ,
770
+ AryIndex:
771
+ [
772
+ {Name:"交易系统-BIAS", ID:"交易系统-BIAS", Type:4},
773
+ {Name:"交易系统-CCI", ID:"交易系统-CCI", Type:4},
774
+ {Name:"交易系统-DMI", ID:"交易系统-DMI", Type:4},
775
+ {Name:"交易系统-KD", ID:"交易系统-KD", Type:4},
776
+
777
+ {Name:"交易系统-BOLL", ID:"交易系统-BOLL", Type:4},
778
+ {Name:"交易系统-KDJ", ID:"交易系统-KDJ", Type:4},
779
+ {Name:"交易系统-MACD", ID:"交易系统-MACD", Type:4},
780
+ {Name:"交易系统-KD", ID:"交易系统-KD", Type:4},
781
+
782
+ {Name:"交易系统-MTM", ID:"交易系统-MTM", Type:4},
783
+ {Name:"交易系统-PSY", ID:"交易系统-PSY", Type:4},
784
+ {Name:"交易系统-ROC", ID:"交易系统-ROC", Type:4},
785
+ {Name:"交易系统-RSI", ID:"交易系统-RSI", Type:4},
786
+
787
+ {Name:"交易系统-VR", ID:"交易系统-VR", Type:4},
788
+ {Name:"交易系统-DPSJ", ID:"交易系统-DPSJ", Type:4},
789
+
643
790
  ]
644
791
  },
645
792
 
@@ -55935,6 +55935,14 @@ HQData.RequestHistoryData=function(data,callback)
55935
55935
  var start=dataCount-count;
55936
55936
  if (start<0) start=0;
55937
55937
  aryData=fullData.slice(start);
55938
+
55939
+ /*
55940
+ for(var i=aryData.length-5;i<aryData.length;++i)
55941
+ {
55942
+ var item=aryData[i];
55943
+ item[13]=true;
55944
+ }
55945
+ */
55938
55946
  }
55939
55947
 
55940
55948
  var hqchartData={ name:symbol, symbol:symbol, data:aryData, ver:2.0 };
@@ -55960,6 +55968,17 @@ HQData.RequestRealtimeData=function(data, callback)
55960
55968
  var end=data.Request.Data.dateRange.End;
55961
55969
  var endDate=end.Date;
55962
55970
  var aryStock=[];
55971
+ var hqchart=data.Self;
55972
+ var kData=hqchart.GetKData();
55973
+ for(var i=kData.Data.length-1;i>=0;--i)
55974
+ {
55975
+ var item=kData.Data[i];
55976
+ if (!item.IsVirtual)
55977
+ {
55978
+ endDate=item.Date;
55979
+ break;
55980
+ }
55981
+ }
55963
55982
 
55964
55983
  for(var i=0;i<data.Request.Data.symbol.length;++i)
55965
55984
  {
@@ -56138,6 +56157,19 @@ HQData.RequestIndexVariantData=function(data,callback)
56138
56157
  }
56139
56158
  callback(hqchartData);
56140
56159
  }
56160
+ else if (varName=="EXCHANGE" || varName=="HSL")
56161
+ {
56162
+ var kData=data.Self.Data;
56163
+ var hqchartData={ DataType:0, Data:[], Ver:2.0 };
56164
+ for(var i=0;i<kData.Data.length;++i)
56165
+ {
56166
+ var kItem=kData.Data[i];
56167
+ var value=HQData.GetRandomTestData(1,10);
56168
+ hqchartData.Data.push({ Date:kItem.Date, Time:kItem.Time, Value:value });
56169
+ }
56170
+
56171
+ callback(hqchartData);
56172
+ }
56141
56173
  else
56142
56174
  {
56143
56175
  var error= `变量'${varName}' 没有对接数据. [HQData.RequestIndexVariantData]`;
@@ -57286,6 +57318,55 @@ HQData.GetKLineDataByDate=function(fullData, startDate, endDate)
57286
57318
  return aryData;
57287
57319
  }
57288
57320
 
57321
+ //日线随机K线
57322
+ HQData.GetKLineRandomDayData=function(fullData, startDate, dayCount)
57323
+ {
57324
+ var startIndex=-1;
57325
+ var startItem=null;
57326
+ for(var i=0;i<fullData.length;++i)
57327
+ {
57328
+ var kItem=fullData[i];
57329
+ if (kItem[0]==startDate)
57330
+ {
57331
+ startIndex=i;
57332
+ startItem=kItem;
57333
+ break;
57334
+ }
57335
+ }
57336
+
57337
+ if (!startItem) return null;
57338
+
57339
+ var date=startItem[0];
57340
+ var year=parseInt(date/10000);
57341
+ var month=parseInt(date/100)%100;
57342
+ var day=date%100;
57343
+ var newDate=new Date(year,month-1, day);
57344
+
57345
+ var yClose=startItem[1];
57346
+ var aryData=[];
57347
+ for(var i=0; i<dayCount; ++i)
57348
+ {
57349
+ newDate.setDate(newDate.getDate()+1);
57350
+ var week=newDate.getDay();
57351
+ if (week==0 || week==6) continue;
57352
+
57353
+ var date=newDate.getFullYear()*10000+(newDate.getMonth()+1)*100+newDate.getDate();
57354
+
57355
+ var index=startIndex-i-1;
57356
+ var kItem=fullData[index];
57357
+
57358
+ var newItem=[date, yClose, kItem[2], kItem[3], kItem[4],kItem[5]];
57359
+ newItem[13]=true;
57360
+
57361
+ aryData.push(newItem);
57362
+
57363
+ yClose=newItem[5];
57364
+ }
57365
+
57366
+ return aryData;
57367
+ }
57368
+
57369
+
57289
57370
  HQData.GetDayMinuteDataBySymbol=function(symbol)
57290
57371
  {
57291
57372
  var data=null;
@@ -57883,7 +57964,7 @@ HQData.APIIndex_DRAWTEXT_LINE=function(data, callback)
57883
57964
  var kData=hqchart.GetKData();
57884
57965
 
57885
57966
  var lastItem=kData.Data[kData.Data.length-1];
57886
- var price=(lastItem.High+lastItem.Low)/2;
57967
+ var price=(lastItem.High+lastItem.Low)/2+0.3;
57887
57968
 
57888
57969
  var lineData=
57889
57970
  {
@@ -753,6 +753,7 @@ function MarkPopMinutePaint()
753
753
  this.LineColor=g_JSChartResource.PopMinuteChart.Mark.LineColor;
754
754
  this.SubFrame;
755
755
  this.IsDynamic=true;
756
+ this.IsShow=true;
756
757
 
757
758
 
758
759
  this.ReloadResource=function(resource)
@@ -782,6 +783,7 @@ function MarkPopMinutePaint()
782
783
  this.Draw=function()
783
784
  {
784
785
  this.SubFrame=null;
786
+ if (!this.IsShow) return;
785
787
  if (!this.HQChart) return;
786
788
  if (!this.ChartFrame || !IFrameSplitOperator.IsNonEmptyArray(this.ChartFrame.SubFrame)) return;
787
789
  if (!this.MapDate || this.MapDate.size<=0) return;
@@ -836,9 +838,10 @@ function MarkPopMinutePaint()
836
838
 
837
839
  this.Canvas.lineWidth=lineWidth;
838
840
  this.Canvas.strokeStyle=this.LineColor;
841
+ var x=ToFixedPoint2(lineWidth,item.XCenter);
839
842
  this.Canvas.beginPath();
840
- this.Canvas.moveTo(item.XCenter,border.TopEx);
841
- this.Canvas.lineTo(item.XCenter,border.BottomEx);
843
+ this.Canvas.moveTo(x,border.TopEx);
844
+ this.Canvas.lineTo(x,border.BottomEx);
842
845
  this.Canvas.stroke();
843
846
  }
844
847
  }
@@ -1109,7 +1109,7 @@ function Node(ErrorHandler)
1109
1109
  //CAPITAL流通股本(手), EXCHANGE 换手率, TOTALCAPITAL 总股本(手)
1110
1110
  let setVariantName=new Set(
1111
1111
  [
1112
- "CAPITAL","TOTALCAPITAL","EXCHANGE",
1112
+ "CAPITAL","TOTALCAPITAL","EXCHANGE","HSL",
1113
1113
  "HYBLOCK","DYBLOCK","GNBLOCK","FGBLOCK","ZSBLOCK","ZHBLOCK","ZDBLOCK","HYZSCODE",
1114
1114
  "GNBLOCKNUM","FGBLOCKNUM","ZSBLOCKNUM","ZHBLOCKNUM","ZDBLOCKNUM",
1115
1115
  "HYSYL","HYSJL","FROMOPEN",
@@ -14653,7 +14653,7 @@ function JSSymbolData(ast,option,jsExecute)
14653
14653
  {
14654
14654
  var dataType=0;
14655
14655
  if (IFrameSplitOperator.IsNumber(recvData.DataType)) dataType=recvData.DataType;
14656
- self.RecvStockValue(recvData.Data,jobItem,key,dataType);
14656
+ self.RecvStockValue(recvData.Data,jobItem,key,dataType,recvData);
14657
14657
  }
14658
14658
 
14659
14659
  self.Execute.RunNextJob();
@@ -14668,7 +14668,7 @@ function JSSymbolData(ast,option,jsExecute)
14668
14668
  };
14669
14669
 
14670
14670
  var apiDownload;
14671
- if (jobItem.VariantName=="CAPITAL" || jobItem.VariantName=="TOTALCAPITAL" || jobItem.VariantName=="EXCHANGE")
14671
+ if (jobItem.VariantName=="CAPITAL" || jobItem.VariantName=="TOTALCAPITAL" || jobItem.VariantName=="EXCHANGE" || jobItem.VariantName=="HSL")
14672
14672
  {
14673
14673
  var callback=function(recvData, jobItem, key)
14674
14674
  {
@@ -14863,7 +14863,7 @@ function JSSymbolData(ast,option,jsExecute)
14863
14863
  }
14864
14864
  }
14865
14865
 
14866
- this.RecvStockValue=function(recvData,jobItem,key,dataType)
14866
+ this.RecvStockValue=function(recvData,jobItem,key,dataType, srcData)
14867
14867
  {
14868
14868
  if (!recvData)
14869
14869
  {
@@ -14894,8 +14894,9 @@ function JSSymbolData(ast,option,jsExecute)
14894
14894
  var bindData=new ChartData();
14895
14895
  bindData.Data=aryFittingData;
14896
14896
  var result=bindData.GetValue();
14897
+ var bVersion2=srcData && srcData.Ver==2; //2.0 版本
14897
14898
 
14898
- if (key=="EXCHANGE") //计算换手率=成交量/流通股本*100
14899
+ if (!bVersion2 && (key=="EXCHANGE" || key=="HSL")) //计算换手率=成交量/流通股本*100
14899
14900
  {
14900
14901
  for(var i in result)
14901
14902
  {
@@ -16915,7 +16916,7 @@ function JSExecute(ast,option)
16915
16916
 
16916
16917
  ['CAPITAL',null], //流通股本(手)
16917
16918
  ["TOTALCAPITAL",null], //TOTALCAPITAL 当前总股本 手
16918
- ['EXCHANGE',null], //换手率
16919
+ ['EXCHANGE',null], ["HSL",null], //换手率
16919
16920
  ['SETCODE', null], //市场类型
16920
16921
  ['CODE',null], //品种代码
16921
16922
  ['STKNAME',null], //品种名称
@@ -17165,6 +17166,7 @@ function JSExecute(ast,option)
17165
17166
  case "TOTALCAPITAL":
17166
17167
  case 'CAPITAL':
17167
17168
  case 'EXCHANGE':
17169
+ case "HSL":
17168
17170
 
17169
17171
  case "HYBLOCK":
17170
17172
  case "DYBLOCK":
@@ -18832,7 +18834,7 @@ function JSExplainer(ast,option)
18832
18834
  ['BARSTATUS',"数据位置状态"], //BARSTATUS返回数据位置信息,1表示第一根K线,2表示最后一个数据,0表示中间位置.
18833
18835
 
18834
18836
  ['CAPITAL',"当前流通股本(手)"], ["TOTALCAPITAL","当前总股本(手)"],
18835
- ['EXCHANGE',"换手率"], //换手率
18837
+ ['EXCHANGE',"换手率"], ['HSL',"换手线"],
18836
18838
  ['SETCODE', "市场类型"], //市场类型
18837
18839
  ['CODE',"品种代码"], //品种代码
18838
18840
  ['STKNAME',"品种名称"], //品种名称
@@ -25772,6 +25774,19 @@ function APIScriptIndex(name,script,args,option, isOverlay)
25772
25774
 
25773
25775
  result.push(outVarItem);
25774
25776
  }
25777
+ else if (draw.DrawType=="DRAWTEXT_LINE")
25778
+ {
25779
+ drawItem.Name=draw.Name;
25780
+ drawItem.Type=draw.Type;
25781
+
25782
+ drawItem.DrawType=draw.DrawType;
25783
+ drawItem.DrawData=draw.DrawData; //{ Price:, Text:{ Title:text, Color:textcolor }, Line:{ Type:linetype, Color:linecolor } };
25784
+
25785
+ outVarItem.Draw=drawItem;
25786
+ if (draw.Font) outVarItem.Font=draw.Font;
25787
+
25788
+ result.push(outVarItem);
25789
+ }
25775
25790
  else
25776
25791
  {
25777
25792
  var find=g_ScriptIndexChartFactory.Get(draw.DrawType); //外部挂接
@@ -26077,6 +26092,7 @@ function DownloadFinanceData(obj)
26077
26092
  case 1: //FINANCE(1) 总股本(随时间可能有变化) 股
26078
26093
  case 7: //FINANCE(7) 流通股本(随时间可能有变化) 股
26079
26094
  case "EXCHANGE": //换手率
26095
+ case "HSL"://换手率
26080
26096
  this.DownloadHistoryData(id);
26081
26097
  break;
26082
26098
  case 3:
@@ -26203,6 +26219,7 @@ function DownloadFinanceData(obj)
26203
26219
  return ["capital.total", "capital.date"];
26204
26220
  case 7:
26205
26221
  return ["capital.a", "capital.date"];
26222
+ case "HSL":
26206
26223
  case "EXCHANGE":
26207
26224
  return ["capital.a", "capital.date"];
26208
26225
 
@@ -26336,6 +26353,7 @@ function DownloadFinanceData(obj)
26336
26353
  if (!item.capital) return null;
26337
26354
  return { Date:date, Value:item.capital.total };
26338
26355
  case 7:
26356
+ case "HSL": //换手率
26339
26357
  case "EXCHANGE": //换手率 历史流通股本
26340
26358
  if (!item.capital) return null;
26341
26359
  return { Date:date, Value:item.capital.a };