hqchart 1.1.15364 → 1.1.15375
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 +35 -24
- 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 +96 -80
- 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 +146 -90
- 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 +146 -90
|
@@ -4423,6 +4423,49 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4423
4423
|
if (IFrameSplitOperator.IsNumber(item.Count)) klineChart.PriceGap.Count=item.Count;
|
|
4424
4424
|
}
|
|
4425
4425
|
|
|
4426
|
+
//设置十字光标
|
|
4427
|
+
this.SetCorssCursorConfig=function(chart, option)
|
|
4428
|
+
{
|
|
4429
|
+
if (!option || !option.CorssCursorInfo) return;
|
|
4430
|
+
|
|
4431
|
+
var item=option.CorssCursorInfo;
|
|
4432
|
+
if (IFrameSplitOperator.IsNumber(item.Left)) chart.ChartCorssCursor.ShowTextMode.Left=item.Left;
|
|
4433
|
+
if (IFrameSplitOperator.IsNumber(item.Right)) chart.ChartCorssCursor.ShowTextMode.Right=item.Right;
|
|
4434
|
+
if (IFrameSplitOperator.IsNumber(item.Bottom)) chart.ChartCorssCursor.ShowTextMode.Bottom=item.Bottom;
|
|
4435
|
+
|
|
4436
|
+
if (IFrameSplitOperator.IsBool(item.IsShowCorss)) chart.ChartCorssCursor.IsShowCorss=item.IsShowCorss;
|
|
4437
|
+
|
|
4438
|
+
if (IFrameSplitOperator.IsNumber(item.HPenType)) chart.ChartCorssCursor.HPenType=item.HPenType;
|
|
4439
|
+
if (IFrameSplitOperator.IsNumber(item.VPenType)) chart.ChartCorssCursor.VPenType=item.VPenType;
|
|
4440
|
+
if (IFrameSplitOperator.IsNumber(item.VLineType)) chart.ChartCorssCursor.VLineType=item.VLineType;
|
|
4441
|
+
|
|
4442
|
+
if (item.RightButton)
|
|
4443
|
+
{
|
|
4444
|
+
if (IFrameSplitOperator.IsBool(item.RightButton.Enable)) chart.ChartCorssCursor.RightButton.Enable=item.RightButton.Enable;
|
|
4445
|
+
}
|
|
4446
|
+
|
|
4447
|
+
if (item.BottomButton)
|
|
4448
|
+
{
|
|
4449
|
+
var subItem=item.BottomButton;
|
|
4450
|
+
if (IFrameSplitOperator.IsBool(subItem.Enable)) chart.ChartCorssCursor.BottomButton.Enable=subItem.Enable;
|
|
4451
|
+
}
|
|
4452
|
+
|
|
4453
|
+
if (IFrameSplitOperator.IsNumber(item.PriceFormatType)) chart.ChartCorssCursor.StringFormatY.PriceFormatType=item.PriceFormatType;
|
|
4454
|
+
if (IFrameSplitOperator.IsNumber(item.DataFormatType)) chart.ChartCorssCursor.StringFormatY.DataFormatType=item.DataFormatType;
|
|
4455
|
+
|
|
4456
|
+
if (IFrameSplitOperator.IsBool(item.EnableKeyboard)) chart.ChartCorssCursor.EnableKeyboard=item.EnableKeyboard;
|
|
4457
|
+
if (IFrameSplitOperator.IsBool(item.EnableDBClick)) chart.ChartCorssCursor.EnableDBClick=item.EnableDBClick;
|
|
4458
|
+
|
|
4459
|
+
if (IFrameSplitOperator.IsBool(item.IsShowCorssPoint)) chart.ChartCorssCursor.CorssPointConfig.Enable=item.IsShowCorssPoint;
|
|
4460
|
+
|
|
4461
|
+
if (item.YDecimals) //Y轴文字小数位数
|
|
4462
|
+
{
|
|
4463
|
+
var subItem=item.YDecimals;
|
|
4464
|
+
if (IFrameSplitOperator.IsNumber(subItem.Value)) chart.ChartCorssCursor.StringFormatY.DecimalsConfig.Value=subItem.Value;
|
|
4465
|
+
if (IFrameSplitOperator.IsNumber(subItem.Type)) chart.ChartCorssCursor.StringFormatY.DecimalsConfig.Type=subItem.Type;
|
|
4466
|
+
}
|
|
4467
|
+
}
|
|
4468
|
+
|
|
4426
4469
|
//历史K线图
|
|
4427
4470
|
this.CreateKLineChartContainer=function(option)
|
|
4428
4471
|
{
|
|
@@ -4676,48 +4719,23 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4676
4719
|
if (option.IsCorssOnlyDrawKLine===true) chart.ChartCorssCursor.IsOnlyDrawKLine=option.IsCorssOnlyDrawKLine;
|
|
4677
4720
|
if (option.CorssCursorTouchEnd===true) chart.CorssCursorTouchEnd = option.CorssCursorTouchEnd;
|
|
4678
4721
|
if (option.IsClickShowCorssCursor==true) chart.IsClickShowCorssCursor=option.IsClickShowCorssCursor;
|
|
4679
|
-
|
|
4722
|
+
this.SetCorssCursorConfig(chart, option);
|
|
4723
|
+
if (option.CorssCursorInfo) //十字光标K线上的属性设置
|
|
4680
4724
|
{
|
|
4681
4725
|
var item=option.CorssCursorInfo;
|
|
4682
|
-
if (!isNaN(option.CorssCursorInfo.Left)) chart.ChartCorssCursor.ShowTextMode.Left=option.CorssCursorInfo.Left;
|
|
4683
|
-
if (!isNaN(option.CorssCursorInfo.Right)) chart.ChartCorssCursor.ShowTextMode.Right=option.CorssCursorInfo.Right;
|
|
4684
|
-
if (!isNaN(option.CorssCursorInfo.Bottom)) chart.ChartCorssCursor.ShowTextMode.Bottom=option.CorssCursorInfo.Bottom;
|
|
4685
|
-
if (option.CorssCursorInfo.IsShowCorss===false) chart.ChartCorssCursor.IsShowCorss=option.CorssCursorInfo.IsShowCorss;
|
|
4686
4726
|
if (IFrameSplitOperator.IsBool(item.IsShowClose)) chart.ChartCorssCursor.IsShowClose = item.IsShowClose; //Y轴显示收盘价
|
|
4687
4727
|
if (IFrameSplitOperator.IsBool(item.IsOnlyDrawKLine)) chart.ChartCorssCursor.IsOnlyDrawKLine = item.IsOnlyDrawKLine; //Y轴显示收盘价
|
|
4688
4728
|
if (option.CorssCursorInfo.PressTime) chart.PressTime=option.CorssCursorInfo.PressTime; //长按显示十字光标的时间
|
|
4689
|
-
if (IFrameSplitOperator.IsNumber(option.CorssCursorInfo.HPenType)) chart.ChartCorssCursor.HPenType=option.CorssCursorInfo.HPenType;
|
|
4690
|
-
if (option.CorssCursorInfo.VPenType>0) chart.ChartCorssCursor.VPenType=option.CorssCursorInfo.VPenType;
|
|
4691
|
-
if (IFrameSplitOperator.IsNumber(item.VLineType)) chart.ChartCorssCursor.VLineType=item.VLineType;
|
|
4692
4729
|
if (option.CorssCursorInfo.DateFormatType>0) chart.ChartCorssCursor.StringFormatX.DateFormatType=option.CorssCursorInfo.DateFormatType;
|
|
4693
4730
|
if (IFrameSplitOperator.IsBool(item.IsDrawXRangeBG)) chart.ChartCorssCursor.IsDrawXRangeBG=item.IsDrawXRangeBG;
|
|
4694
4731
|
if (IFrameSplitOperator.IsBool(option.CorssCursorInfo.IsFixXLastTime)) chart.ChartCorssCursor.IsFixXLastTime=option.CorssCursorInfo.IsFixXLastTime;
|
|
4695
4732
|
if (IFrameSplitOperator.IsNumber(item.TextHeight)) chart.ChartCorssCursor.TextHeight=item.TextHeight;
|
|
4696
|
-
|
|
4697
|
-
if (item.RightButton)
|
|
4698
|
-
{
|
|
4699
|
-
if (IFrameSplitOperator.IsBool(item.RightButton.Enable)) chart.ChartCorssCursor.RightButton.Enable=item.RightButton.Enable;
|
|
4700
|
-
}
|
|
4701
|
-
|
|
4702
|
-
if (item.BottomButton)
|
|
4703
|
-
{
|
|
4704
|
-
var subItem=item.BottomButton;
|
|
4705
|
-
if (IFrameSplitOperator.IsBool(subItem.Enable)) chart.ChartCorssCursor.BottomButton.Enable=subItem.Enable;
|
|
4706
|
-
}
|
|
4707
|
-
|
|
4708
|
-
if (IFrameSplitOperator.IsNumber(item.PriceFormatType)) chart.ChartCorssCursor.StringFormatY.PriceFormatType=item.PriceFormatType;
|
|
4709
|
-
if (IFrameSplitOperator.IsNumber(item.DataFormatType)) chart.ChartCorssCursor.StringFormatY.DataFormatType=item.DataFormatType;
|
|
4710
|
-
if (IFrameSplitOperator.IsBool(item.EnableKeyboard)) chart.ChartCorssCursor.EnableKeyboard=item.EnableKeyboard;
|
|
4711
|
-
if (IFrameSplitOperator.IsBool(item.EnableDBClick)) chart.ChartCorssCursor.EnableDBClick=item.EnableDBClick;
|
|
4712
|
-
|
|
4713
|
-
if (IFrameSplitOperator.IsBool(item.IsShowCorssPoint)) chart.ChartCorssCursor.CorssPointConfig.Enable=item.IsShowCorssPoint;
|
|
4714
4733
|
|
|
4715
4734
|
if (item.RangeIncrease)
|
|
4716
4735
|
{
|
|
4717
4736
|
var subItem=item.RangeIncrease;
|
|
4718
4737
|
if (IFrameSplitOperator.IsBool(subItem.IsShow)) chart.ChartCorssCursor.StringFormatX.RangeIncrease.IsShow=subItem.IsShow;
|
|
4719
4738
|
if (IFrameSplitOperator.IsNumber(subItem.Formula)) chart.ChartCorssCursor.StringFormatX.RangeIncrease.Formula=subItem.Formula;
|
|
4720
|
-
|
|
4721
4739
|
}
|
|
4722
4740
|
}
|
|
4723
4741
|
|
|
@@ -5245,39 +5263,15 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
5245
5263
|
if (option.PageInfo) chart.SetPageInfo(option.PageInfo);
|
|
5246
5264
|
|
|
5247
5265
|
chart.Create(windowsCount,option); //创建子窗口
|
|
5248
|
-
|
|
5249
|
-
if (option.CorssCursorInfo)
|
|
5266
|
+
this.SetCorssCursorConfig(chart, option);
|
|
5267
|
+
if (option.CorssCursorInfo) //分时图十字光标属性设置
|
|
5250
5268
|
{
|
|
5251
5269
|
var item=option.CorssCursorInfo;
|
|
5252
|
-
|
|
5253
|
-
if (!isNaN(option.CorssCursorInfo.Right)) chart.ChartCorssCursor.ShowTextMode.Right=option.CorssCursorInfo.Right;
|
|
5254
|
-
if (!isNaN(option.CorssCursorInfo.Bottom)) chart.ChartCorssCursor.ShowTextMode.Bottom=option.CorssCursorInfo.Bottom;
|
|
5255
|
-
if (option.CorssCursorInfo.IsShowCorss===false) chart.ChartCorssCursor.IsShowCorss=option.CorssCursorInfo.IsShowCorss;
|
|
5270
|
+
|
|
5256
5271
|
if (option.CorssCursorInfo.RightTextFormat>0) chart.ChartCorssCursor.TextFormat.Right=option.CorssCursorInfo.RightTextFormat;
|
|
5257
5272
|
if (option.CorssCursorInfo.IsOnlyDrawMinute == true) chart.ChartCorssCursor.IsOnlyDrawMinute = option.CorssCursorInfo.IsOnlyDrawMinute; //Y轴显示收盘价
|
|
5258
5273
|
if (IFrameSplitOperator.IsBool(option.CorssCursorInfo.IsFixXLastTime)) chart.ChartCorssCursor.IsFixXLastTime=option.CorssCursorInfo.IsFixXLastTime;
|
|
5259
5274
|
|
|
5260
|
-
if (item.RightButton)
|
|
5261
|
-
{
|
|
5262
|
-
if (IFrameSplitOperator.IsBool(item.RightButton.Enable)) chart.ChartCorssCursor.RightButton.Enable=item.RightButton.Enable;
|
|
5263
|
-
}
|
|
5264
|
-
|
|
5265
|
-
if (item.BottomButton)
|
|
5266
|
-
{
|
|
5267
|
-
var subItem=item.BottomButton;
|
|
5268
|
-
if (IFrameSplitOperator.IsBool(subItem.Enable)) chart.ChartCorssCursor.BottomButton.Enable=subItem.Enable;
|
|
5269
|
-
}
|
|
5270
|
-
|
|
5271
|
-
if (IFrameSplitOperator.IsNumber(item.PriceFormatType)) chart.ChartCorssCursor.StringFormatY.PriceFormatType=item.PriceFormatType;
|
|
5272
|
-
if (IFrameSplitOperator.IsNumber(item.DataFormatType)) chart.ChartCorssCursor.StringFormatY.DataFormatType=item.DataFormatType;
|
|
5273
|
-
|
|
5274
|
-
if (IFrameSplitOperator.IsNumber(item.HPenType)) chart.ChartCorssCursor.HPenType=item.HPenType;
|
|
5275
|
-
if (IFrameSplitOperator.IsNumber(item.VPenType)) chart.ChartCorssCursor.VPenType=item.VPenType;
|
|
5276
|
-
if (IFrameSplitOperator.IsBool(item.EnableKeyboard)) chart.ChartCorssCursor.EnableKeyboard=item.EnableKeyboard;
|
|
5277
|
-
if (IFrameSplitOperator.IsBool(item.EnableDBClick)) chart.ChartCorssCursor.EnableDBClick=item.EnableDBClick;
|
|
5278
|
-
if (IFrameSplitOperator.IsBool(item.IsShowCorssPoint)) chart.ChartCorssCursor.CorssPointConfig.Enable=item.IsShowCorssPoint;
|
|
5279
|
-
if (IFrameSplitOperator.IsNumber(item.VLineType)) chart.ChartCorssCursor.VLineType=item.VLineType;
|
|
5280
|
-
|
|
5281
5275
|
if (item.TextStyle)
|
|
5282
5276
|
{
|
|
5283
5277
|
if (item.TextStyle.Right) //右侧输出样式
|
|
@@ -7193,6 +7187,7 @@ var JSCHART_DATA_FIELD_ID=
|
|
|
7193
7187
|
KLINE_COLOR_DATA:66, //K线自定义颜色数据
|
|
7194
7188
|
KLINE_DAY_EXTENDDATA:25,
|
|
7195
7189
|
KLINE_MINUTE_EXTENDDATA:25,
|
|
7190
|
+
KLINE_TICK_EXTENDDATA:25,
|
|
7196
7191
|
|
|
7197
7192
|
//OrderBook Heatmap
|
|
7198
7193
|
KLINE_HEATMAP:67,
|
|
@@ -64936,6 +64931,7 @@ function HQPriceStringFormat()
|
|
|
64936
64931
|
|
|
64937
64932
|
this.PriceFormatType=0; //主窗口格式 0=默认 1=科学计数
|
|
64938
64933
|
this.DataFormatType=0; //副图指标格式 0=默认 1=科学计数
|
|
64934
|
+
this.DecimalsConfig={ Value:2, Type:0 }; //小数设置, Value:小数位数 , Type: 0=默认 1=跟指标标题一致
|
|
64939
64935
|
|
|
64940
64936
|
this.GetEventCallback
|
|
64941
64937
|
|
|
@@ -65034,7 +65030,7 @@ function HQPriceStringFormat()
|
|
|
65034
65030
|
if (!this.Value) return false;
|
|
65035
65031
|
|
|
65036
65032
|
this.PercentageText=null;
|
|
65037
|
-
var defaultfloatPrecision=
|
|
65033
|
+
var defaultfloatPrecision=this.DecimalsConfig.Value; //价格小数位数
|
|
65038
65034
|
if (this.FrameID==0) //第1个窗口显示原始价格
|
|
65039
65035
|
{
|
|
65040
65036
|
var defaultfloatPrecision=GetfloatPrecision(this.Symbol);
|
|
@@ -65083,6 +65079,7 @@ function HQPriceStringFormat()
|
|
|
65083
65079
|
}
|
|
65084
65080
|
else if (this.FrameID==1)
|
|
65085
65081
|
{
|
|
65082
|
+
defaultfloatPrecision=this.GetIndexTitleFloatPrecision(this.FrameID);
|
|
65086
65083
|
if (this.DataFormatType==1)
|
|
65087
65084
|
{
|
|
65088
65085
|
this.Text=IFrameSplitOperator.FormatValueThousandsString(this.Value,defaultfloatPrecision);
|
|
@@ -65115,6 +65112,7 @@ function HQPriceStringFormat()
|
|
|
65115
65112
|
}
|
|
65116
65113
|
else
|
|
65117
65114
|
{
|
|
65115
|
+
defaultfloatPrecision=this.GetIndexTitleFloatPrecision(this.FrameID);
|
|
65118
65116
|
if (this.DataFormatType==1) this.Text=IFrameSplitOperator.FormatValueThousandsString(this.Value,defaultfloatPrecision);
|
|
65119
65117
|
else this.Text=IFrameSplitOperator.FormatValueString(this.Value,defaultfloatPrecision,this.LanguageID);
|
|
65120
65118
|
if (IFrameSplitOperator.IsNumber(this.RValue)) this.RText=IFrameSplitOperator.FormatValueString(this.RValue,defaultfloatPrecision,this.LanguageID);
|
|
@@ -65160,6 +65158,23 @@ function HQPriceStringFormat()
|
|
|
65160
65158
|
return true;
|
|
65161
65159
|
}
|
|
65162
65160
|
|
|
65161
|
+
//获取指标标题小数位数
|
|
65162
|
+
this.GetIndexTitleFloatPrecision=function(frameID)
|
|
65163
|
+
{
|
|
65164
|
+
var dec=this.DecimalsConfig.Value;
|
|
65165
|
+
if (this.DecimalsConfig.Type===0) return dec;
|
|
65166
|
+
|
|
65167
|
+
if (frameID<0) return dec;
|
|
65168
|
+
if (!this.HQChart) return dec;
|
|
65169
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.HQChart.WindowIndex)) return dec;
|
|
65170
|
+
var item=this.HQChart.WindowIndex[frameID];
|
|
65171
|
+
if (!item) return dec;
|
|
65172
|
+
|
|
65173
|
+
if (IFrameSplitOperator.IsNumber(item.FloatPrecision)) dec=item.FloatPrecision;
|
|
65174
|
+
|
|
65175
|
+
return dec;
|
|
65176
|
+
}
|
|
65177
|
+
|
|
65163
65178
|
//深度图刻度
|
|
65164
65179
|
this.GetExtendPaintData=function(floatPrecision)
|
|
65165
65180
|
{
|
|
@@ -90316,14 +90331,26 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
90316
90331
|
{
|
|
90317
90332
|
var self=this;
|
|
90318
90333
|
var start=0;
|
|
90319
|
-
|
|
90334
|
+
var hisData=this.GetKData();
|
|
90335
|
+
var dateRange=hisData.GetDateRange();
|
|
90336
|
+
|
|
90320
90337
|
if (this.NetworkFilter)
|
|
90321
90338
|
{
|
|
90339
|
+
var kLineDrawType=this.GetKLineDrawType();
|
|
90322
90340
|
var obj=
|
|
90323
90341
|
{
|
|
90324
90342
|
Name:'KLineChartContainer::RequestTickRealtimeData', //类名::
|
|
90325
90343
|
Explain:'当天最新分笔数据',
|
|
90326
|
-
Request:
|
|
90344
|
+
Request:
|
|
90345
|
+
{
|
|
90346
|
+
Url:self.TickApiUrl,
|
|
90347
|
+
Data:
|
|
90348
|
+
{
|
|
90349
|
+
symbol:self.Symbol, period:this.Period, right:this.Right,
|
|
90350
|
+
dateRange:dateRange, klineDrawType:kLineDrawType
|
|
90351
|
+
},
|
|
90352
|
+
Type:'POST'
|
|
90353
|
+
},
|
|
90327
90354
|
Self:this,
|
|
90328
90355
|
PreventDefault:false
|
|
90329
90356
|
};
|
|
@@ -90336,29 +90363,14 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
90336
90363
|
|
|
90337
90364
|
if (obj.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
|
|
90338
90365
|
}
|
|
90339
|
-
|
|
90340
|
-
JSNetwork.HttpRequest({
|
|
90341
|
-
url: self.TickApiUrl,
|
|
90342
|
-
data:{"symbol":self.Symbol, start:start-10, end:start+1000 },
|
|
90343
|
-
type:"post",
|
|
90344
|
-
dataType: "json",
|
|
90345
|
-
async:true,
|
|
90346
|
-
success: function (data)
|
|
90347
|
-
{
|
|
90348
|
-
self.ChartSplashPaint.EnableSplash(false);
|
|
90349
|
-
self.RecvTickRealtimeData(data);
|
|
90350
|
-
self.AutoUpdate();
|
|
90351
|
-
}
|
|
90352
|
-
});
|
|
90353
90366
|
}
|
|
90354
90367
|
|
|
90355
90368
|
this.RecvTickRealtimeData=function(data)
|
|
90356
90369
|
{
|
|
90357
|
-
|
|
90358
|
-
|
|
90359
|
-
else
|
|
90360
|
-
|
|
90361
|
-
if (!aryDayData || aryDayData.length<=0) return;
|
|
90370
|
+
var aryDayData=null;
|
|
90371
|
+
if (data.ver==2.0) aryDayData=KLineChartContainer.JsonDataToTickDataV2(data); //增量数据
|
|
90372
|
+
else aryDayData=KLineChartContainer.JsonDataToTickData(data); //增量数据
|
|
90373
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(aryDayData)) return;
|
|
90362
90374
|
|
|
90363
90375
|
var redraw=false; //强制重绘
|
|
90364
90376
|
if (data.redraw==true) redraw=true;
|
|
@@ -90368,7 +90380,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
90368
90380
|
var lastTime=0;
|
|
90369
90381
|
if (source.length>0) lastTime=source[source.length-1].Time;
|
|
90370
90382
|
var newCount=0;
|
|
90371
|
-
for(var i
|
|
90383
|
+
for(var i=0; i<aryDayData.length; ++i)
|
|
90372
90384
|
{
|
|
90373
90385
|
var item=aryDayData[i];
|
|
90374
90386
|
if (item.Time<=lastTime) continue;
|
|
@@ -95353,20 +95365,24 @@ KLineChartContainer.JsonDataToTickDataV2=function(data)
|
|
|
95353
95365
|
{
|
|
95354
95366
|
var aryDayData=[];
|
|
95355
95367
|
if (!IFrameSplitOperator.IsNonEmptyArray(data.data)) return aryDayData;
|
|
95356
|
-
|
|
95368
|
+
var extendDataIndex=JSCHART_DATA_FIELD_ID.KLINE_TICK_EXTENDDATA;
|
|
95357
95369
|
for(var i=0;i<data.data.length;++i)
|
|
95358
95370
|
{
|
|
95359
95371
|
var item = new HistoryData();
|
|
95360
|
-
var tick=data.data[i]; //[ date, time, yClose, price,
|
|
95372
|
+
var tick=data.data[i]; //[ date, time, yClose, price, vol, amount, flag,]
|
|
95361
95373
|
if (!tick) continue;
|
|
95362
95374
|
|
|
95363
95375
|
item.Date = tick[0];
|
|
95364
95376
|
item.Time=tick[1];
|
|
95365
95377
|
item.YClose = tick[2];
|
|
95366
95378
|
item.Low=item.High=item.Close=item.Open = tick[3];
|
|
95379
|
+
item.Vol = tick[4]; //原始单位股
|
|
95380
|
+
item.Amount = tick[5];
|
|
95381
|
+
item.Flag=tick[6];
|
|
95382
|
+
|
|
95367
95383
|
aryDayData.push(item);
|
|
95368
95384
|
|
|
95369
|
-
if (tick[
|
|
95385
|
+
if (tick[extendDataIndex]) item.ExtendData=tick[extendDataIndex];
|
|
95370
95386
|
}
|
|
95371
95387
|
|
|
95372
95388
|
return aryDayData;
|
|
@@ -118437,6 +118453,32 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
118437
118453
|
return result;
|
|
118438
118454
|
}
|
|
118439
118455
|
|
|
118456
|
+
//VARCAT6(A,B,C,D,E,F):将六个字符串A,B,C,D,E,F相加成一个字符串.
|
|
118457
|
+
//每个数据都进行序列运算,若用于多股选股,建议换用STRCAT6
|
|
118458
|
+
//用法: VARCAT6('多头',VAR2STR(C,2),' ',VAR2STR(O,2),' ',VAR2STR(MA(C,5),2))将六个字符串相加成一个字符串
|
|
118459
|
+
this.VARCAT6=function(data,data2,data3,data4,data5)
|
|
118460
|
+
{
|
|
118461
|
+
var aryData=[];
|
|
118462
|
+
if (Array.isArray(data) || IFrameSplitOperator.IsString(data)) aryData.push(data);
|
|
118463
|
+
if (Array.isArray(data2) || IFrameSplitOperator.IsString(data2)) aryData.push(data2);
|
|
118464
|
+
if (Array.isArray(data3) || IFrameSplitOperator.IsString(data3)) aryData.push(data3);
|
|
118465
|
+
if (Array.isArray(data4) || IFrameSplitOperator.IsString(data4)) aryData.push(data4);
|
|
118466
|
+
if (Array.isArray(data5) || IFrameSplitOperator.IsString(data5)) aryData.push(data5);
|
|
118467
|
+
|
|
118468
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(aryData)) return [];
|
|
118469
|
+
if (aryData.length==1) return data;
|
|
118470
|
+
|
|
118471
|
+
var tempData=this.VARCAT(aryData[0], aryData[1]);
|
|
118472
|
+
var result=tempData;
|
|
118473
|
+
for(var i=2;i<aryData.length;++i)
|
|
118474
|
+
{
|
|
118475
|
+
result=this.VARCAT(tempData,aryData[i]);
|
|
118476
|
+
tempData=result;
|
|
118477
|
+
}
|
|
118478
|
+
|
|
118479
|
+
return result;
|
|
118480
|
+
}
|
|
118481
|
+
|
|
118440
118482
|
//FINDSTR(A,B):在字符串A中查找字符串B,如果找到返回1,否则返回0.
|
|
118441
118483
|
//用法: FINDSTR('多头开仓','开仓')在字符串'多头开仓'中查找字符串'开仓',返回1
|
|
118442
118484
|
this.FINDSTR=function(data, data2)
|
|
@@ -118563,6 +118605,8 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
118563
118605
|
this.VAR2STR=function(data,n)
|
|
118564
118606
|
{
|
|
118565
118607
|
var result=[];
|
|
118608
|
+
var dec=0;
|
|
118609
|
+
if (IFrameSplitOperator.IsNumber(n)) dec=n;
|
|
118566
118610
|
if (Array.isArray(data))
|
|
118567
118611
|
{
|
|
118568
118612
|
for(var i=0;i<data.length;++i)
|
|
@@ -118570,13 +118614,13 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
118570
118614
|
result[i]=null;
|
|
118571
118615
|
var item=data[i];
|
|
118572
118616
|
if (this.IsNumber(item))
|
|
118573
|
-
result[i]=item.toFixed(
|
|
118617
|
+
result[i]=item.toFixed(dec);
|
|
118574
118618
|
}
|
|
118575
118619
|
}
|
|
118576
118620
|
else
|
|
118577
118621
|
{
|
|
118578
118622
|
if (this.IsNumber(data))
|
|
118579
|
-
result=data.toFixed(
|
|
118623
|
+
result=data.toFixed(dec);
|
|
118580
118624
|
}
|
|
118581
118625
|
|
|
118582
118626
|
return result;
|
|
@@ -120288,6 +120332,8 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
120288
120332
|
return this.VAR2STR(args[0], args[1]);
|
|
120289
120333
|
case "VARCAT":
|
|
120290
120334
|
return this.VARCAT(args[0], args[1]);
|
|
120335
|
+
case "VARCAT6":
|
|
120336
|
+
return this.VARCAT6(args[0], args[1],args[2], args[3],args[4], args[5]);
|
|
120291
120337
|
case "STRSPACE":
|
|
120292
120338
|
return this.STRSPACE(args[0]);
|
|
120293
120339
|
case "FINDSTR":
|
|
@@ -120500,7 +120546,8 @@ function JSDraw(errorHandler,symbolData)
|
|
|
120500
120546
|
var drawData=[];
|
|
120501
120547
|
var result={ DrawData:drawData, DrawType:'DRAWFLAGTEXT' };
|
|
120502
120548
|
if (!text) return result;
|
|
120503
|
-
|
|
120549
|
+
var bArrayText=Array.isArray(text); //是否是数组字符串
|
|
120550
|
+
|
|
120504
120551
|
if (Array.isArray(condition))
|
|
120505
120552
|
{
|
|
120506
120553
|
if (condition.length<=0) return result;
|
|
@@ -120511,14 +120558,18 @@ function JSDraw(errorHandler,symbolData)
|
|
|
120511
120558
|
drawData[i]=null;
|
|
120512
120559
|
|
|
120513
120560
|
if (isNaN(condition[i]) || !condition[i]) continue;
|
|
120561
|
+
|
|
120562
|
+
var outText=null;
|
|
120563
|
+
if (!bArrayText) outText=text;
|
|
120564
|
+
else if (bArrayText && text[i]) outText=text[i];
|
|
120514
120565
|
|
|
120515
120566
|
if (bSinglePrice)
|
|
120516
120567
|
{
|
|
120517
|
-
drawData[i]={ YValue:price, Text:
|
|
120568
|
+
drawData[i]={ YValue:price, Text:outText };
|
|
120518
120569
|
}
|
|
120519
120570
|
else
|
|
120520
120571
|
{
|
|
120521
|
-
if (IFrameSplitOperator.IsNumber(price[i])) drawData[i]={ YValue:price[i], Text:
|
|
120572
|
+
if (IFrameSplitOperator.IsNumber(price[i])) drawData[i]={ YValue:price[i], Text:outText };
|
|
120522
120573
|
}
|
|
120523
120574
|
}
|
|
120524
120575
|
}
|
|
@@ -120527,13 +120578,17 @@ function JSDraw(errorHandler,symbolData)
|
|
|
120527
120578
|
var bSinglePrice=IFrameSplitOperator.IsNumber(price);
|
|
120528
120579
|
for(var i=0;i<this.SymbolData.Data.Data.length;++i)
|
|
120529
120580
|
{
|
|
120581
|
+
var outText=null;
|
|
120582
|
+
if (!bArrayText) outText=text;
|
|
120583
|
+
else if (bArrayText && text[i]) outText=text[i];
|
|
120584
|
+
|
|
120530
120585
|
if (bSinglePrice)
|
|
120531
120586
|
{
|
|
120532
|
-
drawData[i]={ YValue:price, Text:
|
|
120587
|
+
drawData[i]={ YValue:price, Text:outText };
|
|
120533
120588
|
}
|
|
120534
120589
|
else
|
|
120535
120590
|
{
|
|
120536
|
-
if (IFrameSplitOperator.IsNumber(price[i])) drawData[i]={ YValue:price[i], Text:
|
|
120591
|
+
if (IFrameSplitOperator.IsNumber(price[i])) drawData[i]={ YValue:price[i], Text:outText };
|
|
120537
120592
|
}
|
|
120538
120593
|
}
|
|
120539
120594
|
}
|
|
@@ -130731,6 +130786,7 @@ function JSExplainer(ast,option)
|
|
|
130731
130786
|
["STRCAT", { Name:"STRCAT", Param:{ Count:2 }, ToString:function(args) { return `字符串相加`; } } ],
|
|
130732
130787
|
["STRCAT6",{ Name:"STRCAT6", Param:{ Dynamic:true }, ToString:function(args) { return `字符串相加`; } } ],
|
|
130733
130788
|
["VARCAT", { Name:"VARCAT", Param:{ Count:2 }, ToString:function(args) { return `字符串相加`; } } ],
|
|
130789
|
+
["VARCAT6", { Name:"VARCAT", Param:{ Dynamic:true }, ToString:function(args) { return `字符串相加`; } } ],
|
|
130734
130790
|
["STRSPACE", { Name:"STRSPACE", Param:{ Count:1 }, ToString:function(args) { return `字符串${args[0]}加一空格`; } } ],
|
|
130735
130791
|
["SUBSTR", { Name:"SUBSTR", Param:{ Count:3 }, ToString:function(args) { return `字符串${args[0]}中取一部分`; } } ],
|
|
130736
130792
|
["STRCMP", { Name:"STRCMP", Param:{ Count:2 }, ToString:function(args) { return `字符串${args[0]}和字符串${args[1]}比较`; } } ],
|
|
@@ -149671,7 +149727,7 @@ function ChartReport()
|
|
|
149671
149727
|
|
|
149672
149728
|
this.FormaTimeDrawInfo=function(column, stock, drawInfo, data)
|
|
149673
149729
|
{
|
|
149674
|
-
if (!IFrameSplitOperator.IsNumber(stock.Time)) return;
|
|
149730
|
+
if (!stock || !IFrameSplitOperator.IsNumber(stock.Time)) return;
|
|
149675
149731
|
|
|
149676
149732
|
if (column.ValueType==0) //0=hhmm 1=hhmmss 2=hhmmss.fff
|
|
149677
149733
|
{
|
|
@@ -149689,7 +149745,7 @@ function ChartReport()
|
|
|
149689
149745
|
|
|
149690
149746
|
this.FormaDateDrawInfo=function(column, stock, drawInfo, data)
|
|
149691
149747
|
{
|
|
149692
|
-
if (!IFrameSplitOperator.IsNumber(stock.Date)) return;
|
|
149748
|
+
if (!stock || !IFrameSplitOperator.IsNumber(stock.Date)) return;
|
|
149693
149749
|
|
|
149694
149750
|
if (column.FormatType==0)
|
|
149695
149751
|
drawInfo.Text=IFrameSplitOperator.FormatDateString(stock.Date,"YYYY-MM-DD");
|
|
@@ -167518,7 +167574,7 @@ function HQChartScriptWorker()
|
|
|
167518
167574
|
|
|
167519
167575
|
|
|
167520
167576
|
|
|
167521
|
-
var HQCHART_VERSION="1.1.
|
|
167577
|
+
var HQCHART_VERSION="1.1.15374";
|
|
167522
167578
|
|
|
167523
167579
|
function PrintHQChartVersion()
|
|
167524
167580
|
{
|