hqchart 1.1.15364 → 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 +22 -17
- 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 +27 -25
- 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 +77 -35
- 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 +77 -35
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,
|
|
@@ -86176,14 +86177,26 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
86176
86177
|
{
|
|
86177
86178
|
var self=this;
|
|
86178
86179
|
var start=0;
|
|
86179
|
-
|
|
86180
|
+
var hisData=this.GetKData();
|
|
86181
|
+
var dateRange=hisData.GetDateRange();
|
|
86182
|
+
|
|
86180
86183
|
if (this.NetworkFilter)
|
|
86181
86184
|
{
|
|
86185
|
+
var kLineDrawType=this.GetKLineDrawType();
|
|
86182
86186
|
var obj=
|
|
86183
86187
|
{
|
|
86184
86188
|
Name:'KLineChartContainer::RequestTickRealtimeData', //类名::
|
|
86185
86189
|
Explain:'当天最新分笔数据',
|
|
86186
|
-
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
|
+
},
|
|
86187
86200
|
Self:this,
|
|
86188
86201
|
PreventDefault:false
|
|
86189
86202
|
};
|
|
@@ -86196,29 +86209,14 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
86196
86209
|
|
|
86197
86210
|
if (obj.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
|
|
86198
86211
|
}
|
|
86199
|
-
|
|
86200
|
-
JSNetwork.HttpRequest({
|
|
86201
|
-
url: self.TickApiUrl,
|
|
86202
|
-
data:{"symbol":self.Symbol, start:start-10, end:start+1000 },
|
|
86203
|
-
type:"post",
|
|
86204
|
-
dataType: "json",
|
|
86205
|
-
async:true,
|
|
86206
|
-
success: function (data)
|
|
86207
|
-
{
|
|
86208
|
-
self.ChartSplashPaint.EnableSplash(false);
|
|
86209
|
-
self.RecvTickRealtimeData(data);
|
|
86210
|
-
self.AutoUpdate();
|
|
86211
|
-
}
|
|
86212
|
-
});
|
|
86213
86212
|
}
|
|
86214
86213
|
|
|
86215
86214
|
this.RecvTickRealtimeData=function(data)
|
|
86216
86215
|
{
|
|
86217
|
-
|
|
86218
|
-
|
|
86219
|
-
else
|
|
86220
|
-
|
|
86221
|
-
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;
|
|
86222
86220
|
|
|
86223
86221
|
var redraw=false; //强制重绘
|
|
86224
86222
|
if (data.redraw==true) redraw=true;
|
|
@@ -86228,7 +86226,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
86228
86226
|
var lastTime=0;
|
|
86229
86227
|
if (source.length>0) lastTime=source[source.length-1].Time;
|
|
86230
86228
|
var newCount=0;
|
|
86231
|
-
for(var i
|
|
86229
|
+
for(var i=0; i<aryDayData.length; ++i)
|
|
86232
86230
|
{
|
|
86233
86231
|
var item=aryDayData[i];
|
|
86234
86232
|
if (item.Time<=lastTime) continue;
|
|
@@ -91213,20 +91211,24 @@ KLineChartContainer.JsonDataToTickDataV2=function(data)
|
|
|
91213
91211
|
{
|
|
91214
91212
|
var aryDayData=[];
|
|
91215
91213
|
if (!IFrameSplitOperator.IsNonEmptyArray(data.data)) return aryDayData;
|
|
91216
|
-
|
|
91214
|
+
var extendDataIndex=JSCHART_DATA_FIELD_ID.KLINE_TICK_EXTENDDATA;
|
|
91217
91215
|
for(var i=0;i<data.data.length;++i)
|
|
91218
91216
|
{
|
|
91219
91217
|
var item = new HistoryData();
|
|
91220
|
-
var tick=data.data[i]; //[ date, time, yClose, price,
|
|
91218
|
+
var tick=data.data[i]; //[ date, time, yClose, price, vol, amount, flag,]
|
|
91221
91219
|
if (!tick) continue;
|
|
91222
91220
|
|
|
91223
91221
|
item.Date = tick[0];
|
|
91224
91222
|
item.Time=tick[1];
|
|
91225
91223
|
item.YClose = tick[2];
|
|
91226
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
|
+
|
|
91227
91229
|
aryDayData.push(item);
|
|
91228
91230
|
|
|
91229
|
-
if (tick[
|
|
91231
|
+
if (tick[extendDataIndex]) item.ExtendData=tick[extendDataIndex];
|
|
91230
91232
|
}
|
|
91231
91233
|
|
|
91232
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,
|
|
@@ -90272,14 +90273,26 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
90272
90273
|
{
|
|
90273
90274
|
var self=this;
|
|
90274
90275
|
var start=0;
|
|
90275
|
-
|
|
90276
|
+
var hisData=this.GetKData();
|
|
90277
|
+
var dateRange=hisData.GetDateRange();
|
|
90278
|
+
|
|
90276
90279
|
if (this.NetworkFilter)
|
|
90277
90280
|
{
|
|
90281
|
+
var kLineDrawType=this.GetKLineDrawType();
|
|
90278
90282
|
var obj=
|
|
90279
90283
|
{
|
|
90280
90284
|
Name:'KLineChartContainer::RequestTickRealtimeData', //类名::
|
|
90281
90285
|
Explain:'当天最新分笔数据',
|
|
90282
|
-
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
|
+
},
|
|
90283
90296
|
Self:this,
|
|
90284
90297
|
PreventDefault:false
|
|
90285
90298
|
};
|
|
@@ -90292,29 +90305,14 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
90292
90305
|
|
|
90293
90306
|
if (obj.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
|
|
90294
90307
|
}
|
|
90295
|
-
|
|
90296
|
-
JSNetwork.HttpRequest({
|
|
90297
|
-
url: self.TickApiUrl,
|
|
90298
|
-
data:{"symbol":self.Symbol, start:start-10, end:start+1000 },
|
|
90299
|
-
type:"post",
|
|
90300
|
-
dataType: "json",
|
|
90301
|
-
async:true,
|
|
90302
|
-
success: function (data)
|
|
90303
|
-
{
|
|
90304
|
-
self.ChartSplashPaint.EnableSplash(false);
|
|
90305
|
-
self.RecvTickRealtimeData(data);
|
|
90306
|
-
self.AutoUpdate();
|
|
90307
|
-
}
|
|
90308
|
-
});
|
|
90309
90308
|
}
|
|
90310
90309
|
|
|
90311
90310
|
this.RecvTickRealtimeData=function(data)
|
|
90312
90311
|
{
|
|
90313
|
-
|
|
90314
|
-
|
|
90315
|
-
else
|
|
90316
|
-
|
|
90317
|
-
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;
|
|
90318
90316
|
|
|
90319
90317
|
var redraw=false; //强制重绘
|
|
90320
90318
|
if (data.redraw==true) redraw=true;
|
|
@@ -90324,7 +90322,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
90324
90322
|
var lastTime=0;
|
|
90325
90323
|
if (source.length>0) lastTime=source[source.length-1].Time;
|
|
90326
90324
|
var newCount=0;
|
|
90327
|
-
for(var i
|
|
90325
|
+
for(var i=0; i<aryDayData.length; ++i)
|
|
90328
90326
|
{
|
|
90329
90327
|
var item=aryDayData[i];
|
|
90330
90328
|
if (item.Time<=lastTime) continue;
|
|
@@ -95309,20 +95307,24 @@ KLineChartContainer.JsonDataToTickDataV2=function(data)
|
|
|
95309
95307
|
{
|
|
95310
95308
|
var aryDayData=[];
|
|
95311
95309
|
if (!IFrameSplitOperator.IsNonEmptyArray(data.data)) return aryDayData;
|
|
95312
|
-
|
|
95310
|
+
var extendDataIndex=JSCHART_DATA_FIELD_ID.KLINE_TICK_EXTENDDATA;
|
|
95313
95311
|
for(var i=0;i<data.data.length;++i)
|
|
95314
95312
|
{
|
|
95315
95313
|
var item = new HistoryData();
|
|
95316
|
-
var tick=data.data[i]; //[ date, time, yClose, price,
|
|
95314
|
+
var tick=data.data[i]; //[ date, time, yClose, price, vol, amount, flag,]
|
|
95317
95315
|
if (!tick) continue;
|
|
95318
95316
|
|
|
95319
95317
|
item.Date = tick[0];
|
|
95320
95318
|
item.Time=tick[1];
|
|
95321
95319
|
item.YClose = tick[2];
|
|
95322
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
|
+
|
|
95323
95325
|
aryDayData.push(item);
|
|
95324
95326
|
|
|
95325
|
-
if (tick[
|
|
95327
|
+
if (tick[extendDataIndex]) item.ExtendData=tick[extendDataIndex];
|
|
95326
95328
|
}
|
|
95327
95329
|
|
|
95328
95330
|
return aryDayData;
|
|
@@ -118393,6 +118395,32 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
118393
118395
|
return result;
|
|
118394
118396
|
}
|
|
118395
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
|
+
|
|
118396
118424
|
//FINDSTR(A,B):在字符串A中查找字符串B,如果找到返回1,否则返回0.
|
|
118397
118425
|
//用法: FINDSTR('多头开仓','开仓')在字符串'多头开仓'中查找字符串'开仓',返回1
|
|
118398
118426
|
this.FINDSTR=function(data, data2)
|
|
@@ -118519,6 +118547,8 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
118519
118547
|
this.VAR2STR=function(data,n)
|
|
118520
118548
|
{
|
|
118521
118549
|
var result=[];
|
|
118550
|
+
var dec=0;
|
|
118551
|
+
if (IFrameSplitOperator.IsNumber(n)) dec=n;
|
|
118522
118552
|
if (Array.isArray(data))
|
|
118523
118553
|
{
|
|
118524
118554
|
for(var i=0;i<data.length;++i)
|
|
@@ -118526,13 +118556,13 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
118526
118556
|
result[i]=null;
|
|
118527
118557
|
var item=data[i];
|
|
118528
118558
|
if (this.IsNumber(item))
|
|
118529
|
-
result[i]=item.toFixed(
|
|
118559
|
+
result[i]=item.toFixed(dec);
|
|
118530
118560
|
}
|
|
118531
118561
|
}
|
|
118532
118562
|
else
|
|
118533
118563
|
{
|
|
118534
118564
|
if (this.IsNumber(data))
|
|
118535
|
-
result=data.toFixed(
|
|
118565
|
+
result=data.toFixed(dec);
|
|
118536
118566
|
}
|
|
118537
118567
|
|
|
118538
118568
|
return result;
|
|
@@ -120244,6 +120274,8 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
120244
120274
|
return this.VAR2STR(args[0], args[1]);
|
|
120245
120275
|
case "VARCAT":
|
|
120246
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]);
|
|
120247
120279
|
case "STRSPACE":
|
|
120248
120280
|
return this.STRSPACE(args[0]);
|
|
120249
120281
|
case "FINDSTR":
|
|
@@ -120456,7 +120488,8 @@ function JSDraw(errorHandler,symbolData)
|
|
|
120456
120488
|
var drawData=[];
|
|
120457
120489
|
var result={ DrawData:drawData, DrawType:'DRAWFLAGTEXT' };
|
|
120458
120490
|
if (!text) return result;
|
|
120459
|
-
|
|
120491
|
+
var bArrayText=Array.isArray(text); //是否是数组字符串
|
|
120492
|
+
|
|
120460
120493
|
if (Array.isArray(condition))
|
|
120461
120494
|
{
|
|
120462
120495
|
if (condition.length<=0) return result;
|
|
@@ -120467,14 +120500,18 @@ function JSDraw(errorHandler,symbolData)
|
|
|
120467
120500
|
drawData[i]=null;
|
|
120468
120501
|
|
|
120469
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];
|
|
120470
120507
|
|
|
120471
120508
|
if (bSinglePrice)
|
|
120472
120509
|
{
|
|
120473
|
-
drawData[i]={ YValue:price, Text:
|
|
120510
|
+
drawData[i]={ YValue:price, Text:outText };
|
|
120474
120511
|
}
|
|
120475
120512
|
else
|
|
120476
120513
|
{
|
|
120477
|
-
if (IFrameSplitOperator.IsNumber(price[i])) drawData[i]={ YValue:price[i], Text:
|
|
120514
|
+
if (IFrameSplitOperator.IsNumber(price[i])) drawData[i]={ YValue:price[i], Text:outText };
|
|
120478
120515
|
}
|
|
120479
120516
|
}
|
|
120480
120517
|
}
|
|
@@ -120483,13 +120520,17 @@ function JSDraw(errorHandler,symbolData)
|
|
|
120483
120520
|
var bSinglePrice=IFrameSplitOperator.IsNumber(price);
|
|
120484
120521
|
for(var i=0;i<this.SymbolData.Data.Data.length;++i)
|
|
120485
120522
|
{
|
|
120523
|
+
var outText=null;
|
|
120524
|
+
if (!bArrayText) outText=text;
|
|
120525
|
+
else if (bArrayText && text[i]) outText=text[i];
|
|
120526
|
+
|
|
120486
120527
|
if (bSinglePrice)
|
|
120487
120528
|
{
|
|
120488
|
-
drawData[i]={ YValue:price, Text:
|
|
120529
|
+
drawData[i]={ YValue:price, Text:outText };
|
|
120489
120530
|
}
|
|
120490
120531
|
else
|
|
120491
120532
|
{
|
|
120492
|
-
if (IFrameSplitOperator.IsNumber(price[i])) drawData[i]={ YValue:price[i], Text:
|
|
120533
|
+
if (IFrameSplitOperator.IsNumber(price[i])) drawData[i]={ YValue:price[i], Text:outText };
|
|
120493
120534
|
}
|
|
120494
120535
|
}
|
|
120495
120536
|
}
|
|
@@ -130687,6 +130728,7 @@ function JSExplainer(ast,option)
|
|
|
130687
130728
|
["STRCAT", { Name:"STRCAT", Param:{ Count:2 }, ToString:function(args) { return `字符串相加`; } } ],
|
|
130688
130729
|
["STRCAT6",{ Name:"STRCAT6", Param:{ Dynamic:true }, ToString:function(args) { return `字符串相加`; } } ],
|
|
130689
130730
|
["VARCAT", { Name:"VARCAT", Param:{ Count:2 }, ToString:function(args) { return `字符串相加`; } } ],
|
|
130731
|
+
["VARCAT6", { Name:"VARCAT", Param:{ Dynamic:true }, ToString:function(args) { return `字符串相加`; } } ],
|
|
130690
130732
|
["STRSPACE", { Name:"STRSPACE", Param:{ Count:1 }, ToString:function(args) { return `字符串${args[0]}加一空格`; } } ],
|
|
130691
130733
|
["SUBSTR", { Name:"SUBSTR", Param:{ Count:3 }, ToString:function(args) { return `字符串${args[0]}中取一部分`; } } ],
|
|
130692
130734
|
["STRCMP", { Name:"STRCMP", Param:{ Count:2 }, ToString:function(args) { return `字符串${args[0]}和字符串${args[1]}比较`; } } ],
|
|
@@ -149627,7 +149669,7 @@ function ChartReport()
|
|
|
149627
149669
|
|
|
149628
149670
|
this.FormaTimeDrawInfo=function(column, stock, drawInfo, data)
|
|
149629
149671
|
{
|
|
149630
|
-
if (!IFrameSplitOperator.IsNumber(stock.Time)) return;
|
|
149672
|
+
if (!stock || !IFrameSplitOperator.IsNumber(stock.Time)) return;
|
|
149631
149673
|
|
|
149632
149674
|
if (column.ValueType==0) //0=hhmm 1=hhmmss 2=hhmmss.fff
|
|
149633
149675
|
{
|
|
@@ -149645,7 +149687,7 @@ function ChartReport()
|
|
|
149645
149687
|
|
|
149646
149688
|
this.FormaDateDrawInfo=function(column, stock, drawInfo, data)
|
|
149647
149689
|
{
|
|
149648
|
-
if (!IFrameSplitOperator.IsNumber(stock.Date)) return;
|
|
149690
|
+
if (!stock || !IFrameSplitOperator.IsNumber(stock.Date)) return;
|
|
149649
149691
|
|
|
149650
149692
|
if (column.FormatType==0)
|
|
149651
149693
|
drawInfo.Text=IFrameSplitOperator.FormatDateString(stock.Date,"YYYY-MM-DD");
|
|
@@ -155459,7 +155501,7 @@ function ScrollBarBGChart()
|
|
|
155459
155501
|
|
|
155460
155502
|
|
|
155461
155503
|
|
|
155462
|
-
var HQCHART_VERSION="1.1.
|
|
155504
|
+
var HQCHART_VERSION="1.1.15367";
|
|
155463
155505
|
|
|
155464
155506
|
function PrintHQChartVersion()
|
|
155465
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
|
|