hqchart 1.1.14125 → 1.1.14133
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 +116 -382
- package/package.json +1 -1
- package/src/jscommon/umychart.DialogTooltip.js +29 -6
- package/src/jscommon/umychart.complier.js +189 -9
- package/src/jscommon/umychart.js +212 -369
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +402 -379
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +431 -385
|
@@ -7015,6 +7015,13 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
7015
7015
|
this.DialogModifyIndexParam; //指标参数修改
|
|
7016
7016
|
|
|
7017
7017
|
|
|
7018
|
+
this.GetVolUnit=function() //成交量单位
|
|
7019
|
+
{
|
|
7020
|
+
var upperSymbol=this.Symbol?this.Symbol.toUpperCase():null;
|
|
7021
|
+
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
|
|
7022
|
+
return unit;
|
|
7023
|
+
}
|
|
7024
|
+
|
|
7018
7025
|
this.ClearStockCache=function()
|
|
7019
7026
|
{
|
|
7020
7027
|
this.StockCache.Data=null;
|
|
@@ -35358,6 +35365,13 @@ function ChartMinuteVolumBar()
|
|
|
35358
35365
|
return this.DrawLinePoint({ MinuteVolBar:true });
|
|
35359
35366
|
}
|
|
35360
35367
|
|
|
35368
|
+
this.GetVolUnit=function()
|
|
35369
|
+
{
|
|
35370
|
+
var upperSymbol=this.Symbol?this.Symbol.toUpperCase():null;
|
|
35371
|
+
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
|
|
35372
|
+
return unit;
|
|
35373
|
+
}
|
|
35374
|
+
|
|
35361
35375
|
this.Draw=function()
|
|
35362
35376
|
{
|
|
35363
35377
|
var isHScreen = (this.ChartFrame.IsHScreen === true);
|
|
@@ -35380,9 +35394,11 @@ function ChartMinuteVolumBar()
|
|
|
35380
35394
|
var yBottom=this.ChartFrame.GetYFromData(0);
|
|
35381
35395
|
var yPrice=this.YClose; //上一分钟的价格
|
|
35382
35396
|
var data=this.Data;
|
|
35397
|
+
|
|
35383
35398
|
var bShowColorBar=MARKET_SUFFIX_NAME.IsShowMinuteColorVolBar(this.Symbol);
|
|
35384
|
-
|
|
35385
35399
|
if (bShowColorBar) this.Canvas.strokeStyle=this.CustomColor;
|
|
35400
|
+
var unit=this.GetVolUnit();
|
|
35401
|
+
|
|
35386
35402
|
for(var i=data.DataOffset,j=0;i<data.Data.length && j<xPointCount;++i,++j)
|
|
35387
35403
|
{
|
|
35388
35404
|
var item = data.Data[i];
|
|
@@ -35390,7 +35406,7 @@ function ChartMinuteVolumBar()
|
|
|
35390
35406
|
if (!item) continue;
|
|
35391
35407
|
var price=null;
|
|
35392
35408
|
|
|
35393
|
-
vol=item.Vol;
|
|
35409
|
+
vol=item.Vol/unit;
|
|
35394
35410
|
price=item.Close;
|
|
35395
35411
|
|
|
35396
35412
|
if (!vol) continue;
|
|
@@ -35497,6 +35513,7 @@ function ChartMinuteVolumBar()
|
|
|
35497
35513
|
var isHScreen=(this.ChartFrame.IsHScreen===true);
|
|
35498
35514
|
var yPrice=this.YClose; //上一分钟的价格
|
|
35499
35515
|
var yBottom=this.ChartFrame.GetYFromData(0);
|
|
35516
|
+
var unit=this.GetVolUnit();
|
|
35500
35517
|
if (callAutionData.Ver==1.0)
|
|
35501
35518
|
{
|
|
35502
35519
|
for(var i in callAutionData.Data)
|
|
@@ -35507,12 +35524,12 @@ function ChartMinuteVolumBar()
|
|
|
35507
35524
|
if (isBeforeOpen)
|
|
35508
35525
|
{
|
|
35509
35526
|
var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);
|
|
35510
|
-
var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[0]);
|
|
35527
|
+
var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[0]/unit);
|
|
35511
35528
|
}
|
|
35512
35529
|
else
|
|
35513
35530
|
{
|
|
35514
35531
|
var x=this.ChartFrame.GetRightExtendXFromIndex(i,callAutionData);
|
|
35515
|
-
var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[0]);
|
|
35532
|
+
var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[0]/unit);
|
|
35516
35533
|
}
|
|
35517
35534
|
|
|
35518
35535
|
|
|
@@ -35545,13 +35562,13 @@ function ChartMinuteVolumBar()
|
|
|
35545
35562
|
if (isBeforeOpen)
|
|
35546
35563
|
{
|
|
35547
35564
|
var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);
|
|
35548
|
-
var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[0],false, { Range:range });
|
|
35565
|
+
var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[0]/unit,false, { Range:range });
|
|
35549
35566
|
}
|
|
35550
35567
|
else
|
|
35551
35568
|
{
|
|
35552
35569
|
var x=this.ChartFrame.GetRightExtendXFromIndex(i,callAutionData);
|
|
35553
|
-
if (this.ShareAfterVol==1) var y=this.ChartFrame.GetYFromData(item.Vol[0]);
|
|
35554
|
-
else var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[0],false, { Range:range });
|
|
35570
|
+
if (this.ShareAfterVol==1) var y=this.ChartFrame.GetYFromData(item.Vol[0]/unit);
|
|
35571
|
+
else var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[0]/unit,false, { Range:range });
|
|
35555
35572
|
}
|
|
35556
35573
|
|
|
35557
35574
|
this.Canvas.strokeStyle = this.GetBarColor(item.ColorID);
|
|
@@ -35575,13 +35592,13 @@ function ChartMinuteVolumBar()
|
|
|
35575
35592
|
if (isBeforeOpen)
|
|
35576
35593
|
{
|
|
35577
35594
|
var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);
|
|
35578
|
-
var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[1],false, { Range:range });
|
|
35595
|
+
var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[1]/unit,false, { Range:range });
|
|
35579
35596
|
}
|
|
35580
35597
|
else
|
|
35581
35598
|
{
|
|
35582
35599
|
var x=this.ChartFrame.GetRightExtendXFromIndex(i,callAutionData);
|
|
35583
|
-
if (this.ShareAfterVol==1) var y=this.ChartFrame.GetYFromData(item.Vol[1]);
|
|
35584
|
-
else var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[1],false, { Range:range });
|
|
35600
|
+
if (this.ShareAfterVol==1) var y=this.ChartFrame.GetYFromData(item.Vol[1]/unit);
|
|
35601
|
+
else var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[1]/unit,false, { Range:range });
|
|
35585
35602
|
}
|
|
35586
35603
|
|
|
35587
35604
|
this.Canvas.strokeStyle = this.GetBarColor(item.ColorID);
|
|
@@ -35630,6 +35647,7 @@ function ChartMinuteVolumBar()
|
|
|
35630
35647
|
|
|
35631
35648
|
this.GetMaxMin=function()
|
|
35632
35649
|
{
|
|
35650
|
+
var unit=this.GetVolUnit();
|
|
35633
35651
|
var xPointCount=this.ChartFrame.XPointCount;
|
|
35634
35652
|
var start=this.Data.DataOffset;
|
|
35635
35653
|
if (this.ChartFrame.GlobalOption && this.ChartFrame.GlobalOption.IsValueFullRange===true)
|
|
@@ -35646,10 +35664,9 @@ function ChartMinuteVolumBar()
|
|
|
35646
35664
|
{
|
|
35647
35665
|
var item = this.Data.Data[i];
|
|
35648
35666
|
if (!item || !item.Vol) continue;
|
|
35649
|
-
|
|
35650
|
-
if (range.Max <
|
|
35667
|
+
var value=item.Vol/unit;
|
|
35668
|
+
if (range.Max == null || range.Max < value) range.Max = value;
|
|
35651
35669
|
}
|
|
35652
|
-
|
|
35653
35670
|
|
|
35654
35671
|
if (this.ShareAfterVol==1)
|
|
35655
35672
|
{
|
|
@@ -39386,6 +39403,136 @@ function ChartDrawNumber()
|
|
|
39386
39403
|
}
|
|
39387
39404
|
}
|
|
39388
39405
|
|
|
39406
|
+
function ChartDrawLastBarText()
|
|
39407
|
+
{
|
|
39408
|
+
this.newMethod=IChartPainting; //派生
|
|
39409
|
+
this.newMethod();
|
|
39410
|
+
delete this.newMethod;
|
|
39411
|
+
|
|
39412
|
+
this.ClassName='ChartDrawLastBarText'; //类名
|
|
39413
|
+
this.LastBarItem=null;
|
|
39414
|
+
|
|
39415
|
+
this.TextSize=
|
|
39416
|
+
{
|
|
39417
|
+
Max: g_JSChartResource.DRAWICON.Text.MaxSize, Min:g_JSChartResource.DRAWICON.Text.MinSize, //字体的最大最小值
|
|
39418
|
+
Zoom:{ Type:g_JSChartResource.DRAWICON.Text.Zoom.Type , Value:g_JSChartResource.DRAWICON.Text.Zoom.Value }, //放大倍数
|
|
39419
|
+
FontName:g_JSChartResource.DRAWICON.Text.FontName,
|
|
39420
|
+
YOffset:g_JSChartResource.DRAWICON.Text.YOffset
|
|
39421
|
+
}
|
|
39422
|
+
|
|
39423
|
+
this.IconSize=
|
|
39424
|
+
{
|
|
39425
|
+
Max: g_JSChartResource.DRAWICON.Icon.MaxSize, Min:g_JSChartResource.DRAWICON.Icon.MinSize, //图标的最大最小值
|
|
39426
|
+
Zoom:{ Type:g_JSChartResource.DRAWICON.Icon.Zoom.Type , Value:g_JSChartResource.DRAWICON.Icon.Zoom.Value }, //放大倍数
|
|
39427
|
+
YOffset:g_JSChartResource.DRAWICON.Icon.YOffset //Direction==2的向下偏移
|
|
39428
|
+
};
|
|
39429
|
+
|
|
39430
|
+
this.IconFamily=g_JSChartResource.DRAWLASTICON.Family;
|
|
39431
|
+
|
|
39432
|
+
this.ReloadResource=function(resource)
|
|
39433
|
+
{
|
|
39434
|
+
this.TextSize=
|
|
39435
|
+
{
|
|
39436
|
+
Max: g_JSChartResource.DRAWTEXT.MaxSize, Min:g_JSChartResource.DRAWTEXT.MinSize, //字体的最大最小值
|
|
39437
|
+
Zoom:{ Type:g_JSChartResource.DRAWTEXT.Zoom.Type , Value:g_JSChartResource.DRAWTEXT.Zoom.Value }, //放大倍数
|
|
39438
|
+
FontName:g_JSChartResource.DRAWTEXT.FontName,
|
|
39439
|
+
};
|
|
39440
|
+
|
|
39441
|
+
this.IconSize=
|
|
39442
|
+
{
|
|
39443
|
+
Max: g_JSChartResource.DRAWICON.Icon.MaxSize, Min:g_JSChartResource.DRAWICON.Icon.MinSize, //图标的最大最小值
|
|
39444
|
+
Zoom:{ Type:g_JSChartResource.DRAWICON.Icon.Zoom.Type , Value:g_JSChartResource.DRAWICON.Icon.Zoom.Value }, //放大倍数
|
|
39445
|
+
};
|
|
39446
|
+
|
|
39447
|
+
this.IconFamily=g_JSChartResource.DRAWLASTICON.Family;
|
|
39448
|
+
}
|
|
39449
|
+
|
|
39450
|
+
this.Draw=function()
|
|
39451
|
+
{
|
|
39452
|
+
if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
|
|
39453
|
+
if (this.IsShowIndexTitleOnly()) return;
|
|
39454
|
+
if (this.IsHideScriptIndex()) return;
|
|
39455
|
+
if (!this.LastBarItem) return;
|
|
39456
|
+
if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return;
|
|
39457
|
+
|
|
39458
|
+
this.IsHScreen=(this.ChartFrame.IsHScreen===true);
|
|
39459
|
+
var xPointCount=this.ChartFrame.XPointCount;
|
|
39460
|
+
var offset=this.Data.DataOffset;
|
|
39461
|
+
var index=offset+xPointCount;
|
|
39462
|
+
if (index<this.Data.Data.length) return;
|
|
39463
|
+
var lastIndex=(this.Data.Data.length-1)-offset;
|
|
39464
|
+
var x=this.ChartFrame.GetXFromIndex(lastIndex);
|
|
39465
|
+
var item=this.LastBarItem;
|
|
39466
|
+
|
|
39467
|
+
if (item.Value=="Top") y=top;
|
|
39468
|
+
else if (item.Value=="Bottom") y=bottom;
|
|
39469
|
+
else y=this.ChartFrame.GetYFromData(item.Value, false);
|
|
39470
|
+
if (IFrameSplitOperator.IsNumber(item.YOffset)) y+=item.YOffset; //Y轴偏移
|
|
39471
|
+
if (IFrameSplitOperator.IsNumber(item.XOffset)) x+=item.XOffset;
|
|
39472
|
+
|
|
39473
|
+
this.Canvas.save();
|
|
39474
|
+
this.ClipClient(this.IsHScreen);
|
|
39475
|
+
|
|
39476
|
+
//文本
|
|
39477
|
+
if (item.Text) this.DrawLastText(item, x, y);
|
|
39478
|
+
else if (item.Icon) this.DrawLastIcon(item, x, y);
|
|
39479
|
+
|
|
39480
|
+
this.Canvas.restore();
|
|
39481
|
+
}
|
|
39482
|
+
|
|
39483
|
+
this.DrawLastText=function(item,x,y)
|
|
39484
|
+
{
|
|
39485
|
+
var dataWidth=this.ChartFrame.DataWidth;
|
|
39486
|
+
var distanceWidth=this.ChartFrame.DistanceWidth;
|
|
39487
|
+
var font=this.GetDynamicFont(dataWidth,distanceWidth,this.TextSize.Max,this.TextSize.Min,this.TextSize.Zoom,this.TextSize.FontName);
|
|
39488
|
+
|
|
39489
|
+
var textBaseline='bottom';
|
|
39490
|
+
if (item.TextBaseline) textBaseline=item.TextBaseline;
|
|
39491
|
+
var textAlign="center";
|
|
39492
|
+
if (item.TextAlign) textAlign=item.TextAlign;
|
|
39493
|
+
|
|
39494
|
+
this.Canvas.font=font;
|
|
39495
|
+
this.Canvas.textBaseline=textBaseline;
|
|
39496
|
+
this.Canvas.textAlign=textAlign;
|
|
39497
|
+
this.Canvas.fillStyle = item.Color;
|
|
39498
|
+
this.Canvas.fillText(item.Text, x, y);
|
|
39499
|
+
}
|
|
39500
|
+
|
|
39501
|
+
this.DrawLastIcon=function(item,x,y)
|
|
39502
|
+
{
|
|
39503
|
+
var dataWidth=this.ChartFrame.DataWidth;
|
|
39504
|
+
var distanceWidth=this.ChartFrame.DistanceWidth;
|
|
39505
|
+
var iconSize=this.GetDynamicIconSize(dataWidth,distanceWidth,this.IconSize.Max,this.IconSize.Min,this.IconSize.Zoom);
|
|
39506
|
+
var font=`${iconSize}px ${this.IconFamily}`;
|
|
39507
|
+
|
|
39508
|
+
var textBaseline='bottom';
|
|
39509
|
+
if (item.TextBaseline) textBaseline=item.TextBaseline;
|
|
39510
|
+
var textAlign="center";
|
|
39511
|
+
if (item.TextAlign) textAlign=item.TextAlign;
|
|
39512
|
+
|
|
39513
|
+
this.Canvas.font=font;
|
|
39514
|
+
this.Canvas.textBaseline=textBaseline;
|
|
39515
|
+
this.Canvas.textAlign=textAlign;
|
|
39516
|
+
this.Canvas.fillStyle = item.Color;
|
|
39517
|
+
this.Canvas.fillText(item.Icon.Symbol, x, y);
|
|
39518
|
+
}
|
|
39519
|
+
|
|
39520
|
+
this.GetMaxMin=function()
|
|
39521
|
+
{
|
|
39522
|
+
var range={ Min:null, Max:null };
|
|
39523
|
+
if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return range;
|
|
39524
|
+
var xPointCount=this.ChartFrame.XPointCount;
|
|
39525
|
+
var offset=this.Data.DataOffset;
|
|
39526
|
+
var index=offset+xPointCount;
|
|
39527
|
+
if (index<this.Data.Data.length) return range;
|
|
39528
|
+
if (!this.LastBarItem) return range;
|
|
39529
|
+
|
|
39530
|
+
if (IFrameSplitOperator.IsNumber(this.LastBarItem.Value)) range.Max=range.Min=this.LastBarItem.Value;
|
|
39531
|
+
|
|
39532
|
+
return range;
|
|
39533
|
+
}
|
|
39534
|
+
}
|
|
39535
|
+
|
|
39389
39536
|
//直线 水平直线 只有1个数据
|
|
39390
39537
|
function ChartStraightLine()
|
|
39391
39538
|
{
|
|
@@ -46589,6 +46736,7 @@ function KLineTooltipPaint()
|
|
|
46589
46736
|
var upperSymbol;
|
|
46590
46737
|
if (this.HQChart.Symbol) upperSymbol=this.HQChart.Symbol.toUpperCase();
|
|
46591
46738
|
var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
|
|
46739
|
+
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
|
|
46592
46740
|
|
|
46593
46741
|
var aryText=[];
|
|
46594
46742
|
var result={ AryText:aryText };
|
|
@@ -46672,7 +46820,7 @@ function KLineTooltipPaint()
|
|
|
46672
46820
|
title=g_JSChartLocalization.GetText('Tooltip-Vol',this.LanguageID);
|
|
46673
46821
|
var vol=item.Vol;
|
|
46674
46822
|
if (upperSymbol && MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol)) vol/=100; //A股统一转成手
|
|
46675
|
-
text=IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);
|
|
46823
|
+
text=IFrameSplitOperator.FromatIntegerString(vol/unit,2,this.LanguageID);
|
|
46676
46824
|
aryText.push({Title:title, TitleColor:this.TitleColor, Text:text, Color:this.VolColor });
|
|
46677
46825
|
}
|
|
46678
46826
|
|
|
@@ -47049,6 +47197,7 @@ function MinuteTooltipPaint()
|
|
|
47049
47197
|
if (this.HQChart.Symbol) upperSymbol=this.HQChart.Symbol.toUpperCase();
|
|
47050
47198
|
var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
|
|
47051
47199
|
var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
|
|
47200
|
+
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
|
|
47052
47201
|
|
|
47053
47202
|
this.YClose=this.TitlePaint.YClose;
|
|
47054
47203
|
this.YClose=item.YClose;
|
|
@@ -47115,7 +47264,7 @@ function MinuteTooltipPaint()
|
|
|
47115
47264
|
if (IFrameSplitOperator.IsNumber(vol))
|
|
47116
47265
|
{
|
|
47117
47266
|
title=g_JSChartLocalization.GetText('Tooltip-Vol',this.LanguageID);
|
|
47118
|
-
var text=IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);
|
|
47267
|
+
var text=IFrameSplitOperator.FromatIntegerString(vol/unit,2,this.LanguageID);
|
|
47119
47268
|
aryText.push({Title:title, TitleColor:this.TitleColor, Text:text, Color:this.VolColor });
|
|
47120
47269
|
}
|
|
47121
47270
|
|
|
@@ -47136,134 +47285,6 @@ function MinuteTooltipPaint()
|
|
|
47136
47285
|
|
|
47137
47286
|
return result;
|
|
47138
47287
|
}
|
|
47139
|
-
|
|
47140
|
-
/*
|
|
47141
|
-
this.DrawTooltipData=function(item)
|
|
47142
|
-
{
|
|
47143
|
-
//JSConsole.Chart.Log('[KLineTooltipPaint::DrawKLineData] ', item);
|
|
47144
|
-
if (!this.HQChart.Symbol) return;
|
|
47145
|
-
|
|
47146
|
-
var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
|
|
47147
|
-
var left=this.GetLeft()+2*GetDevicePixelRatio();
|
|
47148
|
-
var top=this.GetTop()+3*GetDevicePixelRatio();
|
|
47149
|
-
this.YClose=this.KLineTitlePaint.YClose;
|
|
47150
|
-
var upperSymbol=this.HQChart.Symbol.toUpperCase();
|
|
47151
|
-
|
|
47152
|
-
if (this.IsHScreen)
|
|
47153
|
-
{
|
|
47154
|
-
this.Canvas.save();
|
|
47155
|
-
var x=this.GetLeft()+this.Height, y=this.GetTop();
|
|
47156
|
-
|
|
47157
|
-
this.Canvas.translate(x, y);
|
|
47158
|
-
this.Canvas.rotate(90 * Math.PI / 180);
|
|
47159
|
-
|
|
47160
|
-
//x, y 作为原点
|
|
47161
|
-
left=2*GetDevicePixelRatio();
|
|
47162
|
-
top=3*GetDevicePixelRatio();
|
|
47163
|
-
}
|
|
47164
|
-
|
|
47165
|
-
this.Canvas.textBaseline="top";
|
|
47166
|
-
this.Canvas.textAlign="left";
|
|
47167
|
-
this.Canvas.font=this.Font[0];
|
|
47168
|
-
var labelWidth=this.Canvas.measureText('擎: ').width;
|
|
47169
|
-
|
|
47170
|
-
var aryDateTime=item.DateTime.split(' ');
|
|
47171
|
-
if (aryDateTime && aryDateTime.length==2)
|
|
47172
|
-
{
|
|
47173
|
-
var text=IFrameSplitOperator.FormatDateString(aryDateTime[0]);
|
|
47174
|
-
this.Canvas.fillStyle=this.TitleColor;
|
|
47175
|
-
this.Canvas.fillText(text, left,top);
|
|
47176
|
-
|
|
47177
|
-
top+=this.LineHeight;
|
|
47178
|
-
text=IFrameSplitOperator.FormatTimeString(aryDateTime[1]);
|
|
47179
|
-
this.Canvas.fillText(text, left,top);
|
|
47180
|
-
}
|
|
47181
|
-
|
|
47182
|
-
var close=item.Close;
|
|
47183
|
-
var increase=item.Increase;
|
|
47184
|
-
var vol=item.Vol;
|
|
47185
|
-
var amount=item.Amount;
|
|
47186
|
-
if (item.Before) //读取盘前数据
|
|
47187
|
-
{
|
|
47188
|
-
close=item.Before.Close;
|
|
47189
|
-
increase=item.Before.Increase;
|
|
47190
|
-
vol=item.Before.Vol;
|
|
47191
|
-
amount=item.Before.Amount;
|
|
47192
|
-
}
|
|
47193
|
-
|
|
47194
|
-
//最新价格
|
|
47195
|
-
top+=this.LineHeight;
|
|
47196
|
-
this.Canvas.fillStyle=this.TitleColor;
|
|
47197
|
-
text=g_JSChartLocalization.GetText('Tooltip-Price',this.LanguageID);
|
|
47198
|
-
this.Canvas.fillText(text, left,top);
|
|
47199
|
-
var color=this.KLineTitlePaint.GetColor(close,this.YClose);
|
|
47200
|
-
var text=close.toFixed(defaultfloatPrecision);
|
|
47201
|
-
this.Canvas.fillStyle=color;
|
|
47202
|
-
this.Canvas.fillText(text,left+labelWidth,top);
|
|
47203
|
-
|
|
47204
|
-
var isShowAvPrice=true;
|
|
47205
|
-
if (item.Before) isShowAvPrice=false; //集合竞价均价
|
|
47206
|
-
else if (MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol)) isShowAvPrice=false; //外汇没有均价
|
|
47207
|
-
else if (MARKET_SUFFIX_NAME.IsET(upperSymbol) && !MARKET_SUFFIX_NAME.IsETShowAvPrice(upperSymbol)) isShowAvPrice=false;
|
|
47208
|
-
else if (MARKET_SUFFIX_NAME.IsShowAvPrice && !MARKET_SUFFIX_NAME.IsShowAvPrice(upperSymbol)) isShowAvPrice=false;
|
|
47209
|
-
|
|
47210
|
-
//均价
|
|
47211
|
-
if (isShowAvPrice && IFrameSplitOperator.IsNumber(item.AvPrice) && this.IsShowAveragePrice)
|
|
47212
|
-
{
|
|
47213
|
-
top+=this.LineHeight;
|
|
47214
|
-
this.Canvas.fillStyle=this.TitleColor;
|
|
47215
|
-
text=g_JSChartLocalization.GetText('Tooltip-AvPrice',this.LanguageID);
|
|
47216
|
-
this.Canvas.fillText(text, left,top);
|
|
47217
|
-
var color=this.KLineTitlePaint.GetColor(item.AvPrice,this.YClose);
|
|
47218
|
-
var text=item.AvPrice.toFixed(defaultfloatPrecision);
|
|
47219
|
-
this.Canvas.fillStyle=color;
|
|
47220
|
-
this.Canvas.fillText(text,left+labelWidth,top);
|
|
47221
|
-
}
|
|
47222
|
-
|
|
47223
|
-
//涨幅
|
|
47224
|
-
top+=this.LineHeight;
|
|
47225
|
-
this.Canvas.fillStyle=this.TitleColor;
|
|
47226
|
-
text=g_JSChartLocalization.GetText('Tooltip-Increase',this.LanguageID);
|
|
47227
|
-
this.Canvas.fillText(text, left,top);
|
|
47228
|
-
var value=(close-this.YClose)/this.YClose*100;
|
|
47229
|
-
var color = this.KLineTitlePaint.GetColor(value, 0);
|
|
47230
|
-
var text = value.toFixed(2)+'%';
|
|
47231
|
-
this.Canvas.fillStyle=color;
|
|
47232
|
-
this.Canvas.fillText(text,left+labelWidth,top);
|
|
47233
|
-
|
|
47234
|
-
//成交量
|
|
47235
|
-
if (IFrameSplitOperator.IsNumber(vol))
|
|
47236
|
-
{
|
|
47237
|
-
this.Canvas.fillStyle=this.TitleColor;
|
|
47238
|
-
top+=this.LineHeight;
|
|
47239
|
-
text=g_JSChartLocalization.GetText('Tooltip-Vol',this.LanguageID);
|
|
47240
|
-
this.Canvas.fillText(text, left,top);
|
|
47241
|
-
var text=IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);
|
|
47242
|
-
this.Canvas.fillText(text,left+labelWidth,top);
|
|
47243
|
-
}
|
|
47244
|
-
|
|
47245
|
-
//成交金额
|
|
47246
|
-
if (IFrameSplitOperator.IsNumber(amount))
|
|
47247
|
-
{
|
|
47248
|
-
top+=this.LineHeight;
|
|
47249
|
-
text=g_JSChartLocalization.GetText('Tooltip-Amount',this.LanguageID);
|
|
47250
|
-
this.Canvas.fillText(text, left,top);
|
|
47251
|
-
var text=IFrameSplitOperator.FormatValueString(amount,2,this.LanguageID);
|
|
47252
|
-
this.Canvas.fillText(text,left+labelWidth,top);
|
|
47253
|
-
}
|
|
47254
|
-
|
|
47255
|
-
if (IFrameSplitOperator.IsNumber(item.Position))
|
|
47256
|
-
{
|
|
47257
|
-
top+=this.LineHeight;
|
|
47258
|
-
text=g_JSChartLocalization.GetText('Tooltip-Position',this.LanguageID);
|
|
47259
|
-
this.Canvas.fillText(text, left,top);
|
|
47260
|
-
var text=IFrameSplitOperator.FormatValueString(item.Position,2,this.LanguageID);
|
|
47261
|
-
this.Canvas.fillText(text,left+labelWidth,top);
|
|
47262
|
-
}
|
|
47263
|
-
|
|
47264
|
-
if (this.IsHScreen) this.Canvas.restore();
|
|
47265
|
-
}
|
|
47266
|
-
*/
|
|
47267
47288
|
}
|
|
47268
47289
|
|
|
47269
47290
|
//PC端 分时图tooltip左侧固定
|
|
@@ -47419,6 +47440,7 @@ function MinuteLeftTooltipPaint()
|
|
|
47419
47440
|
if (this.HQChart.Symbol) upperSymbol=this.HQChart.Symbol.toUpperCase();
|
|
47420
47441
|
var defaultfloatPrecision=GetfloatPrecision(upperSymbol);//价格小数位数
|
|
47421
47442
|
if (upperSymbol) isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
|
|
47443
|
+
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
|
|
47422
47444
|
|
|
47423
47445
|
if (drawData.Type==0) //连续交易
|
|
47424
47446
|
{
|
|
@@ -47442,7 +47464,7 @@ function MinuteLeftTooltipPaint()
|
|
|
47442
47464
|
var titleItem=this.ForamtIncrease(item.Close,"PCTooltip-Increase");
|
|
47443
47465
|
if (titleItem) aryText.push(titleItem);
|
|
47444
47466
|
|
|
47445
|
-
var titleItem=this.FormatVol(item.Vol,'PCTooltip-Vol');
|
|
47467
|
+
var titleItem=this.FormatVol(item.Vol/unit,'PCTooltip-Vol');
|
|
47446
47468
|
if (titleItem) aryText.push(titleItem);
|
|
47447
47469
|
|
|
47448
47470
|
if (IFrameSplitOperator.IsNumber(item.Amount))
|
|
@@ -47488,10 +47510,10 @@ function MinuteLeftTooltipPaint()
|
|
|
47488
47510
|
|
|
47489
47511
|
if (IFrameSplitOperator.IsNonEmptyArray(item.Vol))
|
|
47490
47512
|
{
|
|
47491
|
-
var titleItem=this.FormatVol(item.Vol[0],'PCTooltip-AC-Vol');
|
|
47513
|
+
var titleItem=this.FormatVol(item.Vol[0]/unit,'PCTooltip-AC-Vol');
|
|
47492
47514
|
if (titleItem) aryText.push(titleItem);
|
|
47493
47515
|
|
|
47494
|
-
var titleItem=this.FormatVol(item.Vol[1],'PCTooltip-AC-NotMatchVol');
|
|
47516
|
+
var titleItem=this.FormatVol(item.Vol[1]/unit,'PCTooltip-AC-NotMatchVol');
|
|
47495
47517
|
if (titleItem) aryText.push(titleItem);
|
|
47496
47518
|
}
|
|
47497
47519
|
}
|
|
@@ -58151,8 +58173,8 @@ function DynamicKLineTitlePainting()
|
|
|
58151
58173
|
|
|
58152
58174
|
if (IFrameSplitOperator.IsNumber(item.Vol)) //成交量
|
|
58153
58175
|
{
|
|
58154
|
-
var
|
|
58155
|
-
|
|
58176
|
+
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
|
|
58177
|
+
var vol=item.Vol/unit;
|
|
58156
58178
|
var text=g_JSChartLocalization.GetText('KTitle-Vol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);
|
|
58157
58179
|
aryText.push({ Text:text, Color:this.VolColor});
|
|
58158
58180
|
}
|
|
@@ -58582,6 +58604,7 @@ function DynamicMinuteTitlePainting()
|
|
|
58582
58604
|
var upperSymbol=this.Symbol.toUpperCase();
|
|
58583
58605
|
var defaultfloatPrecision=GetfloatPrecision(this.Symbol); //价格小数位数
|
|
58584
58606
|
var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
|
|
58607
|
+
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
|
|
58585
58608
|
|
|
58586
58609
|
var item=data.Data;
|
|
58587
58610
|
var isLastOne=data.IsLastOne;
|
|
@@ -58659,7 +58682,7 @@ function DynamicMinuteTitlePainting()
|
|
|
58659
58682
|
|
|
58660
58683
|
if (IFrameSplitOperator.IsNumber(vol))
|
|
58661
58684
|
{
|
|
58662
|
-
var text=g_JSChartLocalization.GetText('MTitle-Vol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);
|
|
58685
|
+
var text=g_JSChartLocalization.GetText('MTitle-Vol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(vol/unit,2,this.LanguageID);
|
|
58663
58686
|
aryText.push({Text:text, Color:this.VolColor});
|
|
58664
58687
|
}
|
|
58665
58688
|
|
|
@@ -58766,7 +58789,8 @@ function DynamicMinuteTitlePainting()
|
|
|
58766
58789
|
var aryText=[] //{ Color: Text: }
|
|
58767
58790
|
|
|
58768
58791
|
var defaultfloatPrecision=GetfloatPrecision(this.Symbol);//价格小数位数
|
|
58769
|
-
|
|
58792
|
+
var upperSymbol=this.Symbol.toUpperCase();
|
|
58793
|
+
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
|
|
58770
58794
|
//股票名称
|
|
58771
58795
|
if (this.IsShowName) aryText.push({Text:this.Name, Color:this.NameColor});
|
|
58772
58796
|
|
|
@@ -58818,14 +58842,14 @@ function DynamicMinuteTitlePainting()
|
|
|
58818
58842
|
{
|
|
58819
58843
|
var filedName='MTitle-AC-Vol';
|
|
58820
58844
|
if (data.Ver==1.0) filedName="MTitle-Vol";
|
|
58821
|
-
var text=g_JSChartLocalization.GetText(filedName,this.LanguageID)+IFrameSplitOperator.FromatIntegerString(item.Vol[0],2);
|
|
58845
|
+
var text=g_JSChartLocalization.GetText(filedName,this.LanguageID)+IFrameSplitOperator.FromatIntegerString(item.Vol[0]/unit,2);
|
|
58822
58846
|
aryText.push({Text:text, Color:this.VolColor});
|
|
58823
58847
|
}
|
|
58824
58848
|
|
|
58825
58849
|
//未匹配量
|
|
58826
58850
|
if (IFrameSplitOperator.IsNumber(item.Vol[1]) && this.CallAuctionShowTitle.has("MTitle-AC-NotMatchVol"))
|
|
58827
58851
|
{
|
|
58828
|
-
var text=g_JSChartLocalization.GetText('MTitle-AC-NotMatchVol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(item.Vol[1],2);
|
|
58852
|
+
var text=g_JSChartLocalization.GetText('MTitle-AC-NotMatchVol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(item.Vol[1]/unit,2);
|
|
58829
58853
|
aryText.push({Text:text, Color:this.VolColor});
|
|
58830
58854
|
}
|
|
58831
58855
|
|
|
@@ -73615,6 +73639,11 @@ function JSChartResource()
|
|
|
73615
73639
|
Color:"rgb(255,165,0)"
|
|
73616
73640
|
}
|
|
73617
73641
|
|
|
73642
|
+
this.DRAWLASTICON=
|
|
73643
|
+
{
|
|
73644
|
+
Family:'iconfont',
|
|
73645
|
+
}
|
|
73646
|
+
|
|
73618
73647
|
this.POINTDOT=
|
|
73619
73648
|
{
|
|
73620
73649
|
Radius:2*GetDevicePixelRatio()
|
|
@@ -77216,6 +77245,9 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
77216
77245
|
this.Canvas.rect(this.Frame.ChartBorder.GetLeft(),this.Frame.ChartBorder.GetTop(),this.Frame.ChartBorder.GetWidth(),this.Frame.ChartBorder.GetHeight());
|
|
77217
77246
|
isInClient=this.Canvas.isPointInPath(x,y);
|
|
77218
77247
|
|
|
77248
|
+
//PC触摸板双指缩放时deltaY数值在[-20,20]之间
|
|
77249
|
+
if (IFrameSplitOperator.IsNumber(e.deltaY) && Math.abs(e.deltaY)<90) return;
|
|
77250
|
+
|
|
77219
77251
|
var wheelValue=e.wheelDelta;
|
|
77220
77252
|
if (!IFrameSplitOperator.IsObjectExist(e.wheelDelta))
|
|
77221
77253
|
wheelValue=e.deltaY* -0.01;
|
|
@@ -89843,7 +89875,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
|
|
|
89843
89875
|
var symbol=data.stock[0].symbol;
|
|
89844
89876
|
var upperSymbol=symbol.toUpperCase();
|
|
89845
89877
|
var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);
|
|
89846
|
-
|
|
89878
|
+
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
|
|
89847
89879
|
var yClose=data.stock[0].yclose;
|
|
89848
89880
|
var preClose=data.stock[0].yclose; //前一个数据价格
|
|
89849
89881
|
var stockData=data.stock[0];
|
|
@@ -89870,8 +89902,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
|
|
|
89870
89902
|
item.Price=jsData[1];
|
|
89871
89903
|
if (!item.Price) item.Price=preClose;
|
|
89872
89904
|
else preClose=item.Price;
|
|
89873
|
-
|
|
89874
|
-
else item.Vol[0]=jsData[2];
|
|
89905
|
+
item.Vol[0]=jsData[2];
|
|
89875
89906
|
item.Amount=jsData[3];
|
|
89876
89907
|
|
|
89877
89908
|
if (IFrameSplitOperator.IsNumber(jsData[4]) && jsData[4]>19000101) //日期
|
|
@@ -89907,7 +89938,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
|
|
|
89907
89938
|
beforeOpenData.Data.push(item);
|
|
89908
89939
|
}
|
|
89909
89940
|
|
|
89910
|
-
beforeOpenData.VolMax=max;
|
|
89941
|
+
beforeOpenData.VolMax=max/unit;
|
|
89911
89942
|
beforeOpenData.VolMin=0;
|
|
89912
89943
|
}
|
|
89913
89944
|
else if (beforeOpenData.Ver==3.0)
|
|
@@ -89935,7 +89966,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
|
|
|
89935
89966
|
beforeOpenData.Data.push(item);
|
|
89936
89967
|
}
|
|
89937
89968
|
|
|
89938
|
-
beforeOpenData.VolMax=max;
|
|
89969
|
+
beforeOpenData.VolMax=max/unit;
|
|
89939
89970
|
beforeOpenData.VolMin=0;
|
|
89940
89971
|
}
|
|
89941
89972
|
|
|
@@ -89950,12 +89981,14 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
|
|
|
89950
89981
|
var stockData=data.stock[0];
|
|
89951
89982
|
var date=stockData.date; //日期
|
|
89952
89983
|
if (!stockData.afterinfo) return null;
|
|
89953
|
-
|
|
89984
|
+
var symbol=data.stock[0].symbol;
|
|
89985
|
+
var upperSymbol=symbol.toLowerCase();
|
|
89954
89986
|
var afterCloseData={ Data:[], TotalCount:3*60, Ver:2.0, Date:date };
|
|
89955
89987
|
var item=stockData.afterinfo;
|
|
89956
89988
|
if (IFrameSplitOperator.IsNumber(item.totalcount)) afterCloseData.TotalCount=item.totalcount;
|
|
89957
89989
|
if (IFrameSplitOperator.IsNumber(item.ver)) afterCloseData.Ver=item.ver;
|
|
89958
89990
|
var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_AFTERCLOSE_EXTENDDATA; //扩展数据序号
|
|
89991
|
+
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
|
|
89959
89992
|
|
|
89960
89993
|
if (afterCloseData.Ver==1.0)
|
|
89961
89994
|
{
|
|
@@ -90001,7 +90034,7 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
|
|
|
90001
90034
|
afterCloseData.Data.push(item);
|
|
90002
90035
|
}
|
|
90003
90036
|
|
|
90004
|
-
afterCloseData.VolMax=max;
|
|
90037
|
+
afterCloseData.VolMax=max/unit;
|
|
90005
90038
|
afterCloseData.VolMin=0;
|
|
90006
90039
|
}
|
|
90007
90040
|
else if (afterCloseData.Ver==3.0)
|
|
@@ -90028,7 +90061,7 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
|
|
|
90028
90061
|
afterCloseData.Data.push(item);
|
|
90029
90062
|
}
|
|
90030
90063
|
|
|
90031
|
-
afterCloseData.VolMax=max;
|
|
90064
|
+
afterCloseData.VolMax=max/unit;
|
|
90032
90065
|
afterCloseData.VolMin=0;
|
|
90033
90066
|
}
|
|
90034
90067
|
|
|
@@ -90065,8 +90098,7 @@ MinuteChartContainer.JsonDataToMinuteData=function(data,isBeforeData)
|
|
|
90065
90098
|
item.Open=jsData.open;
|
|
90066
90099
|
item.High=jsData.high;
|
|
90067
90100
|
item.Low=jsData.low;
|
|
90068
|
-
|
|
90069
|
-
else item.Vol=jsData.vol;
|
|
90101
|
+
item.Vol=jsData.vol;
|
|
90070
90102
|
item.Amount=jsData.amount;
|
|
90071
90103
|
if (jsData.date>0) date=jsData.date; //分钟数据中有日期 优先使用
|
|
90072
90104
|
item.DateTime=date.toString()+" "+jsData.time.toString();
|
|
@@ -90150,7 +90182,6 @@ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
|
|
|
90150
90182
|
|
|
90151
90183
|
if (jsData[extendDataIndex]) item.ExtendData=jsData[extendDataIndex];
|
|
90152
90184
|
item.DateTime=item.Date.toString()+" "+item.Time.toString();
|
|
90153
|
-
if (isSHSZ) item.Vol=item.Vol/100; //沪深股票原始单位股
|
|
90154
90185
|
|
|
90155
90186
|
if (IFrameSplitOperator.IsNumber(minuteData.YClose) && item.Close)
|
|
90156
90187
|
item.Increase=(item.Close-minuteData.YClose)/minuteData.YClose*100; //涨幅 (最新价格-昨收)/昨收*100;
|
|
@@ -90244,8 +90275,7 @@ MinuteChartContainer.JsonDataToMinuteDataArray=function(data)
|
|
|
90244
90275
|
item.High=jsData[3];
|
|
90245
90276
|
item.Low=jsData[4];
|
|
90246
90277
|
item.Increase=null;
|
|
90247
|
-
|
|
90248
|
-
else item.Vol=jsData[5];
|
|
90278
|
+
item.Vol=jsData[5];
|
|
90249
90279
|
item.Amount=jsData[6];
|
|
90250
90280
|
if (7<jsData.length && jsData[7]>0) item.AvPrice=jsData[7]; //均价
|
|
90251
90281
|
item.DateTime=date.toString()+" "+jsData[0].toString();
|
|
@@ -90324,12 +90354,8 @@ MinuteChartContainer.JsonDataToHistoryMinuteLineColorData=function(data)
|
|
|
90324
90354
|
|
|
90325
90355
|
MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, isBeforeOpen, symbol)
|
|
90326
90356
|
{
|
|
90327
|
-
var
|
|
90328
|
-
|
|
90329
|
-
{
|
|
90330
|
-
var upperSymbol=symbol.toUpperCase();
|
|
90331
|
-
isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);
|
|
90332
|
-
}
|
|
90357
|
+
var upperSymbol=symbol?symbol.toUpperCase():null;
|
|
90358
|
+
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
|
|
90333
90359
|
|
|
90334
90360
|
var date=callAuctionData.Date;
|
|
90335
90361
|
var yClose=callAuctionData.YClose;
|
|
@@ -90349,7 +90375,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
90349
90375
|
item.Price=jsData[1];
|
|
90350
90376
|
if (!item.Price) item.Price=preClose;
|
|
90351
90377
|
else preClose=item.Price;
|
|
90352
|
-
item.Vol[0]=
|
|
90378
|
+
item.Vol[0]=jsData[2]; //沪深股票原始单位股
|
|
90353
90379
|
item.Amount=jsData[3];
|
|
90354
90380
|
if (IFrameSplitOperator.IsNumber(jsData[4])) //日期
|
|
90355
90381
|
item.Date=jsData[4];
|
|
@@ -90384,7 +90410,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
90384
90410
|
callAuctionData.Data.push(item);
|
|
90385
90411
|
}
|
|
90386
90412
|
|
|
90387
|
-
callAuctionData.VolMax=max;
|
|
90413
|
+
callAuctionData.VolMax=max/unit;
|
|
90388
90414
|
callAuctionData.VolMin=0;
|
|
90389
90415
|
}
|
|
90390
90416
|
else if (beforeOpenData.Ver==3.0)
|
|
@@ -90412,7 +90438,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
90412
90438
|
callAuctionData.Data.push(item);
|
|
90413
90439
|
}
|
|
90414
90440
|
|
|
90415
|
-
callAuctionData.VolMax=max;
|
|
90441
|
+
callAuctionData.VolMax=max/unit;
|
|
90416
90442
|
callAuctionData.VolMin=0;
|
|
90417
90443
|
}
|
|
90418
90444
|
}
|
|
@@ -90468,201 +90494,6 @@ MinuteChartContainer.JosnDataToAfterCloseDataArray=function(data)
|
|
|
90468
90494
|
return aryDay;
|
|
90469
90495
|
}
|
|
90470
90496
|
|
|
90471
|
-
/*
|
|
90472
|
-
历史分钟走势图
|
|
90473
|
-
*/
|
|
90474
|
-
/* 废弃 统一使用 MinuteChartContainer
|
|
90475
|
-
function HistoryMinuteChartContainer(uielement)
|
|
90476
|
-
{
|
|
90477
|
-
this.newMethod=MinuteChartContainer; //派生
|
|
90478
|
-
this.newMethod(uielement);
|
|
90479
|
-
delete this.newMethod;
|
|
90480
|
-
|
|
90481
|
-
this.HistoryMinuteApiUrl="http://127.0.0.1:8080/cache/minuteday/day/";
|
|
90482
|
-
this.ClassName='HistoryMinuteChartContainer';
|
|
90483
|
-
|
|
90484
|
-
//创建主图K线画法
|
|
90485
|
-
this.CreateMainKLine=function()
|
|
90486
|
-
{
|
|
90487
|
-
//分钟线
|
|
90488
|
-
var minuteLine=new ChartMinutePriceLine();
|
|
90489
|
-
minuteLine.Canvas=this.Canvas;
|
|
90490
|
-
minuteLine.ChartBorder=this.Frame.SubFrame[0].Frame.ChartBorder;
|
|
90491
|
-
minuteLine.ChartFrame=this.Frame.SubFrame[0].Frame;
|
|
90492
|
-
minuteLine.Name="Minute-Line";
|
|
90493
|
-
minuteLine.Color=g_JSChartResource.Minute.PriceColor;
|
|
90494
|
-
|
|
90495
|
-
this.ChartPaint[0]=minuteLine;
|
|
90496
|
-
|
|
90497
|
-
//分钟线均线
|
|
90498
|
-
var averageLine=new ChartLine();
|
|
90499
|
-
averageLine.Canvas=this.Canvas;
|
|
90500
|
-
averageLine.ChartBorder=this.Frame.SubFrame[0].Frame.ChartBorder;
|
|
90501
|
-
averageLine.ChartFrame=this.Frame.SubFrame[0].Frame;
|
|
90502
|
-
averageLine.Name="Minute-Average-Line";
|
|
90503
|
-
averageLine.Color=g_JSChartResource.Minute.AvPriceColor;
|
|
90504
|
-
this.ChartPaint[1]=averageLine;
|
|
90505
|
-
|
|
90506
|
-
var averageLine=new ChartMinuteVolumBar();
|
|
90507
|
-
averageLine.Color=g_JSChartResource.Minute.VolBarColor;
|
|
90508
|
-
averageLine.Canvas=this.Canvas;
|
|
90509
|
-
averageLine.ChartBorder=this.Frame.SubFrame[1].Frame.ChartBorder;
|
|
90510
|
-
averageLine.ChartFrame=this.Frame.SubFrame[1].Frame;
|
|
90511
|
-
averageLine.Name="Minute-Vol-Bar";
|
|
90512
|
-
this.ChartPaint[2]=averageLine;
|
|
90513
|
-
|
|
90514
|
-
|
|
90515
|
-
this.TitlePaint[0]=new DynamicMinuteTitlePainting();
|
|
90516
|
-
this.TitlePaint[0].Frame=this.Frame.SubFrame[0].Frame;
|
|
90517
|
-
this.TitlePaint[0].Canvas=this.Canvas;
|
|
90518
|
-
this.TitlePaint[0].IsShowDate=true;
|
|
90519
|
-
}
|
|
90520
|
-
|
|
90521
|
-
//设置交易日期
|
|
90522
|
-
this.ChangeTradeDate=function(trdateDate)
|
|
90523
|
-
{
|
|
90524
|
-
if (!trdateDate) return;
|
|
90525
|
-
|
|
90526
|
-
this.TradeDate=trdateDate;
|
|
90527
|
-
this.RequestData(); //更新数据
|
|
90528
|
-
}
|
|
90529
|
-
|
|
90530
|
-
this.RequestData=function()
|
|
90531
|
-
{
|
|
90532
|
-
var date=new Date();
|
|
90533
|
-
var nowDate=date.getFullYear()*10000+(date.getMonth()+1)*100+date.getDate();
|
|
90534
|
-
if (nowDate==this.TradeDate) this.RequestMinuteData();
|
|
90535
|
-
else this.RequestHistoryMinuteData();
|
|
90536
|
-
}
|
|
90537
|
-
|
|
90538
|
-
//请求分钟数据
|
|
90539
|
-
this.RequestHistoryMinuteData=function()
|
|
90540
|
-
{
|
|
90541
|
-
var self=this;
|
|
90542
|
-
var url=this.HistoryMinuteApiUrl+this.TradeDate.toString()+"/"+this.Symbol+".json";
|
|
90543
|
-
|
|
90544
|
-
JSNetwork.HttpRequest({
|
|
90545
|
-
url: url,
|
|
90546
|
-
type:"get",
|
|
90547
|
-
dataType: "json",
|
|
90548
|
-
async:true,
|
|
90549
|
-
success: function (data)
|
|
90550
|
-
{
|
|
90551
|
-
self.ChartSplashPaint.EnableSplash(false);
|
|
90552
|
-
self.RecvHistoryMinuteData(data);
|
|
90553
|
-
},
|
|
90554
|
-
error:function(reqeust)
|
|
90555
|
-
{
|
|
90556
|
-
self.ChartSplashPaint.EnableSplash(false);
|
|
90557
|
-
self.RecvHistoryMinuteError(reqeust);
|
|
90558
|
-
}
|
|
90559
|
-
});
|
|
90560
|
-
}
|
|
90561
|
-
|
|
90562
|
-
this.RecvHistoryMinuteError=function(reqeust)
|
|
90563
|
-
{
|
|
90564
|
-
if (reqeust.status!=404) return;
|
|
90565
|
-
|
|
90566
|
-
var sourceData=new ChartData();
|
|
90567
|
-
this.SourceData=sourceData;
|
|
90568
|
-
|
|
90569
|
-
for(var i in this.ChartPaint)
|
|
90570
|
-
{
|
|
90571
|
-
this.ChartPaint[i].Data=sourceData;
|
|
90572
|
-
if (i==0) this.ChartPaint[i].NotSupportMessage='没有权限访问!';
|
|
90573
|
-
}
|
|
90574
|
-
|
|
90575
|
-
this.TitlePaint[0].Data=this.SourceData; //动态标题
|
|
90576
|
-
this.TitlePaint[0].Symbol=this.Symbol;
|
|
90577
|
-
this.TitlePaint[0].Name=null;
|
|
90578
|
-
|
|
90579
|
-
this.Draw();
|
|
90580
|
-
}
|
|
90581
|
-
|
|
90582
|
-
this.RecvHistoryMinuteData=function(data)
|
|
90583
|
-
{
|
|
90584
|
-
var aryMinuteData=HistoryMinuteChartContainer.JsonDataToMinuteData(data);
|
|
90585
|
-
|
|
90586
|
-
//原始数据
|
|
90587
|
-
var sourceData=new ChartData();
|
|
90588
|
-
sourceData.Data=aryMinuteData;
|
|
90589
|
-
|
|
90590
|
-
this.TradeDate=data.date;
|
|
90591
|
-
|
|
90592
|
-
this.SourceData=sourceData;
|
|
90593
|
-
this.Symbol=data.symbol;
|
|
90594
|
-
this.Name=data.name;
|
|
90595
|
-
|
|
90596
|
-
this.BindMainData(sourceData,data.day.yclose);
|
|
90597
|
-
|
|
90598
|
-
if (this.Frame.SubFrame.length>2)
|
|
90599
|
-
{
|
|
90600
|
-
var bindData=new ChartData();
|
|
90601
|
-
bindData.Data=aryMinuteData;
|
|
90602
|
-
for(var i=2; i<this.Frame.SubFrame.length; ++i)
|
|
90603
|
-
{
|
|
90604
|
-
this.BindIndexData(i,bindData);
|
|
90605
|
-
}
|
|
90606
|
-
}
|
|
90607
|
-
|
|
90608
|
-
this.UpdateFrameMaxMin(); //调整坐标最大 最小值
|
|
90609
|
-
this.Frame.SetSizeChage(true);
|
|
90610
|
-
this.Draw();
|
|
90611
|
-
|
|
90612
|
-
//this.AutoUpdata();
|
|
90613
|
-
}
|
|
90614
|
-
|
|
90615
|
-
}
|
|
90616
|
-
|
|
90617
|
-
//API 返回数据 转化为array[]
|
|
90618
|
-
HistoryMinuteChartContainer.JsonDataToMinuteData=function(data)
|
|
90619
|
-
{
|
|
90620
|
-
var aryMinuteData=[];
|
|
90621
|
-
for(var i in data.minute.time)
|
|
90622
|
-
{
|
|
90623
|
-
var item=new MinuteData();
|
|
90624
|
-
|
|
90625
|
-
if (data.minute.price[i]<=0 && i>0) //当前这一分钟价格为空,使用上一分钟的数据
|
|
90626
|
-
{
|
|
90627
|
-
item.Close=aryMinuteData[i-1].Close;
|
|
90628
|
-
item.Open=aryMinuteData[i-1].Close;
|
|
90629
|
-
item.High=item.Close;
|
|
90630
|
-
item.Low=item.Close;
|
|
90631
|
-
item.Vol=data.minute.vol[i]; //原始单位股
|
|
90632
|
-
item.Amount=data.minute.amount[i];
|
|
90633
|
-
item.DateTime=data.date.toString()+" "+data.minute.time[i].toString();
|
|
90634
|
-
//item.Increate=jsData.increate;
|
|
90635
|
-
//item.Risefall=jsData.risefall;
|
|
90636
|
-
item.AvPrice=aryMinuteData[i-1].AvPrice;
|
|
90637
|
-
}
|
|
90638
|
-
else
|
|
90639
|
-
{
|
|
90640
|
-
item.Close=data.minute.price[i];
|
|
90641
|
-
item.Open=data.minute.open[i];
|
|
90642
|
-
item.High=data.minute.high[i];
|
|
90643
|
-
item.Low=data.minute.low[i];
|
|
90644
|
-
item.Vol=data.minute.vol[i]; //原始单位股
|
|
90645
|
-
item.Amount=data.minute.amount[i];
|
|
90646
|
-
item.DateTime=data.date.toString()+" "+data.minute.time[i].toString();
|
|
90647
|
-
//item.Increate=jsData.increate;
|
|
90648
|
-
//item.Risefall=jsData.risefall;
|
|
90649
|
-
item.AvPrice=data.minute.avprice[i];
|
|
90650
|
-
}
|
|
90651
|
-
|
|
90652
|
-
//价格是0的 都用空
|
|
90653
|
-
if (item.Open<=0) item.Open=null;
|
|
90654
|
-
if (item.Close<=0) item.Close=null;
|
|
90655
|
-
if (item.AvPrice<=0) item.AvPrice=null;
|
|
90656
|
-
if (item.High<=0) item.High=null;
|
|
90657
|
-
if (item.Low<=0) item.Low=null;
|
|
90658
|
-
|
|
90659
|
-
aryMinuteData[i]=item;
|
|
90660
|
-
}
|
|
90661
|
-
|
|
90662
|
-
return aryMinuteData;
|
|
90663
|
-
}
|
|
90664
|
-
*/
|
|
90665
|
-
|
|
90666
90497
|
/////////////////////////////////////////////////////////////////////////////
|
|
90667
90498
|
// 自定义指数
|
|
90668
90499
|
//
|
|
@@ -95723,6 +95554,16 @@ var MARKET_SUFFIX_NAME=
|
|
|
95723
95554
|
if (ChartData.IsMinutePeriod(period,true)) return false; //内置分钟K线不支持复权
|
|
95724
95555
|
|
|
95725
95556
|
return true;
|
|
95557
|
+
},
|
|
95558
|
+
|
|
95559
|
+
//获取成交量单位
|
|
95560
|
+
GetVolUnit:function(upperSymbol)
|
|
95561
|
+
{
|
|
95562
|
+
if (!upperSymbol) return 1;
|
|
95563
|
+
if (MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol)) return 100; //单位手=100股
|
|
95564
|
+
if (MARKET_SUFFIX_NAME.IsBJ(upperSymbol)) return 100; //单位手=100股
|
|
95565
|
+
|
|
95566
|
+
return 1;
|
|
95726
95567
|
}
|
|
95727
95568
|
}
|
|
95728
95569
|
|
|
@@ -99014,6 +98855,8 @@ function GetLocalTime(i) //得到标准时区的时间的函数
|
|
|
99014
98855
|
|
|
99015
98856
|
|
|
99016
98857
|
|
|
98858
|
+
|
|
98859
|
+
|
|
99017
98860
|
/*
|
|
99018
98861
|
Copyright (c) 2018 jones
|
|
99019
98862
|
|
|
@@ -110404,6 +110247,105 @@ function JSDraw(errorHandler,symbolData)
|
|
|
110404
110247
|
|
|
110405
110248
|
return result;
|
|
110406
110249
|
}
|
|
110250
|
+
|
|
110251
|
+
|
|
110252
|
+
///////////////////////////////////////////////////////////////////////////////////
|
|
110253
|
+
//DRAWLASTBARICON :在最后一根k线绘制图标。
|
|
110254
|
+
//用法:DRAWLASTBARICON(PRICE,ICON);
|
|
110255
|
+
//最后一根k线,在PRICE位置画图标ICON。
|
|
110256
|
+
//
|
|
110257
|
+
//注:
|
|
110258
|
+
//1、该函数可以指定位置PRICE标注图标ICON
|
|
110259
|
+
//2、ICON位置可以写成'ICON'的形式,也可以写为数字的形式,即DRAWLASTBARICON(PRICE,'ICO1');等价于DRAWLASTBARICON(PRICE,1);
|
|
110260
|
+
//3、不支持将该函数定义为变量,即不支持下面的写法:
|
|
110261
|
+
//A:DRAWLASTBARICON(PRICE,ICON);
|
|
110262
|
+
//4、该函数可以用ALIGN,VALIGN设置图标的对齐方式。
|
|
110263
|
+
//例1:
|
|
110264
|
+
//DRAWLASTBARICON(LOW,'ICO1');//在最后一根k线最低价上画出图标ICON1。
|
|
110265
|
+
//例2:
|
|
110266
|
+
//MA5:=MA(C,5);
|
|
110267
|
+
//DRAWLASTBARICON(MA5,2);//表示在最后一根k线对应的MA5数值位置上画出图标ICON2。
|
|
110268
|
+
|
|
110269
|
+
this.DRAWLASTBARICON=function(data, type)
|
|
110270
|
+
{
|
|
110271
|
+
if (IFrameSplitOperator.IsString(type)) //把ICO1=>1
|
|
110272
|
+
{
|
|
110273
|
+
var value=type.replace('ICO',"");
|
|
110274
|
+
type=parseInt(value);
|
|
110275
|
+
}
|
|
110276
|
+
|
|
110277
|
+
var icon=g_JSComplierResource.GetDrawIcon(type);
|
|
110278
|
+
if (!icon) g_JSComplierResource.GetDrawTextIcon(type);
|
|
110279
|
+
if (!icon) icon={ Symbol:'🚩'};
|
|
110280
|
+
|
|
110281
|
+
var drawItem={ Value:null, Icon:icon, IconType:type };
|
|
110282
|
+
if (IFrameSplitOperator.IsNonEmptyArray(data)) drawItem.Value=data[data.length-1];
|
|
110283
|
+
else drawItem.Value=data;
|
|
110284
|
+
|
|
110285
|
+
var result={ DrawData:drawItem, DrawType:'DRAWLASTBARICON' };
|
|
110286
|
+
|
|
110287
|
+
return result;
|
|
110288
|
+
}
|
|
110289
|
+
|
|
110290
|
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
110291
|
+
//DRAWLASTBARTEXT:显在最后一根k线显示文字。
|
|
110292
|
+
//用法:DRAWLASTBARTEXT(PRICE,TEXT);
|
|
110293
|
+
//最后一根k线,在PRICE位置书写文字TEXT。
|
|
110294
|
+
//注:
|
|
110295
|
+
//1、显示的汉字用单引号标注
|
|
110296
|
+
//2、可以设置文字显示的对齐方式,字体大小以及文字的颜色,即支持下面的写法:
|
|
110297
|
+
//DRAWLASTBARTEXT(PRICE,TEXT),COLOR,ALIGN,VALIGN;
|
|
110298
|
+
//例1:
|
|
110299
|
+
//DRAWLASTBARTEXT(LOW,'注');//
|
|
110300
|
+
//最后一根k线,在最低价上写"注"字。
|
|
110301
|
+
//例2:
|
|
110302
|
+
//DRAWLASTBARTEXT(LOW,'低'),ALIGN0,FONTSIZE16,COLORRED;//在最后一根k线,在最低价写"低"字,文字左对齐,字体大小为16,文字颜色为红色。
|
|
110303
|
+
|
|
110304
|
+
this.DRAWLASTBARTEXT=function(data, text)
|
|
110305
|
+
{
|
|
110306
|
+
var drawItem={ Value:null, Text:text };
|
|
110307
|
+
if (IFrameSplitOperator.IsNonEmptyArray(data)) drawItem.Value=data[data.length-1];
|
|
110308
|
+
else drawItem.Value=data;
|
|
110309
|
+
|
|
110310
|
+
var result={ DrawData:drawItem, DrawType:'DRAWLASTBARTEXT' };
|
|
110311
|
+
|
|
110312
|
+
return result;
|
|
110313
|
+
}
|
|
110314
|
+
|
|
110315
|
+
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
110316
|
+
//DRAWLASTBARNUMBER:在最后一根k线输出数值。
|
|
110317
|
+
//用法:DRAWLASTBARNUMBER(DATA,NUMBER,PRECISION,COLOR);
|
|
110318
|
+
//最后一根k线在DATA位置写数字NUMBER。PRECISION为精度(小数点后有几位数字)。COLOR为颜色。
|
|
110319
|
+
//注:
|
|
110320
|
+
//该函数支持在函数后设置文字的大小和文字对齐方式。即支持下面的写法:
|
|
110321
|
+
//DRAWLASTBARNUMBER(DATA,NUMBER,PRECISION,COLOR),ALIGN,VALIGN;
|
|
110322
|
+
//例1:
|
|
110323
|
+
//DRAWLASTBARNUMBER(HIGH,(CLOSE-OPEN)/OPEN*100,2,COLORRED);//最后一根k线在最高价位置红色显示涨幅数值(相对开盘价的百分比,精确2位小数)。
|
|
110324
|
+
//例2:
|
|
110325
|
+
//DRAWLASTBARNUMBER(L,REF(C,1),2,COLORRED),ALIGN0,VALIGN0;//表示最后一根k线的最低价处以红色显示昨收盘价数值(精确2位小数),标注文字居左,居上对齐。
|
|
110326
|
+
|
|
110327
|
+
this.DRAWLASTBARNUMBER=function(data,value,dec,color)
|
|
110328
|
+
{
|
|
110329
|
+
var drawItem={ Value:null, Text:null, Color:color };
|
|
110330
|
+
if (IFrameSplitOperator.IsNonEmptyArray(data)) drawItem.Value=data[data.length-1];
|
|
110331
|
+
else drawItem.Value=data;
|
|
110332
|
+
|
|
110333
|
+
var precision=2;
|
|
110334
|
+
if (IFrameSplitOperator.IsNumber(dec)) precision=parseInt(dec);
|
|
110335
|
+
if (IFrameSplitOperator.IsNumber(value))
|
|
110336
|
+
{
|
|
110337
|
+
drawItem.Text=value.toFixed(precision);
|
|
110338
|
+
}
|
|
110339
|
+
else if (IFrameSplitOperator.IsNonEmptyArray(value))
|
|
110340
|
+
{
|
|
110341
|
+
var lastValue=value[value.length-1];
|
|
110342
|
+
if (IFrameSplitOperator.IsNumber(lastValue)) drawItem.Text=lastValue.toFixed(precision);
|
|
110343
|
+
}
|
|
110344
|
+
|
|
110345
|
+
var result={ DrawData:drawItem, DrawType:'DRAWLASTBARNUMBER' };
|
|
110346
|
+
|
|
110347
|
+
return result;
|
|
110348
|
+
}
|
|
110407
110349
|
}
|
|
110408
110350
|
|
|
110409
110351
|
|
|
@@ -110458,6 +110400,7 @@ JSDraw.prototype.IsDrawFunction=function(name)
|
|
|
110458
110400
|
'DRAWOVERLAYLINE',"FILLRGN", "FILLRGN2","FILLTOPRGN", "FILLBOTTOMRGN", "FILLVERTICALRGN","FLOATRGN","DRAWSL", "DRAWGBK2","DRAWGBK_DIV",
|
|
110459
110401
|
"VERTLINE","HORLINE","TIPICON",
|
|
110460
110402
|
"BUY","SELL","SELLSHORT","BUYSHORT",
|
|
110403
|
+
"DRAWLASTBARICON","DRAWLASTBARNUMBER", "DRAWLASTBARTEXT",
|
|
110461
110404
|
]);
|
|
110462
110405
|
if (setFunctionName.has(name)) return true;
|
|
110463
110406
|
|
|
@@ -111397,9 +111340,7 @@ function JSSymbolData(ast,option,jsExecute)
|
|
|
111397
111340
|
return kData.GetClose();
|
|
111398
111341
|
case 'VOL':
|
|
111399
111342
|
case 'V':
|
|
111400
|
-
|
|
111401
|
-
return kData.GetVol(100); //A股的 把股转成手
|
|
111402
|
-
return kData.GetVol();
|
|
111343
|
+
return kData.GetVol(MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol));
|
|
111403
111344
|
case 'OPEN':
|
|
111404
111345
|
case 'O':
|
|
111405
111346
|
return kData.GetOpen();
|
|
@@ -112028,9 +111969,7 @@ function JSSymbolData(ast,option,jsExecute)
|
|
|
112028
111969
|
return this.Data.GetClose();
|
|
112029
111970
|
case 'VOL':
|
|
112030
111971
|
case 'V':
|
|
112031
|
-
|
|
112032
|
-
return this.Data.GetVol(100); //A股的 把股转成手
|
|
112033
|
-
return this.Data.GetVol();
|
|
111972
|
+
return this.Data.GetVol(MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol));
|
|
112034
111973
|
case 'OPEN':
|
|
112035
111974
|
case 'O':
|
|
112036
111975
|
return this.Data.GetOpen();
|
|
@@ -112276,9 +112215,7 @@ function JSSymbolData(ast,option,jsExecute)
|
|
|
112276
112215
|
return result.GetAmount();
|
|
112277
112216
|
case 'V':
|
|
112278
112217
|
case "VOL":
|
|
112279
|
-
|
|
112280
|
-
return result.GetVol(100);
|
|
112281
|
-
return result.GetVol();
|
|
112218
|
+
return result.GetVol(MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol));
|
|
112282
112219
|
case "VOLINSTK":
|
|
112283
112220
|
return result.GetPosition();
|
|
112284
112221
|
default:
|
|
@@ -115740,6 +115677,7 @@ function JSExecute(ast,option)
|
|
|
115740
115677
|
["OFFERCANCELVOL", null], //累计总有效撤卖量,专业版等(资金流向功能)沪深京品种行情专用 累计总有效委卖量-累计总有效撤卖量=总卖+总成交量
|
|
115741
115678
|
["AVGOFFERPX", null], //专业版等(资金流向功能)沪深京品种行情专用:最新委卖均价
|
|
115742
115679
|
//["", null],
|
|
115680
|
+
|
|
115743
115681
|
]);
|
|
115744
115682
|
|
|
115745
115683
|
this.SymbolData=new JSSymbolData(this.AST,option,this);
|
|
@@ -117196,6 +117134,20 @@ function JSExecute(ast,option)
|
|
|
117196
117134
|
node.Draw=this.Draw.HORLINE(args[0],args[1],args[2],args[3]);
|
|
117197
117135
|
node.Out=node.Draw.DrawData.Data;
|
|
117198
117136
|
break;
|
|
117137
|
+
|
|
117138
|
+
case "DRAWLASTBARICON":
|
|
117139
|
+
node.Draw=this.Draw.DRAWLASTBARICON(args[0],args[1]);
|
|
117140
|
+
node.Out=[];
|
|
117141
|
+
break;
|
|
117142
|
+
case "DRAWLASTBARNUMBER":
|
|
117143
|
+
node.Draw=this.Draw.DRAWLASTBARNUMBER(args[0],args[1],args[2],args[3]);
|
|
117144
|
+
node.Out=[];
|
|
117145
|
+
break;
|
|
117146
|
+
case "DRAWLASTBARTEXT":
|
|
117147
|
+
node.Draw=this.Draw.DRAWLASTBARTEXT(args[0],args[1]);
|
|
117148
|
+
node.Out=[];
|
|
117149
|
+
break;
|
|
117150
|
+
|
|
117199
117151
|
case 'CODELIKE':
|
|
117200
117152
|
node.Out=this.SymbolData.CODELIKE(args[0]);
|
|
117201
117153
|
break;
|
|
@@ -117608,6 +117560,22 @@ function JSExplainer(ast,option)
|
|
|
117608
117560
|
["OFFERCANCELVOL", "累计总有效撤卖量"],
|
|
117609
117561
|
["AVGOFFERPX", "最新委卖均价"],
|
|
117610
117562
|
|
|
117563
|
+
['COLORBLACK','黑色'],
|
|
117564
|
+
['COLORBLUE','蓝色'],
|
|
117565
|
+
['COLORGREEN','绿色'],
|
|
117566
|
+
['COLORCYAN','青色'],
|
|
117567
|
+
['COLORRED','红色'],
|
|
117568
|
+
['COLORMAGENTA','洋红色'],
|
|
117569
|
+
['COLORBROWN','棕色'],
|
|
117570
|
+
['COLORLIGRAY','淡灰色'],
|
|
117571
|
+
['COLORGRAY','深灰色'],
|
|
117572
|
+
['COLORLIBLUE','淡蓝色'],
|
|
117573
|
+
['COLORLIGREEN','淡绿色'],
|
|
117574
|
+
['COLORLICYAN','淡青色'],
|
|
117575
|
+
['COLORLIRED','淡红色'],
|
|
117576
|
+
['COLORLIMAGENTA','淡洋红色'],
|
|
117577
|
+
['COLORWHITE','白色'],
|
|
117578
|
+
['COLORYELLOW','黄色']
|
|
117611
117579
|
]);
|
|
117612
117580
|
|
|
117613
117581
|
if (option)
|
|
@@ -118309,6 +118277,12 @@ function JSExplainer(ast,option)
|
|
|
118309
118277
|
case "BUYSHORT":
|
|
118310
118278
|
return "买入平仓";
|
|
118311
118279
|
|
|
118280
|
+
case "DRAWLASTBARNUMBER":
|
|
118281
|
+
return "在最后一根k线输出数值";
|
|
118282
|
+
case "DRAWLASTBARTEXT":
|
|
118283
|
+
return "在最后一根k线显示文字";
|
|
118284
|
+
case "DRAWLASTBARICON":
|
|
118285
|
+
return "在最后一根k线绘制图标";
|
|
118312
118286
|
case "YMOVE":
|
|
118313
118287
|
return;
|
|
118314
118288
|
case "BACKGROUND":
|
|
@@ -120480,6 +120454,49 @@ function ScriptIndex(name,script,args,option)
|
|
|
120480
120454
|
hqChart.ChartPaint.push(chart);
|
|
120481
120455
|
}
|
|
120482
120456
|
|
|
120457
|
+
this.CreateDrawLastBarText=function(hqChart,windowIndex,varItem,id)
|
|
120458
|
+
{
|
|
120459
|
+
var chart=new ChartDrawLastBarText();
|
|
120460
|
+
chart.Canvas=hqChart.Canvas;
|
|
120461
|
+
chart.Name=varItem.Name;
|
|
120462
|
+
chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
|
|
120463
|
+
chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;
|
|
120464
|
+
|
|
120465
|
+
if (hqChart.ChartPaint[0].IsMinuteFrame())
|
|
120466
|
+
chart.Data=hqChart.SourceData;
|
|
120467
|
+
else
|
|
120468
|
+
chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
120469
|
+
|
|
120470
|
+
var lastItem=varItem.Draw.DrawData;
|
|
120471
|
+
if (lastItem)
|
|
120472
|
+
{
|
|
120473
|
+
if (lastItem.Color) lastItem.Color=this.GetColor(lastItem.Color);
|
|
120474
|
+
else lastItem.Color=this.GetDefaultColor(id);
|
|
120475
|
+
if (varItem.Color) lastItem.Color=this.GetColor(varItem.Color);
|
|
120476
|
+
|
|
120477
|
+
if (varItem.DrawVAlign>=0)
|
|
120478
|
+
{
|
|
120479
|
+
if (varItem.DrawVAlign==0) lastItem.TextBaseline='top';
|
|
120480
|
+
else if (varItem.DrawVAlign==1) lastItem.TextBaseline='middle';
|
|
120481
|
+
else if (varItem.DrawVAlign==2) lastItem.TextBaseline='bottom';
|
|
120482
|
+
}
|
|
120483
|
+
|
|
120484
|
+
if (varItem.DrawAlign>=0)
|
|
120485
|
+
{
|
|
120486
|
+
if (varItem.DrawAlign==0) lastItem.TextAlign="left";
|
|
120487
|
+
else if (varItem.DrawAlign==1) lastItem.TextAlign="center";
|
|
120488
|
+
else if (varItem.DrawAlign==2) lastItem.TextAlign='right';
|
|
120489
|
+
}
|
|
120490
|
+
|
|
120491
|
+
if (IFrameSplitOperator.IsNumber(varItem.YOffset)) lastItem.YOffset=varItem.YOffset;
|
|
120492
|
+
if (IFrameSplitOperator.IsNumber(varItem.XOffset)) lastItem.XOffset=varItem.XOffset;
|
|
120493
|
+
if (varItem.DrawFontSize>0) lastItem.FontSize=varItem.DrawFontSize;
|
|
120494
|
+
}
|
|
120495
|
+
|
|
120496
|
+
chart.LastBarItem=lastItem;
|
|
120497
|
+
hqChart.ChartPaint.push(chart);
|
|
120498
|
+
}
|
|
120499
|
+
|
|
120483
120500
|
//创建通道
|
|
120484
120501
|
this.CreateChannel=function(hqChart,windowIndex,varItem,id)
|
|
120485
120502
|
{
|
|
@@ -121076,6 +121093,12 @@ function ScriptIndex(name,script,args,option)
|
|
|
121076
121093
|
this.CreateTradeIcon(hqChart,windowIndex,item,i);
|
|
121077
121094
|
break;
|
|
121078
121095
|
|
|
121096
|
+
case "DRAWLASTBARICON":
|
|
121097
|
+
case "DRAWLASTBARNUMBER":
|
|
121098
|
+
case "DRAWLASTBARTEXT":
|
|
121099
|
+
this.CreateDrawLastBarText(hqChart,windowIndex,item,i);
|
|
121100
|
+
break;
|
|
121101
|
+
|
|
121079
121102
|
case SCRIPT_CHART_NAME.OVERLAY_BARS:
|
|
121080
121103
|
this.CreateStackedBar(hqChart,windowIndex,item,i);
|
|
121081
121104
|
break;
|
|
@@ -145070,6 +145093,7 @@ function JSDialogTooltip()
|
|
|
145070
145093
|
{
|
|
145071
145094
|
var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
|
|
145072
145095
|
var upperSymbol=this.HQChart.Symbol.toUpperCase();
|
|
145096
|
+
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
|
|
145073
145097
|
var priceFormat=0;
|
|
145074
145098
|
if (this.Style==1) priceFormat=1;
|
|
145075
145099
|
|
|
@@ -145087,7 +145111,7 @@ function JSDialogTooltip()
|
|
|
145087
145111
|
this.ForamtPrice(data.High,yClose, defaultfloatPrecision,'DialogTooltip-High',priceFormat),
|
|
145088
145112
|
this.ForamtPrice(data.Low,yClose, defaultfloatPrecision,'DialogTooltip-Low',priceFormat),
|
|
145089
145113
|
this.ForamtPrice(data.Close,yClose, defaultfloatPrecision,'DialogTooltip-Close',priceFormat),
|
|
145090
|
-
this.FormatVol(data.Vol,'DialogTooltip-Vol' ),
|
|
145114
|
+
this.FormatVol(data.Vol/unit,'DialogTooltip-Vol' ),
|
|
145091
145115
|
this.FormatAmount(data.Amount,'DialogTooltip-Amount' ),
|
|
145092
145116
|
this.FormatIncrease(data.Close,yClose,defaultfloatPrecision,'DialogTooltip-Increase',priceFormat),
|
|
145093
145117
|
this.FormatAmplitude(data.High,data.Low,yClose,defaultfloatPrecision,'DialogTooltip-Amplitude',priceFormat),
|
|
@@ -145149,6 +145173,8 @@ function JSDialogTooltip()
|
|
|
145149
145173
|
this.GetFormatMinuteTooltipText=function(data)
|
|
145150
145174
|
{
|
|
145151
145175
|
var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
|
|
145176
|
+
var upperSymbol=this.HQChart.Symbol.toUpperCase();
|
|
145177
|
+
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
|
|
145152
145178
|
var aryText=[];
|
|
145153
145179
|
if (data.Type==0) //连续交易
|
|
145154
145180
|
{
|
|
@@ -145163,7 +145189,7 @@ function JSDialogTooltip()
|
|
|
145163
145189
|
this.ForamtPrice(item.AvPrice,item.YClose, defaultfloatPrecision,'DialogTooltip-AvPrice', 1),
|
|
145164
145190
|
this.FormatRisefall(item.Close,item.YClose, defaultfloatPrecision,'DialogTooltip-Risefall'),
|
|
145165
145191
|
this.FormatIncrease(item.Close,item.YClose,defaultfloatPrecision,'DialogTooltip-Increase', 1),
|
|
145166
|
-
this.FormatVol(item.Vol,'DialogTooltip-Vol' ),
|
|
145192
|
+
this.FormatVol(item.Vol/unit,'DialogTooltip-Vol' ),
|
|
145167
145193
|
this.FormatAmount(item.Amount,'DialogTooltip-Amount' ),
|
|
145168
145194
|
];
|
|
145169
145195
|
|
|
@@ -145196,7 +145222,7 @@ function JSDialogTooltip()
|
|
|
145196
145222
|
this.FormatTime(item.Time, null, timeForamt, 'DialogTooltip-Time'),
|
|
145197
145223
|
this.ForamtPrice(item.Price,item.YClose, defaultfloatPrecision,'DialogTooltip-AC-Price',1),
|
|
145198
145224
|
this.FormatIncrease(item.Price,item.YClose,defaultfloatPrecision,'DialogTooltip-AC-Increase',1),
|
|
145199
|
-
this.FormatVol(item.Vol[0],'DialogTooltip-AC-Vol' ),
|
|
145225
|
+
this.FormatVol(item.Vol[0]/unit,'DialogTooltip-AC-Vol' ),
|
|
145200
145226
|
];
|
|
145201
145227
|
}
|
|
145202
145228
|
else
|
|
@@ -145938,9 +145964,28 @@ function JSFloatTooltip()
|
|
|
145938
145964
|
|
|
145939
145965
|
var item=tooltipData.Data.Item;
|
|
145940
145966
|
var aryText=[];
|
|
145967
|
+
if (item && IFrameSplitOperator.IsObject(item.Text))
|
|
145968
|
+
{
|
|
145969
|
+
var tooltipData=item.Text;
|
|
145970
|
+
if (IFrameSplitOperator.IsNonEmptyArray(tooltipData.AryText))
|
|
145971
|
+
{
|
|
145972
|
+
for(var i=0;i<tooltipData.AryText.length;++i)
|
|
145973
|
+
{
|
|
145974
|
+
var tooltipItem=tooltipData.AryText[i];
|
|
145975
|
+
var textItem={ Title:tooltipItem.Title, Text:tooltipItem.Text, Color:this.ValueColor };
|
|
145976
|
+
if (tooltipItem.Color) textItem.Color=tooltipItem.Color;
|
|
145977
|
+
if (tooltipItem.Align=="Left") tooltipItem.ClassName=this.ValueAlign.Left;
|
|
145941
145978
|
|
|
145942
|
-
|
|
145943
|
-
|
|
145979
|
+
aryText.push(tooltipItem);
|
|
145980
|
+
}
|
|
145981
|
+
}
|
|
145982
|
+
}
|
|
145983
|
+
else
|
|
145984
|
+
{
|
|
145985
|
+
var rowItem={ Text:"", HTMLTitle:item.Text, Color:this.ValueColor, IsMergeCell:true };
|
|
145986
|
+
aryText.push(rowItem);
|
|
145987
|
+
}
|
|
145988
|
+
|
|
145944
145989
|
|
|
145945
145990
|
this.AryText=aryText;
|
|
145946
145991
|
this.UpdateTableDOM();
|
|
@@ -146042,6 +146087,7 @@ function JSFloatTooltip()
|
|
|
146042
146087
|
var symbol=kItem.Symbol;
|
|
146043
146088
|
var upperSymbol=symbol.toUpperCase();
|
|
146044
146089
|
var defaultfloatPrecision=GetfloatPrecision(symbol);//价格小数位数
|
|
146090
|
+
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
|
|
146045
146091
|
|
|
146046
146092
|
//日期
|
|
146047
146093
|
var dateItem=this.ForamtDate(data.Date,"YYYY/MM/DD/W",'FloatTooltip-Date' );
|
|
@@ -146063,7 +146109,7 @@ function JSFloatTooltip()
|
|
|
146063
146109
|
this.ForamtPrice(data.Low,yClose, defaultfloatPrecision,'FloatTooltip-Low'),
|
|
146064
146110
|
this.ForamtPrice(data.Close,yClose, defaultfloatPrecision,'FloatTooltip-Close'),
|
|
146065
146111
|
this.ForamtPrice(data.YClose,data.YClose, defaultfloatPrecision,'FloatTooltip-YClose'),
|
|
146066
|
-
this.FormatVol(data.Vol,'FloatTooltip-Vol' ),
|
|
146112
|
+
this.FormatVol(data.Vol/unit,'FloatTooltip-Vol' ),
|
|
146067
146113
|
this.FormatAmount(data.Amount,'FloatTooltip-Amount' ),
|
|
146068
146114
|
this.FormatIncrease(data.Close,yClose,defaultfloatPrecision,'FloatTooltip-Increase'),
|
|
146069
146115
|
this.FormatAmplitude(data.High,data.Low,yClose,defaultfloatPrecision,'FloatTooltip-Amplitude'),
|
|
@@ -148619,7 +148665,7 @@ function HQChartScriptWorker()
|
|
|
148619
148665
|
|
|
148620
148666
|
|
|
148621
148667
|
|
|
148622
|
-
var HQCHART_VERSION="1.1.
|
|
148668
|
+
var HQCHART_VERSION="1.1.14132";
|
|
148623
148669
|
|
|
148624
148670
|
function PrintHQChartVersion()
|
|
148625
148671
|
{
|