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.
|
@@ -22526,7 +22526,34 @@ function HQTradeHScreenFrame()
|
|
|
22526
22526
|
}
|
|
22527
22527
|
}
|
|
22528
22528
|
|
|
22529
|
-
if (frame!=null)
|
|
22529
|
+
if (frame!=null)
|
|
22530
|
+
{
|
|
22531
|
+
var xValue= frame.GetYData(x);
|
|
22532
|
+
|
|
22533
|
+
if (frame.GetMainOverlayFrame)
|
|
22534
|
+
{
|
|
22535
|
+
var aryOverlayFrame=frame.GetMainOverlayFrame();
|
|
22536
|
+
if (aryOverlayFrame)
|
|
22537
|
+
{
|
|
22538
|
+
if (aryOverlayFrame[0]) //左侧
|
|
22539
|
+
{
|
|
22540
|
+
var leftFrame=aryOverlayFrame[0];
|
|
22541
|
+
var value=leftFrame.GetYData(x);
|
|
22542
|
+
outObject.RightYValue=xValue;
|
|
22543
|
+
xValue=value;
|
|
22544
|
+
}
|
|
22545
|
+
|
|
22546
|
+
if (aryOverlayFrame[1]) //右侧
|
|
22547
|
+
{
|
|
22548
|
+
var rightFrame=aryOverlayFrame[1];
|
|
22549
|
+
var value=rightFrame.GetYData(x);
|
|
22550
|
+
outObject.RightYValue=value;
|
|
22551
|
+
}
|
|
22552
|
+
}
|
|
22553
|
+
}
|
|
22554
|
+
|
|
22555
|
+
return xValue;
|
|
22556
|
+
}
|
|
22530
22557
|
}
|
|
22531
22558
|
}
|
|
22532
22559
|
|
|
@@ -28649,6 +28676,198 @@ function ChartKLine()
|
|
|
28649
28676
|
this.PtMin=ptMin;
|
|
28650
28677
|
}
|
|
28651
28678
|
|
|
28679
|
+
this.DrawKagi=function() //卡吉图
|
|
28680
|
+
{
|
|
28681
|
+
var isHScreen=(this.ChartFrame.IsHScreen===true);
|
|
28682
|
+
var dataWidth=this.ChartFrame.DataWidth;
|
|
28683
|
+
var distanceWidth=this.ChartFrame.DistanceWidth;
|
|
28684
|
+
var xPointCount=this.ChartFrame.XPointCount;
|
|
28685
|
+
|
|
28686
|
+
if (isHScreen)
|
|
28687
|
+
{
|
|
28688
|
+
var border=this.ChartBorder.GetHScreenBorder();
|
|
28689
|
+
var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
28690
|
+
var chartright=border.BottomEx;
|
|
28691
|
+
var left=border.TopEx+g_JSChartResource.FrameLeftMargin;
|
|
28692
|
+
}
|
|
28693
|
+
else
|
|
28694
|
+
{
|
|
28695
|
+
var border=this.ChartBorder.GetBorder();
|
|
28696
|
+
var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
28697
|
+
var chartright=border.RightEx;
|
|
28698
|
+
var left=border.Left+g_JSChartResource.FrameLeftMargin;
|
|
28699
|
+
}
|
|
28700
|
+
|
|
28701
|
+
var ptMax={X:null,Y:null,Value:null,Align:'left'};
|
|
28702
|
+
var ptMin={X:null,Y:null,Value:null,Align:'left'};
|
|
28703
|
+
this.ShowRange.Start=this.Data.DataOffset;
|
|
28704
|
+
this.ShowRange.End=this.ShowRange.Start;
|
|
28705
|
+
this.ShowRange.DataCount=0;
|
|
28706
|
+
this.ShowRange.ShowCount=xPointCount;
|
|
28707
|
+
this.DrawKRange.Start=this.Data.DataOffset;
|
|
28708
|
+
|
|
28709
|
+
var lineWidth=2*GetDevicePixelRatio();
|
|
28710
|
+
this.Canvas.lineWidth=lineWidth;
|
|
28711
|
+
var preItem={ Item:null, X:left, Y:null };
|
|
28712
|
+
var index=this.Data.DataOffset-1;
|
|
28713
|
+
if (index>=0 && index<this.Data.Data.length)
|
|
28714
|
+
{
|
|
28715
|
+
var item=this.Data.Data[index];
|
|
28716
|
+
preItem.Item=item;
|
|
28717
|
+
if (item.Direction==1) //上
|
|
28718
|
+
{
|
|
28719
|
+
preItem.Y=this.GetYFromData(item.High,false);
|
|
28720
|
+
}
|
|
28721
|
+
else if (item.Direction==2)
|
|
28722
|
+
{
|
|
28723
|
+
preItem.Y=this.GetYFromData(item.Low,false);
|
|
28724
|
+
}
|
|
28725
|
+
}
|
|
28726
|
+
|
|
28727
|
+
|
|
28728
|
+
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth),++this.ShowRange.DataCount)
|
|
28729
|
+
{
|
|
28730
|
+
var data=this.Data.Data[i];
|
|
28731
|
+
this.ShowRange.End=i;
|
|
28732
|
+
if (data.Open==null || data.High==null || data.Low==null || data.Close==null) continue;
|
|
28733
|
+
|
|
28734
|
+
var left=xOffset;
|
|
28735
|
+
var right=xOffset+dataWidth;
|
|
28736
|
+
if (right>chartright) break;
|
|
28737
|
+
var x=left+(right-left)/2;
|
|
28738
|
+
var yLow=this.GetYFromData(data.Low,false);
|
|
28739
|
+
var yHigh=this.GetYFromData(data.High,false);
|
|
28740
|
+
this.DrawKRange.End=i;
|
|
28741
|
+
|
|
28742
|
+
if (ptMax.Value==null || ptMax.Value<data.High) //求最大值
|
|
28743
|
+
{
|
|
28744
|
+
ptMax.X=x;
|
|
28745
|
+
ptMax.Y=yHigh;
|
|
28746
|
+
ptMax.Value=data.High;
|
|
28747
|
+
ptMax.Align=j<xPointCount/2?'left':'right';
|
|
28748
|
+
}
|
|
28749
|
+
|
|
28750
|
+
if (ptMin.Value==null || ptMin.Value>data.Low) //求最小值
|
|
28751
|
+
{
|
|
28752
|
+
ptMin.X=x;
|
|
28753
|
+
ptMin.Y=yLow;
|
|
28754
|
+
ptMin.Value=data.Low;
|
|
28755
|
+
ptMin.Align=j<xPointCount/2?'left':'right';
|
|
28756
|
+
}
|
|
28757
|
+
|
|
28758
|
+
var xFixed=ToFixedPoint2(lineWidth,x);
|
|
28759
|
+
|
|
28760
|
+
if (preItem.Item)
|
|
28761
|
+
{
|
|
28762
|
+
this.Canvas.beginPath();
|
|
28763
|
+
var yFixed=ToFixedPoint2(lineWidth,preItem.Y);
|
|
28764
|
+
|
|
28765
|
+
this.Canvas.moveTo(preItem.X, yFixed);
|
|
28766
|
+
this.Canvas.lineTo(xFixed, yFixed);
|
|
28767
|
+
var prePrice=null;
|
|
28768
|
+
if (preItem.Item.Direction==1) prePrice=preItem.Item.Low;
|
|
28769
|
+
else if (preItem.Item.Direction==2) prePrice=preItem.Item.High;
|
|
28770
|
+
|
|
28771
|
+
if (data.Direction==1)
|
|
28772
|
+
{
|
|
28773
|
+
if (data.High<prePrice)
|
|
28774
|
+
{
|
|
28775
|
+
this.Canvas.lineTo(xFixed, yHigh);
|
|
28776
|
+
this.Canvas.strokeStyle=this.DownColor;
|
|
28777
|
+
this.Canvas.stroke();
|
|
28778
|
+
}
|
|
28779
|
+
else
|
|
28780
|
+
{
|
|
28781
|
+
var yPrePrice=this.GetYFromData(prePrice,false);
|
|
28782
|
+
this.Canvas.lineTo(xFixed, yPrePrice);
|
|
28783
|
+
this.Canvas.strokeStyle=this.DownColor;
|
|
28784
|
+
this.Canvas.stroke();
|
|
28785
|
+
|
|
28786
|
+
this.Canvas.beginPath();
|
|
28787
|
+
this.Canvas.moveTo(xFixed, yPrePrice);
|
|
28788
|
+
this.Canvas.lineTo(xFixed, yHigh);
|
|
28789
|
+
this.Canvas.strokeStyle=this.UpColor;
|
|
28790
|
+
this.Canvas.stroke();
|
|
28791
|
+
}
|
|
28792
|
+
|
|
28793
|
+
}
|
|
28794
|
+
else if (data.Direction==2)
|
|
28795
|
+
{
|
|
28796
|
+
if (data.Low>prePrice)
|
|
28797
|
+
{
|
|
28798
|
+
this.Canvas.lineTo(xFixed, yLow);
|
|
28799
|
+
this.Canvas.strokeStyle=this.DownColor; //阳线
|
|
28800
|
+
this.Canvas.stroke();
|
|
28801
|
+
}
|
|
28802
|
+
else
|
|
28803
|
+
{
|
|
28804
|
+
var yPrePrice=this.GetYFromData(prePrice,false);
|
|
28805
|
+
this.Canvas.lineTo(xFixed, yPrePrice);
|
|
28806
|
+
this.Canvas.strokeStyle=this.DownColor; //阳线
|
|
28807
|
+
this.Canvas.stroke();
|
|
28808
|
+
|
|
28809
|
+
this.Canvas.beginPath();
|
|
28810
|
+
this.Canvas.moveTo(xFixed, yPrePrice);
|
|
28811
|
+
this.Canvas.lineTo(xFixed, yLow);
|
|
28812
|
+
this.Canvas.strokeStyle=this.UpColor;
|
|
28813
|
+
this.Canvas.stroke();
|
|
28814
|
+
}
|
|
28815
|
+
}
|
|
28816
|
+
|
|
28817
|
+
}
|
|
28818
|
+
else
|
|
28819
|
+
{
|
|
28820
|
+
this.Canvas.beginPath();
|
|
28821
|
+
if (data.Direction==1)
|
|
28822
|
+
{
|
|
28823
|
+
this.Canvas.moveTo(xFixed, yLow);
|
|
28824
|
+
this.Canvas.lineTo(xFixed, yHigh);
|
|
28825
|
+
}
|
|
28826
|
+
else if (data.Direction==2)
|
|
28827
|
+
{
|
|
28828
|
+
this.Canvas.moveTo(xFixed, yHigh);
|
|
28829
|
+
this.Canvas.lineTo(xFixed, yLow);
|
|
28830
|
+
}
|
|
28831
|
+
this.Canvas.stroke();
|
|
28832
|
+
}
|
|
28833
|
+
|
|
28834
|
+
/*
|
|
28835
|
+
if (data.YClose<data.Close)
|
|
28836
|
+
{
|
|
28837
|
+
this.Canvas.strokeStyle=this.UpColor; //阳线
|
|
28838
|
+
this.Canvas.fillStyle=this.UpColor;
|
|
28839
|
+
}
|
|
28840
|
+
else if (data.YClose>data.Close)
|
|
28841
|
+
{
|
|
28842
|
+
this.Canvas.strokeStyle=this.DownColor; //阴线
|
|
28843
|
+
this.Canvas.fillStyle=this.DownColor;
|
|
28844
|
+
}
|
|
28845
|
+
|
|
28846
|
+
this.Canvas.beginPath();
|
|
28847
|
+
if (isHScreen)
|
|
28848
|
+
{
|
|
28849
|
+
this.Canvas.moveTo(yHigh,ToFixedPoint(x));
|
|
28850
|
+
this.Canvas.lineTo(yLow,ToFixedPoint(x));
|
|
28851
|
+
}
|
|
28852
|
+
else
|
|
28853
|
+
{
|
|
28854
|
+
this.Canvas.moveTo(ToFixedPoint2(lineWidth,x),yHigh);
|
|
28855
|
+
this.Canvas.lineTo(ToFixedPoint2(lineWidth,x),yLow);
|
|
28856
|
+
}
|
|
28857
|
+
this.Canvas.stroke();
|
|
28858
|
+
*/
|
|
28859
|
+
|
|
28860
|
+
preItem.Item=data;
|
|
28861
|
+
preItem.X=x;
|
|
28862
|
+
|
|
28863
|
+
if (data.Direction==1) preItem.Y=yHigh; //上
|
|
28864
|
+
else if (data.Direction==2) preItem.Y=yLow //下
|
|
28865
|
+
}
|
|
28866
|
+
|
|
28867
|
+
this.PtMax=ptMax;
|
|
28868
|
+
this.PtMin=ptMin;
|
|
28869
|
+
}
|
|
28870
|
+
|
|
28652
28871
|
this.DrawTrade=function() //交易系统
|
|
28653
28872
|
{
|
|
28654
28873
|
if (!this.TradeData) return;
|
|
@@ -29156,6 +29375,10 @@ function ChartKLine()
|
|
|
29156
29375
|
{
|
|
29157
29376
|
this.DrawHLCArea();
|
|
29158
29377
|
}
|
|
29378
|
+
else if (this.DrawType==16)
|
|
29379
|
+
{
|
|
29380
|
+
this.DrawKagi();
|
|
29381
|
+
}
|
|
29159
29382
|
else if (this.DrawType==17)
|
|
29160
29383
|
{
|
|
29161
29384
|
this.DrawOrderFlow_Style4();
|
|
@@ -52255,6 +52478,7 @@ function ChartCorssCursor()
|
|
|
52255
52478
|
|
|
52256
52479
|
this.StringFormatY.Value=yValue;
|
|
52257
52480
|
this.StringFormatY.FrameID=yValueExtend.FrameID;
|
|
52481
|
+
this.StringFormatY.RValue=yValueExtend.RightYValue; //右侧子坐标
|
|
52258
52482
|
this.StringFormatY.Point={X:x, Y:y};
|
|
52259
52483
|
this.StringFormatY.ClientPos=this.ClientPos;
|
|
52260
52484
|
|
|
@@ -53059,6 +53283,7 @@ function HQPriceStringFormat()
|
|
|
53059
53283
|
{
|
|
53060
53284
|
if (this.DataFormatType==1) this.Text=IFrameSplitOperator.FormatValueThousandsString(this.Value,defaultfloatPrecision);
|
|
53061
53285
|
else this.Text=IFrameSplitOperator.FormatValueString(this.Value,defaultfloatPrecision,this.LanguageID);
|
|
53286
|
+
if (IFrameSplitOperator.IsNumber(this.RValue)) this.RText=IFrameSplitOperator.FormatValueString(this.RValue,defaultfloatPrecision,this.LanguageID);
|
|
53062
53287
|
}
|
|
53063
53288
|
|
|
53064
53289
|
if (this.GetEventCallback)
|
|
@@ -69696,20 +69921,24 @@ function RenkoCalculate()
|
|
|
69696
69921
|
//
|
|
69697
69922
|
function KagiCalculate()
|
|
69698
69923
|
{
|
|
69699
|
-
this.
|
|
69700
|
-
this.
|
|
69701
|
-
this.
|
|
69702
|
-
|
|
69924
|
+
this.newMethod=RenkoCalculate; //派生
|
|
69925
|
+
this.newMethod();
|
|
69926
|
+
delete this.newMethod;
|
|
69927
|
+
|
|
69928
|
+
this.ClassName="KagiCalculate";
|
|
69929
|
+
this.BrickSizeType=0;
|
|
69930
|
+
this.BrickSize=0.5; //固定大小
|
|
69703
69931
|
|
|
69704
69932
|
this.RecvHistoryData=function(sourceData, option) //历史日线数据
|
|
69705
69933
|
{
|
|
69706
69934
|
this.Symbol=option.Symbol;
|
|
69707
69935
|
this.SourceData=sourceData;
|
|
69708
69936
|
this.FloatPrecision=GetfloatPrecision(this.Symbol);
|
|
69709
|
-
|
|
69937
|
+
if (this.BrickSizeType==1) this.CalculateATR();
|
|
69938
|
+
return this.CalculateByClose(sourceData);
|
|
69710
69939
|
}
|
|
69711
69940
|
|
|
69712
|
-
this.
|
|
69941
|
+
this.CalculateByClose=function(sourceData)
|
|
69713
69942
|
{
|
|
69714
69943
|
var bindData=new ChartData();
|
|
69715
69944
|
bindData.Data=[]
|
|
@@ -69720,13 +69949,139 @@ function KagiCalculate()
|
|
|
69720
69949
|
|
|
69721
69950
|
if (!IFrameSplitOperator.IsNonEmptyArray(sourceData.Data)) return bindData;
|
|
69722
69951
|
|
|
69723
|
-
var
|
|
69952
|
+
var brickSize=this.BrickSize;
|
|
69953
|
+
if (this.BrickSizeType==1) brickSize=this.ATR.BrickSize;
|
|
69724
69954
|
|
|
69725
69955
|
var kItem=sourceData.Data[0];
|
|
69726
|
-
|
|
69727
|
-
|
|
69956
|
+
var kagiItem=HistoryData.Copy(kItem);
|
|
69957
|
+
|
|
69958
|
+
kagiItem.High=kagiItem.Low=kItem.Close;
|
|
69959
|
+
kagiItem.StartItem=kItem;
|
|
69960
|
+
kagiItem.Direction=0; //1 上 2=下
|
|
69961
|
+
|
|
69962
|
+
var T_MergeKData=function(dest, src)
|
|
69728
69963
|
{
|
|
69964
|
+
dest.Vol+=src.Vol;
|
|
69965
|
+
dest.Amount+=src.Amount;
|
|
69729
69966
|
}
|
|
69967
|
+
|
|
69968
|
+
var index=1;
|
|
69969
|
+
for( ;index<sourceData.Data.length;++index) //确定好方向
|
|
69970
|
+
{
|
|
69971
|
+
var kItem=sourceData.Data[index];
|
|
69972
|
+
if (kItem.Close>kagiItem.Close)
|
|
69973
|
+
{
|
|
69974
|
+
kagiItem.Direction=1;
|
|
69975
|
+
kagiItem.Close=kItem.Close;
|
|
69976
|
+
kagiItem.EndItem=kItem;
|
|
69977
|
+
kagiItem.High=kItem.Close;
|
|
69978
|
+
break;
|
|
69979
|
+
}
|
|
69980
|
+
else if (kItem.Close<kagiItem.Close)
|
|
69981
|
+
{
|
|
69982
|
+
kagiItem.Direction=2;
|
|
69983
|
+
kagiItem.Close=kItem.Close;
|
|
69984
|
+
kagiItem.EndItem=kItem;
|
|
69985
|
+
kagiItem.Low=kItem.Close;
|
|
69986
|
+
break;
|
|
69987
|
+
}
|
|
69988
|
+
}
|
|
69989
|
+
|
|
69990
|
+
var changeItem=null;
|
|
69991
|
+
for(++index; index<sourceData.Data.length;++index )
|
|
69992
|
+
{
|
|
69993
|
+
var kItem=sourceData.Data[index];
|
|
69994
|
+
if (kagiItem.Direction==1) //上
|
|
69995
|
+
{
|
|
69996
|
+
if (kItem.Close>=kagiItem.High)
|
|
69997
|
+
{
|
|
69998
|
+
kagiItem.Close=kItem.Close;
|
|
69999
|
+
kagiItem.High=kItem.Close;
|
|
70000
|
+
kagiItem.EndItem=kItem;
|
|
70001
|
+
changeItem=null;
|
|
70002
|
+
}
|
|
70003
|
+
else
|
|
70004
|
+
{
|
|
70005
|
+
if (!changeItem)
|
|
70006
|
+
{
|
|
70007
|
+
changeItem=HistoryData.Copy(kItem);
|
|
70008
|
+
changeItem.High=changeItem.Low=kItem.Close;
|
|
70009
|
+
}
|
|
70010
|
+
else
|
|
70011
|
+
{
|
|
70012
|
+
changeItem.Close=kItem.Close;
|
|
70013
|
+
if (changeItem.Low>kItem.Close) changeItem.Low=kItem.Close;
|
|
70014
|
+
}
|
|
70015
|
+
|
|
70016
|
+
if (Math.abs(changeItem.Low-kagiItem.High)>brickSize) //达到变盘点
|
|
70017
|
+
{
|
|
70018
|
+
bindData.Data.push(kagiItem);
|
|
70019
|
+
|
|
70020
|
+
var newItem=HistoryData.Copy(kItem);
|
|
70021
|
+
newItem.High=kagiItem.High;
|
|
70022
|
+
newItem.Low=kItem.Close;
|
|
70023
|
+
newItem.Direction=2; //1 上 2=下
|
|
70024
|
+
newItem.StartItem=kItem;
|
|
70025
|
+
|
|
70026
|
+
kagiItem=newItem;
|
|
70027
|
+
changeItem=null;
|
|
70028
|
+
}
|
|
70029
|
+
}
|
|
70030
|
+
}
|
|
70031
|
+
else if (kagiItem.Direction==2) //下
|
|
70032
|
+
{
|
|
70033
|
+
if (kItem.Close<=kagiItem.Low)
|
|
70034
|
+
{
|
|
70035
|
+
kagiItem.Close=kItem.Close;
|
|
70036
|
+
kagiItem.Low=kItem.Close;
|
|
70037
|
+
kagiItem.EndItem=kItem;
|
|
70038
|
+
}
|
|
70039
|
+
else
|
|
70040
|
+
{
|
|
70041
|
+
if (!changeItem)
|
|
70042
|
+
{
|
|
70043
|
+
changeItem=HistoryData.Copy(kItem);
|
|
70044
|
+
changeItem.High=changeItem.Low=kItem.Close;
|
|
70045
|
+
}
|
|
70046
|
+
else
|
|
70047
|
+
{
|
|
70048
|
+
changeItem.Close=kItem.Close;
|
|
70049
|
+
if (changeItem.High<kItem.Close) changeItem.High=kItem.Close;
|
|
70050
|
+
}
|
|
70051
|
+
|
|
70052
|
+
if (Math.abs(changeItem.High-kagiItem.Low)>brickSize) //达到变盘点
|
|
70053
|
+
{
|
|
70054
|
+
bindData.Data.push(kagiItem);
|
|
70055
|
+
|
|
70056
|
+
var newItem=HistoryData.Copy(kItem);
|
|
70057
|
+
newItem.High=kItem.Close;
|
|
70058
|
+
newItem.Low=kagiItem.Low;
|
|
70059
|
+
newItem.Direction=1; //1 上 2=下
|
|
70060
|
+
newItem.StartItem=kItem;
|
|
70061
|
+
|
|
70062
|
+
kagiItem=newItem;
|
|
70063
|
+
changeItem=null;
|
|
70064
|
+
}
|
|
70065
|
+
}
|
|
70066
|
+
}
|
|
70067
|
+
}
|
|
70068
|
+
|
|
70069
|
+
return bindData;
|
|
70070
|
+
}
|
|
70071
|
+
|
|
70072
|
+
//获取配置信息
|
|
70073
|
+
this.GetTitle=function()
|
|
70074
|
+
{
|
|
70075
|
+
if (this.BrickSizeType==1)
|
|
70076
|
+
{
|
|
70077
|
+
var text=`Kagi [ATR(${this.ATR.Count}), ${this.ATR.BrickSize}]`;
|
|
70078
|
+
}
|
|
70079
|
+
else
|
|
70080
|
+
{
|
|
70081
|
+
var text=`Kagi [Traditional]`;
|
|
70082
|
+
}
|
|
70083
|
+
|
|
70084
|
+
return text;
|
|
69730
70085
|
}
|
|
69731
70086
|
}
|
|
69732
70087
|
|
|
@@ -73334,12 +73689,17 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
73334
73689
|
//删除某一个窗口的指标, bCallDestory=是否调用图形销毁函数
|
|
73335
73690
|
this.DeleteIndexPaint=function(windowIndex, bCallDestroy)
|
|
73336
73691
|
{
|
|
73337
|
-
|
|
73338
|
-
|
|
73692
|
+
if (!this.Frame.SubFrame[windowIndex]) return;
|
|
73693
|
+
var subFrame=this.Frame.SubFrame[windowIndex].Frame;
|
|
73694
|
+
if (!subFrame) return;
|
|
73695
|
+
|
|
73696
|
+
var paint=[]; //踢出当前窗口的指标画法
|
|
73697
|
+
for(var i=0;i<this.ChartPaint.length; ++i)
|
|
73339
73698
|
{
|
|
73340
|
-
|
|
73699
|
+
var item=this.ChartPaint[i];
|
|
73700
|
+
var bFind=(item.ChartFrame.Guid==subFrame.Guid || item.ChartFrame==subFrame);
|
|
73341
73701
|
|
|
73342
|
-
if (i==0 ||
|
|
73702
|
+
if (i==0 || !bFind)
|
|
73343
73703
|
{
|
|
73344
73704
|
paint.push(item);
|
|
73345
73705
|
}
|
|
@@ -73352,7 +73712,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
73352
73712
|
}
|
|
73353
73713
|
}
|
|
73354
73714
|
|
|
73355
|
-
|
|
73715
|
+
|
|
73356
73716
|
subFrame.YSpecificMaxMin=null; //清空指定最大最小值
|
|
73357
73717
|
subFrame.IsLocked=false; //解除上锁
|
|
73358
73718
|
subFrame.YSplitScale = null; //清空固定刻度
|
|
@@ -79086,6 +79446,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
79086
79446
|
}
|
|
79087
79447
|
|
|
79088
79448
|
var subFrame=new SubFrameItem();
|
|
79449
|
+
frame.FrameData.SubFrameItem=subFrame;
|
|
79089
79450
|
subFrame.Frame=frame;
|
|
79090
79451
|
if (i==0)
|
|
79091
79452
|
subFrame.Height=20;
|
|
@@ -79172,6 +79533,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
79172
79533
|
}
|
|
79173
79534
|
|
|
79174
79535
|
var subFrame=new SubFrameItem();
|
|
79536
|
+
frame.FrameData.SubFrameItem=subFrame;
|
|
79175
79537
|
subFrame.Frame=frame;
|
|
79176
79538
|
subFrame.Height=10;
|
|
79177
79539
|
|
|
@@ -79243,12 +79605,16 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
79243
79605
|
//删除某一个窗口的指标
|
|
79244
79606
|
this.DeleteIndexPaint=function(windowIndex,bCallDestroy)
|
|
79245
79607
|
{
|
|
79246
|
-
|
|
79247
|
-
|
|
79608
|
+
var subFrame=this.Frame.SubFrame[windowIndex].Frame;
|
|
79609
|
+
if (!subFrame) return;
|
|
79610
|
+
|
|
79611
|
+
var paint=[]; //踢出当前窗口的指标画法
|
|
79612
|
+
for(var i=0;i<this.ChartPaint.length;++i)
|
|
79248
79613
|
{
|
|
79249
|
-
|
|
79614
|
+
var item=this.ChartPaint[i];
|
|
79615
|
+
var bFind=(item.ChartFrame.Guid==subFrame.Guid || item.ChartFrame==subFrame);
|
|
79250
79616
|
|
|
79251
|
-
if (i==0 ||
|
|
79617
|
+
if (i==0 || !bFind)
|
|
79252
79618
|
{
|
|
79253
79619
|
paint.push(item);
|
|
79254
79620
|
}
|
|
@@ -79262,7 +79628,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
79262
79628
|
}
|
|
79263
79629
|
|
|
79264
79630
|
//清空指定最大最小值
|
|
79265
|
-
|
|
79631
|
+
|
|
79266
79632
|
subFrame.YSpecificMaxMin=null;
|
|
79267
79633
|
subFrame.IsLocked=false; //解除上锁
|
|
79268
79634
|
subFrame.YSplitOperator.SplitType=subFrame.YSplitOperator.DefaultSplitType; //还原Y坐标分割模式
|
|
@@ -84585,6 +84951,7 @@ function KLineChartHScreenContainer(uielement)
|
|
|
84585
84951
|
}
|
|
84586
84952
|
|
|
84587
84953
|
var subFrame=new SubFrameItem();
|
|
84954
|
+
frame.FrameData.SubFrameItem=subFrame;
|
|
84588
84955
|
subFrame.Frame=frame;
|
|
84589
84956
|
if (i==0)
|
|
84590
84957
|
subFrame.Height=20;
|
|
@@ -84729,6 +85096,7 @@ function MinuteChartHScreenContainer(uielement)
|
|
|
84729
85096
|
}
|
|
84730
85097
|
|
|
84731
85098
|
var subFrame=new SubFrameItem();
|
|
85099
|
+
frame.FrameData.SubFrameItem=subFrame;
|
|
84732
85100
|
subFrame.Frame=frame;
|
|
84733
85101
|
if (i==0)
|
|
84734
85102
|
subFrame.Height=20;
|
|
@@ -134347,7 +134715,7 @@ function HQChartScriptWorker()
|
|
|
134347
134715
|
|
|
134348
134716
|
|
|
134349
134717
|
|
|
134350
|
-
var HQCHART_VERSION="1.1.
|
|
134718
|
+
var HQCHART_VERSION="1.1.13151";
|
|
134351
134719
|
|
|
134352
134720
|
function PrintHQChartVersion()
|
|
134353
134721
|
{
|