hqchart 1.1.12549 → 1.1.12555
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
|
@@ -3095,14 +3095,14 @@ if(option&&option.Start&&option.End&&IFrameSplitOperator.IsNumber(option.Start.I
|
|
|
3095
3095
|
if(option&&option.Start&&option.End&&IFrameSplitOperator.IsNumber(option.Start.Index)&&IFrameSplitOperator.IsNumber(option.End.Index)){start=option.Start.Index;end=option.End.Index;}var aryValue=[];for(var i=start;i<=end&&i<this.Data.length;++i){var item=this.Data[i];aryValue[i]=false;if(!IFrameSplitOperator.IsPlusNumber(item))continue;aryValue[i]=true;}return aryValue;};//导出K线数据
|
|
3096
3096
|
this.ExportKLineData=function(option){if(!IFrameSplitOperator.IsNonEmptyArray(this.Data))return null;var start=0,end=this.Data.length-1;//限制范围
|
|
3097
3097
|
if(option&&option.Start&&option.End&&IFrameSplitOperator.IsNumber(option.Start.Index)&&IFrameSplitOperator.IsNumber(option.End.Index)){start=option.Start.Index;end=option.End.Index;}var aryDate=[],aryOpen=[],aryHigh=[],aryLow=[],aryVol=[],aryAmount=[],aryClose=[],aryTime=[];for(var i=start;i<=end&&i<this.Data.length;++i){var item=this.Data[i];aryDate[i]=item.Date;aryOpen[i]=item.Open;aryHigh[i]=item.High;aryLow[i]=item.Low;aryClose[i]=item.Close;aryVol[i]=item.Vol;aryAmount[i]=item.Amount;aryTime[i]=item.Time;}if(option){if(option.IsOverlay)//叠加股票不返回时间,日期
|
|
3098
|
-
{var result=[{Name:"Open",Data:aryOpen},{Name:"High",Data:aryHigh},{Name:"Low",Data:aryLow},{Name:"Close",Data:aryClose},{Name:"Vol",Data:aryVol},{Name:"Amount",Data:aryAmount}];return result;}}var result=[{Name:"Date",Data:aryDate}];if(ChartData.IsMinutePeriod(this.Period,true)||ChartData.IsSecondPeriod(this.Period))result.push({Name:"Time",Data:aryTime});result.push({Name:"Open",Data:aryOpen},{Name:"High",Data:aryHigh},{Name:"Low",Data:aryLow},{Name:"Close",Data:aryClose},{Name:"Vol",Data:aryVol},{Name:"Amount",Data:aryAmount});return result;};//导出分时图数据
|
|
3098
|
+
{var result=[{Name:"Open",Data:aryOpen},{Name:"High",Data:aryHigh},{Name:"Low",Data:aryLow},{Name:"Close",Data:aryClose},{Name:"Vol",Data:aryVol},{Name:"Amount",Data:aryAmount}];return result;}}var result=[{Name:"Date",Data:aryDate}];if(ChartData.IsMinutePeriod(this.Period,true)||ChartData.IsSecondPeriod(this.Period)||ChartData.IsMilliSecondPeriod(this.Period))result.push({Name:"Time",Data:aryTime});result.push({Name:"Open",Data:aryOpen},{Name:"High",Data:aryHigh},{Name:"Low",Data:aryLow},{Name:"Close",Data:aryClose},{Name:"Vol",Data:aryVol},{Name:"Amount",Data:aryAmount});return result;};//导出分时图数据
|
|
3099
3099
|
this.ExportMinuteData=function(option){if(!IFrameSplitOperator.IsNonEmptyArray(this.Data))return null;var aryDate=[],aryOpen=[],aryHigh=[],aryLow=[],aryVol=[],aryAmount=[],aryClose=[],aryTime=[];var aryPosition=[],aryAvPrice=[];var start=0,end=this.Data.length-1;//限制范围
|
|
3100
3100
|
if(option&&option.Start&&option.End&&IFrameSplitOperator.IsNumber(option.Start.Index)&&IFrameSplitOperator.IsNumber(option.End.Index)){start=option.Start.Index;end=option.End.Index;}for(var i=start;i<=end&&i<this.Data.length;++i){var item=this.Data[i];aryDate[i]=item.Date;aryOpen[i]=item.Open;aryHigh[i]=item.High;aryLow[i]=item.Low;aryClose[i]=item.Close;aryVol[i]=item.Vol;aryAmount[i]=item.Amount;aryTime[i]=item.Time;aryAvPrice[i]=item.AvPrice;aryPosition[i]=item.Position;}var result=[{Name:"Open",Data:aryOpen},{Name:"High",Data:aryHigh},{Name:"Low",Data:aryLow},{Name:"Close",Data:aryClose},{Name:"Vol",Data:aryVol},{Name:"Amount",Data:aryAmount},{Name:"AvPrice",Data:aryAvPrice},{Name:"Position",Data:aryPosition}];if(option){if(option.IsOverlay)//叠加股票不返回时间,日期
|
|
3101
3101
|
return result;}result.splice(0,0,{Name:"Date",Data:aryDate},{Name:"Time",Data:aryTime});return result;};}ChartData.DateTimeToNumber=function(kItem){return kItem.Date*10000+kItem.Time;};ChartData.GetKLineDataTime=function(kLineItem)//获取K线的 日期和时间 如果时间没有就用0
|
|
3102
3102
|
{var result={Date:kLineItem.Date,Time:0};if(IFrameSplitOperator.IsNumber(kLineItem.Time))result.Time=kLineItem.Time;return result;};ChartData.GetFirday=function(value){var date=new Date(parseInt(value/10000),value/100%100-1,value%100);var day=date.getDay();if(day==5)return value;var timestamp=date.getTime();if(day<5){var prevTimestamp=24*60*60*1000*(5-day);timestamp+=prevTimestamp;}else{var prevTimestamp=24*60*60*1000*(day-5);timestamp-=prevTimestamp;}date.setTime(timestamp);var fridayDate=date.getFullYear()*10000+(date.getMonth()+1)*100+date.getDate();var week=date.getDay();return fridayDate;};ChartData.GetSunday=function(value){var date=new Date(parseInt(value/10000),value/100%100-1,value%100);var day=date.getDay();if(day==0)return value;var timestamp=date.getTime();if(day>0){var prevTimestamp=24*60*60*1000*(7-day);timestamp+=prevTimestamp;}date.setTime(timestamp);var sundayDate=date.getFullYear()*10000+(date.getMonth()+1)*100+date.getDate();var week=date.getDay();return sundayDate;};ChartData.GetQuarter=function(value){var month=parseInt(value%10000/100);if(month==1||month==2||month==3)return 1;else if(month==4||month==5||month==6)return 2;else if(month==7||month==8||month==9)return 3;else if(month==10||month==11||month==12)return 4;else return 0;};ChartData.GetHalfYear=function(value){var year=parseInt(value/10000);var day=value%10000;if(day<=630)return year*10000+630;return year*10000+1231;};//是否是日线周期 0=日线 1=周线 2=月线 3=年线 9=季线 21=双周 22=半年 [40001-50000) 自定义日线 (isIncludeBase 是否包含基础日线周期)
|
|
3103
3103
|
var CUSTOM_DAY_PERIOD_START=40000,CUSTOM_DAY_PERIOD_END=49999;ChartData.IsDayPeriod=function(period,isIncludeBase){if(period==1||period==2||period==3||period==9||period==21||period==22)return true;if(period>CUSTOM_DAY_PERIOD_START&&period<=CUSTOM_DAY_PERIOD_END)return true;if(period==0&&isIncludeBase==true)return true;return false;};//是否是分钟周期 4=1分钟 5=5分钟 6=15分钟 7=30分钟 8=60分钟 11=120分钟 12=240分钟 [20001-30000) 自定义分钟 (isIncludeBase 是否包含基础1分钟周期)
|
|
3104
3104
|
var CUSTOM_MINUTE_PERIOD_START=20000,CUSTOM_MINUTE_PERIOD_END=29999;ChartData.IsMinutePeriod=function(period,isIncludeBase){if(period==5||period==6||period==7||period==8||period==11||period==12)return true;if(period>CUSTOM_MINUTE_PERIOD_START&&period<=CUSTOM_MINUTE_PERIOD_END)return true;if(period==4&&isIncludeBase==true)return true;return false;};//是否是秒周期 [30001-32000)
|
|
3105
|
-
var CUSTOM_SECOND_PERIOD_START=30000,CUSTOM_SECOND_PERIOD_END=32000;ChartData.IsSecondPeriod=function(period){if(period>CUSTOM_SECOND_PERIOD_START&&period<=CUSTOM_SECOND_PERIOD_END)return true;return false;};var CUSTOM_MILLISECOND_PERIOD_START=
|
|
3105
|
+
var CUSTOM_SECOND_PERIOD_START=30000,CUSTOM_SECOND_PERIOD_END=32000;ChartData.IsSecondPeriod=function(period){if(period>CUSTOM_SECOND_PERIOD_START&&period<=CUSTOM_SECOND_PERIOD_END)return true;return false;};var CUSTOM_MILLISECOND_PERIOD_START=50000,CUSTOM_MILLISECOND_PERIOD_END=60000;ChartData.IsMilliSecondPeriod=function(period){if(period>CUSTOM_MILLISECOND_PERIOD_START&&period<=CUSTOM_MILLISECOND_PERIOD_END)return true;return false;};//是否是分笔图 10=分笔
|
|
3106
3106
|
ChartData.IsTickPeriod=function(period){return period==10;};//获取周期名字
|
|
3107
3107
|
ChartData.GetPeriodName=function(period){var mapName=new _map2.default([[0,'日线'],[1,'周线'],[2,'月线'],[3,'年线'],[9,'季线'],[21,'双周'],[22,"半年"],[4,'1分'],[5,'5分'],[6,'15分'],[7,'30分'],[8,'60分'],[11,'2小时'],[12,'4小时'],[10,'分笔']]);if(mapName.has(period))return mapName.get(period);return'';};function TooltipData()//提示信息
|
|
3108
3108
|
{this.ChartPaint;this.Data;this.Type=0;}function Rect(x,y,width,height){this.X=x,this.Y=y;this.Width=width;this.Height=height;}//图形外部挂接
|
|
@@ -4336,7 +4336,7 @@ this.AmountColor=g_JSChartResource.TooltipPaint.AmountColor;//成交金额
|
|
|
4336
4336
|
}else if(!this.HQChart.IsOnTouch){return false;}if(this.HQChart.CurrentChartDrawPicture)return false;//画图工具操作的时候 不显示
|
|
4337
4337
|
return true;};this.Draw=function(){if(!this.IsEnableDraw())return;this.IsHScreen=this.ChartFrame.IsHScreen===true;this.KLineTitlePaint=this.HQChart.TitlePaint[0];var klineData=this.KLineTitlePaint.GetCurrentKLineData();if(!klineData)return;var titleData=this.GetFormatTitle({Data:klineData});if(!titleData||!IFrameSplitOperator.IsNonEmptyArray(titleData.AryText))return;this.CalculateTooltipSize(titleData);this.CalculateShowPosition();this.DrawBG();this.DrawTooltipData(titleData);this.DrawBorder();};this.CalculateTooltipSize=function(titleData){this.Canvas.font=this.Font[0];this.LineHeight=this.Canvas.measureText("擎").width;var pixelRatio=GetDevicePixelRatio();var height=0;var maxTitleWidth=0,maxTextWidth=0,maxLineWidth=0;for(var i=0;i<titleData.AryText.length;++i){var item=titleData.AryText[i];if(height>0)height+=this.LineSpace;var lineWidth=0;if(item.Title){var textWidth=this.Canvas.measureText(item.Title).width+2;if(maxTitleWidth<textWidth)maxTitleWidth=textWidth;lineWidth+=textWidth;}if(item.Text){var textWidth=this.Canvas.measureText(item.Text).width+2;if(maxTextWidth<textWidth)maxTextWidth=textWidth;lineWidth+=textWidth;}if(maxLineWidth<lineWidth)maxLineWidth=lineWidth;height+=this.LineHeight;}this.Height=height+(this.Mergin.Top+this.Mergin.Bottom)*pixelRatio;this.Width=maxLineWidth+(this.Mergin.Left+this.Mergin.Right+this.ExtendLineWidth)*pixelRatio;return{Height:this.Height,Width:this.Width,MaxTitleWidth:maxTitleWidth,MaxTextWidth:maxTextWidth};};//判断显示位置
|
|
4338
4338
|
this.CalculateShowPosition=function(){this.ShowPosition=0;if(!this.LatestPoint)return;if(this.IsHScreen){var top=this.ChartBorder.GetTop();var height=this.ChartBorder.GetHeight();var yCenter=top+height/2;if(this.LatestPoint.Y<yCenter)this.ShowPosition=1;}else{var left=this.ChartBorder.GetLeft();var width=this.ChartBorder.GetWidth();var xCenter=left+width/2;if(this.LatestPoint.X<xCenter)this.ShowPosition=1;}};this.GetFormatTitle=function(data){if(!data||!data.Data)return;var item=data.Data;var upperSymbol;if(this.HQChart.Symbol)upperSymbol=this.HQChart.Symbol.toUpperCase();var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
|
|
4339
|
-
var aryText=[];var result={AryText:aryText};var text,title,color;text=IFrameSplitOperator.FormatDateString(item.Date);aryText.push({Text:text,Color:this.DateTimeColor});var period=this.HQChart.Period;if(ChartData.IsMinutePeriod(period,true)&&IFrameSplitOperator.IsNumber(item.Time)){text=IFrameSplitOperator.FormatTimeString(item.Time);aryText.push({Text:text,Color:this.DateTimeColor});}else if(ChartData.IsSecondPeriod(period)&&IFrameSplitOperator.IsNumber(item.Time)){text=IFrameSplitOperator.FormatTimeString(item.Time,'HH:MM:SS');aryText.push({Text:text,Color:this.DateTimeColor});}if(IFrameSplitOperator.IsNumber(item.Open))//开盘
|
|
4339
|
+
var aryText=[];var result={AryText:aryText};var text,title,color;text=IFrameSplitOperator.FormatDateString(item.Date);aryText.push({Text:text,Color:this.DateTimeColor});var period=this.HQChart.Period;if(ChartData.IsMinutePeriod(period,true)&&IFrameSplitOperator.IsNumber(item.Time)){text=IFrameSplitOperator.FormatTimeString(item.Time);aryText.push({Text:text,Color:this.DateTimeColor});}else if(ChartData.IsSecondPeriod(period)&&IFrameSplitOperator.IsNumber(item.Time)){text=IFrameSplitOperator.FormatTimeString(item.Time,'HH:MM:SS');aryText.push({Text:text,Color:this.DateTimeColor});}else if(ChartData.IsMilliSecondPeriod(period)&&IFrameSplitOperator.IsNumber(item.Time)){text=IFrameSplitOperator.FormatTimeString(item.Time,'HH:MM:SS.fff');aryText.push({Text:text,Color:this.DateTimeColor});}if(IFrameSplitOperator.IsNumber(item.Open))//开盘
|
|
4340
4340
|
{title=g_JSChartLocalization.GetText('Tooltip-Open',this.LanguageID);color=this.KLineTitlePaint.GetColor(item.Open,item.YClose);text=item.Open.toFixed(defaultfloatPrecision);aryText.push({Title:title,TitleColor:this.TitleColor,Text:text,Color:color});}if(IFrameSplitOperator.IsNumber(item.High))//高
|
|
4341
4341
|
{title=g_JSChartLocalization.GetText('Tooltip-High',this.LanguageID);color=this.KLineTitlePaint.GetColor(item.High,item.YClose);text=item.High.toFixed(defaultfloatPrecision);aryText.push({Title:title,TitleColor:this.TitleColor,Text:text,Color:color});}if(IFrameSplitOperator.IsNumber(item.Low))//低
|
|
4342
4342
|
{title=g_JSChartLocalization.GetText('Tooltip-Low',this.LanguageID);color=this.KLineTitlePaint.GetColor(item.Low,item.YClose);text=item.Low.toFixed(defaultfloatPrecision);aryText.push({Title:title,TitleColor:this.TitleColor,Text:text,Color:color});}if(IFrameSplitOperator.IsNumber(item.Close))//收
|
|
@@ -4741,6 +4741,7 @@ this.LineWidth=g_JSChartResource.RectSelect.LineWidth;this.LineDotted=g_JSChartR
|
|
|
4741
4741
|
this.ShowRangeText.Font=g_JSChartResource.RectSelect.RangeTextFont;this.ShowRangeText.Color=g_JSChartResource.RectSelect.RangeTextColor;this.ShowRangeText.BGColor=g_JSChartResource.RectSelect.RangeTextBGColor;};this.IsMinuteChart=function(){var className=this.HQChart.ClassName;var isMinuteChart=className=="MinuteChartContainer"||className=="MinuteChartHScreenContainer"?true:false;return isMinuteChart;};this.GetKData=function(){if(!this.HQChart)return null;var isMinuteChart=this.IsMinuteChart();var data=null;if(isMinuteChart){if(!this.HQChart.SourceData)return null;data=this.HQChart.SourceData;}else{if(!this.HQChart.ChartPaint[0])return null;data=this.HQChart.ChartPaint[0].Data;if(!data)return null;}return data;};this.GetPointCount=function(){var count=0;if(this.FirstPoint)++count;if(this.SecondPoint)++count;return count;};this.DateToNumber=function(value,isMinuteChart){if(isMinuteChart){if(IFrameSplitOperator.IsNumber(value.Date))return value.Date*10000+value.Time;else return value.Time;}else{var period=this.HQChart.Period;if(ChartData.IsDayPeriod(period,true))return value.Date;//YYYYMMDD
|
|
4742
4742
|
else if(ChartData.IsMinutePeriod(period,true))return value.Date*10000+value.Time;//YYYYMMDDHHMM
|
|
4743
4743
|
else if(ChartData.IsSecondPeriod(period)||ChartData.IsTickPeriod(period))return value.Date*1000000+value.Time;//YYYYMMDDHHMMSS
|
|
4744
|
+
else if(ChartData.IsMilliSecondPeriod(period))return value.Date*1000000000+value.Time;//YYYYMMDDHHMMSSFFF
|
|
4744
4745
|
}return null;};this.GetSelectRectData=function(){if(!this.FirstPoint||!this.SecondPoint)return null;var data=this.GetKData();if(!data)return null;var isMinuteChart=this.IsMinuteChart();var firstDate=this.DateToNumber(this.FirstPoint,isMinuteChart);var secondDate=this.DateToNumber(this.SecondPoint,isMinuteChart);var selectData={Start:null,End:null,Data:data};for(var i=0;i<data.Data.length;++i){var item=data.Data[i];if(!item)continue;var value=this.DateToNumber(item,isMinuteChart);if(firstDate==value)selectData.Start=i;if(secondDate==value)selectData.End=i;if(IFrameSplitOperator.IsNumber(selectData.Start)&&IFrameSplitOperator.IsNumber(selectData.End)){if(selectData.Start>selectData.End){var temp=selectData.Start;selectData.Start=selectData.End;selectData.End=temp;}return selectData;}}return null;};this.SortPoint=function(){var isMinuteChart=this.IsMinuteChart();this.CenterData=null;if(this.FirstPoint&&!this.SecondPoint){this.StartDate={Date:this.DateToNumber(this.FirstPoint,isMinuteChart),Index:0};}else if(this.FirstPoint&&this.SecondPoint){var firstValue=this.DateToNumber(this.FirstPoint,isMinuteChart);var secondValue=this.DateToNumber(this.SecondPoint,isMinuteChart);if(firstValue<secondValue){this.StartDate={Date:firstValue,Index:0};this.EndDate={Date:secondValue,Index:1};}else{this.StartDate={Date:secondValue,Index:1};this.EndDate={Date:firstValue,Index:0};}if(this.CenterPoint){var centerValue=this.DateToNumber(this.CenterPoint,isMinuteChart);this.CenterDate={Date:centerValue,Index:2};}//子区域
|
|
4745
4746
|
if(this.SubClient.FirstPoint&&this.SubClient.SecondPoint){var firstValue=this.DateToNumber(this.SubClient.FirstPoint,isMinuteChart);var secondValue=this.DateToNumber(this.SubClient.SecondPoint,isMinuteChart);if(firstValue<secondValue){this.SubClient.Start={Date:firstValue,Index:3};this.SubClient.End={Date:secondValue,Index:4};}else{this.SubClient.Start={Date:secondValue,Index:4};this.SubClient.End={Date:firstValue,Index:3};}//不能超出区间范围
|
|
4746
4747
|
if(this.SubClient.End.Date<=this.StartDate.Date||this.SubClient.Start.Date>=this.EndDate.Date){this.SubClient.Start=null;this.SubClient.End=null;}else{if(this.SubClient.Start.Date<this.StartDate.Date)this.SubClient.Start.Date=this.StartDate.Date;if(this.SubClient.End.Date>this.EndDate.Date)this.SubClient.End.Date=this.EndDate.Date;}}}};this.GetCenterPoint=function(){if(!this.FirstPoint||!this.SecondPoint)return null;if(!IFrameSplitOperator.IsNumber(this.FirstPoint.DataIndex))return null;if(!IFrameSplitOperator.IsNumber(this.SecondPoint.DataIndex))return null;var count=this.FirstPoint.DataIndex-this.SecondPoint.DataIndex;if(Math.abs(count)<3)return null;var centerIndex=parseInt(this.FirstPoint.DataIndex+(this.SecondPoint.DataIndex-this.FirstPoint.DataIndex)/2);if(centerIndex<0)return null;var data=this.GetKData();if(!data||!data.Data)return null;var kItem=data.Data[centerIndex];if(!kItem)return null;return{Date:kItem.Date,Time:kItem.Time,DataIndex:centerIndex};};this.MovePoint=function(offset){if(!this.FirstPoint||!this.SecondPoint)return false;var data=this.GetKData();if(!data||!data.Data)return false;var dataIndex=this.FirstPoint.DataIndex+offset;var kItem=data.Data[dataIndex];if(!kItem)return false;var firstPoint={Date:kItem.Date,Time:kItem.Time,DataIndex:dataIndex};var dataIndex=this.SecondPoint.DataIndex+offset;var kItem=data.Data[dataIndex];if(!kItem)return false;var secondPoint={Date:kItem.Date,Time:kItem.Time,DataIndex:dataIndex};var dataIndex=this.CenterPoint.DataIndex+offset;var kItem=data.Data[dataIndex];if(!kItem)return false;var centerPoint={Date:kItem.Date,Time:kItem.Time,DataIndex:dataIndex};this.FirstPoint=firstPoint;this.SecondPoint=secondPoint;this.CenterPoint=centerPoint;return true;};this.MoveSubRect=function(step,isLeft){if(!this.FirstPoint||!this.SecondPoint)return false;if(!this.SubClient||!this.SubClient.FirstPoint||!this.SubClient.SecondPoint)return false;var data=this.GetKData();if(!data||!data.Data)return false;//区间范围
|
|
@@ -5046,7 +5047,7 @@ this.MinTextDistance=50*GetDevicePixelRatio();this.MinBarDistance=5;//刻度间
|
|
|
5046
5047
|
this.SplitDateTime=function()//根据时间分割
|
|
5047
5048
|
{this.Frame.VerticalInfo=[];var itemWidth=this.Frame.DistanceWidth+this.Frame.DataWidth;var xOffset=this.Frame.Data.DataOffset;var xPointCount=this.Frame.XPointCount;var lastYear=null,lastMonth=null;var textDistance=0;var barDistance=0;for(var i=0,index=xOffset;i<xPointCount&&index<this.Frame.Data.Data.length;++i,++index){textDistance+=itemWidth;++barDistance;var infoData=null;if(i==0){var date=IFrameSplitOperator.FormatDateString(this.Frame.Data.Data[index].Date,'MM-DD');infoData={Value:index-xOffset,Text:date};}else if(textDistance>this.MinTextDistance&&barDistance>=this.MinBarDistance){var time=IFrameSplitOperator.FormatTimeString(this.Frame.Data.Data[index].Time);infoData={Value:index-xOffset,Text:time};}if(infoData){var info=new CoordinateInfo();info.Value=infoData.Value;if(this.ShowText)info.Message[0]=infoData.Text;if(info.Value==0)info.LineType=-1;//第1个分割线不画
|
|
5048
5049
|
this.Frame.VerticalInfo.push(info);textDistance=0;barDistance=0;if(i==0)textDistance=-(this.MinTextDistance/2);}}};this.SplitSecond=function()//根据时间分割
|
|
5049
|
-
{this.Frame.VerticalInfo=[];var itemWidth=this.Frame.DistanceWidth+this.Frame.DataWidth;var xOffset=this.Frame.Data.DataOffset;var xPointCount=this.Frame.XPointCount;var textDistance=0;var barDistance=0;for(var i=0,index=xOffset;i<xPointCount&&index<this.Frame.Data.Data.length;++i,++index){textDistance+=itemWidth;++barDistance;var infoData=null;if(i==0){var date=IFrameSplitOperator.FormatDateString(this.Frame.Data.Data[index].Date,'MM-DD');infoData={Value:index-xOffset,Text:date};}else if(textDistance>this.MinTextDistance&&barDistance>=this.MinBarDistance){var time=IFrameSplitOperator.FormatTimeString(this.Frame.Data.Data[index].Time,"HH:MM:SS");infoData={Value:index-xOffset,Text:time};}if(infoData){var info=new CoordinateInfo();info.Value=infoData.Value;if(this.ShowText)info.Message[0]=infoData.Text;this.Frame.VerticalInfo.push(info);textDistance=0;barDistance=0;if(i==0)textDistance=-(this.MinTextDistance/2);}}};this.SplitDate=function()//根据日期分割
|
|
5050
|
+
{this.Frame.VerticalInfo=[];var itemWidth=this.Frame.DistanceWidth+this.Frame.DataWidth;var xOffset=this.Frame.Data.DataOffset;var xPointCount=this.Frame.XPointCount;var textDistance=0;var barDistance=0;for(var i=0,index=xOffset;i<xPointCount&&index<this.Frame.Data.Data.length;++i,++index){textDistance+=itemWidth;++barDistance;var infoData=null;if(i==0){var date=IFrameSplitOperator.FormatDateString(this.Frame.Data.Data[index].Date,'MM-DD');infoData={Value:index-xOffset,Text:date};}else if(textDistance>this.MinTextDistance&&barDistance>=this.MinBarDistance){var time=IFrameSplitOperator.FormatTimeString(this.Frame.Data.Data[index].Time,"HH:MM:SS");infoData={Value:index-xOffset,Text:time};}if(infoData){var info=new CoordinateInfo();info.Value=infoData.Value;if(this.ShowText)info.Message[0]=infoData.Text;this.Frame.VerticalInfo.push(info);textDistance=0;barDistance=0;if(i==0)textDistance=-(this.MinTextDistance/2);}}};this.SplitMilliSecond=function(){this.Frame.VerticalInfo=[];var itemWidth=this.Frame.DistanceWidth+this.Frame.DataWidth;var xOffset=this.Frame.Data.DataOffset;var xPointCount=this.Frame.XPointCount;var textDistance=0;var barDistance=0;for(var i=0,index=xOffset;i<xPointCount&&index<this.Frame.Data.Data.length;++i,++index){textDistance+=itemWidth;++barDistance;var infoData=null;if(i==0){var date=IFrameSplitOperator.FormatDateString(this.Frame.Data.Data[index].Date,'HH:MM:SS.fff');infoData={Value:index-xOffset,Text:date};}else if(textDistance>this.MinTextDistance&&barDistance>=this.MinBarDistance){var time=IFrameSplitOperator.FormatTimeString(this.Frame.Data.Data[index].Time,"HH:MM:SS.fff");infoData={Value:index-xOffset,Text:time};}if(infoData){var info=new CoordinateInfo();info.Value=infoData.Value;if(this.ShowText)info.Message[0]=infoData.Text;this.Frame.VerticalInfo.push(info);textDistance=0;barDistance=0;if(i==0)textDistance=-(this.MinTextDistance/2);}}};this.SplitDate=function()//根据日期分割
|
|
5050
5051
|
{this.Frame.VerticalInfo=[];var xOffset=this.Frame.Data.DataOffset;var xPointCount=this.Frame.XPointCount;var lastYear=null,lastMonth=null;var minDistance=12;var monthCount=0;for(var i=0,index=xOffset,distance=minDistance;i<xPointCount&&index<this.Frame.Data.Data.length;++i,++index){var year=parseInt(this.Frame.Data.Data[index].Date/10000);var month=parseInt(this.Frame.Data.Data[index].Date/100)%100;if(lastMonth!=month)++monthCount;if(distance<minDistance||lastYear!=null&&lastYear==year&&lastMonth!=null&&lastMonth==month){lastMonth=month;++distance;continue;}var info=new CoordinateInfo();info.Value=index-xOffset;var text;if(lastYear==null||lastYear!=year){text=year.toString();}else if(lastMonth==null||lastMonth!=month){text=month.toString()+'月';text=g_JSChartLocalization.GetText(text,this.LanguageID);}lastYear=year;lastMonth=month;if(this.ShowText)info.Message[0]=text;if(info.Value==0)info.LineType=-1;//第1个分割线不画
|
|
5051
5052
|
this.Frame.VerticalInfo.push(info);distance=0;}if(this.Period==0&&monthCount<=2)this.SplitShortDate();};//分隔在2个月一下的格式
|
|
5052
5053
|
this.SplitShortDate=function(){this.Frame.VerticalInfo=[];var xOffset=this.Frame.Data.DataOffset;var xPointCount=this.Frame.XPointCount;var minDistance=12;var isFirstYear=true;for(var i=0,index=xOffset,distance=minDistance;i<xPointCount&&index<this.Frame.Data.Data.length;++i,++index){var year=parseInt(this.Frame.Data.Data[index].Date/10000);//var month=parseInt(this.Frame.Data.Data[index].Date/100)%100;
|
|
@@ -5054,7 +5055,7 @@ this.SplitShortDate=function(){this.Frame.VerticalInfo=[];var xOffset=this.Frame
|
|
|
5054
5055
|
if(distance<minDistance){++distance;continue;}var info=new CoordinateInfo();info.Value=index-xOffset;var text;if(isFirstYear){text=year.toString();isFirstYear=false;}else{text=IFrameSplitOperator.FormatDateString(this.Frame.Data.Data[index].Date,'MM-DD');}if(this.ShowText)info.Message[0]=text;if(info.Value==0)info.LineType=-1;//第1个分割线不画
|
|
5055
5056
|
this.Frame.VerticalInfo.push(info);distance=0;}if(this.Frame.VerticalInfo.length==1)//只有1个刻度, 就显示年+月
|
|
5056
5057
|
{var item=this.Frame.VerticalInfo[0];var index=item.Value+xOffset;var kitem=this.Frame.Data.Data[index];var text=IFrameSplitOperator.FormatDateString(kitem.Date,'YYYY-MM');if(this.ShowText)item.Message[0]=text;}};this.Operator=function(){if(this.Frame.Data==null)return;if(FrameSplitKLineX.SplitCustom)FrameSplitKLineX.SplitCustom(this);//自定义分割
|
|
5057
|
-
else if(ChartData.IsMinutePeriod(this.Period,true))this.SplitDateTime();else if(ChartData.IsSecondPeriod(this.Period))this.SplitSecond();else if(ChartData.IsTickPeriod(this.Period))this.SplitSecond();else this.SplitDate();if(this.GetEventCallback){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_SPLIT_XCOORDINATE);if(event&&event.Callback){var data={ID:this.Frame.Identify,Frame:this.Frame};event.Callback(event,data,this);}}};this.CreateCoordinateInfo=function(){return new CoordinateInfo();};}//FrameSplitKLineX.SplitCustom=function(split) { }
|
|
5058
|
+
else if(ChartData.IsMinutePeriod(this.Period,true))this.SplitDateTime();else if(ChartData.IsSecondPeriod(this.Period))this.SplitSecond();else if(ChartData.IsTickPeriod(this.Period))this.SplitSecond();else if(ChartData.IsMilliSecondPeriod(this.Period))this.SplitMilliSecond();else this.SplitDate();if(this.GetEventCallback){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_SPLIT_XCOORDINATE);if(event&&event.Callback){var data={ID:this.Frame.Identify,Frame:this.Frame};event.Callback(event,data,this);}}};this.CreateCoordinateInfo=function(){return new CoordinateInfo();};}//FrameSplitKLineX.SplitCustom=function(split) { }
|
|
5058
5059
|
function FrameSplitMinutePriceY(){this.newMethod=IFrameSplitOperator;//派生
|
|
5059
5060
|
this.newMethod();delete this.newMethod;this.High=null;//最高最低价
|
|
5060
5061
|
this.Low=null;this.YClose;//昨收
|
|
@@ -5363,7 +5364,7 @@ this.Operator=function(){var data=this.Value.Data;if(!data)return false;this.Wid
|
|
|
5363
5364
|
return true;
|
|
5364
5365
|
*/};this.GenerateTitleHtml=function(data){var lineCount=0;var strHtml="",text;if(data.Name){text='<span style=\'color:rgb(0,0,0);font:\u5FAE\u8F6F\u96C5\u9ED1;font-size:12px;text-align:center;display: block;\'>'+data.Name+'</span>';strHtml+=text;++lineCount;}if(data.Title){text='<span class=\'tooltip-title\'>'+data.Title+'</span>';strHtml+=text;++lineCount;}if(IFrameSplitOperator.IsNonEmptyArray(data.AryText)){for(var i=0;i<data.AryText.length;++i){var item=data.AryText[i];if(i>0)strHtml+='<br/>';var text='<span class=\'tooltip-con\'>'+item.Title+'</span><span class=\'tooltip-num\' style=\'color:'+item.Color+';\'>'+item.Text+'</span>';strHtml+=text;++lineCount;}}return{Html:strHtml,LineCount:lineCount};};this.GetFormatTitle=function(data){if(!data)return null;var upperSymbol=this.Symbol.toUpperCase();var defaultfloatPrecision=GetfloatPrecision(this.Symbol);//价格小数位数
|
|
5365
5366
|
var date=new Date(parseInt(data.Date/10000),data.Date/100%100-1,data.Date%100);var strDate=IFrameSplitOperator.FormatDateString(data.Date);var title2=g_JSChartLocalization.GetText(WEEK_NAME[date.getDay()],this.LanguageID);var isTickPeriod=ChartData.IsTickPeriod(this.Value.ChartPaint.Data.Period);if(ChartData.IsMinutePeriod(this.Value.ChartPaint.Data.Period,true))// 分钟周期
|
|
5366
|
-
{title2=IFrameSplitOperator.FormatTimeString(data.Time);}else if(ChartData.IsSecondPeriod(this.Value.ChartPaint.Data.Period)||isTickPeriod){title2=IFrameSplitOperator.FormatTimeString(data.Time,'HH:MM:SS');}var result={AryText:null,Title:strDate+'  '+title2,Name:null};if(isTickPeriod){var aryText=[{Title:g_JSChartLocalization.GetText('DivTooltip-Price',this.LanguageID),Text:IFrameSplitOperator.IsNumber(data.Open)?data.Open.toFixed(defaultfloatPrecision):'--',Color:this.GetColor(data.Open,data.YClose)}];if(IFrameSplitOperator.IsNumber(data.YClose)){var increase=(data.Close-data.YClose)/data.YClose*100;var item={Title:g_JSChartLocalization.GetText('DivTooltip-Increase',this.LanguageID),Text:increase.toFixed(2)+'%',Color:this.GetColor(increase,0)};aryText.push(item);}result.AryText=aryText;}else if(data.IsNonTrade){}else{var vol=data.Vol;if(upperSymbol&&MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol))vol/=100;//A股统一转成手
|
|
5367
|
+
{title2=IFrameSplitOperator.FormatTimeString(data.Time);}else if(ChartData.IsSecondPeriod(this.Value.ChartPaint.Data.Period)||isTickPeriod){title2=IFrameSplitOperator.FormatTimeString(data.Time,'HH:MM:SS');}else if(ChartData.IsMilliSecondPeriod(this.Value.ChartPaint.Data.Period)){title2=IFrameSplitOperator.FormatTimeString(data.Time,'HH:MM:SS.fff');}var result={AryText:null,Title:strDate+'  '+title2,Name:null};if(isTickPeriod){var aryText=[{Title:g_JSChartLocalization.GetText('DivTooltip-Price',this.LanguageID),Text:IFrameSplitOperator.IsNumber(data.Open)?data.Open.toFixed(defaultfloatPrecision):'--',Color:this.GetColor(data.Open,data.YClose)}];if(IFrameSplitOperator.IsNumber(data.YClose)){var increase=(data.Close-data.YClose)/data.YClose*100;var item={Title:g_JSChartLocalization.GetText('DivTooltip-Increase',this.LanguageID),Text:increase.toFixed(2)+'%',Color:this.GetColor(increase,0)};aryText.push(item);}result.AryText=aryText;}else if(data.IsNonTrade){}else{var vol=data.Vol;if(upperSymbol&&MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol))vol/=100;//A股统一转成手
|
|
5367
5368
|
var eventUnchangeKLine=null;//定制平盘K线颜色事件
|
|
5368
5369
|
if(this.GetEventCallback)eventUnchangeKLine=this.GetEventCallback(JSCHART_EVENT_ID.ON_CUSTOM_UNCHANGE_KLINE_TITLE_COLOR);var aryText=[{Title:g_JSChartLocalization.GetText('DivTooltip-Open',this.LanguageID),Text:IFrameSplitOperator.IsNumber(data.Open)?data.Open.toFixed(defaultfloatPrecision):'--',Color:this.GetPriceColor("DivTooltip-Open",data.Open,data.YClose,data,eventUnchangeKLine)},{Title:g_JSChartLocalization.GetText('DivTooltip-High',this.LanguageID),Text:IFrameSplitOperator.IsNumber(data.High)?data.High.toFixed(defaultfloatPrecision):'--',Color:this.GetPriceColor("DivTooltip-High",data.High,data.YClose,data,eventUnchangeKLine)},{Title:g_JSChartLocalization.GetText('DivTooltip-Low',this.LanguageID),Text:IFrameSplitOperator.IsNumber(data.Low)?data.Low.toFixed(defaultfloatPrecision):'--',Color:this.GetPriceColor('DivTooltip-Low',data.Low,data.YClose,data,eventUnchangeKLine)},{Title:g_JSChartLocalization.GetText('DivTooltip-Close',this.LanguageID),Text:IFrameSplitOperator.IsNumber(data.Close)?data.Close.toFixed(defaultfloatPrecision):'--',Color:this.GetPriceColor('DivTooltip-Close',data.Close,data.YClose,data,eventUnchangeKLine)},{Title:g_JSChartLocalization.GetText('DivTooltip-Vol',this.LanguageID),Text:IFrameSplitOperator.IsNumber(vol)?IFrameSplitOperator.FormatValueString(vol,2,this.LanguageID):'--',Color:this.VolColor},{Title:g_JSChartLocalization.GetText('DivTooltip-Amount',this.LanguageID),Text:IFrameSplitOperator.IsNumber(data.Amount)?IFrameSplitOperator.FormatValueString(data.Amount,2,this.LanguageID):'--',Color:this.AmountColor}];if(IFrameSplitOperator.IsNumber(data.YClose)){var increase=(data.Close-data.YClose)/data.YClose*100;var item={Title:g_JSChartLocalization.GetText('DivTooltip-Increase',this.LanguageID),Text:increase.toFixed(2)+'%',Color:this.GetColor(increase,0)};aryText.push(item);}if(MARKET_SUFFIX_NAME.IsSHSZStockA(this.Symbol)&&data.FlowCapital>0)//换手率
|
|
5369
5370
|
{var value=data.Vol/data.FlowCapital*100;var item={Title:g_JSChartLocalization.GetText('DivTooltip-Exchange',this.LanguageID),Text:value.toFixed(2)+'%',Color:this.TurnoverRateColor};aryText.push(item);}if(MARKET_SUFFIX_NAME.IsFutures(upperSymbol)&&IFrameSplitOperator.IsNumber(data.Position)){var item={Title:g_JSChartLocalization.GetText('DivTooltip-Position',this.LanguageID),Text:''+data.Position,Color:this.PositionColor};}//叠加股票
|
|
@@ -5422,8 +5423,8 @@ this.LanguageID=JSCHART_LANGUAGE_ID.LANGUAGE_CHINESE_ID;this.OnDrawEvent;this.On
|
|
|
5422
5423
|
this.PositionColor=g_JSChartResource.Title.PositionColor;//持仓
|
|
5423
5424
|
};this.GetCurrentKLineData=function()//获取当天鼠标位置所在的K线数据
|
|
5424
5425
|
{if(this.CursorIndex==null||!this.Data)return null;if(this.Data.length<=0)return null;var index=this.CursorIndex;index=parseInt(index.toFixed(0));var dataIndex=this.Data.DataOffset+index;if(dataIndex>=this.Data.Data.length)dataIndex=this.Data.Data.length-1;if(dataIndex<0)return null;var item=this.Data.Data[dataIndex];return item;};this.GetFormatTitle=function(data){if(!data||!data.Data)return;var defaultfloatPrecision=GetfloatPrecision(this.Symbol);//价格小数位数
|
|
5425
|
-
var upperSymbol=this.Symbol.toUpperCase();var item=data.Data;var aryText=[];var result={AryText:aryText};if(this.IsShowName)aryText.push({Text:this.Name,Color:this.NameColor});if(this.IsShowSettingInfo){var periodName='';if(this.Data.Period>CUSTOM_MINUTE_PERIOD_START&&this.Data.Period<=CUSTOM_MINUTE_PERIOD_END)periodName=this.Data.Period-CUSTOM_MINUTE_PERIOD_START+g_JSChartLocalization.GetText('自定义分钟',this.LanguageID);else if(this.Data.Period>CUSTOM_DAY_PERIOD_START&&this.Data.Period<=CUSTOM_DAY_PERIOD_END)periodName=this.Data.Period-CUSTOM_DAY_PERIOD_START+g_JSChartLocalization.GetText('自定义日线',this.LanguageID);else if(this.Data.Period>CUSTOM_SECOND_PERIOD_START&&this.Data.Period<=CUSTOM_SECOND_PERIOD_END)periodName=this.Data.Period-CUSTOM_SECOND_PERIOD_START+g_JSChartLocalization.GetText('自定义秒',this.LanguageID);else periodName=g_JSChartLocalization.GetText(ChartData.GetPeriodName(this.Data.Period),this.LanguageID);var rightName=g_JSChartLocalization.GetText(RIGHT_NAME[this.Data.Right],this.LanguageID);var text="("+periodName+" "+rightName+")";if(!MARKET_SUFFIX_NAME.IsEnableRight(this.Data.Period,this.Symbol,this.HQChart.RightFormula))text="("+periodName+")";aryText.push({Text:text,Color:this.SettingColor});}var text=this.GetKLineCalculateTitle();if(text)aryText.push({Text:text,Color:this.NameColor});if(this.IsShowDateTime)//是否显示日期
|
|
5426
|
-
{var text=IFrameSplitOperator.FormatDateString(item.Date);aryText.push({Text:text,Color:this.DateTimeColor});}var isTickPeriod=ChartData.IsTickPeriod(this.Period);if(ChartData.IsMinutePeriod(this.Period,true)&&IFrameSplitOperator.IsNumber(item.Time)){var text=IFrameSplitOperator.FormatTimeString(item.Time);aryText.push({Text:text,Color:this.DateTimeColor});}else if(ChartData.IsSecondPeriod(this.Period)&&IFrameSplitOperator.IsNumber(item.Time)){var text=IFrameSplitOperator.FormatTimeString(item.Time,"HH:MM:SS");aryText.push({Text:text,Color:this.DateTimeColor});}else if(ChartData.IsMilliSecondPeriod(
|
|
5426
|
+
var upperSymbol=this.Symbol.toUpperCase();var item=data.Data;var aryText=[];var result={AryText:aryText};if(this.IsShowName)aryText.push({Text:this.Name,Color:this.NameColor});if(this.IsShowSettingInfo){var periodName='';if(this.Data.Period>CUSTOM_MINUTE_PERIOD_START&&this.Data.Period<=CUSTOM_MINUTE_PERIOD_END)periodName=this.Data.Period-CUSTOM_MINUTE_PERIOD_START+g_JSChartLocalization.GetText('自定义分钟',this.LanguageID);else if(this.Data.Period>CUSTOM_DAY_PERIOD_START&&this.Data.Period<=CUSTOM_DAY_PERIOD_END)periodName=this.Data.Period-CUSTOM_DAY_PERIOD_START+g_JSChartLocalization.GetText('自定义日线',this.LanguageID);else if(this.Data.Period>CUSTOM_SECOND_PERIOD_START&&this.Data.Period<=CUSTOM_SECOND_PERIOD_END)periodName=this.Data.Period-CUSTOM_SECOND_PERIOD_START+g_JSChartLocalization.GetText('自定义秒',this.LanguageID);else if(this.Data.Period>CUSTOM_MILLISECOND_PERIOD_START&&this.Data.Period<=CUSTOM_MILLISECOND_PERIOD_END)periodName=this.Data.Period-CUSTOM_MILLISECOND_PERIOD_START+g_JSChartLocalization.GetText('自定义毫秒',this.LanguageID);else periodName=g_JSChartLocalization.GetText(ChartData.GetPeriodName(this.Data.Period),this.LanguageID);var rightName=g_JSChartLocalization.GetText(RIGHT_NAME[this.Data.Right],this.LanguageID);var text="("+periodName+" "+rightName+")";if(!MARKET_SUFFIX_NAME.IsEnableRight(this.Data.Period,this.Symbol,this.HQChart.RightFormula))text="("+periodName+")";aryText.push({Text:text,Color:this.SettingColor});}var text=this.GetKLineCalculateTitle();if(text)aryText.push({Text:text,Color:this.NameColor});if(this.IsShowDateTime)//是否显示日期
|
|
5427
|
+
{var text=IFrameSplitOperator.FormatDateString(item.Date);aryText.push({Text:text,Color:this.DateTimeColor});}var isTickPeriod=ChartData.IsTickPeriod(this.Period);if(ChartData.IsMinutePeriod(this.Period,true)&&IFrameSplitOperator.IsNumber(item.Time)){var text=IFrameSplitOperator.FormatTimeString(item.Time);aryText.push({Text:text,Color:this.DateTimeColor});}else if(ChartData.IsSecondPeriod(this.Period)&&IFrameSplitOperator.IsNumber(item.Time)){var text=IFrameSplitOperator.FormatTimeString(item.Time,"HH:MM:SS");aryText.push({Text:text,Color:this.DateTimeColor});}else if(ChartData.IsMilliSecondPeriod(this.Period)&&IFrameSplitOperator.IsNumber(item.Time)){var text=IFrameSplitOperator.FormatTimeString(item.Time,"HH:MM:SS.fff");aryText.push({Text:text,Color:this.DateTimeColor});}else if(isTickPeriod){var text=IFrameSplitOperator.FormatTimeString(item.Time,"HH:MM:SS");aryText.push({Text:text,Color:this.DateTimeColor});}if(isTickPeriod){var color=this.GetColor(item.Open,item.YClose);var text=g_JSChartLocalization.GetText('KTitle-Price',this.LanguageID)+item.Open.toFixed(defaultfloatPrecision);aryText.push({Text:text,Color:color});if(IFrameSplitOperator.IsNumber(item.YClose)&&item.YClose!=0){var value=(item.Close-item.YClose)/item.YClose*100;var color=this.GetColor(value,0);var text=g_JSChartLocalization.GetText('KTitle-Increase',this.LanguageID)+value.toFixed(2)+'%';aryText.push({Text:text,Color:color});}return result;}if(item.IsNonTrade)return result;//非交易日 没数据 不显示
|
|
5427
5428
|
var eventUnchangeKLine=null;//定制平盘K线颜色事件
|
|
5428
5429
|
if(this.GetEventCallback)eventUnchangeKLine=this.GetEventCallback(JSCHART_EVENT_ID.ON_CUSTOM_UNCHANGE_KLINE_TITLE_COLOR);if(IFrameSplitOperator.IsNumber(item.Open)){var color=this.GetColor(item.Open,item.YClose);var text=g_JSChartLocalization.GetText('KTitle-Open',this.LanguageID)+item.Open.toFixed(defaultfloatPrecision);if(item.Open==item.YClose&&eventUnchangeKLine){var sendData={Item:item,TitleName:"KTitle-Open",DefaultColor:color,TitleColor:null};if(this.OnUnchangeTitleColor(eventUnchangeKLine,sendData))color=sendData.TitleColor;}aryText.push({Text:text,Color:color});}if(IFrameSplitOperator.IsNumber(item.High)){var color=this.GetColor(item.High,item.YClose);var text=g_JSChartLocalization.GetText('KTitle-High',this.LanguageID)+item.High.toFixed(defaultfloatPrecision);if(item.High==item.YClose&&eventUnchangeKLine){var sendData={Item:item,TitleName:"KTitle-High",DefaultColor:color,TitleColor:null};if(this.OnUnchangeTitleColor(eventUnchangeKLine,sendData))color=sendData.TitleColor;}aryText.push({Text:text,Color:color});}if(IFrameSplitOperator.IsNumber(item.Low)){var color=this.GetColor(item.Low,item.YClose);var text=g_JSChartLocalization.GetText('KTitle-Low',this.LanguageID)+item.Low.toFixed(defaultfloatPrecision);if(item.Low==item.YClose&&eventUnchangeKLine){var sendData={Item:item,TitleName:"KTitle-Low",DefaultColor:color,TitleColor:null};if(this.OnUnchangeTitleColor(eventUnchangeKLine,sendData))color=sendData.TitleColor;}aryText.push({Text:text,Color:color});}if(IFrameSplitOperator.IsNumber(item.Close)){var color=this.GetColor(item.Close,item.YClose);var text=g_JSChartLocalization.GetText('KTitle-Close',this.LanguageID)+item.Close.toFixed(defaultfloatPrecision);if(item.Close==item.YClose&&eventUnchangeKLine){var sendData={Item:item,TitleName:"KTitle-Close",DefaultColor:color,TitleColor:null};if(this.OnUnchangeTitleColor(eventUnchangeKLine,sendData))color=sendData.TitleColor;}aryText.push({Text:text,Color:color});}//涨幅
|
|
5429
5430
|
if(item.YFClose>0&&MARKET_SUFFIX_NAME.IsChinaFutures(upperSymbol)){var value=(item.Close-item.YFClose)/item.YFClose*100;var color=this.GetColor(value,0);var text=g_JSChartLocalization.GetText('KTitle-Increase',this.LanguageID)+value.toFixed(2)+'%';aryText.push({Text:text,Color:color});}else if(item.YClose>0){var value=(item.Close-item.YClose)/item.YClose*100;var color=this.GetColor(value,0);var text=g_JSChartLocalization.GetText('KTitle-Increase',this.LanguageID)+value.toFixed(2)+'%';aryText.push({Text:text,Color:color});}if(IFrameSplitOperator.IsNumber(item.Vol))//成交量
|
|
@@ -6529,7 +6530,7 @@ LANGUAGE_TRADITIONAL_CHINESE_ID:2//繁体中文 TC
|
|
|
6529
6530
|
['MTitle-Close',{CN:'价:',EN:'C:',TC:'價'}],['MTitle-AvPrice',{CN:'均:',EN:'AC:',TC:'均'}],['MTitle-Increase',{CN:'幅:',EN:'I:',TC:'幅'}],['MTitle-Vol',{CN:'量:',EN:'V:',TC:'量'}],['MTitle-Amount',{CN:'额:',EN:'A:',TC:'額'}],['MTitle-Position',{CN:'持:',EN:'P:',TC:'持'}],["MTitle-UpdateTime",{CN:"更新:",EN:"Update:",TC:"更新:"}],//周期
|
|
6530
6531
|
['日线',{CN:'日线',EN:'1D',TC:'日綫'}],['周线',{CN:'周线',EN:'1W',TC:'周綫'}],['双周',{CN:'双周',EN:"2W",TC:'雙周'}],['月线',{CN:'月线',EN:'1M',TC:'月綫'}],["半年",{CN:'半年',EN:'HY',TC:'半年'}],['年线',{CN:'年线',EN:'1Y',TC:'年綫'}],['1分',{CN:'1分',EN:'1Min',TC:'1分'}],['5分',{CN:'5分',EN:'5Min',TC:'5分'}],['15分',{CN:'15分',EN:'15Min',TC:'15分'}],['30分',{CN:'30分',EN:'30Min',TC:'30分'}],['60分',{CN:'60分',EN:'60Min',TC:'60分'}],['季线',{CN:'季线',EN:'1Q',TC:'季綫'}],['分笔',{CN:'分笔',EN:'Tick',TC:'分筆'}],['2小时',{CN:'2小时',EN:'2H',TC:'2小時'}],['4小时',{CN:'4小时',EN:'4H',TC:'4小時'}],//复权
|
|
6531
6532
|
['不复权',{CN:'不复权',EN:'No Right',TC:'不復權'}],['前复权',{CN:'前复权',EN:'Pro Right',TC:'前復權'}],['后复权',{CN:'后复权',EN:'Post Right',TC:'后復權'}],//week
|
|
6532
|
-
['日',{CN:'日',EN:'Sun.',TC:'日'}],['一',{CN:'一',EN:'Mon.',TC:'壹'}],['二',{CN:'二',EN:'Tues.',TC:'貳'}],['三',{CN:'三',EN:'Wed.',TC:'叁'}],['四',{CN:'四',EN:'Thur.',TC:'肆'}],['五',{CN:'五',EN:'Fri.',TC:'伍'}],['六',{CN:'六',EN:'Sat.',TC:'陸'}],['1月',{CN:'1月',EN:'Jan',TC:'1月'}],['2月',{CN:'2月',EN:'Feb',TC:'2月'}],['3月',{CN:'3月',EN:'Mar',TC:'3月'}],['4月',{CN:'4月',EN:'Apr',TC:'4月'}],['5月',{CN:'5月',EN:'May',TC:'5月'}],['6月',{CN:'6月',EN:'Jun',TC:'6月'}],['7月',{CN:'7月',EN:'Jul',TC:'7月'}],['8月',{CN:'8月',EN:'Aug',TC:'8月'}],['9月',{CN:'9月',EN:'Sept',TC:'9月'}],['10月',{CN:'10月',EN:'Oct',TC:'10月'}],['11月',{CN:'11月',EN:'Nov',TC:'11月'}],['12月',{CN:'12月',EN:'Dec',TC:'12月'}],['自定义分钟',{CN:'分',EN:'Min',TC:'分'}],['自定义日线',{CN:'日',EN:'D',TC:'日'}],['自定义秒',{CN:'秒',EN:'S',TC:'秒'}],["MVol-Vol",{CN:"成交量",EN:"Volume",TC:'成交量'}],["MVol-Position",{CN:"持仓量",EN:"Position",TC:'持倉量'}],//深度图
|
|
6533
|
+
['日',{CN:'日',EN:'Sun.',TC:'日'}],['一',{CN:'一',EN:'Mon.',TC:'壹'}],['二',{CN:'二',EN:'Tues.',TC:'貳'}],['三',{CN:'三',EN:'Wed.',TC:'叁'}],['四',{CN:'四',EN:'Thur.',TC:'肆'}],['五',{CN:'五',EN:'Fri.',TC:'伍'}],['六',{CN:'六',EN:'Sat.',TC:'陸'}],['1月',{CN:'1月',EN:'Jan',TC:'1月'}],['2月',{CN:'2月',EN:'Feb',TC:'2月'}],['3月',{CN:'3月',EN:'Mar',TC:'3月'}],['4月',{CN:'4月',EN:'Apr',TC:'4月'}],['5月',{CN:'5月',EN:'May',TC:'5月'}],['6月',{CN:'6月',EN:'Jun',TC:'6月'}],['7月',{CN:'7月',EN:'Jul',TC:'7月'}],['8月',{CN:'8月',EN:'Aug',TC:'8月'}],['9月',{CN:'9月',EN:'Sept',TC:'9月'}],['10月',{CN:'10月',EN:'Oct',TC:'10月'}],['11月',{CN:'11月',EN:'Nov',TC:'11月'}],['12月',{CN:'12月',EN:'Dec',TC:'12月'}],['自定义分钟',{CN:'分',EN:'Min',TC:'分'}],['自定义日线',{CN:'日',EN:'D',TC:'日'}],['自定义秒',{CN:'秒',EN:'S',TC:'秒'}],['自定义毫秒',{CN:'毫秒',EN:'MS',TC:'毫秒'}],["MVol-Vol",{CN:"成交量",EN:"Volume",TC:'成交量'}],["MVol-Position",{CN:"持仓量",EN:"Position",TC:'持倉量'}],//深度图
|
|
6533
6534
|
["Depth-Price",{CN:"委托价",EN:"Price",TC:'委托價'}],["Depth-Sum",{CN:"累计",EN:"Sum",TC:'累計'}],//工具栏提示信息
|
|
6534
6535
|
["Toolbar-"+JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM,{CN:"调整指标参数",EN:"Change indicator parameters",TC:"调整指标参数"}],["Toolbar-"+JSCHART_BUTTON_ID.CHANGE_INDEX,{CN:"选择指标",EN:"Change indicator",TC:"切换指标"}],["Toolbar-"+JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW,{CN:"关闭窗口",EN:"Delete window",TC:"关闭指标窗口"}],["Toolbar-"+JSCHART_BUTTON_ID.OVERLAY_INDEX,{CN:"叠加指标",EN:"Overlay indicator",TC:"叠加指标"}],["Toolbar-"+JSCHART_BUTTON_ID.MODIFY_OVERLAY_INDEX_PARAM,{CN:"调整叠加指标参数",EN:"Change overlay indicator parameters",TC:"调整叠加指标参数"}],["Toolbar-"+JSCHART_BUTTON_ID.MAX_MIN_WINDOW,{CN:"最大化",EN:"Maximize",TC:"最大化"}],["Toolbar-"+JSCHART_BUTTON_ID.TITLE_WINDOW,{CN:"折叠窗口",EN:"Collapse window",TC:"折叠窗口"}],["Toolbar-"+JSCHART_BUTTON_ID.EXPORT_DATA,{CN:"数据导出",EN:"Export data",TC:"数据导出"}],["Toolbar-"+JSCHART_BUTTON_ID.CLOSE_BEFOREOPEN_ID,{CN:"关闭集合竞价",EN:"Close call auction",TC:"关闭集合竞价"}],["Toolbar-"+JSCHART_BUTTON_ID.CLOSE_OVERLAY_INDEX,{CN:"关闭叠加指标",EN:"Delte overlay indicator",TC:"关闭叠加指标"}],["Toolbar-"+JSCHART_BUTTON_ID.CHIP_RECENT,{CN:"近期成本分布",EN:"Recent chip",TC:"近期成本分布"}],["Toolbar-"+JSCHART_BUTTON_ID.CHIP_LONG,{CN:"远期成本分布",EN:"Long chip",TC:"远期成本分布"}],["Toolbar-"+JSCHART_BUTTON_ID.CHIP_DEFULT,{CN:"默认筹码分布",EN:"Default chip",TC:"默认筹码分布"}],["Toolbar-"+JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE,{CN:"删除",EN:"Delete",TC:"删除"}],["Toolbar-"+JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING,{CN:"设置",EN:"Setting",TC:"设置"}]]);this.GetText=function(key,language){var item=this.TextResource.get(key);if(!item)return'';switch(language){case JSCHART_LANGUAGE_ID.LANGUAGE_CHINESE_ID:return item.CN;case JSCHART_LANGUAGE_ID.LANGUAGE_ENGLISH_ID:return item.EN;case JSCHART_LANGUAGE_ID.LANGUAGE_TRADITIONAL_CHINESE_ID:return item.TC;default:return item.CN;}};this.SetTextResource=function(key,value){this.TextResource.set(key,value);};this.GetLanguageID=function(languageName){var languageID=null;switch(languageName){case'EN':languageID=JSCHART_LANGUAGE_ID.LANGUAGE_ENGLISH_ID;break;case'CN':languageID=JSCHART_LANGUAGE_ID.LANGUAGE_CHINESE_ID;break;case"TC":languageID=JSCHART_LANGUAGE_ID.LANGUAGE_TRADITIONAL_CHINESE_ID;break;default:break;}return languageID;};};var g_JSChartLocalization=new JSChartLocalization();/*
|
|
6535
6536
|
指标列表 指标信息都在这里,不够后面再加字段
|
|
@@ -12655,7 +12656,7 @@ function HQChartScriptWorker(){this.Create=function(){var _this60=this;addEventL
|
|
|
12655
12656
|
hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,Stock:{Symbol:message.Symbol},Request:{MaxDataCount:500,MaxMinuteDayCount:5},Period:message.Period,Right:message.Right,Data:hisData};if(IFrameSplitOperator.IsNumber(message.HQDataType))stockObj.HQDataType=message.HQDataType;indexConsole.ExecuteScript(stockObj);};this.OnRecvMessage=function(message){var data=message.data;if(!data)return;if(data.ID==JSCHART_WORKER_MESSAGE_ID.EXECUTE_SCRIPT){if(!IFrameSplitOperator.IsNonEmptyArray(data.AryIndex))return;for(var i=0;i<data.AryIndex.length;++i){var item=data.AryIndex[i];this.ExecuteScript(item,data);}}};this.OnExecuteFinish=function(data,indexInfo,jsExectute){var message={Data:data,IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.FINISH_EXECUTE_SCRIPT};postMessage(message);};this.OnExecuteError=function(error,indexInfo){var message={IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.ERROR_EXECUTE_SCRIPT,Error:error};postMessage(message);};}/********************************************************************************
|
|
12656
12657
|
* 版本信息输出
|
|
12657
12658
|
*
|
|
12658
|
-
*/var HQCHART_VERSION="1.1.
|
|
12659
|
+
*/var HQCHART_VERSION="1.1.12554";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
|
|
12659
12660
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
12660
12661
|
// BaseIndex:BaseIndex,
|
|
12661
12662
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
package/src/jscommon/umychart.js
CHANGED
|
@@ -20343,7 +20343,7 @@ function ChartData()
|
|
|
20343
20343
|
|
|
20344
20344
|
var result=[ {Name:"Date", Data:aryDate} ];
|
|
20345
20345
|
|
|
20346
|
-
if (ChartData.IsMinutePeriod(this.Period,true) || ChartData.IsSecondPeriod(this.Period))
|
|
20346
|
+
if (ChartData.IsMinutePeriod(this.Period,true) || ChartData.IsSecondPeriod(this.Period) || ChartData.IsMilliSecondPeriod(this.Period))
|
|
20347
20347
|
result.push({ Name:"Time", Data:aryTime} );
|
|
20348
20348
|
|
|
20349
20349
|
result.push
|
|
@@ -20510,7 +20510,7 @@ ChartData.IsSecondPeriod=function(period)
|
|
|
20510
20510
|
return false;
|
|
20511
20511
|
}
|
|
20512
20512
|
|
|
20513
|
-
var CUSTOM_MILLISECOND_PERIOD_START=
|
|
20513
|
+
var CUSTOM_MILLISECOND_PERIOD_START=50000, CUSTOM_MILLISECOND_PERIOD_END=60000;
|
|
20514
20514
|
ChartData.IsMilliSecondPeriod=function(period)
|
|
20515
20515
|
{
|
|
20516
20516
|
if (period>CUSTOM_MILLISECOND_PERIOD_START && period<=CUSTOM_MILLISECOND_PERIOD_END) return true;
|
|
@@ -37774,6 +37774,11 @@ function KLineTooltipPaint()
|
|
|
37774
37774
|
text=IFrameSplitOperator.FormatTimeString(item.Time,'HH:MM:SS');
|
|
37775
37775
|
aryText.push({ Text:text, Color:this.DateTimeColor });
|
|
37776
37776
|
}
|
|
37777
|
+
else if (ChartData.IsMilliSecondPeriod(period) && IFrameSplitOperator.IsNumber(item.Time))
|
|
37778
|
+
{
|
|
37779
|
+
text=IFrameSplitOperator.FormatTimeString(item.Time,'HH:MM:SS.fff');
|
|
37780
|
+
aryText.push({ Text:text, Color:this.DateTimeColor });
|
|
37781
|
+
}
|
|
37777
37782
|
|
|
37778
37783
|
if (IFrameSplitOperator.IsNumber(item.Open)) //开盘
|
|
37779
37784
|
{
|
|
@@ -40054,6 +40059,7 @@ function RectSelectPaint()
|
|
|
40054
40059
|
if (ChartData.IsDayPeriod(period, true)) return value.Date; //YYYYMMDD
|
|
40055
40060
|
else if (ChartData.IsMinutePeriod(period, true)) return value.Date*10000+value.Time; //YYYYMMDDHHMM
|
|
40056
40061
|
else if (ChartData.IsSecondPeriod(period) || ChartData.IsTickPeriod(period)) return value.Date*1000000+value.Time; //YYYYMMDDHHMMSS
|
|
40062
|
+
else if (ChartData.IsMilliSecondPeriod(period) ) return value.Date*1000000000+value.Time; //YYYYMMDDHHMMSSFFF
|
|
40057
40063
|
}
|
|
40058
40064
|
|
|
40059
40065
|
return null;
|
|
@@ -44034,6 +44040,44 @@ function FrameSplitKLineX()
|
|
|
44034
44040
|
}
|
|
44035
44041
|
}
|
|
44036
44042
|
|
|
44043
|
+
this.SplitMilliSecond=function()
|
|
44044
|
+
{
|
|
44045
|
+
this.Frame.VerticalInfo=[];
|
|
44046
|
+
var itemWidth=this.Frame.DistanceWidth+this.Frame.DataWidth;
|
|
44047
|
+
var xOffset=this.Frame.Data.DataOffset;
|
|
44048
|
+
var xPointCount=this.Frame.XPointCount;
|
|
44049
|
+
var textDistance=0;
|
|
44050
|
+
var barDistance=0;
|
|
44051
|
+
|
|
44052
|
+
for(var i=0, index=xOffset; i<xPointCount && index<this.Frame.Data.Data.length; ++i,++index)
|
|
44053
|
+
{
|
|
44054
|
+
textDistance+=itemWidth;
|
|
44055
|
+
++barDistance;
|
|
44056
|
+
var infoData=null;
|
|
44057
|
+
if (i==0)
|
|
44058
|
+
{
|
|
44059
|
+
var date=IFrameSplitOperator.FormatDateString(this.Frame.Data.Data[index].Date,'HH:MM:SS.fff');
|
|
44060
|
+
infoData={Value:index-xOffset, Text:date};
|
|
44061
|
+
}
|
|
44062
|
+
else if (textDistance>this.MinTextDistance && barDistance>=this.MinBarDistance)
|
|
44063
|
+
{
|
|
44064
|
+
var time=IFrameSplitOperator.FormatTimeString(this.Frame.Data.Data[index].Time,"HH:MM:SS.fff");
|
|
44065
|
+
infoData={Value:index-xOffset, Text:time};
|
|
44066
|
+
}
|
|
44067
|
+
|
|
44068
|
+
if (infoData)
|
|
44069
|
+
{
|
|
44070
|
+
var info= new CoordinateInfo();
|
|
44071
|
+
info.Value=infoData.Value;
|
|
44072
|
+
if (this.ShowText) info.Message[0]=infoData.Text;
|
|
44073
|
+
this.Frame.VerticalInfo.push(info);
|
|
44074
|
+
textDistance=0;
|
|
44075
|
+
barDistance=0;
|
|
44076
|
+
if (i==0) textDistance=-(this.MinTextDistance/2);
|
|
44077
|
+
}
|
|
44078
|
+
}
|
|
44079
|
+
}
|
|
44080
|
+
|
|
44037
44081
|
this.SplitDate=function() //根据日期分割
|
|
44038
44082
|
{
|
|
44039
44083
|
this.Frame.VerticalInfo=[];
|
|
@@ -44141,6 +44185,7 @@ function FrameSplitKLineX()
|
|
|
44141
44185
|
else if (ChartData.IsMinutePeriod(this.Period, true)) this.SplitDateTime();
|
|
44142
44186
|
else if (ChartData.IsSecondPeriod(this.Period)) this.SplitSecond();
|
|
44143
44187
|
else if (ChartData.IsTickPeriod(this.Period)) this.SplitSecond();
|
|
44188
|
+
else if (ChartData.IsMilliSecondPeriod(this.Period)) this.SplitMilliSecond();
|
|
44144
44189
|
else this.SplitDate();
|
|
44145
44190
|
|
|
44146
44191
|
if (this.GetEventCallback)
|
|
@@ -47393,6 +47438,10 @@ function HistoryDataStringFormat()
|
|
|
47393
47438
|
{
|
|
47394
47439
|
title2=IFrameSplitOperator.FormatTimeString(data.Time,'HH:MM:SS');
|
|
47395
47440
|
}
|
|
47441
|
+
else if (ChartData.IsMilliSecondPeriod(this.Value.ChartPaint.Data.Period))
|
|
47442
|
+
{
|
|
47443
|
+
title2=IFrameSplitOperator.FormatTimeString(data.Time,'HH:MM:SS.fff');
|
|
47444
|
+
}
|
|
47396
47445
|
|
|
47397
47446
|
var result={ AryText:null, Title:`${strDate}  ${title2}`, Name:null };
|
|
47398
47447
|
if (isTickPeriod)
|
|
@@ -48036,6 +48085,8 @@ function DynamicKLineTitlePainting()
|
|
|
48036
48085
|
periodName=(this.Data.Period-CUSTOM_DAY_PERIOD_START)+g_JSChartLocalization.GetText('自定义日线',this.LanguageID);
|
|
48037
48086
|
else if (this.Data.Period>CUSTOM_SECOND_PERIOD_START && this.Data.Period<=CUSTOM_SECOND_PERIOD_END)
|
|
48038
48087
|
periodName=(this.Data.Period-CUSTOM_SECOND_PERIOD_START)+g_JSChartLocalization.GetText('自定义秒',this.LanguageID);
|
|
48088
|
+
else if (this.Data.Period>CUSTOM_MILLISECOND_PERIOD_START&& this.Data.Period<=CUSTOM_MILLISECOND_PERIOD_END)
|
|
48089
|
+
periodName=(this.Data.Period-CUSTOM_MILLISECOND_PERIOD_START)+g_JSChartLocalization.GetText('自定义毫秒',this.LanguageID);
|
|
48039
48090
|
else
|
|
48040
48091
|
periodName=g_JSChartLocalization.GetText(ChartData.GetPeriodName(this.Data.Period),this.LanguageID);
|
|
48041
48092
|
var rightName=g_JSChartLocalization.GetText(RIGHT_NAME[this.Data.Right],this.LanguageID);
|
|
@@ -48065,7 +48116,7 @@ function DynamicKLineTitlePainting()
|
|
|
48065
48116
|
var text=IFrameSplitOperator.FormatTimeString(item.Time, "HH:MM:SS");
|
|
48066
48117
|
aryText.push({ Text:text, Color:this.DateTimeColor });
|
|
48067
48118
|
}
|
|
48068
|
-
else if (ChartData.IsMilliSecondPeriod(
|
|
48119
|
+
else if (ChartData.IsMilliSecondPeriod(this.Period) && IFrameSplitOperator.IsNumber(item.Time))
|
|
48069
48120
|
{
|
|
48070
48121
|
var text=IFrameSplitOperator.FormatTimeString(item.Time, "HH:MM:SS.fff");
|
|
48071
48122
|
aryText.push({ Text:text, Color:this.DateTimeColor });
|
|
@@ -62658,6 +62709,7 @@ function JSChartLocalization()
|
|
|
62658
62709
|
['自定义分钟', {CN:'分', EN:'Min', TC:'分'}],
|
|
62659
62710
|
['自定义日线', {CN:'日', EN:'D', TC:'日'}],
|
|
62660
62711
|
['自定义秒', {CN:'秒', EN:'S', TC:'秒'}],
|
|
62712
|
+
['自定义毫秒', {CN:'毫秒', EN:'MS', TC:'毫秒'}],
|
|
62661
62713
|
|
|
62662
62714
|
["MVol-Vol", {CN:"成交量", EN:"Volume", TC:'成交量'} ],
|
|
62663
62715
|
["MVol-Position", {CN:"持仓量", EN:"Position", TC:'持倉量'} ],
|
|
@@ -24423,7 +24423,7 @@ function ChartData()
|
|
|
24423
24423
|
|
|
24424
24424
|
var result=[ {Name:"Date", Data:aryDate} ];
|
|
24425
24425
|
|
|
24426
|
-
if (ChartData.IsMinutePeriod(this.Period,true) || ChartData.IsSecondPeriod(this.Period))
|
|
24426
|
+
if (ChartData.IsMinutePeriod(this.Period,true) || ChartData.IsSecondPeriod(this.Period) || ChartData.IsMilliSecondPeriod(this.Period))
|
|
24427
24427
|
result.push({ Name:"Time", Data:aryTime} );
|
|
24428
24428
|
|
|
24429
24429
|
result.push
|
|
@@ -24590,7 +24590,7 @@ ChartData.IsSecondPeriod=function(period)
|
|
|
24590
24590
|
return false;
|
|
24591
24591
|
}
|
|
24592
24592
|
|
|
24593
|
-
var CUSTOM_MILLISECOND_PERIOD_START=
|
|
24593
|
+
var CUSTOM_MILLISECOND_PERIOD_START=50000, CUSTOM_MILLISECOND_PERIOD_END=60000;
|
|
24594
24594
|
ChartData.IsMilliSecondPeriod=function(period)
|
|
24595
24595
|
{
|
|
24596
24596
|
if (period>CUSTOM_MILLISECOND_PERIOD_START && period<=CUSTOM_MILLISECOND_PERIOD_END) return true;
|
|
@@ -41854,6 +41854,11 @@ function KLineTooltipPaint()
|
|
|
41854
41854
|
text=IFrameSplitOperator.FormatTimeString(item.Time,'HH:MM:SS');
|
|
41855
41855
|
aryText.push({ Text:text, Color:this.DateTimeColor });
|
|
41856
41856
|
}
|
|
41857
|
+
else if (ChartData.IsMilliSecondPeriod(period) && IFrameSplitOperator.IsNumber(item.Time))
|
|
41858
|
+
{
|
|
41859
|
+
text=IFrameSplitOperator.FormatTimeString(item.Time,'HH:MM:SS.fff');
|
|
41860
|
+
aryText.push({ Text:text, Color:this.DateTimeColor });
|
|
41861
|
+
}
|
|
41857
41862
|
|
|
41858
41863
|
if (IFrameSplitOperator.IsNumber(item.Open)) //开盘
|
|
41859
41864
|
{
|
|
@@ -44134,6 +44139,7 @@ function RectSelectPaint()
|
|
|
44134
44139
|
if (ChartData.IsDayPeriod(period, true)) return value.Date; //YYYYMMDD
|
|
44135
44140
|
else if (ChartData.IsMinutePeriod(period, true)) return value.Date*10000+value.Time; //YYYYMMDDHHMM
|
|
44136
44141
|
else if (ChartData.IsSecondPeriod(period) || ChartData.IsTickPeriod(period)) return value.Date*1000000+value.Time; //YYYYMMDDHHMMSS
|
|
44142
|
+
else if (ChartData.IsMilliSecondPeriod(period) ) return value.Date*1000000000+value.Time; //YYYYMMDDHHMMSSFFF
|
|
44137
44143
|
}
|
|
44138
44144
|
|
|
44139
44145
|
return null;
|
|
@@ -48114,6 +48120,44 @@ function FrameSplitKLineX()
|
|
|
48114
48120
|
}
|
|
48115
48121
|
}
|
|
48116
48122
|
|
|
48123
|
+
this.SplitMilliSecond=function()
|
|
48124
|
+
{
|
|
48125
|
+
this.Frame.VerticalInfo=[];
|
|
48126
|
+
var itemWidth=this.Frame.DistanceWidth+this.Frame.DataWidth;
|
|
48127
|
+
var xOffset=this.Frame.Data.DataOffset;
|
|
48128
|
+
var xPointCount=this.Frame.XPointCount;
|
|
48129
|
+
var textDistance=0;
|
|
48130
|
+
var barDistance=0;
|
|
48131
|
+
|
|
48132
|
+
for(var i=0, index=xOffset; i<xPointCount && index<this.Frame.Data.Data.length; ++i,++index)
|
|
48133
|
+
{
|
|
48134
|
+
textDistance+=itemWidth;
|
|
48135
|
+
++barDistance;
|
|
48136
|
+
var infoData=null;
|
|
48137
|
+
if (i==0)
|
|
48138
|
+
{
|
|
48139
|
+
var date=IFrameSplitOperator.FormatDateString(this.Frame.Data.Data[index].Date,'HH:MM:SS.fff');
|
|
48140
|
+
infoData={Value:index-xOffset, Text:date};
|
|
48141
|
+
}
|
|
48142
|
+
else if (textDistance>this.MinTextDistance && barDistance>=this.MinBarDistance)
|
|
48143
|
+
{
|
|
48144
|
+
var time=IFrameSplitOperator.FormatTimeString(this.Frame.Data.Data[index].Time,"HH:MM:SS.fff");
|
|
48145
|
+
infoData={Value:index-xOffset, Text:time};
|
|
48146
|
+
}
|
|
48147
|
+
|
|
48148
|
+
if (infoData)
|
|
48149
|
+
{
|
|
48150
|
+
var info= new CoordinateInfo();
|
|
48151
|
+
info.Value=infoData.Value;
|
|
48152
|
+
if (this.ShowText) info.Message[0]=infoData.Text;
|
|
48153
|
+
this.Frame.VerticalInfo.push(info);
|
|
48154
|
+
textDistance=0;
|
|
48155
|
+
barDistance=0;
|
|
48156
|
+
if (i==0) textDistance=-(this.MinTextDistance/2);
|
|
48157
|
+
}
|
|
48158
|
+
}
|
|
48159
|
+
}
|
|
48160
|
+
|
|
48117
48161
|
this.SplitDate=function() //根据日期分割
|
|
48118
48162
|
{
|
|
48119
48163
|
this.Frame.VerticalInfo=[];
|
|
@@ -48221,6 +48265,7 @@ function FrameSplitKLineX()
|
|
|
48221
48265
|
else if (ChartData.IsMinutePeriod(this.Period, true)) this.SplitDateTime();
|
|
48222
48266
|
else if (ChartData.IsSecondPeriod(this.Period)) this.SplitSecond();
|
|
48223
48267
|
else if (ChartData.IsTickPeriod(this.Period)) this.SplitSecond();
|
|
48268
|
+
else if (ChartData.IsMilliSecondPeriod(this.Period)) this.SplitMilliSecond();
|
|
48224
48269
|
else this.SplitDate();
|
|
48225
48270
|
|
|
48226
48271
|
if (this.GetEventCallback)
|
|
@@ -51473,6 +51518,10 @@ function HistoryDataStringFormat()
|
|
|
51473
51518
|
{
|
|
51474
51519
|
title2=IFrameSplitOperator.FormatTimeString(data.Time,'HH:MM:SS');
|
|
51475
51520
|
}
|
|
51521
|
+
else if (ChartData.IsMilliSecondPeriod(this.Value.ChartPaint.Data.Period))
|
|
51522
|
+
{
|
|
51523
|
+
title2=IFrameSplitOperator.FormatTimeString(data.Time,'HH:MM:SS.fff');
|
|
51524
|
+
}
|
|
51476
51525
|
|
|
51477
51526
|
var result={ AryText:null, Title:`${strDate}  ${title2}`, Name:null };
|
|
51478
51527
|
if (isTickPeriod)
|
|
@@ -52116,6 +52165,8 @@ function DynamicKLineTitlePainting()
|
|
|
52116
52165
|
periodName=(this.Data.Period-CUSTOM_DAY_PERIOD_START)+g_JSChartLocalization.GetText('自定义日线',this.LanguageID);
|
|
52117
52166
|
else if (this.Data.Period>CUSTOM_SECOND_PERIOD_START && this.Data.Period<=CUSTOM_SECOND_PERIOD_END)
|
|
52118
52167
|
periodName=(this.Data.Period-CUSTOM_SECOND_PERIOD_START)+g_JSChartLocalization.GetText('自定义秒',this.LanguageID);
|
|
52168
|
+
else if (this.Data.Period>CUSTOM_MILLISECOND_PERIOD_START&& this.Data.Period<=CUSTOM_MILLISECOND_PERIOD_END)
|
|
52169
|
+
periodName=(this.Data.Period-CUSTOM_MILLISECOND_PERIOD_START)+g_JSChartLocalization.GetText('自定义毫秒',this.LanguageID);
|
|
52119
52170
|
else
|
|
52120
52171
|
periodName=g_JSChartLocalization.GetText(ChartData.GetPeriodName(this.Data.Period),this.LanguageID);
|
|
52121
52172
|
var rightName=g_JSChartLocalization.GetText(RIGHT_NAME[this.Data.Right],this.LanguageID);
|
|
@@ -52145,7 +52196,7 @@ function DynamicKLineTitlePainting()
|
|
|
52145
52196
|
var text=IFrameSplitOperator.FormatTimeString(item.Time, "HH:MM:SS");
|
|
52146
52197
|
aryText.push({ Text:text, Color:this.DateTimeColor });
|
|
52147
52198
|
}
|
|
52148
|
-
else if (ChartData.IsMilliSecondPeriod(
|
|
52199
|
+
else if (ChartData.IsMilliSecondPeriod(this.Period) && IFrameSplitOperator.IsNumber(item.Time))
|
|
52149
52200
|
{
|
|
52150
52201
|
var text=IFrameSplitOperator.FormatTimeString(item.Time, "HH:MM:SS.fff");
|
|
52151
52202
|
aryText.push({ Text:text, Color:this.DateTimeColor });
|
|
@@ -66738,6 +66789,7 @@ function JSChartLocalization()
|
|
|
66738
66789
|
['自定义分钟', {CN:'分', EN:'Min', TC:'分'}],
|
|
66739
66790
|
['自定义日线', {CN:'日', EN:'D', TC:'日'}],
|
|
66740
66791
|
['自定义秒', {CN:'秒', EN:'S', TC:'秒'}],
|
|
66792
|
+
['自定义毫秒', {CN:'毫秒', EN:'MS', TC:'毫秒'}],
|
|
66741
66793
|
|
|
66742
66794
|
["MVol-Vol", {CN:"成交量", EN:"Volume", TC:'成交量'} ],
|
|
66743
66795
|
["MVol-Position", {CN:"持仓量", EN:"Position", TC:'持倉量'} ],
|
|
@@ -129370,7 +129422,7 @@ function ScrollBarBGChart()
|
|
|
129370
129422
|
|
|
129371
129423
|
|
|
129372
129424
|
|
|
129373
|
-
var HQCHART_VERSION="1.1.
|
|
129425
|
+
var HQCHART_VERSION="1.1.12554";
|
|
129374
129426
|
|
|
129375
129427
|
function PrintHQChartVersion()
|
|
129376
129428
|
{
|
|
@@ -24467,7 +24467,7 @@ function ChartData()
|
|
|
24467
24467
|
|
|
24468
24468
|
var result=[ {Name:"Date", Data:aryDate} ];
|
|
24469
24469
|
|
|
24470
|
-
if (ChartData.IsMinutePeriod(this.Period,true) || ChartData.IsSecondPeriod(this.Period))
|
|
24470
|
+
if (ChartData.IsMinutePeriod(this.Period,true) || ChartData.IsSecondPeriod(this.Period) || ChartData.IsMilliSecondPeriod(this.Period))
|
|
24471
24471
|
result.push({ Name:"Time", Data:aryTime} );
|
|
24472
24472
|
|
|
24473
24473
|
result.push
|
|
@@ -24634,7 +24634,7 @@ ChartData.IsSecondPeriod=function(period)
|
|
|
24634
24634
|
return false;
|
|
24635
24635
|
}
|
|
24636
24636
|
|
|
24637
|
-
var CUSTOM_MILLISECOND_PERIOD_START=
|
|
24637
|
+
var CUSTOM_MILLISECOND_PERIOD_START=50000, CUSTOM_MILLISECOND_PERIOD_END=60000;
|
|
24638
24638
|
ChartData.IsMilliSecondPeriod=function(period)
|
|
24639
24639
|
{
|
|
24640
24640
|
if (period>CUSTOM_MILLISECOND_PERIOD_START && period<=CUSTOM_MILLISECOND_PERIOD_END) return true;
|
|
@@ -41898,6 +41898,11 @@ function KLineTooltipPaint()
|
|
|
41898
41898
|
text=IFrameSplitOperator.FormatTimeString(item.Time,'HH:MM:SS');
|
|
41899
41899
|
aryText.push({ Text:text, Color:this.DateTimeColor });
|
|
41900
41900
|
}
|
|
41901
|
+
else if (ChartData.IsMilliSecondPeriod(period) && IFrameSplitOperator.IsNumber(item.Time))
|
|
41902
|
+
{
|
|
41903
|
+
text=IFrameSplitOperator.FormatTimeString(item.Time,'HH:MM:SS.fff');
|
|
41904
|
+
aryText.push({ Text:text, Color:this.DateTimeColor });
|
|
41905
|
+
}
|
|
41901
41906
|
|
|
41902
41907
|
if (IFrameSplitOperator.IsNumber(item.Open)) //开盘
|
|
41903
41908
|
{
|
|
@@ -44178,6 +44183,7 @@ function RectSelectPaint()
|
|
|
44178
44183
|
if (ChartData.IsDayPeriod(period, true)) return value.Date; //YYYYMMDD
|
|
44179
44184
|
else if (ChartData.IsMinutePeriod(period, true)) return value.Date*10000+value.Time; //YYYYMMDDHHMM
|
|
44180
44185
|
else if (ChartData.IsSecondPeriod(period) || ChartData.IsTickPeriod(period)) return value.Date*1000000+value.Time; //YYYYMMDDHHMMSS
|
|
44186
|
+
else if (ChartData.IsMilliSecondPeriod(period) ) return value.Date*1000000000+value.Time; //YYYYMMDDHHMMSSFFF
|
|
44181
44187
|
}
|
|
44182
44188
|
|
|
44183
44189
|
return null;
|
|
@@ -48158,6 +48164,44 @@ function FrameSplitKLineX()
|
|
|
48158
48164
|
}
|
|
48159
48165
|
}
|
|
48160
48166
|
|
|
48167
|
+
this.SplitMilliSecond=function()
|
|
48168
|
+
{
|
|
48169
|
+
this.Frame.VerticalInfo=[];
|
|
48170
|
+
var itemWidth=this.Frame.DistanceWidth+this.Frame.DataWidth;
|
|
48171
|
+
var xOffset=this.Frame.Data.DataOffset;
|
|
48172
|
+
var xPointCount=this.Frame.XPointCount;
|
|
48173
|
+
var textDistance=0;
|
|
48174
|
+
var barDistance=0;
|
|
48175
|
+
|
|
48176
|
+
for(var i=0, index=xOffset; i<xPointCount && index<this.Frame.Data.Data.length; ++i,++index)
|
|
48177
|
+
{
|
|
48178
|
+
textDistance+=itemWidth;
|
|
48179
|
+
++barDistance;
|
|
48180
|
+
var infoData=null;
|
|
48181
|
+
if (i==0)
|
|
48182
|
+
{
|
|
48183
|
+
var date=IFrameSplitOperator.FormatDateString(this.Frame.Data.Data[index].Date,'HH:MM:SS.fff');
|
|
48184
|
+
infoData={Value:index-xOffset, Text:date};
|
|
48185
|
+
}
|
|
48186
|
+
else if (textDistance>this.MinTextDistance && barDistance>=this.MinBarDistance)
|
|
48187
|
+
{
|
|
48188
|
+
var time=IFrameSplitOperator.FormatTimeString(this.Frame.Data.Data[index].Time,"HH:MM:SS.fff");
|
|
48189
|
+
infoData={Value:index-xOffset, Text:time};
|
|
48190
|
+
}
|
|
48191
|
+
|
|
48192
|
+
if (infoData)
|
|
48193
|
+
{
|
|
48194
|
+
var info= new CoordinateInfo();
|
|
48195
|
+
info.Value=infoData.Value;
|
|
48196
|
+
if (this.ShowText) info.Message[0]=infoData.Text;
|
|
48197
|
+
this.Frame.VerticalInfo.push(info);
|
|
48198
|
+
textDistance=0;
|
|
48199
|
+
barDistance=0;
|
|
48200
|
+
if (i==0) textDistance=-(this.MinTextDistance/2);
|
|
48201
|
+
}
|
|
48202
|
+
}
|
|
48203
|
+
}
|
|
48204
|
+
|
|
48161
48205
|
this.SplitDate=function() //根据日期分割
|
|
48162
48206
|
{
|
|
48163
48207
|
this.Frame.VerticalInfo=[];
|
|
@@ -48265,6 +48309,7 @@ function FrameSplitKLineX()
|
|
|
48265
48309
|
else if (ChartData.IsMinutePeriod(this.Period, true)) this.SplitDateTime();
|
|
48266
48310
|
else if (ChartData.IsSecondPeriod(this.Period)) this.SplitSecond();
|
|
48267
48311
|
else if (ChartData.IsTickPeriod(this.Period)) this.SplitSecond();
|
|
48312
|
+
else if (ChartData.IsMilliSecondPeriod(this.Period)) this.SplitMilliSecond();
|
|
48268
48313
|
else this.SplitDate();
|
|
48269
48314
|
|
|
48270
48315
|
if (this.GetEventCallback)
|
|
@@ -51517,6 +51562,10 @@ function HistoryDataStringFormat()
|
|
|
51517
51562
|
{
|
|
51518
51563
|
title2=IFrameSplitOperator.FormatTimeString(data.Time,'HH:MM:SS');
|
|
51519
51564
|
}
|
|
51565
|
+
else if (ChartData.IsMilliSecondPeriod(this.Value.ChartPaint.Data.Period))
|
|
51566
|
+
{
|
|
51567
|
+
title2=IFrameSplitOperator.FormatTimeString(data.Time,'HH:MM:SS.fff');
|
|
51568
|
+
}
|
|
51520
51569
|
|
|
51521
51570
|
var result={ AryText:null, Title:`${strDate}  ${title2}`, Name:null };
|
|
51522
51571
|
if (isTickPeriod)
|
|
@@ -52160,6 +52209,8 @@ function DynamicKLineTitlePainting()
|
|
|
52160
52209
|
periodName=(this.Data.Period-CUSTOM_DAY_PERIOD_START)+g_JSChartLocalization.GetText('自定义日线',this.LanguageID);
|
|
52161
52210
|
else if (this.Data.Period>CUSTOM_SECOND_PERIOD_START && this.Data.Period<=CUSTOM_SECOND_PERIOD_END)
|
|
52162
52211
|
periodName=(this.Data.Period-CUSTOM_SECOND_PERIOD_START)+g_JSChartLocalization.GetText('自定义秒',this.LanguageID);
|
|
52212
|
+
else if (this.Data.Period>CUSTOM_MILLISECOND_PERIOD_START&& this.Data.Period<=CUSTOM_MILLISECOND_PERIOD_END)
|
|
52213
|
+
periodName=(this.Data.Period-CUSTOM_MILLISECOND_PERIOD_START)+g_JSChartLocalization.GetText('自定义毫秒',this.LanguageID);
|
|
52163
52214
|
else
|
|
52164
52215
|
periodName=g_JSChartLocalization.GetText(ChartData.GetPeriodName(this.Data.Period),this.LanguageID);
|
|
52165
52216
|
var rightName=g_JSChartLocalization.GetText(RIGHT_NAME[this.Data.Right],this.LanguageID);
|
|
@@ -52189,7 +52240,7 @@ function DynamicKLineTitlePainting()
|
|
|
52189
52240
|
var text=IFrameSplitOperator.FormatTimeString(item.Time, "HH:MM:SS");
|
|
52190
52241
|
aryText.push({ Text:text, Color:this.DateTimeColor });
|
|
52191
52242
|
}
|
|
52192
|
-
else if (ChartData.IsMilliSecondPeriod(
|
|
52243
|
+
else if (ChartData.IsMilliSecondPeriod(this.Period) && IFrameSplitOperator.IsNumber(item.Time))
|
|
52193
52244
|
{
|
|
52194
52245
|
var text=IFrameSplitOperator.FormatTimeString(item.Time, "HH:MM:SS.fff");
|
|
52195
52246
|
aryText.push({ Text:text, Color:this.DateTimeColor });
|
|
@@ -66782,6 +66833,7 @@ function JSChartLocalization()
|
|
|
66782
66833
|
['自定义分钟', {CN:'分', EN:'Min', TC:'分'}],
|
|
66783
66834
|
['自定义日线', {CN:'日', EN:'D', TC:'日'}],
|
|
66784
66835
|
['自定义秒', {CN:'秒', EN:'S', TC:'秒'}],
|
|
66836
|
+
['自定义毫秒', {CN:'毫秒', EN:'MS', TC:'毫秒'}],
|
|
66785
66837
|
|
|
66786
66838
|
["MVol-Vol", {CN:"成交量", EN:"Volume", TC:'成交量'} ],
|
|
66787
66839
|
["MVol-Position", {CN:"持仓量", EN:"Position", TC:'持倉量'} ],
|
|
@@ -129523,7 +129575,7 @@ function HQChartScriptWorker()
|
|
|
129523
129575
|
|
|
129524
129576
|
|
|
129525
129577
|
|
|
129526
|
-
var HQCHART_VERSION="1.1.
|
|
129578
|
+
var HQCHART_VERSION="1.1.12554";
|
|
129527
129579
|
|
|
129528
129580
|
function PrintHQChartVersion()
|
|
129529
129581
|
{
|