hqchart 1.1.13144 → 1.1.13152
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.
|
@@ -22482,7 +22482,34 @@ function HQTradeHScreenFrame()
|
|
|
22482
22482
|
}
|
|
22483
22483
|
}
|
|
22484
22484
|
|
|
22485
|
-
if (frame!=null)
|
|
22485
|
+
if (frame!=null)
|
|
22486
|
+
{
|
|
22487
|
+
var xValue= frame.GetYData(x);
|
|
22488
|
+
|
|
22489
|
+
if (frame.GetMainOverlayFrame)
|
|
22490
|
+
{
|
|
22491
|
+
var aryOverlayFrame=frame.GetMainOverlayFrame();
|
|
22492
|
+
if (aryOverlayFrame)
|
|
22493
|
+
{
|
|
22494
|
+
if (aryOverlayFrame[0]) //左侧
|
|
22495
|
+
{
|
|
22496
|
+
var leftFrame=aryOverlayFrame[0];
|
|
22497
|
+
var value=leftFrame.GetYData(x);
|
|
22498
|
+
outObject.RightYValue=xValue;
|
|
22499
|
+
xValue=value;
|
|
22500
|
+
}
|
|
22501
|
+
|
|
22502
|
+
if (aryOverlayFrame[1]) //右侧
|
|
22503
|
+
{
|
|
22504
|
+
var rightFrame=aryOverlayFrame[1];
|
|
22505
|
+
var value=rightFrame.GetYData(x);
|
|
22506
|
+
outObject.RightYValue=value;
|
|
22507
|
+
}
|
|
22508
|
+
}
|
|
22509
|
+
}
|
|
22510
|
+
|
|
22511
|
+
return xValue;
|
|
22512
|
+
}
|
|
22486
22513
|
}
|
|
22487
22514
|
}
|
|
22488
22515
|
|
|
@@ -28605,6 +28632,198 @@ function ChartKLine()
|
|
|
28605
28632
|
this.PtMin=ptMin;
|
|
28606
28633
|
}
|
|
28607
28634
|
|
|
28635
|
+
this.DrawKagi=function() //卡吉图
|
|
28636
|
+
{
|
|
28637
|
+
var isHScreen=(this.ChartFrame.IsHScreen===true);
|
|
28638
|
+
var dataWidth=this.ChartFrame.DataWidth;
|
|
28639
|
+
var distanceWidth=this.ChartFrame.DistanceWidth;
|
|
28640
|
+
var xPointCount=this.ChartFrame.XPointCount;
|
|
28641
|
+
|
|
28642
|
+
if (isHScreen)
|
|
28643
|
+
{
|
|
28644
|
+
var border=this.ChartBorder.GetHScreenBorder();
|
|
28645
|
+
var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
28646
|
+
var chartright=border.BottomEx;
|
|
28647
|
+
var left=border.TopEx+g_JSChartResource.FrameLeftMargin;
|
|
28648
|
+
}
|
|
28649
|
+
else
|
|
28650
|
+
{
|
|
28651
|
+
var border=this.ChartBorder.GetBorder();
|
|
28652
|
+
var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
28653
|
+
var chartright=border.RightEx;
|
|
28654
|
+
var left=border.Left+g_JSChartResource.FrameLeftMargin;
|
|
28655
|
+
}
|
|
28656
|
+
|
|
28657
|
+
var ptMax={X:null,Y:null,Value:null,Align:'left'};
|
|
28658
|
+
var ptMin={X:null,Y:null,Value:null,Align:'left'};
|
|
28659
|
+
this.ShowRange.Start=this.Data.DataOffset;
|
|
28660
|
+
this.ShowRange.End=this.ShowRange.Start;
|
|
28661
|
+
this.ShowRange.DataCount=0;
|
|
28662
|
+
this.ShowRange.ShowCount=xPointCount;
|
|
28663
|
+
this.DrawKRange.Start=this.Data.DataOffset;
|
|
28664
|
+
|
|
28665
|
+
var lineWidth=2*GetDevicePixelRatio();
|
|
28666
|
+
this.Canvas.lineWidth=lineWidth;
|
|
28667
|
+
var preItem={ Item:null, X:left, Y:null };
|
|
28668
|
+
var index=this.Data.DataOffset-1;
|
|
28669
|
+
if (index>=0 && index<this.Data.Data.length)
|
|
28670
|
+
{
|
|
28671
|
+
var item=this.Data.Data[index];
|
|
28672
|
+
preItem.Item=item;
|
|
28673
|
+
if (item.Direction==1) //上
|
|
28674
|
+
{
|
|
28675
|
+
preItem.Y=this.GetYFromData(item.High,false);
|
|
28676
|
+
}
|
|
28677
|
+
else if (item.Direction==2)
|
|
28678
|
+
{
|
|
28679
|
+
preItem.Y=this.GetYFromData(item.Low,false);
|
|
28680
|
+
}
|
|
28681
|
+
}
|
|
28682
|
+
|
|
28683
|
+
|
|
28684
|
+
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth),++this.ShowRange.DataCount)
|
|
28685
|
+
{
|
|
28686
|
+
var data=this.Data.Data[i];
|
|
28687
|
+
this.ShowRange.End=i;
|
|
28688
|
+
if (data.Open==null || data.High==null || data.Low==null || data.Close==null) continue;
|
|
28689
|
+
|
|
28690
|
+
var left=xOffset;
|
|
28691
|
+
var right=xOffset+dataWidth;
|
|
28692
|
+
if (right>chartright) break;
|
|
28693
|
+
var x=left+(right-left)/2;
|
|
28694
|
+
var yLow=this.GetYFromData(data.Low,false);
|
|
28695
|
+
var yHigh=this.GetYFromData(data.High,false);
|
|
28696
|
+
this.DrawKRange.End=i;
|
|
28697
|
+
|
|
28698
|
+
if (ptMax.Value==null || ptMax.Value<data.High) //求最大值
|
|
28699
|
+
{
|
|
28700
|
+
ptMax.X=x;
|
|
28701
|
+
ptMax.Y=yHigh;
|
|
28702
|
+
ptMax.Value=data.High;
|
|
28703
|
+
ptMax.Align=j<xPointCount/2?'left':'right';
|
|
28704
|
+
}
|
|
28705
|
+
|
|
28706
|
+
if (ptMin.Value==null || ptMin.Value>data.Low) //求最小值
|
|
28707
|
+
{
|
|
28708
|
+
ptMin.X=x;
|
|
28709
|
+
ptMin.Y=yLow;
|
|
28710
|
+
ptMin.Value=data.Low;
|
|
28711
|
+
ptMin.Align=j<xPointCount/2?'left':'right';
|
|
28712
|
+
}
|
|
28713
|
+
|
|
28714
|
+
var xFixed=ToFixedPoint2(lineWidth,x);
|
|
28715
|
+
|
|
28716
|
+
if (preItem.Item)
|
|
28717
|
+
{
|
|
28718
|
+
this.Canvas.beginPath();
|
|
28719
|
+
var yFixed=ToFixedPoint2(lineWidth,preItem.Y);
|
|
28720
|
+
|
|
28721
|
+
this.Canvas.moveTo(preItem.X, yFixed);
|
|
28722
|
+
this.Canvas.lineTo(xFixed, yFixed);
|
|
28723
|
+
var prePrice=null;
|
|
28724
|
+
if (preItem.Item.Direction==1) prePrice=preItem.Item.Low;
|
|
28725
|
+
else if (preItem.Item.Direction==2) prePrice=preItem.Item.High;
|
|
28726
|
+
|
|
28727
|
+
if (data.Direction==1)
|
|
28728
|
+
{
|
|
28729
|
+
if (data.High<prePrice)
|
|
28730
|
+
{
|
|
28731
|
+
this.Canvas.lineTo(xFixed, yHigh);
|
|
28732
|
+
this.Canvas.strokeStyle=this.DownColor;
|
|
28733
|
+
this.Canvas.stroke();
|
|
28734
|
+
}
|
|
28735
|
+
else
|
|
28736
|
+
{
|
|
28737
|
+
var yPrePrice=this.GetYFromData(prePrice,false);
|
|
28738
|
+
this.Canvas.lineTo(xFixed, yPrePrice);
|
|
28739
|
+
this.Canvas.strokeStyle=this.DownColor;
|
|
28740
|
+
this.Canvas.stroke();
|
|
28741
|
+
|
|
28742
|
+
this.Canvas.beginPath();
|
|
28743
|
+
this.Canvas.moveTo(xFixed, yPrePrice);
|
|
28744
|
+
this.Canvas.lineTo(xFixed, yHigh);
|
|
28745
|
+
this.Canvas.strokeStyle=this.UpColor;
|
|
28746
|
+
this.Canvas.stroke();
|
|
28747
|
+
}
|
|
28748
|
+
|
|
28749
|
+
}
|
|
28750
|
+
else if (data.Direction==2)
|
|
28751
|
+
{
|
|
28752
|
+
if (data.Low>prePrice)
|
|
28753
|
+
{
|
|
28754
|
+
this.Canvas.lineTo(xFixed, yLow);
|
|
28755
|
+
this.Canvas.strokeStyle=this.DownColor; //阳线
|
|
28756
|
+
this.Canvas.stroke();
|
|
28757
|
+
}
|
|
28758
|
+
else
|
|
28759
|
+
{
|
|
28760
|
+
var yPrePrice=this.GetYFromData(prePrice,false);
|
|
28761
|
+
this.Canvas.lineTo(xFixed, yPrePrice);
|
|
28762
|
+
this.Canvas.strokeStyle=this.DownColor; //阳线
|
|
28763
|
+
this.Canvas.stroke();
|
|
28764
|
+
|
|
28765
|
+
this.Canvas.beginPath();
|
|
28766
|
+
this.Canvas.moveTo(xFixed, yPrePrice);
|
|
28767
|
+
this.Canvas.lineTo(xFixed, yLow);
|
|
28768
|
+
this.Canvas.strokeStyle=this.UpColor;
|
|
28769
|
+
this.Canvas.stroke();
|
|
28770
|
+
}
|
|
28771
|
+
}
|
|
28772
|
+
|
|
28773
|
+
}
|
|
28774
|
+
else
|
|
28775
|
+
{
|
|
28776
|
+
this.Canvas.beginPath();
|
|
28777
|
+
if (data.Direction==1)
|
|
28778
|
+
{
|
|
28779
|
+
this.Canvas.moveTo(xFixed, yLow);
|
|
28780
|
+
this.Canvas.lineTo(xFixed, yHigh);
|
|
28781
|
+
}
|
|
28782
|
+
else if (data.Direction==2)
|
|
28783
|
+
{
|
|
28784
|
+
this.Canvas.moveTo(xFixed, yHigh);
|
|
28785
|
+
this.Canvas.lineTo(xFixed, yLow);
|
|
28786
|
+
}
|
|
28787
|
+
this.Canvas.stroke();
|
|
28788
|
+
}
|
|
28789
|
+
|
|
28790
|
+
/*
|
|
28791
|
+
if (data.YClose<data.Close)
|
|
28792
|
+
{
|
|
28793
|
+
this.Canvas.strokeStyle=this.UpColor; //阳线
|
|
28794
|
+
this.Canvas.fillStyle=this.UpColor;
|
|
28795
|
+
}
|
|
28796
|
+
else if (data.YClose>data.Close)
|
|
28797
|
+
{
|
|
28798
|
+
this.Canvas.strokeStyle=this.DownColor; //阴线
|
|
28799
|
+
this.Canvas.fillStyle=this.DownColor;
|
|
28800
|
+
}
|
|
28801
|
+
|
|
28802
|
+
this.Canvas.beginPath();
|
|
28803
|
+
if (isHScreen)
|
|
28804
|
+
{
|
|
28805
|
+
this.Canvas.moveTo(yHigh,ToFixedPoint(x));
|
|
28806
|
+
this.Canvas.lineTo(yLow,ToFixedPoint(x));
|
|
28807
|
+
}
|
|
28808
|
+
else
|
|
28809
|
+
{
|
|
28810
|
+
this.Canvas.moveTo(ToFixedPoint2(lineWidth,x),yHigh);
|
|
28811
|
+
this.Canvas.lineTo(ToFixedPoint2(lineWidth,x),yLow);
|
|
28812
|
+
}
|
|
28813
|
+
this.Canvas.stroke();
|
|
28814
|
+
*/
|
|
28815
|
+
|
|
28816
|
+
preItem.Item=data;
|
|
28817
|
+
preItem.X=x;
|
|
28818
|
+
|
|
28819
|
+
if (data.Direction==1) preItem.Y=yHigh; //上
|
|
28820
|
+
else if (data.Direction==2) preItem.Y=yLow //下
|
|
28821
|
+
}
|
|
28822
|
+
|
|
28823
|
+
this.PtMax=ptMax;
|
|
28824
|
+
this.PtMin=ptMin;
|
|
28825
|
+
}
|
|
28826
|
+
|
|
28608
28827
|
this.DrawTrade=function() //交易系统
|
|
28609
28828
|
{
|
|
28610
28829
|
if (!this.TradeData) return;
|
|
@@ -29112,6 +29331,10 @@ function ChartKLine()
|
|
|
29112
29331
|
{
|
|
29113
29332
|
this.DrawHLCArea();
|
|
29114
29333
|
}
|
|
29334
|
+
else if (this.DrawType==16)
|
|
29335
|
+
{
|
|
29336
|
+
this.DrawKagi();
|
|
29337
|
+
}
|
|
29115
29338
|
else if (this.DrawType==17)
|
|
29116
29339
|
{
|
|
29117
29340
|
this.DrawOrderFlow_Style4();
|
|
@@ -52211,6 +52434,7 @@ function ChartCorssCursor()
|
|
|
52211
52434
|
|
|
52212
52435
|
this.StringFormatY.Value=yValue;
|
|
52213
52436
|
this.StringFormatY.FrameID=yValueExtend.FrameID;
|
|
52437
|
+
this.StringFormatY.RValue=yValueExtend.RightYValue; //右侧子坐标
|
|
52214
52438
|
this.StringFormatY.Point={X:x, Y:y};
|
|
52215
52439
|
this.StringFormatY.ClientPos=this.ClientPos;
|
|
52216
52440
|
|
|
@@ -53015,6 +53239,7 @@ function HQPriceStringFormat()
|
|
|
53015
53239
|
{
|
|
53016
53240
|
if (this.DataFormatType==1) this.Text=IFrameSplitOperator.FormatValueThousandsString(this.Value,defaultfloatPrecision);
|
|
53017
53241
|
else this.Text=IFrameSplitOperator.FormatValueString(this.Value,defaultfloatPrecision,this.LanguageID);
|
|
53242
|
+
if (IFrameSplitOperator.IsNumber(this.RValue)) this.RText=IFrameSplitOperator.FormatValueString(this.RValue,defaultfloatPrecision,this.LanguageID);
|
|
53018
53243
|
}
|
|
53019
53244
|
|
|
53020
53245
|
if (this.GetEventCallback)
|
|
@@ -69652,20 +69877,24 @@ function RenkoCalculate()
|
|
|
69652
69877
|
//
|
|
69653
69878
|
function KagiCalculate()
|
|
69654
69879
|
{
|
|
69655
|
-
this.
|
|
69656
|
-
this.
|
|
69657
|
-
this.
|
|
69658
|
-
|
|
69880
|
+
this.newMethod=RenkoCalculate; //派生
|
|
69881
|
+
this.newMethod();
|
|
69882
|
+
delete this.newMethod;
|
|
69883
|
+
|
|
69884
|
+
this.ClassName="KagiCalculate";
|
|
69885
|
+
this.BrickSizeType=0;
|
|
69886
|
+
this.BrickSize=0.5; //固定大小
|
|
69659
69887
|
|
|
69660
69888
|
this.RecvHistoryData=function(sourceData, option) //历史日线数据
|
|
69661
69889
|
{
|
|
69662
69890
|
this.Symbol=option.Symbol;
|
|
69663
69891
|
this.SourceData=sourceData;
|
|
69664
69892
|
this.FloatPrecision=GetfloatPrecision(this.Symbol);
|
|
69665
|
-
|
|
69893
|
+
if (this.BrickSizeType==1) this.CalculateATR();
|
|
69894
|
+
return this.CalculateByClose(sourceData);
|
|
69666
69895
|
}
|
|
69667
69896
|
|
|
69668
|
-
this.
|
|
69897
|
+
this.CalculateByClose=function(sourceData)
|
|
69669
69898
|
{
|
|
69670
69899
|
var bindData=new ChartData();
|
|
69671
69900
|
bindData.Data=[]
|
|
@@ -69676,13 +69905,139 @@ function KagiCalculate()
|
|
|
69676
69905
|
|
|
69677
69906
|
if (!IFrameSplitOperator.IsNonEmptyArray(sourceData.Data)) return bindData;
|
|
69678
69907
|
|
|
69679
|
-
var
|
|
69908
|
+
var brickSize=this.BrickSize;
|
|
69909
|
+
if (this.BrickSizeType==1) brickSize=this.ATR.BrickSize;
|
|
69680
69910
|
|
|
69681
69911
|
var kItem=sourceData.Data[0];
|
|
69682
|
-
|
|
69683
|
-
|
|
69912
|
+
var kagiItem=HistoryData.Copy(kItem);
|
|
69913
|
+
|
|
69914
|
+
kagiItem.High=kagiItem.Low=kItem.Close;
|
|
69915
|
+
kagiItem.StartItem=kItem;
|
|
69916
|
+
kagiItem.Direction=0; //1 上 2=下
|
|
69917
|
+
|
|
69918
|
+
var T_MergeKData=function(dest, src)
|
|
69684
69919
|
{
|
|
69920
|
+
dest.Vol+=src.Vol;
|
|
69921
|
+
dest.Amount+=src.Amount;
|
|
69685
69922
|
}
|
|
69923
|
+
|
|
69924
|
+
var index=1;
|
|
69925
|
+
for( ;index<sourceData.Data.length;++index) //确定好方向
|
|
69926
|
+
{
|
|
69927
|
+
var kItem=sourceData.Data[index];
|
|
69928
|
+
if (kItem.Close>kagiItem.Close)
|
|
69929
|
+
{
|
|
69930
|
+
kagiItem.Direction=1;
|
|
69931
|
+
kagiItem.Close=kItem.Close;
|
|
69932
|
+
kagiItem.EndItem=kItem;
|
|
69933
|
+
kagiItem.High=kItem.Close;
|
|
69934
|
+
break;
|
|
69935
|
+
}
|
|
69936
|
+
else if (kItem.Close<kagiItem.Close)
|
|
69937
|
+
{
|
|
69938
|
+
kagiItem.Direction=2;
|
|
69939
|
+
kagiItem.Close=kItem.Close;
|
|
69940
|
+
kagiItem.EndItem=kItem;
|
|
69941
|
+
kagiItem.Low=kItem.Close;
|
|
69942
|
+
break;
|
|
69943
|
+
}
|
|
69944
|
+
}
|
|
69945
|
+
|
|
69946
|
+
var changeItem=null;
|
|
69947
|
+
for(++index; index<sourceData.Data.length;++index )
|
|
69948
|
+
{
|
|
69949
|
+
var kItem=sourceData.Data[index];
|
|
69950
|
+
if (kagiItem.Direction==1) //上
|
|
69951
|
+
{
|
|
69952
|
+
if (kItem.Close>=kagiItem.High)
|
|
69953
|
+
{
|
|
69954
|
+
kagiItem.Close=kItem.Close;
|
|
69955
|
+
kagiItem.High=kItem.Close;
|
|
69956
|
+
kagiItem.EndItem=kItem;
|
|
69957
|
+
changeItem=null;
|
|
69958
|
+
}
|
|
69959
|
+
else
|
|
69960
|
+
{
|
|
69961
|
+
if (!changeItem)
|
|
69962
|
+
{
|
|
69963
|
+
changeItem=HistoryData.Copy(kItem);
|
|
69964
|
+
changeItem.High=changeItem.Low=kItem.Close;
|
|
69965
|
+
}
|
|
69966
|
+
else
|
|
69967
|
+
{
|
|
69968
|
+
changeItem.Close=kItem.Close;
|
|
69969
|
+
if (changeItem.Low>kItem.Close) changeItem.Low=kItem.Close;
|
|
69970
|
+
}
|
|
69971
|
+
|
|
69972
|
+
if (Math.abs(changeItem.Low-kagiItem.High)>brickSize) //达到变盘点
|
|
69973
|
+
{
|
|
69974
|
+
bindData.Data.push(kagiItem);
|
|
69975
|
+
|
|
69976
|
+
var newItem=HistoryData.Copy(kItem);
|
|
69977
|
+
newItem.High=kagiItem.High;
|
|
69978
|
+
newItem.Low=kItem.Close;
|
|
69979
|
+
newItem.Direction=2; //1 上 2=下
|
|
69980
|
+
newItem.StartItem=kItem;
|
|
69981
|
+
|
|
69982
|
+
kagiItem=newItem;
|
|
69983
|
+
changeItem=null;
|
|
69984
|
+
}
|
|
69985
|
+
}
|
|
69986
|
+
}
|
|
69987
|
+
else if (kagiItem.Direction==2) //下
|
|
69988
|
+
{
|
|
69989
|
+
if (kItem.Close<=kagiItem.Low)
|
|
69990
|
+
{
|
|
69991
|
+
kagiItem.Close=kItem.Close;
|
|
69992
|
+
kagiItem.Low=kItem.Close;
|
|
69993
|
+
kagiItem.EndItem=kItem;
|
|
69994
|
+
}
|
|
69995
|
+
else
|
|
69996
|
+
{
|
|
69997
|
+
if (!changeItem)
|
|
69998
|
+
{
|
|
69999
|
+
changeItem=HistoryData.Copy(kItem);
|
|
70000
|
+
changeItem.High=changeItem.Low=kItem.Close;
|
|
70001
|
+
}
|
|
70002
|
+
else
|
|
70003
|
+
{
|
|
70004
|
+
changeItem.Close=kItem.Close;
|
|
70005
|
+
if (changeItem.High<kItem.Close) changeItem.High=kItem.Close;
|
|
70006
|
+
}
|
|
70007
|
+
|
|
70008
|
+
if (Math.abs(changeItem.High-kagiItem.Low)>brickSize) //达到变盘点
|
|
70009
|
+
{
|
|
70010
|
+
bindData.Data.push(kagiItem);
|
|
70011
|
+
|
|
70012
|
+
var newItem=HistoryData.Copy(kItem);
|
|
70013
|
+
newItem.High=kItem.Close;
|
|
70014
|
+
newItem.Low=kagiItem.Low;
|
|
70015
|
+
newItem.Direction=1; //1 上 2=下
|
|
70016
|
+
newItem.StartItem=kItem;
|
|
70017
|
+
|
|
70018
|
+
kagiItem=newItem;
|
|
70019
|
+
changeItem=null;
|
|
70020
|
+
}
|
|
70021
|
+
}
|
|
70022
|
+
}
|
|
70023
|
+
}
|
|
70024
|
+
|
|
70025
|
+
return bindData;
|
|
70026
|
+
}
|
|
70027
|
+
|
|
70028
|
+
//获取配置信息
|
|
70029
|
+
this.GetTitle=function()
|
|
70030
|
+
{
|
|
70031
|
+
if (this.BrickSizeType==1)
|
|
70032
|
+
{
|
|
70033
|
+
var text=`Kagi [ATR(${this.ATR.Count}), ${this.ATR.BrickSize}]`;
|
|
70034
|
+
}
|
|
70035
|
+
else
|
|
70036
|
+
{
|
|
70037
|
+
var text=`Kagi [Traditional]`;
|
|
70038
|
+
}
|
|
70039
|
+
|
|
70040
|
+
return text;
|
|
69686
70041
|
}
|
|
69687
70042
|
}
|
|
69688
70043
|
|
|
@@ -73290,12 +73645,17 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
73290
73645
|
//删除某一个窗口的指标, bCallDestory=是否调用图形销毁函数
|
|
73291
73646
|
this.DeleteIndexPaint=function(windowIndex, bCallDestroy)
|
|
73292
73647
|
{
|
|
73293
|
-
|
|
73294
|
-
|
|
73648
|
+
if (!this.Frame.SubFrame[windowIndex]) return;
|
|
73649
|
+
var subFrame=this.Frame.SubFrame[windowIndex].Frame;
|
|
73650
|
+
if (!subFrame) return;
|
|
73651
|
+
|
|
73652
|
+
var paint=[]; //踢出当前窗口的指标画法
|
|
73653
|
+
for(var i=0;i<this.ChartPaint.length; ++i)
|
|
73295
73654
|
{
|
|
73296
|
-
|
|
73655
|
+
var item=this.ChartPaint[i];
|
|
73656
|
+
var bFind=(item.ChartFrame.Guid==subFrame.Guid || item.ChartFrame==subFrame);
|
|
73297
73657
|
|
|
73298
|
-
if (i==0 ||
|
|
73658
|
+
if (i==0 || !bFind)
|
|
73299
73659
|
{
|
|
73300
73660
|
paint.push(item);
|
|
73301
73661
|
}
|
|
@@ -73308,7 +73668,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
73308
73668
|
}
|
|
73309
73669
|
}
|
|
73310
73670
|
|
|
73311
|
-
|
|
73671
|
+
|
|
73312
73672
|
subFrame.YSpecificMaxMin=null; //清空指定最大最小值
|
|
73313
73673
|
subFrame.IsLocked=false; //解除上锁
|
|
73314
73674
|
subFrame.YSplitScale = null; //清空固定刻度
|
|
@@ -79042,6 +79402,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
79042
79402
|
}
|
|
79043
79403
|
|
|
79044
79404
|
var subFrame=new SubFrameItem();
|
|
79405
|
+
frame.FrameData.SubFrameItem=subFrame;
|
|
79045
79406
|
subFrame.Frame=frame;
|
|
79046
79407
|
if (i==0)
|
|
79047
79408
|
subFrame.Height=20;
|
|
@@ -79128,6 +79489,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
79128
79489
|
}
|
|
79129
79490
|
|
|
79130
79491
|
var subFrame=new SubFrameItem();
|
|
79492
|
+
frame.FrameData.SubFrameItem=subFrame;
|
|
79131
79493
|
subFrame.Frame=frame;
|
|
79132
79494
|
subFrame.Height=10;
|
|
79133
79495
|
|
|
@@ -79199,12 +79561,16 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
79199
79561
|
//删除某一个窗口的指标
|
|
79200
79562
|
this.DeleteIndexPaint=function(windowIndex,bCallDestroy)
|
|
79201
79563
|
{
|
|
79202
|
-
|
|
79203
|
-
|
|
79564
|
+
var subFrame=this.Frame.SubFrame[windowIndex].Frame;
|
|
79565
|
+
if (!subFrame) return;
|
|
79566
|
+
|
|
79567
|
+
var paint=[]; //踢出当前窗口的指标画法
|
|
79568
|
+
for(var i=0;i<this.ChartPaint.length;++i)
|
|
79204
79569
|
{
|
|
79205
|
-
|
|
79570
|
+
var item=this.ChartPaint[i];
|
|
79571
|
+
var bFind=(item.ChartFrame.Guid==subFrame.Guid || item.ChartFrame==subFrame);
|
|
79206
79572
|
|
|
79207
|
-
if (i==0 ||
|
|
79573
|
+
if (i==0 || !bFind)
|
|
79208
79574
|
{
|
|
79209
79575
|
paint.push(item);
|
|
79210
79576
|
}
|
|
@@ -79218,7 +79584,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
79218
79584
|
}
|
|
79219
79585
|
|
|
79220
79586
|
//清空指定最大最小值
|
|
79221
|
-
|
|
79587
|
+
|
|
79222
79588
|
subFrame.YSpecificMaxMin=null;
|
|
79223
79589
|
subFrame.IsLocked=false; //解除上锁
|
|
79224
79590
|
subFrame.YSplitOperator.SplitType=subFrame.YSplitOperator.DefaultSplitType; //还原Y坐标分割模式
|
|
@@ -84541,6 +84907,7 @@ function KLineChartHScreenContainer(uielement)
|
|
|
84541
84907
|
}
|
|
84542
84908
|
|
|
84543
84909
|
var subFrame=new SubFrameItem();
|
|
84910
|
+
frame.FrameData.SubFrameItem=subFrame;
|
|
84544
84911
|
subFrame.Frame=frame;
|
|
84545
84912
|
if (i==0)
|
|
84546
84913
|
subFrame.Height=20;
|
|
@@ -84685,6 +85052,7 @@ function MinuteChartHScreenContainer(uielement)
|
|
|
84685
85052
|
}
|
|
84686
85053
|
|
|
84687
85054
|
var subFrame=new SubFrameItem();
|
|
85055
|
+
frame.FrameData.SubFrameItem=subFrame;
|
|
84688
85056
|
subFrame.Frame=frame;
|
|
84689
85057
|
if (i==0)
|
|
84690
85058
|
subFrame.Height=20;
|
|
@@ -131783,7 +132151,7 @@ function ScrollBarBGChart()
|
|
|
131783
132151
|
|
|
131784
132152
|
|
|
131785
132153
|
|
|
131786
|
-
var HQCHART_VERSION="1.1.
|
|
132154
|
+
var HQCHART_VERSION="1.1.13151";
|
|
131787
132155
|
|
|
131788
132156
|
function PrintHQChartVersion()
|
|
131789
132157
|
{
|