hqchart 1.1.11279 → 1.1.11285
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
CHANGED
|
@@ -1565,7 +1565,8 @@ CHANGE_INDEX:4,//换指标
|
|
|
1565
1565
|
CLOSE_INDEX_WINDOW:5,//关闭指标窗口
|
|
1566
1566
|
OVERLAY_INDEX:6,//叠加指标
|
|
1567
1567
|
MODIFY_OVERLAY_INDEX_PARAM:7,//改叠加指标参数
|
|
1568
|
-
CHIP_DEFULT:8,CHIP_LONG:9,CHIP_RECENT:10};var JSCHART_DATA_FIELD_ID={KLINE_ORDERFLOW:99,MINUTE_MULTI_DAY_EXTENDDATA:21
|
|
1568
|
+
CHIP_DEFULT:8,CHIP_LONG:9,CHIP_RECENT:10};var JSCHART_DATA_FIELD_ID={KLINE_ORDERFLOW:99,MINUTE_MULTI_DAY_EXTENDDATA:21,//多日分时图扩展数据序号
|
|
1569
|
+
KLINE_COLOR_DATA:66//K线自定义颜色数据
|
|
1569
1570
|
};function PhoneDBClick(){this.Start=[];this.Clear=function(){this.Start=[];};this.AddTouchStart=function(x,y,time){if(this.Start.length>0){var item=this.Start[this.Start.length-1];var spanTime=time-item.Time;if(spanTime>0&&spanTime<300){this.Start.push({X:x,Y:y,Time:time});}else{this.Start=[];}}else{this.Start.push({X:x,Y:y,Time:time});}};this.IsVaildDBClick=function(){if(this.Start.length==2)return true;return false;};this.AddTouchEnd=function(time){if(this.Start.length<=0)return;var item=this.Start[this.Start.length-1];var spanTime=time-item.Time;if(spanTime>=0&&spanTime<150){}else{this.Start=[];}};}/*
|
|
1570
1571
|
图形控件
|
|
1571
1572
|
*/function JSChartContainer(uielement,OffscreenElement){var _this3=this;this.ClassName='JSChartContainer';var _self=this;this.Frame;//框架画法
|
|
@@ -2635,8 +2636,8 @@ this.AFactor;//后复权
|
|
|
2635
2636
|
}//数据复制
|
|
2636
2637
|
HistoryData.Copy=function(data){var newData=new HistoryData();newData.Date=data.Date;if(IFrameSplitOperator.IsNumber(data.Time))newData.Time=data.Time;newData.YClose=data.YClose;newData.Open=data.Open;newData.Close=data.Close;newData.High=data.High;newData.Low=data.Low;newData.Vol=data.Vol;newData.Amount=data.Amount;if(IFrameSplitOperator.IsNumber(data.FlowCapital))newData.FlowCapital=data.FlowCapital;if(IFrameSplitOperator.IsNumber(data.Position))newData.Position=data.Position;if(IFrameSplitOperator.IsNumber(data.YFClose))newData.YFClose=data.YFClose;if(IFrameSplitOperator.IsNumber(data.FClose))newData.FClose=data.FClose;//指数涨停家数
|
|
2637
2638
|
if(IFrameSplitOperator.IsNumber(data.Stop))newData.Stop=data.Stop;if(IFrameSplitOperator.IsNumber(data.Up))newData.Up=data.Up;if(IFrameSplitOperator.IsNumber(data.Down))newData.Down=data.Down;if(IFrameSplitOperator.IsNumber(data.Unchanged))newData.Unchanged=data.Unchanged;//复权因子
|
|
2638
|
-
if(IFrameSplitOperator.IsNumber(data.BFactor))newData.BFactor=data.BFactor;if(IFrameSplitOperator.IsNumber(data.AFactor))newData.AFactor=data.AFactor;if(data.OrderFlow)newData.OrderFlow=data.OrderFlow;return newData;};//把数据 src 复制到 dest中
|
|
2639
|
-
HistoryData.CopyTo=function(dest,src){dest.Date=src.Date;if(IFrameSplitOperator.IsNumber(src.Time))dest.Time=src.Time;dest.YClose=src.YClose;dest.Open=src.Open;dest.Close=src.Close;dest.High=src.High;dest.Low=src.Low;dest.Vol=src.Vol;dest.Amount=src.Amount;if(IFrameSplitOperator.IsNumber(src.FlowCapital))dest.FlowCapital=src.FlowCapital;if(IFrameSplitOperator.IsNumber(src.Position))dest.Position=src.Position;if(IFrameSplitOperator.IsNumber(src.YFClose))dest.YFClose=src.YFClose;if(IFrameSplitOperator.IsNumber(src.FClose))dest.FClose=src.FClose;if(IFrameSplitOperator.IsNumber(src.Stop))dest.Stop=src.Stop;if(IFrameSplitOperator.IsNumber(src.Up))dest.Up=src.Up;if(IFrameSplitOperator.IsNumber(src.Down))dest.Down=src.Down;if(IFrameSplitOperator.IsNumber(src.Unchanged))dest.Unchanged=src.Unchanged;if(IFrameSplitOperator.IsNumber(src.BFactor))dest.BFactor=src.BFactor;if(IFrameSplitOperator.IsNumber(src.AFactor))dest.AFactor=src.AFactor;};//数据复权拷贝
|
|
2639
|
+
if(IFrameSplitOperator.IsNumber(data.BFactor))newData.BFactor=data.BFactor;if(IFrameSplitOperator.IsNumber(data.AFactor))newData.AFactor=data.AFactor;if(data.OrderFlow)newData.OrderFlow=data.OrderFlow;if(data.ColorData)newData.ColorData=data.ColorData;return newData;};//把数据 src 复制到 dest中
|
|
2640
|
+
HistoryData.CopyTo=function(dest,src){dest.Date=src.Date;if(IFrameSplitOperator.IsNumber(src.Time))dest.Time=src.Time;dest.YClose=src.YClose;dest.Open=src.Open;dest.Close=src.Close;dest.High=src.High;dest.Low=src.Low;dest.Vol=src.Vol;dest.Amount=src.Amount;if(IFrameSplitOperator.IsNumber(src.FlowCapital))dest.FlowCapital=src.FlowCapital;if(IFrameSplitOperator.IsNumber(src.Position))dest.Position=src.Position;if(IFrameSplitOperator.IsNumber(src.YFClose))dest.YFClose=src.YFClose;if(IFrameSplitOperator.IsNumber(src.FClose))dest.FClose=src.FClose;if(IFrameSplitOperator.IsNumber(src.Stop))dest.Stop=src.Stop;if(IFrameSplitOperator.IsNumber(src.Up))dest.Up=src.Up;if(IFrameSplitOperator.IsNumber(src.Down))dest.Down=src.Down;if(IFrameSplitOperator.IsNumber(src.Unchanged))dest.Unchanged=src.Unchanged;if(IFrameSplitOperator.IsNumber(src.BFactor))dest.BFactor=src.BFactor;if(IFrameSplitOperator.IsNumber(src.AFactor))dest.AFactor=src.AFactor;if(src.OrderFlow)dest.OrderFlow=src.OrderFlow;if(src.ColorData)dest.ColorData=src.ColorData;};//数据复权拷贝
|
|
2640
2641
|
HistoryData.CopyRight=function(data,seed){var newData=new HistoryData();newData.Date=data.Date;newData.YClose=data.YClose*seed;newData.Open=data.Open*seed;newData.Close=data.Close*seed;newData.High=data.High*seed;newData.Low=data.Low*seed;newData.Vol=data.Vol;newData.Amount=data.Amount;newData.FlowCapital=data.FlowCapital;newData.Position=data.Position;newData.YFClose=data.YFClose;newData.FClose=data.FClose;return newData;};function MinuteData(){this.Close;this.Open;this.High;this.Low;this.Vol;//量
|
|
2641
2642
|
this.Amount;//金额
|
|
2642
2643
|
this.DateTime;this.Increase;//涨幅
|
|
@@ -2868,7 +2869,7 @@ var ZOOM_SEED=
|
|
|
2868
2869
|
function ChartKLine(){this.newMethod=IChartPainting;//派生
|
|
2869
2870
|
this.newMethod();delete this.newMethod;this.ClassName='ChartKLine';//类名
|
|
2870
2871
|
this.Symbol;//股票代码
|
|
2871
|
-
this.DrawType=0;// 0=实心K线柱子 1=收盘价线 2=美国线 3=空心K线柱子 4=收盘价面积图 5=订单流 6=空心K线柱子2(全部空心) 7=订单流样式2 8=订单流样式3
|
|
2872
|
+
this.DrawType=0;// 0=实心K线柱子 1=收盘价线 2=美国线 3=空心K线柱子 4=收盘价面积图 5=订单流 6=空心K线柱子2(全部空心) 7=订单流样式2 8=订单流样式3 9=自定义颜色K线
|
|
2872
2873
|
this.CloseLineColor=g_JSChartResource.CloseLineColor;this.CloseLineAreaColor=g_JSChartResource.CloseLineAreaColor;this.CloseLineWidth=g_JSChartResource.CloseLineWidth;this.UpColor=g_JSChartResource.UpBarColor;this.DownColor=g_JSChartResource.DownBarColor;this.UnchagneColor=g_JSChartResource.UnchagneBarColor;//平盘
|
|
2873
2874
|
this.ColorData;//五彩K线颜色 >0:g_JSChartResource.UpBarColor 其他:g_JSChartResource.DownBarColor
|
|
2874
2875
|
this.TradeData;//交易系统 包含买卖数据{Buy:, Sell:, Name:指标名称 }
|
|
@@ -2919,7 +2920,7 @@ if(bFirstPoint)return;this.Canvas.stroke();if(isHScreen){this.Canvas.lineTo(bord
|
|
|
2919
2920
|
{var isHScreen=this.ChartFrame.IsHScreen===true;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;var xPointCount=this.ChartFrame.XPointCount;if(isHScreen){var border=this.ChartBorder.GetHScreenBorder();xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;chartright=border.BottomEx;}var ptMax={X:null,Y:null,Value:null,Align:'left'};var ptMin={X:null,Y:null,Value:null,Align:'left'};var upColor=this.UpColor;var downColor=this.DownColor;var unchagneColor=this.UnchagneColor;this.ShowRange.Start=this.Data.DataOffset;this.ShowRange.End=this.ShowRange.Start;this.ShowRange.DataCount=0;this.ShowRange.ShowCount=xPointCount;var ptLast=null;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,++this.ShowRange.DataCount){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 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;this.DrawKRange.End=i;if(ptMax.Value==null||ptMax.Value<data.High)//求最大值
|
|
2920
2921
|
{ptMax.X=x;ptMax.Y=yHigh;ptMax.Value=data.High;ptMax.Align=j<xPointCount/2?'left':'right';}if(ptMin.Value==null||ptMin.Value>data.Low)//求最小值
|
|
2921
2922
|
{ptMin.X=x;ptMin.Y=yLow;ptMin.Value=data.Low;ptMin.Align=j<xPointCount/2?'left':'right';}if(this.ColorData)///五彩K线颜色设置
|
|
2922
|
-
{if(i<this.ColorData.length)upColor=downColor=unchagneColor=this.ColorData[i]>0?this.UpColor:this.DownColor;else upColor=downColor=unchagneColor=this.DownColor;}var kLineOption=this.GetCustomKLine(data);if(kLineOption){var barColor=kLineOption.Color;if(!barColor){if(data.Open<data.Close)barColor=upColor;else if(data.Open>data.Close)barColor=downColor;else barColor=unchagneColor;}var drawType=this.DrawType;if(IFrameSplitOperator.IsNumber(kLineOption.DrawType))drawType=kLineOption.DrawType;this.DrawKBar_Custom(data,dataWidth,barColor,drawType,kLineOption,x,y,left,right,yLow,yHigh,yOpen,yClose,border,isHScreen);}else if(data.Open<data.Close)//阳线
|
|
2923
|
+
{if(i<this.ColorData.length)upColor=downColor=unchagneColor=this.ColorData[i]>0?this.UpColor:this.DownColor;else upColor=downColor=unchagneColor=this.DownColor;}var kLineOption=this.GetCustomKLine(data);if(kLineOption){var barColor=kLineOption.Color;if(!barColor){if(data.Open<data.Close)barColor=upColor;else if(data.Open>data.Close)barColor=downColor;else barColor=unchagneColor;}var drawType=this.DrawType;if(IFrameSplitOperator.IsNumber(kLineOption.DrawType))drawType=kLineOption.DrawType;this.DrawKBar_Custom(data,dataWidth,barColor,drawType,kLineOption,x,y,left,right,yLow,yHigh,yOpen,yClose,border,isHScreen);}else if(this.DrawType==9&&data.ColorData){this.DrawKBarV2(data,data.ColorData,dataWidth,x,y,left,right,yLow,yHigh,yOpen,yClose,isHScreen);}else if(data.Open<data.Close)//阳线
|
|
2923
2924
|
{this.DrawKBar_Up(data,dataWidth,upColor,this.DrawType,x,y,left,right,yLow,yHigh,yOpen,yClose,isHScreen);}else if(data.Open>data.Close)//阴线
|
|
2924
2925
|
{this.DrawKBar_Down(data,dataWidth,downColor,this.DrawType,x,y,left,right,yLow,yHigh,yOpen,yClose,isHScreen);}else// 平线
|
|
2925
2926
|
{this.DrawKBar_Unchagne(data,dataWidth,unchagneColor,this.DrawType,x,y,left,right,yLow,yHigh,yOpen,yClose,isHScreen);}if(this.IsShowKTooltip&&!isHScreen)//添加tooltip区域
|
|
@@ -2951,7 +2952,31 @@ else this.Canvas.fillRect(ToFixedRect(y),ToFixedRect(left),ToFixedRect(yClose-y)
|
|
|
2951
2952
|
{this.Canvas.beginPath();this.Canvas.rect(ToFixedPoint(y),ToFixedPoint(left),ToFixedRect(yOpen-y),ToFixedRect(dataWidth));this.Canvas.stroke();}else{this.Canvas.fillRect(ToFixedRect(y),ToFixedRect(left),ToFixedRect(yOpen-y),ToFixedRect(dataWidth));}}}else{if(Math.abs(yOpen-y)<1){this.Canvas.fillRect(ToFixedRect(left),ToFixedRect(y),ToFixedRect(dataWidth),1);//高度小于1,统一使用高度1
|
|
2952
2953
|
}else{if(drawType==3)//空心柱
|
|
2953
2954
|
{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)//下影线
|
|
2954
|
-
{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.
|
|
2955
|
+
{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)//上影线
|
|
2956
|
+
{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){/*
|
|
2957
|
+
if (Math.abs(yOpen-y)<1)
|
|
2958
|
+
{
|
|
2959
|
+
this.Canvas.fillRect(ToFixedRect(y),ToFixedRect(left),1,ToFixedRect(dataWidth)); //高度小于1,统一使用高度1
|
|
2960
|
+
}
|
|
2961
|
+
else
|
|
2962
|
+
{
|
|
2963
|
+
if (drawType==3) //空心柱
|
|
2964
|
+
{
|
|
2965
|
+
this.Canvas.beginPath();
|
|
2966
|
+
this.Canvas.rect(ToFixedPoint(y),ToFixedPoint(left),ToFixedRect(yOpen-y),ToFixedRect(dataWidth));
|
|
2967
|
+
this.Canvas.stroke();
|
|
2968
|
+
}
|
|
2969
|
+
else
|
|
2970
|
+
{
|
|
2971
|
+
this.Canvas.fillRect(ToFixedRect(y),ToFixedRect(left),ToFixedRect(yOpen-y),ToFixedRect(dataWidth));
|
|
2972
|
+
}
|
|
2973
|
+
}
|
|
2974
|
+
*/}else{//实心
|
|
2975
|
+
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
|
|
2976
|
+
}else{this.Canvas.fillRect(ToFixedRect(left),ToFixedRect(Math.min(y,yOpen)),ToFixedRect(dataWidth),ToFixedRect(Math.abs(yOpen-y)));}}if(colorData.Border)//空心
|
|
2977
|
+
{if(Math.abs(yOpen-y)<1){this.Canvas.fillStyle=colorData.Border.Color;this.Canvas.fillRect(ToFixedRect(left),ToFixedRect(y),ToFixedRect(dataWidth),1);//高度小于1,统一使用高度1
|
|
2978
|
+
}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)//下影线
|
|
2979
|
+
{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()//交易系统
|
|
2955
2980
|
{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()//分笔图
|
|
2956
2981
|
{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区域
|
|
2957
2982
|
{var rect=new Rect(x-textSize/2,yClose-textSize/2,textSize,textSize);//this.Canvas.fillStyle="rgb(0,0,100)";
|
|
@@ -2963,7 +2988,7 @@ this.Canvas.clip();};this.Draw=function(){this.IsShowOrderText=false;this.Toolti
|
|
|
2963
2988
|
this.PtMin={X:null,Y:null,Value:null,Align:'left'};//清空最小
|
|
2964
2989
|
this.DrawKRange={Start:null,End:null};this.ChartFrame.ChartKLine={Max:null,Min:null};//保存K线上 显示最大最小值坐标
|
|
2965
2990
|
if(!this.IsShow)return;if(ChartData.IsTickPeriod(this.Period))//分笔图
|
|
2966
|
-
{this.Canvas.save();if(this.DrawType==1){this.ClipClient(this.ChartFrame.IsHScreen);this.DrawCloseLine();}else if(this.DrawType==4){this.ClipClient(this.ChartFrame.IsHScreen);this.DrawCloseArea();}else{this.ClipTickClient(this.ChartFrame.IsHScreen);this.DrawTick();}this.Canvas.restore();return;}this.Canvas.save();this.ClipClient(this.ChartFrame.IsHScreen);if(this.DrawType==1){this.DrawCloseLine();this.Canvas.restore();return;}else if(this.DrawType==2){this.DrawAKLine();}else if(this.DrawType==4){this.DrawCloseArea();}else if(this.DrawType==5){this.DrawOrderFlow();}else if(this.DrawType==7){this.DrawOrderFlow_Style2();}else if(this.DrawType==8){this.DrawOrderFlow_Style3();}else{this.DrawKBar();}if(this.TradeIcon)this.DrawTradeIcon();else this.DrawTrade();this.Canvas.restore();if(this.IsShowMaxMinPrice)//标注最大值最小值
|
|
2991
|
+
{this.Canvas.save();if(this.DrawType==1){this.ClipClient(this.ChartFrame.IsHScreen);this.DrawCloseLine();}else if(this.DrawType==4){this.ClipClient(this.ChartFrame.IsHScreen);this.DrawCloseArea();}else{this.ClipTickClient(this.ChartFrame.IsHScreen);this.DrawTick();}this.Canvas.restore();return;}this.Canvas.save();this.ClipClient(this.ChartFrame.IsHScreen);if(this.DrawType==1){this.DrawCloseLine();this.Canvas.restore();return;}else if(this.DrawType==2){this.DrawAKLine();}else if(this.DrawType==4){this.DrawCloseArea();}else if(this.DrawType==5){this.DrawOrderFlow();}else if(this.DrawType==7){this.DrawOrderFlow_Style2();}else if(this.DrawType==8){this.DrawOrderFlow_Style3();}else if(this.DrawType==9){this.DrawKBar();}else{this.DrawKBar();}if(this.TradeIcon)this.DrawTradeIcon();else this.DrawTrade();this.Canvas.restore();if(this.IsShowMaxMinPrice)//标注最大值最小值
|
|
2967
2992
|
{if(this.ChartFrame.IsHScreen===true)this.HScreenDrawMaxMinPrice(this.PtMax,this.PtMin);else this.DrawMaxMinPrice(this.PtMax,this.PtMin);}};this.DrawMaxMinPrice=function(ptMax,ptMin){if(ptMax.X==null||ptMax.Y==null||ptMax.Value==null)return;if(ptMin.X==null||ptMin.Y==null||ptMin.Value==null)return;var leftArrow=g_JSChartResource.KLine.MaxMin.LeftArrow;var rightArrow=g_JSChartResource.KLine.MaxMin.RightArrow;var highYOffset=g_JSChartResource.KLine.MaxMin.HighYOffset;var lowYOffset=g_JSChartResource.KLine.MaxMin.LowYOffset;var defaultfloatPrecision=GetfloatPrecision(this.Symbol);this.Canvas.font=this.TextFont;this.Canvas.fillStyle=this.TextColor;var top=this.ChartBorder.GetTopEx();var bottom=this.ChartBorder.GetBottomEx();var ptTop=ptMax;if(this.ChartFrame.CoordinateType==1)//反转坐标
|
|
2968
2993
|
{if(ptMax.Y<ptMin.Y)ptTop=ptMin;this.Canvas.textBaseline='top';}else{if(ptMax.Y>ptMin.Y)ptTop=ptMin;this.Canvas.textBaseline='bottom';}this.Canvas.textAlign=ptTop.Align;var left=ptTop.Align=='left'?ptTop.X:ptTop.X;if(IFrameSplitOperator.IsNumber(highYOffset))ptTop.Y+=highYOffset;var text=ptTop.Value.toFixed(defaultfloatPrecision);if(ptTop.Align=='left')text=leftArrow+text;else text=text+rightArrow;if(ptTop.Y>top-2){this.Canvas.fillText(text,left,ptTop.Y);this.ChartFrame.ChartKLine.Max={X:left,Y:ptTop.Y,Text:{BaseLine:'bottom'}};}var ptBottom=ptMin;if(this.ChartFrame.CoordinateType==1){if(ptMin.Y>ptMax.Y)ptBottom=ptMax;this.Canvas.textBaseline='bottom';}else{if(ptMax.Y>ptMin.Y)ptTop=ptMin;this.Canvas.textBaseline='top';}this.Canvas.textAlign=ptBottom.Align;var left=ptBottom.Align=='left'?ptBottom.X:ptBottom.X;if(IFrameSplitOperator.IsNumber(lowYOffset))ptBottom.Y+=lowYOffset;var text=ptMin.Value.toFixed(defaultfloatPrecision);if(ptBottom.Align=='left')text=leftArrow+text;else text=text+rightArrow;if(ptBottom.Y<bottom+1){this.Canvas.fillText(text,left,ptBottom.Y);this.ChartFrame.ChartKLine.Min={X:left,Y:ptBottom.Y,Text:{BaseLine:'top'}};}};this.HScreenDrawMaxMinPrice=function(ptMax,ptMin)//横屏模式下显示最大最小值
|
|
2969
2994
|
{if(ptMax.X==null||ptMax.Y==null||ptMax.Value==null)return;if(ptMin.X==null||ptMin.Y==null||ptMin.Value==null)return;var leftArrow=g_JSChartResource.KLine.MaxMin.LeftArrow;var rightArrow=g_JSChartResource.KLine.MaxMin.RightArrow;var highYOffset=g_JSChartResource.KLine.MaxMin.HighYOffset;var lowYOffset=g_JSChartResource.KLine.MaxMin.LowYOffset;var defaultfloatPrecision=GetfloatPrecision(this.Symbol);var xText=ptMax.Y;var yText=ptMax.X;if(IFrameSplitOperator.IsNumber(highYOffset))xText+=highYOffset;this.Canvas.save();this.Canvas.translate(xText,yText);this.Canvas.rotate(90*Math.PI/180);this.Canvas.font=this.TextFont;this.Canvas.fillStyle=this.TextColor;this.Canvas.textAlign=ptMax.Align;this.Canvas.textBaseline='bottom';var text=ptMax.Value.toFixed(defaultfloatPrecision);if(ptMax.Align=='left')text=leftArrow+text;else text=text+rightArrow;this.Canvas.fillText(text,0,0);this.Canvas.restore();var xText=ptMin.Y;var yText=ptMin.X;if(IFrameSplitOperator.IsNumber(lowYOffset))xText+=lowYOffset;this.Canvas.save();this.Canvas.translate(xText,yText);this.Canvas.rotate(90*Math.PI/180);this.Canvas.font=this.TextFont;this.Canvas.fillStyle=this.TextColor;this.Canvas.textAlign=ptMin.Align;this.Canvas.textBaseline='top';var text=ptMin.Value.toFixed(defaultfloatPrecision);if(ptMin.Align=='left')text=leftArrow+text;else text=text+rightArrow;this.Canvas.fillText(text,0,0);this.Canvas.restore();};//画某一天的信息地雷
|
|
@@ -3112,7 +3137,9 @@ if(isHScreen){this.Canvas.moveTo(ToFixedPoint(yOpen),left);this.Canvas.lineTo(To
|
|
|
3112
3137
|
if(isHScreen){this.Canvas.moveTo(ToFixedPoint(yClose),right);this.Canvas.lineTo(ToFixedPoint(yClose),x);}else{this.Canvas.moveTo(right,ToFixedPoint(yClose));this.Canvas.lineTo(x,ToFixedPoint(yClose));}this.Canvas.stroke();}}};this.DrawCloseLine=function(firstOpen)//收盘价线
|
|
3113
3138
|
{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 firstOverlayOpen=null;var bFirstPoint=true;this.Canvas.strokeStyle=this.Color;if(IFrameSplitOperator.IsNumber(this.CloseLineWidth))this.Canvas.lineWidth=this.CloseLineWidth;this.ShowRange.Start=this.Data.DataOffset;this.ShowRange.End=this.ShowRange.Start;this.ShowRange.DataCount=0;this.ShowRange.ShowCount=xPointCount;this.ShowRange.FirstOpen=firstOpen;this.DrawKRange.Start=this.Data.DataOffset;this.Canvas.beginPath();for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth,++this.ShowRange.DataCount){var data=this.Data.Data[i];if(data.Open==null||data.High==null||data.Low==null||data.Close==null)continue;if(firstOverlayOpen==null){firstOverlayOpen=data.Open;this.ShowRange.FirstOverlayOpen=data.Open;}var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;var yClose=this.GetYFromData(data.Close/firstOverlayOpen*firstOpen,false);this.DrawKRange.End=i;if(bFirstPoint){if(isHScreen)this.Canvas.moveTo(yClose,x);else this.Canvas.moveTo(x,yClose);bFirstPoint=false;}else{if(isHScreen)this.Canvas.lineTo(yClose,x);else this.Canvas.lineTo(x,yClose);}}if(bFirstPoint==false)this.Canvas.stroke();};this.GetFirstOpen=function(){if(!this.MainData||!this.Data)return null;var xPointCount=this.ChartFrame.XPointCount;for(var i=this.Data.DataOffset,j=0;i<this.MainData.Data.length&&j<xPointCount;++i,++j){var data=this.MainData.Data[i];if(data.Open==null||data.High==null||data.Low==null||data.Close==null)continue;return data.Open;}return null;};this.Draw=function(){this.TooltipRect=[];this.InfoTooltipRect=[];this.DrawKRange={Start:null,End:null};if(!this.MainData||!this.Data)return;var xPointCount=this.ChartFrame.XPointCount;var firstOpen=this.GetFirstOpen();//主线数据第1个开盘价
|
|
3114
3139
|
if(firstOpen==null)return;var drawType=this.DrawType;if(this.CustomDrawType!=null)drawType=this.CustomDrawType;this.Canvas.save();this.ClipClient(this.ChartFrame.IsHScreen);if(drawType==1)this.DrawCloseLine(firstOpen);else if(drawType==2)this.DrawAKLine(firstOpen);else this.DrawKBar(firstOpen);this.Canvas.restore();};this.GetMaxMin=function(){var xPointCount=this.ChartFrame.XPointCount;var range={};range.Max=null;range.Min=null;if(!this.MainData||!this.Data)return range;var firstOpen=null;//主线数据第1个收盘价
|
|
3115
|
-
for(var i=this.Data.DataOffset,j=0;i<this.MainData.Data.length&&j<xPointCount;++i,++j){var data=this.MainData.Data[i];if(data.Open==null||data.High==null||data.Low==null||data.Close==null)continue;firstOpen=data.Close;break;}if(firstOpen==null)return range;var firstOverlayOpen=null;var high,low;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var data=this.Data.Data[i];if(!data||data.Open==null||data.High==null||data.Low==null||data.Close==null)continue;if(firstOverlayOpen==null)firstOverlayOpen=data.Open;high=data.High/firstOverlayOpen*firstOpen;low=data.Low/firstOverlayOpen*firstOpen;if(range.Max==null)range.Max=high;if(range.Min==null)range.Min=low;if(range.Max<high)range.Max=high;if(range.Min>low)range.Min=low;}return range;};this.GetTooltipData=function(x,y,tooltip){for(var i in this.TooltipRect){var rect=this.TooltipRect[i][1];this.Canvas.beginPath();this.Canvas.rect(rect.X,rect.Y,rect.Width,rect.Height);if(this.Canvas.isPointInPath(x,y)){var index=this.TooltipRect[i][0];tooltip.Data=this.Data.Data[index];tooltip.ChartPaint=this;return true;}}return false;};this.PtInChart=function(x,y){
|
|
3140
|
+
for(var i=this.Data.DataOffset,j=0;i<this.MainData.Data.length&&j<xPointCount;++i,++j){var data=this.MainData.Data[i];if(data.Open==null||data.High==null||data.Low==null||data.Close==null)continue;firstOpen=data.Close;break;}if(firstOpen==null)return range;var firstOverlayOpen=null;var high,low;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var data=this.Data.Data[i];if(!data||data.Open==null||data.High==null||data.Low==null||data.Close==null)continue;if(firstOverlayOpen==null)firstOverlayOpen=data.Open;high=data.High/firstOverlayOpen*firstOpen;low=data.Low/firstOverlayOpen*firstOpen;if(range.Max==null)range.Max=high;if(range.Min==null)range.Min=low;if(range.Max<high)range.Max=high;if(range.Min>low)range.Min=low;}return range;};this.GetTooltipData=function(x,y,tooltip){for(var i in this.TooltipRect){var rect=this.TooltipRect[i][1];this.Canvas.beginPath();this.Canvas.rect(rect.X,rect.Y,rect.Width,rect.Height);if(this.Canvas.isPointInPath(x,y)){var index=this.TooltipRect[i][0];tooltip.Data=this.Data.Data[index];tooltip.ChartPaint=this;return true;}}return false;};this.PtInChart=function(x,y){var drawType=this.DrawType;if(IFrameSplitOperator.IsNumber(this.CustomDrawType))drawType=this.CustomDrawType;if(drawType==1||drawType==4)//线段,面积不支持选中
|
|
3141
|
+
{return null;//return this.PtInLine(x,y, {KLineClose:true});
|
|
3142
|
+
}return this.PtInKBar(x,y,{OverlayKLine:true});};this.DrawSelectedStatus=function(){this.DrawLinePoint({OverlayKLine:true});};}//K线表格
|
|
3116
3143
|
function ChartKLineTable(){this.newMethod=IChartPainting;//派生
|
|
3117
3144
|
this.newMethod();delete this.newMethod;this.ClassName='ChartKlineTable';//类名
|
|
3118
3145
|
this.Data;this.RowName;this.IsShowRowName=false;this.BGColor;//背景色
|
|
@@ -4337,7 +4364,7 @@ var right=this.Frame.ChartBorder.GetRight();if(this.Frame.IsHScreen===true){bott
|
|
|
4337
4364
|
drawLeft=left;left+=textWidth;if(left>right)break;this.Canvas.fillText(text,drawLeft,bottom,textWidth);}if(left>right)break;}}catch(err){_didIteratorError9=true;_iteratorError9=err;}finally{try{if(!_iteratorNormalCompletion9&&_iterator9.return){_iterator9.return();}}finally{if(_didIteratorError9){throw _iteratorError9;}}}};this.HScreenDraw=function(){var border=this.Frame.ChartBorder.GetHScreenBorder();var xText=this.Frame.ChartBorder.GetRightTitle();var yText=border.TopEx;this.Canvas.translate(xText,yText);this.Canvas.rotate(90*Math.PI/180);var left=1;var bottom=-this.Frame.ChartBorder.TitleHeight/2;//上下居中显示
|
|
4338
4365
|
var right=this.Frame.ChartBorder.GetHeight();this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";this.Canvas.font=this.Font;if(this.Title&&this.IsShowIndexName){var textWidth=this.Canvas.measureText(this.Title).width+2;if(this.IsDrawTitleBG){var spaceSize=GetDevicePixelRatio()*2;this.Canvas.fillStyle=this.BGColor;this.TitleRect={Left:this.Frame.ChartBorder.GetRightTitle(),Top:border.TopEx,Width:this.Frame.ChartBorder.TitleHeight,Height:textWidth};//保存下标题的坐标
|
|
4339
4366
|
var drawRect={Left:left,Top:-this.Frame.ChartBorder.TitleHeight+spaceSize,Width:textWidth,Height:this.Frame.ChartBorder.TitleHeight-spaceSize*2};this.Canvas.fillRect(drawRect.Left,drawRect.Top,drawRect.Width,drawRect.Height);}this.Canvas.fillStyle=this.TitleColor;this.Canvas.fillText(this.Title,left,bottom,textWidth);left+=textWidth;left+=this.TitleSpace;}var isShowLastData=this.IsShowLastData();var lockRect=this.Frame.GetLockRect();if(lockRect)//指标上锁区域不显示动态标题
|
|
4340
|
-
{var index=Math.abs(this.CursorIndex-0.5);if(this.IsKLineFrame)index=this.CursorIndex;var x=this.Frame.GetXFromIndex(index.toFixed(0));if(x>=lockRect.Top)return;if(isShowLastData)return;}for(var i in this.Data){var item=this.Data[i];var outText=this.GetTitleItem(item,isShowLastData);if(!outText)continue;var valueText=outText.Text;var aryText=outText.ArrayText;if(aryText){var text;for(var k=0;k<aryText.length;++k){var titleItem=aryText[k];if(titleItem.Name)text=titleItem.Name+":"+titleItem.Text;else text=titleItem.Text;var space=this.ParamSpace*GetDevicePixelRatio();var textWidth=this.Canvas.measureText(text).width+space;if(left+textWidth>right)break;this.Canvas.fillStyle=titleItem.Color;this.Canvas.fillText(text,left,bottom,textWidth);left+=textWidth;}}else{this.Canvas.fillStyle=item.Color;var text=item.Name+":"+valueText;var space=this.ParamSpace*GetDevicePixelRatio();var textWidth=this.Canvas.measureText(text).width+space;//后空2个像素
|
|
4367
|
+
{var index=Math.abs(this.CursorIndex-0.5);if(this.IsKLineFrame)index=this.CursorIndex;var x=this.Frame.GetXFromIndex(index.toFixed(0));if(x>=lockRect.Top)return;if(isShowLastData)return;}for(var i in this.Data){var item=this.Data[i];var outText=this.GetTitleItem(item,isShowLastData);if(!outText)continue;var valueText=outText.Text;var aryText=outText.ArrayText;if(aryText){var text;for(var k=0;k<aryText.length;++k){var titleItem=aryText[k];if(titleItem.Name)text=titleItem.Name+":"+titleItem.Text;else text=titleItem.Text;var space=this.ParamSpace*GetDevicePixelRatio();var textWidth=this.Canvas.measureText(text).width+space;if(left+textWidth>right)break;this.Canvas.fillStyle=titleItem.Color;this.Canvas.fillText(text,left,bottom,textWidth);left+=textWidth;}}else{this.Canvas.fillStyle=item.Color;var text=valueText;if(item.Name){var dyTitle=this.GetDynamicOutName(item.Name);if(dyTitle)text=dyTitle+":"+valueText;else text=item.Name+":"+valueText;}var space=this.ParamSpace*GetDevicePixelRatio();var textWidth=this.Canvas.measureText(text).width+space;//后空2个像素
|
|
4341
4368
|
if(left+textWidth>right)break;this.Canvas.fillText(text,left,bottom,textWidth);left+=textWidth;}}if(this.Explain)//说明信息
|
|
4342
4369
|
{this.Canvas.fillStyle=this.TitleColor;var text="说明:"+this.Explain;var textWidth=this.Canvas.measureText(text).width+2;if(left+textWidth<right){this.Canvas.fillText(text,left,bottom,textWidth);left+=textWidth;}}if(this.OverlayIndexType.Position==1)this.DrawOverlayIndexSingleLine();else this.DrawOverlayIndex(left+5*GetDevicePixelRatio());//间距都空点 和主指标区分开
|
|
4343
4370
|
};this.OnDrawEventCallback=function(drawData){if(!this.OnDrawEvent||!this.OnDrawEvent.Callback)return;var data={Draw:drawData,Name:'DynamicChartTitlePainting'};this.OnDrawEvent.Callback(this.OnDrawEvent,data,this);};this.GetFontHeight=function(font){return GetFontHeight(this.Canvas,font,"擎");};}//画图工具
|
|
@@ -5755,17 +5782,18 @@ Explain:'成交量分布图下载',Request:{Period:this.Period,Right:this.Right,
|
|
|
5755
5782
|
KLineChartContainer.JsonDataToHistoryData=function(data){var aryDayData=[];if(!data.data)return aryDayData;var upperSymbol=null;if(data.symbol)upperSymbol=data.symbol.toUpperCase();var isFutures=false;//是否是期货
|
|
5756
5783
|
if(upperSymbol)isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol);var list=data.data;var date=0,yclose=1,open=2,high=3,low=4,close=5,vol=6,amount=7,position=8;var fclose=9,yfclose=10;//结算价, 前结算价
|
|
5757
5784
|
var bfactor=11,afactor=12;//前, 后复权因子
|
|
5758
|
-
var orderFlow=JSCHART_DATA_FIELD_ID.KLINE_ORDERFLOW;for(var i=0;i<list.length;++i){var item=new HistoryData();var jsData=list[i];item.Date=jsData[date];item.Open=jsData[open];item.YClose=jsData[yclose];item.Close=jsData[close];item.High=jsData[high];item.Low=jsData[low];item.Vol=jsData[vol];//原始单位股
|
|
5785
|
+
var orderFlow=JSCHART_DATA_FIELD_ID.KLINE_ORDERFLOW;var colorData=JSCHART_DATA_FIELD_ID.KLINE_COLOR_DATA;for(var i=0;i<list.length;++i){var item=new HistoryData();var jsData=list[i];item.Date=jsData[date];item.Open=jsData[open];item.YClose=jsData[yclose];item.Close=jsData[close];item.High=jsData[high];item.Low=jsData[low];item.Vol=jsData[vol];//原始单位股
|
|
5759
5786
|
item.Amount=jsData[amount];if(IFrameSplitOperator.IsNumber(jsData[position]))item.Position=jsData[position];//期货持仓
|
|
5760
5787
|
if(IFrameSplitOperator.IsNumber(jsData[fclose]))item.FClose=jsData[fclose];//期货结算价
|
|
5761
5788
|
if(IFrameSplitOperator.IsNumber(jsData[yfclose]))item.YFClose=jsData[yfclose];//期货前结算价
|
|
5762
5789
|
if(IFrameSplitOperator.IsNumber(jsData[bfactor]))item.BFactor=jsData[bfactor];//前复权因子
|
|
5763
5790
|
if(IFrameSplitOperator.IsNumber(jsData[afactor]))item.AFactor=jsData[afactor];//后复权因子
|
|
5764
|
-
if(!IFrameSplitOperator.IsNumber(item.Open))continue;if(jsData[orderFlow])item.OrderFlow=jsData[orderFlow];aryDayData.push(item);}return aryDayData;};KLineChartContainer.JsonDataToRealtimeData=function(data,symbol){if(!data.stock)return null;var stock;for(var i in data.stock)//查找对应的股票数据
|
|
5791
|
+
if(!IFrameSplitOperator.IsNumber(item.Open))continue;if(jsData[orderFlow])item.OrderFlow=jsData[orderFlow];if(jsData[colorData])item.ColorData=jsData[colorData];aryDayData.push(item);}return aryDayData;};KLineChartContainer.JsonDataToRealtimeData=function(data,symbol){if(!data.stock)return null;var stock;for(var i in data.stock)//查找对应的股票数据
|
|
5765
5792
|
{var stockItem=data.stock[i];if(stockItem&&stockItem.symbol==symbol){stock=stockItem;break;}}if(!stock)return null;var upperSymbol=symbol.toUpperCase();var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);var item=new HistoryData();item.Date=stock.date;item.Open=stock.open;item.YClose=stock.yclose;item.High=stock.high;item.Low=stock.low;item.Vol=stock.vol;//股
|
|
5766
5793
|
item.Amount=stock.amount;item.Close=stock.price;if(IFrameSplitOperator.IsNumber(stock.position))item.Position=stock.position;//持仓量
|
|
5767
5794
|
if(IFrameSplitOperator.IsNumber(stock.bfactor))item.BFactor=stock.bfactor;//前复权因子
|
|
5768
5795
|
if(IFrameSplitOperator.IsNumber(stock.afactor))item.AFactor=stock.afactor;//后复权因子
|
|
5796
|
+
if(stock.colordata)item.ColorData=stock.colordata;//自定义颜色
|
|
5769
5797
|
return item;};KLineChartContainer.JsonDataToMinuteRealtimeData=function(data,symbol){if(!data.stock)return null;var stock;for(var i in data.stock)//查找对应的股票数据
|
|
5770
5798
|
{var stockItem=data.stock[i];if(stockItem&&stockItem.symbol==symbol){stock=stockItem;break;}}if(!stock)return null;var upperSymbol=symbol.toUpperCase();var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol);var aryMinuteData=new Array();var preClose=stock.yclose;//前一个数据价格
|
|
5771
5799
|
var date=stock.date;if(isFutures&&stock.yclearing)preClose=stock.yclearing;//期货使用昨结算价
|
|
@@ -5777,13 +5805,13 @@ if(!IFrameSplitOperator.IsNumber(item.Open))item.Open=null;if(!IFrameSplitOperat
|
|
|
5777
5805
|
if(IFrameSplitOperator.IsNumber(jsData.price))preClose=jsData.price;aryMinuteData[i]=item;}return aryMinuteData;};//分钟K线叠加数据增量更新v2版本
|
|
5778
5806
|
KLineChartContainer.JsonDataToMinuteRealtimeDataV2=function(data,symbol){if(!data||!data.overlay||!symbol)return null;var overlayData=null;for(var i=0;i<data.overlay.length;++i)//overlay={ symbol:, name:, data:[] }
|
|
5779
5807
|
{var item=data.overlay[i];if(item.symbol==symbol){overlayData=item;break;}}if(!overlayData)return null;var upperSymbol=symbol.toUpperCase();var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol);//是否是期货
|
|
5780
|
-
var date=0,yclose=1,open=2,high=3,low=4,close=5,vol=6,amount=7,time=8,position=9
|
|
5808
|
+
var date=0,yclose=1,open=2,high=3,low=4,close=5,vol=6,amount=7,time=8,position=9;var orderFlow=JSCHART_DATA_FIELD_ID.KLINE_ORDERFLOW;var yClose=null;for(var i=0;i<overlayData.data.length;++i){var item=new HistoryData();var jsData=overlayData.data[i];item.Date=jsData[date];item.Open=jsData[open];item.YClose=jsData[yclose];item.Close=jsData[close];item.High=jsData[high];item.Low=jsData[low];item.Vol=jsData[vol];//股
|
|
5781
5809
|
item.Amount=jsData[amount];item.Time=jsData[time];if(IFrameSplitOperator.IsNumber(jsData[position]))item.Position=jsData[position];//期货持仓
|
|
5782
5810
|
if(!IFrameSplitOperator.IsNumber(item.YClose)){if(IFrameSplitOperator.IsNumber(yClose))item.YClose=yClose;}if(IFrameSplitOperator.IsNumber(item.Close))yClose=item.Close;if(jsData[orderFlow])item.OrderFlow=jsData[orderFlow];aryMinuteData.push(item);}return aryMinuteData;};//API 返回数据 转化为array[]
|
|
5783
5811
|
KLineChartContainer.JsonDataToMinuteHistoryData=function(data){var upperSymbol=null;if(data.symbol)upperSymbol=data.symbol.toUpperCase();var isSHSZ=false;if(upperSymbol)isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);var isFutures=false;//是否是期货
|
|
5784
|
-
if(upperSymbol)isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol);var list=data.data;var aryDayData=new Array();var date=0,yclose=1,open=2,high=3,low=4,close=5,vol=6,amount=7,time=8,position=9
|
|
5812
|
+
if(upperSymbol)isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol);var list=data.data;var aryDayData=new Array();var date=0,yclose=1,open=2,high=3,low=4,close=5,vol=6,amount=7,time=8,position=9;var orderFlow=JSCHART_DATA_FIELD_ID.KLINE_ORDERFLOW;var colorData=JSCHART_DATA_FIELD_ID.KLINE_COLOR_DATA;var yClose=null;for(var i=0;i<list.length;++i){var item=new HistoryData();var jsData=list[i];item.Date=jsData[date];item.Open=jsData[open];item.YClose=jsData[yclose];item.Close=jsData[close];item.High=jsData[high];item.Low=jsData[low];item.Vol=jsData[vol];//股
|
|
5785
5813
|
item.Amount=jsData[amount];item.Time=jsData[time];if(IFrameSplitOperator.IsNumber(jsData[position]))item.Position=jsData[position];//期货持仓
|
|
5786
|
-
if(!IFrameSplitOperator.IsNumber(item.YClose)){if(IFrameSplitOperator.IsNumber(yClose))item.YClose=yClose;}if(IFrameSplitOperator.IsNumber(item.Close))yClose=item.Close;if(jsData[orderFlow])item.OrderFlow=jsData[orderFlow];aryDayData.push(item);}/* 内部不处理无效数据, 确保外部传过来的数据是对的.
|
|
5814
|
+
if(!IFrameSplitOperator.IsNumber(item.YClose)){if(IFrameSplitOperator.IsNumber(yClose))item.YClose=yClose;}if(IFrameSplitOperator.IsNumber(item.Close))yClose=item.Close;if(jsData[orderFlow])item.OrderFlow=jsData[orderFlow];if(jsData[colorData])item.ColorData=jsData[colorData];aryDayData.push(item);}/* 内部不处理无效数据, 确保外部传过来的数据是对的.
|
|
5787
5815
|
// 无效数据处理
|
|
5788
5816
|
for(var i = 0; i < aryDayData.length; ++i)
|
|
5789
5817
|
{
|
package/package.json
CHANGED
|
@@ -6262,6 +6262,7 @@ var JSCHART_DATA_FIELD_ID=
|
|
|
6262
6262
|
{
|
|
6263
6263
|
KLINE_ORDERFLOW:99,
|
|
6264
6264
|
MINUTE_MULTI_DAY_EXTENDDATA:21, //多日分时图扩展数据序号
|
|
6265
|
+
KLINE_COLOR_DATA:66, //K线自定义颜色数据
|
|
6265
6266
|
}
|
|
6266
6267
|
|
|
6267
6268
|
|
|
@@ -18794,6 +18795,7 @@ HistoryData.Copy=function(data)
|
|
|
18794
18795
|
if (IFrameSplitOperator.IsNumber(data.AFactor)) newData.AFactor=data.AFactor;
|
|
18795
18796
|
|
|
18796
18797
|
if (data.OrderFlow) newData.OrderFlow=data.OrderFlow;
|
|
18798
|
+
if (data.ColorData) newData.ColorData=data.ColorData;
|
|
18797
18799
|
|
|
18798
18800
|
return newData;
|
|
18799
18801
|
}
|
|
@@ -18824,6 +18826,9 @@ HistoryData.CopyTo=function(dest,src)
|
|
|
18824
18826
|
|
|
18825
18827
|
if (IFrameSplitOperator.IsNumber(src.BFactor)) dest.BFactor=src.BFactor;
|
|
18826
18828
|
if (IFrameSplitOperator.IsNumber(src.AFactor)) dest.AFactor=src.AFactor;
|
|
18829
|
+
|
|
18830
|
+
if (src.OrderFlow) dest.OrderFlow=src.OrderFlow;
|
|
18831
|
+
if (src.ColorData) dest.ColorData=src.ColorData;
|
|
18827
18832
|
}
|
|
18828
18833
|
|
|
18829
18834
|
//数据复权拷贝
|
|
@@ -22105,7 +22110,7 @@ function ChartKLine()
|
|
|
22105
22110
|
|
|
22106
22111
|
this.ClassName='ChartKLine'; //类名
|
|
22107
22112
|
this.Symbol; //股票代码
|
|
22108
|
-
this.DrawType=0; // 0=实心K线柱子 1=收盘价线 2=美国线 3=空心K线柱子 4=收盘价面积图 5=订单流 6=空心K线柱子2(全部空心) 7=订单流样式2 8=订单流样式3
|
|
22113
|
+
this.DrawType=0; // 0=实心K线柱子 1=收盘价线 2=美国线 3=空心K线柱子 4=收盘价面积图 5=订单流 6=空心K线柱子2(全部空心) 7=订单流样式2 8=订单流样式3 9=自定义颜色K线
|
|
22109
22114
|
this.CloseLineColor=g_JSChartResource.CloseLineColor;
|
|
22110
22115
|
this.CloseLineAreaColor=g_JSChartResource.CloseLineAreaColor;
|
|
22111
22116
|
this.CloseLineWidth=g_JSChartResource.CloseLineWidth;
|
|
@@ -22646,6 +22651,10 @@ function ChartKLine()
|
|
|
22646
22651
|
|
|
22647
22652
|
this.DrawKBar_Custom(data, dataWidth, barColor, drawType, kLineOption, x, y, left, right, yLow, yHigh, yOpen, yClose, border, isHScreen);
|
|
22648
22653
|
}
|
|
22654
|
+
else if (this.DrawType==9 && data.ColorData)
|
|
22655
|
+
{
|
|
22656
|
+
this.DrawKBarV2(data, data.ColorData, dataWidth, x, y, left, right, yLow, yHigh, yOpen, yClose, isHScreen);
|
|
22657
|
+
}
|
|
22649
22658
|
else if (data.Open<data.Close) //阳线
|
|
22650
22659
|
{
|
|
22651
22660
|
this.DrawKBar_Up(data, dataWidth, upColor, this.DrawType, x, y, left, right, yLow, yHigh, yOpen, yClose, isHScreen);
|
|
@@ -23131,6 +23140,171 @@ function ChartKLine()
|
|
|
23131
23140
|
}
|
|
23132
23141
|
}
|
|
23133
23142
|
|
|
23143
|
+
this.DrawKBarV2=function(data, colorData, dataWidth, x, y, left, right, yLow, yHigh, yOpen, yClose, isHScreen)
|
|
23144
|
+
{
|
|
23145
|
+
var isDrawBorder=false;
|
|
23146
|
+
var isEmptyBar=false;
|
|
23147
|
+
if (colorData.border) isDrawBorder=true;
|
|
23148
|
+
if (colorData.Type===0) isEmptyBar=true;
|
|
23149
|
+
|
|
23150
|
+
if (dataWidth>=4)
|
|
23151
|
+
{
|
|
23152
|
+
if (isDrawBorder)
|
|
23153
|
+
{
|
|
23154
|
+
if ((dataWidth%2)!=0) dataWidth-=1;
|
|
23155
|
+
}
|
|
23156
|
+
|
|
23157
|
+
if (data.High>data.Close) //上影线
|
|
23158
|
+
{
|
|
23159
|
+
if (colorData.Line)
|
|
23160
|
+
{
|
|
23161
|
+
this.Canvas.strokeStyle=colorData.Line.Color;
|
|
23162
|
+
this.Canvas.beginPath();
|
|
23163
|
+
if (isHScreen)
|
|
23164
|
+
{
|
|
23165
|
+
this.Canvas.moveTo(ToFixedPoint(y),ToFixedPoint(x));
|
|
23166
|
+
this.Canvas.lineTo(ToFixedPoint(isEmptyBar?Math.max(yClose,yOpen):yClose),ToFixedPoint(x));
|
|
23167
|
+
}
|
|
23168
|
+
else
|
|
23169
|
+
{
|
|
23170
|
+
if (isDrawBorder)
|
|
23171
|
+
{
|
|
23172
|
+
var xFixed=left+dataWidth/2;
|
|
23173
|
+
this.Canvas.moveTo(ToFixedPoint(xFixed),ToFixedPoint(y));
|
|
23174
|
+
this.Canvas.lineTo(ToFixedPoint(xFixed),ToFixedPoint(Math.min(yClose,yOpen)));
|
|
23175
|
+
}
|
|
23176
|
+
else
|
|
23177
|
+
{
|
|
23178
|
+
this.Canvas.moveTo(ToFixedPoint(x),ToFixedPoint(y));
|
|
23179
|
+
this.Canvas.lineTo(ToFixedPoint(x),ToFixedPoint(Math.min(yClose,yOpen)));
|
|
23180
|
+
}
|
|
23181
|
+
}
|
|
23182
|
+
this.Canvas.stroke();
|
|
23183
|
+
}
|
|
23184
|
+
|
|
23185
|
+
y=yClose;
|
|
23186
|
+
}
|
|
23187
|
+
else
|
|
23188
|
+
{
|
|
23189
|
+
y=yClose;
|
|
23190
|
+
}
|
|
23191
|
+
|
|
23192
|
+
if (isHScreen)
|
|
23193
|
+
{
|
|
23194
|
+
/*
|
|
23195
|
+
if (Math.abs(yOpen-y)<1)
|
|
23196
|
+
{
|
|
23197
|
+
this.Canvas.fillRect(ToFixedRect(y),ToFixedRect(left),1,ToFixedRect(dataWidth)); //高度小于1,统一使用高度1
|
|
23198
|
+
}
|
|
23199
|
+
else
|
|
23200
|
+
{
|
|
23201
|
+
if (drawType==3) //空心柱
|
|
23202
|
+
{
|
|
23203
|
+
this.Canvas.beginPath();
|
|
23204
|
+
this.Canvas.rect(ToFixedPoint(y),ToFixedPoint(left),ToFixedRect(yOpen-y),ToFixedRect(dataWidth));
|
|
23205
|
+
this.Canvas.stroke();
|
|
23206
|
+
}
|
|
23207
|
+
else
|
|
23208
|
+
{
|
|
23209
|
+
this.Canvas.fillRect(ToFixedRect(y),ToFixedRect(left),ToFixedRect(yOpen-y),ToFixedRect(dataWidth));
|
|
23210
|
+
}
|
|
23211
|
+
}
|
|
23212
|
+
*/
|
|
23213
|
+
}
|
|
23214
|
+
else
|
|
23215
|
+
{
|
|
23216
|
+
|
|
23217
|
+
//实心
|
|
23218
|
+
if (!isEmptyBar && colorData.BarColor)
|
|
23219
|
+
{
|
|
23220
|
+
this.Canvas.fillStyle=colorData.BarColor;
|
|
23221
|
+
if (Math.abs(yOpen-y)<1)
|
|
23222
|
+
{
|
|
23223
|
+
this.Canvas.fillRect(ToFixedRect(left),ToFixedRect(y),ToFixedRect(dataWidth),1); //高度小于1,统一使用高度1
|
|
23224
|
+
}
|
|
23225
|
+
else
|
|
23226
|
+
{
|
|
23227
|
+
this.Canvas.fillRect(ToFixedRect(left),ToFixedRect(Math.min(y,yOpen)),ToFixedRect(dataWidth),ToFixedRect(Math.abs(yOpen-y)));
|
|
23228
|
+
}
|
|
23229
|
+
}
|
|
23230
|
+
|
|
23231
|
+
if (colorData.Border) //空心
|
|
23232
|
+
{
|
|
23233
|
+
if (Math.abs(yOpen-y)<1)
|
|
23234
|
+
{
|
|
23235
|
+
this.Canvas.fillStyle=colorData.Border.Color;
|
|
23236
|
+
this.Canvas.fillRect(ToFixedRect(left),ToFixedRect(y),ToFixedRect(dataWidth),1); //高度小于1,统一使用高度1
|
|
23237
|
+
}
|
|
23238
|
+
else
|
|
23239
|
+
{
|
|
23240
|
+
this.Canvas.strokeStyle=colorData.Border.Color;
|
|
23241
|
+
this.Canvas.beginPath();
|
|
23242
|
+
this.Canvas.rect(ToFixedPoint(left),ToFixedPoint(y),ToFixedRect(dataWidth),ToFixedRect(yOpen-y));
|
|
23243
|
+
this.Canvas.stroke();
|
|
23244
|
+
}
|
|
23245
|
+
}
|
|
23246
|
+
}
|
|
23247
|
+
|
|
23248
|
+
if (data.Open>data.Low) //下影线
|
|
23249
|
+
{
|
|
23250
|
+
if (colorData.Line)
|
|
23251
|
+
{
|
|
23252
|
+
this.Canvas.strokeStyle=colorData.Line.Color;
|
|
23253
|
+
this.Canvas.beginPath();
|
|
23254
|
+
if (isHScreen)
|
|
23255
|
+
{
|
|
23256
|
+
this.Canvas.moveTo(ToFixedPoint(isEmptyBar?Math.min(yClose,yOpen):y),ToFixedPoint(x));
|
|
23257
|
+
this.Canvas.lineTo(ToFixedPoint(yLow),ToFixedPoint(x));
|
|
23258
|
+
}
|
|
23259
|
+
else
|
|
23260
|
+
{
|
|
23261
|
+
if (isDrawBorder)
|
|
23262
|
+
{
|
|
23263
|
+
var xFixed=left+dataWidth/2;
|
|
23264
|
+
this.Canvas.moveTo(ToFixedPoint(xFixed),ToFixedPoint(Math.max(yClose,yOpen)));
|
|
23265
|
+
this.Canvas.lineTo(ToFixedPoint(xFixed),ToFixedPoint(yLow));
|
|
23266
|
+
}
|
|
23267
|
+
else
|
|
23268
|
+
{
|
|
23269
|
+
this.Canvas.moveTo(ToFixedPoint(x),ToFixedPoint(Math.max(yClose,yOpen)));
|
|
23270
|
+
this.Canvas.lineTo(ToFixedPoint(x),ToFixedPoint(yLow));
|
|
23271
|
+
}
|
|
23272
|
+
}
|
|
23273
|
+
this.Canvas.stroke();
|
|
23274
|
+
}
|
|
23275
|
+
}
|
|
23276
|
+
}
|
|
23277
|
+
else
|
|
23278
|
+
{
|
|
23279
|
+
var lineColor;
|
|
23280
|
+
if (isEmptyBar && colorData.Border)
|
|
23281
|
+
{
|
|
23282
|
+
lineColor=colorData.Border.Color;
|
|
23283
|
+
}
|
|
23284
|
+
else if (!isEmptyBar && colorData.BarColor)
|
|
23285
|
+
{
|
|
23286
|
+
lineColor=colorData.BarColor;
|
|
23287
|
+
}
|
|
23288
|
+
|
|
23289
|
+
if (lineColor)
|
|
23290
|
+
{
|
|
23291
|
+
this.Canvas.strokeStyle=lineColor;
|
|
23292
|
+
this.Canvas.beginPath();
|
|
23293
|
+
if (isHScreen)
|
|
23294
|
+
{
|
|
23295
|
+
this.Canvas.moveTo(yHigh,ToFixedPoint(x));
|
|
23296
|
+
this.Canvas.lineTo(yLow,ToFixedPoint(x));
|
|
23297
|
+
}
|
|
23298
|
+
else
|
|
23299
|
+
{
|
|
23300
|
+
this.Canvas.moveTo(ToFixedPoint(x),yHigh);
|
|
23301
|
+
this.Canvas.lineTo(ToFixedPoint(x),yLow);
|
|
23302
|
+
}
|
|
23303
|
+
this.Canvas.stroke();
|
|
23304
|
+
}
|
|
23305
|
+
}
|
|
23306
|
+
}
|
|
23307
|
+
|
|
23134
23308
|
this.DrawTrade=function() //交易系统
|
|
23135
23309
|
{
|
|
23136
23310
|
if (!this.TradeData) return;
|
|
@@ -23392,6 +23566,10 @@ function ChartKLine()
|
|
|
23392
23566
|
{
|
|
23393
23567
|
this.DrawOrderFlow_Style3();
|
|
23394
23568
|
}
|
|
23569
|
+
else if (this.DrawType==9)
|
|
23570
|
+
{
|
|
23571
|
+
this.DrawKBar();
|
|
23572
|
+
}
|
|
23395
23573
|
else
|
|
23396
23574
|
{
|
|
23397
23575
|
this.DrawKBar();
|
|
@@ -25946,10 +26124,13 @@ function ChartOverlayKLine()
|
|
|
25946
26124
|
|
|
25947
26125
|
this.PtInChart=function(x,y)
|
|
25948
26126
|
{
|
|
25949
|
-
|
|
26127
|
+
var drawType=this.DrawType;
|
|
26128
|
+
if (IFrameSplitOperator.IsNumber(this.CustomDrawType)) drawType=this.CustomDrawType;
|
|
26129
|
+
|
|
26130
|
+
if (drawType==1 || drawType==4) //线段,面积不支持选中
|
|
25950
26131
|
{
|
|
25951
26132
|
return null;
|
|
25952
|
-
return this.PtInLine(x,y, {KLineClose:true});
|
|
26133
|
+
//return this.PtInLine(x,y, {KLineClose:true});
|
|
25953
26134
|
}
|
|
25954
26135
|
|
|
25955
26136
|
return this.PtInKBar(x,y, {OverlayKLine:true});
|
|
@@ -44800,7 +44981,14 @@ function DynamicChartTitlePainting()
|
|
|
44800
44981
|
else
|
|
44801
44982
|
{
|
|
44802
44983
|
this.Canvas.fillStyle=item.Color;
|
|
44803
|
-
var text=
|
|
44984
|
+
var text=valueText;
|
|
44985
|
+
if (item.Name)
|
|
44986
|
+
{
|
|
44987
|
+
var dyTitle=this.GetDynamicOutName(item.Name);
|
|
44988
|
+
if (dyTitle) text=dyTitle+":"+valueText;
|
|
44989
|
+
else text=item.Name+":"+valueText;
|
|
44990
|
+
}
|
|
44991
|
+
|
|
44804
44992
|
var space=this.ParamSpace*GetDevicePixelRatio();
|
|
44805
44993
|
var textWidth=this.Canvas.measureText(text).width+space; //后空2个像素
|
|
44806
44994
|
if ((left+textWidth)>right) break;
|
|
@@ -59452,6 +59640,7 @@ KLineChartContainer.JsonDataToHistoryData=function(data)
|
|
|
59452
59640
|
var fclose=9, yfclose=10; //结算价, 前结算价
|
|
59453
59641
|
var bfactor=11, afactor=12; //前, 后复权因子
|
|
59454
59642
|
var orderFlow=JSCHART_DATA_FIELD_ID.KLINE_ORDERFLOW;
|
|
59643
|
+
var colorData=JSCHART_DATA_FIELD_ID.KLINE_COLOR_DATA;
|
|
59455
59644
|
for (var i = 0; i < list.length; ++i)
|
|
59456
59645
|
{
|
|
59457
59646
|
var item = new HistoryData();
|
|
@@ -59475,6 +59664,7 @@ KLineChartContainer.JsonDataToHistoryData=function(data)
|
|
|
59475
59664
|
if (!IFrameSplitOperator.IsNumber(item.Open)) continue;
|
|
59476
59665
|
|
|
59477
59666
|
if (jsData[orderFlow]) item.OrderFlow=jsData[orderFlow];
|
|
59667
|
+
if (jsData[colorData]) item.ColorData=jsData[colorData];
|
|
59478
59668
|
|
|
59479
59669
|
aryDayData.push(item);
|
|
59480
59670
|
}
|
|
@@ -59514,6 +59704,7 @@ KLineChartContainer.JsonDataToRealtimeData=function(data, symbol)
|
|
|
59514
59704
|
|
|
59515
59705
|
if (IFrameSplitOperator.IsNumber(stock.bfactor)) item.BFactor=stock.bfactor; //前复权因子
|
|
59516
59706
|
if (IFrameSplitOperator.IsNumber(stock.afactor)) item.AFactor=stock.afactor; //后复权因子
|
|
59707
|
+
if (stock.colordata) item.ColorData=stock.colordata; //自定义颜色
|
|
59517
59708
|
return item;
|
|
59518
59709
|
}
|
|
59519
59710
|
|
|
@@ -59601,7 +59792,8 @@ KLineChartContainer.JsonDataToMinuteRealtimeDataV2=function(data,symbol)
|
|
|
59601
59792
|
var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);
|
|
59602
59793
|
var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //是否是期货
|
|
59603
59794
|
|
|
59604
|
-
var date = 0, yclose = 1, open = 2, high = 3, low = 4, close = 5, vol = 6, amount = 7, time = 8, position=9
|
|
59795
|
+
var date = 0, yclose = 1, open = 2, high = 3, low = 4, close = 5, vol = 6, amount = 7, time = 8, position=9;
|
|
59796
|
+
var orderFlow=JSCHART_DATA_FIELD_ID.KLINE_ORDERFLOW;
|
|
59605
59797
|
var yClose=null;
|
|
59606
59798
|
|
|
59607
59799
|
for (var i = 0; i < overlayData.data.length; ++i)
|
|
@@ -59645,7 +59837,9 @@ KLineChartContainer.JsonDataToMinuteHistoryData=function(data)
|
|
|
59645
59837
|
if (upperSymbol) isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol);
|
|
59646
59838
|
var list = data.data;
|
|
59647
59839
|
var aryDayData=new Array();
|
|
59648
|
-
var date = 0, yclose = 1, open = 2, high = 3, low = 4, close = 5, vol = 6, amount = 7, time = 8, position=9
|
|
59840
|
+
var date = 0, yclose = 1, open = 2, high = 3, low = 4, close = 5, vol = 6, amount = 7, time = 8, position=9;
|
|
59841
|
+
var orderFlow=JSCHART_DATA_FIELD_ID.KLINE_ORDERFLOW;
|
|
59842
|
+
var colorData=JSCHART_DATA_FIELD_ID.KLINE_COLOR_DATA;
|
|
59649
59843
|
var yClose=null;
|
|
59650
59844
|
for (var i = 0; i < list.length; ++i)
|
|
59651
59845
|
{
|
|
@@ -59670,6 +59864,7 @@ KLineChartContainer.JsonDataToMinuteHistoryData=function(data)
|
|
|
59670
59864
|
if (IFrameSplitOperator.IsNumber(item.Close)) yClose=item.Close;
|
|
59671
59865
|
|
|
59672
59866
|
if (jsData[orderFlow]) item.OrderFlow=jsData[orderFlow];
|
|
59867
|
+
if (jsData[colorData]) item.ColorData=jsData[colorData];
|
|
59673
59868
|
|
|
59674
59869
|
aryDayData.push(item);
|
|
59675
59870
|
}
|
|
@@ -6306,6 +6306,7 @@ var JSCHART_DATA_FIELD_ID=
|
|
|
6306
6306
|
{
|
|
6307
6307
|
KLINE_ORDERFLOW:99,
|
|
6308
6308
|
MINUTE_MULTI_DAY_EXTENDDATA:21, //多日分时图扩展数据序号
|
|
6309
|
+
KLINE_COLOR_DATA:66, //K线自定义颜色数据
|
|
6309
6310
|
}
|
|
6310
6311
|
|
|
6311
6312
|
|
|
@@ -18838,6 +18839,7 @@ HistoryData.Copy=function(data)
|
|
|
18838
18839
|
if (IFrameSplitOperator.IsNumber(data.AFactor)) newData.AFactor=data.AFactor;
|
|
18839
18840
|
|
|
18840
18841
|
if (data.OrderFlow) newData.OrderFlow=data.OrderFlow;
|
|
18842
|
+
if (data.ColorData) newData.ColorData=data.ColorData;
|
|
18841
18843
|
|
|
18842
18844
|
return newData;
|
|
18843
18845
|
}
|
|
@@ -18868,6 +18870,9 @@ HistoryData.CopyTo=function(dest,src)
|
|
|
18868
18870
|
|
|
18869
18871
|
if (IFrameSplitOperator.IsNumber(src.BFactor)) dest.BFactor=src.BFactor;
|
|
18870
18872
|
if (IFrameSplitOperator.IsNumber(src.AFactor)) dest.AFactor=src.AFactor;
|
|
18873
|
+
|
|
18874
|
+
if (src.OrderFlow) dest.OrderFlow=src.OrderFlow;
|
|
18875
|
+
if (src.ColorData) dest.ColorData=src.ColorData;
|
|
18871
18876
|
}
|
|
18872
18877
|
|
|
18873
18878
|
//数据复权拷贝
|
|
@@ -22149,7 +22154,7 @@ function ChartKLine()
|
|
|
22149
22154
|
|
|
22150
22155
|
this.ClassName='ChartKLine'; //类名
|
|
22151
22156
|
this.Symbol; //股票代码
|
|
22152
|
-
this.DrawType=0; // 0=实心K线柱子 1=收盘价线 2=美国线 3=空心K线柱子 4=收盘价面积图 5=订单流 6=空心K线柱子2(全部空心) 7=订单流样式2 8=订单流样式3
|
|
22157
|
+
this.DrawType=0; // 0=实心K线柱子 1=收盘价线 2=美国线 3=空心K线柱子 4=收盘价面积图 5=订单流 6=空心K线柱子2(全部空心) 7=订单流样式2 8=订单流样式3 9=自定义颜色K线
|
|
22153
22158
|
this.CloseLineColor=g_JSChartResource.CloseLineColor;
|
|
22154
22159
|
this.CloseLineAreaColor=g_JSChartResource.CloseLineAreaColor;
|
|
22155
22160
|
this.CloseLineWidth=g_JSChartResource.CloseLineWidth;
|
|
@@ -22690,6 +22695,10 @@ function ChartKLine()
|
|
|
22690
22695
|
|
|
22691
22696
|
this.DrawKBar_Custom(data, dataWidth, barColor, drawType, kLineOption, x, y, left, right, yLow, yHigh, yOpen, yClose, border, isHScreen);
|
|
22692
22697
|
}
|
|
22698
|
+
else if (this.DrawType==9 && data.ColorData)
|
|
22699
|
+
{
|
|
22700
|
+
this.DrawKBarV2(data, data.ColorData, dataWidth, x, y, left, right, yLow, yHigh, yOpen, yClose, isHScreen);
|
|
22701
|
+
}
|
|
22693
22702
|
else if (data.Open<data.Close) //阳线
|
|
22694
22703
|
{
|
|
22695
22704
|
this.DrawKBar_Up(data, dataWidth, upColor, this.DrawType, x, y, left, right, yLow, yHigh, yOpen, yClose, isHScreen);
|
|
@@ -23175,6 +23184,171 @@ function ChartKLine()
|
|
|
23175
23184
|
}
|
|
23176
23185
|
}
|
|
23177
23186
|
|
|
23187
|
+
this.DrawKBarV2=function(data, colorData, dataWidth, x, y, left, right, yLow, yHigh, yOpen, yClose, isHScreen)
|
|
23188
|
+
{
|
|
23189
|
+
var isDrawBorder=false;
|
|
23190
|
+
var isEmptyBar=false;
|
|
23191
|
+
if (colorData.border) isDrawBorder=true;
|
|
23192
|
+
if (colorData.Type===0) isEmptyBar=true;
|
|
23193
|
+
|
|
23194
|
+
if (dataWidth>=4)
|
|
23195
|
+
{
|
|
23196
|
+
if (isDrawBorder)
|
|
23197
|
+
{
|
|
23198
|
+
if ((dataWidth%2)!=0) dataWidth-=1;
|
|
23199
|
+
}
|
|
23200
|
+
|
|
23201
|
+
if (data.High>data.Close) //上影线
|
|
23202
|
+
{
|
|
23203
|
+
if (colorData.Line)
|
|
23204
|
+
{
|
|
23205
|
+
this.Canvas.strokeStyle=colorData.Line.Color;
|
|
23206
|
+
this.Canvas.beginPath();
|
|
23207
|
+
if (isHScreen)
|
|
23208
|
+
{
|
|
23209
|
+
this.Canvas.moveTo(ToFixedPoint(y),ToFixedPoint(x));
|
|
23210
|
+
this.Canvas.lineTo(ToFixedPoint(isEmptyBar?Math.max(yClose,yOpen):yClose),ToFixedPoint(x));
|
|
23211
|
+
}
|
|
23212
|
+
else
|
|
23213
|
+
{
|
|
23214
|
+
if (isDrawBorder)
|
|
23215
|
+
{
|
|
23216
|
+
var xFixed=left+dataWidth/2;
|
|
23217
|
+
this.Canvas.moveTo(ToFixedPoint(xFixed),ToFixedPoint(y));
|
|
23218
|
+
this.Canvas.lineTo(ToFixedPoint(xFixed),ToFixedPoint(Math.min(yClose,yOpen)));
|
|
23219
|
+
}
|
|
23220
|
+
else
|
|
23221
|
+
{
|
|
23222
|
+
this.Canvas.moveTo(ToFixedPoint(x),ToFixedPoint(y));
|
|
23223
|
+
this.Canvas.lineTo(ToFixedPoint(x),ToFixedPoint(Math.min(yClose,yOpen)));
|
|
23224
|
+
}
|
|
23225
|
+
}
|
|
23226
|
+
this.Canvas.stroke();
|
|
23227
|
+
}
|
|
23228
|
+
|
|
23229
|
+
y=yClose;
|
|
23230
|
+
}
|
|
23231
|
+
else
|
|
23232
|
+
{
|
|
23233
|
+
y=yClose;
|
|
23234
|
+
}
|
|
23235
|
+
|
|
23236
|
+
if (isHScreen)
|
|
23237
|
+
{
|
|
23238
|
+
/*
|
|
23239
|
+
if (Math.abs(yOpen-y)<1)
|
|
23240
|
+
{
|
|
23241
|
+
this.Canvas.fillRect(ToFixedRect(y),ToFixedRect(left),1,ToFixedRect(dataWidth)); //高度小于1,统一使用高度1
|
|
23242
|
+
}
|
|
23243
|
+
else
|
|
23244
|
+
{
|
|
23245
|
+
if (drawType==3) //空心柱
|
|
23246
|
+
{
|
|
23247
|
+
this.Canvas.beginPath();
|
|
23248
|
+
this.Canvas.rect(ToFixedPoint(y),ToFixedPoint(left),ToFixedRect(yOpen-y),ToFixedRect(dataWidth));
|
|
23249
|
+
this.Canvas.stroke();
|
|
23250
|
+
}
|
|
23251
|
+
else
|
|
23252
|
+
{
|
|
23253
|
+
this.Canvas.fillRect(ToFixedRect(y),ToFixedRect(left),ToFixedRect(yOpen-y),ToFixedRect(dataWidth));
|
|
23254
|
+
}
|
|
23255
|
+
}
|
|
23256
|
+
*/
|
|
23257
|
+
}
|
|
23258
|
+
else
|
|
23259
|
+
{
|
|
23260
|
+
|
|
23261
|
+
//实心
|
|
23262
|
+
if (!isEmptyBar && colorData.BarColor)
|
|
23263
|
+
{
|
|
23264
|
+
this.Canvas.fillStyle=colorData.BarColor;
|
|
23265
|
+
if (Math.abs(yOpen-y)<1)
|
|
23266
|
+
{
|
|
23267
|
+
this.Canvas.fillRect(ToFixedRect(left),ToFixedRect(y),ToFixedRect(dataWidth),1); //高度小于1,统一使用高度1
|
|
23268
|
+
}
|
|
23269
|
+
else
|
|
23270
|
+
{
|
|
23271
|
+
this.Canvas.fillRect(ToFixedRect(left),ToFixedRect(Math.min(y,yOpen)),ToFixedRect(dataWidth),ToFixedRect(Math.abs(yOpen-y)));
|
|
23272
|
+
}
|
|
23273
|
+
}
|
|
23274
|
+
|
|
23275
|
+
if (colorData.Border) //空心
|
|
23276
|
+
{
|
|
23277
|
+
if (Math.abs(yOpen-y)<1)
|
|
23278
|
+
{
|
|
23279
|
+
this.Canvas.fillStyle=colorData.Border.Color;
|
|
23280
|
+
this.Canvas.fillRect(ToFixedRect(left),ToFixedRect(y),ToFixedRect(dataWidth),1); //高度小于1,统一使用高度1
|
|
23281
|
+
}
|
|
23282
|
+
else
|
|
23283
|
+
{
|
|
23284
|
+
this.Canvas.strokeStyle=colorData.Border.Color;
|
|
23285
|
+
this.Canvas.beginPath();
|
|
23286
|
+
this.Canvas.rect(ToFixedPoint(left),ToFixedPoint(y),ToFixedRect(dataWidth),ToFixedRect(yOpen-y));
|
|
23287
|
+
this.Canvas.stroke();
|
|
23288
|
+
}
|
|
23289
|
+
}
|
|
23290
|
+
}
|
|
23291
|
+
|
|
23292
|
+
if (data.Open>data.Low) //下影线
|
|
23293
|
+
{
|
|
23294
|
+
if (colorData.Line)
|
|
23295
|
+
{
|
|
23296
|
+
this.Canvas.strokeStyle=colorData.Line.Color;
|
|
23297
|
+
this.Canvas.beginPath();
|
|
23298
|
+
if (isHScreen)
|
|
23299
|
+
{
|
|
23300
|
+
this.Canvas.moveTo(ToFixedPoint(isEmptyBar?Math.min(yClose,yOpen):y),ToFixedPoint(x));
|
|
23301
|
+
this.Canvas.lineTo(ToFixedPoint(yLow),ToFixedPoint(x));
|
|
23302
|
+
}
|
|
23303
|
+
else
|
|
23304
|
+
{
|
|
23305
|
+
if (isDrawBorder)
|
|
23306
|
+
{
|
|
23307
|
+
var xFixed=left+dataWidth/2;
|
|
23308
|
+
this.Canvas.moveTo(ToFixedPoint(xFixed),ToFixedPoint(Math.max(yClose,yOpen)));
|
|
23309
|
+
this.Canvas.lineTo(ToFixedPoint(xFixed),ToFixedPoint(yLow));
|
|
23310
|
+
}
|
|
23311
|
+
else
|
|
23312
|
+
{
|
|
23313
|
+
this.Canvas.moveTo(ToFixedPoint(x),ToFixedPoint(Math.max(yClose,yOpen)));
|
|
23314
|
+
this.Canvas.lineTo(ToFixedPoint(x),ToFixedPoint(yLow));
|
|
23315
|
+
}
|
|
23316
|
+
}
|
|
23317
|
+
this.Canvas.stroke();
|
|
23318
|
+
}
|
|
23319
|
+
}
|
|
23320
|
+
}
|
|
23321
|
+
else
|
|
23322
|
+
{
|
|
23323
|
+
var lineColor;
|
|
23324
|
+
if (isEmptyBar && colorData.Border)
|
|
23325
|
+
{
|
|
23326
|
+
lineColor=colorData.Border.Color;
|
|
23327
|
+
}
|
|
23328
|
+
else if (!isEmptyBar && colorData.BarColor)
|
|
23329
|
+
{
|
|
23330
|
+
lineColor=colorData.BarColor;
|
|
23331
|
+
}
|
|
23332
|
+
|
|
23333
|
+
if (lineColor)
|
|
23334
|
+
{
|
|
23335
|
+
this.Canvas.strokeStyle=lineColor;
|
|
23336
|
+
this.Canvas.beginPath();
|
|
23337
|
+
if (isHScreen)
|
|
23338
|
+
{
|
|
23339
|
+
this.Canvas.moveTo(yHigh,ToFixedPoint(x));
|
|
23340
|
+
this.Canvas.lineTo(yLow,ToFixedPoint(x));
|
|
23341
|
+
}
|
|
23342
|
+
else
|
|
23343
|
+
{
|
|
23344
|
+
this.Canvas.moveTo(ToFixedPoint(x),yHigh);
|
|
23345
|
+
this.Canvas.lineTo(ToFixedPoint(x),yLow);
|
|
23346
|
+
}
|
|
23347
|
+
this.Canvas.stroke();
|
|
23348
|
+
}
|
|
23349
|
+
}
|
|
23350
|
+
}
|
|
23351
|
+
|
|
23178
23352
|
this.DrawTrade=function() //交易系统
|
|
23179
23353
|
{
|
|
23180
23354
|
if (!this.TradeData) return;
|
|
@@ -23436,6 +23610,10 @@ function ChartKLine()
|
|
|
23436
23610
|
{
|
|
23437
23611
|
this.DrawOrderFlow_Style3();
|
|
23438
23612
|
}
|
|
23613
|
+
else if (this.DrawType==9)
|
|
23614
|
+
{
|
|
23615
|
+
this.DrawKBar();
|
|
23616
|
+
}
|
|
23439
23617
|
else
|
|
23440
23618
|
{
|
|
23441
23619
|
this.DrawKBar();
|
|
@@ -25990,10 +26168,13 @@ function ChartOverlayKLine()
|
|
|
25990
26168
|
|
|
25991
26169
|
this.PtInChart=function(x,y)
|
|
25992
26170
|
{
|
|
25993
|
-
|
|
26171
|
+
var drawType=this.DrawType;
|
|
26172
|
+
if (IFrameSplitOperator.IsNumber(this.CustomDrawType)) drawType=this.CustomDrawType;
|
|
26173
|
+
|
|
26174
|
+
if (drawType==1 || drawType==4) //线段,面积不支持选中
|
|
25994
26175
|
{
|
|
25995
26176
|
return null;
|
|
25996
|
-
return this.PtInLine(x,y, {KLineClose:true});
|
|
26177
|
+
//return this.PtInLine(x,y, {KLineClose:true});
|
|
25997
26178
|
}
|
|
25998
26179
|
|
|
25999
26180
|
return this.PtInKBar(x,y, {OverlayKLine:true});
|
|
@@ -44844,7 +45025,14 @@ function DynamicChartTitlePainting()
|
|
|
44844
45025
|
else
|
|
44845
45026
|
{
|
|
44846
45027
|
this.Canvas.fillStyle=item.Color;
|
|
44847
|
-
var text=
|
|
45028
|
+
var text=valueText;
|
|
45029
|
+
if (item.Name)
|
|
45030
|
+
{
|
|
45031
|
+
var dyTitle=this.GetDynamicOutName(item.Name);
|
|
45032
|
+
if (dyTitle) text=dyTitle+":"+valueText;
|
|
45033
|
+
else text=item.Name+":"+valueText;
|
|
45034
|
+
}
|
|
45035
|
+
|
|
44848
45036
|
var space=this.ParamSpace*GetDevicePixelRatio();
|
|
44849
45037
|
var textWidth=this.Canvas.measureText(text).width+space; //后空2个像素
|
|
44850
45038
|
if ((left+textWidth)>right) break;
|
|
@@ -59496,6 +59684,7 @@ KLineChartContainer.JsonDataToHistoryData=function(data)
|
|
|
59496
59684
|
var fclose=9, yfclose=10; //结算价, 前结算价
|
|
59497
59685
|
var bfactor=11, afactor=12; //前, 后复权因子
|
|
59498
59686
|
var orderFlow=JSCHART_DATA_FIELD_ID.KLINE_ORDERFLOW;
|
|
59687
|
+
var colorData=JSCHART_DATA_FIELD_ID.KLINE_COLOR_DATA;
|
|
59499
59688
|
for (var i = 0; i < list.length; ++i)
|
|
59500
59689
|
{
|
|
59501
59690
|
var item = new HistoryData();
|
|
@@ -59519,6 +59708,7 @@ KLineChartContainer.JsonDataToHistoryData=function(data)
|
|
|
59519
59708
|
if (!IFrameSplitOperator.IsNumber(item.Open)) continue;
|
|
59520
59709
|
|
|
59521
59710
|
if (jsData[orderFlow]) item.OrderFlow=jsData[orderFlow];
|
|
59711
|
+
if (jsData[colorData]) item.ColorData=jsData[colorData];
|
|
59522
59712
|
|
|
59523
59713
|
aryDayData.push(item);
|
|
59524
59714
|
}
|
|
@@ -59558,6 +59748,7 @@ KLineChartContainer.JsonDataToRealtimeData=function(data, symbol)
|
|
|
59558
59748
|
|
|
59559
59749
|
if (IFrameSplitOperator.IsNumber(stock.bfactor)) item.BFactor=stock.bfactor; //前复权因子
|
|
59560
59750
|
if (IFrameSplitOperator.IsNumber(stock.afactor)) item.AFactor=stock.afactor; //后复权因子
|
|
59751
|
+
if (stock.colordata) item.ColorData=stock.colordata; //自定义颜色
|
|
59561
59752
|
return item;
|
|
59562
59753
|
}
|
|
59563
59754
|
|
|
@@ -59645,7 +59836,8 @@ KLineChartContainer.JsonDataToMinuteRealtimeDataV2=function(data,symbol)
|
|
|
59645
59836
|
var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);
|
|
59646
59837
|
var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //是否是期货
|
|
59647
59838
|
|
|
59648
|
-
var date = 0, yclose = 1, open = 2, high = 3, low = 4, close = 5, vol = 6, amount = 7, time = 8, position=9
|
|
59839
|
+
var date = 0, yclose = 1, open = 2, high = 3, low = 4, close = 5, vol = 6, amount = 7, time = 8, position=9;
|
|
59840
|
+
var orderFlow=JSCHART_DATA_FIELD_ID.KLINE_ORDERFLOW;
|
|
59649
59841
|
var yClose=null;
|
|
59650
59842
|
|
|
59651
59843
|
for (var i = 0; i < overlayData.data.length; ++i)
|
|
@@ -59689,7 +59881,9 @@ KLineChartContainer.JsonDataToMinuteHistoryData=function(data)
|
|
|
59689
59881
|
if (upperSymbol) isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol);
|
|
59690
59882
|
var list = data.data;
|
|
59691
59883
|
var aryDayData=new Array();
|
|
59692
|
-
var date = 0, yclose = 1, open = 2, high = 3, low = 4, close = 5, vol = 6, amount = 7, time = 8, position=9
|
|
59884
|
+
var date = 0, yclose = 1, open = 2, high = 3, low = 4, close = 5, vol = 6, amount = 7, time = 8, position=9;
|
|
59885
|
+
var orderFlow=JSCHART_DATA_FIELD_ID.KLINE_ORDERFLOW;
|
|
59886
|
+
var colorData=JSCHART_DATA_FIELD_ID.KLINE_COLOR_DATA;
|
|
59693
59887
|
var yClose=null;
|
|
59694
59888
|
for (var i = 0; i < list.length; ++i)
|
|
59695
59889
|
{
|
|
@@ -59714,6 +59908,7 @@ KLineChartContainer.JsonDataToMinuteHistoryData=function(data)
|
|
|
59714
59908
|
if (IFrameSplitOperator.IsNumber(item.Close)) yClose=item.Close;
|
|
59715
59909
|
|
|
59716
59910
|
if (jsData[orderFlow]) item.OrderFlow=jsData[orderFlow];
|
|
59911
|
+
if (jsData[colorData]) item.ColorData=jsData[colorData];
|
|
59717
59912
|
|
|
59718
59913
|
aryDayData.push(item);
|
|
59719
59914
|
}
|