hqchart 1.1.14576 → 1.1.14593

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.14576",
3
+ "version": "1.1.14593",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -589,7 +589,17 @@ JSDialogSearchIndex.GetDefaultIndexData=function()
589
589
  {Name:"OSC 变动速率线", ID:"OSC", Type:0},
590
590
  {Name:"RSI 相对强弱指标", ID:"RSI", Type:0},
591
591
  {Name:"ROC 变动率指标", ID:"ROC", Type:0},
592
- {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},
593
603
  ]
594
604
  },
595
605
 
@@ -604,7 +614,22 @@ JSDialogSearchIndex.GetDefaultIndexData=function()
604
614
  {Name:"MACD 平滑异同平均", ID:"MACD", Type:0 },
605
615
  {Name:"TRIX 三重指数平均线", ID:"TRIX", Type:0 },
606
616
  {Name:"UOS 终极指标", ID:"UOS", Type:0 },
607
- {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 },
608
633
  ]
609
634
  },
610
635
 
@@ -616,7 +641,18 @@ JSDialogSearchIndex.GetDefaultIndexData=function()
616
641
  {Name:"OBV 累积能量线", ID:"OBV", Type:0},
617
642
  {Name:"NVI 负成交量", ID:"NVI", Type:0},
618
643
  {Name:"PVI 正成交量", ID:"PVI", Type:0},
619
- {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},
620
656
  ]
621
657
  },
622
658
  {
@@ -624,7 +660,22 @@ JSDialogSearchIndex.GetDefaultIndexData=function()
624
660
  AryIndex:
625
661
  [
626
662
  {Name:"MA 均线", ID:"MA", Type:0},
627
- {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},
628
679
  ]
629
680
  },
630
681
  {
@@ -632,9 +683,13 @@ JSDialogSearchIndex.GetDefaultIndexData=function()
632
683
  AryIndex:
633
684
  [
634
685
  {Name:"BOLL 布林线", ID:"BOLL", Type:0},
635
- {Name:"BOLL副图 布林线", ID:"BOLL副图", Type:0},
686
+ {Name:"BOLL 布林线-副图", ID:"BOLL副图", Type:0},
636
687
  {Name:"MIKE 麦克支撑压力", ID:"MIKE", Type:0},
637
- {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}
638
693
  ]
639
694
  },
640
695
  {
@@ -647,9 +702,19 @@ JSDialogSearchIndex.GetDefaultIndexData=function()
647
702
  {Name:"PSY 心理线", ID:"PSY", Type:0},
648
703
  {Name:"CR 带状能量线", ID:"CR", Type:0},
649
704
  {Name:"VR 成交量变异率", ID:"VR", Type:0},
650
- {Name:"WAD 威廉多空力度线", ID:"WAD", Type:0}
705
+ {Name:"WAD 威廉多空力度线", ID:"WAD", Type:0},
706
+ {Name:"PCNT 幅度比", ID:"PCNT", Type:0}
651
707
  ]
652
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
+
653
718
  {
654
719
  Group:{ ID:"五彩K线", Name:"五彩K线"} ,
655
720
  AryIndex:
@@ -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
  {
@@ -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',"品种名称"], //品种名称
@@ -26090,6 +26092,7 @@ function DownloadFinanceData(obj)
26090
26092
  case 1: //FINANCE(1) 总股本(随时间可能有变化) 股
26091
26093
  case 7: //FINANCE(7) 流通股本(随时间可能有变化) 股
26092
26094
  case "EXCHANGE": //换手率
26095
+ case "HSL"://换手率
26093
26096
  this.DownloadHistoryData(id);
26094
26097
  break;
26095
26098
  case 3:
@@ -26216,6 +26219,7 @@ function DownloadFinanceData(obj)
26216
26219
  return ["capital.total", "capital.date"];
26217
26220
  case 7:
26218
26221
  return ["capital.a", "capital.date"];
26222
+ case "HSL":
26219
26223
  case "EXCHANGE":
26220
26224
  return ["capital.a", "capital.date"];
26221
26225
 
@@ -26349,6 +26353,7 @@ function DownloadFinanceData(obj)
26349
26353
  if (!item.capital) return null;
26350
26354
  return { Date:date, Value:item.capital.total };
26351
26355
  case 7:
26356
+ case "HSL": //换手率
26352
26357
  case "EXCHANGE": //换手率 历史流通股本
26353
26358
  if (!item.capital) return null;
26354
26359
  return { Date:date, Value:item.capital.a };
@@ -99,7 +99,7 @@ function JSIndexScript()
99
99
  ['VRSI',this.VRSI],['HSCOL',this.HSCOL],['DBQRV',this.DBQRV],['DBLB',this.DBLB],
100
100
  ['ACD',this.ACD],['EXPMA',this.EXPMA],['EXPMA_S',this.EXPMA_S],['HMA',this.HMA],
101
101
  ['LMA',this.LMA],['VMA',this.VMA],['AMV',this.AMV],['BBIBOLL',this.BBIBOLL],
102
- ['ALLIGAT',this.ALLIGAT],['ZX',this.ZX],['XS',this.XS],['XS2',this.XS2],
102
+ ['ALLIGAT',this.ALLIGAT],["GMMA",this.GMMA],['ZX',this.ZX],['XS',this.XS],['XS2',this.XS2],
103
103
  ['SG-XDT',this.SG_XDT],['SG-SMX',this.SG_SMX],['SG-LB',this.SG_LB],['SG-PF',this.SG_PF],
104
104
  ['RAD',this.RAD],['SHT',this.SHT],['ZLJC',this.ZLJC],['ZLMM',this.ZLMM],['SLZT',this.SLZT],
105
105
  ['ADVOL',this.ADVOL],['CYC',this.CYC],['CYS',this.CYS],['CYQKL',this.CYQKL],
@@ -111,7 +111,8 @@ function JSIndexScript()
111
111
  ['神奇九转', this.NineTurns],
112
112
  ['EMA', this.EMA3], ['EMA4', this.EMA4], ['EMA5', this.EMA5],['EMA6', this.EMA6],
113
113
  ["ICHIMOKU",this.ICHIMOKU],["CDP-STD", this.CDP_STD],["TBP-STD",this.TBP_STD],
114
- ["ADX", this.ADX],
114
+ ["ADX", this.ADX],["SMACD", this.SMACD],["ACCER",this.ACCER],["AMO-TDX", this.AMO_TDX],
115
+ ["WSBVOL",this.WSBVOL], ["CCYD",this.CCYD], ["CCL",this.CCL],["ABI", this.ABI],
115
116
 
116
117
  ["持仓量", this.VOL_POSITION], //成交量+持仓量
117
118
 
@@ -131,11 +132,11 @@ function JSIndexScript()
131
132
 
132
133
  ["两融余额", this.Margin2],["两融余额2", this.Margin3],
133
134
 
134
- //外包指标
135
- ['放心股-操盘BS点',this.FXG_BSPoint],
136
- ['放心股-涨停多空线',this.FXG_INDEX],
137
- ['放心股-涨停吸筹区',this.FXG_INDEX2],
138
- ['放心股-量能黄金点',this.FXG_INDEX3],
135
+ //特色指标
136
+ ['特色指标-操盘BS点',this.FXG_BSPoint],
137
+ ['特色指标-涨停多空线',this.FXG_INDEX],
138
+ ['特色指标-涨停吸筹区',this.FXG_INDEX2],
139
+ ['特色指标-量能黄金点',this.FXG_INDEX3],
139
140
 
140
141
  //五彩K线(函数COLOR_开头)
141
142
  ['五彩K线-十字星',this.COLOR_KSTAR1],['五彩K线-早晨之星',this.COLOR_KSTAR2],['五彩K线-黄昏之星',this.COLOR_KSTAR3],['五彩K线-长十字',this.COLOR_SHI1],
@@ -696,6 +697,28 @@ MAVOL2:MA(VOLUME,M2);'
696
697
  return data;
697
698
  }
698
699
 
700
+
701
+ JSIndexScript.prototype.AMO_TDX=function()
702
+ {
703
+ let data=
704
+ {
705
+ Name:'AMO-TDX', Description:'成交金额(虚拟)', IsMainIndex:false,FloatPrecision:0,
706
+ Args:[ { Name:'M1', Value:5}, { Name:'M2', Value:10} ],
707
+ Script: //脚本
708
+ 'TOTAL:=IF(PERIOD=1,5,IF(PERIOD=2,15,IF(PERIOD=3,30,IF(PERIOD=4,60,IF(PERIOD=5,TOTALFZNUM,1)))));\n\
709
+ MTIME:=MOD(FROMOPEN,TOTAL);\n\
710
+ CTIME:=IF(MTIME<0.5,TOTAL,MTIME);\n\
711
+ VAMO:=IF((CURRBARSCOUNT=1 AND DYNAINFO(8)>1),AMOUNT/10000.0*TOTAL/CTIME,DRAWNULL);\n\
712
+ STICKLINE((CURRBARSCOUNT=1 AND DYNAINFO(8)>1),VAMO,0,-1,-1),COLOR00C0C0;\n\
713
+ AMOW:AMOUNT/10000.0,VOLSTICK;\n\
714
+ AMO1:MA(AMOW,M1);\n\
715
+ AMO2:MA(AMOW,M2);'
716
+
717
+ };
718
+
719
+ return data;
720
+ }
721
+
699
722
  JSIndexScript.prototype.RSI=function()
700
723
  {
701
724
  let data=
@@ -1433,6 +1456,40 @@ MACD:DIF-DEA,COLORSTICK;'
1433
1456
  return data;
1434
1457
  }
1435
1458
 
1459
+ JSIndexScript.prototype.SMACD = function ()
1460
+ {
1461
+ let data =
1462
+ {
1463
+ Name: 'SMACD', Description: '单线平滑异同平均线', IsMainIndex: false,
1464
+ Args: [{ Name: 'SHORT', Value: 12 },{ Name: 'LONG', Value: 26 },{ Name: 'MID', Value: 9 }],
1465
+ Script: //脚本
1466
+ 'DIF:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);\n\
1467
+ DEA:EMA(DIF,MID);\n\
1468
+ MACD:DIF,COLORSTICK;'
1469
+
1470
+ };
1471
+
1472
+ return data;
1473
+ }
1474
+
1475
+
1476
+ JSIndexScript.prototype.ACCER = function ()
1477
+ {
1478
+ let data =
1479
+ {
1480
+ Name: 'ACCER', Description: '幅度涨速', IsMainIndex: false,
1481
+ Args: [{ Name: 'N', Value: 8 }],
1482
+ Script: //脚本
1483
+ 'ACCER:SLOPE(CLOSE,N)/CLOSE;'
1484
+
1485
+ };
1486
+
1487
+ return data;
1488
+ }
1489
+
1490
+
1491
+
1492
+
1436
1493
  JSIndexScript.prototype.QACD = function ()
1437
1494
  {
1438
1495
  let data =
@@ -1857,6 +1914,32 @@ JSIndexScript.prototype.ALLIGAT = function ()
1857
1914
  return data;
1858
1915
  }
1859
1916
 
1917
+
1918
+ JSIndexScript.prototype.GMMA = function ()
1919
+ {
1920
+ let data =
1921
+ {
1922
+ Name: 'GMMA', Description: '顾比均线', IsMainIndex: true,
1923
+ Args: [],
1924
+ Script: //脚本
1925
+ 'MA3:EMA(CLOSE,3),COLORC08080;\n\
1926
+ MA5:EMA(CLOSE,5),COLORC08080;\n\
1927
+ MA8:EMA(CLOSE,8),COLORC08080;\n\
1928
+ MA10:EMA(CLOSE,10),COLORC08080;\n\
1929
+ MA12:EMA(CLOSE,12),COLORC08080;\n\
1930
+ MA15:EMA(CLOSE,15),COLORC08080;\n\
1931
+ MA30:EMA(CLOSE,30),COLOR0080FF;\n\
1932
+ MA35:EMA(CLOSE,35),COLOR0080FF;\n\
1933
+ MA40:EMA(CLOSE,40),COLOR0080FF;\n\
1934
+ MA45:EMA(CLOSE,45),COLOR0080FF;\n\
1935
+ MA50:EMA(CLOSE,50),COLOR0080FF;\n\
1936
+ MA60:EMA(CLOSE,60),COLOR0080FF;'
1937
+
1938
+ };
1939
+
1940
+ return data;
1941
+ }
1942
+
1860
1943
  JSIndexScript.prototype.ZX = function ()
1861
1944
  {
1862
1945
  let data =
@@ -3893,6 +3976,94 @@ B:=REF(LLV(CLOSE,N),1);
3893
3976
  }
3894
3977
 
3895
3978
 
3979
+ JSIndexScript.prototype.WSBVOL = function()
3980
+ {
3981
+ let data =
3982
+ {
3983
+ Name: 'WSBVOL', Description: '维斯波成交量', IsMainIndex: false,
3984
+ Script: //脚本
3985
+ `UPTJ1:=CLOSE>REF(CLOSE,1);
3986
+ UPTJ2:=(CLOSE==REF(CLOSE,1) && REF(CLOSE,1)>REF(CLOSE,2));
3987
+ UPTJ3:=MAX(OPEN,CLOSE)<REF(C,BARSLAST(CLOSE>REF(CLOSE,1))) AND MIN(OPEN,CLOSE)>REF(O,BARSLAST(CLOSE>REF(CLOSE,1)));
3988
+ UPTJ4:=NOT (H<REF(H,1) AND L<REF(L,1));
3989
+ UP:=(UPTJ1 || UPTJ2 || UPTJ3) AND UPTJ4;
3990
+ DOWN:=NOT(UP);
3991
+ M1:=BARSLASTCOUNT(UP);
3992
+ N1:=BARSLASTCOUNT(DOWN);
3993
+ CZB:=IF(M1=1 OR N1=1,2*INTPART(VOL*100/10000),INTPART(VOL*100/10000));
3994
+ SZ:=IF(M1>0,SUM(CZB,M1),-1*SUM(CZB,N1));
3995
+ GY:=IF(N1>0,SUM(CZB,N1),0);
3996
+ XQ:=IF(M1>0,SUM(CZB,M1),0);
3997
+ NOTEXT1:STICKLINE(M1>0,0,XQ,1,0),COLORRED;
3998
+ NOTEXT2:STICKLINE(N1>0,0,GY,1,0),COLORGREEN;
3999
+ WSB:SZ,NODRAW;`
4000
+ };
4001
+
4002
+ return data;
4003
+ }
4004
+
4005
+
4006
+ JSIndexScript.prototype.CCL = function()
4007
+ {
4008
+ let data =
4009
+ {
4010
+ Name: 'CCL', Description: '持仓量(适用于期货)', IsMainIndex: false,
4011
+ Script: //脚本
4012
+ `持仓量:VOLINSTK;
4013
+ 成交:VOL,COLORLIRED;
4014
+ 仓差:VOLINSTK-REF(VOLINSTK,1),NODRAW;
4015
+ STICKLINE(仓差>0 AND C>REF(C,1),0,仓差,2,3),COLORRED;
4016
+ STICKLINE(仓差>0 AND C<REF(C,1),0,仓差,2,3),COLORCYAN;
4017
+ STICKLINE(仓差>0 AND C=REF(C,1),0,仓差,2,3),COLORGRAY;
4018
+ STICKLINE(仓差<0 AND C>REF(C,1),0,仓差,2,3),COLORRED;
4019
+ STICKLINE(仓差<0 AND C<REF(C,1),0,仓差,2,3),COLORCYAN;
4020
+ STICKLINE(仓差<0 AND C=REF(C,1),0,仓差,2,3),COLORGRAY;`
4021
+ };
4022
+
4023
+ return data;
4024
+ }
4025
+
4026
+ JSIndexScript.prototype.CCYD = function()
4027
+ {
4028
+ let data =
4029
+ {
4030
+ Name: 'CCYD', Description: '持仓异动(适用于期货)', IsMainIndex: false,
4031
+ Script: //脚本
4032
+ `CCYD:=VOLINSTK-REF(VOLINSTK,1);
4033
+ SPYD:=C-REF(C,1);
4034
+ 多头增仓:IF(SPYD>=0 AND CCYD>=0,ABS(CCYD),DRAWNULL),COLOR3232FF,NODRAW;
4035
+ 空头减仓:IF(SPYD>0 AND CCYD<0,ABS(CCYD),DRAWNULL),COLOR3232FF,NODRAW;
4036
+ 空头增仓:IF(SPYD<0 AND CCYD>=0,ABS(CCYD),DRAWNULL),COLORFFFF54,NODRAW;
4037
+ 多头减仓:IF(SPYD<0 AND CCYD<0,ABS(CCYD),DRAWNULL),COLORFFFF54,NODRAW;
4038
+ STICKLINE(SPYD>=0 AND CCYD>=0,0,CCYD,3,1),COLOR3232FF;
4039
+ STICKLINE(SPYD>0 AND CCYD<0,CCYD,0,3,1),COLOR3232FF;
4040
+ STICKLINE(SPYD<0 AND CCYD>=0,CCYD,0,3,0),COLORFFFF54;
4041
+ STICKLINE(SPYD<0 AND CCYD<0,CCYD,0,3,0),COLORFFFF54;`
4042
+ };
4043
+
4044
+ return data;
4045
+ }
4046
+
4047
+ JSIndexScript.prototype.ABI = function()
4048
+ {
4049
+ let data =
4050
+ {
4051
+ Name: 'ABI', Description: '绝对广量指标', IsMainIndex: false,
4052
+ Args: [{ Name: 'N', Value: 10 }],
4053
+ Condition:
4054
+ {
4055
+ Period:[CONDITION_PERIOD.KLINE_DAY_ID, CONDITION_PERIOD.KLINE_WEEK_ID, CONDITION_PERIOD.KLINE_TWOWEEK_ID,
4056
+ CONDITION_PERIOD.KLINE_MONTH_ID, CONDITION_PERIOD.KLINE_QUARTER_ID ,CONDITION_PERIOD.KLINE_YEAR_ID ],
4057
+ Include:["000001.SH", "000003.SH", "000016.SH", "000300.SH", "000905.SH", "399001.SZ", " 399005.SZ", "399006.SZ"]
4058
+ },
4059
+ Script: //脚本
4060
+ `ABI:100*ABS(ADVANCE-DECLINE)/(ADVANCE+DECLINE);
4061
+ MAABI:EMA(ABI,M);`
4062
+ };
4063
+
4064
+ return data;
4065
+ }
4066
+
3896
4067
 
3897
4068
 
3898
4069