hqchart 1.1.12463 → 1.1.12472
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.NetworkFilterTest.vue.js +1 -1
- package/lib/umychart.vue.js +48 -30
- package/package.json +1 -1
- package/src/jscommon/umychart.NetworkFilterTest.js +4 -4
- package/src/jscommon/umychart.complier.js +15 -0
- package/src/jscommon/umychart.js +176 -27
- package/src/jscommon/umychart.testdata/60000.sh.5day.minute.js +4 -4
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +192 -28
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.NetworkFilterTest.vue.js +4 -4
- package/src/jscommon/umychart.vue/umychart.vue.js +304 -28
- package/src/jscommon/umychart.vue.build/umychart.vue.bat +1 -1
- package/src/jscommon/umychart.vue.build/umychart.vue.export.js +3 -0
- package/src/jscommon/umychart.wechat/umychart.charttitle.wechat.js +3 -0
- package/src/jscommon/umychart.wechat/umychart.coordinatedata.wechat.js +4 -0
- package/src/jscommon/umychart.wechat/umychart.extendchart.wechat.js +2 -0
- package/src/jscommon/umychart.wechat/umychart.version.wechat.js +1 -1
- package/src/jscommon/umychart.wechat/umychart.wechat.3.0.js +12 -19
|
@@ -9149,6 +9149,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9149
9149
|
{
|
|
9150
9150
|
this.ChartCorssCursor.LastPoint=this.LastPoint;
|
|
9151
9151
|
this.ChartCorssCursor.CursorIndex=this.CursorIndex;
|
|
9152
|
+
if (this.EnableNewIndex)
|
|
9153
|
+
{
|
|
9154
|
+
this.ChartCorssCursor.CorssCursorIndex=this.CorssCursorIndex;
|
|
9155
|
+
this.ChartCorssCursor.EnableNewIndex=this.EnableNewIndex;
|
|
9156
|
+
}
|
|
9152
9157
|
|
|
9153
9158
|
var bRestoreCanvas=false;
|
|
9154
9159
|
if (this.CorssCursorCanvas) //独立的十字光标层
|
|
@@ -9511,6 +9516,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9511
9516
|
{
|
|
9512
9517
|
this.ChartCorssCursor.LastPoint=this.LastPoint;
|
|
9513
9518
|
this.ChartCorssCursor.CursorIndex=this.CursorIndex;
|
|
9519
|
+
if (this.EnableNewIndex)
|
|
9520
|
+
{
|
|
9521
|
+
this.ChartCorssCursor.CorssCursorIndex=this.CorssCursorIndex;
|
|
9522
|
+
this.ChartCorssCursor.EnableNewIndex=this.EnableNewIndex;
|
|
9523
|
+
}
|
|
9514
9524
|
|
|
9515
9525
|
var bRestoreCanvas=false;
|
|
9516
9526
|
if (this.CorssCursorCanvas) //独立的十字光标层
|
|
@@ -12562,6 +12572,30 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
12562
12572
|
|
|
12563
12573
|
return aryData;
|
|
12564
12574
|
}
|
|
12575
|
+
|
|
12576
|
+
//重置指标计数器
|
|
12577
|
+
this.ClearIndexRunCount=function()
|
|
12578
|
+
{
|
|
12579
|
+
//主图指标
|
|
12580
|
+
for(var i=0;i<this.WindowIndex.length;++i)
|
|
12581
|
+
{
|
|
12582
|
+
var item=this.WindowIndex[i];
|
|
12583
|
+
if (!item) continue;
|
|
12584
|
+
|
|
12585
|
+
item.RunCount=0;
|
|
12586
|
+
}
|
|
12587
|
+
|
|
12588
|
+
//叠加指标
|
|
12589
|
+
for(var i=0;i<this.Frame.SubFrame.length;++i)
|
|
12590
|
+
{
|
|
12591
|
+
var item=this.Frame.SubFrame[i];
|
|
12592
|
+
for(var j=0; j<item.OverlayIndex.length; ++j)
|
|
12593
|
+
{
|
|
12594
|
+
var overlayItem=item.OverlayIndex[j];
|
|
12595
|
+
if (overlayItem.Script) overlayItem.Script.RunCount=0;
|
|
12596
|
+
}
|
|
12597
|
+
}
|
|
12598
|
+
}
|
|
12565
12599
|
}
|
|
12566
12600
|
|
|
12567
12601
|
function GetDevicePixelRatio()
|
|
@@ -49151,6 +49185,9 @@ function ChartCorssCursor()
|
|
|
49151
49185
|
this.IsFixXLastTime=false; //是否修正X轴,超出当前时间的,X轴调整到当前最后的时间.
|
|
49152
49186
|
this.IsDrawXRangeBG=false; //是否绘制十字光标背景
|
|
49153
49187
|
|
|
49188
|
+
this.EnableNewIndex=false; //分时图是否使用最新的索引结构 (由外部chart容器传入)
|
|
49189
|
+
this.CorssCursorIndex; //分时图新版本的索引结构 (由外部chart容器传入)
|
|
49190
|
+
|
|
49154
49191
|
this.PointX;
|
|
49155
49192
|
this.PointY;
|
|
49156
49193
|
|
|
@@ -49208,20 +49245,34 @@ function ChartCorssCursor()
|
|
|
49208
49245
|
|
|
49209
49246
|
this.GetMinuteCloseYPoint=function(index)
|
|
49210
49247
|
{
|
|
49211
|
-
if (
|
|
49212
|
-
|
|
49213
|
-
|
|
49214
|
-
|
|
49215
|
-
|
|
49216
|
-
|
|
49217
|
-
|
|
49218
|
-
|
|
49248
|
+
if (this.EnableNewIndex && this.CorssCursorIndex)
|
|
49249
|
+
{
|
|
49250
|
+
if (!this.StringFormatX || !this.StringFormatX.GetMinuteCloseYPoint) return null;
|
|
49251
|
+
|
|
49252
|
+
var closeData=this.StringFormatX.GetMinuteCloseYPoint(this.CorssCursorIndex);
|
|
49253
|
+
if (!closeData) return null;
|
|
49254
|
+
|
|
49255
|
+
this.Close=closeData.Price;
|
|
49256
|
+
return closeData.Y;
|
|
49257
|
+
}
|
|
49258
|
+
else
|
|
49259
|
+
{
|
|
49219
49260
|
|
|
49220
|
-
|
|
49221
|
-
|
|
49222
|
-
|
|
49223
|
-
|
|
49224
|
-
|
|
49261
|
+
if (!IFrameSplitOperator.IsNumber(index)) return null;
|
|
49262
|
+
index=parseInt(index);
|
|
49263
|
+
if (!this.StringFormatX.Data) return null;
|
|
49264
|
+
var data = this.StringFormatX.Data;
|
|
49265
|
+
if (!data.Data || data.Data.length <= 0) return null;
|
|
49266
|
+
var dataIndex = data.DataOffset + index;
|
|
49267
|
+
if (dataIndex >= data.Data.length) dataIndex = data.Data.length - 1;
|
|
49268
|
+
if (dataIndex < 0) return null;
|
|
49269
|
+
|
|
49270
|
+
var close = data.Data[dataIndex];
|
|
49271
|
+
if (!IFrameSplitOperator.IsNumber(index)) return null;
|
|
49272
|
+
this.Close=close;
|
|
49273
|
+
var yPoint = this.Frame.GetYFromData(this.Close);
|
|
49274
|
+
return yPoint;
|
|
49275
|
+
}
|
|
49225
49276
|
}
|
|
49226
49277
|
|
|
49227
49278
|
this.GetDateTimeRange=function(index, option)
|
|
@@ -50888,6 +50939,7 @@ function HQMinuteTimeStringFormat()
|
|
|
50888
50939
|
this.newMethod();
|
|
50889
50940
|
delete this.newMethod;
|
|
50890
50941
|
|
|
50942
|
+
this.ClassName="HQMinuteTimeStringFormat";
|
|
50891
50943
|
this.Frame;
|
|
50892
50944
|
this.Symbol;
|
|
50893
50945
|
this.Point;
|
|
@@ -51019,6 +51071,88 @@ function HQMinuteTimeStringFormat()
|
|
|
51019
51071
|
|
|
51020
51072
|
return true;
|
|
51021
51073
|
}
|
|
51074
|
+
|
|
51075
|
+
this.GetMinuteCloseYPoint=function(cursorIndexData)
|
|
51076
|
+
{
|
|
51077
|
+
var type=cursorIndexData.Type;
|
|
51078
|
+
if (type==1 || type==2 || type==3) //单日 1=主图 2=盘前 3=盘后
|
|
51079
|
+
{
|
|
51080
|
+
if (type==1)
|
|
51081
|
+
{
|
|
51082
|
+
if (!this.Data || this.Data.Data.length <= 0) return null;
|
|
51083
|
+
var index=cursorIndexData.DataIndex;
|
|
51084
|
+
if (index<0 || index>=this.Data.Data.length) index=this.Data.Data.length-1;
|
|
51085
|
+
|
|
51086
|
+
var close = this.Data.Data[index];
|
|
51087
|
+
var yPoint = this.Frame.GetYFromData(close);
|
|
51088
|
+
return { Price:close, Y:yPoint };
|
|
51089
|
+
}
|
|
51090
|
+
else if (type==2)
|
|
51091
|
+
{
|
|
51092
|
+
if (!this.BeforeOpenData || !this.BeforeOpenData.Data) return false;
|
|
51093
|
+
if (cursorIndexData.DataIndex<0 || cursorIndexData.DataIndex>=this.BeforeOpenData.Data.length) return null;
|
|
51094
|
+
var item=this.BeforeOpenData.Data[cursorIndexData.DataIndex];
|
|
51095
|
+
|
|
51096
|
+
var close=item.Price;
|
|
51097
|
+
var yPoint = this.Frame.GetYFromData(close);
|
|
51098
|
+
return { Price:close, Y:yPoint };
|
|
51099
|
+
}
|
|
51100
|
+
else if (type==3)
|
|
51101
|
+
{
|
|
51102
|
+
if (!this.AfterCloseData || !this.AfterCloseData.Data) return false;
|
|
51103
|
+
if (cursorIndexData.DataIndex<0 || cursorIndexData.DataIndex>=this.AfterCloseData.Data.length) return null;
|
|
51104
|
+
var item=this.AfterCloseData.Data[cursorIndexData.DataIndex];
|
|
51105
|
+
|
|
51106
|
+
var close=item.Price;
|
|
51107
|
+
var yPoint = this.Frame.GetYFromData(close);
|
|
51108
|
+
return { Price:close, Y:yPoint };
|
|
51109
|
+
}
|
|
51110
|
+
}
|
|
51111
|
+
else if (type==10 || type==20 || type==30) //多日 10=主图 20=盘前 30=盘后
|
|
51112
|
+
{
|
|
51113
|
+
if (type==10)
|
|
51114
|
+
{
|
|
51115
|
+
if (!this.Data || this.Data.Data.length <= 0) return null;
|
|
51116
|
+
var index=this.Frame.MinuteCount*cursorIndexData.DayIndex+cursorIndexData.DataIndex;
|
|
51117
|
+
if (index<0 || index>=this.Data.Data.length) index=this.Data.Data.length-1;
|
|
51118
|
+
|
|
51119
|
+
var close = this.Data.Data[index];
|
|
51120
|
+
var yPoint = this.Frame.GetYFromData(close);
|
|
51121
|
+
return { Price:close, Y:yPoint };
|
|
51122
|
+
}
|
|
51123
|
+
else if (type==20)
|
|
51124
|
+
{
|
|
51125
|
+
var multiDayBeforeOpenData=this.GetMultiDayBeforeOpenData();
|
|
51126
|
+
if (!multiDayBeforeOpenData) return null;
|
|
51127
|
+
if (cursorIndexData.DayIndex<0 || cursorIndexData.DayIndex>=multiDayBeforeOpenData.length) return null;
|
|
51128
|
+
|
|
51129
|
+
var dayItem=multiDayBeforeOpenData[cursorIndexData.DayIndex];
|
|
51130
|
+
if (cursorIndexData.DataIndex<0 || cursorIndexData.DataIndex>=dayItem.Data.length) return null;
|
|
51131
|
+
var item=dayItem.Data[cursorIndexData.DataIndex];
|
|
51132
|
+
|
|
51133
|
+
var close=item.Price;
|
|
51134
|
+
var yPoint = this.Frame.GetYFromData(close);
|
|
51135
|
+
return { Price:close, Y:yPoint };
|
|
51136
|
+
}
|
|
51137
|
+
else if (type==30)
|
|
51138
|
+
{
|
|
51139
|
+
var multiDayAfterCloseData=this.GetMultiDayAfterCloseData();
|
|
51140
|
+
if (!multiDayAfterCloseData) return null;
|
|
51141
|
+
if (cursorIndexData.DayIndex<0 || cursorIndexData.DayIndex>=multiDayAfterCloseData.length) return null;
|
|
51142
|
+
|
|
51143
|
+
var dayItem=multiDayAfterCloseData[cursorIndexData.DayIndex];
|
|
51144
|
+
if (cursorIndexData.DataIndex<0 || cursorIndexData.DataIndex>=dayItem.Data.length) return null;
|
|
51145
|
+
var item=dayItem.Data[cursorIndexData.DataIndex];
|
|
51146
|
+
|
|
51147
|
+
var close=item.Price;
|
|
51148
|
+
var yPoint = this.Frame.GetYFromData(close);
|
|
51149
|
+
return { Price:close, Y:yPoint };
|
|
51150
|
+
}
|
|
51151
|
+
}
|
|
51152
|
+
|
|
51153
|
+
|
|
51154
|
+
return null;
|
|
51155
|
+
}
|
|
51022
51156
|
}
|
|
51023
51157
|
|
|
51024
51158
|
|
|
@@ -68429,22 +68563,27 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
68429
68563
|
{
|
|
68430
68564
|
if (!this.WindowIndex[windowIndex]) return;
|
|
68431
68565
|
|
|
68432
|
-
|
|
68566
|
+
var item=this.WindowIndex[windowIndex];
|
|
68567
|
+
if (typeof(item.RequestData)=="function") //数据需要另外下载的.
|
|
68433
68568
|
{
|
|
68434
|
-
|
|
68569
|
+
item.RequestData(this,windowIndex,hisData, option);
|
|
68435
68570
|
return;
|
|
68436
68571
|
}
|
|
68437
|
-
|
|
68572
|
+
|
|
68573
|
+
if (typeof(item.ExecuteScript)=='function')
|
|
68438
68574
|
{
|
|
68439
|
-
|
|
68575
|
+
if (option && option.CheckRunCount)
|
|
68576
|
+
if (item.IsExcessRunCount()) return;
|
|
68577
|
+
|
|
68578
|
+
item.ExecuteScript(this,windowIndex,hisData);
|
|
68440
68579
|
return;
|
|
68441
68580
|
}
|
|
68442
68581
|
|
|
68443
|
-
|
|
68582
|
+
item.BindData(this,windowIndex,hisData);
|
|
68444
68583
|
}
|
|
68445
68584
|
|
|
68446
68585
|
//叠加指标
|
|
68447
|
-
this.BindOverlayIndexData=function(overlayItem, windowIndex, hisData)
|
|
68586
|
+
this.BindOverlayIndexData=function(overlayItem, windowIndex, hisData, option)
|
|
68448
68587
|
{
|
|
68449
68588
|
if (!overlayItem.Script) return;
|
|
68450
68589
|
|
|
@@ -68456,6 +68595,9 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
68456
68595
|
|
|
68457
68596
|
if (typeof(overlayItem.Script.ExecuteScript)=='function')
|
|
68458
68597
|
{
|
|
68598
|
+
if (option && option.CheckRunCount)
|
|
68599
|
+
if (overlayItem.Script.IsExcessRunCount()) return;
|
|
68600
|
+
|
|
68459
68601
|
overlayItem.Script.ExecuteScript(this,windowIndex,hisData);
|
|
68460
68602
|
return;
|
|
68461
68603
|
}
|
|
@@ -68621,7 +68763,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
68621
68763
|
});
|
|
68622
68764
|
}
|
|
68623
68765
|
|
|
68624
|
-
this.BindAllOverlayIndexData=function(hisData)
|
|
68766
|
+
this.BindAllOverlayIndexData=function(hisData, option)
|
|
68625
68767
|
{
|
|
68626
68768
|
if (!this.Frame || !this.Frame.SubFrame) return;
|
|
68627
68769
|
|
|
@@ -68632,7 +68774,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
68632
68774
|
for(var j in item.OverlayIndex)
|
|
68633
68775
|
{
|
|
68634
68776
|
var overlayItem=item.OverlayIndex[j];
|
|
68635
|
-
this.BindOverlayIndexData(overlayItem,i,hisData)
|
|
68777
|
+
this.BindOverlayIndexData(overlayItem,i,hisData,option)
|
|
68636
68778
|
}
|
|
68637
68779
|
}
|
|
68638
68780
|
}
|
|
@@ -69315,7 +69457,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
69315
69457
|
|
|
69316
69458
|
for(var i=0; i<this.Frame.SubFrame.length; ++i)
|
|
69317
69459
|
{
|
|
69318
|
-
this.BindIndexData(i,bindData);
|
|
69460
|
+
this.BindIndexData(i,bindData, { CheckRunCount:true });
|
|
69319
69461
|
}
|
|
69320
69462
|
|
|
69321
69463
|
//刷新画图
|
|
@@ -69328,7 +69470,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
69328
69470
|
this.SendKLineUpdateEvent(bindData);
|
|
69329
69471
|
|
|
69330
69472
|
//叠加指标计算
|
|
69331
|
-
this.BindAllOverlayIndexData(bindData);
|
|
69473
|
+
this.BindAllOverlayIndexData(bindData,{ CheckRunCount:true });
|
|
69332
69474
|
|
|
69333
69475
|
if (this.mapEvent.has(JSCHART_EVENT_ID.ON_RECV_REALTIME_DATA))
|
|
69334
69476
|
{
|
|
@@ -70053,6 +70195,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
70053
70195
|
this.ClearRectSelect(true);
|
|
70054
70196
|
this.Frame.ClearUpDonwFrameYData();
|
|
70055
70197
|
this.ClearCustomKLine();
|
|
70198
|
+
|
|
70056
70199
|
|
|
70057
70200
|
var kLineDrawType=this.GetKLineDrawType();
|
|
70058
70201
|
if (kLineDrawType==10 || kLineDrawType==11 || kLineDrawType==12 || kLineDrawType==16) isDataTypeChange=true;
|
|
@@ -70074,6 +70217,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
70074
70217
|
|
|
70075
70218
|
if (isDataTypeChange==false && !this.IsApiPeriod)
|
|
70076
70219
|
{
|
|
70220
|
+
this.ClearIndexRunCount();
|
|
70077
70221
|
this.Update( {UpdateCursorIndexType:2} ); //更新的时候 取消显示十字光标
|
|
70078
70222
|
return;
|
|
70079
70223
|
}
|
|
@@ -70086,6 +70230,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
70086
70230
|
this.AutoUpdateEvent(false,'KLineChartContainer::ChangePeriod'); //切换周期先停止更新
|
|
70087
70231
|
this.ResetScrollBar();
|
|
70088
70232
|
this.ResetOverlaySymbolStatus();
|
|
70233
|
+
this.ClearIndexRunCount();
|
|
70089
70234
|
this.RequestHistoryData(); //请求日线数据
|
|
70090
70235
|
//this.ReqeustKLineInfoData();
|
|
70091
70236
|
}
|
|
@@ -70095,6 +70240,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
70095
70240
|
this.AutoUpdateEvent(false,'KLineChartContainer::ChangePeriod'); //切换周期先停止更新
|
|
70096
70241
|
this.ResetScrollBar();
|
|
70097
70242
|
this.ResetOverlaySymbolStatus();
|
|
70243
|
+
this.ClearIndexRunCount();
|
|
70098
70244
|
this.ReqeustHistoryMinuteData(); //请求分钟数据
|
|
70099
70245
|
}
|
|
70100
70246
|
else if (ChartData.IsTickPeriod(this.Period))
|
|
@@ -70102,6 +70248,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
70102
70248
|
this.CancelAutoUpdate(); //先停止定时器
|
|
70103
70249
|
this.AutoUpdateEvent(false,'KLineChartContainer::ChangePeriod');
|
|
70104
70250
|
this.ResetScrollBar();
|
|
70251
|
+
this.ClearIndexRunCount();
|
|
70105
70252
|
this.RequestTickData(); //请求分笔数据
|
|
70106
70253
|
}
|
|
70107
70254
|
}
|
|
@@ -71402,6 +71549,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
71402
71549
|
this.ClearKLineCaluate();
|
|
71403
71550
|
this.HideTooltip();
|
|
71404
71551
|
this.ResetScrollBar();
|
|
71552
|
+
this.ClearIndexRunCount();
|
|
71405
71553
|
|
|
71406
71554
|
this.Symbol=symbol;
|
|
71407
71555
|
if (!symbol)
|
|
@@ -76499,6 +76647,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
76499
76647
|
this.ClearIndexPaint(); //清空指标
|
|
76500
76648
|
this.ResetOverlaySymbolStatus();
|
|
76501
76649
|
this.ReloadChartDrawPicture();
|
|
76650
|
+
this.ClearIndexRunCount();
|
|
76502
76651
|
|
|
76503
76652
|
if (option)
|
|
76504
76653
|
{
|
|
@@ -77887,7 +78036,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
77887
78036
|
}
|
|
77888
78037
|
}
|
|
77889
78038
|
|
|
77890
|
-
this.BindIndexData=function(windowIndex,hisData)
|
|
78039
|
+
this.BindIndexData=function(windowIndex, hisData, option)
|
|
77891
78040
|
{
|
|
77892
78041
|
if (!this.WindowIndex[windowIndex]) return;
|
|
77893
78042
|
|
|
@@ -78332,7 +78481,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
78332
78481
|
}
|
|
78333
78482
|
|
|
78334
78483
|
//计算叠加指标
|
|
78335
|
-
this.BindAllOverlayIndexData=function(hisData)
|
|
78484
|
+
this.BindAllOverlayIndexData=function(hisData, option)
|
|
78336
78485
|
{
|
|
78337
78486
|
if (!this.Frame || !this.Frame.SubFrame) return;
|
|
78338
78487
|
|
|
@@ -78343,13 +78492,13 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
78343
78492
|
for(var j in item.OverlayIndex)
|
|
78344
78493
|
{
|
|
78345
78494
|
var overlayItem=item.OverlayIndex[j];
|
|
78346
|
-
this.BindOverlayIndexData(overlayItem,i,hisData)
|
|
78495
|
+
this.BindOverlayIndexData(overlayItem,i,hisData,option)
|
|
78347
78496
|
}
|
|
78348
78497
|
}
|
|
78349
78498
|
}
|
|
78350
78499
|
|
|
78351
78500
|
//叠加指标
|
|
78352
|
-
this.BindOverlayIndexData=function(overlayItem, windowIndex, hisData)
|
|
78501
|
+
this.BindOverlayIndexData=function(overlayItem, windowIndex, hisData, option)
|
|
78353
78502
|
{
|
|
78354
78503
|
if (!overlayItem.Script) return;
|
|
78355
78504
|
|
|
@@ -111267,6 +111416,9 @@ function ScriptIndex(name,script,args,option)
|
|
|
111267
111416
|
this.IsSync=false; //是否是同步计算 (无数据请求)
|
|
111268
111417
|
this.IsShow=true; //是否显示图形
|
|
111269
111418
|
|
|
111419
|
+
this.RunCount=0; //已执行次数
|
|
111420
|
+
this.MaxRunCount=-1; //最大执行次数 -1=无限
|
|
111421
|
+
|
|
111270
111422
|
if (option)
|
|
111271
111423
|
{
|
|
111272
111424
|
if (option.FloatPrecision>=0) this.FloatPrecision=option.FloatPrecision;
|
|
@@ -111282,6 +111434,7 @@ function ScriptIndex(name,script,args,option)
|
|
|
111282
111434
|
if (option.OutName) this.OutName=option.OutName;
|
|
111283
111435
|
if (IFrameSplitOperator.IsNumber(option.YSplitType)) this.YSplitType=option.YSplitType;
|
|
111284
111436
|
if (IFrameSplitOperator.IsBool(option.IsSync)) this.IsSync=option.IsSync;
|
|
111437
|
+
if (IFrameSplitOperator.IsNumber(option.MaxRunCount)) this.MaxRunCount=option.MaxRunCount;
|
|
111285
111438
|
|
|
111286
111439
|
if (option.Debug)
|
|
111287
111440
|
{
|
|
@@ -111351,6 +111504,14 @@ function ScriptIndex(name,script,args,option)
|
|
|
111351
111504
|
}
|
|
111352
111505
|
}
|
|
111353
111506
|
|
|
111507
|
+
//是否超出执行的最大次数
|
|
111508
|
+
this.IsExcessRunCount=function()
|
|
111509
|
+
{
|
|
111510
|
+
if (this.MaxRunCount<=0) return false; //没有限制
|
|
111511
|
+
|
|
111512
|
+
return this.RunCount>=this.MaxRunCount;
|
|
111513
|
+
}
|
|
111514
|
+
|
|
111354
111515
|
this.ExecuteScript=function(hqChart,windowIndex,hisData)
|
|
111355
111516
|
{
|
|
111356
111517
|
this.OutVar=[];
|
|
@@ -111420,6 +111581,7 @@ function ScriptIndex(name,script,args,option)
|
|
|
111420
111581
|
return;
|
|
111421
111582
|
}
|
|
111422
111583
|
|
|
111584
|
+
++this.RunCount;
|
|
111423
111585
|
let code=this.Script;
|
|
111424
111586
|
let run=JSComplier.Execute(code,option,hqChart.ScriptErrorCallback);
|
|
111425
111587
|
}
|
|
@@ -114463,6 +114625,8 @@ function APIScriptIndex(name,script,args,option, isOverlay)
|
|
|
114463
114625
|
if (hqDataType==HQ_DATA_TYPE.MULTIDAY_MINUTE_ID || hqDataType==HQ_DATA_TYPE.MINUTE_ID) postData.daycount=hqChart.DayCount;
|
|
114464
114626
|
this.HQDataType=hqDataType;
|
|
114465
114627
|
|
|
114628
|
+
++this.RunCount;
|
|
114629
|
+
|
|
114466
114630
|
if (hqChart.NetworkFilter)
|
|
114467
114631
|
{
|
|
114468
114632
|
var obj=
|
|
@@ -127839,6 +128003,115 @@ function ScrollBarBGChart()
|
|
|
127839
128003
|
}
|
|
127840
128004
|
|
|
127841
128005
|
|
|
128006
|
+
///////////////////////////////////////////////////////////////////////////////////
|
|
128007
|
+
// 工作线程计算指标示例
|
|
128008
|
+
//
|
|
128009
|
+
//
|
|
128010
|
+
//////////////////////////////////////////////////////////////////////////////////
|
|
128011
|
+
|
|
128012
|
+
function HQChartScriptWorker()
|
|
128013
|
+
{
|
|
128014
|
+
|
|
128015
|
+
this.Create=function()
|
|
128016
|
+
{
|
|
128017
|
+
addEventListener('message', (obj)=>{ this.OnRecvMessage(obj); });
|
|
128018
|
+
}
|
|
128019
|
+
|
|
128020
|
+
this.NetworkFilter=function(data, callback, indexInfo)
|
|
128021
|
+
{
|
|
128022
|
+
JSConsole.Complier.Log(`[HQChartScriptWorker::NetworkFilter] [${data.Name}][${data.Explain}] data=`, data);
|
|
128023
|
+
//数据下载
|
|
128024
|
+
}
|
|
128025
|
+
|
|
128026
|
+
this.ExecuteScript=function(indexData, message)
|
|
128027
|
+
{
|
|
128028
|
+
var scriptObj={ };
|
|
128029
|
+
|
|
128030
|
+
if (indexData.Script)
|
|
128031
|
+
{
|
|
128032
|
+
scriptObj.Name=indexData.Name;
|
|
128033
|
+
scriptObj.ID=indexData.Index;
|
|
128034
|
+
scriptObj.Script=indexData.Script;
|
|
128035
|
+
}
|
|
128036
|
+
else
|
|
128037
|
+
{
|
|
128038
|
+
if (!indexData.Index) return false;
|
|
128039
|
+
var scriptData = new JSIndexScript();
|
|
128040
|
+
var finder = scriptData.Get(indexData.Index);
|
|
128041
|
+
if (!finder) return false;
|
|
128042
|
+
|
|
128043
|
+
scriptObj.ID=indexData.Index;
|
|
128044
|
+
scriptObj.Name=finder.Name;
|
|
128045
|
+
scriptObj.Script=finder.Script;
|
|
128046
|
+
scriptObj.Args=finder.Args;
|
|
128047
|
+
}
|
|
128048
|
+
|
|
128049
|
+
if (indexData.Args) scriptObj.Args=indexData.Args;
|
|
128050
|
+
|
|
128051
|
+
var indexInfo={ Name:scriptObj.Name, ID:scriptObj.ID, Script:scriptObj.Script, Args:scriptObj.Args, Guid:message.Guid };
|
|
128052
|
+
scriptObj.ErrorCallback=(error)=>{ this.OnExecuteError(error,indexInfo); };
|
|
128053
|
+
scriptObj.FinishCallback=(data, jsExectute)=>{ this.OnExecuteFinish(data, indexInfo, jsExectute); };
|
|
128054
|
+
scriptObj.NetworkFilter=(data, callback)=>{ this.NetworkFilter(data, callback, indexInfo); };
|
|
128055
|
+
|
|
128056
|
+
JSConsole.Complier.Log('[HQChartScriptWorker::ExecuteScript] scriptObj=',scriptObj);
|
|
128057
|
+
|
|
128058
|
+
var indexConsole=new ScriptIndexConsole(scriptObj);
|
|
128059
|
+
|
|
128060
|
+
var hisData=null;
|
|
128061
|
+
if (message && message.Data)
|
|
128062
|
+
{
|
|
128063
|
+
hisData=new ChartData();
|
|
128064
|
+
hisData.Data=message.Data;
|
|
128065
|
+
hisData.Right=message.Right;
|
|
128066
|
+
hisData.Period=message.Period;
|
|
128067
|
+
hisData.DataType=message.DataType; //0=日线 1=分钟
|
|
128068
|
+
hisData.Symbol=message.symbol;
|
|
128069
|
+
}
|
|
128070
|
+
|
|
128071
|
+
var stockObj=
|
|
128072
|
+
{
|
|
128073
|
+
HQDataType:HQ_DATA_TYPE.KLINE_ID,
|
|
128074
|
+
Stock: { Symbol:message.Symbol },
|
|
128075
|
+
Request: { MaxDataCount: 500, MaxMinuteDayCount:5 },
|
|
128076
|
+
Period:message.Period , Right:message.Right,
|
|
128077
|
+
Data:hisData
|
|
128078
|
+
};
|
|
128079
|
+
|
|
128080
|
+
if (IFrameSplitOperator.IsNumber(message.HQDataType)) stockObj.HQDataType=message.HQDataType;
|
|
128081
|
+
|
|
128082
|
+
indexConsole.ExecuteScript(stockObj);
|
|
128083
|
+
}
|
|
128084
|
+
|
|
128085
|
+
this.OnRecvMessage=function(message)
|
|
128086
|
+
{
|
|
128087
|
+
var data=message.data;
|
|
128088
|
+
if (!data) return;
|
|
128089
|
+
|
|
128090
|
+
if (data.ID==JSCHART_WORKER_MESSAGE_ID.EXECUTE_SCRIPT)
|
|
128091
|
+
{
|
|
128092
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(data.AryIndex)) return;
|
|
128093
|
+
|
|
128094
|
+
for(var i=0;i<data.AryIndex.length;++i)
|
|
128095
|
+
{
|
|
128096
|
+
var item=data.AryIndex[i];
|
|
128097
|
+
this.ExecuteScript(item,data);
|
|
128098
|
+
}
|
|
128099
|
+
}
|
|
128100
|
+
}
|
|
128101
|
+
|
|
128102
|
+
this.OnExecuteFinish=function(data, indexInfo, jsExectute)
|
|
128103
|
+
{
|
|
128104
|
+
var message={ Data:data, IndexInfo:indexInfo , ID:JSCHART_WORKER_MESSAGE_ID.FINISH_EXECUTE_SCRIPT };
|
|
128105
|
+
postMessage(message);
|
|
128106
|
+
}
|
|
128107
|
+
|
|
128108
|
+
this.OnExecuteError=function(error,indexInfo)
|
|
128109
|
+
{
|
|
128110
|
+
var message={ IndexInfo:indexInfo, ID:JSCHART_WORKER_MESSAGE_ID.ERROR_EXECUTE_SCRIPT, Error:error };
|
|
128111
|
+
postMessage(message);
|
|
128112
|
+
}
|
|
128113
|
+
}
|
|
128114
|
+
|
|
127842
128115
|
/********************************************************************************
|
|
127843
128116
|
* 版本信息输出
|
|
127844
128117
|
*
|
|
@@ -127846,7 +128119,7 @@ function ScrollBarBGChart()
|
|
|
127846
128119
|
|
|
127847
128120
|
|
|
127848
128121
|
|
|
127849
|
-
var HQCHART_VERSION="1.1.
|
|
128122
|
+
var HQCHART_VERSION="1.1.12471";
|
|
127850
128123
|
|
|
127851
128124
|
function PrintHQChartVersion()
|
|
127852
128125
|
{
|
|
@@ -127976,5 +128249,8 @@ export default {
|
|
|
127976
128249
|
JSCHART_DATA_FIELD_ID:JSCHART_DATA_FIELD_ID,
|
|
127977
128250
|
JSCHART_WORKER_MESSAGE_ID:JSCHART_WORKER_MESSAGE_ID
|
|
127978
128251
|
},
|
|
128252
|
+
|
|
128253
|
+
|
|
128254
|
+
HQChartScriptWorker:HQChartScriptWorker, //计算工作线程
|
|
127979
128255
|
|
|
127980
128256
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
copy ..\umychart.console.js+..\umychart.network.js+..\umychart.index.data.js+..\umychart.js+..\umychart.complier.js+..\umychart.style.js+..\umychart.deal.js+..\umychart.report.js+..\umychart.keyboard.js+..\umychart.scrollbar.js+..\umychart.version.js+umychart.vue.export.js ..\umychart.vue\umychart.vue.js /b
|
|
1
|
+
copy ..\umychart.console.js+..\umychart.network.js+..\umychart.index.data.js+..\umychart.js+..\umychart.complier.js+..\umychart.style.js+..\umychart.deal.js+..\umychart.report.js+..\umychart.keyboard.js+..\umychart.scrollbar.js+..\umychart.worker.js+..\umychart.version.js+umychart.vue.export.js ..\umychart.vue\umychart.vue.js /b
|
|
2
2
|
copy ..\umychart.regressiontest.js+umychart.regressiontest.vue.export.js ..\umychart.vue\umychart.regressiontest.vue.js /b
|
|
3
3
|
copy ..\umychart.listctrl.js+umychart.listctrl.vue.export.js ..\umychart.vue\umychart.listctrl.vue.js /b
|
|
4
4
|
|
|
@@ -999,8 +999,11 @@ function DynamicMinuteTitlePainting()
|
|
|
999
999
|
|
|
1000
1000
|
var item=data.Data;
|
|
1001
1001
|
var defaultfloatPrecision = this.GetDecimal(this.Symbol); //价格小数位数
|
|
1002
|
+
var upperSymbol=this.Symbol.toUpperCase();
|
|
1003
|
+
var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //期货
|
|
1002
1004
|
var aryText=[];
|
|
1003
1005
|
var yClose=item.YClose;
|
|
1006
|
+
if (isFutures && IFrameSplitOperator.IsNumber(item.YClearing)) yClose=item.YClearing;
|
|
1004
1007
|
if (this.IsShowName) aryText.push({ Text:this.Name, Color:this.NameColor });
|
|
1005
1008
|
|
|
1006
1009
|
var text = IFrameSplitOperator.FormatDateTimeString(item.DateTime, this.IsShowDate ? 'YYYY-MM-DD HH-MM' : 'HH-MM');
|
|
@@ -271,11 +271,15 @@ var MARKET_SUFFIX_NAME=
|
|
|
271
271
|
|
|
272
272
|
IsChinaFutures: function (upperSymbol) //是否是国内期货
|
|
273
273
|
{
|
|
274
|
+
if (!upperSymbol) return false;
|
|
275
|
+
|
|
274
276
|
return this.IsCFFEX(upperSymbol) || this.IsCZCE(upperSymbol) || this.IsDCE(upperSymbol) || this.IsSHFE(upperSymbol) || this.IsGZFE(upperSymbol) ;
|
|
275
277
|
},
|
|
276
278
|
|
|
277
279
|
IsFutures: function (upperSymbol) //是否是期货 包含国外的
|
|
278
280
|
{
|
|
281
|
+
if (!upperSymbol) return false;
|
|
282
|
+
|
|
279
283
|
return this.IsChinaFutures(upperSymbol) ||
|
|
280
284
|
this.IsNYMEX(upperSymbol) || this.IsCOMEX(upperSymbol) || this.IsNYBOT(upperSymbol) || this.IsCBOT(upperSymbol) ||
|
|
281
285
|
this.IsLME(upperSymbol);
|
|
@@ -455,8 +455,10 @@ function MinuteTooltipPaint()
|
|
|
455
455
|
var upperSymbol;
|
|
456
456
|
if (this.HQChart.Symbol) upperSymbol=this.HQChart.Symbol.toUpperCase();
|
|
457
457
|
var defaultfloatPrecision = JSCommonCoordinateData.GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
|
|
458
|
+
var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //期货
|
|
458
459
|
this.YClose = this.KLineTitlePaint.YClose;
|
|
459
460
|
this.YClose=item.YClose;
|
|
461
|
+
if (isFutures && IFrameSplitOperator.IsNumber(item.YClearing)) this.YClose=item.YClearing;
|
|
460
462
|
|
|
461
463
|
var aryText=[];
|
|
462
464
|
var result={ AryText:aryText };
|