hqchart 1.1.11297 → 1.1.11299

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.
@@ -2960,30 +2960,16 @@ else this.Canvas.fillRect(ToFixedRect(y),ToFixedRect(left),ToFixedRect(yClose-y)
2960
2960
  }else{if(drawType==3)//空心柱
2961
2961
  {this.Canvas.beginPath();this.Canvas.rect(ToFixedPoint(left),ToFixedPoint(y),ToFixedRect(dataWidth),ToFixedRect(yOpen-y));this.Canvas.stroke();}else{this.Canvas.fillRect(ToFixedRect(left),ToFixedRect(Math.min(y,yOpen)),ToFixedRect(dataWidth),ToFixedRect(Math.abs(yOpen-y)));}}}if(data.Open>data.Low)//下影线
2962
2962
  {this.Canvas.beginPath();if(isHScreen){this.Canvas.moveTo(ToFixedPoint(drawType==3?Math.min(yClose,yOpen):y),ToFixedPoint(x));this.Canvas.lineTo(ToFixedPoint(yLow),ToFixedPoint(x));}else{this.Canvas.moveTo(ToFixedPoint(x),ToFixedPoint(drawType==3?Math.max(yClose,yOpen):y));this.Canvas.lineTo(ToFixedPoint(x),ToFixedPoint(yLow));}this.Canvas.stroke();}}else{this.Canvas.beginPath();if(isHScreen){this.Canvas.moveTo(yHigh,ToFixedPoint(x));this.Canvas.lineTo(yLow,ToFixedPoint(x));}else{this.Canvas.moveTo(ToFixedPoint(x),yHigh);this.Canvas.lineTo(ToFixedPoint(x),yLow);}this.Canvas.strokeStyle=barColor;this.Canvas.stroke();}};this.DrawKBarV2=function(data,colorData,dataWidth,x,y,left,right,yLow,yHigh,yOpen,yClose,isHScreen){var isDrawBorder=false;var isEmptyBar=false;if(colorData.border)isDrawBorder=true;if(colorData.Type===0)isEmptyBar=true;if(dataWidth>=4){if(isDrawBorder){if(dataWidth%2!=0)dataWidth-=1;}if(data.High>data.Close)//上影线
2963
- {if(colorData.Line){this.Canvas.strokeStyle=colorData.Line.Color;this.Canvas.beginPath();if(isHScreen){this.Canvas.moveTo(ToFixedPoint(y),ToFixedPoint(x));this.Canvas.lineTo(ToFixedPoint(isEmptyBar?Math.max(yClose,yOpen):yClose),ToFixedPoint(x));}else{if(isDrawBorder){var xFixed=left+dataWidth/2;this.Canvas.moveTo(ToFixedPoint(xFixed),ToFixedPoint(y));this.Canvas.lineTo(ToFixedPoint(xFixed),ToFixedPoint(Math.min(yClose,yOpen)));}else{this.Canvas.moveTo(ToFixedPoint(x),ToFixedPoint(y));this.Canvas.lineTo(ToFixedPoint(x),ToFixedPoint(Math.min(yClose,yOpen)));}}this.Canvas.stroke();}y=yClose;}else{y=yClose;}if(isHScreen){/*
2964
- if (Math.abs(yOpen-y)<1)
2965
- {
2966
- this.Canvas.fillRect(ToFixedRect(y),ToFixedRect(left),1,ToFixedRect(dataWidth)); //高度小于1,统一使用高度1
2967
- }
2968
- else
2969
- {
2970
- if (drawType==3) //空心柱
2971
- {
2972
- this.Canvas.beginPath();
2973
- this.Canvas.rect(ToFixedPoint(y),ToFixedPoint(left),ToFixedRect(yOpen-y),ToFixedRect(dataWidth));
2974
- this.Canvas.stroke();
2975
- }
2976
- else
2977
- {
2978
- this.Canvas.fillRect(ToFixedRect(y),ToFixedRect(left),ToFixedRect(yOpen-y),ToFixedRect(dataWidth));
2979
- }
2980
- }
2981
- */}else{//实心
2963
+ {if(colorData.Line){this.Canvas.strokeStyle=colorData.Line.Color;this.Canvas.beginPath();if(isHScreen){this.Canvas.moveTo(ToFixedPoint(y),ToFixedPoint(x));this.Canvas.lineTo(ToFixedPoint(Math.max(yClose,yOpen)),ToFixedPoint(x));}else{if(isDrawBorder){var xFixed=left+dataWidth/2;this.Canvas.moveTo(ToFixedPoint(xFixed),ToFixedPoint(y));this.Canvas.lineTo(ToFixedPoint(xFixed),ToFixedPoint(Math.min(yClose,yOpen)));}else{this.Canvas.moveTo(ToFixedPoint(x),ToFixedPoint(y));this.Canvas.lineTo(ToFixedPoint(x),ToFixedPoint(Math.min(yClose,yOpen)));}}this.Canvas.stroke();}y=yClose;}else{y=yClose;}if(isHScreen){//实心
2964
+ if(!isEmptyBar&&colorData.BarColor){this.Canvas.fillStyle=colorData.BarColor;if(Math.abs(yOpen-y)<1){this.Canvas.fillRect(ToFixedRect(y),ToFixedRect(left),1,ToFixedRect(dataWidth));//高度小于1,统一使用高度1
2965
+ }else{this.Canvas.fillRect(ToFixedRect(y),ToFixedRect(left),ToFixedRect(yOpen-y),ToFixedRect(dataWidth));}}if(colorData.Border)//空心
2966
+ {if(Math.abs(yOpen-y)<1){this.Canvas.fillStyle=colorData.Border.Color;this.Canvas.fillRect(ToFixedRect(y),ToFixedRect(left),1,ToFixedRect(dataWidth));//高度小于1,统一使用高度1
2967
+ }else{this.Canvas.strokeStyle=colorData.Border.Color;this.Canvas.beginPath();this.Canvas.rect(ToFixedPoint(y),ToFixedPoint(left),ToFixedRect(yOpen-y),ToFixedRect(dataWidth));this.Canvas.stroke();}}}else{//实心
2982
2968
  if(!isEmptyBar&&colorData.BarColor){this.Canvas.fillStyle=colorData.BarColor;if(Math.abs(yOpen-y)<1){this.Canvas.fillRect(ToFixedRect(left),ToFixedRect(y),ToFixedRect(dataWidth),1);//高度小于1,统一使用高度1
2983
2969
  }else{this.Canvas.fillRect(ToFixedRect(left),ToFixedRect(Math.min(y,yOpen)),ToFixedRect(dataWidth),ToFixedRect(Math.abs(yOpen-y)));}}if(colorData.Border)//空心
2984
2970
  {if(Math.abs(yOpen-y)<1){this.Canvas.fillStyle=colorData.Border.Color;this.Canvas.fillRect(ToFixedRect(left),ToFixedRect(y),ToFixedRect(dataWidth),1);//高度小于1,统一使用高度1
2985
2971
  }else{this.Canvas.strokeStyle=colorData.Border.Color;this.Canvas.beginPath();this.Canvas.rect(ToFixedPoint(left),ToFixedPoint(y),ToFixedRect(dataWidth),ToFixedRect(yOpen-y));this.Canvas.stroke();}}}if(data.Open>data.Low)//下影线
2986
- {if(colorData.Line){this.Canvas.strokeStyle=colorData.Line.Color;this.Canvas.beginPath();if(isHScreen){this.Canvas.moveTo(ToFixedPoint(isEmptyBar?Math.min(yClose,yOpen):y),ToFixedPoint(x));this.Canvas.lineTo(ToFixedPoint(yLow),ToFixedPoint(x));}else{if(isDrawBorder){var xFixed=left+dataWidth/2;this.Canvas.moveTo(ToFixedPoint(xFixed),ToFixedPoint(Math.max(yClose,yOpen)));this.Canvas.lineTo(ToFixedPoint(xFixed),ToFixedPoint(yLow));}else{this.Canvas.moveTo(ToFixedPoint(x),ToFixedPoint(Math.max(yClose,yOpen)));this.Canvas.lineTo(ToFixedPoint(x),ToFixedPoint(yLow));}}this.Canvas.stroke();}}}else{var lineColor;if(isEmptyBar&&colorData.Border){lineColor=colorData.Border.Color;}else if(!isEmptyBar&&colorData.BarColor){lineColor=colorData.BarColor;}if(lineColor){this.Canvas.strokeStyle=lineColor;this.Canvas.beginPath();if(isHScreen){this.Canvas.moveTo(yHigh,ToFixedPoint(x));this.Canvas.lineTo(yLow,ToFixedPoint(x));}else{this.Canvas.moveTo(ToFixedPoint(x),yHigh);this.Canvas.lineTo(ToFixedPoint(x),yLow);}this.Canvas.stroke();}}};this.DrawTrade=function()//交易系统
2972
+ {if(colorData.Line){this.Canvas.strokeStyle=colorData.Line.Color;this.Canvas.beginPath();if(isHScreen){this.Canvas.moveTo(ToFixedPoint(Math.min(yClose,yOpen)),ToFixedPoint(x));this.Canvas.lineTo(ToFixedPoint(yLow),ToFixedPoint(x));}else{if(isDrawBorder){var xFixed=left+dataWidth/2;this.Canvas.moveTo(ToFixedPoint(xFixed),ToFixedPoint(Math.max(yClose,yOpen)));this.Canvas.lineTo(ToFixedPoint(xFixed),ToFixedPoint(yLow));}else{this.Canvas.moveTo(ToFixedPoint(x),ToFixedPoint(Math.max(yClose,yOpen)));this.Canvas.lineTo(ToFixedPoint(x),ToFixedPoint(yLow));}}this.Canvas.stroke();}}}else{var lineColor;if(isEmptyBar&&colorData.Border){lineColor=colorData.Border.Color;}else if(!isEmptyBar&&colorData.BarColor){lineColor=colorData.BarColor;}if(lineColor){this.Canvas.strokeStyle=lineColor;this.Canvas.beginPath();if(isHScreen){if(data.High==data.Low){this.Canvas.moveTo(yHigh,ToFixedPoint(x));this.Canvas.lineTo(yLow-1,ToFixedPoint(x));}else{this.Canvas.moveTo(yHigh,ToFixedPoint(x));this.Canvas.lineTo(yLow,ToFixedPoint(x));}}else{if(data.High==data.Low){this.Canvas.moveTo(ToFixedPoint(x),yHigh);this.Canvas.lineTo(ToFixedPoint(x),yLow+1);}else{this.Canvas.moveTo(ToFixedPoint(x),yHigh);this.Canvas.lineTo(ToFixedPoint(x),yLow);}}this.Canvas.stroke();}}};this.DrawTrade=function()//交易系统
2987
2973
  {if(!this.TradeData)return;var isHScreen=this.ChartFrame.IsHScreen===true;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xOffset=this.ChartBorder.GetLeft()+distanceWidth/2.0+2.0;var chartright=this.ChartBorder.GetRight();var xPointCount=this.ChartFrame.XPointCount;if(isHScreen){xOffset=this.ChartBorder.GetTop()+distanceWidth/2.0+2.0;chartright=this.ChartBorder.GetBottom();}var sellData=this.TradeData.Sell;var buyData=this.TradeData.Buy;var arrowWidth=dataWidth;if(arrowWidth>10)arrowWidth=10;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var data=this.Data.Data[i];if(data.Open==null||data.High==null||data.Low==null||data.Close==null)continue;var buy=false,sell=false;if(sellData&&i<sellData.length)sell=sellData[i]>0;if(buyData&&i<buyData.length)buy=buyData[i]>0;if(!sell&&!buy)continue;var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;var yLow=this.GetYFromData(data.Low,false);var yHigh=this.GetYFromData(data.High,false);var yOpen=this.GetYFromData(data.Open,false);var yClose=this.GetYFromData(data.Close,false);var y=yHigh;if(buy){this.Canvas.fillStyle=this.UpColor;this.Canvas.strokeStyle=this.UnchagneColor;this.Canvas.beginPath();if(isHScreen){this.Canvas.moveTo(yLow-1,x);this.Canvas.lineTo(yLow-arrowWidth-1,x-arrowWidth/2);this.Canvas.lineTo(yLow-arrowWidth-1,x+arrowWidth/2);}else{this.Canvas.moveTo(x,yLow+1);this.Canvas.lineTo(x-arrowWidth/2,yLow+arrowWidth+1);this.Canvas.lineTo(x+arrowWidth/2,yLow+arrowWidth+1);}this.Canvas.closePath();this.Canvas.fill();this.Canvas.stroke();}if(sell){this.Canvas.fillStyle=this.DownColor;this.Canvas.strokeStyle=this.UnchagneColor;this.Canvas.beginPath();if(isHScreen){this.Canvas.moveTo(yHigh+1,x);this.Canvas.lineTo(yHigh+arrowWidth+1,x-arrowWidth/2);this.Canvas.lineTo(yHigh+arrowWidth+1,x+arrowWidth/2);}else{this.Canvas.moveTo(x,yHigh-1);this.Canvas.lineTo(x-arrowWidth/2,yHigh-arrowWidth-1);this.Canvas.lineTo(x+arrowWidth/2,yHigh-arrowWidth-1);}this.Canvas.closePath();this.Canvas.fill();this.Canvas.stroke();}}};this.DrawTick=function()//分笔图
2988
2974
  {var isHScreen=this.ChartFrame.IsHScreen===true;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xOffset=this.ChartBorder.GetLeft()+distanceWidth/2.0+2.0;if(isHScreen)xOffset=this.ChartBorder.GetTop()+distanceWidth/2.0+2.0;var chartright=this.ChartBorder.GetRight();if(isHScreen)chartright=this.ChartBorder.GetBottom();var xPointCount=this.ChartFrame.XPointCount;var fontSize=parseInt(dataWidth);if(fontSize<=1)fontSize=2;else if(fontSize>=18)fontSize=18;var bFirstPoint=true;var pixelRatio=GetDevicePixelRatio();var textSize=fontSize*pixelRatio;this.Canvas.beginPath();this.Canvas.font=fontSize*pixelRatio+'px '+this.TickFontName;this.ShowRange.Start=this.Data.DataOffset;this.ShowRange.End=this.ShowRange.Start;this.ShowRange.DataCount=0;this.ShowRange.ShowCount=xPointCount;this.DrawKRange.Start=this.Data.DataOffset;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var data=this.Data.Data[i];this.ShowRange.End=i;if(data.Open==null||data.High==null||data.Low==null||data.Close==null)continue;var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;var yClose=this.ChartFrame.GetYFromData(data.Close,false);this.DrawKRange.End=i;if(data.Flag===0)this.Canvas.fillStyle=this.UpColor;else if(data.Flag==1)this.Canvas.fillStyle=this.DownColor;else this.Canvas.fillStyle=this.UnchagneColor;this.Canvas.textAlign='center';this.Canvas.textBaseline='middle';if(isHScreen)this.Canvas.fillText(this.TickSymbol,yClose,x);else this.Canvas.fillText(this.TickSymbol,x,yClose);if(this.IsShowKTooltip&&!isHScreen)//添加tooltip区域
2989
2975
  {var rect=new Rect(x-textSize/2,yClose-textSize/2,textSize,textSize);//this.Canvas.fillStyle="rgb(0,0,100)";
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "hqchart",
3
3
  "description": "stock chart",
4
4
  "author": "jones2000",
5
- "version": "1.1.11297",
5
+ "version": "1.1.11299",
6
6
  "main": "lib/main.js",
7
7
  "private": false,
8
8
  "license": "Apache License 2.0",
@@ -23238,7 +23238,7 @@ function ChartKLine()
23238
23238
  if (isHScreen)
23239
23239
  {
23240
23240
  this.Canvas.moveTo(ToFixedPoint(y),ToFixedPoint(x));
23241
- this.Canvas.lineTo(ToFixedPoint(isEmptyBar?Math.max(yClose,yOpen):yClose),ToFixedPoint(x));
23241
+ this.Canvas.lineTo(ToFixedPoint(Math.max(yClose,yOpen)),ToFixedPoint(x));
23242
23242
  }
23243
23243
  else
23244
23244
  {
@@ -23266,25 +23266,35 @@ function ChartKLine()
23266
23266
 
23267
23267
  if (isHScreen)
23268
23268
  {
23269
- /*
23270
- if (Math.abs(yOpen-y)<1)
23269
+ //实心
23270
+ if (!isEmptyBar && colorData.BarColor)
23271
23271
  {
23272
- this.Canvas.fillRect(ToFixedRect(y),ToFixedRect(left),1,ToFixedRect(dataWidth)); //高度小于1,统一使用高度1
23272
+ this.Canvas.fillStyle=colorData.BarColor;
23273
+ if (Math.abs(yOpen-y)<1)
23274
+ {
23275
+ this.Canvas.fillRect(ToFixedRect(y),ToFixedRect(left),1,ToFixedRect(dataWidth)); //高度小于1,统一使用高度1
23276
+ }
23277
+ else
23278
+ {
23279
+ this.Canvas.fillRect(ToFixedRect(y),ToFixedRect(left),ToFixedRect(yOpen-y),ToFixedRect(dataWidth));
23280
+ }
23273
23281
  }
23274
- else
23282
+
23283
+ if (colorData.Border) //空心
23275
23284
  {
23276
- if (drawType==3) //空心柱
23285
+ if (Math.abs(yOpen-y)<1)
23277
23286
  {
23278
- this.Canvas.beginPath();
23279
- this.Canvas.rect(ToFixedPoint(y),ToFixedPoint(left),ToFixedRect(yOpen-y),ToFixedRect(dataWidth));
23280
- this.Canvas.stroke();
23287
+ this.Canvas.fillStyle=colorData.Border.Color;
23288
+ this.Canvas.fillRect(ToFixedRect(y),ToFixedRect(left),1,ToFixedRect(dataWidth)); //高度小于1,统一使用高度1
23281
23289
  }
23282
23290
  else
23283
23291
  {
23284
- this.Canvas.fillRect(ToFixedRect(y),ToFixedRect(left),ToFixedRect(yOpen-y),ToFixedRect(dataWidth));
23292
+ this.Canvas.strokeStyle=colorData.Border.Color;
23293
+ this.Canvas.beginPath();
23294
+ this.Canvas.rect(ToFixedPoint(y),ToFixedPoint(left),ToFixedRect(yOpen-y),ToFixedRect(dataWidth));
23295
+ this.Canvas.stroke();
23285
23296
  }
23286
23297
  }
23287
- */
23288
23298
  }
23289
23299
  else
23290
23300
  {
@@ -23328,7 +23338,7 @@ function ChartKLine()
23328
23338
  this.Canvas.beginPath();
23329
23339
  if (isHScreen)
23330
23340
  {
23331
- this.Canvas.moveTo(ToFixedPoint(isEmptyBar?Math.min(yClose,yOpen):y),ToFixedPoint(x));
23341
+ this.Canvas.moveTo(ToFixedPoint(Math.min(yClose,yOpen)),ToFixedPoint(x));
23332
23342
  this.Canvas.lineTo(ToFixedPoint(yLow),ToFixedPoint(x));
23333
23343
  }
23334
23344
  else
@@ -23367,13 +23377,30 @@ function ChartKLine()
23367
23377
  this.Canvas.beginPath();
23368
23378
  if (isHScreen)
23369
23379
  {
23370
- this.Canvas.moveTo(yHigh,ToFixedPoint(x));
23371
- this.Canvas.lineTo(yLow,ToFixedPoint(x));
23380
+ if (data.High==data.Low)
23381
+ {
23382
+ this.Canvas.moveTo(yHigh,ToFixedPoint(x));
23383
+ this.Canvas.lineTo(yLow-1,ToFixedPoint(x));
23384
+ }
23385
+ else
23386
+ {
23387
+ this.Canvas.moveTo(yHigh,ToFixedPoint(x));
23388
+ this.Canvas.lineTo(yLow,ToFixedPoint(x));
23389
+ }
23372
23390
  }
23373
23391
  else
23374
23392
  {
23375
- this.Canvas.moveTo(ToFixedPoint(x),yHigh);
23376
- this.Canvas.lineTo(ToFixedPoint(x),yLow);
23393
+ if (data.High==data.Low)
23394
+ {
23395
+ this.Canvas.moveTo(ToFixedPoint(x),yHigh);
23396
+ this.Canvas.lineTo(ToFixedPoint(x),yLow+1);
23397
+ }
23398
+ else
23399
+ {
23400
+ this.Canvas.moveTo(ToFixedPoint(x),yHigh);
23401
+ this.Canvas.lineTo(ToFixedPoint(x),yLow);
23402
+ }
23403
+
23377
23404
  }
23378
23405
  this.Canvas.stroke();
23379
23406
  }
@@ -23282,7 +23282,7 @@ function ChartKLine()
23282
23282
  if (isHScreen)
23283
23283
  {
23284
23284
  this.Canvas.moveTo(ToFixedPoint(y),ToFixedPoint(x));
23285
- this.Canvas.lineTo(ToFixedPoint(isEmptyBar?Math.max(yClose,yOpen):yClose),ToFixedPoint(x));
23285
+ this.Canvas.lineTo(ToFixedPoint(Math.max(yClose,yOpen)),ToFixedPoint(x));
23286
23286
  }
23287
23287
  else
23288
23288
  {
@@ -23310,25 +23310,35 @@ function ChartKLine()
23310
23310
 
23311
23311
  if (isHScreen)
23312
23312
  {
23313
- /*
23314
- if (Math.abs(yOpen-y)<1)
23313
+ //实心
23314
+ if (!isEmptyBar && colorData.BarColor)
23315
23315
  {
23316
- this.Canvas.fillRect(ToFixedRect(y),ToFixedRect(left),1,ToFixedRect(dataWidth)); //高度小于1,统一使用高度1
23316
+ this.Canvas.fillStyle=colorData.BarColor;
23317
+ if (Math.abs(yOpen-y)<1)
23318
+ {
23319
+ this.Canvas.fillRect(ToFixedRect(y),ToFixedRect(left),1,ToFixedRect(dataWidth)); //高度小于1,统一使用高度1
23320
+ }
23321
+ else
23322
+ {
23323
+ this.Canvas.fillRect(ToFixedRect(y),ToFixedRect(left),ToFixedRect(yOpen-y),ToFixedRect(dataWidth));
23324
+ }
23317
23325
  }
23318
- else
23326
+
23327
+ if (colorData.Border) //空心
23319
23328
  {
23320
- if (drawType==3) //空心柱
23329
+ if (Math.abs(yOpen-y)<1)
23321
23330
  {
23322
- this.Canvas.beginPath();
23323
- this.Canvas.rect(ToFixedPoint(y),ToFixedPoint(left),ToFixedRect(yOpen-y),ToFixedRect(dataWidth));
23324
- this.Canvas.stroke();
23331
+ this.Canvas.fillStyle=colorData.Border.Color;
23332
+ this.Canvas.fillRect(ToFixedRect(y),ToFixedRect(left),1,ToFixedRect(dataWidth)); //高度小于1,统一使用高度1
23325
23333
  }
23326
23334
  else
23327
23335
  {
23328
- this.Canvas.fillRect(ToFixedRect(y),ToFixedRect(left),ToFixedRect(yOpen-y),ToFixedRect(dataWidth));
23336
+ this.Canvas.strokeStyle=colorData.Border.Color;
23337
+ this.Canvas.beginPath();
23338
+ this.Canvas.rect(ToFixedPoint(y),ToFixedPoint(left),ToFixedRect(yOpen-y),ToFixedRect(dataWidth));
23339
+ this.Canvas.stroke();
23329
23340
  }
23330
23341
  }
23331
- */
23332
23342
  }
23333
23343
  else
23334
23344
  {
@@ -23372,7 +23382,7 @@ function ChartKLine()
23372
23382
  this.Canvas.beginPath();
23373
23383
  if (isHScreen)
23374
23384
  {
23375
- this.Canvas.moveTo(ToFixedPoint(isEmptyBar?Math.min(yClose,yOpen):y),ToFixedPoint(x));
23385
+ this.Canvas.moveTo(ToFixedPoint(Math.min(yClose,yOpen)),ToFixedPoint(x));
23376
23386
  this.Canvas.lineTo(ToFixedPoint(yLow),ToFixedPoint(x));
23377
23387
  }
23378
23388
  else
@@ -23411,13 +23421,30 @@ function ChartKLine()
23411
23421
  this.Canvas.beginPath();
23412
23422
  if (isHScreen)
23413
23423
  {
23414
- this.Canvas.moveTo(yHigh,ToFixedPoint(x));
23415
- this.Canvas.lineTo(yLow,ToFixedPoint(x));
23424
+ if (data.High==data.Low)
23425
+ {
23426
+ this.Canvas.moveTo(yHigh,ToFixedPoint(x));
23427
+ this.Canvas.lineTo(yLow-1,ToFixedPoint(x));
23428
+ }
23429
+ else
23430
+ {
23431
+ this.Canvas.moveTo(yHigh,ToFixedPoint(x));
23432
+ this.Canvas.lineTo(yLow,ToFixedPoint(x));
23433
+ }
23416
23434
  }
23417
23435
  else
23418
23436
  {
23419
- this.Canvas.moveTo(ToFixedPoint(x),yHigh);
23420
- this.Canvas.lineTo(ToFixedPoint(x),yLow);
23437
+ if (data.High==data.Low)
23438
+ {
23439
+ this.Canvas.moveTo(ToFixedPoint(x),yHigh);
23440
+ this.Canvas.lineTo(ToFixedPoint(x),yLow+1);
23441
+ }
23442
+ else
23443
+ {
23444
+ this.Canvas.moveTo(ToFixedPoint(x),yHigh);
23445
+ this.Canvas.lineTo(ToFixedPoint(x),yLow);
23446
+ }
23447
+
23421
23448
  }
23422
23449
  this.Canvas.stroke();
23423
23450
  }