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
|
@@ -6971,6 +6971,13 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
6971
6971
|
this.DialogModifyIndexParam; //指标参数修改
|
|
6972
6972
|
|
|
6973
6973
|
|
|
6974
|
+
this.GetVolUnit=function() //成交量单位
|
|
6975
|
+
{
|
|
6976
|
+
var upperSymbol=this.Symbol?this.Symbol.toUpperCase():null;
|
|
6977
|
+
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
|
|
6978
|
+
return unit;
|
|
6979
|
+
}
|
|
6980
|
+
|
|
6974
6981
|
this.ClearStockCache=function()
|
|
6975
6982
|
{
|
|
6976
6983
|
this.StockCache.Data=null;
|
|
@@ -35314,6 +35321,13 @@ function ChartMinuteVolumBar()
|
|
|
35314
35321
|
return this.DrawLinePoint({ MinuteVolBar:true });
|
|
35315
35322
|
}
|
|
35316
35323
|
|
|
35324
|
+
this.GetVolUnit=function()
|
|
35325
|
+
{
|
|
35326
|
+
var upperSymbol=this.Symbol?this.Symbol.toUpperCase():null;
|
|
35327
|
+
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
|
|
35328
|
+
return unit;
|
|
35329
|
+
}
|
|
35330
|
+
|
|
35317
35331
|
this.Draw=function()
|
|
35318
35332
|
{
|
|
35319
35333
|
var isHScreen = (this.ChartFrame.IsHScreen === true);
|
|
@@ -35336,9 +35350,11 @@ function ChartMinuteVolumBar()
|
|
|
35336
35350
|
var yBottom=this.ChartFrame.GetYFromData(0);
|
|
35337
35351
|
var yPrice=this.YClose; //上一分钟的价格
|
|
35338
35352
|
var data=this.Data;
|
|
35353
|
+
|
|
35339
35354
|
var bShowColorBar=MARKET_SUFFIX_NAME.IsShowMinuteColorVolBar(this.Symbol);
|
|
35340
|
-
|
|
35341
35355
|
if (bShowColorBar) this.Canvas.strokeStyle=this.CustomColor;
|
|
35356
|
+
var unit=this.GetVolUnit();
|
|
35357
|
+
|
|
35342
35358
|
for(var i=data.DataOffset,j=0;i<data.Data.length && j<xPointCount;++i,++j)
|
|
35343
35359
|
{
|
|
35344
35360
|
var item = data.Data[i];
|
|
@@ -35346,7 +35362,7 @@ function ChartMinuteVolumBar()
|
|
|
35346
35362
|
if (!item) continue;
|
|
35347
35363
|
var price=null;
|
|
35348
35364
|
|
|
35349
|
-
vol=item.Vol;
|
|
35365
|
+
vol=item.Vol/unit;
|
|
35350
35366
|
price=item.Close;
|
|
35351
35367
|
|
|
35352
35368
|
if (!vol) continue;
|
|
@@ -35453,6 +35469,7 @@ function ChartMinuteVolumBar()
|
|
|
35453
35469
|
var isHScreen=(this.ChartFrame.IsHScreen===true);
|
|
35454
35470
|
var yPrice=this.YClose; //上一分钟的价格
|
|
35455
35471
|
var yBottom=this.ChartFrame.GetYFromData(0);
|
|
35472
|
+
var unit=this.GetVolUnit();
|
|
35456
35473
|
if (callAutionData.Ver==1.0)
|
|
35457
35474
|
{
|
|
35458
35475
|
for(var i in callAutionData.Data)
|
|
@@ -35463,12 +35480,12 @@ function ChartMinuteVolumBar()
|
|
|
35463
35480
|
if (isBeforeOpen)
|
|
35464
35481
|
{
|
|
35465
35482
|
var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);
|
|
35466
|
-
var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[0]);
|
|
35483
|
+
var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[0]/unit);
|
|
35467
35484
|
}
|
|
35468
35485
|
else
|
|
35469
35486
|
{
|
|
35470
35487
|
var x=this.ChartFrame.GetRightExtendXFromIndex(i,callAutionData);
|
|
35471
|
-
var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[0]);
|
|
35488
|
+
var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[0]/unit);
|
|
35472
35489
|
}
|
|
35473
35490
|
|
|
35474
35491
|
|
|
@@ -35501,13 +35518,13 @@ function ChartMinuteVolumBar()
|
|
|
35501
35518
|
if (isBeforeOpen)
|
|
35502
35519
|
{
|
|
35503
35520
|
var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);
|
|
35504
|
-
var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[0],false, { Range:range });
|
|
35521
|
+
var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[0]/unit,false, { Range:range });
|
|
35505
35522
|
}
|
|
35506
35523
|
else
|
|
35507
35524
|
{
|
|
35508
35525
|
var x=this.ChartFrame.GetRightExtendXFromIndex(i,callAutionData);
|
|
35509
|
-
if (this.ShareAfterVol==1) var y=this.ChartFrame.GetYFromData(item.Vol[0]);
|
|
35510
|
-
else var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[0],false, { Range:range });
|
|
35526
|
+
if (this.ShareAfterVol==1) var y=this.ChartFrame.GetYFromData(item.Vol[0]/unit);
|
|
35527
|
+
else var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[0]/unit,false, { Range:range });
|
|
35511
35528
|
}
|
|
35512
35529
|
|
|
35513
35530
|
this.Canvas.strokeStyle = this.GetBarColor(item.ColorID);
|
|
@@ -35531,13 +35548,13 @@ function ChartMinuteVolumBar()
|
|
|
35531
35548
|
if (isBeforeOpen)
|
|
35532
35549
|
{
|
|
35533
35550
|
var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);
|
|
35534
|
-
var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[1],false, { Range:range });
|
|
35551
|
+
var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[1]/unit,false, { Range:range });
|
|
35535
35552
|
}
|
|
35536
35553
|
else
|
|
35537
35554
|
{
|
|
35538
35555
|
var x=this.ChartFrame.GetRightExtendXFromIndex(i,callAutionData);
|
|
35539
|
-
if (this.ShareAfterVol==1) var y=this.ChartFrame.GetYFromData(item.Vol[1]);
|
|
35540
|
-
else var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[1],false, { Range:range });
|
|
35556
|
+
if (this.ShareAfterVol==1) var y=this.ChartFrame.GetYFromData(item.Vol[1]/unit);
|
|
35557
|
+
else var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[1]/unit,false, { Range:range });
|
|
35541
35558
|
}
|
|
35542
35559
|
|
|
35543
35560
|
this.Canvas.strokeStyle = this.GetBarColor(item.ColorID);
|
|
@@ -35586,6 +35603,7 @@ function ChartMinuteVolumBar()
|
|
|
35586
35603
|
|
|
35587
35604
|
this.GetMaxMin=function()
|
|
35588
35605
|
{
|
|
35606
|
+
var unit=this.GetVolUnit();
|
|
35589
35607
|
var xPointCount=this.ChartFrame.XPointCount;
|
|
35590
35608
|
var start=this.Data.DataOffset;
|
|
35591
35609
|
if (this.ChartFrame.GlobalOption && this.ChartFrame.GlobalOption.IsValueFullRange===true)
|
|
@@ -35602,10 +35620,9 @@ function ChartMinuteVolumBar()
|
|
|
35602
35620
|
{
|
|
35603
35621
|
var item = this.Data.Data[i];
|
|
35604
35622
|
if (!item || !item.Vol) continue;
|
|
35605
|
-
|
|
35606
|
-
if (range.Max <
|
|
35623
|
+
var value=item.Vol/unit;
|
|
35624
|
+
if (range.Max == null || range.Max < value) range.Max = value;
|
|
35607
35625
|
}
|
|
35608
|
-
|
|
35609
35626
|
|
|
35610
35627
|
if (this.ShareAfterVol==1)
|
|
35611
35628
|
{
|
|
@@ -39342,6 +39359,136 @@ function ChartDrawNumber()
|
|
|
39342
39359
|
}
|
|
39343
39360
|
}
|
|
39344
39361
|
|
|
39362
|
+
function ChartDrawLastBarText()
|
|
39363
|
+
{
|
|
39364
|
+
this.newMethod=IChartPainting; //派生
|
|
39365
|
+
this.newMethod();
|
|
39366
|
+
delete this.newMethod;
|
|
39367
|
+
|
|
39368
|
+
this.ClassName='ChartDrawLastBarText'; //类名
|
|
39369
|
+
this.LastBarItem=null;
|
|
39370
|
+
|
|
39371
|
+
this.TextSize=
|
|
39372
|
+
{
|
|
39373
|
+
Max: g_JSChartResource.DRAWICON.Text.MaxSize, Min:g_JSChartResource.DRAWICON.Text.MinSize, //字体的最大最小值
|
|
39374
|
+
Zoom:{ Type:g_JSChartResource.DRAWICON.Text.Zoom.Type , Value:g_JSChartResource.DRAWICON.Text.Zoom.Value }, //放大倍数
|
|
39375
|
+
FontName:g_JSChartResource.DRAWICON.Text.FontName,
|
|
39376
|
+
YOffset:g_JSChartResource.DRAWICON.Text.YOffset
|
|
39377
|
+
}
|
|
39378
|
+
|
|
39379
|
+
this.IconSize=
|
|
39380
|
+
{
|
|
39381
|
+
Max: g_JSChartResource.DRAWICON.Icon.MaxSize, Min:g_JSChartResource.DRAWICON.Icon.MinSize, //图标的最大最小值
|
|
39382
|
+
Zoom:{ Type:g_JSChartResource.DRAWICON.Icon.Zoom.Type , Value:g_JSChartResource.DRAWICON.Icon.Zoom.Value }, //放大倍数
|
|
39383
|
+
YOffset:g_JSChartResource.DRAWICON.Icon.YOffset //Direction==2的向下偏移
|
|
39384
|
+
};
|
|
39385
|
+
|
|
39386
|
+
this.IconFamily=g_JSChartResource.DRAWLASTICON.Family;
|
|
39387
|
+
|
|
39388
|
+
this.ReloadResource=function(resource)
|
|
39389
|
+
{
|
|
39390
|
+
this.TextSize=
|
|
39391
|
+
{
|
|
39392
|
+
Max: g_JSChartResource.DRAWTEXT.MaxSize, Min:g_JSChartResource.DRAWTEXT.MinSize, //字体的最大最小值
|
|
39393
|
+
Zoom:{ Type:g_JSChartResource.DRAWTEXT.Zoom.Type , Value:g_JSChartResource.DRAWTEXT.Zoom.Value }, //放大倍数
|
|
39394
|
+
FontName:g_JSChartResource.DRAWTEXT.FontName,
|
|
39395
|
+
};
|
|
39396
|
+
|
|
39397
|
+
this.IconSize=
|
|
39398
|
+
{
|
|
39399
|
+
Max: g_JSChartResource.DRAWICON.Icon.MaxSize, Min:g_JSChartResource.DRAWICON.Icon.MinSize, //图标的最大最小值
|
|
39400
|
+
Zoom:{ Type:g_JSChartResource.DRAWICON.Icon.Zoom.Type , Value:g_JSChartResource.DRAWICON.Icon.Zoom.Value }, //放大倍数
|
|
39401
|
+
};
|
|
39402
|
+
|
|
39403
|
+
this.IconFamily=g_JSChartResource.DRAWLASTICON.Family;
|
|
39404
|
+
}
|
|
39405
|
+
|
|
39406
|
+
this.Draw=function()
|
|
39407
|
+
{
|
|
39408
|
+
if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
|
|
39409
|
+
if (this.IsShowIndexTitleOnly()) return;
|
|
39410
|
+
if (this.IsHideScriptIndex()) return;
|
|
39411
|
+
if (!this.LastBarItem) return;
|
|
39412
|
+
if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return;
|
|
39413
|
+
|
|
39414
|
+
this.IsHScreen=(this.ChartFrame.IsHScreen===true);
|
|
39415
|
+
var xPointCount=this.ChartFrame.XPointCount;
|
|
39416
|
+
var offset=this.Data.DataOffset;
|
|
39417
|
+
var index=offset+xPointCount;
|
|
39418
|
+
if (index<this.Data.Data.length) return;
|
|
39419
|
+
var lastIndex=(this.Data.Data.length-1)-offset;
|
|
39420
|
+
var x=this.ChartFrame.GetXFromIndex(lastIndex);
|
|
39421
|
+
var item=this.LastBarItem;
|
|
39422
|
+
|
|
39423
|
+
if (item.Value=="Top") y=top;
|
|
39424
|
+
else if (item.Value=="Bottom") y=bottom;
|
|
39425
|
+
else y=this.ChartFrame.GetYFromData(item.Value, false);
|
|
39426
|
+
if (IFrameSplitOperator.IsNumber(item.YOffset)) y+=item.YOffset; //Y轴偏移
|
|
39427
|
+
if (IFrameSplitOperator.IsNumber(item.XOffset)) x+=item.XOffset;
|
|
39428
|
+
|
|
39429
|
+
this.Canvas.save();
|
|
39430
|
+
this.ClipClient(this.IsHScreen);
|
|
39431
|
+
|
|
39432
|
+
//文本
|
|
39433
|
+
if (item.Text) this.DrawLastText(item, x, y);
|
|
39434
|
+
else if (item.Icon) this.DrawLastIcon(item, x, y);
|
|
39435
|
+
|
|
39436
|
+
this.Canvas.restore();
|
|
39437
|
+
}
|
|
39438
|
+
|
|
39439
|
+
this.DrawLastText=function(item,x,y)
|
|
39440
|
+
{
|
|
39441
|
+
var dataWidth=this.ChartFrame.DataWidth;
|
|
39442
|
+
var distanceWidth=this.ChartFrame.DistanceWidth;
|
|
39443
|
+
var font=this.GetDynamicFont(dataWidth,distanceWidth,this.TextSize.Max,this.TextSize.Min,this.TextSize.Zoom,this.TextSize.FontName);
|
|
39444
|
+
|
|
39445
|
+
var textBaseline='bottom';
|
|
39446
|
+
if (item.TextBaseline) textBaseline=item.TextBaseline;
|
|
39447
|
+
var textAlign="center";
|
|
39448
|
+
if (item.TextAlign) textAlign=item.TextAlign;
|
|
39449
|
+
|
|
39450
|
+
this.Canvas.font=font;
|
|
39451
|
+
this.Canvas.textBaseline=textBaseline;
|
|
39452
|
+
this.Canvas.textAlign=textAlign;
|
|
39453
|
+
this.Canvas.fillStyle = item.Color;
|
|
39454
|
+
this.Canvas.fillText(item.Text, x, y);
|
|
39455
|
+
}
|
|
39456
|
+
|
|
39457
|
+
this.DrawLastIcon=function(item,x,y)
|
|
39458
|
+
{
|
|
39459
|
+
var dataWidth=this.ChartFrame.DataWidth;
|
|
39460
|
+
var distanceWidth=this.ChartFrame.DistanceWidth;
|
|
39461
|
+
var iconSize=this.GetDynamicIconSize(dataWidth,distanceWidth,this.IconSize.Max,this.IconSize.Min,this.IconSize.Zoom);
|
|
39462
|
+
var font=`${iconSize}px ${this.IconFamily}`;
|
|
39463
|
+
|
|
39464
|
+
var textBaseline='bottom';
|
|
39465
|
+
if (item.TextBaseline) textBaseline=item.TextBaseline;
|
|
39466
|
+
var textAlign="center";
|
|
39467
|
+
if (item.TextAlign) textAlign=item.TextAlign;
|
|
39468
|
+
|
|
39469
|
+
this.Canvas.font=font;
|
|
39470
|
+
this.Canvas.textBaseline=textBaseline;
|
|
39471
|
+
this.Canvas.textAlign=textAlign;
|
|
39472
|
+
this.Canvas.fillStyle = item.Color;
|
|
39473
|
+
this.Canvas.fillText(item.Icon.Symbol, x, y);
|
|
39474
|
+
}
|
|
39475
|
+
|
|
39476
|
+
this.GetMaxMin=function()
|
|
39477
|
+
{
|
|
39478
|
+
var range={ Min:null, Max:null };
|
|
39479
|
+
if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return range;
|
|
39480
|
+
var xPointCount=this.ChartFrame.XPointCount;
|
|
39481
|
+
var offset=this.Data.DataOffset;
|
|
39482
|
+
var index=offset+xPointCount;
|
|
39483
|
+
if (index<this.Data.Data.length) return range;
|
|
39484
|
+
if (!this.LastBarItem) return range;
|
|
39485
|
+
|
|
39486
|
+
if (IFrameSplitOperator.IsNumber(this.LastBarItem.Value)) range.Max=range.Min=this.LastBarItem.Value;
|
|
39487
|
+
|
|
39488
|
+
return range;
|
|
39489
|
+
}
|
|
39490
|
+
}
|
|
39491
|
+
|
|
39345
39492
|
//直线 水平直线 只有1个数据
|
|
39346
39493
|
function ChartStraightLine()
|
|
39347
39494
|
{
|
|
@@ -46545,6 +46692,7 @@ function KLineTooltipPaint()
|
|
|
46545
46692
|
var upperSymbol;
|
|
46546
46693
|
if (this.HQChart.Symbol) upperSymbol=this.HQChart.Symbol.toUpperCase();
|
|
46547
46694
|
var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
|
|
46695
|
+
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
|
|
46548
46696
|
|
|
46549
46697
|
var aryText=[];
|
|
46550
46698
|
var result={ AryText:aryText };
|
|
@@ -46628,7 +46776,7 @@ function KLineTooltipPaint()
|
|
|
46628
46776
|
title=g_JSChartLocalization.GetText('Tooltip-Vol',this.LanguageID);
|
|
46629
46777
|
var vol=item.Vol;
|
|
46630
46778
|
if (upperSymbol && MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol)) vol/=100; //A股统一转成手
|
|
46631
|
-
text=IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);
|
|
46779
|
+
text=IFrameSplitOperator.FromatIntegerString(vol/unit,2,this.LanguageID);
|
|
46632
46780
|
aryText.push({Title:title, TitleColor:this.TitleColor, Text:text, Color:this.VolColor });
|
|
46633
46781
|
}
|
|
46634
46782
|
|
|
@@ -47005,6 +47153,7 @@ function MinuteTooltipPaint()
|
|
|
47005
47153
|
if (this.HQChart.Symbol) upperSymbol=this.HQChart.Symbol.toUpperCase();
|
|
47006
47154
|
var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
|
|
47007
47155
|
var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
|
|
47156
|
+
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
|
|
47008
47157
|
|
|
47009
47158
|
this.YClose=this.TitlePaint.YClose;
|
|
47010
47159
|
this.YClose=item.YClose;
|
|
@@ -47071,7 +47220,7 @@ function MinuteTooltipPaint()
|
|
|
47071
47220
|
if (IFrameSplitOperator.IsNumber(vol))
|
|
47072
47221
|
{
|
|
47073
47222
|
title=g_JSChartLocalization.GetText('Tooltip-Vol',this.LanguageID);
|
|
47074
|
-
var text=IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);
|
|
47223
|
+
var text=IFrameSplitOperator.FromatIntegerString(vol/unit,2,this.LanguageID);
|
|
47075
47224
|
aryText.push({Title:title, TitleColor:this.TitleColor, Text:text, Color:this.VolColor });
|
|
47076
47225
|
}
|
|
47077
47226
|
|
|
@@ -47092,134 +47241,6 @@ function MinuteTooltipPaint()
|
|
|
47092
47241
|
|
|
47093
47242
|
return result;
|
|
47094
47243
|
}
|
|
47095
|
-
|
|
47096
|
-
/*
|
|
47097
|
-
this.DrawTooltipData=function(item)
|
|
47098
|
-
{
|
|
47099
|
-
//JSConsole.Chart.Log('[KLineTooltipPaint::DrawKLineData] ', item);
|
|
47100
|
-
if (!this.HQChart.Symbol) return;
|
|
47101
|
-
|
|
47102
|
-
var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
|
|
47103
|
-
var left=this.GetLeft()+2*GetDevicePixelRatio();
|
|
47104
|
-
var top=this.GetTop()+3*GetDevicePixelRatio();
|
|
47105
|
-
this.YClose=this.KLineTitlePaint.YClose;
|
|
47106
|
-
var upperSymbol=this.HQChart.Symbol.toUpperCase();
|
|
47107
|
-
|
|
47108
|
-
if (this.IsHScreen)
|
|
47109
|
-
{
|
|
47110
|
-
this.Canvas.save();
|
|
47111
|
-
var x=this.GetLeft()+this.Height, y=this.GetTop();
|
|
47112
|
-
|
|
47113
|
-
this.Canvas.translate(x, y);
|
|
47114
|
-
this.Canvas.rotate(90 * Math.PI / 180);
|
|
47115
|
-
|
|
47116
|
-
//x, y 作为原点
|
|
47117
|
-
left=2*GetDevicePixelRatio();
|
|
47118
|
-
top=3*GetDevicePixelRatio();
|
|
47119
|
-
}
|
|
47120
|
-
|
|
47121
|
-
this.Canvas.textBaseline="top";
|
|
47122
|
-
this.Canvas.textAlign="left";
|
|
47123
|
-
this.Canvas.font=this.Font[0];
|
|
47124
|
-
var labelWidth=this.Canvas.measureText('擎: ').width;
|
|
47125
|
-
|
|
47126
|
-
var aryDateTime=item.DateTime.split(' ');
|
|
47127
|
-
if (aryDateTime && aryDateTime.length==2)
|
|
47128
|
-
{
|
|
47129
|
-
var text=IFrameSplitOperator.FormatDateString(aryDateTime[0]);
|
|
47130
|
-
this.Canvas.fillStyle=this.TitleColor;
|
|
47131
|
-
this.Canvas.fillText(text, left,top);
|
|
47132
|
-
|
|
47133
|
-
top+=this.LineHeight;
|
|
47134
|
-
text=IFrameSplitOperator.FormatTimeString(aryDateTime[1]);
|
|
47135
|
-
this.Canvas.fillText(text, left,top);
|
|
47136
|
-
}
|
|
47137
|
-
|
|
47138
|
-
var close=item.Close;
|
|
47139
|
-
var increase=item.Increase;
|
|
47140
|
-
var vol=item.Vol;
|
|
47141
|
-
var amount=item.Amount;
|
|
47142
|
-
if (item.Before) //读取盘前数据
|
|
47143
|
-
{
|
|
47144
|
-
close=item.Before.Close;
|
|
47145
|
-
increase=item.Before.Increase;
|
|
47146
|
-
vol=item.Before.Vol;
|
|
47147
|
-
amount=item.Before.Amount;
|
|
47148
|
-
}
|
|
47149
|
-
|
|
47150
|
-
//最新价格
|
|
47151
|
-
top+=this.LineHeight;
|
|
47152
|
-
this.Canvas.fillStyle=this.TitleColor;
|
|
47153
|
-
text=g_JSChartLocalization.GetText('Tooltip-Price',this.LanguageID);
|
|
47154
|
-
this.Canvas.fillText(text, left,top);
|
|
47155
|
-
var color=this.KLineTitlePaint.GetColor(close,this.YClose);
|
|
47156
|
-
var text=close.toFixed(defaultfloatPrecision);
|
|
47157
|
-
this.Canvas.fillStyle=color;
|
|
47158
|
-
this.Canvas.fillText(text,left+labelWidth,top);
|
|
47159
|
-
|
|
47160
|
-
var isShowAvPrice=true;
|
|
47161
|
-
if (item.Before) isShowAvPrice=false; //集合竞价均价
|
|
47162
|
-
else if (MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol)) isShowAvPrice=false; //外汇没有均价
|
|
47163
|
-
else if (MARKET_SUFFIX_NAME.IsET(upperSymbol) && !MARKET_SUFFIX_NAME.IsETShowAvPrice(upperSymbol)) isShowAvPrice=false;
|
|
47164
|
-
else if (MARKET_SUFFIX_NAME.IsShowAvPrice && !MARKET_SUFFIX_NAME.IsShowAvPrice(upperSymbol)) isShowAvPrice=false;
|
|
47165
|
-
|
|
47166
|
-
//均价
|
|
47167
|
-
if (isShowAvPrice && IFrameSplitOperator.IsNumber(item.AvPrice) && this.IsShowAveragePrice)
|
|
47168
|
-
{
|
|
47169
|
-
top+=this.LineHeight;
|
|
47170
|
-
this.Canvas.fillStyle=this.TitleColor;
|
|
47171
|
-
text=g_JSChartLocalization.GetText('Tooltip-AvPrice',this.LanguageID);
|
|
47172
|
-
this.Canvas.fillText(text, left,top);
|
|
47173
|
-
var color=this.KLineTitlePaint.GetColor(item.AvPrice,this.YClose);
|
|
47174
|
-
var text=item.AvPrice.toFixed(defaultfloatPrecision);
|
|
47175
|
-
this.Canvas.fillStyle=color;
|
|
47176
|
-
this.Canvas.fillText(text,left+labelWidth,top);
|
|
47177
|
-
}
|
|
47178
|
-
|
|
47179
|
-
//涨幅
|
|
47180
|
-
top+=this.LineHeight;
|
|
47181
|
-
this.Canvas.fillStyle=this.TitleColor;
|
|
47182
|
-
text=g_JSChartLocalization.GetText('Tooltip-Increase',this.LanguageID);
|
|
47183
|
-
this.Canvas.fillText(text, left,top);
|
|
47184
|
-
var value=(close-this.YClose)/this.YClose*100;
|
|
47185
|
-
var color = this.KLineTitlePaint.GetColor(value, 0);
|
|
47186
|
-
var text = value.toFixed(2)+'%';
|
|
47187
|
-
this.Canvas.fillStyle=color;
|
|
47188
|
-
this.Canvas.fillText(text,left+labelWidth,top);
|
|
47189
|
-
|
|
47190
|
-
//成交量
|
|
47191
|
-
if (IFrameSplitOperator.IsNumber(vol))
|
|
47192
|
-
{
|
|
47193
|
-
this.Canvas.fillStyle=this.TitleColor;
|
|
47194
|
-
top+=this.LineHeight;
|
|
47195
|
-
text=g_JSChartLocalization.GetText('Tooltip-Vol',this.LanguageID);
|
|
47196
|
-
this.Canvas.fillText(text, left,top);
|
|
47197
|
-
var text=IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);
|
|
47198
|
-
this.Canvas.fillText(text,left+labelWidth,top);
|
|
47199
|
-
}
|
|
47200
|
-
|
|
47201
|
-
//成交金额
|
|
47202
|
-
if (IFrameSplitOperator.IsNumber(amount))
|
|
47203
|
-
{
|
|
47204
|
-
top+=this.LineHeight;
|
|
47205
|
-
text=g_JSChartLocalization.GetText('Tooltip-Amount',this.LanguageID);
|
|
47206
|
-
this.Canvas.fillText(text, left,top);
|
|
47207
|
-
var text=IFrameSplitOperator.FormatValueString(amount,2,this.LanguageID);
|
|
47208
|
-
this.Canvas.fillText(text,left+labelWidth,top);
|
|
47209
|
-
}
|
|
47210
|
-
|
|
47211
|
-
if (IFrameSplitOperator.IsNumber(item.Position))
|
|
47212
|
-
{
|
|
47213
|
-
top+=this.LineHeight;
|
|
47214
|
-
text=g_JSChartLocalization.GetText('Tooltip-Position',this.LanguageID);
|
|
47215
|
-
this.Canvas.fillText(text, left,top);
|
|
47216
|
-
var text=IFrameSplitOperator.FormatValueString(item.Position,2,this.LanguageID);
|
|
47217
|
-
this.Canvas.fillText(text,left+labelWidth,top);
|
|
47218
|
-
}
|
|
47219
|
-
|
|
47220
|
-
if (this.IsHScreen) this.Canvas.restore();
|
|
47221
|
-
}
|
|
47222
|
-
*/
|
|
47223
47244
|
}
|
|
47224
47245
|
|
|
47225
47246
|
//PC端 分时图tooltip左侧固定
|
|
@@ -47375,6 +47396,7 @@ function MinuteLeftTooltipPaint()
|
|
|
47375
47396
|
if (this.HQChart.Symbol) upperSymbol=this.HQChart.Symbol.toUpperCase();
|
|
47376
47397
|
var defaultfloatPrecision=GetfloatPrecision(upperSymbol);//价格小数位数
|
|
47377
47398
|
if (upperSymbol) isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
|
|
47399
|
+
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
|
|
47378
47400
|
|
|
47379
47401
|
if (drawData.Type==0) //连续交易
|
|
47380
47402
|
{
|
|
@@ -47398,7 +47420,7 @@ function MinuteLeftTooltipPaint()
|
|
|
47398
47420
|
var titleItem=this.ForamtIncrease(item.Close,"PCTooltip-Increase");
|
|
47399
47421
|
if (titleItem) aryText.push(titleItem);
|
|
47400
47422
|
|
|
47401
|
-
var titleItem=this.FormatVol(item.Vol,'PCTooltip-Vol');
|
|
47423
|
+
var titleItem=this.FormatVol(item.Vol/unit,'PCTooltip-Vol');
|
|
47402
47424
|
if (titleItem) aryText.push(titleItem);
|
|
47403
47425
|
|
|
47404
47426
|
if (IFrameSplitOperator.IsNumber(item.Amount))
|
|
@@ -47444,10 +47466,10 @@ function MinuteLeftTooltipPaint()
|
|
|
47444
47466
|
|
|
47445
47467
|
if (IFrameSplitOperator.IsNonEmptyArray(item.Vol))
|
|
47446
47468
|
{
|
|
47447
|
-
var titleItem=this.FormatVol(item.Vol[0],'PCTooltip-AC-Vol');
|
|
47469
|
+
var titleItem=this.FormatVol(item.Vol[0]/unit,'PCTooltip-AC-Vol');
|
|
47448
47470
|
if (titleItem) aryText.push(titleItem);
|
|
47449
47471
|
|
|
47450
|
-
var titleItem=this.FormatVol(item.Vol[1],'PCTooltip-AC-NotMatchVol');
|
|
47472
|
+
var titleItem=this.FormatVol(item.Vol[1]/unit,'PCTooltip-AC-NotMatchVol');
|
|
47451
47473
|
if (titleItem) aryText.push(titleItem);
|
|
47452
47474
|
}
|
|
47453
47475
|
}
|
|
@@ -58107,8 +58129,8 @@ function DynamicKLineTitlePainting()
|
|
|
58107
58129
|
|
|
58108
58130
|
if (IFrameSplitOperator.IsNumber(item.Vol)) //成交量
|
|
58109
58131
|
{
|
|
58110
|
-
var
|
|
58111
|
-
|
|
58132
|
+
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
|
|
58133
|
+
var vol=item.Vol/unit;
|
|
58112
58134
|
var text=g_JSChartLocalization.GetText('KTitle-Vol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);
|
|
58113
58135
|
aryText.push({ Text:text, Color:this.VolColor});
|
|
58114
58136
|
}
|
|
@@ -58538,6 +58560,7 @@ function DynamicMinuteTitlePainting()
|
|
|
58538
58560
|
var upperSymbol=this.Symbol.toUpperCase();
|
|
58539
58561
|
var defaultfloatPrecision=GetfloatPrecision(this.Symbol); //价格小数位数
|
|
58540
58562
|
var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
|
|
58563
|
+
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
|
|
58541
58564
|
|
|
58542
58565
|
var item=data.Data;
|
|
58543
58566
|
var isLastOne=data.IsLastOne;
|
|
@@ -58615,7 +58638,7 @@ function DynamicMinuteTitlePainting()
|
|
|
58615
58638
|
|
|
58616
58639
|
if (IFrameSplitOperator.IsNumber(vol))
|
|
58617
58640
|
{
|
|
58618
|
-
var text=g_JSChartLocalization.GetText('MTitle-Vol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);
|
|
58641
|
+
var text=g_JSChartLocalization.GetText('MTitle-Vol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(vol/unit,2,this.LanguageID);
|
|
58619
58642
|
aryText.push({Text:text, Color:this.VolColor});
|
|
58620
58643
|
}
|
|
58621
58644
|
|
|
@@ -58722,7 +58745,8 @@ function DynamicMinuteTitlePainting()
|
|
|
58722
58745
|
var aryText=[] //{ Color: Text: }
|
|
58723
58746
|
|
|
58724
58747
|
var defaultfloatPrecision=GetfloatPrecision(this.Symbol);//价格小数位数
|
|
58725
|
-
|
|
58748
|
+
var upperSymbol=this.Symbol.toUpperCase();
|
|
58749
|
+
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
|
|
58726
58750
|
//股票名称
|
|
58727
58751
|
if (this.IsShowName) aryText.push({Text:this.Name, Color:this.NameColor});
|
|
58728
58752
|
|
|
@@ -58774,14 +58798,14 @@ function DynamicMinuteTitlePainting()
|
|
|
58774
58798
|
{
|
|
58775
58799
|
var filedName='MTitle-AC-Vol';
|
|
58776
58800
|
if (data.Ver==1.0) filedName="MTitle-Vol";
|
|
58777
|
-
var text=g_JSChartLocalization.GetText(filedName,this.LanguageID)+IFrameSplitOperator.FromatIntegerString(item.Vol[0],2);
|
|
58801
|
+
var text=g_JSChartLocalization.GetText(filedName,this.LanguageID)+IFrameSplitOperator.FromatIntegerString(item.Vol[0]/unit,2);
|
|
58778
58802
|
aryText.push({Text:text, Color:this.VolColor});
|
|
58779
58803
|
}
|
|
58780
58804
|
|
|
58781
58805
|
//未匹配量
|
|
58782
58806
|
if (IFrameSplitOperator.IsNumber(item.Vol[1]) && this.CallAuctionShowTitle.has("MTitle-AC-NotMatchVol"))
|
|
58783
58807
|
{
|
|
58784
|
-
var text=g_JSChartLocalization.GetText('MTitle-AC-NotMatchVol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(item.Vol[1],2);
|
|
58808
|
+
var text=g_JSChartLocalization.GetText('MTitle-AC-NotMatchVol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(item.Vol[1]/unit,2);
|
|
58785
58809
|
aryText.push({Text:text, Color:this.VolColor});
|
|
58786
58810
|
}
|
|
58787
58811
|
|
|
@@ -73571,6 +73595,11 @@ function JSChartResource()
|
|
|
73571
73595
|
Color:"rgb(255,165,0)"
|
|
73572
73596
|
}
|
|
73573
73597
|
|
|
73598
|
+
this.DRAWLASTICON=
|
|
73599
|
+
{
|
|
73600
|
+
Family:'iconfont',
|
|
73601
|
+
}
|
|
73602
|
+
|
|
73574
73603
|
this.POINTDOT=
|
|
73575
73604
|
{
|
|
73576
73605
|
Radius:2*GetDevicePixelRatio()
|
|
@@ -77172,6 +77201,9 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
77172
77201
|
this.Canvas.rect(this.Frame.ChartBorder.GetLeft(),this.Frame.ChartBorder.GetTop(),this.Frame.ChartBorder.GetWidth(),this.Frame.ChartBorder.GetHeight());
|
|
77173
77202
|
isInClient=this.Canvas.isPointInPath(x,y);
|
|
77174
77203
|
|
|
77204
|
+
//PC触摸板双指缩放时deltaY数值在[-20,20]之间
|
|
77205
|
+
if (IFrameSplitOperator.IsNumber(e.deltaY) && Math.abs(e.deltaY)<90) return;
|
|
77206
|
+
|
|
77175
77207
|
var wheelValue=e.wheelDelta;
|
|
77176
77208
|
if (!IFrameSplitOperator.IsObjectExist(e.wheelDelta))
|
|
77177
77209
|
wheelValue=e.deltaY* -0.01;
|
|
@@ -89799,7 +89831,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
|
|
|
89799
89831
|
var symbol=data.stock[0].symbol;
|
|
89800
89832
|
var upperSymbol=symbol.toUpperCase();
|
|
89801
89833
|
var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);
|
|
89802
|
-
|
|
89834
|
+
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
|
|
89803
89835
|
var yClose=data.stock[0].yclose;
|
|
89804
89836
|
var preClose=data.stock[0].yclose; //前一个数据价格
|
|
89805
89837
|
var stockData=data.stock[0];
|
|
@@ -89826,8 +89858,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
|
|
|
89826
89858
|
item.Price=jsData[1];
|
|
89827
89859
|
if (!item.Price) item.Price=preClose;
|
|
89828
89860
|
else preClose=item.Price;
|
|
89829
|
-
|
|
89830
|
-
else item.Vol[0]=jsData[2];
|
|
89861
|
+
item.Vol[0]=jsData[2];
|
|
89831
89862
|
item.Amount=jsData[3];
|
|
89832
89863
|
|
|
89833
89864
|
if (IFrameSplitOperator.IsNumber(jsData[4]) && jsData[4]>19000101) //日期
|
|
@@ -89863,7 +89894,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
|
|
|
89863
89894
|
beforeOpenData.Data.push(item);
|
|
89864
89895
|
}
|
|
89865
89896
|
|
|
89866
|
-
beforeOpenData.VolMax=max;
|
|
89897
|
+
beforeOpenData.VolMax=max/unit;
|
|
89867
89898
|
beforeOpenData.VolMin=0;
|
|
89868
89899
|
}
|
|
89869
89900
|
else if (beforeOpenData.Ver==3.0)
|
|
@@ -89891,7 +89922,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
|
|
|
89891
89922
|
beforeOpenData.Data.push(item);
|
|
89892
89923
|
}
|
|
89893
89924
|
|
|
89894
|
-
beforeOpenData.VolMax=max;
|
|
89925
|
+
beforeOpenData.VolMax=max/unit;
|
|
89895
89926
|
beforeOpenData.VolMin=0;
|
|
89896
89927
|
}
|
|
89897
89928
|
|
|
@@ -89906,12 +89937,14 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
|
|
|
89906
89937
|
var stockData=data.stock[0];
|
|
89907
89938
|
var date=stockData.date; //日期
|
|
89908
89939
|
if (!stockData.afterinfo) return null;
|
|
89909
|
-
|
|
89940
|
+
var symbol=data.stock[0].symbol;
|
|
89941
|
+
var upperSymbol=symbol.toLowerCase();
|
|
89910
89942
|
var afterCloseData={ Data:[], TotalCount:3*60, Ver:2.0, Date:date };
|
|
89911
89943
|
var item=stockData.afterinfo;
|
|
89912
89944
|
if (IFrameSplitOperator.IsNumber(item.totalcount)) afterCloseData.TotalCount=item.totalcount;
|
|
89913
89945
|
if (IFrameSplitOperator.IsNumber(item.ver)) afterCloseData.Ver=item.ver;
|
|
89914
89946
|
var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_AFTERCLOSE_EXTENDDATA; //扩展数据序号
|
|
89947
|
+
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
|
|
89915
89948
|
|
|
89916
89949
|
if (afterCloseData.Ver==1.0)
|
|
89917
89950
|
{
|
|
@@ -89957,7 +89990,7 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
|
|
|
89957
89990
|
afterCloseData.Data.push(item);
|
|
89958
89991
|
}
|
|
89959
89992
|
|
|
89960
|
-
afterCloseData.VolMax=max;
|
|
89993
|
+
afterCloseData.VolMax=max/unit;
|
|
89961
89994
|
afterCloseData.VolMin=0;
|
|
89962
89995
|
}
|
|
89963
89996
|
else if (afterCloseData.Ver==3.0)
|
|
@@ -89984,7 +90017,7 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
|
|
|
89984
90017
|
afterCloseData.Data.push(item);
|
|
89985
90018
|
}
|
|
89986
90019
|
|
|
89987
|
-
afterCloseData.VolMax=max;
|
|
90020
|
+
afterCloseData.VolMax=max/unit;
|
|
89988
90021
|
afterCloseData.VolMin=0;
|
|
89989
90022
|
}
|
|
89990
90023
|
|
|
@@ -90021,8 +90054,7 @@ MinuteChartContainer.JsonDataToMinuteData=function(data,isBeforeData)
|
|
|
90021
90054
|
item.Open=jsData.open;
|
|
90022
90055
|
item.High=jsData.high;
|
|
90023
90056
|
item.Low=jsData.low;
|
|
90024
|
-
|
|
90025
|
-
else item.Vol=jsData.vol;
|
|
90057
|
+
item.Vol=jsData.vol;
|
|
90026
90058
|
item.Amount=jsData.amount;
|
|
90027
90059
|
if (jsData.date>0) date=jsData.date; //分钟数据中有日期 优先使用
|
|
90028
90060
|
item.DateTime=date.toString()+" "+jsData.time.toString();
|
|
@@ -90106,7 +90138,6 @@ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
|
|
|
90106
90138
|
|
|
90107
90139
|
if (jsData[extendDataIndex]) item.ExtendData=jsData[extendDataIndex];
|
|
90108
90140
|
item.DateTime=item.Date.toString()+" "+item.Time.toString();
|
|
90109
|
-
if (isSHSZ) item.Vol=item.Vol/100; //沪深股票原始单位股
|
|
90110
90141
|
|
|
90111
90142
|
if (IFrameSplitOperator.IsNumber(minuteData.YClose) && item.Close)
|
|
90112
90143
|
item.Increase=(item.Close-minuteData.YClose)/minuteData.YClose*100; //涨幅 (最新价格-昨收)/昨收*100;
|
|
@@ -90200,8 +90231,7 @@ MinuteChartContainer.JsonDataToMinuteDataArray=function(data)
|
|
|
90200
90231
|
item.High=jsData[3];
|
|
90201
90232
|
item.Low=jsData[4];
|
|
90202
90233
|
item.Increase=null;
|
|
90203
|
-
|
|
90204
|
-
else item.Vol=jsData[5];
|
|
90234
|
+
item.Vol=jsData[5];
|
|
90205
90235
|
item.Amount=jsData[6];
|
|
90206
90236
|
if (7<jsData.length && jsData[7]>0) item.AvPrice=jsData[7]; //均价
|
|
90207
90237
|
item.DateTime=date.toString()+" "+jsData[0].toString();
|
|
@@ -90280,12 +90310,8 @@ MinuteChartContainer.JsonDataToHistoryMinuteLineColorData=function(data)
|
|
|
90280
90310
|
|
|
90281
90311
|
MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, isBeforeOpen, symbol)
|
|
90282
90312
|
{
|
|
90283
|
-
var
|
|
90284
|
-
|
|
90285
|
-
{
|
|
90286
|
-
var upperSymbol=symbol.toUpperCase();
|
|
90287
|
-
isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);
|
|
90288
|
-
}
|
|
90313
|
+
var upperSymbol=symbol?symbol.toUpperCase():null;
|
|
90314
|
+
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
|
|
90289
90315
|
|
|
90290
90316
|
var date=callAuctionData.Date;
|
|
90291
90317
|
var yClose=callAuctionData.YClose;
|
|
@@ -90305,7 +90331,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
90305
90331
|
item.Price=jsData[1];
|
|
90306
90332
|
if (!item.Price) item.Price=preClose;
|
|
90307
90333
|
else preClose=item.Price;
|
|
90308
|
-
item.Vol[0]=
|
|
90334
|
+
item.Vol[0]=jsData[2]; //沪深股票原始单位股
|
|
90309
90335
|
item.Amount=jsData[3];
|
|
90310
90336
|
if (IFrameSplitOperator.IsNumber(jsData[4])) //日期
|
|
90311
90337
|
item.Date=jsData[4];
|
|
@@ -90340,7 +90366,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
90340
90366
|
callAuctionData.Data.push(item);
|
|
90341
90367
|
}
|
|
90342
90368
|
|
|
90343
|
-
callAuctionData.VolMax=max;
|
|
90369
|
+
callAuctionData.VolMax=max/unit;
|
|
90344
90370
|
callAuctionData.VolMin=0;
|
|
90345
90371
|
}
|
|
90346
90372
|
else if (beforeOpenData.Ver==3.0)
|
|
@@ -90368,7 +90394,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
90368
90394
|
callAuctionData.Data.push(item);
|
|
90369
90395
|
}
|
|
90370
90396
|
|
|
90371
|
-
callAuctionData.VolMax=max;
|
|
90397
|
+
callAuctionData.VolMax=max/unit;
|
|
90372
90398
|
callAuctionData.VolMin=0;
|
|
90373
90399
|
}
|
|
90374
90400
|
}
|
|
@@ -90424,201 +90450,6 @@ MinuteChartContainer.JosnDataToAfterCloseDataArray=function(data)
|
|
|
90424
90450
|
return aryDay;
|
|
90425
90451
|
}
|
|
90426
90452
|
|
|
90427
|
-
/*
|
|
90428
|
-
历史分钟走势图
|
|
90429
|
-
*/
|
|
90430
|
-
/* 废弃 统一使用 MinuteChartContainer
|
|
90431
|
-
function HistoryMinuteChartContainer(uielement)
|
|
90432
|
-
{
|
|
90433
|
-
this.newMethod=MinuteChartContainer; //派生
|
|
90434
|
-
this.newMethod(uielement);
|
|
90435
|
-
delete this.newMethod;
|
|
90436
|
-
|
|
90437
|
-
this.HistoryMinuteApiUrl="http://127.0.0.1:8080/cache/minuteday/day/";
|
|
90438
|
-
this.ClassName='HistoryMinuteChartContainer';
|
|
90439
|
-
|
|
90440
|
-
//创建主图K线画法
|
|
90441
|
-
this.CreateMainKLine=function()
|
|
90442
|
-
{
|
|
90443
|
-
//分钟线
|
|
90444
|
-
var minuteLine=new ChartMinutePriceLine();
|
|
90445
|
-
minuteLine.Canvas=this.Canvas;
|
|
90446
|
-
minuteLine.ChartBorder=this.Frame.SubFrame[0].Frame.ChartBorder;
|
|
90447
|
-
minuteLine.ChartFrame=this.Frame.SubFrame[0].Frame;
|
|
90448
|
-
minuteLine.Name="Minute-Line";
|
|
90449
|
-
minuteLine.Color=g_JSChartResource.Minute.PriceColor;
|
|
90450
|
-
|
|
90451
|
-
this.ChartPaint[0]=minuteLine;
|
|
90452
|
-
|
|
90453
|
-
//分钟线均线
|
|
90454
|
-
var averageLine=new ChartLine();
|
|
90455
|
-
averageLine.Canvas=this.Canvas;
|
|
90456
|
-
averageLine.ChartBorder=this.Frame.SubFrame[0].Frame.ChartBorder;
|
|
90457
|
-
averageLine.ChartFrame=this.Frame.SubFrame[0].Frame;
|
|
90458
|
-
averageLine.Name="Minute-Average-Line";
|
|
90459
|
-
averageLine.Color=g_JSChartResource.Minute.AvPriceColor;
|
|
90460
|
-
this.ChartPaint[1]=averageLine;
|
|
90461
|
-
|
|
90462
|
-
var averageLine=new ChartMinuteVolumBar();
|
|
90463
|
-
averageLine.Color=g_JSChartResource.Minute.VolBarColor;
|
|
90464
|
-
averageLine.Canvas=this.Canvas;
|
|
90465
|
-
averageLine.ChartBorder=this.Frame.SubFrame[1].Frame.ChartBorder;
|
|
90466
|
-
averageLine.ChartFrame=this.Frame.SubFrame[1].Frame;
|
|
90467
|
-
averageLine.Name="Minute-Vol-Bar";
|
|
90468
|
-
this.ChartPaint[2]=averageLine;
|
|
90469
|
-
|
|
90470
|
-
|
|
90471
|
-
this.TitlePaint[0]=new DynamicMinuteTitlePainting();
|
|
90472
|
-
this.TitlePaint[0].Frame=this.Frame.SubFrame[0].Frame;
|
|
90473
|
-
this.TitlePaint[0].Canvas=this.Canvas;
|
|
90474
|
-
this.TitlePaint[0].IsShowDate=true;
|
|
90475
|
-
}
|
|
90476
|
-
|
|
90477
|
-
//设置交易日期
|
|
90478
|
-
this.ChangeTradeDate=function(trdateDate)
|
|
90479
|
-
{
|
|
90480
|
-
if (!trdateDate) return;
|
|
90481
|
-
|
|
90482
|
-
this.TradeDate=trdateDate;
|
|
90483
|
-
this.RequestData(); //更新数据
|
|
90484
|
-
}
|
|
90485
|
-
|
|
90486
|
-
this.RequestData=function()
|
|
90487
|
-
{
|
|
90488
|
-
var date=new Date();
|
|
90489
|
-
var nowDate=date.getFullYear()*10000+(date.getMonth()+1)*100+date.getDate();
|
|
90490
|
-
if (nowDate==this.TradeDate) this.RequestMinuteData();
|
|
90491
|
-
else this.RequestHistoryMinuteData();
|
|
90492
|
-
}
|
|
90493
|
-
|
|
90494
|
-
//请求分钟数据
|
|
90495
|
-
this.RequestHistoryMinuteData=function()
|
|
90496
|
-
{
|
|
90497
|
-
var self=this;
|
|
90498
|
-
var url=this.HistoryMinuteApiUrl+this.TradeDate.toString()+"/"+this.Symbol+".json";
|
|
90499
|
-
|
|
90500
|
-
JSNetwork.HttpRequest({
|
|
90501
|
-
url: url,
|
|
90502
|
-
type:"get",
|
|
90503
|
-
dataType: "json",
|
|
90504
|
-
async:true,
|
|
90505
|
-
success: function (data)
|
|
90506
|
-
{
|
|
90507
|
-
self.ChartSplashPaint.EnableSplash(false);
|
|
90508
|
-
self.RecvHistoryMinuteData(data);
|
|
90509
|
-
},
|
|
90510
|
-
error:function(reqeust)
|
|
90511
|
-
{
|
|
90512
|
-
self.ChartSplashPaint.EnableSplash(false);
|
|
90513
|
-
self.RecvHistoryMinuteError(reqeust);
|
|
90514
|
-
}
|
|
90515
|
-
});
|
|
90516
|
-
}
|
|
90517
|
-
|
|
90518
|
-
this.RecvHistoryMinuteError=function(reqeust)
|
|
90519
|
-
{
|
|
90520
|
-
if (reqeust.status!=404) return;
|
|
90521
|
-
|
|
90522
|
-
var sourceData=new ChartData();
|
|
90523
|
-
this.SourceData=sourceData;
|
|
90524
|
-
|
|
90525
|
-
for(var i in this.ChartPaint)
|
|
90526
|
-
{
|
|
90527
|
-
this.ChartPaint[i].Data=sourceData;
|
|
90528
|
-
if (i==0) this.ChartPaint[i].NotSupportMessage='没有权限访问!';
|
|
90529
|
-
}
|
|
90530
|
-
|
|
90531
|
-
this.TitlePaint[0].Data=this.SourceData; //动态标题
|
|
90532
|
-
this.TitlePaint[0].Symbol=this.Symbol;
|
|
90533
|
-
this.TitlePaint[0].Name=null;
|
|
90534
|
-
|
|
90535
|
-
this.Draw();
|
|
90536
|
-
}
|
|
90537
|
-
|
|
90538
|
-
this.RecvHistoryMinuteData=function(data)
|
|
90539
|
-
{
|
|
90540
|
-
var aryMinuteData=HistoryMinuteChartContainer.JsonDataToMinuteData(data);
|
|
90541
|
-
|
|
90542
|
-
//原始数据
|
|
90543
|
-
var sourceData=new ChartData();
|
|
90544
|
-
sourceData.Data=aryMinuteData;
|
|
90545
|
-
|
|
90546
|
-
this.TradeDate=data.date;
|
|
90547
|
-
|
|
90548
|
-
this.SourceData=sourceData;
|
|
90549
|
-
this.Symbol=data.symbol;
|
|
90550
|
-
this.Name=data.name;
|
|
90551
|
-
|
|
90552
|
-
this.BindMainData(sourceData,data.day.yclose);
|
|
90553
|
-
|
|
90554
|
-
if (this.Frame.SubFrame.length>2)
|
|
90555
|
-
{
|
|
90556
|
-
var bindData=new ChartData();
|
|
90557
|
-
bindData.Data=aryMinuteData;
|
|
90558
|
-
for(var i=2; i<this.Frame.SubFrame.length; ++i)
|
|
90559
|
-
{
|
|
90560
|
-
this.BindIndexData(i,bindData);
|
|
90561
|
-
}
|
|
90562
|
-
}
|
|
90563
|
-
|
|
90564
|
-
this.UpdateFrameMaxMin(); //调整坐标最大 最小值
|
|
90565
|
-
this.Frame.SetSizeChage(true);
|
|
90566
|
-
this.Draw();
|
|
90567
|
-
|
|
90568
|
-
//this.AutoUpdata();
|
|
90569
|
-
}
|
|
90570
|
-
|
|
90571
|
-
}
|
|
90572
|
-
|
|
90573
|
-
//API 返回数据 转化为array[]
|
|
90574
|
-
HistoryMinuteChartContainer.JsonDataToMinuteData=function(data)
|
|
90575
|
-
{
|
|
90576
|
-
var aryMinuteData=[];
|
|
90577
|
-
for(var i in data.minute.time)
|
|
90578
|
-
{
|
|
90579
|
-
var item=new MinuteData();
|
|
90580
|
-
|
|
90581
|
-
if (data.minute.price[i]<=0 && i>0) //当前这一分钟价格为空,使用上一分钟的数据
|
|
90582
|
-
{
|
|
90583
|
-
item.Close=aryMinuteData[i-1].Close;
|
|
90584
|
-
item.Open=aryMinuteData[i-1].Close;
|
|
90585
|
-
item.High=item.Close;
|
|
90586
|
-
item.Low=item.Close;
|
|
90587
|
-
item.Vol=data.minute.vol[i]; //原始单位股
|
|
90588
|
-
item.Amount=data.minute.amount[i];
|
|
90589
|
-
item.DateTime=data.date.toString()+" "+data.minute.time[i].toString();
|
|
90590
|
-
//item.Increate=jsData.increate;
|
|
90591
|
-
//item.Risefall=jsData.risefall;
|
|
90592
|
-
item.AvPrice=aryMinuteData[i-1].AvPrice;
|
|
90593
|
-
}
|
|
90594
|
-
else
|
|
90595
|
-
{
|
|
90596
|
-
item.Close=data.minute.price[i];
|
|
90597
|
-
item.Open=data.minute.open[i];
|
|
90598
|
-
item.High=data.minute.high[i];
|
|
90599
|
-
item.Low=data.minute.low[i];
|
|
90600
|
-
item.Vol=data.minute.vol[i]; //原始单位股
|
|
90601
|
-
item.Amount=data.minute.amount[i];
|
|
90602
|
-
item.DateTime=data.date.toString()+" "+data.minute.time[i].toString();
|
|
90603
|
-
//item.Increate=jsData.increate;
|
|
90604
|
-
//item.Risefall=jsData.risefall;
|
|
90605
|
-
item.AvPrice=data.minute.avprice[i];
|
|
90606
|
-
}
|
|
90607
|
-
|
|
90608
|
-
//价格是0的 都用空
|
|
90609
|
-
if (item.Open<=0) item.Open=null;
|
|
90610
|
-
if (item.Close<=0) item.Close=null;
|
|
90611
|
-
if (item.AvPrice<=0) item.AvPrice=null;
|
|
90612
|
-
if (item.High<=0) item.High=null;
|
|
90613
|
-
if (item.Low<=0) item.Low=null;
|
|
90614
|
-
|
|
90615
|
-
aryMinuteData[i]=item;
|
|
90616
|
-
}
|
|
90617
|
-
|
|
90618
|
-
return aryMinuteData;
|
|
90619
|
-
}
|
|
90620
|
-
*/
|
|
90621
|
-
|
|
90622
90453
|
/////////////////////////////////////////////////////////////////////////////
|
|
90623
90454
|
// 自定义指数
|
|
90624
90455
|
//
|
|
@@ -95679,6 +95510,16 @@ var MARKET_SUFFIX_NAME=
|
|
|
95679
95510
|
if (ChartData.IsMinutePeriod(period,true)) return false; //内置分钟K线不支持复权
|
|
95680
95511
|
|
|
95681
95512
|
return true;
|
|
95513
|
+
},
|
|
95514
|
+
|
|
95515
|
+
//获取成交量单位
|
|
95516
|
+
GetVolUnit:function(upperSymbol)
|
|
95517
|
+
{
|
|
95518
|
+
if (!upperSymbol) return 1;
|
|
95519
|
+
if (MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol)) return 100; //单位手=100股
|
|
95520
|
+
if (MARKET_SUFFIX_NAME.IsBJ(upperSymbol)) return 100; //单位手=100股
|
|
95521
|
+
|
|
95522
|
+
return 1;
|
|
95682
95523
|
}
|
|
95683
95524
|
}
|
|
95684
95525
|
|
|
@@ -98970,6 +98811,8 @@ function GetLocalTime(i) //得到标准时区的时间的函数
|
|
|
98970
98811
|
|
|
98971
98812
|
|
|
98972
98813
|
|
|
98814
|
+
|
|
98815
|
+
|
|
98973
98816
|
/*
|
|
98974
98817
|
Copyright (c) 2018 jones
|
|
98975
98818
|
|
|
@@ -110360,6 +110203,105 @@ function JSDraw(errorHandler,symbolData)
|
|
|
110360
110203
|
|
|
110361
110204
|
return result;
|
|
110362
110205
|
}
|
|
110206
|
+
|
|
110207
|
+
|
|
110208
|
+
///////////////////////////////////////////////////////////////////////////////////
|
|
110209
|
+
//DRAWLASTBARICON :在最后一根k线绘制图标。
|
|
110210
|
+
//用法:DRAWLASTBARICON(PRICE,ICON);
|
|
110211
|
+
//最后一根k线,在PRICE位置画图标ICON。
|
|
110212
|
+
//
|
|
110213
|
+
//注:
|
|
110214
|
+
//1、该函数可以指定位置PRICE标注图标ICON
|
|
110215
|
+
//2、ICON位置可以写成'ICON'的形式,也可以写为数字的形式,即DRAWLASTBARICON(PRICE,'ICO1');等价于DRAWLASTBARICON(PRICE,1);
|
|
110216
|
+
//3、不支持将该函数定义为变量,即不支持下面的写法:
|
|
110217
|
+
//A:DRAWLASTBARICON(PRICE,ICON);
|
|
110218
|
+
//4、该函数可以用ALIGN,VALIGN设置图标的对齐方式。
|
|
110219
|
+
//例1:
|
|
110220
|
+
//DRAWLASTBARICON(LOW,'ICO1');//在最后一根k线最低价上画出图标ICON1。
|
|
110221
|
+
//例2:
|
|
110222
|
+
//MA5:=MA(C,5);
|
|
110223
|
+
//DRAWLASTBARICON(MA5,2);//表示在最后一根k线对应的MA5数值位置上画出图标ICON2。
|
|
110224
|
+
|
|
110225
|
+
this.DRAWLASTBARICON=function(data, type)
|
|
110226
|
+
{
|
|
110227
|
+
if (IFrameSplitOperator.IsString(type)) //把ICO1=>1
|
|
110228
|
+
{
|
|
110229
|
+
var value=type.replace('ICO',"");
|
|
110230
|
+
type=parseInt(value);
|
|
110231
|
+
}
|
|
110232
|
+
|
|
110233
|
+
var icon=g_JSComplierResource.GetDrawIcon(type);
|
|
110234
|
+
if (!icon) g_JSComplierResource.GetDrawTextIcon(type);
|
|
110235
|
+
if (!icon) icon={ Symbol:'🚩'};
|
|
110236
|
+
|
|
110237
|
+
var drawItem={ Value:null, Icon:icon, IconType:type };
|
|
110238
|
+
if (IFrameSplitOperator.IsNonEmptyArray(data)) drawItem.Value=data[data.length-1];
|
|
110239
|
+
else drawItem.Value=data;
|
|
110240
|
+
|
|
110241
|
+
var result={ DrawData:drawItem, DrawType:'DRAWLASTBARICON' };
|
|
110242
|
+
|
|
110243
|
+
return result;
|
|
110244
|
+
}
|
|
110245
|
+
|
|
110246
|
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
110247
|
+
//DRAWLASTBARTEXT:显在最后一根k线显示文字。
|
|
110248
|
+
//用法:DRAWLASTBARTEXT(PRICE,TEXT);
|
|
110249
|
+
//最后一根k线,在PRICE位置书写文字TEXT。
|
|
110250
|
+
//注:
|
|
110251
|
+
//1、显示的汉字用单引号标注
|
|
110252
|
+
//2、可以设置文字显示的对齐方式,字体大小以及文字的颜色,即支持下面的写法:
|
|
110253
|
+
//DRAWLASTBARTEXT(PRICE,TEXT),COLOR,ALIGN,VALIGN;
|
|
110254
|
+
//例1:
|
|
110255
|
+
//DRAWLASTBARTEXT(LOW,'注');//
|
|
110256
|
+
//最后一根k线,在最低价上写"注"字。
|
|
110257
|
+
//例2:
|
|
110258
|
+
//DRAWLASTBARTEXT(LOW,'低'),ALIGN0,FONTSIZE16,COLORRED;//在最后一根k线,在最低价写"低"字,文字左对齐,字体大小为16,文字颜色为红色。
|
|
110259
|
+
|
|
110260
|
+
this.DRAWLASTBARTEXT=function(data, text)
|
|
110261
|
+
{
|
|
110262
|
+
var drawItem={ Value:null, Text:text };
|
|
110263
|
+
if (IFrameSplitOperator.IsNonEmptyArray(data)) drawItem.Value=data[data.length-1];
|
|
110264
|
+
else drawItem.Value=data;
|
|
110265
|
+
|
|
110266
|
+
var result={ DrawData:drawItem, DrawType:'DRAWLASTBARTEXT' };
|
|
110267
|
+
|
|
110268
|
+
return result;
|
|
110269
|
+
}
|
|
110270
|
+
|
|
110271
|
+
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
110272
|
+
//DRAWLASTBARNUMBER:在最后一根k线输出数值。
|
|
110273
|
+
//用法:DRAWLASTBARNUMBER(DATA,NUMBER,PRECISION,COLOR);
|
|
110274
|
+
//最后一根k线在DATA位置写数字NUMBER。PRECISION为精度(小数点后有几位数字)。COLOR为颜色。
|
|
110275
|
+
//注:
|
|
110276
|
+
//该函数支持在函数后设置文字的大小和文字对齐方式。即支持下面的写法:
|
|
110277
|
+
//DRAWLASTBARNUMBER(DATA,NUMBER,PRECISION,COLOR),ALIGN,VALIGN;
|
|
110278
|
+
//例1:
|
|
110279
|
+
//DRAWLASTBARNUMBER(HIGH,(CLOSE-OPEN)/OPEN*100,2,COLORRED);//最后一根k线在最高价位置红色显示涨幅数值(相对开盘价的百分比,精确2位小数)。
|
|
110280
|
+
//例2:
|
|
110281
|
+
//DRAWLASTBARNUMBER(L,REF(C,1),2,COLORRED),ALIGN0,VALIGN0;//表示最后一根k线的最低价处以红色显示昨收盘价数值(精确2位小数),标注文字居左,居上对齐。
|
|
110282
|
+
|
|
110283
|
+
this.DRAWLASTBARNUMBER=function(data,value,dec,color)
|
|
110284
|
+
{
|
|
110285
|
+
var drawItem={ Value:null, Text:null, Color:color };
|
|
110286
|
+
if (IFrameSplitOperator.IsNonEmptyArray(data)) drawItem.Value=data[data.length-1];
|
|
110287
|
+
else drawItem.Value=data;
|
|
110288
|
+
|
|
110289
|
+
var precision=2;
|
|
110290
|
+
if (IFrameSplitOperator.IsNumber(dec)) precision=parseInt(dec);
|
|
110291
|
+
if (IFrameSplitOperator.IsNumber(value))
|
|
110292
|
+
{
|
|
110293
|
+
drawItem.Text=value.toFixed(precision);
|
|
110294
|
+
}
|
|
110295
|
+
else if (IFrameSplitOperator.IsNonEmptyArray(value))
|
|
110296
|
+
{
|
|
110297
|
+
var lastValue=value[value.length-1];
|
|
110298
|
+
if (IFrameSplitOperator.IsNumber(lastValue)) drawItem.Text=lastValue.toFixed(precision);
|
|
110299
|
+
}
|
|
110300
|
+
|
|
110301
|
+
var result={ DrawData:drawItem, DrawType:'DRAWLASTBARNUMBER' };
|
|
110302
|
+
|
|
110303
|
+
return result;
|
|
110304
|
+
}
|
|
110363
110305
|
}
|
|
110364
110306
|
|
|
110365
110307
|
|
|
@@ -110414,6 +110356,7 @@ JSDraw.prototype.IsDrawFunction=function(name)
|
|
|
110414
110356
|
'DRAWOVERLAYLINE',"FILLRGN", "FILLRGN2","FILLTOPRGN", "FILLBOTTOMRGN", "FILLVERTICALRGN","FLOATRGN","DRAWSL", "DRAWGBK2","DRAWGBK_DIV",
|
|
110415
110357
|
"VERTLINE","HORLINE","TIPICON",
|
|
110416
110358
|
"BUY","SELL","SELLSHORT","BUYSHORT",
|
|
110359
|
+
"DRAWLASTBARICON","DRAWLASTBARNUMBER", "DRAWLASTBARTEXT",
|
|
110417
110360
|
]);
|
|
110418
110361
|
if (setFunctionName.has(name)) return true;
|
|
110419
110362
|
|
|
@@ -111353,9 +111296,7 @@ function JSSymbolData(ast,option,jsExecute)
|
|
|
111353
111296
|
return kData.GetClose();
|
|
111354
111297
|
case 'VOL':
|
|
111355
111298
|
case 'V':
|
|
111356
|
-
|
|
111357
|
-
return kData.GetVol(100); //A股的 把股转成手
|
|
111358
|
-
return kData.GetVol();
|
|
111299
|
+
return kData.GetVol(MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol));
|
|
111359
111300
|
case 'OPEN':
|
|
111360
111301
|
case 'O':
|
|
111361
111302
|
return kData.GetOpen();
|
|
@@ -111984,9 +111925,7 @@ function JSSymbolData(ast,option,jsExecute)
|
|
|
111984
111925
|
return this.Data.GetClose();
|
|
111985
111926
|
case 'VOL':
|
|
111986
111927
|
case 'V':
|
|
111987
|
-
|
|
111988
|
-
return this.Data.GetVol(100); //A股的 把股转成手
|
|
111989
|
-
return this.Data.GetVol();
|
|
111928
|
+
return this.Data.GetVol(MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol));
|
|
111990
111929
|
case 'OPEN':
|
|
111991
111930
|
case 'O':
|
|
111992
111931
|
return this.Data.GetOpen();
|
|
@@ -112232,9 +112171,7 @@ function JSSymbolData(ast,option,jsExecute)
|
|
|
112232
112171
|
return result.GetAmount();
|
|
112233
112172
|
case 'V':
|
|
112234
112173
|
case "VOL":
|
|
112235
|
-
|
|
112236
|
-
return result.GetVol(100);
|
|
112237
|
-
return result.GetVol();
|
|
112174
|
+
return result.GetVol(MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol));
|
|
112238
112175
|
case "VOLINSTK":
|
|
112239
112176
|
return result.GetPosition();
|
|
112240
112177
|
default:
|
|
@@ -115696,6 +115633,7 @@ function JSExecute(ast,option)
|
|
|
115696
115633
|
["OFFERCANCELVOL", null], //累计总有效撤卖量,专业版等(资金流向功能)沪深京品种行情专用 累计总有效委卖量-累计总有效撤卖量=总卖+总成交量
|
|
115697
115634
|
["AVGOFFERPX", null], //专业版等(资金流向功能)沪深京品种行情专用:最新委卖均价
|
|
115698
115635
|
//["", null],
|
|
115636
|
+
|
|
115699
115637
|
]);
|
|
115700
115638
|
|
|
115701
115639
|
this.SymbolData=new JSSymbolData(this.AST,option,this);
|
|
@@ -117152,6 +117090,20 @@ function JSExecute(ast,option)
|
|
|
117152
117090
|
node.Draw=this.Draw.HORLINE(args[0],args[1],args[2],args[3]);
|
|
117153
117091
|
node.Out=node.Draw.DrawData.Data;
|
|
117154
117092
|
break;
|
|
117093
|
+
|
|
117094
|
+
case "DRAWLASTBARICON":
|
|
117095
|
+
node.Draw=this.Draw.DRAWLASTBARICON(args[0],args[1]);
|
|
117096
|
+
node.Out=[];
|
|
117097
|
+
break;
|
|
117098
|
+
case "DRAWLASTBARNUMBER":
|
|
117099
|
+
node.Draw=this.Draw.DRAWLASTBARNUMBER(args[0],args[1],args[2],args[3]);
|
|
117100
|
+
node.Out=[];
|
|
117101
|
+
break;
|
|
117102
|
+
case "DRAWLASTBARTEXT":
|
|
117103
|
+
node.Draw=this.Draw.DRAWLASTBARTEXT(args[0],args[1]);
|
|
117104
|
+
node.Out=[];
|
|
117105
|
+
break;
|
|
117106
|
+
|
|
117155
117107
|
case 'CODELIKE':
|
|
117156
117108
|
node.Out=this.SymbolData.CODELIKE(args[0]);
|
|
117157
117109
|
break;
|
|
@@ -117564,6 +117516,22 @@ function JSExplainer(ast,option)
|
|
|
117564
117516
|
["OFFERCANCELVOL", "累计总有效撤卖量"],
|
|
117565
117517
|
["AVGOFFERPX", "最新委卖均价"],
|
|
117566
117518
|
|
|
117519
|
+
['COLORBLACK','黑色'],
|
|
117520
|
+
['COLORBLUE','蓝色'],
|
|
117521
|
+
['COLORGREEN','绿色'],
|
|
117522
|
+
['COLORCYAN','青色'],
|
|
117523
|
+
['COLORRED','红色'],
|
|
117524
|
+
['COLORMAGENTA','洋红色'],
|
|
117525
|
+
['COLORBROWN','棕色'],
|
|
117526
|
+
['COLORLIGRAY','淡灰色'],
|
|
117527
|
+
['COLORGRAY','深灰色'],
|
|
117528
|
+
['COLORLIBLUE','淡蓝色'],
|
|
117529
|
+
['COLORLIGREEN','淡绿色'],
|
|
117530
|
+
['COLORLICYAN','淡青色'],
|
|
117531
|
+
['COLORLIRED','淡红色'],
|
|
117532
|
+
['COLORLIMAGENTA','淡洋红色'],
|
|
117533
|
+
['COLORWHITE','白色'],
|
|
117534
|
+
['COLORYELLOW','黄色']
|
|
117567
117535
|
]);
|
|
117568
117536
|
|
|
117569
117537
|
if (option)
|
|
@@ -118265,6 +118233,12 @@ function JSExplainer(ast,option)
|
|
|
118265
118233
|
case "BUYSHORT":
|
|
118266
118234
|
return "买入平仓";
|
|
118267
118235
|
|
|
118236
|
+
case "DRAWLASTBARNUMBER":
|
|
118237
|
+
return "在最后一根k线输出数值";
|
|
118238
|
+
case "DRAWLASTBARTEXT":
|
|
118239
|
+
return "在最后一根k线显示文字";
|
|
118240
|
+
case "DRAWLASTBARICON":
|
|
118241
|
+
return "在最后一根k线绘制图标";
|
|
118268
118242
|
case "YMOVE":
|
|
118269
118243
|
return;
|
|
118270
118244
|
case "BACKGROUND":
|
|
@@ -120436,6 +120410,49 @@ function ScriptIndex(name,script,args,option)
|
|
|
120436
120410
|
hqChart.ChartPaint.push(chart);
|
|
120437
120411
|
}
|
|
120438
120412
|
|
|
120413
|
+
this.CreateDrawLastBarText=function(hqChart,windowIndex,varItem,id)
|
|
120414
|
+
{
|
|
120415
|
+
var chart=new ChartDrawLastBarText();
|
|
120416
|
+
chart.Canvas=hqChart.Canvas;
|
|
120417
|
+
chart.Name=varItem.Name;
|
|
120418
|
+
chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
|
|
120419
|
+
chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;
|
|
120420
|
+
|
|
120421
|
+
if (hqChart.ChartPaint[0].IsMinuteFrame())
|
|
120422
|
+
chart.Data=hqChart.SourceData;
|
|
120423
|
+
else
|
|
120424
|
+
chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
120425
|
+
|
|
120426
|
+
var lastItem=varItem.Draw.DrawData;
|
|
120427
|
+
if (lastItem)
|
|
120428
|
+
{
|
|
120429
|
+
if (lastItem.Color) lastItem.Color=this.GetColor(lastItem.Color);
|
|
120430
|
+
else lastItem.Color=this.GetDefaultColor(id);
|
|
120431
|
+
if (varItem.Color) lastItem.Color=this.GetColor(varItem.Color);
|
|
120432
|
+
|
|
120433
|
+
if (varItem.DrawVAlign>=0)
|
|
120434
|
+
{
|
|
120435
|
+
if (varItem.DrawVAlign==0) lastItem.TextBaseline='top';
|
|
120436
|
+
else if (varItem.DrawVAlign==1) lastItem.TextBaseline='middle';
|
|
120437
|
+
else if (varItem.DrawVAlign==2) lastItem.TextBaseline='bottom';
|
|
120438
|
+
}
|
|
120439
|
+
|
|
120440
|
+
if (varItem.DrawAlign>=0)
|
|
120441
|
+
{
|
|
120442
|
+
if (varItem.DrawAlign==0) lastItem.TextAlign="left";
|
|
120443
|
+
else if (varItem.DrawAlign==1) lastItem.TextAlign="center";
|
|
120444
|
+
else if (varItem.DrawAlign==2) lastItem.TextAlign='right';
|
|
120445
|
+
}
|
|
120446
|
+
|
|
120447
|
+
if (IFrameSplitOperator.IsNumber(varItem.YOffset)) lastItem.YOffset=varItem.YOffset;
|
|
120448
|
+
if (IFrameSplitOperator.IsNumber(varItem.XOffset)) lastItem.XOffset=varItem.XOffset;
|
|
120449
|
+
if (varItem.DrawFontSize>0) lastItem.FontSize=varItem.DrawFontSize;
|
|
120450
|
+
}
|
|
120451
|
+
|
|
120452
|
+
chart.LastBarItem=lastItem;
|
|
120453
|
+
hqChart.ChartPaint.push(chart);
|
|
120454
|
+
}
|
|
120455
|
+
|
|
120439
120456
|
//创建通道
|
|
120440
120457
|
this.CreateChannel=function(hqChart,windowIndex,varItem,id)
|
|
120441
120458
|
{
|
|
@@ -121032,6 +121049,12 @@ function ScriptIndex(name,script,args,option)
|
|
|
121032
121049
|
this.CreateTradeIcon(hqChart,windowIndex,item,i);
|
|
121033
121050
|
break;
|
|
121034
121051
|
|
|
121052
|
+
case "DRAWLASTBARICON":
|
|
121053
|
+
case "DRAWLASTBARNUMBER":
|
|
121054
|
+
case "DRAWLASTBARTEXT":
|
|
121055
|
+
this.CreateDrawLastBarText(hqChart,windowIndex,item,i);
|
|
121056
|
+
break;
|
|
121057
|
+
|
|
121035
121058
|
case SCRIPT_CHART_NAME.OVERLAY_BARS:
|
|
121036
121059
|
this.CreateStackedBar(hqChart,windowIndex,item,i);
|
|
121037
121060
|
break;
|
|
@@ -139369,7 +139392,7 @@ function ScrollBarBGChart()
|
|
|
139369
139392
|
|
|
139370
139393
|
|
|
139371
139394
|
|
|
139372
|
-
var HQCHART_VERSION="1.1.
|
|
139395
|
+
var HQCHART_VERSION="1.1.14132";
|
|
139373
139396
|
|
|
139374
139397
|
function PrintHQChartVersion()
|
|
139375
139398
|
{
|