hqchart 1.1.12503 → 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 +121 -31
- package/package.json +1 -1
- package/src/jscommon/umychart.complier.js +60 -1
- package/src/jscommon/umychart.js +277 -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 +338 -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 +338 -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}`);
|
|
@@ -51259,7 +51309,16 @@ function HistoryDataStringFormat()
|
|
|
51259
51309
|
|
|
51260
51310
|
this.Width=157;
|
|
51261
51311
|
if (this.LanguageID==JSCHART_LANGUAGE_ID.LANGUAGE_ENGLISH_ID) this.Width=180;
|
|
51312
|
+
var titleData=this.GetFormatTitle(data);
|
|
51313
|
+
if (!titleData) return false;
|
|
51314
|
+
var outData=this.GenerateTitleHtml(titleData);
|
|
51315
|
+
if (!outData) return false;
|
|
51316
|
+
|
|
51317
|
+
this.Text=outData.Html;
|
|
51318
|
+
this.Height=outData.LineCount*this.LineHeight;
|
|
51319
|
+
return true;
|
|
51262
51320
|
|
|
51321
|
+
/*
|
|
51263
51322
|
var date=new Date(parseInt(data.Date/10000),(data.Date/100%100-1),data.Date%100);
|
|
51264
51323
|
var strDate=IFrameSplitOperator.FormatDateString(data.Date);
|
|
51265
51324
|
var title2=g_JSChartLocalization.GetText(WEEK_NAME[date.getDay()],this.LanguageID);
|
|
@@ -51349,6 +51408,178 @@ function HistoryDataStringFormat()
|
|
|
51349
51408
|
|
|
51350
51409
|
this.Height=this.LineCount*this.LineHeight;
|
|
51351
51410
|
return true;
|
|
51411
|
+
*/
|
|
51412
|
+
}
|
|
51413
|
+
|
|
51414
|
+
this.GenerateTitleHtml=function(data)
|
|
51415
|
+
{
|
|
51416
|
+
var lineCount=0;
|
|
51417
|
+
var strHtml="", text;
|
|
51418
|
+
if (data.Name)
|
|
51419
|
+
{
|
|
51420
|
+
text=`<span style='color:rgb(0,0,0);font:微软雅黑;font-size:12px;text-align:center;display: block;'>${data.Name}</span>`;
|
|
51421
|
+
strHtml+=text;
|
|
51422
|
+
++lineCount;
|
|
51423
|
+
}
|
|
51424
|
+
|
|
51425
|
+
if (data.Title)
|
|
51426
|
+
{
|
|
51427
|
+
text=`<span class='tooltip-title'>${data.Title}</span>`;
|
|
51428
|
+
strHtml+=text;
|
|
51429
|
+
++lineCount;
|
|
51430
|
+
}
|
|
51431
|
+
|
|
51432
|
+
if (IFrameSplitOperator.IsNonEmptyArray(data.AryText))
|
|
51433
|
+
{
|
|
51434
|
+
for(var i=0;i<data.AryText.length;++i)
|
|
51435
|
+
{
|
|
51436
|
+
var item=data.AryText[i];
|
|
51437
|
+
if (i>0) strHtml+='<br/>';
|
|
51438
|
+
var text=`<span class='tooltip-con'>${item.Title}</span><span class='tooltip-num' style='color:${item.Color};'>${item.Text}</span>`;
|
|
51439
|
+
strHtml+=text;
|
|
51440
|
+
++lineCount;
|
|
51441
|
+
}
|
|
51442
|
+
}
|
|
51443
|
+
|
|
51444
|
+
return { Html:strHtml, LineCount:lineCount };
|
|
51445
|
+
}
|
|
51446
|
+
|
|
51447
|
+
this.GetFormatTitle=function(data)
|
|
51448
|
+
{
|
|
51449
|
+
if (!data) return null;
|
|
51450
|
+
|
|
51451
|
+
var upperSymbol=this.Symbol.toUpperCase();
|
|
51452
|
+
var defaultfloatPrecision=GetfloatPrecision(this.Symbol);//价格小数位数
|
|
51453
|
+
var date=new Date(parseInt(data.Date/10000),(data.Date/100%100-1),data.Date%100);
|
|
51454
|
+
var strDate=IFrameSplitOperator.FormatDateString(data.Date);
|
|
51455
|
+
|
|
51456
|
+
var title2=g_JSChartLocalization.GetText(WEEK_NAME[date.getDay()],this.LanguageID);
|
|
51457
|
+
var isTickPeriod=ChartData.IsTickPeriod(this.Value.ChartPaint.Data.Period);
|
|
51458
|
+
if (ChartData.IsMinutePeriod(this.Value.ChartPaint.Data.Period,true)) // 分钟周期
|
|
51459
|
+
{
|
|
51460
|
+
title2=IFrameSplitOperator.FormatTimeString(data.Time);
|
|
51461
|
+
}
|
|
51462
|
+
else if (ChartData.IsSecondPeriod(this.Value.ChartPaint.Data.Period) || isTickPeriod)
|
|
51463
|
+
{
|
|
51464
|
+
title2=IFrameSplitOperator.FormatTimeString(data.Time,'HH:MM:SS');
|
|
51465
|
+
}
|
|
51466
|
+
|
|
51467
|
+
var result={ AryText:null, Title:`${strDate}  ${title2}`, Name:null };
|
|
51468
|
+
if (isTickPeriod)
|
|
51469
|
+
{
|
|
51470
|
+
var aryText=
|
|
51471
|
+
[
|
|
51472
|
+
{
|
|
51473
|
+
Title:g_JSChartLocalization.GetText('DivTooltip-Price',this.LanguageID),
|
|
51474
|
+
Text:IFrameSplitOperator.IsNumber(data.Open)? data.Open.toFixed(defaultfloatPrecision):'--',
|
|
51475
|
+
Color:this.GetColor(data.Open,data.YClose)
|
|
51476
|
+
},
|
|
51477
|
+
];
|
|
51478
|
+
|
|
51479
|
+
if (IFrameSplitOperator.IsNumber(data.YClose))
|
|
51480
|
+
{
|
|
51481
|
+
var increase=(data.Close-data.YClose)/data.YClose*100;
|
|
51482
|
+
var item=
|
|
51483
|
+
{
|
|
51484
|
+
Title:g_JSChartLocalization.GetText('DivTooltip-Increase',this.LanguageID),
|
|
51485
|
+
Text:`${increase.toFixed(2)}%`,
|
|
51486
|
+
Color:this.GetColor(increase,0)
|
|
51487
|
+
}
|
|
51488
|
+
aryText.push(item);
|
|
51489
|
+
}
|
|
51490
|
+
|
|
51491
|
+
result.AryText=aryText;
|
|
51492
|
+
}
|
|
51493
|
+
else if (data.IsNonTrade)
|
|
51494
|
+
{
|
|
51495
|
+
|
|
51496
|
+
}
|
|
51497
|
+
else
|
|
51498
|
+
{
|
|
51499
|
+
var vol=data.Vol;
|
|
51500
|
+
if (upperSymbol && MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol)) vol/=100; //A股统一转成手
|
|
51501
|
+
var eventUnchangeKLine=null; //定制平盘K线颜色事件
|
|
51502
|
+
if (this.GetEventCallback) eventUnchangeKLine=this.GetEventCallback(JSCHART_EVENT_ID.ON_CUSTOM_UNCHANGE_KLINE_TITLE_COLOR);
|
|
51503
|
+
|
|
51504
|
+
var aryText=
|
|
51505
|
+
[
|
|
51506
|
+
{
|
|
51507
|
+
Title:g_JSChartLocalization.GetText('DivTooltip-Open',this.LanguageID),
|
|
51508
|
+
Text:IFrameSplitOperator.IsNumber(data.Open)? data.Open.toFixed(defaultfloatPrecision):'--',
|
|
51509
|
+
Color:this.GetPriceColor("DivTooltip-Open",data.Open,data.YClose,data,eventUnchangeKLine),
|
|
51510
|
+
},
|
|
51511
|
+
{
|
|
51512
|
+
Title:g_JSChartLocalization.GetText('DivTooltip-High',this.LanguageID),
|
|
51513
|
+
Text:IFrameSplitOperator.IsNumber(data.High)? data.High.toFixed(defaultfloatPrecision):'--',
|
|
51514
|
+
Color:this.GetPriceColor("DivTooltip-High",data.High,data.YClose,data,eventUnchangeKLine)
|
|
51515
|
+
},
|
|
51516
|
+
{
|
|
51517
|
+
Title:g_JSChartLocalization.GetText('DivTooltip-Low',this.LanguageID),
|
|
51518
|
+
Text:IFrameSplitOperator.IsNumber(data.Low)? data.Low.toFixed(defaultfloatPrecision):'--',
|
|
51519
|
+
Color:this.GetPriceColor('DivTooltip-Low',data.Low,data.YClose,data,eventUnchangeKLine)
|
|
51520
|
+
},
|
|
51521
|
+
{
|
|
51522
|
+
Title:g_JSChartLocalization.GetText('DivTooltip-Close',this.LanguageID),
|
|
51523
|
+
Text:IFrameSplitOperator.IsNumber(data.Close)? data.Close.toFixed(defaultfloatPrecision):'--',
|
|
51524
|
+
Color:this.GetPriceColor('DivTooltip-Close',data.Close,data.YClose,data,eventUnchangeKLine)
|
|
51525
|
+
},
|
|
51526
|
+
{
|
|
51527
|
+
Title:g_JSChartLocalization.GetText('DivTooltip-Vol',this.LanguageID),
|
|
51528
|
+
Text:IFrameSplitOperator.IsNumber(vol)? IFrameSplitOperator.FormatValueString(vol,2,this.LanguageID):'--',
|
|
51529
|
+
Color:this.VolColor
|
|
51530
|
+
},
|
|
51531
|
+
{
|
|
51532
|
+
Title:g_JSChartLocalization.GetText('DivTooltip-Amount',this.LanguageID),
|
|
51533
|
+
Text:IFrameSplitOperator.IsNumber(data.Amount)? IFrameSplitOperator.FormatValueString(data.Amount,2,this.LanguageID):'--',
|
|
51534
|
+
Color:this.AmountColor
|
|
51535
|
+
}
|
|
51536
|
+
];
|
|
51537
|
+
|
|
51538
|
+
if (IFrameSplitOperator.IsNumber(data.YClose))
|
|
51539
|
+
{
|
|
51540
|
+
var increase=(data.Close-data.YClose)/data.YClose*100;
|
|
51541
|
+
var item=
|
|
51542
|
+
{
|
|
51543
|
+
Title:g_JSChartLocalization.GetText('DivTooltip-Increase',this.LanguageID),
|
|
51544
|
+
Text:`${increase.toFixed(2)}%`,
|
|
51545
|
+
Color:this.GetColor(increase,0)
|
|
51546
|
+
}
|
|
51547
|
+
aryText.push(item);
|
|
51548
|
+
}
|
|
51549
|
+
|
|
51550
|
+
if(MARKET_SUFFIX_NAME.IsSHSZStockA(this.Symbol) && data.FlowCapital>0) //换手率
|
|
51551
|
+
{
|
|
51552
|
+
var value=data.Vol/data.FlowCapital*100;
|
|
51553
|
+
var item=
|
|
51554
|
+
{
|
|
51555
|
+
Title:g_JSChartLocalization.GetText('DivTooltip-Exchange',this.LanguageID),
|
|
51556
|
+
Text:`${value.toFixed(2)}%`,
|
|
51557
|
+
Color:this.TurnoverRateColor
|
|
51558
|
+
}
|
|
51559
|
+
aryText.push(item);
|
|
51560
|
+
}
|
|
51561
|
+
|
|
51562
|
+
if (MARKET_SUFFIX_NAME.IsFutures(upperSymbol) && IFrameSplitOperator.IsNumber(data.Position))
|
|
51563
|
+
{
|
|
51564
|
+
var item=
|
|
51565
|
+
{
|
|
51566
|
+
Title:g_JSChartLocalization.GetText('DivTooltip-Position',this.LanguageID),
|
|
51567
|
+
Text:`${data.Position}`,
|
|
51568
|
+
Color:this.PositionColor
|
|
51569
|
+
}
|
|
51570
|
+
}
|
|
51571
|
+
|
|
51572
|
+
//叠加股票
|
|
51573
|
+
if (this.Value.ChartPaint.Name=="Overlay-KLine")
|
|
51574
|
+
{
|
|
51575
|
+
result.Name=this.Value.ChartPaint.Title;
|
|
51576
|
+
}
|
|
51577
|
+
|
|
51578
|
+
result.AryText=aryText;
|
|
51579
|
+
}
|
|
51580
|
+
|
|
51581
|
+
|
|
51582
|
+
return result;
|
|
51352
51583
|
}
|
|
51353
51584
|
|
|
51354
51585
|
this.GetColor=function(price,yclse)
|
|
@@ -76827,7 +77058,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
76827
77058
|
//叠加股票
|
|
76828
77059
|
this.OverlaySymbol=function(symbol,option)
|
|
76829
77060
|
{
|
|
76830
|
-
for(var i
|
|
77061
|
+
for(var i=0; i<this.OverlayChartPaint.length; ++i)
|
|
76831
77062
|
{
|
|
76832
77063
|
var item=this.OverlayChartPaint[i];
|
|
76833
77064
|
if (item.Symbol==symbol)
|
|
@@ -76847,11 +77078,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
76847
77078
|
if (option && option.Color) paint.Color=option.Color; //外部设置颜色
|
|
76848
77079
|
else paint.Color=g_JSChartResource.OverlaySymbol.Color[g_JSChartResource.OverlaySymbol.Random%g_JSChartResource.OverlaySymbol.Color.length];
|
|
76849
77080
|
++g_JSChartResource.OverlaySymbol.Random;
|
|
76850
|
-
|
|
76851
|
-
{
|
|
76852
|
-
paint.MainData=this.ChartPaint[0].Data;
|
|
76853
|
-
paint.MainYClose=this.ChartPaint[0].YClose;
|
|
76854
|
-
}
|
|
77081
|
+
paint.MainData=this.SourceData; //绑定主图数据
|
|
76855
77082
|
|
|
76856
77083
|
if (paint.SetOption) paint.SetOption(option);
|
|
76857
77084
|
|
|
@@ -77819,7 +78046,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
77819
78046
|
for(var i=0; i<this.OverlayChartPaint.length; ++i)
|
|
77820
78047
|
{
|
|
77821
78048
|
let item=this.OverlayChartPaint[i];
|
|
77822
|
-
if (!item.MainData
|
|
78049
|
+
if (!item.MainData) continue;
|
|
77823
78050
|
if (item.Status!=OVERLAY_STATUS_ID.STATUS_NONE_ID) continue;
|
|
77824
78051
|
var symbol=item.Symbol;
|
|
77825
78052
|
if (!symbol) continue;
|
|
@@ -77880,7 +78107,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
77880
78107
|
for(var j=0; j<this.OverlayChartPaint.length; ++j)
|
|
77881
78108
|
{
|
|
77882
78109
|
var item=this.OverlayChartPaint[j];
|
|
77883
|
-
if (!item.MainData
|
|
78110
|
+
if (!item.MainData) continue;
|
|
77884
78111
|
if (overlayData.symbol==item.Symbol)
|
|
77885
78112
|
{
|
|
77886
78113
|
this.RecvOverlayMinuteData(overlayData, item, { Redraw:false });
|
|
@@ -78041,6 +78268,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
78041
78268
|
{
|
|
78042
78269
|
var empytData=new ChartData();
|
|
78043
78270
|
empytData.Date=item.Date;
|
|
78271
|
+
empytData.Data.length=item.Data.length;
|
|
78044
78272
|
overlayDayData.push(empytData);
|
|
78045
78273
|
}
|
|
78046
78274
|
}
|
|
@@ -78274,11 +78502,10 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
78274
78502
|
this.ExtendChartPaint[0].Name=this.Name;
|
|
78275
78503
|
}
|
|
78276
78504
|
|
|
78277
|
-
for(var i
|
|
78505
|
+
for(var i=0; i<this.OverlayChartPaint.length; ++i)
|
|
78278
78506
|
{
|
|
78279
78507
|
var item=this.OverlayChartPaint[i];
|
|
78280
|
-
item.MainData=
|
|
78281
|
-
item.MainYClose=yClose;
|
|
78508
|
+
item.MainData=minuteData; //绑定主图数据
|
|
78282
78509
|
}
|
|
78283
78510
|
}
|
|
78284
78511
|
|
|
@@ -102064,6 +102291,36 @@ function JSDraw(errorHandler,symbolData)
|
|
|
102064
102291
|
return result;
|
|
102065
102292
|
}
|
|
102066
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
|
+
|
|
102067
102324
|
/*
|
|
102068
102325
|
DRAWCOLORKLINE 绘制K线
|
|
102069
102326
|
用法:
|
|
@@ -103571,7 +103828,7 @@ JSDraw.prototype.IsDrawFunction=function(name)
|
|
|
103571
103828
|
{
|
|
103572
103829
|
let setFunctionName=new Set(
|
|
103573
103830
|
[
|
|
103574
|
-
"STICKLINE","DRAWTEXT",'SUPERDRAWTEXT','DRAWLINE','DRAWBAND','DRAWKLINE',"DRAWKLINE1",'DRAWKLINE_IF',"DRAWCOLORKLINE",'PLOYLINE',
|
|
103831
|
+
"STICKLINE","DRAWTEXT",'SUPERDRAWTEXT','DRAWLINE','DRAWBAND','DRAWKLINE',"DRAWKLINE1",'DRAWKLINE_IF',"DRAWCOLORKLINE",'PLOYLINE',"DRAWOVERLAYKLINE",
|
|
103575
103832
|
'POLYLINE','DRAWNUMBER',"DRAWNUMBER_FIX",'DRAWICON','DRAWCHANNEL','PARTLINE','DRAWTEXT_FIX','DRAWGBK','DRAWTEXT_LINE','DRAWRECTREL',"DRAWTEXTABS","DRAWTEXTREL",
|
|
103576
103833
|
'DRAWOVERLAYLINE',"FILLRGN", "FILLRGN2","FILLTOPRGN", "FILLBOTTOMRGN", "FILLVERTICALRGN","FLOATRGN","DRAWSL", "DRAWGBK2","DRAWGBK_DIV",
|
|
103577
103834
|
"VERTLINE","HORLINE","TIPICON"
|
|
@@ -109855,6 +110112,10 @@ function JSExecute(ast,option)
|
|
|
109855
110112
|
node.Draw=this.Draw.DRAWKLINE_IF(args[0],args[1],args[2],args[3],args[4]);
|
|
109856
110113
|
node.Out=[];
|
|
109857
110114
|
break;
|
|
110115
|
+
case "DRAWOVERLAYKLINE":
|
|
110116
|
+
node.Draw=this.Draw.DRAWOVERLAYKLINE(args[0],args[1],args[2],args[3]);
|
|
110117
|
+
node.Out=[];
|
|
110118
|
+
break;
|
|
109858
110119
|
case "DRAWCOLORKLINE":
|
|
109859
110120
|
node.Draw=this.Draw.DRAWCOLORKLINE(args[0],args[1],args[2]);
|
|
109860
110121
|
node.Out=[];
|
|
@@ -112476,6 +112737,28 @@ function ScriptIndex(name,script,args,option)
|
|
|
112476
112737
|
hqChart.ChartPaint.push(chart);
|
|
112477
112738
|
}
|
|
112478
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
|
+
|
|
112479
112762
|
this.CreateDrawColorKLine=function(hqChart,windowIndex,varItem,i)
|
|
112480
112763
|
{
|
|
112481
112764
|
let chart=new ChartColorKline();
|
|
@@ -113316,6 +113599,9 @@ function ScriptIndex(name,script,args,option)
|
|
|
113316
113599
|
case "DRAWKLINE1":
|
|
113317
113600
|
this.CreateKLine(hqChart,windowIndex,item,i);
|
|
113318
113601
|
break;
|
|
113602
|
+
case "DRAWOVERLAYKLINE":
|
|
113603
|
+
this.CreateOverlayKLine(hqChart,windowIndex,item,i);
|
|
113604
|
+
break;
|
|
113319
113605
|
case "DRAWCOLORKLINE":
|
|
113320
113606
|
this.CreateDrawColorKLine(hqChart,windowIndex,item,i);
|
|
113321
113607
|
break;
|
|
@@ -128294,7 +128580,7 @@ function HQChartScriptWorker()
|
|
|
128294
128580
|
|
|
128295
128581
|
|
|
128296
128582
|
|
|
128297
|
-
var HQCHART_VERSION="1.1.
|
|
128583
|
+
var HQCHART_VERSION="1.1.12512";
|
|
128298
128584
|
|
|
128299
128585
|
function PrintHQChartVersion()
|
|
128300
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;
|