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.
package/package.json
CHANGED
package/src/jscommon/umychart.js
CHANGED
|
@@ -18590,7 +18590,34 @@ function HQTradeHScreenFrame()
|
|
|
18590
18590
|
}
|
|
18591
18591
|
}
|
|
18592
18592
|
|
|
18593
|
-
if (frame!=null)
|
|
18593
|
+
if (frame!=null)
|
|
18594
|
+
{
|
|
18595
|
+
var xValue= frame.GetYData(x);
|
|
18596
|
+
|
|
18597
|
+
if (frame.GetMainOverlayFrame)
|
|
18598
|
+
{
|
|
18599
|
+
var aryOverlayFrame=frame.GetMainOverlayFrame();
|
|
18600
|
+
if (aryOverlayFrame)
|
|
18601
|
+
{
|
|
18602
|
+
if (aryOverlayFrame[0]) //左侧
|
|
18603
|
+
{
|
|
18604
|
+
var leftFrame=aryOverlayFrame[0];
|
|
18605
|
+
var value=leftFrame.GetYData(x);
|
|
18606
|
+
outObject.RightYValue=xValue;
|
|
18607
|
+
xValue=value;
|
|
18608
|
+
}
|
|
18609
|
+
|
|
18610
|
+
if (aryOverlayFrame[1]) //右侧
|
|
18611
|
+
{
|
|
18612
|
+
var rightFrame=aryOverlayFrame[1];
|
|
18613
|
+
var value=rightFrame.GetYData(x);
|
|
18614
|
+
outObject.RightYValue=value;
|
|
18615
|
+
}
|
|
18616
|
+
}
|
|
18617
|
+
}
|
|
18618
|
+
|
|
18619
|
+
return xValue;
|
|
18620
|
+
}
|
|
18594
18621
|
}
|
|
18595
18622
|
}
|
|
18596
18623
|
|
|
@@ -24713,6 +24740,198 @@ function ChartKLine()
|
|
|
24713
24740
|
this.PtMin=ptMin;
|
|
24714
24741
|
}
|
|
24715
24742
|
|
|
24743
|
+
this.DrawKagi=function() //卡吉图
|
|
24744
|
+
{
|
|
24745
|
+
var isHScreen=(this.ChartFrame.IsHScreen===true);
|
|
24746
|
+
var dataWidth=this.ChartFrame.DataWidth;
|
|
24747
|
+
var distanceWidth=this.ChartFrame.DistanceWidth;
|
|
24748
|
+
var xPointCount=this.ChartFrame.XPointCount;
|
|
24749
|
+
|
|
24750
|
+
if (isHScreen)
|
|
24751
|
+
{
|
|
24752
|
+
var border=this.ChartBorder.GetHScreenBorder();
|
|
24753
|
+
var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
24754
|
+
var chartright=border.BottomEx;
|
|
24755
|
+
var left=border.TopEx+g_JSChartResource.FrameLeftMargin;
|
|
24756
|
+
}
|
|
24757
|
+
else
|
|
24758
|
+
{
|
|
24759
|
+
var border=this.ChartBorder.GetBorder();
|
|
24760
|
+
var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
24761
|
+
var chartright=border.RightEx;
|
|
24762
|
+
var left=border.Left+g_JSChartResource.FrameLeftMargin;
|
|
24763
|
+
}
|
|
24764
|
+
|
|
24765
|
+
var ptMax={X:null,Y:null,Value:null,Align:'left'};
|
|
24766
|
+
var ptMin={X:null,Y:null,Value:null,Align:'left'};
|
|
24767
|
+
this.ShowRange.Start=this.Data.DataOffset;
|
|
24768
|
+
this.ShowRange.End=this.ShowRange.Start;
|
|
24769
|
+
this.ShowRange.DataCount=0;
|
|
24770
|
+
this.ShowRange.ShowCount=xPointCount;
|
|
24771
|
+
this.DrawKRange.Start=this.Data.DataOffset;
|
|
24772
|
+
|
|
24773
|
+
var lineWidth=2*GetDevicePixelRatio();
|
|
24774
|
+
this.Canvas.lineWidth=lineWidth;
|
|
24775
|
+
var preItem={ Item:null, X:left, Y:null };
|
|
24776
|
+
var index=this.Data.DataOffset-1;
|
|
24777
|
+
if (index>=0 && index<this.Data.Data.length)
|
|
24778
|
+
{
|
|
24779
|
+
var item=this.Data.Data[index];
|
|
24780
|
+
preItem.Item=item;
|
|
24781
|
+
if (item.Direction==1) //上
|
|
24782
|
+
{
|
|
24783
|
+
preItem.Y=this.GetYFromData(item.High,false);
|
|
24784
|
+
}
|
|
24785
|
+
else if (item.Direction==2)
|
|
24786
|
+
{
|
|
24787
|
+
preItem.Y=this.GetYFromData(item.Low,false);
|
|
24788
|
+
}
|
|
24789
|
+
}
|
|
24790
|
+
|
|
24791
|
+
|
|
24792
|
+
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth),++this.ShowRange.DataCount)
|
|
24793
|
+
{
|
|
24794
|
+
var data=this.Data.Data[i];
|
|
24795
|
+
this.ShowRange.End=i;
|
|
24796
|
+
if (data.Open==null || data.High==null || data.Low==null || data.Close==null) continue;
|
|
24797
|
+
|
|
24798
|
+
var left=xOffset;
|
|
24799
|
+
var right=xOffset+dataWidth;
|
|
24800
|
+
if (right>chartright) break;
|
|
24801
|
+
var x=left+(right-left)/2;
|
|
24802
|
+
var yLow=this.GetYFromData(data.Low,false);
|
|
24803
|
+
var yHigh=this.GetYFromData(data.High,false);
|
|
24804
|
+
this.DrawKRange.End=i;
|
|
24805
|
+
|
|
24806
|
+
if (ptMax.Value==null || ptMax.Value<data.High) //求最大值
|
|
24807
|
+
{
|
|
24808
|
+
ptMax.X=x;
|
|
24809
|
+
ptMax.Y=yHigh;
|
|
24810
|
+
ptMax.Value=data.High;
|
|
24811
|
+
ptMax.Align=j<xPointCount/2?'left':'right';
|
|
24812
|
+
}
|
|
24813
|
+
|
|
24814
|
+
if (ptMin.Value==null || ptMin.Value>data.Low) //求最小值
|
|
24815
|
+
{
|
|
24816
|
+
ptMin.X=x;
|
|
24817
|
+
ptMin.Y=yLow;
|
|
24818
|
+
ptMin.Value=data.Low;
|
|
24819
|
+
ptMin.Align=j<xPointCount/2?'left':'right';
|
|
24820
|
+
}
|
|
24821
|
+
|
|
24822
|
+
var xFixed=ToFixedPoint2(lineWidth,x);
|
|
24823
|
+
|
|
24824
|
+
if (preItem.Item)
|
|
24825
|
+
{
|
|
24826
|
+
this.Canvas.beginPath();
|
|
24827
|
+
var yFixed=ToFixedPoint2(lineWidth,preItem.Y);
|
|
24828
|
+
|
|
24829
|
+
this.Canvas.moveTo(preItem.X, yFixed);
|
|
24830
|
+
this.Canvas.lineTo(xFixed, yFixed);
|
|
24831
|
+
var prePrice=null;
|
|
24832
|
+
if (preItem.Item.Direction==1) prePrice=preItem.Item.Low;
|
|
24833
|
+
else if (preItem.Item.Direction==2) prePrice=preItem.Item.High;
|
|
24834
|
+
|
|
24835
|
+
if (data.Direction==1)
|
|
24836
|
+
{
|
|
24837
|
+
if (data.High<prePrice)
|
|
24838
|
+
{
|
|
24839
|
+
this.Canvas.lineTo(xFixed, yHigh);
|
|
24840
|
+
this.Canvas.strokeStyle=this.DownColor;
|
|
24841
|
+
this.Canvas.stroke();
|
|
24842
|
+
}
|
|
24843
|
+
else
|
|
24844
|
+
{
|
|
24845
|
+
var yPrePrice=this.GetYFromData(prePrice,false);
|
|
24846
|
+
this.Canvas.lineTo(xFixed, yPrePrice);
|
|
24847
|
+
this.Canvas.strokeStyle=this.DownColor;
|
|
24848
|
+
this.Canvas.stroke();
|
|
24849
|
+
|
|
24850
|
+
this.Canvas.beginPath();
|
|
24851
|
+
this.Canvas.moveTo(xFixed, yPrePrice);
|
|
24852
|
+
this.Canvas.lineTo(xFixed, yHigh);
|
|
24853
|
+
this.Canvas.strokeStyle=this.UpColor;
|
|
24854
|
+
this.Canvas.stroke();
|
|
24855
|
+
}
|
|
24856
|
+
|
|
24857
|
+
}
|
|
24858
|
+
else if (data.Direction==2)
|
|
24859
|
+
{
|
|
24860
|
+
if (data.Low>prePrice)
|
|
24861
|
+
{
|
|
24862
|
+
this.Canvas.lineTo(xFixed, yLow);
|
|
24863
|
+
this.Canvas.strokeStyle=this.DownColor; //阳线
|
|
24864
|
+
this.Canvas.stroke();
|
|
24865
|
+
}
|
|
24866
|
+
else
|
|
24867
|
+
{
|
|
24868
|
+
var yPrePrice=this.GetYFromData(prePrice,false);
|
|
24869
|
+
this.Canvas.lineTo(xFixed, yPrePrice);
|
|
24870
|
+
this.Canvas.strokeStyle=this.DownColor; //阳线
|
|
24871
|
+
this.Canvas.stroke();
|
|
24872
|
+
|
|
24873
|
+
this.Canvas.beginPath();
|
|
24874
|
+
this.Canvas.moveTo(xFixed, yPrePrice);
|
|
24875
|
+
this.Canvas.lineTo(xFixed, yLow);
|
|
24876
|
+
this.Canvas.strokeStyle=this.UpColor;
|
|
24877
|
+
this.Canvas.stroke();
|
|
24878
|
+
}
|
|
24879
|
+
}
|
|
24880
|
+
|
|
24881
|
+
}
|
|
24882
|
+
else
|
|
24883
|
+
{
|
|
24884
|
+
this.Canvas.beginPath();
|
|
24885
|
+
if (data.Direction==1)
|
|
24886
|
+
{
|
|
24887
|
+
this.Canvas.moveTo(xFixed, yLow);
|
|
24888
|
+
this.Canvas.lineTo(xFixed, yHigh);
|
|
24889
|
+
}
|
|
24890
|
+
else if (data.Direction==2)
|
|
24891
|
+
{
|
|
24892
|
+
this.Canvas.moveTo(xFixed, yHigh);
|
|
24893
|
+
this.Canvas.lineTo(xFixed, yLow);
|
|
24894
|
+
}
|
|
24895
|
+
this.Canvas.stroke();
|
|
24896
|
+
}
|
|
24897
|
+
|
|
24898
|
+
/*
|
|
24899
|
+
if (data.YClose<data.Close)
|
|
24900
|
+
{
|
|
24901
|
+
this.Canvas.strokeStyle=this.UpColor; //阳线
|
|
24902
|
+
this.Canvas.fillStyle=this.UpColor;
|
|
24903
|
+
}
|
|
24904
|
+
else if (data.YClose>data.Close)
|
|
24905
|
+
{
|
|
24906
|
+
this.Canvas.strokeStyle=this.DownColor; //阴线
|
|
24907
|
+
this.Canvas.fillStyle=this.DownColor;
|
|
24908
|
+
}
|
|
24909
|
+
|
|
24910
|
+
this.Canvas.beginPath();
|
|
24911
|
+
if (isHScreen)
|
|
24912
|
+
{
|
|
24913
|
+
this.Canvas.moveTo(yHigh,ToFixedPoint(x));
|
|
24914
|
+
this.Canvas.lineTo(yLow,ToFixedPoint(x));
|
|
24915
|
+
}
|
|
24916
|
+
else
|
|
24917
|
+
{
|
|
24918
|
+
this.Canvas.moveTo(ToFixedPoint2(lineWidth,x),yHigh);
|
|
24919
|
+
this.Canvas.lineTo(ToFixedPoint2(lineWidth,x),yLow);
|
|
24920
|
+
}
|
|
24921
|
+
this.Canvas.stroke();
|
|
24922
|
+
*/
|
|
24923
|
+
|
|
24924
|
+
preItem.Item=data;
|
|
24925
|
+
preItem.X=x;
|
|
24926
|
+
|
|
24927
|
+
if (data.Direction==1) preItem.Y=yHigh; //上
|
|
24928
|
+
else if (data.Direction==2) preItem.Y=yLow //下
|
|
24929
|
+
}
|
|
24930
|
+
|
|
24931
|
+
this.PtMax=ptMax;
|
|
24932
|
+
this.PtMin=ptMin;
|
|
24933
|
+
}
|
|
24934
|
+
|
|
24716
24935
|
this.DrawTrade=function() //交易系统
|
|
24717
24936
|
{
|
|
24718
24937
|
if (!this.TradeData) return;
|
|
@@ -25220,6 +25439,10 @@ function ChartKLine()
|
|
|
25220
25439
|
{
|
|
25221
25440
|
this.DrawHLCArea();
|
|
25222
25441
|
}
|
|
25442
|
+
else if (this.DrawType==16)
|
|
25443
|
+
{
|
|
25444
|
+
this.DrawKagi();
|
|
25445
|
+
}
|
|
25223
25446
|
else if (this.DrawType==17)
|
|
25224
25447
|
{
|
|
25225
25448
|
this.DrawOrderFlow_Style4();
|
|
@@ -48319,6 +48542,7 @@ function ChartCorssCursor()
|
|
|
48319
48542
|
|
|
48320
48543
|
this.StringFormatY.Value=yValue;
|
|
48321
48544
|
this.StringFormatY.FrameID=yValueExtend.FrameID;
|
|
48545
|
+
this.StringFormatY.RValue=yValueExtend.RightYValue; //右侧子坐标
|
|
48322
48546
|
this.StringFormatY.Point={X:x, Y:y};
|
|
48323
48547
|
this.StringFormatY.ClientPos=this.ClientPos;
|
|
48324
48548
|
|
|
@@ -49123,6 +49347,7 @@ function HQPriceStringFormat()
|
|
|
49123
49347
|
{
|
|
49124
49348
|
if (this.DataFormatType==1) this.Text=IFrameSplitOperator.FormatValueThousandsString(this.Value,defaultfloatPrecision);
|
|
49125
49349
|
else this.Text=IFrameSplitOperator.FormatValueString(this.Value,defaultfloatPrecision,this.LanguageID);
|
|
49350
|
+
if (IFrameSplitOperator.IsNumber(this.RValue)) this.RText=IFrameSplitOperator.FormatValueString(this.RValue,defaultfloatPrecision,this.LanguageID);
|
|
49126
49351
|
}
|
|
49127
49352
|
|
|
49128
49353
|
if (this.GetEventCallback)
|
|
@@ -65760,20 +65985,24 @@ function RenkoCalculate()
|
|
|
65760
65985
|
//
|
|
65761
65986
|
function KagiCalculate()
|
|
65762
65987
|
{
|
|
65763
|
-
this.
|
|
65764
|
-
this.
|
|
65765
|
-
this.
|
|
65766
|
-
|
|
65988
|
+
this.newMethod=RenkoCalculate; //派生
|
|
65989
|
+
this.newMethod();
|
|
65990
|
+
delete this.newMethod;
|
|
65991
|
+
|
|
65992
|
+
this.ClassName="KagiCalculate";
|
|
65993
|
+
this.BrickSizeType=0;
|
|
65994
|
+
this.BrickSize=0.5; //固定大小
|
|
65767
65995
|
|
|
65768
65996
|
this.RecvHistoryData=function(sourceData, option) //历史日线数据
|
|
65769
65997
|
{
|
|
65770
65998
|
this.Symbol=option.Symbol;
|
|
65771
65999
|
this.SourceData=sourceData;
|
|
65772
66000
|
this.FloatPrecision=GetfloatPrecision(this.Symbol);
|
|
65773
|
-
|
|
66001
|
+
if (this.BrickSizeType==1) this.CalculateATR();
|
|
66002
|
+
return this.CalculateByClose(sourceData);
|
|
65774
66003
|
}
|
|
65775
66004
|
|
|
65776
|
-
this.
|
|
66005
|
+
this.CalculateByClose=function(sourceData)
|
|
65777
66006
|
{
|
|
65778
66007
|
var bindData=new ChartData();
|
|
65779
66008
|
bindData.Data=[]
|
|
@@ -65784,13 +66013,139 @@ function KagiCalculate()
|
|
|
65784
66013
|
|
|
65785
66014
|
if (!IFrameSplitOperator.IsNonEmptyArray(sourceData.Data)) return bindData;
|
|
65786
66015
|
|
|
65787
|
-
var
|
|
66016
|
+
var brickSize=this.BrickSize;
|
|
66017
|
+
if (this.BrickSizeType==1) brickSize=this.ATR.BrickSize;
|
|
65788
66018
|
|
|
65789
66019
|
var kItem=sourceData.Data[0];
|
|
65790
|
-
|
|
65791
|
-
|
|
66020
|
+
var kagiItem=HistoryData.Copy(kItem);
|
|
66021
|
+
|
|
66022
|
+
kagiItem.High=kagiItem.Low=kItem.Close;
|
|
66023
|
+
kagiItem.StartItem=kItem;
|
|
66024
|
+
kagiItem.Direction=0; //1 上 2=下
|
|
66025
|
+
|
|
66026
|
+
var T_MergeKData=function(dest, src)
|
|
65792
66027
|
{
|
|
66028
|
+
dest.Vol+=src.Vol;
|
|
66029
|
+
dest.Amount+=src.Amount;
|
|
65793
66030
|
}
|
|
66031
|
+
|
|
66032
|
+
var index=1;
|
|
66033
|
+
for( ;index<sourceData.Data.length;++index) //确定好方向
|
|
66034
|
+
{
|
|
66035
|
+
var kItem=sourceData.Data[index];
|
|
66036
|
+
if (kItem.Close>kagiItem.Close)
|
|
66037
|
+
{
|
|
66038
|
+
kagiItem.Direction=1;
|
|
66039
|
+
kagiItem.Close=kItem.Close;
|
|
66040
|
+
kagiItem.EndItem=kItem;
|
|
66041
|
+
kagiItem.High=kItem.Close;
|
|
66042
|
+
break;
|
|
66043
|
+
}
|
|
66044
|
+
else if (kItem.Close<kagiItem.Close)
|
|
66045
|
+
{
|
|
66046
|
+
kagiItem.Direction=2;
|
|
66047
|
+
kagiItem.Close=kItem.Close;
|
|
66048
|
+
kagiItem.EndItem=kItem;
|
|
66049
|
+
kagiItem.Low=kItem.Close;
|
|
66050
|
+
break;
|
|
66051
|
+
}
|
|
66052
|
+
}
|
|
66053
|
+
|
|
66054
|
+
var changeItem=null;
|
|
66055
|
+
for(++index; index<sourceData.Data.length;++index )
|
|
66056
|
+
{
|
|
66057
|
+
var kItem=sourceData.Data[index];
|
|
66058
|
+
if (kagiItem.Direction==1) //上
|
|
66059
|
+
{
|
|
66060
|
+
if (kItem.Close>=kagiItem.High)
|
|
66061
|
+
{
|
|
66062
|
+
kagiItem.Close=kItem.Close;
|
|
66063
|
+
kagiItem.High=kItem.Close;
|
|
66064
|
+
kagiItem.EndItem=kItem;
|
|
66065
|
+
changeItem=null;
|
|
66066
|
+
}
|
|
66067
|
+
else
|
|
66068
|
+
{
|
|
66069
|
+
if (!changeItem)
|
|
66070
|
+
{
|
|
66071
|
+
changeItem=HistoryData.Copy(kItem);
|
|
66072
|
+
changeItem.High=changeItem.Low=kItem.Close;
|
|
66073
|
+
}
|
|
66074
|
+
else
|
|
66075
|
+
{
|
|
66076
|
+
changeItem.Close=kItem.Close;
|
|
66077
|
+
if (changeItem.Low>kItem.Close) changeItem.Low=kItem.Close;
|
|
66078
|
+
}
|
|
66079
|
+
|
|
66080
|
+
if (Math.abs(changeItem.Low-kagiItem.High)>brickSize) //达到变盘点
|
|
66081
|
+
{
|
|
66082
|
+
bindData.Data.push(kagiItem);
|
|
66083
|
+
|
|
66084
|
+
var newItem=HistoryData.Copy(kItem);
|
|
66085
|
+
newItem.High=kagiItem.High;
|
|
66086
|
+
newItem.Low=kItem.Close;
|
|
66087
|
+
newItem.Direction=2; //1 上 2=下
|
|
66088
|
+
newItem.StartItem=kItem;
|
|
66089
|
+
|
|
66090
|
+
kagiItem=newItem;
|
|
66091
|
+
changeItem=null;
|
|
66092
|
+
}
|
|
66093
|
+
}
|
|
66094
|
+
}
|
|
66095
|
+
else if (kagiItem.Direction==2) //下
|
|
66096
|
+
{
|
|
66097
|
+
if (kItem.Close<=kagiItem.Low)
|
|
66098
|
+
{
|
|
66099
|
+
kagiItem.Close=kItem.Close;
|
|
66100
|
+
kagiItem.Low=kItem.Close;
|
|
66101
|
+
kagiItem.EndItem=kItem;
|
|
66102
|
+
}
|
|
66103
|
+
else
|
|
66104
|
+
{
|
|
66105
|
+
if (!changeItem)
|
|
66106
|
+
{
|
|
66107
|
+
changeItem=HistoryData.Copy(kItem);
|
|
66108
|
+
changeItem.High=changeItem.Low=kItem.Close;
|
|
66109
|
+
}
|
|
66110
|
+
else
|
|
66111
|
+
{
|
|
66112
|
+
changeItem.Close=kItem.Close;
|
|
66113
|
+
if (changeItem.High<kItem.Close) changeItem.High=kItem.Close;
|
|
66114
|
+
}
|
|
66115
|
+
|
|
66116
|
+
if (Math.abs(changeItem.High-kagiItem.Low)>brickSize) //达到变盘点
|
|
66117
|
+
{
|
|
66118
|
+
bindData.Data.push(kagiItem);
|
|
66119
|
+
|
|
66120
|
+
var newItem=HistoryData.Copy(kItem);
|
|
66121
|
+
newItem.High=kItem.Close;
|
|
66122
|
+
newItem.Low=kagiItem.Low;
|
|
66123
|
+
newItem.Direction=1; //1 上 2=下
|
|
66124
|
+
newItem.StartItem=kItem;
|
|
66125
|
+
|
|
66126
|
+
kagiItem=newItem;
|
|
66127
|
+
changeItem=null;
|
|
66128
|
+
}
|
|
66129
|
+
}
|
|
66130
|
+
}
|
|
66131
|
+
}
|
|
66132
|
+
|
|
66133
|
+
return bindData;
|
|
66134
|
+
}
|
|
66135
|
+
|
|
66136
|
+
//获取配置信息
|
|
66137
|
+
this.GetTitle=function()
|
|
66138
|
+
{
|
|
66139
|
+
if (this.BrickSizeType==1)
|
|
66140
|
+
{
|
|
66141
|
+
var text=`Kagi [ATR(${this.ATR.Count}), ${this.ATR.BrickSize}]`;
|
|
66142
|
+
}
|
|
66143
|
+
else
|
|
66144
|
+
{
|
|
66145
|
+
var text=`Kagi [Traditional]`;
|
|
66146
|
+
}
|
|
66147
|
+
|
|
66148
|
+
return text;
|
|
65794
66149
|
}
|
|
65795
66150
|
}
|
|
65796
66151
|
|
|
@@ -69398,12 +69753,17 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
69398
69753
|
//删除某一个窗口的指标, bCallDestory=是否调用图形销毁函数
|
|
69399
69754
|
this.DeleteIndexPaint=function(windowIndex, bCallDestroy)
|
|
69400
69755
|
{
|
|
69401
|
-
|
|
69402
|
-
|
|
69756
|
+
if (!this.Frame.SubFrame[windowIndex]) return;
|
|
69757
|
+
var subFrame=this.Frame.SubFrame[windowIndex].Frame;
|
|
69758
|
+
if (!subFrame) return;
|
|
69759
|
+
|
|
69760
|
+
var paint=[]; //踢出当前窗口的指标画法
|
|
69761
|
+
for(var i=0;i<this.ChartPaint.length; ++i)
|
|
69403
69762
|
{
|
|
69404
|
-
|
|
69763
|
+
var item=this.ChartPaint[i];
|
|
69764
|
+
var bFind=(item.ChartFrame.Guid==subFrame.Guid || item.ChartFrame==subFrame);
|
|
69405
69765
|
|
|
69406
|
-
if (i==0 ||
|
|
69766
|
+
if (i==0 || !bFind)
|
|
69407
69767
|
{
|
|
69408
69768
|
paint.push(item);
|
|
69409
69769
|
}
|
|
@@ -69416,7 +69776,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
69416
69776
|
}
|
|
69417
69777
|
}
|
|
69418
69778
|
|
|
69419
|
-
|
|
69779
|
+
|
|
69420
69780
|
subFrame.YSpecificMaxMin=null; //清空指定最大最小值
|
|
69421
69781
|
subFrame.IsLocked=false; //解除上锁
|
|
69422
69782
|
subFrame.YSplitScale = null; //清空固定刻度
|
|
@@ -75150,6 +75510,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
75150
75510
|
}
|
|
75151
75511
|
|
|
75152
75512
|
var subFrame=new SubFrameItem();
|
|
75513
|
+
frame.FrameData.SubFrameItem=subFrame;
|
|
75153
75514
|
subFrame.Frame=frame;
|
|
75154
75515
|
if (i==0)
|
|
75155
75516
|
subFrame.Height=20;
|
|
@@ -75236,6 +75597,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
75236
75597
|
}
|
|
75237
75598
|
|
|
75238
75599
|
var subFrame=new SubFrameItem();
|
|
75600
|
+
frame.FrameData.SubFrameItem=subFrame;
|
|
75239
75601
|
subFrame.Frame=frame;
|
|
75240
75602
|
subFrame.Height=10;
|
|
75241
75603
|
|
|
@@ -75307,12 +75669,16 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
75307
75669
|
//删除某一个窗口的指标
|
|
75308
75670
|
this.DeleteIndexPaint=function(windowIndex,bCallDestroy)
|
|
75309
75671
|
{
|
|
75310
|
-
|
|
75311
|
-
|
|
75672
|
+
var subFrame=this.Frame.SubFrame[windowIndex].Frame;
|
|
75673
|
+
if (!subFrame) return;
|
|
75674
|
+
|
|
75675
|
+
var paint=[]; //踢出当前窗口的指标画法
|
|
75676
|
+
for(var i=0;i<this.ChartPaint.length;++i)
|
|
75312
75677
|
{
|
|
75313
|
-
|
|
75678
|
+
var item=this.ChartPaint[i];
|
|
75679
|
+
var bFind=(item.ChartFrame.Guid==subFrame.Guid || item.ChartFrame==subFrame);
|
|
75314
75680
|
|
|
75315
|
-
if (i==0 ||
|
|
75681
|
+
if (i==0 || !bFind)
|
|
75316
75682
|
{
|
|
75317
75683
|
paint.push(item);
|
|
75318
75684
|
}
|
|
@@ -75326,7 +75692,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
75326
75692
|
}
|
|
75327
75693
|
|
|
75328
75694
|
//清空指定最大最小值
|
|
75329
|
-
|
|
75695
|
+
|
|
75330
75696
|
subFrame.YSpecificMaxMin=null;
|
|
75331
75697
|
subFrame.IsLocked=false; //解除上锁
|
|
75332
75698
|
subFrame.YSplitOperator.SplitType=subFrame.YSplitOperator.DefaultSplitType; //还原Y坐标分割模式
|
|
@@ -80649,6 +81015,7 @@ function KLineChartHScreenContainer(uielement)
|
|
|
80649
81015
|
}
|
|
80650
81016
|
|
|
80651
81017
|
var subFrame=new SubFrameItem();
|
|
81018
|
+
frame.FrameData.SubFrameItem=subFrame;
|
|
80652
81019
|
subFrame.Frame=frame;
|
|
80653
81020
|
if (i==0)
|
|
80654
81021
|
subFrame.Height=20;
|
|
@@ -80793,6 +81160,7 @@ function MinuteChartHScreenContainer(uielement)
|
|
|
80793
81160
|
}
|
|
80794
81161
|
|
|
80795
81162
|
var subFrame=new SubFrameItem();
|
|
81163
|
+
frame.FrameData.SubFrameItem=subFrame;
|
|
80796
81164
|
subFrame.Frame=frame;
|
|
80797
81165
|
if (i==0)
|
|
80798
81166
|
subFrame.Height=20;
|