hqchart 1.1.15360 → 1.1.15368
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.vue.js +27 -19
- package/package.json +1 -1
- package/src/jscommon/umychart.NetworkFilterTest.js +63 -2
- package/src/jscommon/umychart.complier.js +47 -7
- package/src/jscommon/umychart.js +46 -27
- package/src/jscommon/umychart.report.js +2 -2
- package/src/jscommon/umychart.testdata.js +63 -2
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +96 -37
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.NetworkFilterTest.vue.js +63 -2
- package/src/jscommon/umychart.vue/umychart.vue.js +96 -37
package/src/jscommon/umychart.js
CHANGED
|
@@ -3053,6 +3053,7 @@ var JSCHART_DATA_FIELD_ID=
|
|
|
3053
3053
|
KLINE_COLOR_DATA:66, //K线自定义颜色数据
|
|
3054
3054
|
KLINE_DAY_EXTENDDATA:25,
|
|
3055
3055
|
KLINE_MINUTE_EXTENDDATA:25,
|
|
3056
|
+
KLINE_TICK_EXTENDDATA:25,
|
|
3056
3057
|
|
|
3057
3058
|
//OrderBook Heatmap
|
|
3058
3059
|
KLINE_HEATMAP:67,
|
|
@@ -7671,6 +7672,23 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
7671
7672
|
this.LastPoint.FrameID=frameID;
|
|
7672
7673
|
if (IFrameSplitOperator.IsNumber(frameID) && frameID>=0) //在K线内部移动,调整K线索引
|
|
7673
7674
|
this.CursorIndex=this.Frame.GetXData(x);
|
|
7675
|
+
|
|
7676
|
+
if (this.TryMouseMoveChartTooltipData)
|
|
7677
|
+
{
|
|
7678
|
+
//DrawDynamic:{ Enable, Option: }
|
|
7679
|
+
var data={ e:e, X:x, Y:y, Draw:false, DrawDynamic:null, PreventDefault:false, MouseStatus:null };
|
|
7680
|
+
this.TryMouseMoveChartTooltipData(data, this);
|
|
7681
|
+
|
|
7682
|
+
if (data.MouseStatus) mouseStatus=data.MouseStatus;
|
|
7683
|
+
|
|
7684
|
+
if (data.PreventDefault)
|
|
7685
|
+
{
|
|
7686
|
+
if (data.Draw) this.Draw();
|
|
7687
|
+
if (data.DrawDynamic && data.DrawDynamic.Enable) this.DrawDynamicInfo(data.DrawDynamic.Option);
|
|
7688
|
+
this.SetCursor(mouseStatus);
|
|
7689
|
+
return;
|
|
7690
|
+
}
|
|
7691
|
+
}
|
|
7674
7692
|
|
|
7675
7693
|
|
|
7676
7694
|
if (this.EnableBorderDrag && this.Frame && !this.CurrentChartDrawPicture)
|
|
@@ -34879,7 +34897,7 @@ function ChartKLineTable()
|
|
|
34879
34897
|
}
|
|
34880
34898
|
}
|
|
34881
34899
|
|
|
34882
|
-
if (rtBG.Width>5)
|
|
34900
|
+
//if (rtBG.Width>5)
|
|
34883
34901
|
{
|
|
34884
34902
|
this.AryCellRect.push({ Item:{ Cell:item, Colunm:data, RowIndex:i, SubCell:subItem, SubIndex:j, Tooltip:subItem.Tooltip, Type:2 }, Rect:rtSubBG });
|
|
34885
34903
|
}
|
|
@@ -34920,7 +34938,7 @@ function ChartKLineTable()
|
|
|
34920
34938
|
}
|
|
34921
34939
|
}
|
|
34922
34940
|
|
|
34923
|
-
if (rtBG.Width>5)
|
|
34941
|
+
//if (rtBG.Width>5)
|
|
34924
34942
|
{
|
|
34925
34943
|
this.AryCellRect.push({ Item:{ Cell:item, Colunm:data, RowIndex:i, Tooltip:item.Tooltip, Type:1 }, Rect:rtBG });
|
|
34926
34944
|
}
|
|
@@ -86159,14 +86177,26 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
86159
86177
|
{
|
|
86160
86178
|
var self=this;
|
|
86161
86179
|
var start=0;
|
|
86162
|
-
|
|
86180
|
+
var hisData=this.GetKData();
|
|
86181
|
+
var dateRange=hisData.GetDateRange();
|
|
86182
|
+
|
|
86163
86183
|
if (this.NetworkFilter)
|
|
86164
86184
|
{
|
|
86185
|
+
var kLineDrawType=this.GetKLineDrawType();
|
|
86165
86186
|
var obj=
|
|
86166
86187
|
{
|
|
86167
86188
|
Name:'KLineChartContainer::RequestTickRealtimeData', //类名::
|
|
86168
86189
|
Explain:'当天最新分笔数据',
|
|
86169
|
-
Request:
|
|
86190
|
+
Request:
|
|
86191
|
+
{
|
|
86192
|
+
Url:self.TickApiUrl,
|
|
86193
|
+
Data:
|
|
86194
|
+
{
|
|
86195
|
+
symbol:self.Symbol, period:this.Period, right:this.Right,
|
|
86196
|
+
dateRange:dateRange, klineDrawType:kLineDrawType
|
|
86197
|
+
},
|
|
86198
|
+
Type:'POST'
|
|
86199
|
+
},
|
|
86170
86200
|
Self:this,
|
|
86171
86201
|
PreventDefault:false
|
|
86172
86202
|
};
|
|
@@ -86179,29 +86209,14 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
86179
86209
|
|
|
86180
86210
|
if (obj.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
|
|
86181
86211
|
}
|
|
86182
|
-
|
|
86183
|
-
JSNetwork.HttpRequest({
|
|
86184
|
-
url: self.TickApiUrl,
|
|
86185
|
-
data:{"symbol":self.Symbol, start:start-10, end:start+1000 },
|
|
86186
|
-
type:"post",
|
|
86187
|
-
dataType: "json",
|
|
86188
|
-
async:true,
|
|
86189
|
-
success: function (data)
|
|
86190
|
-
{
|
|
86191
|
-
self.ChartSplashPaint.EnableSplash(false);
|
|
86192
|
-
self.RecvTickRealtimeData(data);
|
|
86193
|
-
self.AutoUpdate();
|
|
86194
|
-
}
|
|
86195
|
-
});
|
|
86196
86212
|
}
|
|
86197
86213
|
|
|
86198
86214
|
this.RecvTickRealtimeData=function(data)
|
|
86199
86215
|
{
|
|
86200
|
-
|
|
86201
|
-
|
|
86202
|
-
else
|
|
86203
|
-
|
|
86204
|
-
if (!aryDayData || aryDayData.length<=0) return;
|
|
86216
|
+
var aryDayData=null;
|
|
86217
|
+
if (data.ver==2.0) aryDayData=KLineChartContainer.JsonDataToTickDataV2(data); //增量数据
|
|
86218
|
+
else aryDayData=KLineChartContainer.JsonDataToTickData(data); //增量数据
|
|
86219
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(aryDayData)) return;
|
|
86205
86220
|
|
|
86206
86221
|
var redraw=false; //强制重绘
|
|
86207
86222
|
if (data.redraw==true) redraw=true;
|
|
@@ -86211,7 +86226,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
86211
86226
|
var lastTime=0;
|
|
86212
86227
|
if (source.length>0) lastTime=source[source.length-1].Time;
|
|
86213
86228
|
var newCount=0;
|
|
86214
|
-
for(var i
|
|
86229
|
+
for(var i=0; i<aryDayData.length; ++i)
|
|
86215
86230
|
{
|
|
86216
86231
|
var item=aryDayData[i];
|
|
86217
86232
|
if (item.Time<=lastTime) continue;
|
|
@@ -91196,20 +91211,24 @@ KLineChartContainer.JsonDataToTickDataV2=function(data)
|
|
|
91196
91211
|
{
|
|
91197
91212
|
var aryDayData=[];
|
|
91198
91213
|
if (!IFrameSplitOperator.IsNonEmptyArray(data.data)) return aryDayData;
|
|
91199
|
-
|
|
91214
|
+
var extendDataIndex=JSCHART_DATA_FIELD_ID.KLINE_TICK_EXTENDDATA;
|
|
91200
91215
|
for(var i=0;i<data.data.length;++i)
|
|
91201
91216
|
{
|
|
91202
91217
|
var item = new HistoryData();
|
|
91203
|
-
var tick=data.data[i]; //[ date, time, yClose, price,
|
|
91218
|
+
var tick=data.data[i]; //[ date, time, yClose, price, vol, amount, flag,]
|
|
91204
91219
|
if (!tick) continue;
|
|
91205
91220
|
|
|
91206
91221
|
item.Date = tick[0];
|
|
91207
91222
|
item.Time=tick[1];
|
|
91208
91223
|
item.YClose = tick[2];
|
|
91209
91224
|
item.Low=item.High=item.Close=item.Open = tick[3];
|
|
91225
|
+
item.Vol = tick[4]; //原始单位股
|
|
91226
|
+
item.Amount = tick[5];
|
|
91227
|
+
item.Flag=tick[6];
|
|
91228
|
+
|
|
91210
91229
|
aryDayData.push(item);
|
|
91211
91230
|
|
|
91212
|
-
if (tick[
|
|
91231
|
+
if (tick[extendDataIndex]) item.ExtendData=tick[extendDataIndex];
|
|
91213
91232
|
}
|
|
91214
91233
|
|
|
91215
91234
|
return aryDayData;
|
|
@@ -8036,7 +8036,7 @@ function ChartReport()
|
|
|
8036
8036
|
|
|
8037
8037
|
this.FormaTimeDrawInfo=function(column, stock, drawInfo, data)
|
|
8038
8038
|
{
|
|
8039
|
-
if (!IFrameSplitOperator.IsNumber(stock.Time)) return;
|
|
8039
|
+
if (!stock || !IFrameSplitOperator.IsNumber(stock.Time)) return;
|
|
8040
8040
|
|
|
8041
8041
|
if (column.ValueType==0) //0=hhmm 1=hhmmss 2=hhmmss.fff
|
|
8042
8042
|
{
|
|
@@ -8054,7 +8054,7 @@ function ChartReport()
|
|
|
8054
8054
|
|
|
8055
8055
|
this.FormaDateDrawInfo=function(column, stock, drawInfo, data)
|
|
8056
8056
|
{
|
|
8057
|
-
if (!IFrameSplitOperator.IsNumber(stock.Date)) return;
|
|
8057
|
+
if (!stock || !IFrameSplitOperator.IsNumber(stock.Date)) return;
|
|
8058
8058
|
|
|
8059
8059
|
if (column.FormatType==0)
|
|
8060
8060
|
drawInfo.Text=IFrameSplitOperator.FormatDateString(stock.Date,"YYYY-MM-DD");
|
|
@@ -62,6 +62,15 @@ HQData.NetworkFilter=function(data, callback)
|
|
|
62
62
|
HQData.RequestMinuteRealtimeData(data,callback);
|
|
63
63
|
break;
|
|
64
64
|
|
|
65
|
+
case "KLineChartContainer::RequestTickData":
|
|
66
|
+
//HQChart使用教程30-K线图如何对接第3方数据5-逐笔数据
|
|
67
|
+
HQData.RequestKLineTickData(data,callback);
|
|
68
|
+
break;
|
|
69
|
+
case "KLineChartContainer::RequestTickRealtimeData":
|
|
70
|
+
//HQChart使用教程30-K线图如何对接第3方数据16-轮询增量更新逐笔数据
|
|
71
|
+
HQData.RequestTickRealtimeData(data,callback);
|
|
72
|
+
break;
|
|
73
|
+
|
|
65
74
|
case "JSSymbolData::GetVariantData": //额外的变量数据
|
|
66
75
|
//HQChart使用教程30-K线图如何对接第3方数据29-板块字符串函数数据[GNBLOCK,GNBLOCKNUM......]
|
|
67
76
|
HQData.RequestIndexVariantData(data,callback);
|
|
@@ -1230,6 +1239,50 @@ HQData.RequestMinuteRealtimeData=function(data,callback)
|
|
|
1230
1239
|
}
|
|
1231
1240
|
|
|
1232
1241
|
|
|
1242
|
+
HQData.RequestKLineTickData=function(data,callback)
|
|
1243
|
+
{
|
|
1244
|
+
data.PreventDefault=true;
|
|
1245
|
+
var symbol=data.Request.Data.symbol;
|
|
1246
|
+
console.log(`[HQData::RequestKLineTickData] Symbol=${symbol}`);
|
|
1247
|
+
|
|
1248
|
+
var hqchartData={ code:0, symbol:symbol, name:symbol, data:[], ver:2.0 };
|
|
1249
|
+
for(var i=0;i<MSECOND_TEST_DATA.data.length-100;++i)
|
|
1250
|
+
{
|
|
1251
|
+
var item=MSECOND_TEST_DATA.data[i];
|
|
1252
|
+
var flag=HQData.GetRandomTestData(1,10)%3;
|
|
1253
|
+
var kItem=[item[0], parseInt(item[8]/1000), item[1], item[5], item[6]*1000, item[7], flag ];
|
|
1254
|
+
hqchartData.data.push(kItem);
|
|
1255
|
+
}
|
|
1256
|
+
|
|
1257
|
+
callback(hqchartData);
|
|
1258
|
+
}
|
|
1259
|
+
|
|
1260
|
+
HQData.RequestTickRealtimeData=function(data,callback)
|
|
1261
|
+
{
|
|
1262
|
+
data.PreventDefault=true;
|
|
1263
|
+
var symbol=data.Request.Data.symbol; //请求的股票代码
|
|
1264
|
+
var dateRange=data.Request.Data.dateRange;
|
|
1265
|
+
var endTime=dateRange.End.Time;
|
|
1266
|
+
var endDate=dateRange.End.Date;
|
|
1267
|
+
|
|
1268
|
+
var hqchartData={ code:0, symbol:symbol, name:symbol, data:[], ver:2.0 };
|
|
1269
|
+
for(var i=0;i<MSECOND_TEST_DATA.data.length;++i)
|
|
1270
|
+
{
|
|
1271
|
+
var item=MSECOND_TEST_DATA.data[i];
|
|
1272
|
+
var time=parseInt(item[8]/1000);
|
|
1273
|
+
if (time>endTime)
|
|
1274
|
+
{
|
|
1275
|
+
var flag=HQData.GetRandomTestData(1,10)%3;
|
|
1276
|
+
var kItem=[item[0], time, item[1], item[5], item[6]*1000, item[7], flag ];
|
|
1277
|
+
hqchartData.data.push(kItem);
|
|
1278
|
+
break;
|
|
1279
|
+
}
|
|
1280
|
+
}
|
|
1281
|
+
|
|
1282
|
+
callback(hqchartData);
|
|
1283
|
+
}
|
|
1284
|
+
|
|
1285
|
+
|
|
1233
1286
|
HQData.RequestIndexVariantData=function(data,callback)
|
|
1234
1287
|
{
|
|
1235
1288
|
data.PreventDefault=true;
|
|
@@ -3897,7 +3950,13 @@ HQData.APIIndex_KLINE_TABLE=function(data, callback)
|
|
|
3897
3950
|
DrawType:'KLINE_TABLE',
|
|
3898
3951
|
DrawData:[ ] , //数据 [ [ { Text, Color: BGColor }, ...... ], [],]
|
|
3899
3952
|
RowCount:4,
|
|
3900
|
-
RowName:
|
|
3953
|
+
RowName:
|
|
3954
|
+
[
|
|
3955
|
+
{Name:"账户[*9993]",TextAlign:"center", Color:"rgb(124, 252, 0)"},
|
|
3956
|
+
{Name:"账户[*8881]",TextAlign:"center", Color:"rgb(238, 99, 9)", BGColor:"rgb(100,0,200)" },
|
|
3957
|
+
{Name:"账户3",TextAlign:"center"},
|
|
3958
|
+
{Name:"账户4", TextAlign:"center"}
|
|
3959
|
+
],
|
|
3901
3960
|
|
|
3902
3961
|
Config:
|
|
3903
3962
|
{
|
|
@@ -3908,7 +3967,9 @@ HQData.APIIndex_KLINE_TABLE=function(data, callback)
|
|
|
3908
3967
|
RowNamePosition:3,
|
|
3909
3968
|
TextFont:{ Family:'微软雅黑' , FontMaxSize:14*GetDevicePixelRatio(), },
|
|
3910
3969
|
RowHeightType:0,
|
|
3911
|
-
Style:1
|
|
3970
|
+
Style:1,
|
|
3971
|
+
|
|
3972
|
+
AryBorderColor:[null, "rgb(100,20,200)", "rgb(200,0,100)"]
|
|
3912
3973
|
}
|
|
3913
3974
|
},
|
|
3914
3975
|
|
|
@@ -7149,6 +7149,7 @@ var JSCHART_DATA_FIELD_ID=
|
|
|
7149
7149
|
KLINE_COLOR_DATA:66, //K线自定义颜色数据
|
|
7150
7150
|
KLINE_DAY_EXTENDDATA:25,
|
|
7151
7151
|
KLINE_MINUTE_EXTENDDATA:25,
|
|
7152
|
+
KLINE_TICK_EXTENDDATA:25,
|
|
7152
7153
|
|
|
7153
7154
|
//OrderBook Heatmap
|
|
7154
7155
|
KLINE_HEATMAP:67,
|
|
@@ -11767,6 +11768,23 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
11767
11768
|
this.LastPoint.FrameID=frameID;
|
|
11768
11769
|
if (IFrameSplitOperator.IsNumber(frameID) && frameID>=0) //在K线内部移动,调整K线索引
|
|
11769
11770
|
this.CursorIndex=this.Frame.GetXData(x);
|
|
11771
|
+
|
|
11772
|
+
if (this.TryMouseMoveChartTooltipData)
|
|
11773
|
+
{
|
|
11774
|
+
//DrawDynamic:{ Enable, Option: }
|
|
11775
|
+
var data={ e:e, X:x, Y:y, Draw:false, DrawDynamic:null, PreventDefault:false, MouseStatus:null };
|
|
11776
|
+
this.TryMouseMoveChartTooltipData(data, this);
|
|
11777
|
+
|
|
11778
|
+
if (data.MouseStatus) mouseStatus=data.MouseStatus;
|
|
11779
|
+
|
|
11780
|
+
if (data.PreventDefault)
|
|
11781
|
+
{
|
|
11782
|
+
if (data.Draw) this.Draw();
|
|
11783
|
+
if (data.DrawDynamic && data.DrawDynamic.Enable) this.DrawDynamicInfo(data.DrawDynamic.Option);
|
|
11784
|
+
this.SetCursor(mouseStatus);
|
|
11785
|
+
return;
|
|
11786
|
+
}
|
|
11787
|
+
}
|
|
11770
11788
|
|
|
11771
11789
|
|
|
11772
11790
|
if (this.EnableBorderDrag && this.Frame && !this.CurrentChartDrawPicture)
|
|
@@ -38975,7 +38993,7 @@ function ChartKLineTable()
|
|
|
38975
38993
|
}
|
|
38976
38994
|
}
|
|
38977
38995
|
|
|
38978
|
-
if (rtBG.Width>5)
|
|
38996
|
+
//if (rtBG.Width>5)
|
|
38979
38997
|
{
|
|
38980
38998
|
this.AryCellRect.push({ Item:{ Cell:item, Colunm:data, RowIndex:i, SubCell:subItem, SubIndex:j, Tooltip:subItem.Tooltip, Type:2 }, Rect:rtSubBG });
|
|
38981
38999
|
}
|
|
@@ -39016,7 +39034,7 @@ function ChartKLineTable()
|
|
|
39016
39034
|
}
|
|
39017
39035
|
}
|
|
39018
39036
|
|
|
39019
|
-
if (rtBG.Width>5)
|
|
39037
|
+
//if (rtBG.Width>5)
|
|
39020
39038
|
{
|
|
39021
39039
|
this.AryCellRect.push({ Item:{ Cell:item, Colunm:data, RowIndex:i, Tooltip:item.Tooltip, Type:1 }, Rect:rtBG });
|
|
39022
39040
|
}
|
|
@@ -90255,14 +90273,26 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
90255
90273
|
{
|
|
90256
90274
|
var self=this;
|
|
90257
90275
|
var start=0;
|
|
90258
|
-
|
|
90276
|
+
var hisData=this.GetKData();
|
|
90277
|
+
var dateRange=hisData.GetDateRange();
|
|
90278
|
+
|
|
90259
90279
|
if (this.NetworkFilter)
|
|
90260
90280
|
{
|
|
90281
|
+
var kLineDrawType=this.GetKLineDrawType();
|
|
90261
90282
|
var obj=
|
|
90262
90283
|
{
|
|
90263
90284
|
Name:'KLineChartContainer::RequestTickRealtimeData', //类名::
|
|
90264
90285
|
Explain:'当天最新分笔数据',
|
|
90265
|
-
Request:
|
|
90286
|
+
Request:
|
|
90287
|
+
{
|
|
90288
|
+
Url:self.TickApiUrl,
|
|
90289
|
+
Data:
|
|
90290
|
+
{
|
|
90291
|
+
symbol:self.Symbol, period:this.Period, right:this.Right,
|
|
90292
|
+
dateRange:dateRange, klineDrawType:kLineDrawType
|
|
90293
|
+
},
|
|
90294
|
+
Type:'POST'
|
|
90295
|
+
},
|
|
90266
90296
|
Self:this,
|
|
90267
90297
|
PreventDefault:false
|
|
90268
90298
|
};
|
|
@@ -90275,29 +90305,14 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
90275
90305
|
|
|
90276
90306
|
if (obj.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
|
|
90277
90307
|
}
|
|
90278
|
-
|
|
90279
|
-
JSNetwork.HttpRequest({
|
|
90280
|
-
url: self.TickApiUrl,
|
|
90281
|
-
data:{"symbol":self.Symbol, start:start-10, end:start+1000 },
|
|
90282
|
-
type:"post",
|
|
90283
|
-
dataType: "json",
|
|
90284
|
-
async:true,
|
|
90285
|
-
success: function (data)
|
|
90286
|
-
{
|
|
90287
|
-
self.ChartSplashPaint.EnableSplash(false);
|
|
90288
|
-
self.RecvTickRealtimeData(data);
|
|
90289
|
-
self.AutoUpdate();
|
|
90290
|
-
}
|
|
90291
|
-
});
|
|
90292
90308
|
}
|
|
90293
90309
|
|
|
90294
90310
|
this.RecvTickRealtimeData=function(data)
|
|
90295
90311
|
{
|
|
90296
|
-
|
|
90297
|
-
|
|
90298
|
-
else
|
|
90299
|
-
|
|
90300
|
-
if (!aryDayData || aryDayData.length<=0) return;
|
|
90312
|
+
var aryDayData=null;
|
|
90313
|
+
if (data.ver==2.0) aryDayData=KLineChartContainer.JsonDataToTickDataV2(data); //增量数据
|
|
90314
|
+
else aryDayData=KLineChartContainer.JsonDataToTickData(data); //增量数据
|
|
90315
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(aryDayData)) return;
|
|
90301
90316
|
|
|
90302
90317
|
var redraw=false; //强制重绘
|
|
90303
90318
|
if (data.redraw==true) redraw=true;
|
|
@@ -90307,7 +90322,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
90307
90322
|
var lastTime=0;
|
|
90308
90323
|
if (source.length>0) lastTime=source[source.length-1].Time;
|
|
90309
90324
|
var newCount=0;
|
|
90310
|
-
for(var i
|
|
90325
|
+
for(var i=0; i<aryDayData.length; ++i)
|
|
90311
90326
|
{
|
|
90312
90327
|
var item=aryDayData[i];
|
|
90313
90328
|
if (item.Time<=lastTime) continue;
|
|
@@ -95292,20 +95307,24 @@ KLineChartContainer.JsonDataToTickDataV2=function(data)
|
|
|
95292
95307
|
{
|
|
95293
95308
|
var aryDayData=[];
|
|
95294
95309
|
if (!IFrameSplitOperator.IsNonEmptyArray(data.data)) return aryDayData;
|
|
95295
|
-
|
|
95310
|
+
var extendDataIndex=JSCHART_DATA_FIELD_ID.KLINE_TICK_EXTENDDATA;
|
|
95296
95311
|
for(var i=0;i<data.data.length;++i)
|
|
95297
95312
|
{
|
|
95298
95313
|
var item = new HistoryData();
|
|
95299
|
-
var tick=data.data[i]; //[ date, time, yClose, price,
|
|
95314
|
+
var tick=data.data[i]; //[ date, time, yClose, price, vol, amount, flag,]
|
|
95300
95315
|
if (!tick) continue;
|
|
95301
95316
|
|
|
95302
95317
|
item.Date = tick[0];
|
|
95303
95318
|
item.Time=tick[1];
|
|
95304
95319
|
item.YClose = tick[2];
|
|
95305
95320
|
item.Low=item.High=item.Close=item.Open = tick[3];
|
|
95321
|
+
item.Vol = tick[4]; //原始单位股
|
|
95322
|
+
item.Amount = tick[5];
|
|
95323
|
+
item.Flag=tick[6];
|
|
95324
|
+
|
|
95306
95325
|
aryDayData.push(item);
|
|
95307
95326
|
|
|
95308
|
-
if (tick[
|
|
95327
|
+
if (tick[extendDataIndex]) item.ExtendData=tick[extendDataIndex];
|
|
95309
95328
|
}
|
|
95310
95329
|
|
|
95311
95330
|
return aryDayData;
|
|
@@ -118376,6 +118395,32 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
118376
118395
|
return result;
|
|
118377
118396
|
}
|
|
118378
118397
|
|
|
118398
|
+
//VARCAT6(A,B,C,D,E,F):将六个字符串A,B,C,D,E,F相加成一个字符串.
|
|
118399
|
+
//每个数据都进行序列运算,若用于多股选股,建议换用STRCAT6
|
|
118400
|
+
//用法: VARCAT6('多头',VAR2STR(C,2),' ',VAR2STR(O,2),' ',VAR2STR(MA(C,5),2))将六个字符串相加成一个字符串
|
|
118401
|
+
this.VARCAT6=function(data,data2,data3,data4,data5)
|
|
118402
|
+
{
|
|
118403
|
+
var aryData=[];
|
|
118404
|
+
if (Array.isArray(data) || IFrameSplitOperator.IsString(data)) aryData.push(data);
|
|
118405
|
+
if (Array.isArray(data2) || IFrameSplitOperator.IsString(data2)) aryData.push(data2);
|
|
118406
|
+
if (Array.isArray(data3) || IFrameSplitOperator.IsString(data3)) aryData.push(data3);
|
|
118407
|
+
if (Array.isArray(data4) || IFrameSplitOperator.IsString(data4)) aryData.push(data4);
|
|
118408
|
+
if (Array.isArray(data5) || IFrameSplitOperator.IsString(data5)) aryData.push(data5);
|
|
118409
|
+
|
|
118410
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(aryData)) return [];
|
|
118411
|
+
if (aryData.length==1) return data;
|
|
118412
|
+
|
|
118413
|
+
var tempData=this.VARCAT(aryData[0], aryData[1]);
|
|
118414
|
+
var result=tempData;
|
|
118415
|
+
for(var i=2;i<aryData.length;++i)
|
|
118416
|
+
{
|
|
118417
|
+
result=this.VARCAT(tempData,aryData[i]);
|
|
118418
|
+
tempData=result;
|
|
118419
|
+
}
|
|
118420
|
+
|
|
118421
|
+
return result;
|
|
118422
|
+
}
|
|
118423
|
+
|
|
118379
118424
|
//FINDSTR(A,B):在字符串A中查找字符串B,如果找到返回1,否则返回0.
|
|
118380
118425
|
//用法: FINDSTR('多头开仓','开仓')在字符串'多头开仓'中查找字符串'开仓',返回1
|
|
118381
118426
|
this.FINDSTR=function(data, data2)
|
|
@@ -118502,6 +118547,8 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
118502
118547
|
this.VAR2STR=function(data,n)
|
|
118503
118548
|
{
|
|
118504
118549
|
var result=[];
|
|
118550
|
+
var dec=0;
|
|
118551
|
+
if (IFrameSplitOperator.IsNumber(n)) dec=n;
|
|
118505
118552
|
if (Array.isArray(data))
|
|
118506
118553
|
{
|
|
118507
118554
|
for(var i=0;i<data.length;++i)
|
|
@@ -118509,13 +118556,13 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
118509
118556
|
result[i]=null;
|
|
118510
118557
|
var item=data[i];
|
|
118511
118558
|
if (this.IsNumber(item))
|
|
118512
|
-
result[i]=item.toFixed(
|
|
118559
|
+
result[i]=item.toFixed(dec);
|
|
118513
118560
|
}
|
|
118514
118561
|
}
|
|
118515
118562
|
else
|
|
118516
118563
|
{
|
|
118517
118564
|
if (this.IsNumber(data))
|
|
118518
|
-
result=data.toFixed(
|
|
118565
|
+
result=data.toFixed(dec);
|
|
118519
118566
|
}
|
|
118520
118567
|
|
|
118521
118568
|
return result;
|
|
@@ -120227,6 +120274,8 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
120227
120274
|
return this.VAR2STR(args[0], args[1]);
|
|
120228
120275
|
case "VARCAT":
|
|
120229
120276
|
return this.VARCAT(args[0], args[1]);
|
|
120277
|
+
case "VARCAT6":
|
|
120278
|
+
return this.VARCAT6(args[0], args[1],args[2], args[3],args[4], args[5]);
|
|
120230
120279
|
case "STRSPACE":
|
|
120231
120280
|
return this.STRSPACE(args[0]);
|
|
120232
120281
|
case "FINDSTR":
|
|
@@ -120439,7 +120488,8 @@ function JSDraw(errorHandler,symbolData)
|
|
|
120439
120488
|
var drawData=[];
|
|
120440
120489
|
var result={ DrawData:drawData, DrawType:'DRAWFLAGTEXT' };
|
|
120441
120490
|
if (!text) return result;
|
|
120442
|
-
|
|
120491
|
+
var bArrayText=Array.isArray(text); //是否是数组字符串
|
|
120492
|
+
|
|
120443
120493
|
if (Array.isArray(condition))
|
|
120444
120494
|
{
|
|
120445
120495
|
if (condition.length<=0) return result;
|
|
@@ -120450,14 +120500,18 @@ function JSDraw(errorHandler,symbolData)
|
|
|
120450
120500
|
drawData[i]=null;
|
|
120451
120501
|
|
|
120452
120502
|
if (isNaN(condition[i]) || !condition[i]) continue;
|
|
120503
|
+
|
|
120504
|
+
var outText=null;
|
|
120505
|
+
if (!bArrayText) outText=text;
|
|
120506
|
+
else if (bArrayText && text[i]) outText=text[i];
|
|
120453
120507
|
|
|
120454
120508
|
if (bSinglePrice)
|
|
120455
120509
|
{
|
|
120456
|
-
drawData[i]={ YValue:price, Text:
|
|
120510
|
+
drawData[i]={ YValue:price, Text:outText };
|
|
120457
120511
|
}
|
|
120458
120512
|
else
|
|
120459
120513
|
{
|
|
120460
|
-
if (IFrameSplitOperator.IsNumber(price[i])) drawData[i]={ YValue:price[i], Text:
|
|
120514
|
+
if (IFrameSplitOperator.IsNumber(price[i])) drawData[i]={ YValue:price[i], Text:outText };
|
|
120461
120515
|
}
|
|
120462
120516
|
}
|
|
120463
120517
|
}
|
|
@@ -120466,13 +120520,17 @@ function JSDraw(errorHandler,symbolData)
|
|
|
120466
120520
|
var bSinglePrice=IFrameSplitOperator.IsNumber(price);
|
|
120467
120521
|
for(var i=0;i<this.SymbolData.Data.Data.length;++i)
|
|
120468
120522
|
{
|
|
120523
|
+
var outText=null;
|
|
120524
|
+
if (!bArrayText) outText=text;
|
|
120525
|
+
else if (bArrayText && text[i]) outText=text[i];
|
|
120526
|
+
|
|
120469
120527
|
if (bSinglePrice)
|
|
120470
120528
|
{
|
|
120471
|
-
drawData[i]={ YValue:price, Text:
|
|
120529
|
+
drawData[i]={ YValue:price, Text:outText };
|
|
120472
120530
|
}
|
|
120473
120531
|
else
|
|
120474
120532
|
{
|
|
120475
|
-
if (IFrameSplitOperator.IsNumber(price[i])) drawData[i]={ YValue:price[i], Text:
|
|
120533
|
+
if (IFrameSplitOperator.IsNumber(price[i])) drawData[i]={ YValue:price[i], Text:outText };
|
|
120476
120534
|
}
|
|
120477
120535
|
}
|
|
120478
120536
|
}
|
|
@@ -130670,6 +130728,7 @@ function JSExplainer(ast,option)
|
|
|
130670
130728
|
["STRCAT", { Name:"STRCAT", Param:{ Count:2 }, ToString:function(args) { return `字符串相加`; } } ],
|
|
130671
130729
|
["STRCAT6",{ Name:"STRCAT6", Param:{ Dynamic:true }, ToString:function(args) { return `字符串相加`; } } ],
|
|
130672
130730
|
["VARCAT", { Name:"VARCAT", Param:{ Count:2 }, ToString:function(args) { return `字符串相加`; } } ],
|
|
130731
|
+
["VARCAT6", { Name:"VARCAT", Param:{ Dynamic:true }, ToString:function(args) { return `字符串相加`; } } ],
|
|
130673
130732
|
["STRSPACE", { Name:"STRSPACE", Param:{ Count:1 }, ToString:function(args) { return `字符串${args[0]}加一空格`; } } ],
|
|
130674
130733
|
["SUBSTR", { Name:"SUBSTR", Param:{ Count:3 }, ToString:function(args) { return `字符串${args[0]}中取一部分`; } } ],
|
|
130675
130734
|
["STRCMP", { Name:"STRCMP", Param:{ Count:2 }, ToString:function(args) { return `字符串${args[0]}和字符串${args[1]}比较`; } } ],
|
|
@@ -149610,7 +149669,7 @@ function ChartReport()
|
|
|
149610
149669
|
|
|
149611
149670
|
this.FormaTimeDrawInfo=function(column, stock, drawInfo, data)
|
|
149612
149671
|
{
|
|
149613
|
-
if (!IFrameSplitOperator.IsNumber(stock.Time)) return;
|
|
149672
|
+
if (!stock || !IFrameSplitOperator.IsNumber(stock.Time)) return;
|
|
149614
149673
|
|
|
149615
149674
|
if (column.ValueType==0) //0=hhmm 1=hhmmss 2=hhmmss.fff
|
|
149616
149675
|
{
|
|
@@ -149628,7 +149687,7 @@ function ChartReport()
|
|
|
149628
149687
|
|
|
149629
149688
|
this.FormaDateDrawInfo=function(column, stock, drawInfo, data)
|
|
149630
149689
|
{
|
|
149631
|
-
if (!IFrameSplitOperator.IsNumber(stock.Date)) return;
|
|
149690
|
+
if (!stock || !IFrameSplitOperator.IsNumber(stock.Date)) return;
|
|
149632
149691
|
|
|
149633
149692
|
if (column.FormatType==0)
|
|
149634
149693
|
drawInfo.Text=IFrameSplitOperator.FormatDateString(stock.Date,"YYYY-MM-DD");
|
|
@@ -155442,7 +155501,7 @@ function ScrollBarBGChart()
|
|
|
155442
155501
|
|
|
155443
155502
|
|
|
155444
155503
|
|
|
155445
|
-
var HQCHART_VERSION="1.1.
|
|
155504
|
+
var HQCHART_VERSION="1.1.15367";
|
|
155446
155505
|
|
|
155447
155506
|
function PrintHQChartVersion()
|
|
155448
155507
|
{
|
|
@@ -55594,6 +55594,15 @@ HQData.NetworkFilter=function(data, callback)
|
|
|
55594
55594
|
HQData.RequestMinuteRealtimeData(data,callback);
|
|
55595
55595
|
break;
|
|
55596
55596
|
|
|
55597
|
+
case "KLineChartContainer::RequestTickData":
|
|
55598
|
+
//HQChart使用教程30-K线图如何对接第3方数据5-逐笔数据
|
|
55599
|
+
HQData.RequestKLineTickData(data,callback);
|
|
55600
|
+
break;
|
|
55601
|
+
case "KLineChartContainer::RequestTickRealtimeData":
|
|
55602
|
+
//HQChart使用教程30-K线图如何对接第3方数据16-轮询增量更新逐笔数据
|
|
55603
|
+
HQData.RequestTickRealtimeData(data,callback);
|
|
55604
|
+
break;
|
|
55605
|
+
|
|
55597
55606
|
case "JSSymbolData::GetVariantData": //额外的变量数据
|
|
55598
55607
|
//HQChart使用教程30-K线图如何对接第3方数据29-板块字符串函数数据[GNBLOCK,GNBLOCKNUM......]
|
|
55599
55608
|
HQData.RequestIndexVariantData(data,callback);
|
|
@@ -56762,6 +56771,50 @@ HQData.RequestMinuteRealtimeData=function(data,callback)
|
|
|
56762
56771
|
}
|
|
56763
56772
|
|
|
56764
56773
|
|
|
56774
|
+
HQData.RequestKLineTickData=function(data,callback)
|
|
56775
|
+
{
|
|
56776
|
+
data.PreventDefault=true;
|
|
56777
|
+
var symbol=data.Request.Data.symbol;
|
|
56778
|
+
console.log(`[HQData::RequestKLineTickData] Symbol=${symbol}`);
|
|
56779
|
+
|
|
56780
|
+
var hqchartData={ code:0, symbol:symbol, name:symbol, data:[], ver:2.0 };
|
|
56781
|
+
for(var i=0;i<MSECOND_TEST_DATA.data.length-100;++i)
|
|
56782
|
+
{
|
|
56783
|
+
var item=MSECOND_TEST_DATA.data[i];
|
|
56784
|
+
var flag=HQData.GetRandomTestData(1,10)%3;
|
|
56785
|
+
var kItem=[item[0], parseInt(item[8]/1000), item[1], item[5], item[6]*1000, item[7], flag ];
|
|
56786
|
+
hqchartData.data.push(kItem);
|
|
56787
|
+
}
|
|
56788
|
+
|
|
56789
|
+
callback(hqchartData);
|
|
56790
|
+
}
|
|
56791
|
+
|
|
56792
|
+
HQData.RequestTickRealtimeData=function(data,callback)
|
|
56793
|
+
{
|
|
56794
|
+
data.PreventDefault=true;
|
|
56795
|
+
var symbol=data.Request.Data.symbol; //请求的股票代码
|
|
56796
|
+
var dateRange=data.Request.Data.dateRange;
|
|
56797
|
+
var endTime=dateRange.End.Time;
|
|
56798
|
+
var endDate=dateRange.End.Date;
|
|
56799
|
+
|
|
56800
|
+
var hqchartData={ code:0, symbol:symbol, name:symbol, data:[], ver:2.0 };
|
|
56801
|
+
for(var i=0;i<MSECOND_TEST_DATA.data.length;++i)
|
|
56802
|
+
{
|
|
56803
|
+
var item=MSECOND_TEST_DATA.data[i];
|
|
56804
|
+
var time=parseInt(item[8]/1000);
|
|
56805
|
+
if (time>endTime)
|
|
56806
|
+
{
|
|
56807
|
+
var flag=HQData.GetRandomTestData(1,10)%3;
|
|
56808
|
+
var kItem=[item[0], time, item[1], item[5], item[6]*1000, item[7], flag ];
|
|
56809
|
+
hqchartData.data.push(kItem);
|
|
56810
|
+
break;
|
|
56811
|
+
}
|
|
56812
|
+
}
|
|
56813
|
+
|
|
56814
|
+
callback(hqchartData);
|
|
56815
|
+
}
|
|
56816
|
+
|
|
56817
|
+
|
|
56765
56818
|
HQData.RequestIndexVariantData=function(data,callback)
|
|
56766
56819
|
{
|
|
56767
56820
|
data.PreventDefault=true;
|
|
@@ -59429,7 +59482,13 @@ HQData.APIIndex_KLINE_TABLE=function(data, callback)
|
|
|
59429
59482
|
DrawType:'KLINE_TABLE',
|
|
59430
59483
|
DrawData:[ ] , //数据 [ [ { Text, Color: BGColor }, ...... ], [],]
|
|
59431
59484
|
RowCount:4,
|
|
59432
|
-
RowName:
|
|
59485
|
+
RowName:
|
|
59486
|
+
[
|
|
59487
|
+
{Name:"账户[*9993]",TextAlign:"center", Color:"rgb(124, 252, 0)"},
|
|
59488
|
+
{Name:"账户[*8881]",TextAlign:"center", Color:"rgb(238, 99, 9)", BGColor:"rgb(100,0,200)" },
|
|
59489
|
+
{Name:"账户3",TextAlign:"center"},
|
|
59490
|
+
{Name:"账户4", TextAlign:"center"}
|
|
59491
|
+
],
|
|
59433
59492
|
|
|
59434
59493
|
Config:
|
|
59435
59494
|
{
|
|
@@ -59440,7 +59499,9 @@ HQData.APIIndex_KLINE_TABLE=function(data, callback)
|
|
|
59440
59499
|
RowNamePosition:3,
|
|
59441
59500
|
TextFont:{ Family:'微软雅黑' , FontMaxSize:14*GetDevicePixelRatio(), },
|
|
59442
59501
|
RowHeightType:0,
|
|
59443
|
-
Style:1
|
|
59502
|
+
Style:1,
|
|
59503
|
+
|
|
59504
|
+
AryBorderColor:[null, "rgb(100,20,200)", "rgb(200,0,100)"]
|
|
59444
59505
|
}
|
|
59445
59506
|
},
|
|
59446
59507
|
|