hqchart 1.1.12472 → 1.1.12480

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.
@@ -613,7 +613,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
613
613
 
614
614
  if (IFrameSplitOperator.IsNumber(item.TitleHeight)) chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;
615
615
  else item.TitleHeight=chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;
616
- if (item.IsShowTitleArraw==false) chart.Frame.SubFrame[i].Frame.IsShowTitleArraw=false;
616
+ if (IFrameSplitOperator.IsNumber(item.IsShowTitleArrow)) chart.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
617
617
  if (item.IsShowIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowIndexName=false;
618
618
  if (item.IsShowOverlayIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
619
619
  if (IFrameSplitOperator.IsNumber(item.IndexParamSpace)) chart.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;
@@ -1048,9 +1048,9 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
1048
1048
  if (IFrameSplitOperator.IsNumber(item.YSplitType)) chart.Frame.SubFrame[index].Frame.YSplitOperator.SplitType=item.YSplitType;
1049
1049
  if (!isNaN(item.TitleHeight)) chart.Frame.SubFrame[index].Frame.ChartBorder.TitleHeight=item.TitleHeight;
1050
1050
  if (IFrameSplitOperator.IsBool(item.IsDrawTitleBG)) chart.Frame.SubFrame[index].Frame.IsDrawTitleBG=item.IsDrawTitleBG;
1051
- if (IFrameSplitOperator.IsBool(item.IsShowNameArrow)) chart.Frame.SubFrame[i].Frame.IsShowNameArrow=item.IsShowNameArrow;
1051
+ if (IFrameSplitOperator.IsBool(item.IsShowNameArrow)) chart.Frame.SubFrame[index].Frame.IsShowNameArrow=item.IsShowNameArrow;
1052
1052
 
1053
- if (item.IsShowTitleArraw==false) chart.Frame.SubFrame[index].Frame.IsShowTitleArraw=false;
1053
+ if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) chart.Frame.SubFrame[index].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
1054
1054
  if (item.IsShowIndexName==false) chart.Frame.SubFrame[index].Frame.IsShowIndexName=false;
1055
1055
  if (item.IsShowOverlayIndexName==false) chart.Frame.SubFrame[index].Frame.IsShowOverlayIndexName=false;
1056
1056
  }
@@ -1451,7 +1451,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
1451
1451
 
1452
1452
  if (IFrameSplitOperator.IsNumber(item.TitleHeight)) chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;
1453
1453
 
1454
- if (item.IsShowTitleArraw==false) chart.Frame.SubFrame[i].Frame.IsShowTitleArraw=false;
1454
+ if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) chart.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
1455
1455
  if (item.IsShowIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowIndexName=false;
1456
1456
  if (item.IsShowOverlayIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
1457
1457
  if (IFrameSplitOperator.IsNumber(item.IndexParamSpace)) chart.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;
@@ -7719,7 +7719,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7719
7719
  if (IFrameSplitOperator.IsNumber(windowItem.TitleHeight)) frame.ChartBorder.TitleHeight=windowItem.TitleHeight;
7720
7720
  else windowItem.TitleHeight=frame.ChartBorder.TitleHeight;
7721
7721
 
7722
- if (IFrameSplitOperator.IsBool(windowItem.IsShowTitleArraw)) frame.IsShowTitleArraw=windowItem.IsShowTitleArraw;
7722
+ if (IFrameSplitOperator.IsBool(windowItem.IsShowTitleArrow)) frame.IsShowTitleArrow=windowItem.IsShowTitleArrow;
7723
7723
  if (IFrameSplitOperator.IsBool(windowItem.IsShowIndexName)) frame.IsShowIndexName=windowItem.IsShowIndexName;
7724
7724
  if (IFrameSplitOperator.IsNumber(windowItem.IndexParamSpace)) frame.IndexParamSpace=windowItem.IndexParamSpace;
7725
7725
  if (IFrameSplitOperator.IsNumber(windowItem.IndexTitleSpace)) frame.IndexTitleSpace=windowItem.IndexTitleSpace;
@@ -7770,7 +7770,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7770
7770
 
7771
7771
  if (IFrameSplitOperator.IsNumber(option.SplitCount)) subFrame.Frame.YSplitOperator.SplitCount=option.SplitCount;
7772
7772
  if (IFrameSplitOperator.IsNumber(option.TitleHeight)) subFrame.Frame.ChartBorder.TitleHeight=option.TitleHeight;
7773
- if (IFrameSplitOperator.IsBool(option.IsShowTitleArraw)) subFrame.Frame.IsShowTitleArraw=option.IsShowTitleArraw;
7773
+ if (IFrameSplitOperator.IsBool(option.IsShowTitleArrow)) subFrame.Frame.IsShowTitleArrow=option.IsShowTitleArrow;
7774
7774
  if (IFrameSplitOperator.IsBool(option.IsShowIndexName)) subFrame.Frame.IsShowIndexName=option.IsShowIndexName;
7775
7775
  if (IFrameSplitOperator.IsBool(option.IsShowOverlayIndexName)) subFrame.Frame.IsShowOverlayIndexName=option.IsShowOverlayIndexName;
7776
7776
  if (IFrameSplitOperator.IsNumber(option.IndexParamSpace)) subFrame.Frame.IndexParamSpace=option.IndexParamSpace;
@@ -8991,7 +8991,7 @@ function IChartFramePainting()
8991
8991
 
8992
8992
  this.YSpecificMaxMin=null; //指定Y轴最大最小值
8993
8993
  this.IsShowBorder = true; //是否显示边框
8994
- this.IsShowTitleArraw=true; //是否显示指标信息上涨下跌箭头
8994
+ this.IsShowTitleArrow=true; //是否显示指标信息上涨下跌箭头
8995
8995
  this.IsShowIndexName=true; //是否显示指标名字
8996
8996
  this.IsShowOverlayIndexName=true; //是否显示叠加指标名字
8997
8997
  //this.OverlayIndexType= { Position:0, LineSpace:5 };
@@ -29063,6 +29063,7 @@ function ChartVolStick()
29063
29063
  }
29064
29064
  else //太细了直接话线
29065
29065
  {
29066
+ var preKItem=null;
29066
29067
  for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
29067
29068
  {
29068
29069
  var value=this.Data.Data[i];
@@ -29083,7 +29084,15 @@ function ChartVolStick()
29083
29084
 
29084
29085
  if (x>chartright) break;
29085
29086
 
29086
- var barColor=this.GetBarColor(kItem);
29087
+ if (isMinute)
29088
+ {
29089
+ var barColor=this.GetMinuteBarColor(kItem,preKItem); //分时图颜色单独计算
29090
+ }
29091
+ else
29092
+ {
29093
+ var barColor=this.GetBarColor(kItem);
29094
+ }
29095
+
29087
29096
  this.Canvas.strokeStyle=barColor.Color;
29088
29097
 
29089
29098
  //var x=this.ChartFrame.GetXFromIndex(j);
@@ -29091,6 +29100,8 @@ function ChartVolStick()
29091
29100
  this.Canvas.moveTo(ToFixedPoint(x),y);
29092
29101
  this.Canvas.lineTo(ToFixedPoint(x),yBottom);
29093
29102
  this.Canvas.stroke();
29103
+
29104
+ preKItem=kItem;
29094
29105
  }
29095
29106
  }
29096
29107
  }
@@ -29190,6 +29201,15 @@ function ChartVolStick()
29190
29201
  else return { Color:this.DownColor, IsUp:false };
29191
29202
  }
29192
29203
 
29204
+ this.GetMinuteBarColor=function(kItem, preItem)
29205
+ {
29206
+ var prePrice=kItem.YClose;
29207
+ if (preItem) prePrice=preItem.Close;
29208
+
29209
+ if (kItem.Close>=prePrice) return { Color:this.UpColor, IsUp:true }; //颜色, 是否是上涨
29210
+ else return { Color:this.DownColor, IsUp:false };
29211
+ }
29212
+
29193
29213
  this.GetItemData=function(indexData)
29194
29214
  {
29195
29215
  if (!indexData) return null;
@@ -42552,6 +42572,16 @@ IFrameSplitOperator.IsFloat=function(value)
42552
42572
  return value!=parseInt(value);
42553
42573
  }
42554
42574
 
42575
+ //是否有效
42576
+ IFrameSplitOperator.IsVaild=function(value)
42577
+ {
42578
+ if (isNaN(value)) return false;
42579
+ if (value==null) return false;
42580
+ if (value===undefined) return false;
42581
+
42582
+ return true;
42583
+ }
42584
+
42555
42585
  IFrameSplitOperator.RemoveZero=function(strValue)
42556
42586
  {
42557
42587
  while(strValue.length>0)
@@ -49326,7 +49356,7 @@ function DynamicChartTitlePainting()
49326
49356
  this.IsKLineFrame= this.Frame.ClassName=='KLineFrame' || this.Frame.ClassName=='KLineHScreenFrame';
49327
49357
  this.IsDrawTitleBG=this.Frame.IsDrawTitleBG;
49328
49358
  this.IsShowNameArrow=this.Frame.IsShowNameArrow;
49329
- this.IsShowUpDownArrow=this.Frame.IsShowTitleArraw;
49359
+ this.IsShowUpDownArrow=this.Frame.IsShowTitleArrow;
49330
49360
  this.IsShowIndexName=this.Frame.IsShowIndexName;
49331
49361
  this.IsShowOverlayIndexName=this.Frame.IsShowOverlayIndexName;
49332
49362
  this.OverlayIndexType.Position=this.Frame.OverlayIndexType.Position;
@@ -66832,7 +66862,7 @@ function KLineChartContainer(uielement,OffscreenElement)
66832
66862
 
66833
66863
  if (IFrameSplitOperator.IsNumber(item.TitleHeight)) this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;
66834
66864
  else item.TitleHeight=this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;
66835
- if (item.IsShowTitleArraw==false) this.Frame.SubFrame[i].Frame.IsShowTitleArraw=false;
66865
+ if (IFrameSplitOperator.IsNumber(item.IsShowTitleArrow)) this.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
66836
66866
  if (item.IsShowIndexName==false) this.Frame.SubFrame[i].Frame.IsShowIndexName=false;
66837
66867
  if (item.IsShowOverlayIndexName==false) this.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
66838
66868
  if (IFrameSplitOperator.IsNumber(item.IndexParamSpace)) this.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;
@@ -4693,7 +4693,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4693
4693
 
4694
4694
  if (IFrameSplitOperator.IsNumber(item.TitleHeight)) chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;
4695
4695
  else item.TitleHeight=chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;
4696
- if (item.IsShowTitleArraw==false) chart.Frame.SubFrame[i].Frame.IsShowTitleArraw=false;
4696
+ if (IFrameSplitOperator.IsNumber(item.IsShowTitleArrow)) chart.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
4697
4697
  if (item.IsShowIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowIndexName=false;
4698
4698
  if (item.IsShowOverlayIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
4699
4699
  if (IFrameSplitOperator.IsNumber(item.IndexParamSpace)) chart.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;
@@ -5128,9 +5128,9 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5128
5128
  if (IFrameSplitOperator.IsNumber(item.YSplitType)) chart.Frame.SubFrame[index].Frame.YSplitOperator.SplitType=item.YSplitType;
5129
5129
  if (!isNaN(item.TitleHeight)) chart.Frame.SubFrame[index].Frame.ChartBorder.TitleHeight=item.TitleHeight;
5130
5130
  if (IFrameSplitOperator.IsBool(item.IsDrawTitleBG)) chart.Frame.SubFrame[index].Frame.IsDrawTitleBG=item.IsDrawTitleBG;
5131
- if (IFrameSplitOperator.IsBool(item.IsShowNameArrow)) chart.Frame.SubFrame[i].Frame.IsShowNameArrow=item.IsShowNameArrow;
5131
+ if (IFrameSplitOperator.IsBool(item.IsShowNameArrow)) chart.Frame.SubFrame[index].Frame.IsShowNameArrow=item.IsShowNameArrow;
5132
5132
 
5133
- if (item.IsShowTitleArraw==false) chart.Frame.SubFrame[index].Frame.IsShowTitleArraw=false;
5133
+ if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) chart.Frame.SubFrame[index].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
5134
5134
  if (item.IsShowIndexName==false) chart.Frame.SubFrame[index].Frame.IsShowIndexName=false;
5135
5135
  if (item.IsShowOverlayIndexName==false) chart.Frame.SubFrame[index].Frame.IsShowOverlayIndexName=false;
5136
5136
  }
@@ -5531,7 +5531,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5531
5531
 
5532
5532
  if (IFrameSplitOperator.IsNumber(item.TitleHeight)) chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;
5533
5533
 
5534
- if (item.IsShowTitleArraw==false) chart.Frame.SubFrame[i].Frame.IsShowTitleArraw=false;
5534
+ if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) chart.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
5535
5535
  if (item.IsShowIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowIndexName=false;
5536
5536
  if (item.IsShowOverlayIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
5537
5537
  if (IFrameSplitOperator.IsNumber(item.IndexParamSpace)) chart.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;
@@ -11799,7 +11799,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
11799
11799
  if (IFrameSplitOperator.IsNumber(windowItem.TitleHeight)) frame.ChartBorder.TitleHeight=windowItem.TitleHeight;
11800
11800
  else windowItem.TitleHeight=frame.ChartBorder.TitleHeight;
11801
11801
 
11802
- if (IFrameSplitOperator.IsBool(windowItem.IsShowTitleArraw)) frame.IsShowTitleArraw=windowItem.IsShowTitleArraw;
11802
+ if (IFrameSplitOperator.IsBool(windowItem.IsShowTitleArrow)) frame.IsShowTitleArrow=windowItem.IsShowTitleArrow;
11803
11803
  if (IFrameSplitOperator.IsBool(windowItem.IsShowIndexName)) frame.IsShowIndexName=windowItem.IsShowIndexName;
11804
11804
  if (IFrameSplitOperator.IsNumber(windowItem.IndexParamSpace)) frame.IndexParamSpace=windowItem.IndexParamSpace;
11805
11805
  if (IFrameSplitOperator.IsNumber(windowItem.IndexTitleSpace)) frame.IndexTitleSpace=windowItem.IndexTitleSpace;
@@ -11850,7 +11850,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
11850
11850
 
11851
11851
  if (IFrameSplitOperator.IsNumber(option.SplitCount)) subFrame.Frame.YSplitOperator.SplitCount=option.SplitCount;
11852
11852
  if (IFrameSplitOperator.IsNumber(option.TitleHeight)) subFrame.Frame.ChartBorder.TitleHeight=option.TitleHeight;
11853
- if (IFrameSplitOperator.IsBool(option.IsShowTitleArraw)) subFrame.Frame.IsShowTitleArraw=option.IsShowTitleArraw;
11853
+ if (IFrameSplitOperator.IsBool(option.IsShowTitleArrow)) subFrame.Frame.IsShowTitleArrow=option.IsShowTitleArrow;
11854
11854
  if (IFrameSplitOperator.IsBool(option.IsShowIndexName)) subFrame.Frame.IsShowIndexName=option.IsShowIndexName;
11855
11855
  if (IFrameSplitOperator.IsBool(option.IsShowOverlayIndexName)) subFrame.Frame.IsShowOverlayIndexName=option.IsShowOverlayIndexName;
11856
11856
  if (IFrameSplitOperator.IsNumber(option.IndexParamSpace)) subFrame.Frame.IndexParamSpace=option.IndexParamSpace;
@@ -13071,7 +13071,7 @@ function IChartFramePainting()
13071
13071
 
13072
13072
  this.YSpecificMaxMin=null; //指定Y轴最大最小值
13073
13073
  this.IsShowBorder = true; //是否显示边框
13074
- this.IsShowTitleArraw=true; //是否显示指标信息上涨下跌箭头
13074
+ this.IsShowTitleArrow=true; //是否显示指标信息上涨下跌箭头
13075
13075
  this.IsShowIndexName=true; //是否显示指标名字
13076
13076
  this.IsShowOverlayIndexName=true; //是否显示叠加指标名字
13077
13077
  //this.OverlayIndexType= { Position:0, LineSpace:5 };
@@ -33143,6 +33143,7 @@ function ChartVolStick()
33143
33143
  }
33144
33144
  else //太细了直接话线
33145
33145
  {
33146
+ var preKItem=null;
33146
33147
  for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
33147
33148
  {
33148
33149
  var value=this.Data.Data[i];
@@ -33163,7 +33164,15 @@ function ChartVolStick()
33163
33164
 
33164
33165
  if (x>chartright) break;
33165
33166
 
33166
- var barColor=this.GetBarColor(kItem);
33167
+ if (isMinute)
33168
+ {
33169
+ var barColor=this.GetMinuteBarColor(kItem,preKItem); //分时图颜色单独计算
33170
+ }
33171
+ else
33172
+ {
33173
+ var barColor=this.GetBarColor(kItem);
33174
+ }
33175
+
33167
33176
  this.Canvas.strokeStyle=barColor.Color;
33168
33177
 
33169
33178
  //var x=this.ChartFrame.GetXFromIndex(j);
@@ -33171,6 +33180,8 @@ function ChartVolStick()
33171
33180
  this.Canvas.moveTo(ToFixedPoint(x),y);
33172
33181
  this.Canvas.lineTo(ToFixedPoint(x),yBottom);
33173
33182
  this.Canvas.stroke();
33183
+
33184
+ preKItem=kItem;
33174
33185
  }
33175
33186
  }
33176
33187
  }
@@ -33270,6 +33281,15 @@ function ChartVolStick()
33270
33281
  else return { Color:this.DownColor, IsUp:false };
33271
33282
  }
33272
33283
 
33284
+ this.GetMinuteBarColor=function(kItem, preItem)
33285
+ {
33286
+ var prePrice=kItem.YClose;
33287
+ if (preItem) prePrice=preItem.Close;
33288
+
33289
+ if (kItem.Close>=prePrice) return { Color:this.UpColor, IsUp:true }; //颜色, 是否是上涨
33290
+ else return { Color:this.DownColor, IsUp:false };
33291
+ }
33292
+
33273
33293
  this.GetItemData=function(indexData)
33274
33294
  {
33275
33295
  if (!indexData) return null;
@@ -46632,6 +46652,16 @@ IFrameSplitOperator.IsFloat=function(value)
46632
46652
  return value!=parseInt(value);
46633
46653
  }
46634
46654
 
46655
+ //是否有效
46656
+ IFrameSplitOperator.IsVaild=function(value)
46657
+ {
46658
+ if (isNaN(value)) return false;
46659
+ if (value==null) return false;
46660
+ if (value===undefined) return false;
46661
+
46662
+ return true;
46663
+ }
46664
+
46635
46665
  IFrameSplitOperator.RemoveZero=function(strValue)
46636
46666
  {
46637
46667
  while(strValue.length>0)
@@ -53406,7 +53436,7 @@ function DynamicChartTitlePainting()
53406
53436
  this.IsKLineFrame= this.Frame.ClassName=='KLineFrame' || this.Frame.ClassName=='KLineHScreenFrame';
53407
53437
  this.IsDrawTitleBG=this.Frame.IsDrawTitleBG;
53408
53438
  this.IsShowNameArrow=this.Frame.IsShowNameArrow;
53409
- this.IsShowUpDownArrow=this.Frame.IsShowTitleArraw;
53439
+ this.IsShowUpDownArrow=this.Frame.IsShowTitleArrow;
53410
53440
  this.IsShowIndexName=this.Frame.IsShowIndexName;
53411
53441
  this.IsShowOverlayIndexName=this.Frame.IsShowOverlayIndexName;
53412
53442
  this.OverlayIndexType.Position=this.Frame.OverlayIndexType.Position;
@@ -70912,7 +70942,7 @@ function KLineChartContainer(uielement,OffscreenElement)
70912
70942
 
70913
70943
  if (IFrameSplitOperator.IsNumber(item.TitleHeight)) this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;
70914
70944
  else item.TitleHeight=this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;
70915
- if (item.IsShowTitleArraw==false) this.Frame.SubFrame[i].Frame.IsShowTitleArraw=false;
70945
+ if (IFrameSplitOperator.IsNumber(item.IsShowTitleArrow)) this.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
70916
70946
  if (item.IsShowIndexName==false) this.Frame.SubFrame[i].Frame.IsShowIndexName=false;
70917
70947
  if (item.IsShowOverlayIndexName==false) this.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
70918
70948
  if (IFrameSplitOperator.IsNumber(item.IndexParamSpace)) this.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;
@@ -94792,6 +94822,9 @@ function JSAlgorithm(errorHandler,symbolData)
94792
94822
 
94793
94823
  if (i<data.length && i<data2.length)
94794
94824
  {
94825
+ if (!IFrameSplitOperator.IsVaild(data[i])) continue;
94826
+ if (!IFrameSplitOperator.IsVaild(data2[i])) continue;
94827
+
94795
94828
  if ( !isNaN(data[i]) && !isNaN(data2[i]) ) result[i]=(data[i]>data2[i] ? 1:0);
94796
94829
  }
94797
94830
  }
@@ -94804,6 +94837,9 @@ function JSAlgorithm(errorHandler,symbolData)
94804
94837
  for(let i in data2)
94805
94838
  {
94806
94839
  result[i]=null;
94840
+ if (!IFrameSplitOperator.IsVaild(data)) continue;
94841
+ if (!IFrameSplitOperator.IsVaild(data2[i])) continue;
94842
+
94807
94843
  if ( !isNaN(data) && !isNaN(data2[i]) ) result[i]=(data>data2[i] ? 1 : 0);
94808
94844
  }
94809
94845
  }
@@ -94812,6 +94848,9 @@ function JSAlgorithm(errorHandler,symbolData)
94812
94848
  for(let i in data)
94813
94849
  {
94814
94850
  result[i]=null;
94851
+ if (!IFrameSplitOperator.IsVaild(data[i])) continue;
94852
+ if (!IFrameSplitOperator.IsVaild(data2)) continue;
94853
+
94815
94854
  if ( !isNaN(data[i]) && !isNaN(data2) ) result[i]=(data[i]>data2 ? 1 : 0);
94816
94855
  }
94817
94856
  }
@@ -94839,7 +94878,10 @@ function JSAlgorithm(errorHandler,symbolData)
94839
94878
 
94840
94879
  if (i<data.length && i<data2.length)
94841
94880
  {
94842
- if ( !isNaN(data[i]) && !isNaN(data2[i]) ) result[i]=(data[i]>=data2[i] ? 1:0);
94881
+ if (!IFrameSplitOperator.IsVaild(data[i])) continue;
94882
+ if (!IFrameSplitOperator.IsVaild(data2[i])) continue;
94883
+
94884
+ result[i]=(data[i]>=data2[i] ? 1:0);
94843
94885
  }
94844
94886
  }
94845
94887
 
@@ -94851,7 +94893,10 @@ function JSAlgorithm(errorHandler,symbolData)
94851
94893
  for(let i in data2)
94852
94894
  {
94853
94895
  result[i]=null;
94854
- if ( !isNaN(data) && !isNaN(data2[i]) ) result[i]=(data>=data2[i] ? 1 : 0);
94896
+ if (!IFrameSplitOperator.IsVaild(data)) continue;
94897
+ if (!IFrameSplitOperator.IsVaild(data2[i])) continue;
94898
+
94899
+ result[i]=(data>=data2[i] ? 1 : 0);
94855
94900
  }
94856
94901
  }
94857
94902
  else if (isNumber2 && Array.isArray(data)) //数组-单数据
@@ -94859,7 +94904,10 @@ function JSAlgorithm(errorHandler,symbolData)
94859
94904
  for(let i in data)
94860
94905
  {
94861
94906
  result[i]=null;
94862
- if ( !isNaN(data[i]) && !isNaN(data2) ) result[i]=(data[i]>=data2 ? 1 : 0);
94907
+ if (!IFrameSplitOperator.IsVaild(data[i])) continue;
94908
+ if (!IFrameSplitOperator.IsVaild(data2)) continue;
94909
+
94910
+ result[i]=(data[i]>=data2 ? 1 : 0);
94863
94911
  }
94864
94912
  }
94865
94913
 
@@ -94886,7 +94934,10 @@ function JSAlgorithm(errorHandler,symbolData)
94886
94934
 
94887
94935
  if (i<data.length && i<data2.length)
94888
94936
  {
94889
- if ( !isNaN(data[i]) && !isNaN(data2[i]) ) result[i]=(data[i]<data2[i] ? 1:0);
94937
+ if (!IFrameSplitOperator.IsVaild(data[i])) continue;
94938
+ if (!IFrameSplitOperator.IsVaild(data2[i])) continue;
94939
+
94940
+ result[i]=(data[i]<data2[i] ? 1:0);
94890
94941
  }
94891
94942
  }
94892
94943
 
@@ -94898,7 +94949,10 @@ function JSAlgorithm(errorHandler,symbolData)
94898
94949
  for(let i in data2)
94899
94950
  {
94900
94951
  result[i]=null;
94901
- if ( !isNaN(data) && !isNaN(data2[i]) ) result[i]=(data<data2[i] ? 1 : 0);
94952
+ if (!IFrameSplitOperator.IsVaild(data)) continue;
94953
+ if (!IFrameSplitOperator.IsVaild(data2[i])) continue;
94954
+
94955
+ result[i]=(data<data2[i] ? 1 : 0);
94902
94956
  }
94903
94957
  }
94904
94958
  else if (isNumber2 && Array.isArray(data)) //数组-单数据
@@ -94906,7 +94960,10 @@ function JSAlgorithm(errorHandler,symbolData)
94906
94960
  for(let i in data)
94907
94961
  {
94908
94962
  result[i]=null;
94909
- if ( !isNaN(data[i]) && !isNaN(data2) ) result[i]=(data[i]<data2 ? 1 : 0);
94963
+ if (!IFrameSplitOperator.IsVaild(data[i])) continue;
94964
+ if (!IFrameSplitOperator.IsVaild(data2)) continue;
94965
+
94966
+ result[i]=(data[i]<data2 ? 1 : 0);
94910
94967
  }
94911
94968
  }
94912
94969
 
@@ -94933,7 +94990,10 @@ function JSAlgorithm(errorHandler,symbolData)
94933
94990
 
94934
94991
  if (i<data.length && i<data2.length)
94935
94992
  {
94936
- if ( !isNaN(data[i]) && !isNaN(data2[i]) ) result[i]=(data[i]<=data2[i] ? 1:0);
94993
+ if (!IFrameSplitOperator.IsVaild(data[i])) continue;
94994
+ if (!IFrameSplitOperator.IsVaild(data2[i])) continue;
94995
+
94996
+ result[i]=(data[i]<=data2[i] ? 1:0);
94937
94997
  }
94938
94998
  }
94939
94999
 
@@ -94945,7 +95005,10 @@ function JSAlgorithm(errorHandler,symbolData)
94945
95005
  for(let i in data2)
94946
95006
  {
94947
95007
  result[i]=null;
94948
- if ( !isNaN(data) && !isNaN(data2[i]) ) result[i]=(data<=data2[i] ? 1 : 0);
95008
+ if (!IFrameSplitOperator.IsVaild(data)) continue;
95009
+ if (!IFrameSplitOperator.IsVaild(data2[i])) continue;
95010
+
95011
+ result[i]=(data<=data2[i] ? 1 : 0);
94949
95012
  }
94950
95013
  }
94951
95014
  else if (isNumber2 && Array.isArray(data)) //数组-单数据
@@ -94953,7 +95016,10 @@ function JSAlgorithm(errorHandler,symbolData)
94953
95016
  for(let i in data)
94954
95017
  {
94955
95018
  result[i]=null;
94956
- if ( !isNaN(data[i]) && !isNaN(data2) ) result[i]=(data[i]<=data2 ? 1 : 0);
95019
+ if (!IFrameSplitOperator.IsVaild(data[i])) continue;
95020
+ if (!IFrameSplitOperator.IsVaild(data2)) continue;
95021
+
95022
+ result[i]=(data[i]<=data2 ? 1 : 0);
94957
95023
  }
94958
95024
  }
94959
95025
 
@@ -96040,9 +96106,16 @@ function JSAlgorithm(errorHandler,symbolData)
96040
96106
  for(var i=0;i<n.length;++i)
96041
96107
  {
96042
96108
  var period=n[i];
96043
- if (!IFrameSplitOperator.IsNumber(period)) continue;
96044
-
96045
- if (period<1) period=i+1;
96109
+
96110
+ if (period==0)
96111
+ {
96112
+ result[i]=0;
96113
+ continue;
96114
+ }
96115
+
96116
+ if (!IFrameSplitOperator.IsNumber(period) ) period=i+1; //无效周期 第一个有效值开始.
96117
+ else if (period<0) period=i+1;
96118
+
96046
96119
  count=0;
96047
96120
  for(var j=i, k=0 ;j>=0 && k<period ;--j,++k) //当前往前period天 统计
96048
96121
  {
@@ -96506,7 +96579,7 @@ function JSAlgorithm(errorHandler,symbolData)
96506
96579
 
96507
96580
  if (!Array.isArray(n))
96508
96581
  {
96509
- if (n==0)
96582
+ if (n<=0)
96510
96583
  {
96511
96584
  var start=-1;
96512
96585
  for(var i=0; i<data.length; ++i) //取第1个有效数
@@ -96529,6 +96602,12 @@ function JSAlgorithm(errorHandler,symbolData)
96529
96602
  }
96530
96603
  else
96531
96604
  {
96605
+ result[0]=data[0];
96606
+ for(var i=1;i<n && i<data.length;++i) //前面小于N周期的累加
96607
+ {
96608
+ result[i] = result[i-1]+data[i];
96609
+ }
96610
+
96532
96611
  for(var i=n-1,j=0;i<data.length;++i,++j)
96533
96612
  {
96534
96613
  for(var k=0;k<n;++k)
@@ -104951,7 +105030,7 @@ function JSSymbolData(ast,option,jsExecute)
104951
105030
  return this.Data.GetClose();
104952
105031
  case 'VOL':
104953
105032
  case 'V':
104954
- if (MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol))
105033
+ if (MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol) && this.DataType==HQ_DATA_TYPE.KLINE_ID) //!! A股K线量单位时股,分时图单位还是手
104955
105034
  return this.Data.GetVol(100); //A股的 把股转成手
104956
105035
  return this.Data.GetVol();
104957
105036
  case 'OPEN':
@@ -127966,7 +128045,7 @@ function ScrollBarBGChart()
127966
128045
 
127967
128046
 
127968
128047
 
127969
- var HQCHART_VERSION="1.1.12469";
128048
+ var HQCHART_VERSION="1.1.12479";
127970
128049
 
127971
128050
  function PrintHQChartVersion()
127972
128051
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.12471";
8
+ var HQCHART_VERSION="1.1.12479";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {