hqchart 1.1.12505 → 1.1.12513
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/lib/umychart.stock.vue.js +2 -2
- package/lib/umychart.vue.js +25 -23
- package/package.json +1 -1
- package/src/jscommon/umychart.complier.js +60 -1
- package/src/jscommon/umychart.js +96 -50
- package/src/jscommon/umychart.stock.js +2 -2
- package/src/jscommon/umychart.testdata/300439.sz.5day.minute.js +12172 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +157 -52
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.stock.vue.js +2 -2
- package/src/jscommon/umychart.vue/umychart.vue.js +157 -52
- package/src/jscommon/umychart.wechat/umychart.complier.wechat.js +3 -2
- package/src/jscommon/umychart.wechat/umychart.data.wechat.js +1 -0
- package/src/jscommon/umychart.wechat/umychart.index.wechat.js +6 -0
- package/src/jscommon/umychart.wechat/umychart.version.wechat.js +1 -1
|
@@ -10414,6 +10414,13 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
10414
10414
|
return false;
|
|
10415
10415
|
}
|
|
10416
10416
|
|
|
10417
|
+
this.IsMinuteContainer=function()
|
|
10418
|
+
{
|
|
10419
|
+
if (this.ClassName=="MinuteChartContainer" || this.ClassName=="MinuteChartHScreenContainer") return true;
|
|
10420
|
+
|
|
10421
|
+
return false;
|
|
10422
|
+
}
|
|
10423
|
+
|
|
10417
10424
|
this.UpdatePointByCursorIndex=function(type) //type 1=根据十字光标更新 2=强制取消十字光标
|
|
10418
10425
|
{
|
|
10419
10426
|
var pt={X:null, Y:null};
|
|
@@ -24989,9 +24996,12 @@ function IChartPainting()
|
|
|
24989
24996
|
}
|
|
24990
24997
|
else if (valueType==3)
|
|
24991
24998
|
{
|
|
24992
|
-
var
|
|
24993
|
-
|
|
24994
|
-
|
|
24999
|
+
var minItem=this.Data.Data[i];
|
|
25000
|
+
var mainItem=this.MainData.Data[i];
|
|
25001
|
+
if (!minItem || !IFrameSplitOperator.IsNumber(minItem.Close) || !IFrameSplitOperator.IsNumber(minItem.YClose)) continue;
|
|
25002
|
+
if (!mainItem || !IFrameSplitOperator.IsNumber(mainItem.Close) || !IFrameSplitOperator.IsNumber(mainItem.YClose)) continue;
|
|
25003
|
+
var price=minItem.Close;
|
|
25004
|
+
var value=price/minItem.YClose*mainItem.YClose;
|
|
24995
25005
|
}
|
|
24996
25006
|
else if (valueType==4)
|
|
24997
25007
|
{
|
|
@@ -25111,9 +25121,12 @@ function IChartPainting()
|
|
|
25111
25121
|
}
|
|
25112
25122
|
else if (valueType==3)
|
|
25113
25123
|
{
|
|
25114
|
-
var
|
|
25115
|
-
|
|
25116
|
-
|
|
25124
|
+
var minItem=this.Data.Data[i];
|
|
25125
|
+
var mainItem=this.MainData.Data[i];
|
|
25126
|
+
if (!minItem || !IFrameSplitOperator.IsNumber(minItem.Close) || !IFrameSplitOperator.IsNumber(minItem.YClose)) continue;
|
|
25127
|
+
if (!mainItem || !IFrameSplitOperator.IsNumber(mainItem.Close) || !IFrameSplitOperator.IsNumber(mainItem.YClose)) continue;
|
|
25128
|
+
var price=minItem.Close;
|
|
25129
|
+
var value=price/minItem.YClose*mainItem.YClose;
|
|
25117
25130
|
}
|
|
25118
25131
|
else
|
|
25119
25132
|
{
|
|
@@ -35763,19 +35776,16 @@ function ChartOverlayMinutePriceLine()
|
|
|
35763
35776
|
|
|
35764
35777
|
this.Color="rgb(65,105,225)";
|
|
35765
35778
|
this.MainData; //主图数据
|
|
35766
|
-
this.MainYClose; //主图股票的前收盘价
|
|
35767
35779
|
this.SourceData; //原始数据
|
|
35768
35780
|
|
|
35769
35781
|
this.ClassName="ChartOverlayMinutePriceLine";
|
|
35770
35782
|
this.Title;
|
|
35771
35783
|
this.Symbol; //叠加的股票代码
|
|
35772
|
-
this.YClose; //叠加的股票前收盘
|
|
35773
35784
|
this.Status=OVERLAY_STATUS_ID.STATUS_NONE_ID;
|
|
35774
35785
|
|
|
35775
35786
|
this.OverlayType=0; //叠加方式 0=百分比叠加 1=绝对叠加
|
|
35776
35787
|
this.IsCalcuateMaxMin=true; //是否参与计算Y轴的最大最小值
|
|
35777
35788
|
|
|
35778
|
-
|
|
35779
35789
|
this.SetOption=function(option)
|
|
35780
35790
|
{
|
|
35781
35791
|
if (option)
|
|
@@ -35787,19 +35797,21 @@ function ChartOverlayMinutePriceLine()
|
|
|
35787
35797
|
|
|
35788
35798
|
this.PtInChart=function(x,y)
|
|
35789
35799
|
{
|
|
35790
|
-
var option={ MinuteOverlayPrice:true,
|
|
35800
|
+
var option={ MinuteOverlayPrice:true, OverlayType:this.OverlayType };
|
|
35791
35801
|
return this.PtInLine(x, y, option);
|
|
35792
35802
|
}
|
|
35793
35803
|
|
|
35794
35804
|
this.DrawSelectedStatus=function()
|
|
35795
35805
|
{
|
|
35796
|
-
var option={ MinuteOverlayPrice:true,
|
|
35806
|
+
var option={ MinuteOverlayPrice:true, OverlayType:this.OverlayType };
|
|
35797
35807
|
this.DrawLinePoint(option);
|
|
35798
35808
|
}
|
|
35799
35809
|
|
|
35800
35810
|
this.Draw=function()
|
|
35801
35811
|
{
|
|
35802
35812
|
if (!this.Data) return;
|
|
35813
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return;
|
|
35814
|
+
|
|
35803
35815
|
if (this.NotSupportMessage)
|
|
35804
35816
|
{
|
|
35805
35817
|
this.DrawNotSupportmessage();
|
|
@@ -35820,37 +35832,53 @@ function ChartOverlayMinutePriceLine()
|
|
|
35820
35832
|
var bFirstPoint=true;
|
|
35821
35833
|
var drawCount=0;
|
|
35822
35834
|
var xOffset=0, showValue=0;
|
|
35835
|
+
var yClose=null, mainYClose=null;
|
|
35836
|
+
var pointCount=0;
|
|
35823
35837
|
for(var i=this.Data.DataOffset+xOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
|
|
35824
35838
|
{
|
|
35825
|
-
var
|
|
35826
|
-
if (
|
|
35839
|
+
var item=this.Data.Data[i];
|
|
35840
|
+
if (item && IFrameSplitOperator.IsNumber(item.Close))
|
|
35841
|
+
{
|
|
35842
|
+
if (bFirstPoint) //百分比使用每天的昨收计算
|
|
35843
|
+
{
|
|
35844
|
+
yClose=item.YClose;
|
|
35845
|
+
var minItem=this.MainData.Data[i];
|
|
35846
|
+
mainYClose=minItem.YClose;
|
|
35847
|
+
}
|
|
35827
35848
|
|
|
35828
|
-
|
|
35829
|
-
|
|
35849
|
+
var value=item.Close;
|
|
35850
|
+
showValue=value; //绝对叠加
|
|
35830
35851
|
|
|
35831
|
-
|
|
35832
|
-
|
|
35852
|
+
if (this.OverlayType==0)
|
|
35853
|
+
showValue=value/yClose*mainYClose; //百分比
|
|
35833
35854
|
|
|
35834
|
-
|
|
35835
|
-
|
|
35836
|
-
|
|
35837
|
-
|
|
35838
|
-
|
|
35839
|
-
|
|
35840
|
-
|
|
35841
|
-
|
|
35842
|
-
|
|
35843
|
-
|
|
35844
|
-
|
|
35845
|
-
else
|
|
35855
|
+
var x=this.ChartFrame.GetXFromIndex(j);
|
|
35856
|
+
var y=this.ChartFrame.GetYFromData(showValue, false);
|
|
35857
|
+
|
|
35858
|
+
if (bFirstPoint)
|
|
35859
|
+
{
|
|
35860
|
+
this.Canvas.strokeStyle=this.Color;
|
|
35861
|
+
this.Canvas.beginPath();
|
|
35862
|
+
if (isHScreen) this.Canvas.moveTo(y,x);
|
|
35863
|
+
else this.Canvas.moveTo(x,y);
|
|
35864
|
+
bFirstPoint=false;
|
|
35865
|
+
}
|
|
35866
|
+
else
|
|
35867
|
+
{
|
|
35868
|
+
if (isHScreen) this.Canvas.lineTo(y,x);
|
|
35869
|
+
else this.Canvas.lineTo(x,y);
|
|
35870
|
+
}
|
|
35871
|
+
|
|
35872
|
+
++drawCount;
|
|
35846
35873
|
}
|
|
35847
35874
|
|
|
35848
|
-
++
|
|
35875
|
+
++pointCount;
|
|
35849
35876
|
|
|
35850
|
-
if (
|
|
35877
|
+
if (pointCount>=minuteCount) //上一天的数据和这天地数据线段要断开
|
|
35851
35878
|
{
|
|
35852
35879
|
bFirstPoint=true;
|
|
35853
|
-
|
|
35880
|
+
pointCount=0;
|
|
35881
|
+
if (drawCount>0) this.Canvas.stroke();
|
|
35854
35882
|
drawCount=0;
|
|
35855
35883
|
}
|
|
35856
35884
|
}
|
|
@@ -35863,24 +35891,46 @@ function ChartOverlayMinutePriceLine()
|
|
|
35863
35891
|
this.GetMaxMin=function()
|
|
35864
35892
|
{
|
|
35865
35893
|
var xPointCount=this.ChartFrame.XPointCount;
|
|
35866
|
-
var range={};
|
|
35894
|
+
var range={ Min:null, Max:null };
|
|
35867
35895
|
if (!this.IsCalcuateMaxMin) return range;
|
|
35868
|
-
if (this.YClose==null) return range;
|
|
35869
35896
|
|
|
35870
|
-
|
|
35871
|
-
|
|
35897
|
+
var minuteCount=this.ChartFrame.MinuteCount;
|
|
35898
|
+
var yClose=null, mainYClose=null;
|
|
35899
|
+
var bFirstPoint=true;
|
|
35900
|
+
var pointCount=0;
|
|
35872
35901
|
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
|
|
35873
35902
|
{
|
|
35874
|
-
var
|
|
35875
|
-
if (
|
|
35903
|
+
var item=this.Data.Data[i];
|
|
35904
|
+
if (!item || !IFrameSplitOperator.IsNumber(item.Close))
|
|
35905
|
+
{
|
|
35906
|
+
++pointCount;
|
|
35907
|
+
continue;
|
|
35908
|
+
}
|
|
35876
35909
|
|
|
35877
|
-
if (
|
|
35910
|
+
if (bFirstPoint)
|
|
35911
|
+
{
|
|
35912
|
+
yClose=item.YClose;
|
|
35913
|
+
var minItem=this.MainData.Data[i];
|
|
35914
|
+
mainYClose=minItem.YClose;
|
|
35915
|
+
bFirstPoint=false;
|
|
35916
|
+
}
|
|
35917
|
+
|
|
35918
|
+
var value=item.Close;
|
|
35919
|
+
if (this.OverlayType==0) value=value/yClose*mainYClose;
|
|
35878
35920
|
|
|
35879
35921
|
if (range.Max==null) range.Max=value;
|
|
35880
35922
|
if (range.Min==null) range.Min=value;
|
|
35881
35923
|
|
|
35882
35924
|
if (range.Max<value) range.Max=value;
|
|
35883
35925
|
if (range.Min>value) range.Min=value;
|
|
35926
|
+
|
|
35927
|
+
++pointCount;
|
|
35928
|
+
|
|
35929
|
+
if (pointCount>=minuteCount)
|
|
35930
|
+
{
|
|
35931
|
+
bFirstPoint=true;
|
|
35932
|
+
pointCount=0;
|
|
35933
|
+
}
|
|
35884
35934
|
}
|
|
35885
35935
|
|
|
35886
35936
|
//JSConsole.Chart.Log(`[ChartOverlayMinutePriceLine::GetMaxMin] max=${range.Max} min=${range.Min}`);
|
|
@@ -77008,7 +77058,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
77008
77058
|
//叠加股票
|
|
77009
77059
|
this.OverlaySymbol=function(symbol,option)
|
|
77010
77060
|
{
|
|
77011
|
-
for(var i
|
|
77061
|
+
for(var i=0; i<this.OverlayChartPaint.length; ++i)
|
|
77012
77062
|
{
|
|
77013
77063
|
var item=this.OverlayChartPaint[i];
|
|
77014
77064
|
if (item.Symbol==symbol)
|
|
@@ -77028,11 +77078,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
77028
77078
|
if (option && option.Color) paint.Color=option.Color; //外部设置颜色
|
|
77029
77079
|
else paint.Color=g_JSChartResource.OverlaySymbol.Color[g_JSChartResource.OverlaySymbol.Random%g_JSChartResource.OverlaySymbol.Color.length];
|
|
77030
77080
|
++g_JSChartResource.OverlaySymbol.Random;
|
|
77031
|
-
|
|
77032
|
-
{
|
|
77033
|
-
paint.MainData=this.ChartPaint[0].Data;
|
|
77034
|
-
paint.MainYClose=this.ChartPaint[0].YClose;
|
|
77035
|
-
}
|
|
77081
|
+
paint.MainData=this.SourceData; //绑定主图数据
|
|
77036
77082
|
|
|
77037
77083
|
if (paint.SetOption) paint.SetOption(option);
|
|
77038
77084
|
|
|
@@ -78000,7 +78046,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
78000
78046
|
for(var i=0; i<this.OverlayChartPaint.length; ++i)
|
|
78001
78047
|
{
|
|
78002
78048
|
let item=this.OverlayChartPaint[i];
|
|
78003
|
-
if (!item.MainData
|
|
78049
|
+
if (!item.MainData) continue;
|
|
78004
78050
|
if (item.Status!=OVERLAY_STATUS_ID.STATUS_NONE_ID) continue;
|
|
78005
78051
|
var symbol=item.Symbol;
|
|
78006
78052
|
if (!symbol) continue;
|
|
@@ -78061,7 +78107,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
78061
78107
|
for(var j=0; j<this.OverlayChartPaint.length; ++j)
|
|
78062
78108
|
{
|
|
78063
78109
|
var item=this.OverlayChartPaint[j];
|
|
78064
|
-
if (!item.MainData
|
|
78110
|
+
if (!item.MainData) continue;
|
|
78065
78111
|
if (overlayData.symbol==item.Symbol)
|
|
78066
78112
|
{
|
|
78067
78113
|
this.RecvOverlayMinuteData(overlayData, item, { Redraw:false });
|
|
@@ -78222,6 +78268,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
78222
78268
|
{
|
|
78223
78269
|
var empytData=new ChartData();
|
|
78224
78270
|
empytData.Date=item.Date;
|
|
78271
|
+
empytData.Data.length=item.Data.length;
|
|
78225
78272
|
overlayDayData.push(empytData);
|
|
78226
78273
|
}
|
|
78227
78274
|
}
|
|
@@ -78455,11 +78502,10 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
78455
78502
|
this.ExtendChartPaint[0].Name=this.Name;
|
|
78456
78503
|
}
|
|
78457
78504
|
|
|
78458
|
-
for(var i
|
|
78505
|
+
for(var i=0; i<this.OverlayChartPaint.length; ++i)
|
|
78459
78506
|
{
|
|
78460
78507
|
var item=this.OverlayChartPaint[i];
|
|
78461
|
-
item.MainData=
|
|
78462
|
-
item.MainYClose=yClose;
|
|
78508
|
+
item.MainData=minuteData; //绑定主图数据
|
|
78463
78509
|
}
|
|
78464
78510
|
}
|
|
78465
78511
|
|
|
@@ -102245,6 +102291,36 @@ function JSDraw(errorHandler,symbolData)
|
|
|
102245
102291
|
return result;
|
|
102246
102292
|
}
|
|
102247
102293
|
|
|
102294
|
+
//叠加一个K线
|
|
102295
|
+
this.DRAWOVERLAYKLINE=function(open, high, low, close)
|
|
102296
|
+
{
|
|
102297
|
+
var drawData=[];
|
|
102298
|
+
var result={DrawData:drawData, DrawType:'DRAWOVERLAYKLINE'};
|
|
102299
|
+
var count=Math.max(high.length, open.length,low.length,close.length);
|
|
102300
|
+
|
|
102301
|
+
var kData=this.SymbolData.Data.Data;
|
|
102302
|
+
for(var i=0;i<count;++i)
|
|
102303
|
+
{
|
|
102304
|
+
var item={Open:null,High:null, Low:null, Close:null};
|
|
102305
|
+
var kItem=kData[i];
|
|
102306
|
+
if (i<high.length && i<open.length && i<low.length && i<close.length &&
|
|
102307
|
+
IFrameSplitOperator.IsNumber(open[i]) && IFrameSplitOperator.IsNumber(high[i]) && IFrameSplitOperator.IsNumber(low[i]) && IFrameSplitOperator.IsNumber(low[i]))
|
|
102308
|
+
{
|
|
102309
|
+
|
|
102310
|
+
item.Open=open[i];
|
|
102311
|
+
item.High=high[i];
|
|
102312
|
+
item.Low=low[i];
|
|
102313
|
+
item.Close=close[i];
|
|
102314
|
+
item.Date=kItem.Date;
|
|
102315
|
+
if (IFrameSplitOperator.IsNumber(kItem.Time)) item.Time=kItem.Time;
|
|
102316
|
+
}
|
|
102317
|
+
|
|
102318
|
+
drawData[i]=item;
|
|
102319
|
+
}
|
|
102320
|
+
|
|
102321
|
+
return result;
|
|
102322
|
+
}
|
|
102323
|
+
|
|
102248
102324
|
/*
|
|
102249
102325
|
DRAWCOLORKLINE 绘制K线
|
|
102250
102326
|
用法:
|
|
@@ -103752,7 +103828,7 @@ JSDraw.prototype.IsDrawFunction=function(name)
|
|
|
103752
103828
|
{
|
|
103753
103829
|
let setFunctionName=new Set(
|
|
103754
103830
|
[
|
|
103755
|
-
"STICKLINE","DRAWTEXT",'SUPERDRAWTEXT','DRAWLINE','DRAWBAND','DRAWKLINE',"DRAWKLINE1",'DRAWKLINE_IF',"DRAWCOLORKLINE",'PLOYLINE',
|
|
103831
|
+
"STICKLINE","DRAWTEXT",'SUPERDRAWTEXT','DRAWLINE','DRAWBAND','DRAWKLINE',"DRAWKLINE1",'DRAWKLINE_IF',"DRAWCOLORKLINE",'PLOYLINE',"DRAWOVERLAYKLINE",
|
|
103756
103832
|
'POLYLINE','DRAWNUMBER',"DRAWNUMBER_FIX",'DRAWICON','DRAWCHANNEL','PARTLINE','DRAWTEXT_FIX','DRAWGBK','DRAWTEXT_LINE','DRAWRECTREL',"DRAWTEXTABS","DRAWTEXTREL",
|
|
103757
103833
|
'DRAWOVERLAYLINE',"FILLRGN", "FILLRGN2","FILLTOPRGN", "FILLBOTTOMRGN", "FILLVERTICALRGN","FLOATRGN","DRAWSL", "DRAWGBK2","DRAWGBK_DIV",
|
|
103758
103834
|
"VERTLINE","HORLINE","TIPICON"
|
|
@@ -110036,6 +110112,10 @@ function JSExecute(ast,option)
|
|
|
110036
110112
|
node.Draw=this.Draw.DRAWKLINE_IF(args[0],args[1],args[2],args[3],args[4]);
|
|
110037
110113
|
node.Out=[];
|
|
110038
110114
|
break;
|
|
110115
|
+
case "DRAWOVERLAYKLINE":
|
|
110116
|
+
node.Draw=this.Draw.DRAWOVERLAYKLINE(args[0],args[1],args[2],args[3]);
|
|
110117
|
+
node.Out=[];
|
|
110118
|
+
break;
|
|
110039
110119
|
case "DRAWCOLORKLINE":
|
|
110040
110120
|
node.Draw=this.Draw.DRAWCOLORKLINE(args[0],args[1],args[2]);
|
|
110041
110121
|
node.Out=[];
|
|
@@ -112657,6 +112737,28 @@ function ScriptIndex(name,script,args,option)
|
|
|
112657
112737
|
hqChart.ChartPaint.push(chart);
|
|
112658
112738
|
}
|
|
112659
112739
|
|
|
112740
|
+
this.CreateOverlayKLine=function(hqChart,windowIndex,varItem,id)
|
|
112741
|
+
{
|
|
112742
|
+
var chart=null;
|
|
112743
|
+
if (hqChart.IsKLineContainer()) chart=new ChartOverlayKLine();
|
|
112744
|
+
else if (hqChart.IsMinuteContainer()) chart=new ChartOverlayMinutePriceLine();
|
|
112745
|
+
else return;
|
|
112746
|
+
|
|
112747
|
+
chart.Canvas=hqChart.Canvas;
|
|
112748
|
+
chart.Name=varItem.Name;
|
|
112749
|
+
chart.Identify=this.Guid;
|
|
112750
|
+
chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
|
|
112751
|
+
chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;
|
|
112752
|
+
|
|
112753
|
+
if (varItem.Color) chart.Color=this.GetColor(varItem.Color); //如果设置了颜色,使用外面设置的颜色
|
|
112754
|
+
else chart.Color=this.GetDefaultColor(id);
|
|
112755
|
+
|
|
112756
|
+
chart.Data.Data=varItem.Draw.DrawData;
|
|
112757
|
+
chart.MainData=hqChart.ChartPaint[0].Data;//绑定K线
|
|
112758
|
+
|
|
112759
|
+
hqChart.ChartPaint.push(chart);
|
|
112760
|
+
}
|
|
112761
|
+
|
|
112660
112762
|
this.CreateDrawColorKLine=function(hqChart,windowIndex,varItem,i)
|
|
112661
112763
|
{
|
|
112662
112764
|
let chart=new ChartColorKline();
|
|
@@ -113497,6 +113599,9 @@ function ScriptIndex(name,script,args,option)
|
|
|
113497
113599
|
case "DRAWKLINE1":
|
|
113498
113600
|
this.CreateKLine(hqChart,windowIndex,item,i);
|
|
113499
113601
|
break;
|
|
113602
|
+
case "DRAWOVERLAYKLINE":
|
|
113603
|
+
this.CreateOverlayKLine(hqChart,windowIndex,item,i);
|
|
113604
|
+
break;
|
|
113500
113605
|
case "DRAWCOLORKLINE":
|
|
113501
113606
|
this.CreateDrawColorKLine(hqChart,windowIndex,item,i);
|
|
113502
113607
|
break;
|
|
@@ -128475,7 +128580,7 @@ function HQChartScriptWorker()
|
|
|
128475
128580
|
|
|
128476
128581
|
|
|
128477
128582
|
|
|
128478
|
-
var HQCHART_VERSION="1.1.
|
|
128583
|
+
var HQCHART_VERSION="1.1.12512";
|
|
128479
128584
|
|
|
128480
128585
|
function PrintHQChartVersion()
|
|
128481
128586
|
{
|
|
@@ -8574,7 +8574,7 @@ function JSDraw(errorHandler, symbolData)
|
|
|
8574
8574
|
例如:
|
|
8575
8575
|
DRAWICON(CLOSE>OPEN,LOW,1)表示当收阳时在最低价位置画1号图标.
|
|
8576
8576
|
*/
|
|
8577
|
-
this.DRAWICON = function (condition, data, type)
|
|
8577
|
+
this.DRAWICON = function (condition, data, type, markID)
|
|
8578
8578
|
{
|
|
8579
8579
|
if (IFrameSplitOperator.IsString(type)) //把ICO1=>1
|
|
8580
8580
|
{
|
|
@@ -8586,6 +8586,7 @@ function JSDraw(errorHandler, symbolData)
|
|
|
8586
8586
|
if (!icon) icon = { Symbol: '●', Color: 'rgb(0,139,69)'};
|
|
8587
8587
|
let drawData = [];
|
|
8588
8588
|
let result = { DrawData: drawData, DrawType: 'DRAWICON', Icon: icon , IconID:type};
|
|
8589
|
+
if (markID) result.MarkID=markID;
|
|
8589
8590
|
if (condition.length <= 0) return result;
|
|
8590
8591
|
|
|
8591
8592
|
var IsNumber = typeof (data) == "number";
|
|
@@ -13254,7 +13255,7 @@ function JSExecute(ast,option)
|
|
|
13254
13255
|
node.Out=[];
|
|
13255
13256
|
break;
|
|
13256
13257
|
case 'DRAWICON':
|
|
13257
|
-
node.Draw = this.Draw.DRAWICON(args[0], args[1], args[2]);
|
|
13258
|
+
node.Draw = this.Draw.DRAWICON(args[0], args[1], args[2], args[3]);
|
|
13258
13259
|
node.Out = [];
|
|
13259
13260
|
break;
|
|
13260
13261
|
case "ICON":
|
|
@@ -935,6 +935,8 @@ function ScriptIndex(name, script, args, option)
|
|
|
935
935
|
if (varItem.Color) chart.Color = this.GetColor(varItem.Color);
|
|
936
936
|
else chart.Color = 'rgb(0,0,0)';
|
|
937
937
|
|
|
938
|
+
if (varItem.Draw.MarkID) chart.MarkID=varItem.Draw.MarkID; //外部指定ID
|
|
939
|
+
|
|
938
940
|
if (varItem.DrawVAlign>=0)
|
|
939
941
|
{
|
|
940
942
|
if (varItem.DrawVAlign==0) chart.TextBaseline="top";
|
|
@@ -961,6 +963,7 @@ function ScriptIndex(name, script, args, option)
|
|
|
961
963
|
if (event && event.Callback)
|
|
962
964
|
{
|
|
963
965
|
var sendData={ FrameID:windowIndex, ID:id, Data:varItem, Callback:null };
|
|
966
|
+
if (varItem.Draw.MarkID) sendData.MarkID=varItem.Draw.MarkID; //外部指定ID
|
|
964
967
|
event.Callback(event, sendData,this);
|
|
965
968
|
if (sendData.Callback)
|
|
966
969
|
{
|
|
@@ -972,6 +975,7 @@ function ScriptIndex(name, script, args, option)
|
|
|
972
975
|
let chartText = new ChartSingleText();
|
|
973
976
|
chartText.Canvas = hqChart.Canvas;
|
|
974
977
|
chartText.TextAlign = 'center';
|
|
978
|
+
|
|
975
979
|
|
|
976
980
|
chartText.Name = varItem.Name;
|
|
977
981
|
chartText.ChartBorder = hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
|
|
@@ -984,6 +988,8 @@ function ScriptIndex(name, script, args, option)
|
|
|
984
988
|
else if (varItem.Draw.Icon.Color) chartText.Color = varItem.Draw.Icon.Color;
|
|
985
989
|
else chartText.Color = 'rgb(0,0,0)';
|
|
986
990
|
|
|
991
|
+
|
|
992
|
+
|
|
987
993
|
if (varItem.DrawVAlign>=0)
|
|
988
994
|
{
|
|
989
995
|
if (varItem.DrawVAlign==0) chartText.Direction=1;
|