hqchart 1.1.12549 → 1.1.12553

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.
@@ -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=40000,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=分笔
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;//昨收
@@ -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(self.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;//非交易日 没数据 不显示
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
  指标列表 指标信息都在这里,不够后面再加字段
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "hqchart",
3
3
  "description": "stock chart",
4
4
  "author": "jones2000",
5
- "version": "1.1.12549",
5
+ "version": "1.1.12553",
6
6
  "main": "lib/main.js",
7
7
  "private": false,
8
8
  "license": "Apache License 2.0",
@@ -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=40000, CUSTOM_MILLISECOND_PERIOD_END=60000;
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)
@@ -48036,6 +48081,8 @@ function DynamicKLineTitlePainting()
48036
48081
  periodName=(this.Data.Period-CUSTOM_DAY_PERIOD_START)+g_JSChartLocalization.GetText('自定义日线',this.LanguageID);
48037
48082
  else if (this.Data.Period>CUSTOM_SECOND_PERIOD_START && this.Data.Period<=CUSTOM_SECOND_PERIOD_END)
48038
48083
  periodName=(this.Data.Period-CUSTOM_SECOND_PERIOD_START)+g_JSChartLocalization.GetText('自定义秒',this.LanguageID);
48084
+ else if (this.Data.Period>CUSTOM_MILLISECOND_PERIOD_START&& this.Data.Period<=CUSTOM_MILLISECOND_PERIOD_END)
48085
+ periodName=(this.Data.Period-CUSTOM_MILLISECOND_PERIOD_START)+g_JSChartLocalization.GetText('自定义毫秒',this.LanguageID);
48039
48086
  else
48040
48087
  periodName=g_JSChartLocalization.GetText(ChartData.GetPeriodName(this.Data.Period),this.LanguageID);
48041
48088
  var rightName=g_JSChartLocalization.GetText(RIGHT_NAME[this.Data.Right],this.LanguageID);
@@ -48065,7 +48112,7 @@ function DynamicKLineTitlePainting()
48065
48112
  var text=IFrameSplitOperator.FormatTimeString(item.Time, "HH:MM:SS");
48066
48113
  aryText.push({ Text:text, Color:this.DateTimeColor });
48067
48114
  }
48068
- else if (ChartData.IsMilliSecondPeriod(self.Period) && IFrameSplitOperator.IsNumber(item.Time))
48115
+ else if (ChartData.IsMilliSecondPeriod(this.Period) && IFrameSplitOperator.IsNumber(item.Time))
48069
48116
  {
48070
48117
  var text=IFrameSplitOperator.FormatTimeString(item.Time, "HH:MM:SS.fff");
48071
48118
  aryText.push({ Text:text, Color:this.DateTimeColor });
@@ -62658,6 +62705,7 @@ function JSChartLocalization()
62658
62705
  ['自定义分钟', {CN:'分', EN:'Min', TC:'分'}],
62659
62706
  ['自定义日线', {CN:'日', EN:'D', TC:'日'}],
62660
62707
  ['自定义秒', {CN:'秒', EN:'S', TC:'秒'}],
62708
+ ['自定义毫秒', {CN:'毫秒', EN:'MS', TC:'毫秒'}],
62661
62709
 
62662
62710
  ["MVol-Vol", {CN:"成交量", EN:"Volume", TC:'成交量'} ],
62663
62711
  ["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=40000, CUSTOM_MILLISECOND_PERIOD_END=60000;
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)
@@ -52116,6 +52161,8 @@ function DynamicKLineTitlePainting()
52116
52161
  periodName=(this.Data.Period-CUSTOM_DAY_PERIOD_START)+g_JSChartLocalization.GetText('自定义日线',this.LanguageID);
52117
52162
  else if (this.Data.Period>CUSTOM_SECOND_PERIOD_START && this.Data.Period<=CUSTOM_SECOND_PERIOD_END)
52118
52163
  periodName=(this.Data.Period-CUSTOM_SECOND_PERIOD_START)+g_JSChartLocalization.GetText('自定义秒',this.LanguageID);
52164
+ else if (this.Data.Period>CUSTOM_MILLISECOND_PERIOD_START&& this.Data.Period<=CUSTOM_MILLISECOND_PERIOD_END)
52165
+ periodName=(this.Data.Period-CUSTOM_MILLISECOND_PERIOD_START)+g_JSChartLocalization.GetText('自定义毫秒',this.LanguageID);
52119
52166
  else
52120
52167
  periodName=g_JSChartLocalization.GetText(ChartData.GetPeriodName(this.Data.Period),this.LanguageID);
52121
52168
  var rightName=g_JSChartLocalization.GetText(RIGHT_NAME[this.Data.Right],this.LanguageID);
@@ -52145,7 +52192,7 @@ function DynamicKLineTitlePainting()
52145
52192
  var text=IFrameSplitOperator.FormatTimeString(item.Time, "HH:MM:SS");
52146
52193
  aryText.push({ Text:text, Color:this.DateTimeColor });
52147
52194
  }
52148
- else if (ChartData.IsMilliSecondPeriod(self.Period) && IFrameSplitOperator.IsNumber(item.Time))
52195
+ else if (ChartData.IsMilliSecondPeriod(this.Period) && IFrameSplitOperator.IsNumber(item.Time))
52149
52196
  {
52150
52197
  var text=IFrameSplitOperator.FormatTimeString(item.Time, "HH:MM:SS.fff");
52151
52198
  aryText.push({ Text:text, Color:this.DateTimeColor });
@@ -66738,6 +66785,7 @@ function JSChartLocalization()
66738
66785
  ['自定义分钟', {CN:'分', EN:'Min', TC:'分'}],
66739
66786
  ['自定义日线', {CN:'日', EN:'D', TC:'日'}],
66740
66787
  ['自定义秒', {CN:'秒', EN:'S', TC:'秒'}],
66788
+ ['自定义毫秒', {CN:'毫秒', EN:'MS', TC:'毫秒'}],
66741
66789
 
66742
66790
  ["MVol-Vol", {CN:"成交量", EN:"Volume", TC:'成交量'} ],
66743
66791
  ["MVol-Position", {CN:"持仓量", EN:"Position", TC:'持倉量'} ],
@@ -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=40000, CUSTOM_MILLISECOND_PERIOD_END=60000;
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)
@@ -52160,6 +52205,8 @@ function DynamicKLineTitlePainting()
52160
52205
  periodName=(this.Data.Period-CUSTOM_DAY_PERIOD_START)+g_JSChartLocalization.GetText('自定义日线',this.LanguageID);
52161
52206
  else if (this.Data.Period>CUSTOM_SECOND_PERIOD_START && this.Data.Period<=CUSTOM_SECOND_PERIOD_END)
52162
52207
  periodName=(this.Data.Period-CUSTOM_SECOND_PERIOD_START)+g_JSChartLocalization.GetText('自定义秒',this.LanguageID);
52208
+ else if (this.Data.Period>CUSTOM_MILLISECOND_PERIOD_START&& this.Data.Period<=CUSTOM_MILLISECOND_PERIOD_END)
52209
+ periodName=(this.Data.Period-CUSTOM_MILLISECOND_PERIOD_START)+g_JSChartLocalization.GetText('自定义毫秒',this.LanguageID);
52163
52210
  else
52164
52211
  periodName=g_JSChartLocalization.GetText(ChartData.GetPeriodName(this.Data.Period),this.LanguageID);
52165
52212
  var rightName=g_JSChartLocalization.GetText(RIGHT_NAME[this.Data.Right],this.LanguageID);
@@ -52189,7 +52236,7 @@ function DynamicKLineTitlePainting()
52189
52236
  var text=IFrameSplitOperator.FormatTimeString(item.Time, "HH:MM:SS");
52190
52237
  aryText.push({ Text:text, Color:this.DateTimeColor });
52191
52238
  }
52192
- else if (ChartData.IsMilliSecondPeriod(self.Period) && IFrameSplitOperator.IsNumber(item.Time))
52239
+ else if (ChartData.IsMilliSecondPeriod(this.Period) && IFrameSplitOperator.IsNumber(item.Time))
52193
52240
  {
52194
52241
  var text=IFrameSplitOperator.FormatTimeString(item.Time, "HH:MM:SS.fff");
52195
52242
  aryText.push({ Text:text, Color:this.DateTimeColor });
@@ -66782,6 +66829,7 @@ function JSChartLocalization()
66782
66829
  ['自定义分钟', {CN:'分', EN:'Min', TC:'分'}],
66783
66830
  ['自定义日线', {CN:'日', EN:'D', TC:'日'}],
66784
66831
  ['自定义秒', {CN:'秒', EN:'S', TC:'秒'}],
66832
+ ['自定义毫秒', {CN:'毫秒', EN:'MS', TC:'毫秒'}],
66785
66833
 
66786
66834
  ["MVol-Vol", {CN:"成交量", EN:"Volume", TC:'成交量'} ],
66787
66835
  ["MVol-Position", {CN:"持仓量", EN:"Position", TC:'持倉量'} ],