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
|
@@ -19008,6 +19008,9 @@ function ScriptIndex(name,script,args,option)
|
|
|
19008
19008
|
this.IsSync=false; //是否是同步计算 (无数据请求)
|
|
19009
19009
|
this.IsShow=true; //是否显示图形
|
|
19010
19010
|
|
|
19011
|
+
this.RunCount=0; //已执行次数
|
|
19012
|
+
this.MaxRunCount=-1; //最大执行次数 -1=无限
|
|
19013
|
+
|
|
19011
19014
|
if (option)
|
|
19012
19015
|
{
|
|
19013
19016
|
if (option.FloatPrecision>=0) this.FloatPrecision=option.FloatPrecision;
|
|
@@ -19023,6 +19026,7 @@ function ScriptIndex(name,script,args,option)
|
|
|
19023
19026
|
if (option.OutName) this.OutName=option.OutName;
|
|
19024
19027
|
if (IFrameSplitOperator.IsNumber(option.YSplitType)) this.YSplitType=option.YSplitType;
|
|
19025
19028
|
if (IFrameSplitOperator.IsBool(option.IsSync)) this.IsSync=option.IsSync;
|
|
19029
|
+
if (IFrameSplitOperator.IsNumber(option.MaxRunCount)) this.MaxRunCount=option.MaxRunCount;
|
|
19026
19030
|
|
|
19027
19031
|
if (option.Debug)
|
|
19028
19032
|
{
|
|
@@ -19092,6 +19096,14 @@ function ScriptIndex(name,script,args,option)
|
|
|
19092
19096
|
}
|
|
19093
19097
|
}
|
|
19094
19098
|
|
|
19099
|
+
//是否超出执行的最大次数
|
|
19100
|
+
this.IsExcessRunCount=function()
|
|
19101
|
+
{
|
|
19102
|
+
if (this.MaxRunCount<=0) return false; //没有限制
|
|
19103
|
+
|
|
19104
|
+
return this.RunCount>=this.MaxRunCount;
|
|
19105
|
+
}
|
|
19106
|
+
|
|
19095
19107
|
this.ExecuteScript=function(hqChart,windowIndex,hisData)
|
|
19096
19108
|
{
|
|
19097
19109
|
this.OutVar=[];
|
|
@@ -19161,6 +19173,7 @@ function ScriptIndex(name,script,args,option)
|
|
|
19161
19173
|
return;
|
|
19162
19174
|
}
|
|
19163
19175
|
|
|
19176
|
+
++this.RunCount;
|
|
19164
19177
|
let code=this.Script;
|
|
19165
19178
|
let run=JSComplier.Execute(code,option,hqChart.ScriptErrorCallback);
|
|
19166
19179
|
}
|
|
@@ -22204,6 +22217,8 @@ function APIScriptIndex(name,script,args,option, isOverlay)
|
|
|
22204
22217
|
if (hqDataType==HQ_DATA_TYPE.MULTIDAY_MINUTE_ID || hqDataType==HQ_DATA_TYPE.MINUTE_ID) postData.daycount=hqChart.DayCount;
|
|
22205
22218
|
this.HQDataType=hqDataType;
|
|
22206
22219
|
|
|
22220
|
+
++this.RunCount;
|
|
22221
|
+
|
|
22207
22222
|
if (hqChart.NetworkFilter)
|
|
22208
22223
|
{
|
|
22209
22224
|
var obj=
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -5025,6 +5025,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
5025
5025
|
{
|
|
5026
5026
|
this.ChartCorssCursor.LastPoint=this.LastPoint;
|
|
5027
5027
|
this.ChartCorssCursor.CursorIndex=this.CursorIndex;
|
|
5028
|
+
if (this.EnableNewIndex)
|
|
5029
|
+
{
|
|
5030
|
+
this.ChartCorssCursor.CorssCursorIndex=this.CorssCursorIndex;
|
|
5031
|
+
this.ChartCorssCursor.EnableNewIndex=this.EnableNewIndex;
|
|
5032
|
+
}
|
|
5028
5033
|
|
|
5029
5034
|
var bRestoreCanvas=false;
|
|
5030
5035
|
if (this.CorssCursorCanvas) //独立的十字光标层
|
|
@@ -5387,6 +5392,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
5387
5392
|
{
|
|
5388
5393
|
this.ChartCorssCursor.LastPoint=this.LastPoint;
|
|
5389
5394
|
this.ChartCorssCursor.CursorIndex=this.CursorIndex;
|
|
5395
|
+
if (this.EnableNewIndex)
|
|
5396
|
+
{
|
|
5397
|
+
this.ChartCorssCursor.CorssCursorIndex=this.CorssCursorIndex;
|
|
5398
|
+
this.ChartCorssCursor.EnableNewIndex=this.EnableNewIndex;
|
|
5399
|
+
}
|
|
5390
5400
|
|
|
5391
5401
|
var bRestoreCanvas=false;
|
|
5392
5402
|
if (this.CorssCursorCanvas) //独立的十字光标层
|
|
@@ -8438,6 +8448,30 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
8438
8448
|
|
|
8439
8449
|
return aryData;
|
|
8440
8450
|
}
|
|
8451
|
+
|
|
8452
|
+
//重置指标计数器
|
|
8453
|
+
this.ClearIndexRunCount=function()
|
|
8454
|
+
{
|
|
8455
|
+
//主图指标
|
|
8456
|
+
for(var i=0;i<this.WindowIndex.length;++i)
|
|
8457
|
+
{
|
|
8458
|
+
var item=this.WindowIndex[i];
|
|
8459
|
+
if (!item) continue;
|
|
8460
|
+
|
|
8461
|
+
item.RunCount=0;
|
|
8462
|
+
}
|
|
8463
|
+
|
|
8464
|
+
//叠加指标
|
|
8465
|
+
for(var i=0;i<this.Frame.SubFrame.length;++i)
|
|
8466
|
+
{
|
|
8467
|
+
var item=this.Frame.SubFrame[i];
|
|
8468
|
+
for(var j=0; j<item.OverlayIndex.length; ++j)
|
|
8469
|
+
{
|
|
8470
|
+
var overlayItem=item.OverlayIndex[j];
|
|
8471
|
+
if (overlayItem.Script) overlayItem.Script.RunCount=0;
|
|
8472
|
+
}
|
|
8473
|
+
}
|
|
8474
|
+
}
|
|
8441
8475
|
}
|
|
8442
8476
|
|
|
8443
8477
|
function GetDevicePixelRatio()
|
|
@@ -38015,10 +38049,13 @@ function MinuteTooltipPaint()
|
|
|
38015
38049
|
}
|
|
38016
38050
|
|
|
38017
38051
|
var upperSymbol;
|
|
38018
|
-
this.YClose=this.TitlePaint.YClose;
|
|
38019
|
-
this.YClose=item.YClose;
|
|
38020
38052
|
if (this.HQChart.Symbol) upperSymbol=this.HQChart.Symbol.toUpperCase();
|
|
38053
|
+
var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
|
|
38021
38054
|
var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
|
|
38055
|
+
|
|
38056
|
+
this.YClose=this.TitlePaint.YClose;
|
|
38057
|
+
this.YClose=item.YClose;
|
|
38058
|
+
if (isFutures && IFrameSplitOperator.IsNumber(item.YClearing)) this.YClose=item.YClearing;
|
|
38022
38059
|
|
|
38023
38060
|
var aryText=[];
|
|
38024
38061
|
var result={ AryText:aryText };
|
|
@@ -38353,9 +38390,11 @@ function MinuteLeftTooltipPaint()
|
|
|
38353
38390
|
if (!drawData || !drawData.Data) return null;
|
|
38354
38391
|
|
|
38355
38392
|
var aryText=[];
|
|
38393
|
+
var isFutures=false;
|
|
38356
38394
|
var upperSymbol;
|
|
38357
38395
|
if (this.HQChart.Symbol) upperSymbol=this.HQChart.Symbol.toUpperCase();
|
|
38358
38396
|
var defaultfloatPrecision=GetfloatPrecision(upperSymbol);//价格小数位数
|
|
38397
|
+
if (upperSymbol) isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
|
|
38359
38398
|
|
|
38360
38399
|
if (drawData.Type==0) //连续交易
|
|
38361
38400
|
{
|
|
@@ -38363,6 +38402,7 @@ function MinuteLeftTooltipPaint()
|
|
|
38363
38402
|
if (!item) return;
|
|
38364
38403
|
|
|
38365
38404
|
this.YClose=item.YClose;
|
|
38405
|
+
if (isFutures && IFrameSplitOperator.IsNumber(item.YClearing)) this.YClose=item.YClearing;
|
|
38366
38406
|
var titleItem=this.FormatDate(item.Date);
|
|
38367
38407
|
if (titleItem) aryText.push(titleItem);
|
|
38368
38408
|
|
|
@@ -38400,6 +38440,7 @@ function MinuteLeftTooltipPaint()
|
|
|
38400
38440
|
if (!item) return;
|
|
38401
38441
|
|
|
38402
38442
|
this.YClose=item.YClose;
|
|
38443
|
+
if (isFutures && IFrameSplitOperator.IsNumber(item.YClearing)) this.YClose=item.YClearing;
|
|
38403
38444
|
var titleItem=this.FormatDate(item.Date);
|
|
38404
38445
|
if (titleItem) aryText.push(titleItem);
|
|
38405
38446
|
|
|
@@ -45020,6 +45061,9 @@ function ChartCorssCursor()
|
|
|
45020
45061
|
this.IsFixXLastTime=false; //是否修正X轴,超出当前时间的,X轴调整到当前最后的时间.
|
|
45021
45062
|
this.IsDrawXRangeBG=false; //是否绘制十字光标背景
|
|
45022
45063
|
|
|
45064
|
+
this.EnableNewIndex=false; //分时图是否使用最新的索引结构 (由外部chart容器传入)
|
|
45065
|
+
this.CorssCursorIndex; //分时图新版本的索引结构 (由外部chart容器传入)
|
|
45066
|
+
|
|
45023
45067
|
this.PointX;
|
|
45024
45068
|
this.PointY;
|
|
45025
45069
|
|
|
@@ -45077,20 +45121,34 @@ function ChartCorssCursor()
|
|
|
45077
45121
|
|
|
45078
45122
|
this.GetMinuteCloseYPoint=function(index)
|
|
45079
45123
|
{
|
|
45080
|
-
if (
|
|
45081
|
-
|
|
45082
|
-
|
|
45083
|
-
|
|
45084
|
-
|
|
45085
|
-
|
|
45086
|
-
|
|
45087
|
-
|
|
45124
|
+
if (this.EnableNewIndex && this.CorssCursorIndex)
|
|
45125
|
+
{
|
|
45126
|
+
if (!this.StringFormatX || !this.StringFormatX.GetMinuteCloseYPoint) return null;
|
|
45127
|
+
|
|
45128
|
+
var closeData=this.StringFormatX.GetMinuteCloseYPoint(this.CorssCursorIndex);
|
|
45129
|
+
if (!closeData) return null;
|
|
45130
|
+
|
|
45131
|
+
this.Close=closeData.Price;
|
|
45132
|
+
return closeData.Y;
|
|
45133
|
+
}
|
|
45134
|
+
else
|
|
45135
|
+
{
|
|
45088
45136
|
|
|
45089
|
-
|
|
45090
|
-
|
|
45091
|
-
|
|
45092
|
-
|
|
45093
|
-
|
|
45137
|
+
if (!IFrameSplitOperator.IsNumber(index)) return null;
|
|
45138
|
+
index=parseInt(index);
|
|
45139
|
+
if (!this.StringFormatX.Data) return null;
|
|
45140
|
+
var data = this.StringFormatX.Data;
|
|
45141
|
+
if (!data.Data || data.Data.length <= 0) return null;
|
|
45142
|
+
var dataIndex = data.DataOffset + index;
|
|
45143
|
+
if (dataIndex >= data.Data.length) dataIndex = data.Data.length - 1;
|
|
45144
|
+
if (dataIndex < 0) return null;
|
|
45145
|
+
|
|
45146
|
+
var close = data.Data[dataIndex];
|
|
45147
|
+
if (!IFrameSplitOperator.IsNumber(index)) return null;
|
|
45148
|
+
this.Close=close;
|
|
45149
|
+
var yPoint = this.Frame.GetYFromData(this.Close);
|
|
45150
|
+
return yPoint;
|
|
45151
|
+
}
|
|
45094
45152
|
}
|
|
45095
45153
|
|
|
45096
45154
|
this.GetDateTimeRange=function(index, option)
|
|
@@ -46757,6 +46815,7 @@ function HQMinuteTimeStringFormat()
|
|
|
46757
46815
|
this.newMethod();
|
|
46758
46816
|
delete this.newMethod;
|
|
46759
46817
|
|
|
46818
|
+
this.ClassName="HQMinuteTimeStringFormat";
|
|
46760
46819
|
this.Frame;
|
|
46761
46820
|
this.Symbol;
|
|
46762
46821
|
this.Point;
|
|
@@ -46888,6 +46947,88 @@ function HQMinuteTimeStringFormat()
|
|
|
46888
46947
|
|
|
46889
46948
|
return true;
|
|
46890
46949
|
}
|
|
46950
|
+
|
|
46951
|
+
this.GetMinuteCloseYPoint=function(cursorIndexData)
|
|
46952
|
+
{
|
|
46953
|
+
var type=cursorIndexData.Type;
|
|
46954
|
+
if (type==1 || type==2 || type==3) //单日 1=主图 2=盘前 3=盘后
|
|
46955
|
+
{
|
|
46956
|
+
if (type==1)
|
|
46957
|
+
{
|
|
46958
|
+
if (!this.Data || this.Data.Data.length <= 0) return null;
|
|
46959
|
+
var index=cursorIndexData.DataIndex;
|
|
46960
|
+
if (index<0 || index>=this.Data.Data.length) index=this.Data.Data.length-1;
|
|
46961
|
+
|
|
46962
|
+
var close = this.Data.Data[index];
|
|
46963
|
+
var yPoint = this.Frame.GetYFromData(close);
|
|
46964
|
+
return { Price:close, Y:yPoint };
|
|
46965
|
+
}
|
|
46966
|
+
else if (type==2)
|
|
46967
|
+
{
|
|
46968
|
+
if (!this.BeforeOpenData || !this.BeforeOpenData.Data) return false;
|
|
46969
|
+
if (cursorIndexData.DataIndex<0 || cursorIndexData.DataIndex>=this.BeforeOpenData.Data.length) return null;
|
|
46970
|
+
var item=this.BeforeOpenData.Data[cursorIndexData.DataIndex];
|
|
46971
|
+
|
|
46972
|
+
var close=item.Price;
|
|
46973
|
+
var yPoint = this.Frame.GetYFromData(close);
|
|
46974
|
+
return { Price:close, Y:yPoint };
|
|
46975
|
+
}
|
|
46976
|
+
else if (type==3)
|
|
46977
|
+
{
|
|
46978
|
+
if (!this.AfterCloseData || !this.AfterCloseData.Data) return false;
|
|
46979
|
+
if (cursorIndexData.DataIndex<0 || cursorIndexData.DataIndex>=this.AfterCloseData.Data.length) return null;
|
|
46980
|
+
var item=this.AfterCloseData.Data[cursorIndexData.DataIndex];
|
|
46981
|
+
|
|
46982
|
+
var close=item.Price;
|
|
46983
|
+
var yPoint = this.Frame.GetYFromData(close);
|
|
46984
|
+
return { Price:close, Y:yPoint };
|
|
46985
|
+
}
|
|
46986
|
+
}
|
|
46987
|
+
else if (type==10 || type==20 || type==30) //多日 10=主图 20=盘前 30=盘后
|
|
46988
|
+
{
|
|
46989
|
+
if (type==10)
|
|
46990
|
+
{
|
|
46991
|
+
if (!this.Data || this.Data.Data.length <= 0) return null;
|
|
46992
|
+
var index=this.Frame.MinuteCount*cursorIndexData.DayIndex+cursorIndexData.DataIndex;
|
|
46993
|
+
if (index<0 || index>=this.Data.Data.length) index=this.Data.Data.length-1;
|
|
46994
|
+
|
|
46995
|
+
var close = this.Data.Data[index];
|
|
46996
|
+
var yPoint = this.Frame.GetYFromData(close);
|
|
46997
|
+
return { Price:close, Y:yPoint };
|
|
46998
|
+
}
|
|
46999
|
+
else if (type==20)
|
|
47000
|
+
{
|
|
47001
|
+
var multiDayBeforeOpenData=this.GetMultiDayBeforeOpenData();
|
|
47002
|
+
if (!multiDayBeforeOpenData) return null;
|
|
47003
|
+
if (cursorIndexData.DayIndex<0 || cursorIndexData.DayIndex>=multiDayBeforeOpenData.length) return null;
|
|
47004
|
+
|
|
47005
|
+
var dayItem=multiDayBeforeOpenData[cursorIndexData.DayIndex];
|
|
47006
|
+
if (cursorIndexData.DataIndex<0 || cursorIndexData.DataIndex>=dayItem.Data.length) return null;
|
|
47007
|
+
var item=dayItem.Data[cursorIndexData.DataIndex];
|
|
47008
|
+
|
|
47009
|
+
var close=item.Price;
|
|
47010
|
+
var yPoint = this.Frame.GetYFromData(close);
|
|
47011
|
+
return { Price:close, Y:yPoint };
|
|
47012
|
+
}
|
|
47013
|
+
else if (type==30)
|
|
47014
|
+
{
|
|
47015
|
+
var multiDayAfterCloseData=this.GetMultiDayAfterCloseData();
|
|
47016
|
+
if (!multiDayAfterCloseData) return null;
|
|
47017
|
+
if (cursorIndexData.DayIndex<0 || cursorIndexData.DayIndex>=multiDayAfterCloseData.length) return null;
|
|
47018
|
+
|
|
47019
|
+
var dayItem=multiDayAfterCloseData[cursorIndexData.DayIndex];
|
|
47020
|
+
if (cursorIndexData.DataIndex<0 || cursorIndexData.DataIndex>=dayItem.Data.length) return null;
|
|
47021
|
+
var item=dayItem.Data[cursorIndexData.DataIndex];
|
|
47022
|
+
|
|
47023
|
+
var close=item.Price;
|
|
47024
|
+
var yPoint = this.Frame.GetYFromData(close);
|
|
47025
|
+
return { Price:close, Y:yPoint };
|
|
47026
|
+
}
|
|
47027
|
+
}
|
|
47028
|
+
|
|
47029
|
+
|
|
47030
|
+
return null;
|
|
47031
|
+
}
|
|
46891
47032
|
}
|
|
46892
47033
|
|
|
46893
47034
|
|
|
@@ -48091,7 +48232,10 @@ function DynamicMinuteTitlePainting()
|
|
|
48091
48232
|
{
|
|
48092
48233
|
if (!data || !data.Data) return;
|
|
48093
48234
|
|
|
48094
|
-
var
|
|
48235
|
+
var upperSymbol=this.Symbol.toUpperCase();
|
|
48236
|
+
var defaultfloatPrecision=GetfloatPrecision(this.Symbol); //价格小数位数
|
|
48237
|
+
var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
|
|
48238
|
+
|
|
48095
48239
|
var item=data.Data;
|
|
48096
48240
|
var isLastOne=data.IsLastOne;
|
|
48097
48241
|
var aryText=[]; //{Color:, Text: }
|
|
@@ -48137,6 +48281,8 @@ function DynamicMinuteTitlePainting()
|
|
|
48137
48281
|
var amount=item.Amount;
|
|
48138
48282
|
var yClose=item.YClose;
|
|
48139
48283
|
if (!IFrameSplitOperator.IsNumber(yClose)) yClose=this.YClose;
|
|
48284
|
+
if (isFutures && IFrameSplitOperator.IsNumber(item.YClearing)) yClose=item.YClearing; //期货使用昨结算
|
|
48285
|
+
|
|
48140
48286
|
|
|
48141
48287
|
if (IFrameSplitOperator.IsNumber(close))
|
|
48142
48288
|
{
|
|
@@ -64293,22 +64439,27 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
64293
64439
|
{
|
|
64294
64440
|
if (!this.WindowIndex[windowIndex]) return;
|
|
64295
64441
|
|
|
64296
|
-
|
|
64442
|
+
var item=this.WindowIndex[windowIndex];
|
|
64443
|
+
if (typeof(item.RequestData)=="function") //数据需要另外下载的.
|
|
64297
64444
|
{
|
|
64298
|
-
|
|
64445
|
+
item.RequestData(this,windowIndex,hisData, option);
|
|
64299
64446
|
return;
|
|
64300
64447
|
}
|
|
64301
|
-
|
|
64448
|
+
|
|
64449
|
+
if (typeof(item.ExecuteScript)=='function')
|
|
64302
64450
|
{
|
|
64303
|
-
|
|
64451
|
+
if (option && option.CheckRunCount)
|
|
64452
|
+
if (item.IsExcessRunCount()) return;
|
|
64453
|
+
|
|
64454
|
+
item.ExecuteScript(this,windowIndex,hisData);
|
|
64304
64455
|
return;
|
|
64305
64456
|
}
|
|
64306
64457
|
|
|
64307
|
-
|
|
64458
|
+
item.BindData(this,windowIndex,hisData);
|
|
64308
64459
|
}
|
|
64309
64460
|
|
|
64310
64461
|
//叠加指标
|
|
64311
|
-
this.BindOverlayIndexData=function(overlayItem, windowIndex, hisData)
|
|
64462
|
+
this.BindOverlayIndexData=function(overlayItem, windowIndex, hisData, option)
|
|
64312
64463
|
{
|
|
64313
64464
|
if (!overlayItem.Script) return;
|
|
64314
64465
|
|
|
@@ -64320,6 +64471,9 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
64320
64471
|
|
|
64321
64472
|
if (typeof(overlayItem.Script.ExecuteScript)=='function')
|
|
64322
64473
|
{
|
|
64474
|
+
if (option && option.CheckRunCount)
|
|
64475
|
+
if (overlayItem.Script.IsExcessRunCount()) return;
|
|
64476
|
+
|
|
64323
64477
|
overlayItem.Script.ExecuteScript(this,windowIndex,hisData);
|
|
64324
64478
|
return;
|
|
64325
64479
|
}
|
|
@@ -64485,7 +64639,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
64485
64639
|
});
|
|
64486
64640
|
}
|
|
64487
64641
|
|
|
64488
|
-
this.BindAllOverlayIndexData=function(hisData)
|
|
64642
|
+
this.BindAllOverlayIndexData=function(hisData, option)
|
|
64489
64643
|
{
|
|
64490
64644
|
if (!this.Frame || !this.Frame.SubFrame) return;
|
|
64491
64645
|
|
|
@@ -64496,7 +64650,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
64496
64650
|
for(var j in item.OverlayIndex)
|
|
64497
64651
|
{
|
|
64498
64652
|
var overlayItem=item.OverlayIndex[j];
|
|
64499
|
-
this.BindOverlayIndexData(overlayItem,i,hisData)
|
|
64653
|
+
this.BindOverlayIndexData(overlayItem,i,hisData,option)
|
|
64500
64654
|
}
|
|
64501
64655
|
}
|
|
64502
64656
|
}
|
|
@@ -65179,7 +65333,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
65179
65333
|
|
|
65180
65334
|
for(var i=0; i<this.Frame.SubFrame.length; ++i)
|
|
65181
65335
|
{
|
|
65182
|
-
this.BindIndexData(i,bindData);
|
|
65336
|
+
this.BindIndexData(i,bindData, { CheckRunCount:true });
|
|
65183
65337
|
}
|
|
65184
65338
|
|
|
65185
65339
|
//刷新画图
|
|
@@ -65192,7 +65346,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
65192
65346
|
this.SendKLineUpdateEvent(bindData);
|
|
65193
65347
|
|
|
65194
65348
|
//叠加指标计算
|
|
65195
|
-
this.BindAllOverlayIndexData(bindData);
|
|
65349
|
+
this.BindAllOverlayIndexData(bindData,{ CheckRunCount:true });
|
|
65196
65350
|
|
|
65197
65351
|
if (this.mapEvent.has(JSCHART_EVENT_ID.ON_RECV_REALTIME_DATA))
|
|
65198
65352
|
{
|
|
@@ -65917,6 +66071,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
65917
66071
|
this.ClearRectSelect(true);
|
|
65918
66072
|
this.Frame.ClearUpDonwFrameYData();
|
|
65919
66073
|
this.ClearCustomKLine();
|
|
66074
|
+
|
|
65920
66075
|
|
|
65921
66076
|
var kLineDrawType=this.GetKLineDrawType();
|
|
65922
66077
|
if (kLineDrawType==10 || kLineDrawType==11 || kLineDrawType==12 || kLineDrawType==16) isDataTypeChange=true;
|
|
@@ -65938,6 +66093,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
65938
66093
|
|
|
65939
66094
|
if (isDataTypeChange==false && !this.IsApiPeriod)
|
|
65940
66095
|
{
|
|
66096
|
+
this.ClearIndexRunCount();
|
|
65941
66097
|
this.Update( {UpdateCursorIndexType:2} ); //更新的时候 取消显示十字光标
|
|
65942
66098
|
return;
|
|
65943
66099
|
}
|
|
@@ -65950,6 +66106,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
65950
66106
|
this.AutoUpdateEvent(false,'KLineChartContainer::ChangePeriod'); //切换周期先停止更新
|
|
65951
66107
|
this.ResetScrollBar();
|
|
65952
66108
|
this.ResetOverlaySymbolStatus();
|
|
66109
|
+
this.ClearIndexRunCount();
|
|
65953
66110
|
this.RequestHistoryData(); //请求日线数据
|
|
65954
66111
|
//this.ReqeustKLineInfoData();
|
|
65955
66112
|
}
|
|
@@ -65959,6 +66116,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
65959
66116
|
this.AutoUpdateEvent(false,'KLineChartContainer::ChangePeriod'); //切换周期先停止更新
|
|
65960
66117
|
this.ResetScrollBar();
|
|
65961
66118
|
this.ResetOverlaySymbolStatus();
|
|
66119
|
+
this.ClearIndexRunCount();
|
|
65962
66120
|
this.ReqeustHistoryMinuteData(); //请求分钟数据
|
|
65963
66121
|
}
|
|
65964
66122
|
else if (ChartData.IsTickPeriod(this.Period))
|
|
@@ -65966,6 +66124,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
65966
66124
|
this.CancelAutoUpdate(); //先停止定时器
|
|
65967
66125
|
this.AutoUpdateEvent(false,'KLineChartContainer::ChangePeriod');
|
|
65968
66126
|
this.ResetScrollBar();
|
|
66127
|
+
this.ClearIndexRunCount();
|
|
65969
66128
|
this.RequestTickData(); //请求分笔数据
|
|
65970
66129
|
}
|
|
65971
66130
|
}
|
|
@@ -67266,6 +67425,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
67266
67425
|
this.ClearKLineCaluate();
|
|
67267
67426
|
this.HideTooltip();
|
|
67268
67427
|
this.ResetScrollBar();
|
|
67428
|
+
this.ClearIndexRunCount();
|
|
67269
67429
|
|
|
67270
67430
|
this.Symbol=symbol;
|
|
67271
67431
|
if (!symbol)
|
|
@@ -72363,6 +72523,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
72363
72523
|
this.ClearIndexPaint(); //清空指标
|
|
72364
72524
|
this.ResetOverlaySymbolStatus();
|
|
72365
72525
|
this.ReloadChartDrawPicture();
|
|
72526
|
+
this.ClearIndexRunCount();
|
|
72366
72527
|
|
|
72367
72528
|
if (option)
|
|
72368
72529
|
{
|
|
@@ -73751,7 +73912,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
73751
73912
|
}
|
|
73752
73913
|
}
|
|
73753
73914
|
|
|
73754
|
-
this.BindIndexData=function(windowIndex,hisData)
|
|
73915
|
+
this.BindIndexData=function(windowIndex, hisData, option)
|
|
73755
73916
|
{
|
|
73756
73917
|
if (!this.WindowIndex[windowIndex]) return;
|
|
73757
73918
|
|
|
@@ -74196,7 +74357,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
74196
74357
|
}
|
|
74197
74358
|
|
|
74198
74359
|
//计算叠加指标
|
|
74199
|
-
this.BindAllOverlayIndexData=function(hisData)
|
|
74360
|
+
this.BindAllOverlayIndexData=function(hisData, option)
|
|
74200
74361
|
{
|
|
74201
74362
|
if (!this.Frame || !this.Frame.SubFrame) return;
|
|
74202
74363
|
|
|
@@ -74207,13 +74368,13 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
74207
74368
|
for(var j in item.OverlayIndex)
|
|
74208
74369
|
{
|
|
74209
74370
|
var overlayItem=item.OverlayIndex[j];
|
|
74210
|
-
this.BindOverlayIndexData(overlayItem,i,hisData)
|
|
74371
|
+
this.BindOverlayIndexData(overlayItem,i,hisData,option)
|
|
74211
74372
|
}
|
|
74212
74373
|
}
|
|
74213
74374
|
}
|
|
74214
74375
|
|
|
74215
74376
|
//叠加指标
|
|
74216
|
-
this.BindOverlayIndexData=function(overlayItem, windowIndex, hisData)
|
|
74377
|
+
this.BindOverlayIndexData=function(overlayItem, windowIndex, hisData, option)
|
|
74217
74378
|
{
|
|
74218
74379
|
if (!overlayItem.Script) return;
|
|
74219
74380
|
|
|
@@ -74944,7 +75105,9 @@ MinuteChartContainer.JsonDataToMinuteData=function(data,isBeforeData)
|
|
|
74944
75105
|
var preClose=data.stock[0].yclose; //前一个数据价格
|
|
74945
75106
|
var preAvPrice=data.stock[0].yclose; //前一个均价
|
|
74946
75107
|
var yClose=data.stock[0].yclose;
|
|
74947
|
-
|
|
75108
|
+
var yClearing=data.stock[0].yclearing;
|
|
75109
|
+
|
|
75110
|
+
if (isFutures && yClearing) preClose=preAvPrice=yClearing; //期货使用昨结算价
|
|
74948
75111
|
|
|
74949
75112
|
if (!IFrameSplitOperator.IsNonEmptyArray(data.stock[0].minute)) return aryMinuteData;
|
|
74950
75113
|
|
|
@@ -74953,7 +75116,7 @@ MinuteChartContainer.JsonDataToMinuteData=function(data,isBeforeData)
|
|
|
74953
75116
|
{
|
|
74954
75117
|
var jsData=data.stock[0].minute[i];
|
|
74955
75118
|
var item=new MinuteData();
|
|
74956
|
-
|
|
75119
|
+
item.YClearing=yClearing;
|
|
74957
75120
|
item.YClose=yClose;
|
|
74958
75121
|
item.Close=jsData.price;
|
|
74959
75122
|
item.Open=jsData.open;
|
|
@@ -74984,24 +75147,11 @@ MinuteChartContainer.JsonDataToMinuteData=function(data,isBeforeData)
|
|
|
74984
75147
|
|
|
74985
75148
|
if (!item.AvPrice) item.AvPrice=preAvPrice;
|
|
74986
75149
|
|
|
74987
|
-
//价格是0的 都用空
|
|
74988
|
-
//if (item.Open<=0) item.Open=null;
|
|
74989
|
-
//if (item.Close<=0) item.Close=null;
|
|
74990
|
-
//if (item.AvPrice<=0) item.AvPrice=null;
|
|
74991
|
-
//if (item.High<=0) item.High=null;
|
|
74992
|
-
//if (item.Low<=0) item.Low=null;
|
|
74993
|
-
|
|
74994
|
-
//if (isFutures) item.AvPrice=null; //期货均价暂时没有
|
|
74995
|
-
|
|
74996
75150
|
if (yClose && item.Close)
|
|
74997
75151
|
item.Increase=(item.Close-yClose)/yClose*100; //涨幅 (最新价格-昨收)/昨收*100;
|
|
74998
75152
|
|
|
74999
|
-
|
|
75000
|
-
|
|
75001
|
-
var checkValue=Math.abs(item.AvPrice-item.Close);
|
|
75002
|
-
//JSConsole.Chart.Log(`[MinuteChartContainer::JsonDataToMinuteData] checkValue=${checkValue}, ${item.Close*0.13} `)
|
|
75003
|
-
if (isSHSZ && checkValue>item.Close*0.13 )
|
|
75004
|
-
item.AvPrice=preAvPrice;
|
|
75153
|
+
if (isFutures && yClearing && item.Close)
|
|
75154
|
+
item.Increase=(item.Close-yClearing)/yClearing*100; //涨幅 (最新价格-昨结算价)/昨结算价*100;
|
|
75005
75155
|
|
|
75006
75156
|
//上次价格
|
|
75007
75157
|
if (IFrameSplitOperator.IsNumber(jsData.price)) preClose=jsData.price;
|
|
@@ -75115,7 +75265,7 @@ MinuteChartContainer.JsonDataToMinuteDataArray=function(data)
|
|
|
75115
75265
|
var symbol=data.symbol;
|
|
75116
75266
|
var upperSymbol=symbol.toUpperCase();
|
|
75117
75267
|
var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);
|
|
75118
|
-
var isSHO=MARKET_SUFFIX_NAME.IsSHO(upperSymbol);
|
|
75268
|
+
var isSHO=MARKET_SUFFIX_NAME.IsSHO(upperSymbol); //上海股票期权
|
|
75119
75269
|
var isSZO=MARKET_SUFFIX_NAME.IsSZO(upperSymbol); //深证股票期权
|
|
75120
75270
|
var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
|
|
75121
75271
|
var result=[];
|
|
@@ -75125,22 +75275,25 @@ MinuteChartContainer.JsonDataToMinuteDataArray=function(data)
|
|
|
75125
75275
|
var minuteData=[];
|
|
75126
75276
|
var dayData=data.data[i];
|
|
75127
75277
|
var date=dayData.date;
|
|
75278
|
+
var yClearing=dayData.yclearing; //昨结算价
|
|
75128
75279
|
var yClose=dayData.yclose; //前收盘 计算涨幅
|
|
75129
75280
|
var preClose=yClose; //前一个数据价格
|
|
75130
75281
|
var preAvPrice=null; //上一个均价
|
|
75131
|
-
var yClearing=dayData.yclearing; //昨结算价
|
|
75132
75282
|
|
|
75133
|
-
|
|
75283
|
+
if (isFutures && yClearing) preClose=preAvPrice=yClearing; //期货使用昨结算价
|
|
75284
|
+
|
|
75134
75285
|
for(var j in dayData.minute)
|
|
75135
75286
|
{
|
|
75136
75287
|
var jsData=dayData.minute[j];
|
|
75137
75288
|
if (jsData[2]) preClose=jsData[2]; //保存上一个收盘数据
|
|
75138
75289
|
var item=new MinuteData();
|
|
75290
|
+
item.YClearing=yClearing;
|
|
75139
75291
|
item.YClose=yClose;
|
|
75140
75292
|
item.Close=jsData[2];
|
|
75141
75293
|
item.Open=jsData[1];
|
|
75142
75294
|
item.High=jsData[3];
|
|
75143
75295
|
item.Low=jsData[4];
|
|
75296
|
+
item.Increase=null;
|
|
75144
75297
|
if (isSHSZ) item.Vol=jsData[5]/100; //原始单位股
|
|
75145
75298
|
else item.Vol=jsData[5];
|
|
75146
75299
|
item.Amount=jsData[6];
|
|
@@ -75163,23 +75316,12 @@ MinuteChartContainer.JsonDataToMinuteDataArray=function(data)
|
|
|
75163
75316
|
|
|
75164
75317
|
if (!item.AvPrice && preAvPrice) item.AvPrice=preAvPrice;
|
|
75165
75318
|
|
|
75166
|
-
if (item.Close && yClose)
|
|
75167
|
-
|
|
75168
|
-
|
|
75169
|
-
//价格是0的 都用空
|
|
75170
|
-
//if (item.Open<=0) item.Open=null;
|
|
75171
|
-
//if (item.Close<=0) item.Close=null;
|
|
75172
|
-
//if (item.AvPrice<=0) item.AvPrice=null;
|
|
75173
|
-
//if (item.High<=0) item.High=null;
|
|
75174
|
-
//if (item.Low<=0) item.Low=null;
|
|
75175
|
-
//if (item.AvPrice<=0) item.AvPrice=null;
|
|
75319
|
+
if (item.Close && yClose)
|
|
75320
|
+
item.Increase = (item.Close - yClose)/yClose*100;
|
|
75176
75321
|
|
|
75177
|
-
|
|
75178
|
-
|
|
75179
|
-
|
|
75180
|
-
var checkValue=Math.abs(item.AvPrice-item.Close);
|
|
75181
|
-
if (checkValue>item.Close*0.13 ) item.AvPrice=preAvPrice;
|
|
75182
|
-
}
|
|
75322
|
+
if (item.Close && yClearing && isFutures)
|
|
75323
|
+
item.Increase = (item.Close - yClearing)/yClearing*100;
|
|
75324
|
+
|
|
75183
75325
|
|
|
75184
75326
|
if (jsData.length>7 && jsData[7]>0 && item.AvPrice===jsData[7]) preAvPrice=jsData[7];
|
|
75185
75327
|
if (jsData[extendDataIndex]) item.ExtendData=jsData[extendDataIndex];
|
|
@@ -75190,9 +75332,9 @@ MinuteChartContainer.JsonDataToMinuteDataArray=function(data)
|
|
|
75190
75332
|
var newData=new ChartData();
|
|
75191
75333
|
newData.Data=minuteData;
|
|
75192
75334
|
newData.YClose=yClose;
|
|
75335
|
+
if (IFrameSplitOperator.IsNumber(yClearing)) newData.YClearing=yClearing;
|
|
75193
75336
|
newData.Close=dayData.close;
|
|
75194
75337
|
newData.Date=date;
|
|
75195
|
-
if (IFrameSplitOperator.IsNumber(yClearing)) newData.YClearing=yClearing;
|
|
75196
75338
|
|
|
75197
75339
|
result.push(newData);
|
|
75198
75340
|
}
|
|
@@ -75241,6 +75383,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
75241
75383
|
|
|
75242
75384
|
var date=callAuctionData.Date;
|
|
75243
75385
|
var yClose=callAuctionData.YClose;
|
|
75386
|
+
var yClearing=callAuctionData.YClearing;
|
|
75244
75387
|
var extendDataIndex=isBeforeOpen? JSCHART_DATA_FIELD_ID.MINUTE_BEFOREOPEN_EXTENDDATA:JSCHART_DATA_FIELD_ID.MINUTE_AFTERCLOSE_EXTENDDATA; //扩展数据序号
|
|
75245
75388
|
if (callAuctionData.Ver==1.0)
|
|
75246
75389
|
{
|
|
@@ -75250,6 +75393,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
75250
75393
|
var item=isBeforeOpen? new BeforeOpenData() : new AfterCloseData();
|
|
75251
75394
|
var jsData=data[i];
|
|
75252
75395
|
item.YClose=yClose;
|
|
75396
|
+
item.YClearing=yClearing;
|
|
75253
75397
|
item.Time=jsData[0];
|
|
75254
75398
|
item.Date=date;
|
|
75255
75399
|
item.Price=jsData[1];
|
|
@@ -75273,6 +75417,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
75273
75417
|
var item=isBeforeOpen? new BeforeOpenData() : new AfterCloseData();
|
|
75274
75418
|
var jsData=data[i];
|
|
75275
75419
|
item.YClose=yClose;
|
|
75420
|
+
item.YClearing=yClearing;
|
|
75276
75421
|
item.Time=jsData[0];
|
|
75277
75422
|
item.Date=date;
|
|
75278
75423
|
item.Price=jsData[1];
|
|
@@ -75300,6 +75445,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
75300
75445
|
var item=isBeforeOpen? new BeforeOpenData() : new AfterCloseData();
|
|
75301
75446
|
var jsData=data[i];
|
|
75302
75447
|
item.YClose=yClose;
|
|
75448
|
+
item.YClearing=yClearing;
|
|
75303
75449
|
item.Time=jsData[0];
|
|
75304
75450
|
item.Date=date;
|
|
75305
75451
|
item.Price=jsData[1];
|
|
@@ -75329,7 +75475,7 @@ MinuteChartContainer.JosnDataToBeforeOpenDataArray=function(data)
|
|
|
75329
75475
|
for(var i in data.data)
|
|
75330
75476
|
{
|
|
75331
75477
|
var dayItem=data.data[i];
|
|
75332
|
-
var beforeOpenData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose };
|
|
75478
|
+
var beforeOpenData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose, YClearing:dayItem.YClearing };
|
|
75333
75479
|
if (dayItem.beforeinfo)
|
|
75334
75480
|
{
|
|
75335
75481
|
if (IFrameSplitOperator.IsNumber(dayItem.beforeinfo.totalcount)) beforeOpenData.TotalCount=dayItem.beforeinfo.totalcount;
|
|
@@ -75354,7 +75500,7 @@ MinuteChartContainer.JosnDataToAfterCloseDataArray=function(data)
|
|
|
75354
75500
|
for(var i in data.data)
|
|
75355
75501
|
{
|
|
75356
75502
|
var dayItem=data.data[i];
|
|
75357
|
-
var afterCloseData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose };
|
|
75503
|
+
var afterCloseData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose, YClearing:dayItem.YClearing };
|
|
75358
75504
|
|
|
75359
75505
|
if (dayItem.afterinfo)
|
|
75360
75506
|
{
|
|
@@ -84473,6 +84619,8 @@ var MARKET_SUFFIX_NAME=
|
|
|
84473
84619
|
|
|
84474
84620
|
IsFutures:function(upperSymbol) //是否是期货 包含国外的
|
|
84475
84621
|
{
|
|
84622
|
+
if (!upperSymbol) return false;
|
|
84623
|
+
|
|
84476
84624
|
return this.IsChinaFutures(upperSymbol) ||
|
|
84477
84625
|
this.IsNYMEX(upperSymbol) || this.IsCOMEX(upperSymbol) || this.IsNYBOT(upperSymbol) || this.IsCBOT(upperSymbol) ||
|
|
84478
84626
|
this.IsLME(upperSymbol) || this.IsTOCOM(upperSymbol);
|