hqchart 1.1.12459 → 1.1.12470
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 +65 -66
- 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 +217 -69
- package/src/jscommon/umychart.testdata/60000.sh.5day.minute.js +4 -4
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +233 -70
- 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 +233 -70
- 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 +13 -20
|
@@ -9105,6 +9105,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9105
9105
|
{
|
|
9106
9106
|
this.ChartCorssCursor.LastPoint=this.LastPoint;
|
|
9107
9107
|
this.ChartCorssCursor.CursorIndex=this.CursorIndex;
|
|
9108
|
+
if (this.EnableNewIndex)
|
|
9109
|
+
{
|
|
9110
|
+
this.ChartCorssCursor.CorssCursorIndex=this.CorssCursorIndex;
|
|
9111
|
+
this.ChartCorssCursor.EnableNewIndex=this.EnableNewIndex;
|
|
9112
|
+
}
|
|
9108
9113
|
|
|
9109
9114
|
var bRestoreCanvas=false;
|
|
9110
9115
|
if (this.CorssCursorCanvas) //独立的十字光标层
|
|
@@ -9467,6 +9472,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9467
9472
|
{
|
|
9468
9473
|
this.ChartCorssCursor.LastPoint=this.LastPoint;
|
|
9469
9474
|
this.ChartCorssCursor.CursorIndex=this.CursorIndex;
|
|
9475
|
+
if (this.EnableNewIndex)
|
|
9476
|
+
{
|
|
9477
|
+
this.ChartCorssCursor.CorssCursorIndex=this.CorssCursorIndex;
|
|
9478
|
+
this.ChartCorssCursor.EnableNewIndex=this.EnableNewIndex;
|
|
9479
|
+
}
|
|
9470
9480
|
|
|
9471
9481
|
var bRestoreCanvas=false;
|
|
9472
9482
|
if (this.CorssCursorCanvas) //独立的十字光标层
|
|
@@ -12518,6 +12528,30 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
12518
12528
|
|
|
12519
12529
|
return aryData;
|
|
12520
12530
|
}
|
|
12531
|
+
|
|
12532
|
+
//重置指标计数器
|
|
12533
|
+
this.ClearIndexRunCount=function()
|
|
12534
|
+
{
|
|
12535
|
+
//主图指标
|
|
12536
|
+
for(var i=0;i<this.WindowIndex.length;++i)
|
|
12537
|
+
{
|
|
12538
|
+
var item=this.WindowIndex[i];
|
|
12539
|
+
if (!item) continue;
|
|
12540
|
+
|
|
12541
|
+
item.RunCount=0;
|
|
12542
|
+
}
|
|
12543
|
+
|
|
12544
|
+
//叠加指标
|
|
12545
|
+
for(var i=0;i<this.Frame.SubFrame.length;++i)
|
|
12546
|
+
{
|
|
12547
|
+
var item=this.Frame.SubFrame[i];
|
|
12548
|
+
for(var j=0; j<item.OverlayIndex.length; ++j)
|
|
12549
|
+
{
|
|
12550
|
+
var overlayItem=item.OverlayIndex[j];
|
|
12551
|
+
if (overlayItem.Script) overlayItem.Script.RunCount=0;
|
|
12552
|
+
}
|
|
12553
|
+
}
|
|
12554
|
+
}
|
|
12521
12555
|
}
|
|
12522
12556
|
|
|
12523
12557
|
function GetDevicePixelRatio()
|
|
@@ -42095,10 +42129,13 @@ function MinuteTooltipPaint()
|
|
|
42095
42129
|
}
|
|
42096
42130
|
|
|
42097
42131
|
var upperSymbol;
|
|
42098
|
-
this.YClose=this.TitlePaint.YClose;
|
|
42099
|
-
this.YClose=item.YClose;
|
|
42100
42132
|
if (this.HQChart.Symbol) upperSymbol=this.HQChart.Symbol.toUpperCase();
|
|
42133
|
+
var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
|
|
42101
42134
|
var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
|
|
42135
|
+
|
|
42136
|
+
this.YClose=this.TitlePaint.YClose;
|
|
42137
|
+
this.YClose=item.YClose;
|
|
42138
|
+
if (isFutures && IFrameSplitOperator.IsNumber(item.YClearing)) this.YClose=item.YClearing;
|
|
42102
42139
|
|
|
42103
42140
|
var aryText=[];
|
|
42104
42141
|
var result={ AryText:aryText };
|
|
@@ -42433,9 +42470,11 @@ function MinuteLeftTooltipPaint()
|
|
|
42433
42470
|
if (!drawData || !drawData.Data) return null;
|
|
42434
42471
|
|
|
42435
42472
|
var aryText=[];
|
|
42473
|
+
var isFutures=false;
|
|
42436
42474
|
var upperSymbol;
|
|
42437
42475
|
if (this.HQChart.Symbol) upperSymbol=this.HQChart.Symbol.toUpperCase();
|
|
42438
42476
|
var defaultfloatPrecision=GetfloatPrecision(upperSymbol);//价格小数位数
|
|
42477
|
+
if (upperSymbol) isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
|
|
42439
42478
|
|
|
42440
42479
|
if (drawData.Type==0) //连续交易
|
|
42441
42480
|
{
|
|
@@ -42443,6 +42482,7 @@ function MinuteLeftTooltipPaint()
|
|
|
42443
42482
|
if (!item) return;
|
|
42444
42483
|
|
|
42445
42484
|
this.YClose=item.YClose;
|
|
42485
|
+
if (isFutures && IFrameSplitOperator.IsNumber(item.YClearing)) this.YClose=item.YClearing;
|
|
42446
42486
|
var titleItem=this.FormatDate(item.Date);
|
|
42447
42487
|
if (titleItem) aryText.push(titleItem);
|
|
42448
42488
|
|
|
@@ -42480,6 +42520,7 @@ function MinuteLeftTooltipPaint()
|
|
|
42480
42520
|
if (!item) return;
|
|
42481
42521
|
|
|
42482
42522
|
this.YClose=item.YClose;
|
|
42523
|
+
if (isFutures && IFrameSplitOperator.IsNumber(item.YClearing)) this.YClose=item.YClearing;
|
|
42483
42524
|
var titleItem=this.FormatDate(item.Date);
|
|
42484
42525
|
if (titleItem) aryText.push(titleItem);
|
|
42485
42526
|
|
|
@@ -49100,6 +49141,9 @@ function ChartCorssCursor()
|
|
|
49100
49141
|
this.IsFixXLastTime=false; //是否修正X轴,超出当前时间的,X轴调整到当前最后的时间.
|
|
49101
49142
|
this.IsDrawXRangeBG=false; //是否绘制十字光标背景
|
|
49102
49143
|
|
|
49144
|
+
this.EnableNewIndex=false; //分时图是否使用最新的索引结构 (由外部chart容器传入)
|
|
49145
|
+
this.CorssCursorIndex; //分时图新版本的索引结构 (由外部chart容器传入)
|
|
49146
|
+
|
|
49103
49147
|
this.PointX;
|
|
49104
49148
|
this.PointY;
|
|
49105
49149
|
|
|
@@ -49157,20 +49201,34 @@ function ChartCorssCursor()
|
|
|
49157
49201
|
|
|
49158
49202
|
this.GetMinuteCloseYPoint=function(index)
|
|
49159
49203
|
{
|
|
49160
|
-
if (
|
|
49161
|
-
|
|
49162
|
-
|
|
49163
|
-
|
|
49164
|
-
|
|
49165
|
-
|
|
49166
|
-
|
|
49167
|
-
|
|
49204
|
+
if (this.EnableNewIndex && this.CorssCursorIndex)
|
|
49205
|
+
{
|
|
49206
|
+
if (!this.StringFormatX || !this.StringFormatX.GetMinuteCloseYPoint) return null;
|
|
49207
|
+
|
|
49208
|
+
var closeData=this.StringFormatX.GetMinuteCloseYPoint(this.CorssCursorIndex);
|
|
49209
|
+
if (!closeData) return null;
|
|
49210
|
+
|
|
49211
|
+
this.Close=closeData.Price;
|
|
49212
|
+
return closeData.Y;
|
|
49213
|
+
}
|
|
49214
|
+
else
|
|
49215
|
+
{
|
|
49168
49216
|
|
|
49169
|
-
|
|
49170
|
-
|
|
49171
|
-
|
|
49172
|
-
|
|
49173
|
-
|
|
49217
|
+
if (!IFrameSplitOperator.IsNumber(index)) return null;
|
|
49218
|
+
index=parseInt(index);
|
|
49219
|
+
if (!this.StringFormatX.Data) return null;
|
|
49220
|
+
var data = this.StringFormatX.Data;
|
|
49221
|
+
if (!data.Data || data.Data.length <= 0) return null;
|
|
49222
|
+
var dataIndex = data.DataOffset + index;
|
|
49223
|
+
if (dataIndex >= data.Data.length) dataIndex = data.Data.length - 1;
|
|
49224
|
+
if (dataIndex < 0) return null;
|
|
49225
|
+
|
|
49226
|
+
var close = data.Data[dataIndex];
|
|
49227
|
+
if (!IFrameSplitOperator.IsNumber(index)) return null;
|
|
49228
|
+
this.Close=close;
|
|
49229
|
+
var yPoint = this.Frame.GetYFromData(this.Close);
|
|
49230
|
+
return yPoint;
|
|
49231
|
+
}
|
|
49174
49232
|
}
|
|
49175
49233
|
|
|
49176
49234
|
this.GetDateTimeRange=function(index, option)
|
|
@@ -50837,6 +50895,7 @@ function HQMinuteTimeStringFormat()
|
|
|
50837
50895
|
this.newMethod();
|
|
50838
50896
|
delete this.newMethod;
|
|
50839
50897
|
|
|
50898
|
+
this.ClassName="HQMinuteTimeStringFormat";
|
|
50840
50899
|
this.Frame;
|
|
50841
50900
|
this.Symbol;
|
|
50842
50901
|
this.Point;
|
|
@@ -50968,6 +51027,88 @@ function HQMinuteTimeStringFormat()
|
|
|
50968
51027
|
|
|
50969
51028
|
return true;
|
|
50970
51029
|
}
|
|
51030
|
+
|
|
51031
|
+
this.GetMinuteCloseYPoint=function(cursorIndexData)
|
|
51032
|
+
{
|
|
51033
|
+
var type=cursorIndexData.Type;
|
|
51034
|
+
if (type==1 || type==2 || type==3) //单日 1=主图 2=盘前 3=盘后
|
|
51035
|
+
{
|
|
51036
|
+
if (type==1)
|
|
51037
|
+
{
|
|
51038
|
+
if (!this.Data || this.Data.Data.length <= 0) return null;
|
|
51039
|
+
var index=cursorIndexData.DataIndex;
|
|
51040
|
+
if (index<0 || index>=this.Data.Data.length) index=this.Data.Data.length-1;
|
|
51041
|
+
|
|
51042
|
+
var close = this.Data.Data[index];
|
|
51043
|
+
var yPoint = this.Frame.GetYFromData(close);
|
|
51044
|
+
return { Price:close, Y:yPoint };
|
|
51045
|
+
}
|
|
51046
|
+
else if (type==2)
|
|
51047
|
+
{
|
|
51048
|
+
if (!this.BeforeOpenData || !this.BeforeOpenData.Data) return false;
|
|
51049
|
+
if (cursorIndexData.DataIndex<0 || cursorIndexData.DataIndex>=this.BeforeOpenData.Data.length) return null;
|
|
51050
|
+
var item=this.BeforeOpenData.Data[cursorIndexData.DataIndex];
|
|
51051
|
+
|
|
51052
|
+
var close=item.Price;
|
|
51053
|
+
var yPoint = this.Frame.GetYFromData(close);
|
|
51054
|
+
return { Price:close, Y:yPoint };
|
|
51055
|
+
}
|
|
51056
|
+
else if (type==3)
|
|
51057
|
+
{
|
|
51058
|
+
if (!this.AfterCloseData || !this.AfterCloseData.Data) return false;
|
|
51059
|
+
if (cursorIndexData.DataIndex<0 || cursorIndexData.DataIndex>=this.AfterCloseData.Data.length) return null;
|
|
51060
|
+
var item=this.AfterCloseData.Data[cursorIndexData.DataIndex];
|
|
51061
|
+
|
|
51062
|
+
var close=item.Price;
|
|
51063
|
+
var yPoint = this.Frame.GetYFromData(close);
|
|
51064
|
+
return { Price:close, Y:yPoint };
|
|
51065
|
+
}
|
|
51066
|
+
}
|
|
51067
|
+
else if (type==10 || type==20 || type==30) //多日 10=主图 20=盘前 30=盘后
|
|
51068
|
+
{
|
|
51069
|
+
if (type==10)
|
|
51070
|
+
{
|
|
51071
|
+
if (!this.Data || this.Data.Data.length <= 0) return null;
|
|
51072
|
+
var index=this.Frame.MinuteCount*cursorIndexData.DayIndex+cursorIndexData.DataIndex;
|
|
51073
|
+
if (index<0 || index>=this.Data.Data.length) index=this.Data.Data.length-1;
|
|
51074
|
+
|
|
51075
|
+
var close = this.Data.Data[index];
|
|
51076
|
+
var yPoint = this.Frame.GetYFromData(close);
|
|
51077
|
+
return { Price:close, Y:yPoint };
|
|
51078
|
+
}
|
|
51079
|
+
else if (type==20)
|
|
51080
|
+
{
|
|
51081
|
+
var multiDayBeforeOpenData=this.GetMultiDayBeforeOpenData();
|
|
51082
|
+
if (!multiDayBeforeOpenData) return null;
|
|
51083
|
+
if (cursorIndexData.DayIndex<0 || cursorIndexData.DayIndex>=multiDayBeforeOpenData.length) return null;
|
|
51084
|
+
|
|
51085
|
+
var dayItem=multiDayBeforeOpenData[cursorIndexData.DayIndex];
|
|
51086
|
+
if (cursorIndexData.DataIndex<0 || cursorIndexData.DataIndex>=dayItem.Data.length) return null;
|
|
51087
|
+
var item=dayItem.Data[cursorIndexData.DataIndex];
|
|
51088
|
+
|
|
51089
|
+
var close=item.Price;
|
|
51090
|
+
var yPoint = this.Frame.GetYFromData(close);
|
|
51091
|
+
return { Price:close, Y:yPoint };
|
|
51092
|
+
}
|
|
51093
|
+
else if (type==30)
|
|
51094
|
+
{
|
|
51095
|
+
var multiDayAfterCloseData=this.GetMultiDayAfterCloseData();
|
|
51096
|
+
if (!multiDayAfterCloseData) return null;
|
|
51097
|
+
if (cursorIndexData.DayIndex<0 || cursorIndexData.DayIndex>=multiDayAfterCloseData.length) return null;
|
|
51098
|
+
|
|
51099
|
+
var dayItem=multiDayAfterCloseData[cursorIndexData.DayIndex];
|
|
51100
|
+
if (cursorIndexData.DataIndex<0 || cursorIndexData.DataIndex>=dayItem.Data.length) return null;
|
|
51101
|
+
var item=dayItem.Data[cursorIndexData.DataIndex];
|
|
51102
|
+
|
|
51103
|
+
var close=item.Price;
|
|
51104
|
+
var yPoint = this.Frame.GetYFromData(close);
|
|
51105
|
+
return { Price:close, Y:yPoint };
|
|
51106
|
+
}
|
|
51107
|
+
}
|
|
51108
|
+
|
|
51109
|
+
|
|
51110
|
+
return null;
|
|
51111
|
+
}
|
|
50971
51112
|
}
|
|
50972
51113
|
|
|
50973
51114
|
|
|
@@ -52171,7 +52312,10 @@ function DynamicMinuteTitlePainting()
|
|
|
52171
52312
|
{
|
|
52172
52313
|
if (!data || !data.Data) return;
|
|
52173
52314
|
|
|
52174
|
-
var
|
|
52315
|
+
var upperSymbol=this.Symbol.toUpperCase();
|
|
52316
|
+
var defaultfloatPrecision=GetfloatPrecision(this.Symbol); //价格小数位数
|
|
52317
|
+
var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
|
|
52318
|
+
|
|
52175
52319
|
var item=data.Data;
|
|
52176
52320
|
var isLastOne=data.IsLastOne;
|
|
52177
52321
|
var aryText=[]; //{Color:, Text: }
|
|
@@ -52217,6 +52361,8 @@ function DynamicMinuteTitlePainting()
|
|
|
52217
52361
|
var amount=item.Amount;
|
|
52218
52362
|
var yClose=item.YClose;
|
|
52219
52363
|
if (!IFrameSplitOperator.IsNumber(yClose)) yClose=this.YClose;
|
|
52364
|
+
if (isFutures && IFrameSplitOperator.IsNumber(item.YClearing)) yClose=item.YClearing; //期货使用昨结算
|
|
52365
|
+
|
|
52220
52366
|
|
|
52221
52367
|
if (IFrameSplitOperator.IsNumber(close))
|
|
52222
52368
|
{
|
|
@@ -68373,22 +68519,27 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
68373
68519
|
{
|
|
68374
68520
|
if (!this.WindowIndex[windowIndex]) return;
|
|
68375
68521
|
|
|
68376
|
-
|
|
68522
|
+
var item=this.WindowIndex[windowIndex];
|
|
68523
|
+
if (typeof(item.RequestData)=="function") //数据需要另外下载的.
|
|
68377
68524
|
{
|
|
68378
|
-
|
|
68525
|
+
item.RequestData(this,windowIndex,hisData, option);
|
|
68379
68526
|
return;
|
|
68380
68527
|
}
|
|
68381
|
-
|
|
68528
|
+
|
|
68529
|
+
if (typeof(item.ExecuteScript)=='function')
|
|
68382
68530
|
{
|
|
68383
|
-
|
|
68531
|
+
if (option && option.CheckRunCount)
|
|
68532
|
+
if (item.IsExcessRunCount()) return;
|
|
68533
|
+
|
|
68534
|
+
item.ExecuteScript(this,windowIndex,hisData);
|
|
68384
68535
|
return;
|
|
68385
68536
|
}
|
|
68386
68537
|
|
|
68387
|
-
|
|
68538
|
+
item.BindData(this,windowIndex,hisData);
|
|
68388
68539
|
}
|
|
68389
68540
|
|
|
68390
68541
|
//叠加指标
|
|
68391
|
-
this.BindOverlayIndexData=function(overlayItem, windowIndex, hisData)
|
|
68542
|
+
this.BindOverlayIndexData=function(overlayItem, windowIndex, hisData, option)
|
|
68392
68543
|
{
|
|
68393
68544
|
if (!overlayItem.Script) return;
|
|
68394
68545
|
|
|
@@ -68400,6 +68551,9 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
68400
68551
|
|
|
68401
68552
|
if (typeof(overlayItem.Script.ExecuteScript)=='function')
|
|
68402
68553
|
{
|
|
68554
|
+
if (option && option.CheckRunCount)
|
|
68555
|
+
if (overlayItem.Script.IsExcessRunCount()) return;
|
|
68556
|
+
|
|
68403
68557
|
overlayItem.Script.ExecuteScript(this,windowIndex,hisData);
|
|
68404
68558
|
return;
|
|
68405
68559
|
}
|
|
@@ -68565,7 +68719,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
68565
68719
|
});
|
|
68566
68720
|
}
|
|
68567
68721
|
|
|
68568
|
-
this.BindAllOverlayIndexData=function(hisData)
|
|
68722
|
+
this.BindAllOverlayIndexData=function(hisData, option)
|
|
68569
68723
|
{
|
|
68570
68724
|
if (!this.Frame || !this.Frame.SubFrame) return;
|
|
68571
68725
|
|
|
@@ -68576,7 +68730,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
68576
68730
|
for(var j in item.OverlayIndex)
|
|
68577
68731
|
{
|
|
68578
68732
|
var overlayItem=item.OverlayIndex[j];
|
|
68579
|
-
this.BindOverlayIndexData(overlayItem,i,hisData)
|
|
68733
|
+
this.BindOverlayIndexData(overlayItem,i,hisData,option)
|
|
68580
68734
|
}
|
|
68581
68735
|
}
|
|
68582
68736
|
}
|
|
@@ -69259,7 +69413,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
69259
69413
|
|
|
69260
69414
|
for(var i=0; i<this.Frame.SubFrame.length; ++i)
|
|
69261
69415
|
{
|
|
69262
|
-
this.BindIndexData(i,bindData);
|
|
69416
|
+
this.BindIndexData(i,bindData, { CheckRunCount:true });
|
|
69263
69417
|
}
|
|
69264
69418
|
|
|
69265
69419
|
//刷新画图
|
|
@@ -69272,7 +69426,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
69272
69426
|
this.SendKLineUpdateEvent(bindData);
|
|
69273
69427
|
|
|
69274
69428
|
//叠加指标计算
|
|
69275
|
-
this.BindAllOverlayIndexData(bindData);
|
|
69429
|
+
this.BindAllOverlayIndexData(bindData,{ CheckRunCount:true });
|
|
69276
69430
|
|
|
69277
69431
|
if (this.mapEvent.has(JSCHART_EVENT_ID.ON_RECV_REALTIME_DATA))
|
|
69278
69432
|
{
|
|
@@ -69997,6 +70151,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
69997
70151
|
this.ClearRectSelect(true);
|
|
69998
70152
|
this.Frame.ClearUpDonwFrameYData();
|
|
69999
70153
|
this.ClearCustomKLine();
|
|
70154
|
+
|
|
70000
70155
|
|
|
70001
70156
|
var kLineDrawType=this.GetKLineDrawType();
|
|
70002
70157
|
if (kLineDrawType==10 || kLineDrawType==11 || kLineDrawType==12 || kLineDrawType==16) isDataTypeChange=true;
|
|
@@ -70018,6 +70173,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
70018
70173
|
|
|
70019
70174
|
if (isDataTypeChange==false && !this.IsApiPeriod)
|
|
70020
70175
|
{
|
|
70176
|
+
this.ClearIndexRunCount();
|
|
70021
70177
|
this.Update( {UpdateCursorIndexType:2} ); //更新的时候 取消显示十字光标
|
|
70022
70178
|
return;
|
|
70023
70179
|
}
|
|
@@ -70030,6 +70186,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
70030
70186
|
this.AutoUpdateEvent(false,'KLineChartContainer::ChangePeriod'); //切换周期先停止更新
|
|
70031
70187
|
this.ResetScrollBar();
|
|
70032
70188
|
this.ResetOverlaySymbolStatus();
|
|
70189
|
+
this.ClearIndexRunCount();
|
|
70033
70190
|
this.RequestHistoryData(); //请求日线数据
|
|
70034
70191
|
//this.ReqeustKLineInfoData();
|
|
70035
70192
|
}
|
|
@@ -70039,6 +70196,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
70039
70196
|
this.AutoUpdateEvent(false,'KLineChartContainer::ChangePeriod'); //切换周期先停止更新
|
|
70040
70197
|
this.ResetScrollBar();
|
|
70041
70198
|
this.ResetOverlaySymbolStatus();
|
|
70199
|
+
this.ClearIndexRunCount();
|
|
70042
70200
|
this.ReqeustHistoryMinuteData(); //请求分钟数据
|
|
70043
70201
|
}
|
|
70044
70202
|
else if (ChartData.IsTickPeriod(this.Period))
|
|
@@ -70046,6 +70204,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
70046
70204
|
this.CancelAutoUpdate(); //先停止定时器
|
|
70047
70205
|
this.AutoUpdateEvent(false,'KLineChartContainer::ChangePeriod');
|
|
70048
70206
|
this.ResetScrollBar();
|
|
70207
|
+
this.ClearIndexRunCount();
|
|
70049
70208
|
this.RequestTickData(); //请求分笔数据
|
|
70050
70209
|
}
|
|
70051
70210
|
}
|
|
@@ -71346,6 +71505,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
71346
71505
|
this.ClearKLineCaluate();
|
|
71347
71506
|
this.HideTooltip();
|
|
71348
71507
|
this.ResetScrollBar();
|
|
71508
|
+
this.ClearIndexRunCount();
|
|
71349
71509
|
|
|
71350
71510
|
this.Symbol=symbol;
|
|
71351
71511
|
if (!symbol)
|
|
@@ -76443,6 +76603,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
76443
76603
|
this.ClearIndexPaint(); //清空指标
|
|
76444
76604
|
this.ResetOverlaySymbolStatus();
|
|
76445
76605
|
this.ReloadChartDrawPicture();
|
|
76606
|
+
this.ClearIndexRunCount();
|
|
76446
76607
|
|
|
76447
76608
|
if (option)
|
|
76448
76609
|
{
|
|
@@ -77831,7 +77992,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
77831
77992
|
}
|
|
77832
77993
|
}
|
|
77833
77994
|
|
|
77834
|
-
this.BindIndexData=function(windowIndex,hisData)
|
|
77995
|
+
this.BindIndexData=function(windowIndex, hisData, option)
|
|
77835
77996
|
{
|
|
77836
77997
|
if (!this.WindowIndex[windowIndex]) return;
|
|
77837
77998
|
|
|
@@ -78276,7 +78437,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
78276
78437
|
}
|
|
78277
78438
|
|
|
78278
78439
|
//计算叠加指标
|
|
78279
|
-
this.BindAllOverlayIndexData=function(hisData)
|
|
78440
|
+
this.BindAllOverlayIndexData=function(hisData, option)
|
|
78280
78441
|
{
|
|
78281
78442
|
if (!this.Frame || !this.Frame.SubFrame) return;
|
|
78282
78443
|
|
|
@@ -78287,13 +78448,13 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
78287
78448
|
for(var j in item.OverlayIndex)
|
|
78288
78449
|
{
|
|
78289
78450
|
var overlayItem=item.OverlayIndex[j];
|
|
78290
|
-
this.BindOverlayIndexData(overlayItem,i,hisData)
|
|
78451
|
+
this.BindOverlayIndexData(overlayItem,i,hisData,option)
|
|
78291
78452
|
}
|
|
78292
78453
|
}
|
|
78293
78454
|
}
|
|
78294
78455
|
|
|
78295
78456
|
//叠加指标
|
|
78296
|
-
this.BindOverlayIndexData=function(overlayItem, windowIndex, hisData)
|
|
78457
|
+
this.BindOverlayIndexData=function(overlayItem, windowIndex, hisData, option)
|
|
78297
78458
|
{
|
|
78298
78459
|
if (!overlayItem.Script) return;
|
|
78299
78460
|
|
|
@@ -79024,7 +79185,9 @@ MinuteChartContainer.JsonDataToMinuteData=function(data,isBeforeData)
|
|
|
79024
79185
|
var preClose=data.stock[0].yclose; //前一个数据价格
|
|
79025
79186
|
var preAvPrice=data.stock[0].yclose; //前一个均价
|
|
79026
79187
|
var yClose=data.stock[0].yclose;
|
|
79027
|
-
|
|
79188
|
+
var yClearing=data.stock[0].yclearing;
|
|
79189
|
+
|
|
79190
|
+
if (isFutures && yClearing) preClose=preAvPrice=yClearing; //期货使用昨结算价
|
|
79028
79191
|
|
|
79029
79192
|
if (!IFrameSplitOperator.IsNonEmptyArray(data.stock[0].minute)) return aryMinuteData;
|
|
79030
79193
|
|
|
@@ -79033,7 +79196,7 @@ MinuteChartContainer.JsonDataToMinuteData=function(data,isBeforeData)
|
|
|
79033
79196
|
{
|
|
79034
79197
|
var jsData=data.stock[0].minute[i];
|
|
79035
79198
|
var item=new MinuteData();
|
|
79036
|
-
|
|
79199
|
+
item.YClearing=yClearing;
|
|
79037
79200
|
item.YClose=yClose;
|
|
79038
79201
|
item.Close=jsData.price;
|
|
79039
79202
|
item.Open=jsData.open;
|
|
@@ -79064,24 +79227,11 @@ MinuteChartContainer.JsonDataToMinuteData=function(data,isBeforeData)
|
|
|
79064
79227
|
|
|
79065
79228
|
if (!item.AvPrice) item.AvPrice=preAvPrice;
|
|
79066
79229
|
|
|
79067
|
-
//价格是0的 都用空
|
|
79068
|
-
//if (item.Open<=0) item.Open=null;
|
|
79069
|
-
//if (item.Close<=0) item.Close=null;
|
|
79070
|
-
//if (item.AvPrice<=0) item.AvPrice=null;
|
|
79071
|
-
//if (item.High<=0) item.High=null;
|
|
79072
|
-
//if (item.Low<=0) item.Low=null;
|
|
79073
|
-
|
|
79074
|
-
//if (isFutures) item.AvPrice=null; //期货均价暂时没有
|
|
79075
|
-
|
|
79076
79230
|
if (yClose && item.Close)
|
|
79077
79231
|
item.Increase=(item.Close-yClose)/yClose*100; //涨幅 (最新价格-昨收)/昨收*100;
|
|
79078
79232
|
|
|
79079
|
-
|
|
79080
|
-
|
|
79081
|
-
var checkValue=Math.abs(item.AvPrice-item.Close);
|
|
79082
|
-
//JSConsole.Chart.Log(`[MinuteChartContainer::JsonDataToMinuteData] checkValue=${checkValue}, ${item.Close*0.13} `)
|
|
79083
|
-
if (isSHSZ && checkValue>item.Close*0.13 )
|
|
79084
|
-
item.AvPrice=preAvPrice;
|
|
79233
|
+
if (isFutures && yClearing && item.Close)
|
|
79234
|
+
item.Increase=(item.Close-yClearing)/yClearing*100; //涨幅 (最新价格-昨结算价)/昨结算价*100;
|
|
79085
79235
|
|
|
79086
79236
|
//上次价格
|
|
79087
79237
|
if (IFrameSplitOperator.IsNumber(jsData.price)) preClose=jsData.price;
|
|
@@ -79195,7 +79345,7 @@ MinuteChartContainer.JsonDataToMinuteDataArray=function(data)
|
|
|
79195
79345
|
var symbol=data.symbol;
|
|
79196
79346
|
var upperSymbol=symbol.toUpperCase();
|
|
79197
79347
|
var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);
|
|
79198
|
-
var isSHO=MARKET_SUFFIX_NAME.IsSHO(upperSymbol);
|
|
79348
|
+
var isSHO=MARKET_SUFFIX_NAME.IsSHO(upperSymbol); //上海股票期权
|
|
79199
79349
|
var isSZO=MARKET_SUFFIX_NAME.IsSZO(upperSymbol); //深证股票期权
|
|
79200
79350
|
var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
|
|
79201
79351
|
var result=[];
|
|
@@ -79205,22 +79355,25 @@ MinuteChartContainer.JsonDataToMinuteDataArray=function(data)
|
|
|
79205
79355
|
var minuteData=[];
|
|
79206
79356
|
var dayData=data.data[i];
|
|
79207
79357
|
var date=dayData.date;
|
|
79358
|
+
var yClearing=dayData.yclearing; //昨结算价
|
|
79208
79359
|
var yClose=dayData.yclose; //前收盘 计算涨幅
|
|
79209
79360
|
var preClose=yClose; //前一个数据价格
|
|
79210
79361
|
var preAvPrice=null; //上一个均价
|
|
79211
|
-
var yClearing=dayData.yclearing; //昨结算价
|
|
79212
79362
|
|
|
79213
|
-
|
|
79363
|
+
if (isFutures && yClearing) preClose=preAvPrice=yClearing; //期货使用昨结算价
|
|
79364
|
+
|
|
79214
79365
|
for(var j in dayData.minute)
|
|
79215
79366
|
{
|
|
79216
79367
|
var jsData=dayData.minute[j];
|
|
79217
79368
|
if (jsData[2]) preClose=jsData[2]; //保存上一个收盘数据
|
|
79218
79369
|
var item=new MinuteData();
|
|
79370
|
+
item.YClearing=yClearing;
|
|
79219
79371
|
item.YClose=yClose;
|
|
79220
79372
|
item.Close=jsData[2];
|
|
79221
79373
|
item.Open=jsData[1];
|
|
79222
79374
|
item.High=jsData[3];
|
|
79223
79375
|
item.Low=jsData[4];
|
|
79376
|
+
item.Increase=null;
|
|
79224
79377
|
if (isSHSZ) item.Vol=jsData[5]/100; //原始单位股
|
|
79225
79378
|
else item.Vol=jsData[5];
|
|
79226
79379
|
item.Amount=jsData[6];
|
|
@@ -79243,23 +79396,12 @@ MinuteChartContainer.JsonDataToMinuteDataArray=function(data)
|
|
|
79243
79396
|
|
|
79244
79397
|
if (!item.AvPrice && preAvPrice) item.AvPrice=preAvPrice;
|
|
79245
79398
|
|
|
79246
|
-
if (item.Close && yClose)
|
|
79247
|
-
|
|
79399
|
+
if (item.Close && yClose)
|
|
79400
|
+
item.Increase = (item.Close - yClose)/yClose*100;
|
|
79248
79401
|
|
|
79249
|
-
|
|
79250
|
-
|
|
79251
|
-
|
|
79252
|
-
//if (item.AvPrice<=0) item.AvPrice=null;
|
|
79253
|
-
//if (item.High<=0) item.High=null;
|
|
79254
|
-
//if (item.Low<=0) item.Low=null;
|
|
79255
|
-
//if (item.AvPrice<=0) item.AvPrice=null;
|
|
79256
|
-
|
|
79257
|
-
//均价太大 可能是后台算错了
|
|
79258
|
-
if (item.AvPrice && isSHSZ)
|
|
79259
|
-
{
|
|
79260
|
-
var checkValue=Math.abs(item.AvPrice-item.Close);
|
|
79261
|
-
if (checkValue>item.Close*0.13 ) item.AvPrice=preAvPrice;
|
|
79262
|
-
}
|
|
79402
|
+
if (item.Close && yClearing && isFutures)
|
|
79403
|
+
item.Increase = (item.Close - yClearing)/yClearing*100;
|
|
79404
|
+
|
|
79263
79405
|
|
|
79264
79406
|
if (jsData.length>7 && jsData[7]>0 && item.AvPrice===jsData[7]) preAvPrice=jsData[7];
|
|
79265
79407
|
if (jsData[extendDataIndex]) item.ExtendData=jsData[extendDataIndex];
|
|
@@ -79270,9 +79412,9 @@ MinuteChartContainer.JsonDataToMinuteDataArray=function(data)
|
|
|
79270
79412
|
var newData=new ChartData();
|
|
79271
79413
|
newData.Data=minuteData;
|
|
79272
79414
|
newData.YClose=yClose;
|
|
79415
|
+
if (IFrameSplitOperator.IsNumber(yClearing)) newData.YClearing=yClearing;
|
|
79273
79416
|
newData.Close=dayData.close;
|
|
79274
79417
|
newData.Date=date;
|
|
79275
|
-
if (IFrameSplitOperator.IsNumber(yClearing)) newData.YClearing=yClearing;
|
|
79276
79418
|
|
|
79277
79419
|
result.push(newData);
|
|
79278
79420
|
}
|
|
@@ -79321,6 +79463,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
79321
79463
|
|
|
79322
79464
|
var date=callAuctionData.Date;
|
|
79323
79465
|
var yClose=callAuctionData.YClose;
|
|
79466
|
+
var yClearing=callAuctionData.YClearing;
|
|
79324
79467
|
var extendDataIndex=isBeforeOpen? JSCHART_DATA_FIELD_ID.MINUTE_BEFOREOPEN_EXTENDDATA:JSCHART_DATA_FIELD_ID.MINUTE_AFTERCLOSE_EXTENDDATA; //扩展数据序号
|
|
79325
79468
|
if (callAuctionData.Ver==1.0)
|
|
79326
79469
|
{
|
|
@@ -79330,6 +79473,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
79330
79473
|
var item=isBeforeOpen? new BeforeOpenData() : new AfterCloseData();
|
|
79331
79474
|
var jsData=data[i];
|
|
79332
79475
|
item.YClose=yClose;
|
|
79476
|
+
item.YClearing=yClearing;
|
|
79333
79477
|
item.Time=jsData[0];
|
|
79334
79478
|
item.Date=date;
|
|
79335
79479
|
item.Price=jsData[1];
|
|
@@ -79353,6 +79497,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
79353
79497
|
var item=isBeforeOpen? new BeforeOpenData() : new AfterCloseData();
|
|
79354
79498
|
var jsData=data[i];
|
|
79355
79499
|
item.YClose=yClose;
|
|
79500
|
+
item.YClearing=yClearing;
|
|
79356
79501
|
item.Time=jsData[0];
|
|
79357
79502
|
item.Date=date;
|
|
79358
79503
|
item.Price=jsData[1];
|
|
@@ -79380,6 +79525,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
79380
79525
|
var item=isBeforeOpen? new BeforeOpenData() : new AfterCloseData();
|
|
79381
79526
|
var jsData=data[i];
|
|
79382
79527
|
item.YClose=yClose;
|
|
79528
|
+
item.YClearing=yClearing;
|
|
79383
79529
|
item.Time=jsData[0];
|
|
79384
79530
|
item.Date=date;
|
|
79385
79531
|
item.Price=jsData[1];
|
|
@@ -79409,7 +79555,7 @@ MinuteChartContainer.JosnDataToBeforeOpenDataArray=function(data)
|
|
|
79409
79555
|
for(var i in data.data)
|
|
79410
79556
|
{
|
|
79411
79557
|
var dayItem=data.data[i];
|
|
79412
|
-
var beforeOpenData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose };
|
|
79558
|
+
var beforeOpenData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose, YClearing:dayItem.YClearing };
|
|
79413
79559
|
if (dayItem.beforeinfo)
|
|
79414
79560
|
{
|
|
79415
79561
|
if (IFrameSplitOperator.IsNumber(dayItem.beforeinfo.totalcount)) beforeOpenData.TotalCount=dayItem.beforeinfo.totalcount;
|
|
@@ -79434,7 +79580,7 @@ MinuteChartContainer.JosnDataToAfterCloseDataArray=function(data)
|
|
|
79434
79580
|
for(var i in data.data)
|
|
79435
79581
|
{
|
|
79436
79582
|
var dayItem=data.data[i];
|
|
79437
|
-
var afterCloseData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose };
|
|
79583
|
+
var afterCloseData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose, YClearing:dayItem.YClearing };
|
|
79438
79584
|
|
|
79439
79585
|
if (dayItem.afterinfo)
|
|
79440
79586
|
{
|
|
@@ -88553,6 +88699,8 @@ var MARKET_SUFFIX_NAME=
|
|
|
88553
88699
|
|
|
88554
88700
|
IsFutures:function(upperSymbol) //是否是期货 包含国外的
|
|
88555
88701
|
{
|
|
88702
|
+
if (!upperSymbol) return false;
|
|
88703
|
+
|
|
88556
88704
|
return this.IsChinaFutures(upperSymbol) ||
|
|
88557
88705
|
this.IsNYMEX(upperSymbol) || this.IsCOMEX(upperSymbol) || this.IsNYBOT(upperSymbol) || this.IsCBOT(upperSymbol) ||
|
|
88558
88706
|
this.IsLME(upperSymbol) || this.IsTOCOM(upperSymbol);
|
|
@@ -111224,6 +111372,9 @@ function ScriptIndex(name,script,args,option)
|
|
|
111224
111372
|
this.IsSync=false; //是否是同步计算 (无数据请求)
|
|
111225
111373
|
this.IsShow=true; //是否显示图形
|
|
111226
111374
|
|
|
111375
|
+
this.RunCount=0; //已执行次数
|
|
111376
|
+
this.MaxRunCount=-1; //最大执行次数 -1=无限
|
|
111377
|
+
|
|
111227
111378
|
if (option)
|
|
111228
111379
|
{
|
|
111229
111380
|
if (option.FloatPrecision>=0) this.FloatPrecision=option.FloatPrecision;
|
|
@@ -111239,6 +111390,7 @@ function ScriptIndex(name,script,args,option)
|
|
|
111239
111390
|
if (option.OutName) this.OutName=option.OutName;
|
|
111240
111391
|
if (IFrameSplitOperator.IsNumber(option.YSplitType)) this.YSplitType=option.YSplitType;
|
|
111241
111392
|
if (IFrameSplitOperator.IsBool(option.IsSync)) this.IsSync=option.IsSync;
|
|
111393
|
+
if (IFrameSplitOperator.IsNumber(option.MaxRunCount)) this.MaxRunCount=option.MaxRunCount;
|
|
111242
111394
|
|
|
111243
111395
|
if (option.Debug)
|
|
111244
111396
|
{
|
|
@@ -111308,6 +111460,14 @@ function ScriptIndex(name,script,args,option)
|
|
|
111308
111460
|
}
|
|
111309
111461
|
}
|
|
111310
111462
|
|
|
111463
|
+
//是否超出执行的最大次数
|
|
111464
|
+
this.IsExcessRunCount=function()
|
|
111465
|
+
{
|
|
111466
|
+
if (this.MaxRunCount<=0) return false; //没有限制
|
|
111467
|
+
|
|
111468
|
+
return this.RunCount>=this.MaxRunCount;
|
|
111469
|
+
}
|
|
111470
|
+
|
|
111311
111471
|
this.ExecuteScript=function(hqChart,windowIndex,hisData)
|
|
111312
111472
|
{
|
|
111313
111473
|
this.OutVar=[];
|
|
@@ -111377,6 +111537,7 @@ function ScriptIndex(name,script,args,option)
|
|
|
111377
111537
|
return;
|
|
111378
111538
|
}
|
|
111379
111539
|
|
|
111540
|
+
++this.RunCount;
|
|
111380
111541
|
let code=this.Script;
|
|
111381
111542
|
let run=JSComplier.Execute(code,option,hqChart.ScriptErrorCallback);
|
|
111382
111543
|
}
|
|
@@ -114420,6 +114581,8 @@ function APIScriptIndex(name,script,args,option, isOverlay)
|
|
|
114420
114581
|
if (hqDataType==HQ_DATA_TYPE.MULTIDAY_MINUTE_ID || hqDataType==HQ_DATA_TYPE.MINUTE_ID) postData.daycount=hqChart.DayCount;
|
|
114421
114582
|
this.HQDataType=hqDataType;
|
|
114422
114583
|
|
|
114584
|
+
++this.RunCount;
|
|
114585
|
+
|
|
114423
114586
|
if (hqChart.NetworkFilter)
|
|
114424
114587
|
{
|
|
114425
114588
|
var obj=
|
|
@@ -127803,7 +127966,7 @@ function ScrollBarBGChart()
|
|
|
127803
127966
|
|
|
127804
127967
|
|
|
127805
127968
|
|
|
127806
|
-
var HQCHART_VERSION="1.1.
|
|
127969
|
+
var HQCHART_VERSION="1.1.12469";
|
|
127807
127970
|
|
|
127808
127971
|
function PrintHQChartVersion()
|
|
127809
127972
|
{
|