hqchart 1.1.12540 → 1.1.12549

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.
@@ -1378,7 +1378,8 @@ if(option.PageInfo)chart.SetPageInfo(option.PageInfo);chart.Create(windowsCount,
1378
1378
  if(option.CorssCursorInfo){var item=option.CorssCursorInfo;if(!isNaN(option.CorssCursorInfo.Left))chart.ChartCorssCursor.ShowTextMode.Left=option.CorssCursorInfo.Left;if(!isNaN(option.CorssCursorInfo.Right))chart.ChartCorssCursor.ShowTextMode.Right=option.CorssCursorInfo.Right;if(!isNaN(option.CorssCursorInfo.Bottom))chart.ChartCorssCursor.ShowTextMode.Bottom=option.CorssCursorInfo.Bottom;if(option.CorssCursorInfo.IsShowCorss===false)chart.ChartCorssCursor.IsShowCorss=option.CorssCursorInfo.IsShowCorss;if(option.CorssCursorInfo.RightTextFormat>0)chart.ChartCorssCursor.TextFormat.Right=option.CorssCursorInfo.RightTextFormat;if(option.CorssCursorInfo.IsOnlyDrawMinute==true)chart.ChartCorssCursor.IsOnlyDrawMinute=option.CorssCursorInfo.IsOnlyDrawMinute;//Y轴显示收盘价
1379
1379
  if(IFrameSplitOperator.IsBool(option.CorssCursorInfo.IsFixXLastTime))chart.ChartCorssCursor.IsFixXLastTime=option.CorssCursorInfo.IsFixXLastTime;if(item.RightButton){if(IFrameSplitOperator.IsBool(item.RightButton.Enable))chart.ChartCorssCursor.RightButton.Enable=item.RightButton.Enable;}if(IFrameSplitOperator.IsNumber(item.PriceFormatType))chart.ChartCorssCursor.StringFormatY.PriceFormatType=item.PriceFormatType;if(IFrameSplitOperator.IsNumber(item.DataFormatType))chart.ChartCorssCursor.StringFormatY.DataFormatType=item.DataFormatType;if(IFrameSplitOperator.IsNumber(item.HPenType))chart.ChartCorssCursor.HPenType=item.HPenType;if(IFrameSplitOperator.IsNumber(item.VPenType))chart.ChartCorssCursor.VPenType=item.VPenType;}if(option.MinuteInfo)chart.CreateMinuteInfo(option.MinuteInfo);if(option.IsShowRightMenu==true)chart.RightMenu=new MinuteRightMenu(this.DivElement);if(IFrameSplitOperator.IsNumber(option.DayCount))chart.DayCount=option.DayCount;this.SetChartBorder(chart,option);if(option.SplashTitle)chart.ChartSplashPaint.SplashTitle=option.SplashTitle;if(IFrameSplitOperator.IsBool(option.EnableBorderDrag)){chart.EnableBorderDrag=option.EnableBorderDrag;}this.AdjustChartBorder(chart);if(option.Frame){for(var i=0;i<option.Frame.length;++i){var item=option.Frame[i];if(!chart.Frame.SubFrame[i])continue;if(IFrameSplitOperator.IsNumber(item.SplitCount))chart.Frame.SubFrame[i].Frame.YSplitOperator.SplitCount=item.SplitCount;if(item.StringFormat)chart.Frame.SubFrame[i].Frame.YSplitOperator.StringFormat=item.StringFormat;if(IFrameSplitOperator.IsNumber(item.SplitType)){chart.Frame.SubFrame[i].Frame.YSplitOperator.SplitType=item.SplitType;chart.Frame.SubFrame[i].Frame.YSplitOperator.DefaultSplitType=item.SplitType;}if(item.IsShowLeftText==false){chart.Frame.SubFrame[i].Frame.IsShowYText[0]=item.IsShowLeftText;chart.Frame.SubFrame[i].Frame.YSplitOperator.IsShowLeftText=item.IsShowLeftText;//显示左边刻度
1380
1380
  }if(item.IsShowRightText==false){chart.Frame.SubFrame[i].Frame.IsShowYText[1]=item.IsShowRightText;chart.Frame.SubFrame[i].Frame.YSplitOperator.IsShowRightText=item.IsShowRightText;//显示右边刻度
1381
- }if(item.Height>=0)chart.Frame.SubFrame[i].Height=item.Height;if(item.Custom)chart.Frame.SubFrame[i].Frame.YSplitOperator.Custom=item.Custom;if(item.RightTextFormat>0)chart.Frame.SubFrame[i].Frame.YSplitOperator.RightTextFormat=item.RightTextFormat;if(IFrameSplitOperator.IsNumber(item.TitleHeight))chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;if(IFrameSplitOperator.IsNumber(item.BorderLine))chart.Frame.SubFrame[i].Frame.BorderLine=item.BorderLine;if(IFrameSplitOperator.IsBool(item.EnableRemoveZero))chart.Frame.SubFrame[i].Frame.YSplitOperator.EnableRemoveZero=item.EnableRemoveZero;if(IFrameSplitOperator.IsNumber(item.FloatPrecision))chart.Frame.SubFrame[i].Frame.YSplitOperator.FloatPrecision=item.FloatPrecision;if(IFrameSplitOperator.IsBool(item.IsShowXLine))chart.Frame.SubFrame[i].Frame.IsShowXLine=item.IsShowXLine;if(IFrameSplitOperator.IsBool(item.IsShowYLine))chart.Frame.SubFrame[i].Frame.IsShowYLine=item.IsShowYLine;if(IFrameSplitOperator.IsNumber(item.YTextBaseline))chart.Frame.SubFrame[i].Frame.YTextBaseline=item.YTextBaseline;if(item.TopSpace>=0)chart.Frame.SubFrame[i].Frame.ChartBorder.TopSpace=item.TopSpace;if(item.BottomSpace>=0)chart.Frame.SubFrame[i].Frame.ChartBorder.BottomSpace=item.BottomSpace;}chart.UpdateXShowText();}if(option.ExtendChart){for(var i=0;i<option.ExtendChart.length;++i){var item=option.ExtendChart[i];chart.CreateExtendChart(item.Name,item);}}//叠加股票
1381
+ }if(item.Height>=0)chart.Frame.SubFrame[i].Height=item.Height;if(item.Custom)chart.Frame.SubFrame[i].Frame.YSplitOperator.Custom=item.Custom;if(item.RightTextFormat>0)chart.Frame.SubFrame[i].Frame.YSplitOperator.RightTextFormat=item.RightTextFormat;if(IFrameSplitOperator.IsNumber(item.TitleHeight))chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;if(IFrameSplitOperator.IsNumber(item.BorderLine))chart.Frame.SubFrame[i].Frame.BorderLine=item.BorderLine;if(IFrameSplitOperator.IsBool(item.EnableRemoveZero))chart.Frame.SubFrame[i].Frame.YSplitOperator.EnableRemoveZero=item.EnableRemoveZero;if(IFrameSplitOperator.IsNumber(item.FloatPrecision))chart.Frame.SubFrame[i].Frame.YSplitOperator.FloatPrecision=item.FloatPrecision;if(IFrameSplitOperator.IsBool(item.IsShowXLine))chart.Frame.SubFrame[i].Frame.IsShowXLine=item.IsShowXLine;if(IFrameSplitOperator.IsBool(item.IsShowYLine))chart.Frame.SubFrame[i].Frame.IsShowYLine=item.IsShowYLine;if(IFrameSplitOperator.IsNumber(item.YTextBaseline))chart.Frame.SubFrame[i].Frame.YTextBaseline=item.YTextBaseline;if(item.TopSpace>=0)chart.Frame.SubFrame[i].Frame.ChartBorder.TopSpace=item.TopSpace;if(item.BottomSpace>=0)chart.Frame.SubFrame[i].Frame.ChartBorder.BottomSpace=item.BottomSpace;//是否显示关闭集合竞价按钮
1382
+ if(IFrameSplitOperator.IsNumber(item.CloseBeforeButton))chart.Frame.SubFrame[i].Frame.IsShowCloseButton=item.CloseBeforeButton;}chart.UpdateXShowText();}if(option.ExtendChart){for(var i=0;i<option.ExtendChart.length;++i){var item=option.ExtendChart[i];chart.CreateExtendChart(item.Name,item);}}//叠加股票
1382
1383
  if(option.Overlay){for(var i=0;i<option.Overlay.length;++i){var item=option.Overlay[i];chart.OverlaySymbol(item.Symbol,item);}}if(option.MinuteLine){if(option.MinuteLine.IsDrawAreaPrice==false)chart.ChartPaint[0].IsDrawArea=false;if(option.MinuteLine.IsShowLead==false)chart.IsShowLead=false;if(option.MinuteLine.IsShowAveragePrice==false){chart.ChartPaint[1].IsShow=false;chart.TitlePaint[0].IsShowAveragePrice=false;//标题栏均线也不显示
1383
1384
  for(var i=0;i<chart.ExtendChartPaint.length;++i){var item=chart.ExtendChartPaint[i];if(item.ClassName=="MinuteTooltipPaint")item.IsShowAveragePrice=false;}}if(option.MinuteLine.SplitType>0)chart.Frame.SubFrame[0].Frame.YSplitOperator.SplitType=option.MinuteLine.SplitType;}if(option.MinuteVol){var item=option.MinuteVol;if(IFrameSplitOperator.IsNumber(item.BarColorType))chart.ChartPaint[2].BarColorType=item.BarColorType;}if(option.MinuteTitle){var item=option.MinuteTitle;if(IFrameSplitOperator.IsBool(item.IsShowName))chart.TitlePaint[0].IsShowName=item.IsShowName;if(IFrameSplitOperator.IsBool(item.IsShowDate))chart.TitlePaint[0].IsShowDate=item.IsShowDate;if(IFrameSplitOperator.IsBool(item.IsShowTime))chart.TitlePaint[0].IsShowTime=item.IsShowTime;if(IFrameSplitOperator.IsBool(item.IsTitleShowLatestData))chart.IsTitleShowLatestData=item.IsTitleShowLatestData;if(IFrameSplitOperator.IsBool(item.IsAlwaysShowLastData))chart.TitlePaint[0].IsAlwaysShowLastData=item.IsAlwaysShowLastData;if(IFrameSplitOperator.IsNumber(item.ShowLastDataFormat))chart.TitlePaint[0].ShowLastDataFormat=item.ShowLastDataFormat;if(IFrameSplitOperator.IsNumber(item.TitleBaseLine))chart.TitlePaint[0].TitleBaseLine=item.TitleBaseLine;if(item.TimeFormat)chart.TitlePaint[0].TimeFormat=item.TimeFormat;}if(option.CorssCursorTouchEnd===true)chart.CorssCursorTouchEnd=option.CorssCursorTouchEnd;if(option.IsShowBeforeData===true)chart.IsShowBeforeData=option.IsShowBeforeData;//分钟数据指标从第3个指标窗口设置
1384
1385
  if(IFrameSplitOperator.IsNonEmptyArray(option.Windows)){var scriptData=new JSIndexScript();for(var i=0;i<option.Windows.length;++i){var index=2+i;var item=option.Windows[i];if(item.Script){chart.WindowIndex[index]=new ScriptIndex(item.Name,item.Script,item.Args,item);//脚本执行
@@ -3101,7 +3102,7 @@ return result;}result.splice(0,0,{Name:"Date",Data:aryDate},{Name:"Time",Data:ar
3101
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 是否包含基础日线周期)
3102
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分钟周期)
3103
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)
3104
- 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;};//是否是分笔图 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=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
3106
  ChartData.IsTickPeriod=function(period){return period==10;};//获取周期名字
3106
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()//提示信息
3107
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;}//图形外部挂接
@@ -5256,7 +5257,7 @@ this.GetExtendPaintData(defaultfloatPrecision);}else if(this.FrameID==1){if(this
5256
5257
  this.GetExtendPaintData=function(floatPrecision){var value=parseInt(this.Value*ZOOM_VALUE[floatPrecision]);for(var i in this.ExtendChartPaint){var item=this.ExtendChartPaint[i];if(item.ClassName=='DepthMapPaint'&&item.FrameID==this.FrameID){var aryData=item.GetYValueByXValue(value,floatPrecision);for(var j in aryData){this.RExtendText.push(aryData[j]);}}}};}function HQDateStringFormat(){this.newMethod=IChangeStringFormat;//派生
5257
5258
  this.newMethod();delete this.newMethod;this.DateFormatType=0;//0=YYYY-MM-DD 1=YYYY/MM/DD 2=YYYY/MM/DD/W 3=DD/MM/YYYY
5258
5259
  this.LanguageID=0;this.Operator=function(){if(!IFrameSplitOperator.IsNumber(this.Value))return false;if(!this.Data)return false;var index=this.Value;index=parseInt(index.toFixed(0));if(this.Data.DataOffset+index>=this.Data.Data.length)return false;var currentData=this.Data.Data[this.Data.DataOffset+index];var dateFormatString="YYYY-MM-DD";if(this.DateFormatType==1)dateFormatString="YYYY/MM/DD";else if(this.DateFormatType==2)dateFormatString="YYYY/MM/DD/W";else if(this.DateFormatType==3)dateFormatString="DD/MM/YYYY";this.Text=IFrameSplitOperator.FormatDateString(currentData.Date,dateFormatString,this.LanguageID);if(ChartData.IsMinutePeriod(this.Data.Period,true))// 分钟周期
5259
- {var time=IFrameSplitOperator.FormatTimeString(currentData.Time);this.Text=this.Text+" "+time;}else if(ChartData.IsSecondPeriod(this.Data.Period)){var time=IFrameSplitOperator.FormatTimeString(currentData.Time,'HH:MM:SS');this.Text=this.Text+" "+time;}else if(ChartData.IsTickPeriod(this.Data.Period))//分笔
5260
+ {var time=IFrameSplitOperator.FormatTimeString(currentData.Time);this.Text=this.Text+" "+time;}else if(ChartData.IsSecondPeriod(this.Data.Period)){var time=IFrameSplitOperator.FormatTimeString(currentData.Time,'HH:MM:SS');this.Text=this.Text+" "+time;}else if(ChartData.IsMilliSecondPeriod(this.Data.Period)){var time=IFrameSplitOperator.FormatTimeString(currentData.Time,'HH:MM:SS.fff');this.Text=this.Text+" "+time;}else if(ChartData.IsTickPeriod(this.Data.Period))//分笔
5260
5261
  {var time=IFrameSplitOperator.FormatTimeString(currentData.Time);this.Text=this.Text+" "+time;}if(this.GetEventCallback){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_FORMAT_CORSSCURSOR_X_TEXT);if(event){var data={Item:currentData,Period:this.Data.Period,Date:currentData.Date,Time:currentData.Time,Index:this.Data.DataOffset+index};event.Callback(event,data,this);}}return true;};}function HQMinuteTimeStringFormat(){this.newMethod=IChangeStringFormat;//派生
5261
5262
  this.newMethod();delete this.newMethod;this.ClassName="HQMinuteTimeStringFormat";this.Frame;this.Symbol;this.Point;this.ClientPos=-1;this.BeforeOpenData;//单日分时图 盘前数据
5262
5263
  this.AfterCloseData;//单日分时图 收盘数据
@@ -5422,7 +5423,7 @@ this.PositionColor=g_JSChartResource.Title.PositionColor;//持仓
5422
5423
  };this.GetCurrentKLineData=function()//获取当天鼠标位置所在的K线数据
5423
5424
  {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);//价格小数位数
5424
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)//是否显示日期
5425
- {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(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 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
5427
  var eventUnchangeKLine=null;//定制平盘K线颜色事件
5427
5428
  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});}//涨幅
5428
5429
  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))//成交量
@@ -5724,7 +5725,10 @@ this.Canvas.strokeStyle=this.PointColor;if(isMoveOn)this.Canvas.lineWidth=1*pixe
5724
5725
  }else if(this.PointType==2)//空心圆
5725
5726
  {var path=new Path2D();path.arc(item.X,item.Y,this.PointRadius*pixel,0,360,false);this.Canvas.fill(path);this.Canvas.stroke(path);}else//实心圆
5726
5727
  {this.Canvas.beginPath();this.Canvas.arc(item.X,item.Y,this.PointRadius*pixel,0,360,false);this.Canvas.fill();//画实心圆
5727
- this.Canvas.closePath();}}this.Canvas.restore();};//计算2个点线的,左右的延长线的点
5728
+ this.Canvas.closePath();}}this.Canvas.restore();};this.DrawArrow=function(ptStart,ptEnd){//计算箭头
5729
+ var theta=35;//三角斜边一直线夹角
5730
+ var headlen=10;//三角斜边长度
5731
+ var angle=Math.atan2(ptStart.Y-ptEnd.Y,ptStart.X-ptEnd.X)*180/Math.PI,angle1=(angle+theta)*Math.PI/180,angle2=(angle-theta)*Math.PI/180,topX=headlen*Math.cos(angle1),topY=headlen*Math.sin(angle1),botX=headlen*Math.cos(angle2),botY=headlen*Math.sin(angle2);this.Canvas.beginPath();var arrowX=ptEnd.X+topX;var arrowY=ptEnd.Y+topY;this.Canvas.moveTo(arrowX,arrowY);this.Canvas.lineTo(ptEnd.X,ptEnd.Y);arrowX=ptEnd.X+botX;arrowY=ptEnd.Y+botY;this.Canvas.lineTo(arrowX,arrowY);this.Canvas.stroke();};//计算2个点线的,左右的延长线的点
5728
5732
  this.CalculateExtendLinePoint=function(ptStart,ptEnd){var result={};var left=this.Frame.ChartBorder.GetLeft();var right=this.Frame.ChartBorder.GetRight();var top=this.Frame.ChartBorder.GetTopEx();var bottom=this.Frame.ChartBorder.GetBottom();var a=ptEnd.X-ptStart.X;var b=ptEnd.Y-ptStart.Y;if(a>0){var b2=bottom-ptStart.Y;var a2=a*b2/b;var pt=new Point();pt.X=ptStart.X+a2;pt.Y=bottom;result.End=pt;var b2=ptEnd.Y-top;var a2=a*b2/b;var pt2=new Point();pt2.Y=top;pt2.X=ptEnd.X-a2;result.Start=pt2;}else{var b2=bottom-ptStart.Y;var a2=Math.abs(a)*b2/b;var pt=new Point();pt.X=ptStart.X-a2;;pt.Y=bottom;result.End=pt;var b2=ptEnd.Y-top;var a2=Math.abs(a)*b2/b;var pt2=new Point();pt2.Y=top;pt2.X=ptEnd.X+a2;result.Start=pt2;}return result;};//计算2个点线的,点0->点1->延长线的点
5729
5733
  this.CalculateExtendLineEndPoint=function(aryPoint){var left=this.Frame.ChartBorder.GetLeft();var right=this.Frame.ChartBorder.GetRight();var bottom=this.Frame.ChartBorder.GetBottomEx();var top=this.Frame.ChartBorder.GetTopEx();var a=aryPoint[1].X-aryPoint[0].X;var b=aryPoint[1].Y-aryPoint[0].Y;if(a>0){var a1=right-aryPoint[0].X;var b1=a1*b/a;var y=b1+aryPoint[0].Y;if(y>=top&&y<=bottom){var pt=new Point();pt.X=right;pt.Y=y;return pt;}if(b>0){var b2=bottom-aryPoint[0].Y;var a2=a*b2/b;var x=a2+aryPoint[0].X;var pt2=new Point();pt2.X=x;pt2.Y=bottom;return pt2;}else if(b==0){var pt2=new Point();pt2.X=right;pt2.Y=aryPoint[0].Y;return pt2;}else{var b2=top-aryPoint[0].Y;var a2=a*b2/b;var x=a2+aryPoint[0].X;var pt2=new Point();pt2.X=x;pt2.Y=top;return pt2;}}else{var a1=aryPoint[0].X-left;var b1=a1*b/Math.abs(a);var y=b1+aryPoint[0].Y;if(y>=top&&y<=bottom){var pt=new Point();pt.X=left;pt.Y=y;return pt;}if(b>0){var b2=bottom-aryPoint[0].Y;var a2=a*b2/b;var x=a2+aryPoint[0].X;var pt2=new Point();pt2.X=x;pt2.Y=bottom;return pt2;}else if(b==0){var pt2=new Point();pt2.X=left;pt2.Y=aryPoint[0].Y;return pt2;}else{var b2=top-aryPoint[0].Y;var a2=a*b2/b;var x=a2+aryPoint[0].X;var pt2=new Point();pt2.X=x;pt2.Y=top;return pt2;}}};//坐标是否在点上 返回在第几个点上
5730
5734
  this.IsPointInXYValue=function(x,y,option){if(!this.Frame)return-1;var data=this.Frame.Data;if(!data)return-1;if(!this.Value)return-1;var radius=5;if(option&&IFrameSplitOperator.IsNumber(option.Zoom))radius+=option.Zoom;else if(this.Option&&IFrameSplitOperator.IsNumber(this.Option.Zoom))radius+=this.Option.Zoom;var isHScreen=this.Frame.IsHScreen;radius*=GetDevicePixelRatio();for(var i=0;i<this.Value.length;++i)//是否在点上
@@ -5762,8 +5766,8 @@ IChartDrawPicture.HexToRGB=function(color){color=color.toLowerCase();var reg=/^#
5762
5766
  var sColorChange=[];for(var i=1;i<7;i+=2){sColorChange.push(parseInt("0x"+color.slice(i,i+2)));}return"rgb("+sColorChange.join(",")+")";}return null;};IChartDrawPicture.ArrayDrawPricture=[{Name:"线段",ClassName:'ChartDrawPictureLine',Create:function Create(){return new ChartDrawPictureLine();}},{Name:"射线",ClassName:'ChartDrawPictureHaflLine',Create:function Create(){return new ChartDrawPictureHaflLine();}},{Name:"箭头",ClassName:"ChartDrawArrowLine",Create:function Create(){return new ChartDrawArrowLine();}},{Name:"水平线",ClassName:'ChartDrawPictureHorizontalLine',Create:function Create(){return new ChartDrawPictureHorizontalLine();}},{Name:"趋势线",ClassName:'ChartDrawPictureTrendLine',Create:function Create(){return new ChartDrawPictureTrendLine();}},{Name:"矩形",ClassName:'ChartDrawPictureRect',Create:function Create(){return new ChartDrawPictureRect();}},{Name:"圆弧线",ClassName:'ChartDrawPictureArc',Create:function Create(){return new ChartDrawPictureArc();}},{Name:"M头W底",ClassName:'ChartDrawPictureWaveMW',Create:function Create(){return new ChartDrawPictureWaveMW();}},{Name:"头肩型",ClassName:"ChartDrawHeadShouldersBT",Create:function Create(){return new ChartDrawHeadShouldersBT();}},{Name:"平行线",ClassName:'ChartDrawPictureParallelLines',Create:function Create(){return new ChartDrawPictureParallelLines();}},{Name:"平行通道",ClassName:'ChartDrawPictureParallelChannel',Create:function Create(){return new ChartDrawPictureParallelChannel();}},{Name:"价格通道线",ClassName:'ChartDrawPicturePriceChannel',Create:function Create(){return new ChartDrawPicturePriceChannel();}},{Name:"文本",ClassName:'ChartDrawPictureText',Create:function Create(){return new ChartDrawPictureText();}},{Name:"江恩角度线",ClassName:'ChartDrawPictureGannFan',Create:function Create(){return new ChartDrawPictureGannFan();}},{Name:"阻速线",ClassName:'ChartDrawPictureResistanceLine',Create:function Create(){return new ChartDrawPictureResistanceLine();}},{Name:"黄金分割",ClassName:'ChartDrawPictureGoldenSection',Create:function Create(){return new ChartDrawPictureGoldenSection();}},{Name:"百分比线",ClassName:'ChartDrawPicturePercentage',Create:function Create(){return new ChartDrawPicturePercentage();}},{Name:"波段线",ClassName:'ChartDrawPictureWaveBand',Create:function Create(){return new ChartDrawPictureWaveBand();}},{Name:"三角形",ClassName:'ChartDrawPictureTriangle',Create:function Create(){return new ChartDrawPictureTriangle();}},{Name:"对称角度",ClassName:'ChartDrawPictureSymmetryAngle',Create:function Create(){return new ChartDrawPictureSymmetryAngle();}},{Name:"圆",ClassName:'ChartDrawPictureCircle',Create:function Create(){return new ChartDrawPictureCircle();}},{Name:"平行四边形",ClassName:'ChartDrawPictureQuadrangle',Create:function Create(){return new ChartDrawPictureQuadrangle();}},{Name:"斐波那契周期线",ClassName:'ChartDrawPictureFibonacci',Create:function Create(){return new ChartDrawPictureFibonacci();}},{Name:"线形回归线",ClassName:"ChartDrawLinearRegression",Create:function Create(){return new ChartDrawLinearRegression();}},{Name:"线形回归带",ClassName:"ChartDrawLinearRegression",Create:function Create(){return new ChartDrawLinearRegression({IsShowMaxMinLine:true});}},{Name:"延长线形回归带",ClassName:"ChartDrawLinearRegression",Create:function Create(){return new ChartDrawLinearRegression({IsShowMaxMinLine:true,IsShowExtendLine:true});}},{Name:"尺子",ClassName:"ChartDrawRuler",Create:function Create(){return new ChartDrawRuler();}},{Name:"标价线",ClassName:"ChartDrawPriceLine",Create:function Create(){return new ChartDrawPriceLine();}},{Name:"标价线2",ClassName:"ChartDrawPriceLineV2",Create:function Create(){return new ChartDrawPriceLineV2();}},{Name:"垂直线",ClassName:"ChartDrawVerticalLine",Create:function Create(){return new ChartDrawVerticalLine();}},{Name:"波浪尺",ClassName:"ChartDrawWaveRuler",Create:function Create(){return new ChartDrawWaveRuler();}},{Name:"AB波浪尺",ClassName:"ChartDrawWaveRuler2Point",Create:function Create(){return new ChartDrawWaveRuler2Point();}},{Name:"箱型线",ClassName:"ChartDrawBox",Create:function Create(){return new ChartDrawBox();}},{Name:"2点画图例子",ClassName:"ChartDrawTwoPointDemo",Create:function Create(){return new ChartDrawTwoPointDemo();}},{Name:"3点画图例子",ClassName:"ChartDrawThreePointDemo",Create:function Create(){return new ChartDrawThreePointDemo();}},{Name:"水平线段",ClassName:"ChartDrawHLineSegment",Create:function Create(){return new ChartDrawHLineSegment();}},{Name:"平行射线",ClassName:"ChartDrawParallelRaysLines",Create:function Create(){return new ChartDrawParallelRaysLines();}},{ClassName:'ChartDrawPictureIconFont',Create:function Create(){return new ChartDrawPictureIconFont();}},//涂鸦 不绑定K线坐标
5763
5767
  {Name:"涂鸦线段",ClassName:'ChartDrawGraffitiLine',Create:function Create(){return new ChartDrawGraffitiLine();}},{Name:"固定范围成交量分布图",ClassName:"ChartDrawVolProfile",Create:function Create(){return new ChartDrawVolProfile();}},{Name:"DisjointChannel",ClassName:"ChartDrawDisjontChannel",Create:function Create(){return new ChartDrawDisjontChannel();}},{Name:"FlatTop",ClassName:"ChartDrawDisjontChannel",Create:function Create(){return new ChartDrawFlatTop();}},{Name:"水平线2",ClassName:"ChartDrawHLine",Create:function Create(){return new ChartDrawHLine();}},//trading view样式
5764
5768
  {Name:"Note",ClassName:"ChartDrawNote",Create:function Create(){return new ChartDrawNote();}},{Name:"AnchoredText",ClassName:"ChartDrawAnchoredText",Create:function Create(){return new ChartDrawAnchoredText();}},{Name:"PriceLabel",ClassName:"ChartDrawPriceLabel",Create:function Create(){return new ChartDrawPriceLabel();}},{Name:"PriceNote",ClassName:"ChartDrawPriceNote",Create:function Create(){return new ChartDrawPriceNote();}},{Name:"FibWedge",ClassName:"ChartDrawFibWedge",Create:function Create(){return new ChartDrawFibWedge();}},{Name:"FibRetracement",ClassName:"ChartFibRetracement",Create:function Create(){return new ChartFibRetracement();}},//斐波那契回测
5765
- {Name:"FibSpeedResistanceFan",ClassName:"ChartFibSpeedResistanceFan",Create:function Create(){return new ChartFibSpeedResistanceFan();}//斐波那契扇形
5766
- }];IChartDrawPicture.MapIonFont=new _map2.default([["icon-arrow_up",{Text:'\uE683',Color:'#318757',Family:"iconfont"}],["icon-arrow_down",{Text:'\uE681',Color:'#db563e',Family:"iconfont"}],["icon-arrow_right",{Text:'\uE682',Color:'#318757',Family:"iconfont"}],["icon-arrow_left",{Text:'\uE680',Color:'#318757',Family:"iconfont"}]]);IChartDrawPicture.GetDrawPictureByName=function(value){for(var i in IChartDrawPicture.ArrayDrawPricture){var item=IChartDrawPicture.ArrayDrawPricture[i];if(item.Name==value)return item;}return null;};IChartDrawPicture.GetDrawPictureByClassName=function(value){for(var i in IChartDrawPicture.ArrayDrawPricture){var item=IChartDrawPicture.ArrayDrawPricture[i];if(item.ClassName==value)return item;}return null;};//注册一个新的画图工具 {Name:中文名字, ClassName:类名, Create:function()}
5769
+ {Name:"FibSpeedResistanceFan",ClassName:"ChartFibSpeedResistanceFan",Create:function Create(){return new ChartFibSpeedResistanceFan();}},//斐波那契扇形
5770
+ {Name:"PriceRange",ClassName:"ChartPriceRange",Create:function Create(){return new ChartPriceRange();}},{Name:"DateRange",ClassName:"ChartDateRange",Create:function Create(){return new ChartDateRange();}}];IChartDrawPicture.MapIonFont=new _map2.default([["icon-arrow_up",{Text:'\uE683',Color:'#318757',Family:"iconfont"}],["icon-arrow_down",{Text:'\uE681',Color:'#db563e',Family:"iconfont"}],["icon-arrow_right",{Text:'\uE682',Color:'#318757',Family:"iconfont"}],["icon-arrow_left",{Text:'\uE680',Color:'#318757',Family:"iconfont"}]]);IChartDrawPicture.GetDrawPictureByName=function(value){for(var i in IChartDrawPicture.ArrayDrawPricture){var item=IChartDrawPicture.ArrayDrawPricture[i];if(item.Name==value)return item;}return null;};IChartDrawPicture.GetDrawPictureByClassName=function(value){for(var i in IChartDrawPicture.ArrayDrawPricture){var item=IChartDrawPicture.ArrayDrawPricture[i];if(item.ClassName==value)return item;}return null;};//注册一个新的画图工具 {Name:中文名字, ClassName:类名, Create:function()}
5767
5771
  IChartDrawPicture.RegisterDrawPicture=function(obj){if(!obj.Name||!obj.ClassName||!obj.Create)return false;var item={Name:obj.Name,ClassName:obj.ClassName,Create:obj.Create};IChartDrawPicture.ArrayDrawPricture.push(item);JSConsole.Chart.Log('[IChartDrawPicture.RegisterDrawPicture] registered new draw picture class. item=',item);return true;};//注册一个新图标 {Name:, Text: , Color:, Family:}
5768
5772
  IChartDrawPicture.RegisterIonFont=function(obj){if(!obj.Name||!obj.Text||!obj.Family)return false;var isOverwirte=IChartDrawPicture.MapIonFont.has(obj.Name);IChartDrawPicture.MapIonFont.set(obj.Name,obj);JSConsole.Chart.Log('[IChartDrawPicture.RegisterIonFont] registered new icon font, obj=, isOverwirte=',obj,isOverwirte);return true;};IChartDrawPicture.CreateChartDrawPicture=function(obj)//创建画图工具
5769
5773
  {var item=IChartDrawPicture.GetDrawPictureByClassName(obj.ClassName);if(!item)return null;var chartDraw=item.Create();//TODO:后面都放到每一个SetOptin里面
@@ -6217,7 +6221,15 @@ var aryYData=this.GetArrayAreaConfig(this.AreaConfig.AryYData);var ptPre=null;//
6217
6221
  var clrArea=null;this.Canvas.font=this.Font;var border=this.Frame.GetBorder();var ptLeftTop={X:border.Left,Y:border.TopEx};var ptRightTop={X:border.Right,Y:border.TopEx};var ptLeftBottom={X:border.Left,Y:border.BottomEx};var ptRightBottom={X:border.Right,Y:border.BottomEx};var textOffset=4;if(quadrant==1||quadrant==4){this.Canvas.textAlign="right";textOffset=-4;}else{this.Canvas.textAlign="left";textOffset=4;}this.Canvas.textBaseline="middle";for(var i=0;i<aryYData.length;++i){var item=aryYData[i];var y=item.Value*yDiff+ptStart.Y;var pt=this.CalculateExtendLineEndPoint([center,{X:ptStart.X,Y:y}]);if(ptPre){this.Canvas.beginPath();this.Canvas.moveTo(center.X,center.Y);this.Canvas.lineTo(ptPre.X,ptPre.Y);if(quadrant==1){if(ptPre.X>=ptRightTop.X&&pt.X<ptRightTop.X){this.Canvas.lineTo(ptRightTop.X,ptRightTop.Y);}}else if(quadrant==2){if(ptPre.X<=ptLeftTop.X&&pt.X>ptLeftTop.X){this.Canvas.lineTo(ptLeftTop.X,ptLeftTop.Y);}}else if(quadrant==3){if(ptPre.X<=ptLeftBottom.X&&pt.X>ptLeftBottom.X){this.Canvas.lineTo(ptLeftBottom.X,ptLeftBottom.Y);}}else if(quadrant==4){if(ptPre.X>=ptRightBottom.X&&pt.X<ptRightBottom.X){this.Canvas.lineTo(ptRightBottom.X,ptRightBottom.Y);}}this.Canvas.lineTo(pt.X,pt.Y);this.Canvas.closePath();this.Canvas.fillStyle=clrArea;this.Canvas.fill();}this.Canvas.strokeStyle=item.Color;this.Canvas.beginPath();this.Canvas.moveTo(center.X,center.Y);this.Canvas.lineTo(pt.X,pt.Y);this.Canvas.stroke();this.LinePoint.push({Start:center,End:pt});if(item.Value!=1){this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(center.X,y);this.Canvas.lineTo(ptStart.X,y);this.Canvas.stroke();}ptPre=pt;clrArea=IChartDrawPicture.ColorToRGBA(item.Color,this.AreaConfig.Opacity);//文字
6218
6222
  var text=''+item.Value;this.Canvas.fillStyle=item.Color;this.Canvas.fillText(text,center.X+textOffset,y);}var aryXData=this.GetArrayAreaConfig(this.AreaConfig.AryXData);var ptPre=null;this.Canvas.textAlign="center";if(quadrant==3||quadrant==4){this.Canvas.textBaseline="bottom";textOffset=-5;}else{this.Canvas.textBaseline="top";textOffset=5;}for(var i=0;i<aryXData.length;++i){var item=aryXData[i];var x=item.Value*xDiff+ptStart.X;var pt=this.CalculateExtendLineEndPoint([center,{X:x,Y:ptStart.Y}]);if(ptPre)//面积
6219
6223
  {this.Canvas.beginPath();this.Canvas.moveTo(center.X,center.Y);this.Canvas.lineTo(ptPre.X,ptPre.Y);if(quadrant==1){if(ptPre.X<ptRightTop.X&&pt.X>=ptRightTop.X){this.Canvas.lineTo(ptRightTop.X,ptRightTop.Y);}}else if(quadrant==2){if(ptPre.X>ptLeftTop.X&&pt.X<=ptLeftTop.X){this.Canvas.lineTo(ptLeftTop.X,ptLeftTop.Y);}}else if(quadrant==3){if(ptPre.X>ptLeftBottom.X&&pt.X<=ptLeftBottom.X){this.Canvas.lineTo(ptLeftBottom.X,ptLeftBottom.Y);}}else if(quadrant==4){if(ptPre.X<ptRightBottom.X&&pt.X>=ptRightBottom.X){this.Canvas.lineTo(ptRightBottom.X,ptRightBottom.Y);}}this.Canvas.lineTo(pt.X,pt.Y);this.Canvas.closePath();this.Canvas.fillStyle=clrArea;this.Canvas.fill();}this.Canvas.strokeStyle=item.Color;this.Canvas.beginPath();this.Canvas.moveTo(center.X,center.Y);this.Canvas.lineTo(pt.X,pt.Y);this.Canvas.stroke();this.LinePoint.push({Start:center,End:pt});if(item.Value!=1){this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(x,center.Y);this.Canvas.lineTo(x,ptStart.Y);this.Canvas.stroke();}ptPre=pt;clrArea=IChartDrawPicture.ColorToRGBA(item.Color,this.AreaConfig.Opacity);//文字
6220
- var text=''+item.Value;this.Canvas.fillStyle=item.Color;this.Canvas.fillText(text,x,center.Y+textOffset);}};this.GetArrayAreaConfig=function(aryData){var aryArea=[];for(var i=0;i<aryData.length;++i){var item=aryData[i];if(item.Enable)aryArea.push(item);}aryArea.sort(function(left,right){return right.Value-left.Value;});return aryArea;};}function ChartDrawStorage(){this.DrawData=new _map2.default();//画图工具数据 key=symbol-Period, value=Map() Key:Guid, Value:{Guid, Symbol, Period, ClassName, Value}
6224
+ var text=''+item.Value;this.Canvas.fillStyle=item.Color;this.Canvas.fillText(text,x,center.Y+textOffset);}};this.GetArrayAreaConfig=function(aryData){var aryArea=[];for(var i=0;i<aryData.length;++i){var item=aryData[i];if(item.Enable)aryArea.push(item);}aryArea.sort(function(left,right){return right.Value-left.Value;});return aryArea;};}function ChartPriceRange(){this.newMethod=IChartDrawPicture;//派生
6225
+ this.newMethod();delete this.newMethod;this.ClassName='ChartPriceRange';this.PointCount=2;this.Font=12*GetDevicePixelRatio()+"px 微软雅黑";this.TextColor=this.LineColor;this.IsPointIn=this.IsPointIn_XYValue_Line;this.GetXYCoordinate=this.GetXYCoordinate_default;this.PointToValue_Default=this.PointToValue;this.OnlyMoveXIndex=true;this.IsSupportMagnet=true;this.LineWidth=1;this.EnableBGColor=true;this.BGColor=IChartDrawPicture.ColorToRGBA(this.LineColor,0.15);this.ExtendLine={Left:false,Right:false};//延长线
6226
+ this.Label={TextColor:"rgb(0,0,0)",BGColor:"rgb(211,211,211)",EnableBGColor:true,LeftMargin:5,RightMargin:5};this.Draw=function(){this.LinePoint=[];if(this.IsFrameMinSize())return;var bCheckXY=true;if(this.ExtendLine.Left||this.ExtendLine.Right)bCheckXY=false;var drawPoint=this.CalculateDrawPoint({IsCheckX:bCheckXY,IsCheckY:bCheckXY});if(!drawPoint)return;if(drawPoint.length!=2)return;this.ClipFrame();var ptStart=drawPoint[0];var ptEnd=drawPoint[1];this.SetLineWidth();this.DrawRange(ptStart,ptEnd);this.RestoreLineWidth();this.DrawPoint(drawPoint);//画点
6227
+ this.Canvas.restore();};this.DrawRange=function(ptStart,ptEnd){var yTop=Math.min(ptStart.Y,ptEnd.Y);var yBottom=Math.max(ptStart.Y,ptEnd.Y);var xLeft=Math.min(ptStart.X,ptEnd.X);var xRight=Math.max(ptStart.X,ptEnd.X);var height=yBottom-yTop;var xCenter=ptStart.X+(ptEnd.X-ptStart.X)/2;if(this.ExtendLine.Right)xRight=this.Frame.ChartBorder.GetRight();if(this.ExtendLine.Left)xLeft=this.Frame.ChartBorder.GetLeft();if(this.EnableBGColor){var rtBG={Left:xLeft,Top:yTop,Right:xRight,Bottom:yBottom};rtBG.Width=rtBG.Right-rtBG.Left;rtBG.Height=rtBG.Bottom-rtBG.Top;this.Canvas.fillStyle=this.BGColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(xLeft,ToFixedPoint(yTop));this.Canvas.lineTo(xRight,ToFixedPoint(yTop));this.Canvas.moveTo(xLeft,ToFixedPoint(yBottom));this.Canvas.lineTo(xRight,ToFixedPoint(yBottom));this.Canvas.moveTo(ToFixedPoint(xCenter),ToFixedPoint(yTop));this.Canvas.lineTo(ToFixedPoint(xCenter),ToFixedPoint(yBottom));this.Canvas.stroke();this.LinePoint.push({Start:{X:xLeft,Y:yTop},End:{X:xRight,Y:yTop}});this.LinePoint.push({Start:{X:xLeft,Y:yBottom},End:{X:xRight,Y:yBottom}});this.LinePoint.push({Start:{X:xCenter,Y:yTop},End:{X:xCenter,Y:yBottom}});this.DrawArrow({X:ToFixedPoint(xCenter),Y:ptStart.Y},{X:ToFixedPoint(xCenter),Y:ptEnd.Y});//文字输出
6228
+ var startValue=this.Frame.GetYData(ptStart.Y,false);var endValue=this.Frame.GetYData(ptEnd.Y,false);var diffValue=endValue-startValue;var rate=diffValue/startValue*100;var text=diffValue.toFixed(2)+' ('+rate.toFixed(2)+'%)';this.Canvas.font=this.Font;var textHeight=this.GetFontHeight();var textWidth=this.Canvas.measureText(text).width+4+(this.Label.LeftMargin+this.Label.RightMargin);var rtTextBG={Left:xCenter-textWidth/2,Width:textWidth,Height:textHeight+2};if(diffValue>0)rtTextBG.Top=ptEnd.Y-rtTextBG.Height-4;else rtTextBG.Top=ptEnd.Y+4;rtTextBG.Bottom=rtTextBG.Top+rtTextBG.Height;if(this.Label.EnableBGColor){var path=new Path2D();path.roundRect(ToFixedPoint(rtTextBG.Left),ToFixedPoint(rtTextBG.Top),ToFixedRect(rtTextBG.Width),ToFixedRect(rtTextBG.Height),[3]);this.Canvas.fillStyle=this.Label.BGColor;this.Canvas.fill(path);}this.Canvas.fillStyle=this.Label.TextColor;this.Canvas.textAlign="left";this.Canvas.textBaseline="bottom";this.Canvas.fillText(text,rtTextBG.Left+2+this.Label.LeftMargin,rtTextBG.Bottom-2);};}function ChartDateRange(){this.newMethod=IChartDrawPicture;//派生
6229
+ this.newMethod();delete this.newMethod;this.ClassName='ChartDateRange';this.PointCount=2;this.Font=12*GetDevicePixelRatio()+"px 微软雅黑";this.TextColor=this.LineColor;this.IsPointIn=this.IsPointIn_XYValue_Line;this.GetXYCoordinate=this.GetXYCoordinate_default;this.PointToValue_Default=this.PointToValue;this.OnlyMoveXIndex=true;this.IsSupportMagnet=true;this.LineWidth=1;this.EnableBGColor=true;this.BGColor=IChartDrawPicture.ColorToRGBA(this.LineColor,0.15);this.ExtendLine={Top:false,Bottom:false};//延长线
6230
+ this.Label={TextColor:"rgb(0,0,0)",BGColor:"rgb(211,211,211)",EnableBGColor:true,LeftMargin:5,RightMargin:5};this.Draw=function(){this.LinePoint=[];if(this.IsFrameMinSize())return;var bCheckXY=true;var drawPoint=this.CalculateDrawPoint({IsCheckX:bCheckXY,IsCheckY:bCheckXY});if(!drawPoint)return;if(drawPoint.length!=2)return;this.ClipFrame();var ptStart=drawPoint[0];var ptEnd=drawPoint[1];this.SetLineWidth();this.DrawRange(ptStart,ptEnd);this.RestoreLineWidth();this.DrawPoint(drawPoint);//画点
6231
+ this.Canvas.restore();};this.DrawRange=function(ptStart,ptEnd){var yTop=Math.min(ptStart.Y,ptEnd.Y);var yBottom=Math.max(ptStart.Y,ptEnd.Y);var xLeft=Math.min(ptStart.X,ptEnd.X);var xRight=Math.max(ptStart.X,ptEnd.X);var height=yBottom-yTop;var width=xRight-xLeft;var yCenter=ptStart.Y+(ptEnd.Y-ptStart.Y)/2;var xCenter=ptStart.X+(ptEnd.X-ptStart.X)/2;if(this.ExtendLine.Top)yTop=this.Frame.ChartBorder.GetTopEx();if(this.ExtendLine.Bottom)yBottom=this.Frame.ChartBorder.GetBottomEx();if(this.EnableBGColor){var rtBG={Left:xLeft,Top:yTop,Right:xRight,Bottom:yBottom};rtBG.Width=rtBG.Right-rtBG.Left;rtBG.Height=rtBG.Bottom-rtBG.Top;this.Canvas.fillStyle=this.BGColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(ToFixedPoint(xLeft),yTop);this.Canvas.lineTo(ToFixedPoint(xLeft),yBottom);this.Canvas.moveTo(ToFixedPoint(xRight),yTop);this.Canvas.lineTo(ToFixedPoint(xRight),yBottom);this.Canvas.moveTo(ToFixedPoint(xLeft),ToFixedPoint(yCenter));this.Canvas.lineTo(ToFixedPoint(xRight),ToFixedPoint(yCenter));this.Canvas.stroke();this.LinePoint.push({Start:{X:xLeft,Y:yTop},End:{X:xLeft,Y:yBottom}});this.LinePoint.push({Start:{X:xRight,Y:yTop},End:{X:xRight,Y:yBottom}});this.LinePoint.push({Start:{X:xLeft,Y:yCenter},End:{X:xRight,Y:yCenter}});this.DrawArrow({X:ptStart.X,Y:ToFixedPoint(yCenter)},{X:ptEnd.X,Y:ToFixedPoint(yCenter)});//文字输出
6232
+ var startIndex=this.Frame.GetXData(ptStart.X,false);var endIndex=this.Frame.GetXData(ptEnd.X,false);var barCount=endIndex-startIndex+1;var text=barCount+' bars';this.Canvas.font=this.Font;var textHeight=this.GetFontHeight();var textWidth=this.Canvas.measureText(text).width+4+(this.Label.LeftMargin+this.Label.RightMargin);var rtTextBG={Left:xCenter-textWidth/2,Top:ptEnd.Y+4,Width:textWidth,Height:textHeight+2};rtTextBG.Bottom=rtTextBG.Top+rtTextBG.Height;if(this.Label.EnableBGColor){var path=new Path2D();path.roundRect(ToFixedPoint(rtTextBG.Left),ToFixedPoint(rtTextBG.Top),ToFixedRect(rtTextBG.Width),ToFixedRect(rtTextBG.Height),[3]);this.Canvas.fillStyle=this.Label.BGColor;this.Canvas.fill(path);}this.Canvas.fillStyle=this.Label.TextColor;this.Canvas.textAlign="left";this.Canvas.textBaseline="bottom";this.Canvas.fillText(text,rtTextBG.Left+2+this.Label.LeftMargin,rtTextBG.Bottom-2);};}function ChartDrawStorage(){this.DrawData=new _map2.default();//画图工具数据 key=symbol-Period, value=Map() Key:Guid, Value:{Guid, Symbol, Period, ClassName, Value}
6221
6233
  this.StorageKey;this.GetEventCallback;//事件回调
6222
6234
  this.Load=function(key)//从本地读取画图工具
6223
6235
  {if(!key)return;this.StorageKey=key;var cacheValue=localStorage[this.StorageKey];JSConsole.Chart.Log('[ChartDrawStorage::Load] Load to localStorage, key='+this.StorageKey+', cache='+cacheValue);if(!cacheValue)return;if(typeof cacheValue!="string")return;var saveData=JSON.parse(cacheValue);for(var i in saveData){var item=saveData[i];var drawMap=new _map2.default();for(var j in item.Value){var drawItem=item.Value[j];drawMap.set(drawItem.Key,drawItem.Value);}this.DrawData.set(item.Key,drawMap);}};this.Save=function()//把数据保存到本地
@@ -6803,7 +6815,7 @@ this.BindInstructionIndexData=function(hisData){if(this.ColorIndex&&typeof this.
6803
6815
  this.GetChartPaint=function(windowIndex){var paint=new Array();for(var i in this.ChartPaint){if(i==0)continue;//第1个K线数据除外
6804
6816
  var item=this.ChartPaint[i];if(item.ChartFrame==this.Frame.SubFrame[windowIndex].Frame)paint.push(item);}return paint;};this.AutoUpdateEvent=function(bStart,explain)//自定更新事件, 是给websocket使用
6805
6817
  {var eventID=bStart?JSCHART_EVENT_ID.RECV_START_AUTOUPDATE:JSCHART_EVENT_ID.RECV_STOP_AUTOUPDATE;if(!this.mapEvent.has(eventID))return;var self=this;var event=this.mapEvent.get(eventID);var data={Stock:{Symbol:this.Symbol,Name:this.Name,Right:this.Right,Period:this.Period},Explain:explain};if(bStart){data.Callback=function(data)//数据到达更新回调
6806
- {if(ChartData.IsDayPeriod(self.Period,true))self.RecvRealtimeData(data);else if(ChartData.IsMinutePeriod(self.Period,true))self.RecvMinuteRealtimeData(data);else if(ChartData.IsSecondPeriod(self.Period))self.RecvMinuteRealtimeData(data);};}event.Callback(event,data,this);};this.SendKLineUpdateEvent=function(bindData){var event=this.GetEventCallback(JSCHART_EVENT_ID.RECV_KLINE_UPDATE_DATA);if(event&&event.Callback){var data={HistoryData:bindData,Stock:{Symbol:this.Symbol,Name:this.Name}};event.Callback(event,data,this);return true;}return false;};this.SendManualKLineUpdateEvent=function(bindData){var event=this.GetEventCallback(JSCHART_EVENT_ID.RECV_KLINE_MANUAL_UPDATE_DATA);if(event&&event.Callback){var data={HistoryData:bindData,Stock:{Symbol:this.Symbol,Name:this.Name}};event.Callback(event,data,this);return true;}return false;};this.GetKLineDrawType=function(){return this.KLineDrawType;};this.RequestHistoryData=function(){var self=this;this.ChartSplashPaint.SetTitle(this.LoadDataSplashTitle);this.ChartSplashPaint.EnableSplash(true);this.FlowCapitalReady=false;this.ResetPage();//重置分页
6818
+ {if(ChartData.IsDayPeriod(self.Period,true))self.RecvRealtimeData(data);else if(ChartData.IsMinutePeriod(self.Period,true))self.RecvMinuteRealtimeData(data);else if(ChartData.IsSecondPeriod(self.Period))self.RecvMinuteRealtimeData(data);else if(ChartData.IsMilliSecondPeriod(self.Period))self.RecvMinuteRealtimeData(data);};}event.Callback(event,data,this);};this.SendKLineUpdateEvent=function(bindData){var event=this.GetEventCallback(JSCHART_EVENT_ID.RECV_KLINE_UPDATE_DATA);if(event&&event.Callback){var data={HistoryData:bindData,Stock:{Symbol:this.Symbol,Name:this.Name}};event.Callback(event,data,this);return true;}return false;};this.SendManualKLineUpdateEvent=function(bindData){var event=this.GetEventCallback(JSCHART_EVENT_ID.RECV_KLINE_MANUAL_UPDATE_DATA);if(event&&event.Callback){var data={HistoryData:bindData,Stock:{Symbol:this.Symbol,Name:this.Name}};event.Callback(event,data,this);return true;}return false;};this.GetKLineDrawType=function(){return this.KLineDrawType;};this.RequestHistoryData=function(){var self=this;this.ChartSplashPaint.SetTitle(this.LoadDataSplashTitle);this.ChartSplashPaint.EnableSplash(true);this.FlowCapitalReady=false;this.ResetPage();//重置分页
6807
6819
  this.ResetDragDownload();this.ResetZoomDownload();this.Draw();if(this.NetworkFilter){var kLineDrawType=this.GetKLineDrawType();var obj={Name:'KLineChartContainer::RequestHistoryData',//类名::
6808
6820
  Explain:'日K数据',Request:{Url:self.KLineApiUrl,Type:'POST',Data:{symbol:self.Symbol,count:self.MaxRequestDataCount,field:["name","symbol","yclose","open","price","high","low","vol"],period:this.Period,right:this.Right,klineDrawType:kLineDrawType}},Self:this,PreventDefault:false};this.NetworkFilter(obj,function(data){self.ChartSplashPaint.EnableSplash(false);self.RecvHistoryData(data);var page=self.Page.Day;if(page.Enable==true&&page.Finish==false){self.RequestHistoryPageData();}else{self.AutoUpdateEvent(true,'KLineChartContainer::RequestHistoryData');self.AutoUpdate();}});if(obj.PreventDefault==true)return;//已被上层替换,不调用默认的网络请求
6809
6821
  }JSNetwork.HttpRequest({url:this.KLineApiUrl,data:{"field":["name","symbol","yclose","open","price","high","low","vol"],"symbol":self.Symbol,"start":-1,"count":self.MaxRequestDataCount},type:"post",dataType:"json",async:true,success:function success(data){self.ChartSplashPaint.EnableSplash(false);self.RecvHistoryData(data);var page=self.Page.Day;if(page.Enable==true&&page.Finish==false){self.RequestHistoryPageData();}else{self.AutoUpdateEvent(true,'KLineChartContainer::RequestHistoryData');self.AutoUpdate();}}});};this.BindAllOverlayIndexData=function(hisData,option){if(!this.Frame||!this.Frame.SubFrame)return;//叠加指标
@@ -7012,7 +7024,7 @@ for(var i=1;i<this.TitlePaint.length;++i){var item=this.TitlePaint[i];item.Overl
7012
7024
  this.ChangePeriod=function(period,option){var oldData={Period:this.Period,Right:this.Right,KLineDrawType:this.KLineDrawType};var isChangeKLineDrawType=false;var isReload=false;//是否重新请求数据
7013
7025
  var right=null;//复权
7014
7026
  if(option){if(option.KLine){if(IFrameSplitOperator.IsNumber(option.KLine.DrawType))isChangeKLineDrawType=true;if(IFrameSplitOperator.IsNumber(option.KLine.Right))right=option.KLine.Right;}if(option.Reload==true)isReload=true;};if(this.Period==period&&isReload==false){if(isChangeKLineDrawType)this.ChangeKLineDrawType(option.KLine.DrawType);return;}if(isChangeKLineDrawType)this.ChangeKLineDrawType(option.KLine.DrawType,false);//切换K线类型, 不重绘
7015
- var isDataTypeChange=true;if(this.SourceData){var isDataTypeChange=false;if(period>CUSTOM_DAY_PERIOD_START&&period<=CUSTOM_DAY_PERIOD_END){if(this.SourceData.DataType!=0)isDataTypeChange=true;}else if(period>CUSTOM_MINUTE_PERIOD_START&&period<=CUSTOM_MINUTE_PERIOD_END||period>CUSTOM_SECOND_PERIOD_START&&period<=CUSTOM_SECOND_PERIOD_END){if(this.SourceData.DataType!=1)isDataTypeChange=true;else if(ChartData.IsSecondPeriod(period))isDataTypeChange=true;}else{switch(period){case 0://日线
7027
+ var isDataTypeChange=true;if(this.SourceData){var isDataTypeChange=false;if(period>CUSTOM_DAY_PERIOD_START&&period<=CUSTOM_DAY_PERIOD_END){if(this.SourceData.DataType!=0)isDataTypeChange=true;}else if(period>CUSTOM_MINUTE_PERIOD_START&&period<=CUSTOM_MINUTE_PERIOD_END||period>CUSTOM_SECOND_PERIOD_START&&period<=CUSTOM_SECOND_PERIOD_END||period>CUSTOM_MILLISECOND_PERIOD_START&&period<=CUSTOM_MILLISECOND_PERIOD_END){if(this.SourceData.DataType!=1)isDataTypeChange=true;else if(ChartData.IsSecondPeriod(period))isDataTypeChange=true;else if(ChartData.IsMilliSecondPeriod(period))isDataTypeChange=true;}else{switch(period){case 0://日线
7016
7028
  case 1://周
7017
7029
  case 2://月
7018
7030
  case 3://年
@@ -7033,7 +7045,7 @@ return;}this.ClearIndexPaint();if(ChartData.IsDayPeriod(this.Period,true)){this.
7033
7045
  this.AutoUpdateEvent(false,'KLineChartContainer::ChangePeriod');//切换周期先停止更新
7034
7046
  this.ResetScrollBar();this.ResetOverlaySymbolStatus();this.ClearIndexRunCount();this.RequestHistoryData();//请求日线数据
7035
7047
  //this.ReqeustKLineInfoData();
7036
- }else if(ChartData.IsMinutePeriod(this.Period,true)||ChartData.IsSecondPeriod(this.Period)){this.CancelAutoUpdate();//先停止定时器
7048
+ }else if(ChartData.IsMinutePeriod(this.Period,true)||ChartData.IsSecondPeriod(this.Period)||ChartData.IsMilliSecondPeriod(this.Period)){this.CancelAutoUpdate();//先停止定时器
7037
7049
  this.AutoUpdateEvent(false,'KLineChartContainer::ChangePeriod');//切换周期先停止更新
7038
7050
  this.ResetScrollBar();this.ResetOverlaySymbolStatus();this.ClearIndexRunCount();this.ReqeustHistoryMinuteData();//请求分钟数据
7039
7051
  }else if(ChartData.IsTickPeriod(this.Period)){this.CancelAutoUpdate();//先停止定时器
@@ -7043,7 +7055,7 @@ this.ChangeRight=function(right){if(!MARKET_SUFFIX_NAME.IsEnableRight(this.Perio
7043
7055
  {if(ChartData.IsDayPeriod(this.Period,true)){this.CancelAutoUpdate();//先停止定时器
7044
7056
  this.AutoUpdateEvent(false,'KLineChartContainer::ChangeRight');//切换复权先停止更新
7045
7057
  this.ClearIndexPaint();this.ResetOverlaySymbolStatus();this.ResetScrollBar();this.RequestHistoryData();//请求日线数据
7046
- }else if(ChartData.IsMinutePeriod(this.Period,true)||ChartData.IsSecondPeriod(this.Period)){this.CancelAutoUpdate();//先停止定时器
7058
+ }else if(ChartData.IsMinutePeriod(this.Period,true)||ChartData.IsSecondPeriod(this.Period)||ChartData.IsMilliSecondPeriod(this.Period)){this.CancelAutoUpdate();//先停止定时器
7047
7059
  this.AutoUpdateEvent(false,'KLineChartContainer::ChangeRight');//切换复权先停止更新
7048
7060
  this.ClearIndexPaint();this.ResetOverlaySymbolStatus();this.ResetScrollBar();this.ReqeustHistoryMinuteData();//请求分钟数据
7049
7061
  }}};//设置第1屏的起始日期
@@ -7123,7 +7135,7 @@ overlayFrame.Script=scriptIndex;}else{var scriptIndex=indexCustom.Create();scrip
7123
7135
  scriptIndex.Create(this,windowIndex);overlayFrame.Script=scriptIndex;}subFrame.OverlayIndex.push(overlayFrame);return overlayFrame;};this.DeleteOverlayWindowsIndex=function(identify)//删除叠加指标
7124
7136
  {if(!this.DeleteOverlayIndex(identify,null))return;this.Frame.ResetXYSplit(true);this.Draw();};this.ChangeKLineDrawType=function(drawType,isDraw,option){if(this.KLineDrawType==drawType&&!option)return;var oldKLineType=this.KLineDrawType;this.KLineDrawType=drawType;var setKLineType=new _set2.default([5,7,8,10,11,12,17]);if(setKLineType.has(oldKLineType)||setKLineType.has(drawType)){var chart=this.ChartPaint[0];if(chart)chart.DrawType=this.KLineDrawType;this.CancelAutoUpdate();//先停止定时器
7125
7137
  this.AutoUpdateEvent(false,'KLineChartContainer::ChangeKLineDrawType');if(ChartData.IsDayPeriod(this.Period,true)){this.ResetOverlaySymbolStatus();this.RequestHistoryData();//请求日线数据
7126
- }else if(ChartData.IsMinutePeriod(this.Period,true)||ChartData.IsSecondPeriod(this.Period)){this.ResetOverlaySymbolStatus();this.ReqeustHistoryMinuteData();//请求分钟数据
7138
+ }else if(ChartData.IsMinutePeriod(this.Period,true)||ChartData.IsSecondPeriod(this.Period)||ChartData.IsMilliSecondPeriod(this.Period)){this.ResetOverlaySymbolStatus();this.ReqeustHistoryMinuteData();//请求分钟数据
7127
7139
  }return;}for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(i==0){item.DrawType=this.KLineDrawType;if(option){if(IFrameSplitOperator.IsBool(option.IsThinAKBar))item.IsThinAKBar=option.IsThinAKBar;}}else if(item.ClassName=='ChartVolStick'){item.KLineDrawType=this.KLineDrawType;}}for(var i in this.OverlayChartPaint)//叠加K线样式修改
7128
7140
  {var item=this.OverlayChartPaint[i];item.DrawType=this.KLineDrawType;}if(isDraw==false)return;this.UpdateFrameMaxMin();//调整坐标最大 最小值
7129
7141
  this.Frame.SetSizeChage(true);this.Draw();};//修改坐标类型
@@ -7204,7 +7216,7 @@ var item=windows[i];if(!item)continue;if(item.Script){this.WindowIndex[i]=new Sc
7204
7216
  }else if(item.API){var apiItem=item.API;this.WindowIndex[i]=new APIScriptIndex(apiItem.Name,apiItem.Script,apiItem.Args,item);}else{var indexID=item.Index;var indexInfo=systemScript.Get(indexID);if(indexInfo){var args=indexInfo.Args;if(item.Args)indexInfo.Args=item.Args;indexInfo.ID=indexID;this.WindowIndex[i]=new ScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo);//脚本执行
7205
7217
  }}}}}this.ReloadChartDrawPicture();this.Frame.ClearUpDonwFrameYData();if(ChartData.IsDayPeriod(this.Period,true)){this.RequestHistoryData();//请求日线数据
7206
7218
  //this.ReqeustKLineInfoData();
7207
- }else if(ChartData.IsMinutePeriod(this.Period,true)||ChartData.IsSecondPeriod(this.Period)){this.ReqeustHistoryMinuteData();//请求分钟数据
7219
+ }else if(ChartData.IsMinutePeriod(this.Period,true)||ChartData.IsSecondPeriod(this.Period)||ChartData.IsMilliSecondPeriod(this.Period)){this.ReqeustHistoryMinuteData();//请求分钟数据
7208
7220
  }else if(ChartData.IsTickPeriod(this.Period)){this.RequestTickData();}};this.ReqeustKLineInfoData=function(obj){if(obj&&obj.FunctionName=="RecvDragDayData")//增量更新
7209
7221
  {obj.Update=true;}else{if(this.ChartPaint.length>0){var klinePaint=this.ChartPaint[0];klinePaint.InfoData=new _map2.default();}obj.Update=false;}//信息地雷信息
7210
7222
  if(!IFrameSplitOperator.IsNonEmptyArray(this.ChartInfo))return;for(var i=0;i<this.ChartInfo.length;++i){this.ChartInfo[i].RequestData(this,obj);}};//设置K线信息地雷
@@ -7537,6 +7549,7 @@ this.SelectRectDialog=null;//区间选择对话框
7537
7549
  this.CorssCursorIndex={DayIndex:-1,DataIndex:-1,Point:{X:-1,Y:-1},Type:-1};this.EnableNewIndex=false;//是否使用新的索引版本
7538
7550
  this.DayOffset={Offset:0,ShowDayCount:-1,DataOffset:0,DayCount:1};//Offset 日期偏移 , DataOffset数据偏移
7539
7551
  this.PageInfo={Enable:false,Offset:-8888,ShowDayCount:4};//分页配置
7552
+ this.DataStatus={MultiDay:false,LatestDay:false};//MultiDay=多日 LatestDay:当天
7540
7553
  this.ZoomStepPixel=50;//集合竞价设置 obj={ Left:true/false, Right:true/false, MultiDay:{Left:, Right:} }
7541
7554
  this.SetCallCationDataBorder=function(obj){if(!obj)return;var extendWidth={Left:obj.Left?this.ExtendWidth.Left:0,Right:obj.Right?this.ExtendWidth.Right:0};this.Frame.SetExtendWidth(extendWidth);if(obj.MultiDay){var item=obj.MultiDay;var DayMinuteWidth={Left:item.Left?this.MultiDayExtendWidth.Left:0,Right:item.Right?this.MultiDayExtendWidth.Right:0};this.Frame.SetMultiDayMinuteWidth(DayMinuteWidth);}};this.ReloadChartPaint=function(resource){for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(!item)continue;if(item.ReloadResource)item.ReloadResource(resource);if(i==0){if(item.Name=="Minute-Line"){item.Color=g_JSChartResource.Minute.PriceColor;item.AreaColor=g_JSChartResource.Minute.AreaPriceColor;}}else if(i==1){if(item.Name=="Minute-Average-Line"){item.Color=g_JSChartResource.Minute.AvPriceColor;}}else if(i==2){if(item.Name=="Minute-Vol-Bar"){item.Color=g_JSChartResource.Minute.VolBarColor;}}}};this.StopAutoUpdate=function(){this.CancelAutoUpdate();if(!this.IsAutoUpdate)return;this.IsAutoUpdate=false;};this.ClickFrameButton=function(button,e){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_FRAME_TOOLBAR);if(event&&event.Callback){var data={Info:button,PreventDefault:false};//PreventDefault 是否阻止内置的点击处理
7542
7555
  event.Callback(event,data,this);if(data.PreventDefault)return;}if(button.ID==JSCHART_BUTTON_ID.CLOSE_BEFOREOPEN_ID){this.ShowCallAuctionData({Left:false,Right:false,MultiDay:{Left:false,Right:false}});}if(button.ID==JSCHART_BUTTON_ID.CLOSE_OVERLAY_INDEX){var id=button.IndexID;if(id)this.DeleteOverlayWindowsIndex(id);}else if(button.ID==JSCHART_BUTTON_ID.MODIFY_OVERLAY_INDEX_PARAM){var id=button.IndexID;var frame=button.Frame;e.data={Chart:this,Identify:id,IsOverlay:true};if(frame.ModifyIndexEvent)frame.ModifyIndexEvent(e);}else if(button.ID==JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW){var frame=button.Frame;this.RemoveIndexWindow(frame.Identify);}else if(button.ID==JSCHART_BUTTON_ID.CHANGE_INDEX){var frame=button.Frame;e.data={Chart:this,Identify:frame.Identify,IsOverlay:false};if(frame.ChangeIndexEvent)frame.ChangeIndexEvent(e);}else if(button.ID==JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM){var frame=button.Frame;e.data={Chart:this,Identify:frame.Identify,IsOverlay:false};if(frame.ModifyIndexEvent)frame.ModifyIndexEvent(e);}else if(button.ID==JSCHART_BUTTON_ID.OVERLAY_INDEX){var frame=button.Frame;e.data={Chart:this,Identify:frame.Identify,IsOverlay:true};if(frame.ChangeIndexEvent)frame.ChangeIndexEvent(e);}else if(button.ID==JSCHART_BUTTON_ID.MAX_MIN_WINDOW){var id=button.IndexID;var frame=button.Frame;var frameId=button.FrameID;if(frameId>=this.Frame.ZoomStartWindowIndex){if(this.ZoomIndexWindow(frameId,null)){this.Frame.SetSizeChage(true);this.Draw();}}}else if(button.ID==JSCHART_BUTTON_ID.TITLE_WINDOW)//标题模式
@@ -7694,14 +7707,14 @@ for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i].Fr
7694
7707
  {self.RecvMinuteData(data);};}event.Callback(event,data,this);};this.ClearIndexPaint=function(){//清空指标
7695
7708
  if(this.Frame&&this.Frame.SubFrame){for(var i=0;i<this.Frame.SubFrame.length;++i){if(i>=2)this.DeleteIndexPaint(i,true);var item=this.Frame.SubFrame[i];if(IFrameSplitOperator.IsNonEmptyArray(item.OverlayIndex)){for(var j=0;j<item.OverlayIndex.length;++j)//清空叠加指标
7696
7709
  {var overlayItem=item.OverlayIndex[j];for(var k=0;k<overlayItem.ChartPaint.length;++k){var overlayChart=overlayItem.ChartPaint[k];if(overlayChart&&overlayChart.OnDestroy)overlayChart.OnDestroy();}overlayItem.ChartPaint=[];}}}}//清空叠加标题
7697
- for(var i=1;i<this.TitlePaint.length;++i){var item=this.TitlePaint[i];item.OverlayIndex=new _map2.default();}};this.ResetDayOffset=function(){if(this.PageInfo.Enable){this.DayOffset.Offset=this.PageInfo.Offset;this.DayOffset.ShowDayCount=this.PageInfo.ShowDayCount;}else{this.DayOffset.Offset=0;this.DayOffset.ShowDayCount=-1;}this.DayOffset.PageInfo=null;};//切换股票代码
7698
- this.ChangeSymbol=function(symbol,option){this.StopDisplayLatest();this.CancelAutoUpdate();this.AutoUpdateEvent(false,"MinuteChartContainer::ChangeSymbol");this.Symbol=symbol;this.ResetDayOffset();this.ClearIndexPaint();//清空指标
7710
+ for(var i=1;i<this.TitlePaint.length;++i){var item=this.TitlePaint[i];item.OverlayIndex=new _map2.default();}};this.ResetDayOffset=function(){if(this.PageInfo.Enable){this.DayOffset.Offset=this.PageInfo.Offset;this.DayOffset.ShowDayCount=this.PageInfo.ShowDayCount;}else{this.DayOffset.Offset=0;this.DayOffset.ShowDayCount=-1;}this.DayOffset.PageInfo=null;};this.ResetDataStatus=function(){this.DataStatus.MultiDay=false;this.DataStatus.LatestDay=false;};//切换股票代码
7711
+ this.ChangeSymbol=function(symbol,option){this.StopDisplayLatest();this.CancelAutoUpdate();this.AutoUpdateEvent(false,"MinuteChartContainer::ChangeSymbol");this.Symbol=symbol;this.ResetDayOffset();this.ResetDataStatus();this.ClearIndexPaint();//清空指标
7699
7712
  this.ResetOverlaySymbolStatus();this.ReloadChartDrawPicture();this.ClearIndexRunCount();if(option){if(IFrameSplitOperator.IsNumber(option.DayCount))this.DayCount=option.DayCount;if(IFrameSplitOperator.IsNonEmptyArray(option.Windows))//切换指标
7700
7713
  {var systemScript=new JSIndexScript();for(var i=0;i<option.Windows.length;++i){var index=2+i;if(index>=this.WindowIndex.length)break;//暂时不支持 动态增加/减少
7701
7714
  var item=option.Windows[i];if(!item)continue;if(item.Script){this.WindowIndex[index]=new ScriptIndex(item.Name,item.Script,item.Args,item);//脚本执行
7702
7715
  }else if(item.API){var apiItem=item.API;this.WindowIndex[index]=new APIScriptIndex(apiItem.Name,apiItem.Script,apiItem.Args,item);}else{var indexID=item.Index;var indexInfo=systemScript.Get(indexID);if(indexInfo){var args=indexInfo.Args;if(item.Args)indexInfo.Args=item.Args;indexInfo.ID=indexID;this.WindowIndex[index]=new ScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo);//脚本执行
7703
7716
  }}}}}if(!symbol||this.DayCount<=0){this.DrawEmpty();}else{this.ChartSplashPaint.SetTitle(this.LoadDataSplashTitle);this.ChartSplashPaint.EnableSplash(true);//增加下载动画
7704
- this.Draw();this.RequestData();}};this.SetPageInfo=function(pageInfo){if(!pageInfo)return;if(IFrameSplitOperator.IsBool(pageInfo.Enable))this.PageInfo.Enable=pageInfo.Enable;if(IFrameSplitOperator.IsNumber(pageInfo.Offset))this.PageInfo.Offset=pageInfo.Offset;if(IFrameSplitOperator.IsNumber(pageInfo.ShowDayCount))this.PageInfo.ShowDayCount=pageInfo.ShowDayCount;};this.ClearMinuteData=function(){this.SourceData=null;this.DayData=null;this.BeforeOpenData=null;this.AfterCloseData=null;this.MultiDayBeforeOpenData=null;this.MultiDayAfterCloseData=null;};this.ChangeDayCount=function(count,option){if(count<0)return;this.StopDisplayLatest();this.CancelAutoUpdate();this.AutoUpdateEvent(false,"MinuteChartContainer::ChangeDayCount");this.DayCount=count;this.ClearMinuteData();if(option&&option.PageInfo){this.SetPageInfo(option.PageInfo);this.ResetDayOffset();}if(this.DayCount>1){this.ChartDrawPicture=[];}else{this.ReloadChartDrawPicture();}this.ClearIndexPaint();//清空指标
7717
+ this.Draw();this.RequestData();}};this.SetPageInfo=function(pageInfo){if(!pageInfo)return;if(IFrameSplitOperator.IsBool(pageInfo.Enable))this.PageInfo.Enable=pageInfo.Enable;if(IFrameSplitOperator.IsNumber(pageInfo.Offset))this.PageInfo.Offset=pageInfo.Offset;if(IFrameSplitOperator.IsNumber(pageInfo.ShowDayCount))this.PageInfo.ShowDayCount=pageInfo.ShowDayCount;};this.ClearMinuteData=function(){this.SourceData=null;this.DayData=null;this.BeforeOpenData=null;this.AfterCloseData=null;this.MultiDayBeforeOpenData=null;this.MultiDayAfterCloseData=null;};this.ChangeDayCount=function(count,option){if(count<0)return;this.StopDisplayLatest();this.CancelAutoUpdate();this.AutoUpdateEvent(false,"MinuteChartContainer::ChangeDayCount");this.DayCount=count;this.ClearMinuteData();if(option&&option.PageInfo){this.SetPageInfo(option.PageInfo);this.ResetDayOffset();}if(this.DayCount>1){this.ChartDrawPicture=[];}else{this.ReloadChartDrawPicture();}this.ResetDataStatus();this.ClearIndexPaint();//清空指标
7705
7718
  this.ResetOverlaySymbolStatus();this.RequestData();};//叠加股票
7706
7719
  this.OverlaySymbol=function(symbol,option){for(var i=0;i<this.OverlayChartPaint.length;++i){var item=this.OverlayChartPaint[i];if(item.Symbol==symbol){console.warn('[MinuteChartContainer::OverlaySymbol] overlay symbol='+symbol+' exist.');return false;}}var paint=new ChartOverlayMinutePriceLine();paint.Canvas=this.Canvas;paint.ChartBorder=this.Frame.SubFrame[0].Frame.ChartBorder;paint.ChartFrame=this.Frame.SubFrame[0].Frame;paint.Name="Overlay-Minute";paint.Symbol=symbol;paint.Identify='Overlay-Minute-'+symbol;if(option&&option.Color)paint.Color=option.Color;//外部设置颜色
7707
7720
  else paint.Color=g_JSChartResource.OverlaySymbol.Color[g_JSChartResource.OverlaySymbol.Random%g_JSChartResource.OverlaySymbol.Color.length];++g_JSChartResource.OverlaySymbol.Random;paint.MainData=this.SourceData;//绑定主图数据
@@ -7715,7 +7728,7 @@ if(IFrameSplitOperator.IsBool(obj.Left)&&this.IsShowBeforeData!=obj.Left){this.I
7715
7728
  for(var i=0;i<this.Frame.SubFrame.length;++i){var subFrame=this.Frame.SubFrame[i];for(var j=0;j<subFrame.OverlayIndex.length;++j){var overlayItem=subFrame.OverlayIndex[j];for(var k=0;k<overlayItem.ChartPaint.length;++k){var item=overlayItem.ChartPaint[k];if(!item.Data)continue;item.Data.DataOffset=this.DayOffset.DataOffset;}}}};//请求历史分钟数据
7716
7729
  this.RequestHistoryMinuteData=function(){var self=this;this.IsBeforeData=false;this.IsAfterData=false;this.ChartSplashPaint.SetTitle(this.LoadDataSplashTitle);this.ChartSplashPaint.EnableSplash(true);this.Draw();if(this.NetworkFilter){var obj={Name:'MinuteChartContainer::RequestHistoryMinuteData',//类名::函数
7717
7730
  Explain:'多日分时数据',Request:{Url:self.HistoryMinuteApiUrl,Data:{daycount:self.DayCount,symbol:self.Symbol},Type:'POST'},Self:this,PreventDefault:false};this.NetworkFilter(obj,function(data){self.ChartSplashPaint.EnableSplash(false);self.RecvHistoryMinuteData(data);});if(obj.PreventDefault==true)return;//已被上层替换,不调用默认的网络请求
7718
- }JSNetwork.HttpRequest({url:self.HistoryMinuteApiUrl,data:{"symbol":self.Symbol,"daycount":self.DayCount},type:"post",dataType:"json",async:true,success:function success(data){self.ChartSplashPaint.EnableSplash(false);self.RecvHistoryMinuteData(data);}});};this.RecvHistoryMinuteData=function(data){if(this.EnableVerifyRecvData&&data.symbol!=this.Symbol){JSConsole.Chart.Warn('[MinuteChartContainer::RecvHistoryMinuteData] recv data symbol not match. HQChart['+this.Symbol+'] , Recv['+data.symbol+']');return;}this.DayData=MinuteChartContainer.JsonDataToMinuteDataArray(data);this.ColorLineData=MinuteChartContainer.JsonDataToHistoryMinuteLineColorData(data);this.MultiDayBeforeOpenData=MinuteChartContainer.JosnDataToBeforeOpenDataArray(data);this.MultiDayAfterCloseData=MinuteChartContainer.JosnDataToAfterCloseDataArray(data);var updateTime=MinuteChartContainer.JsonDataToHistoryMinuteLastUpdateTime(data);this.CaclutateCallCationYRange();this.Symbol=data.symbol;this.Name=data.name;this.SetCallCationDataBorder({Left:false,Right:false,MultiDay:{Left:this.IsShowMultiDayBeforeData,Right:this.IsShowMultiDayAfterData}});this.CaclutateLimitPrice(this.DayData[0].YClose,data.data[0].limitprice);//计算涨停价格
7731
+ }JSNetwork.HttpRequest({url:self.HistoryMinuteApiUrl,data:{"symbol":self.Symbol,"daycount":self.DayCount},type:"post",dataType:"json",async:true,success:function success(data){self.ChartSplashPaint.EnableSplash(false);self.RecvHistoryMinuteData(data);}});};this.RecvHistoryMinuteData=function(data){if(this.EnableVerifyRecvData&&data.symbol!=this.Symbol){JSConsole.Chart.Warn('[MinuteChartContainer::RecvHistoryMinuteData] recv data symbol not match. HQChart['+this.Symbol+'] , Recv['+data.symbol+']');return;}this.DayData=MinuteChartContainer.JsonDataToMinuteDataArray(data);this.ColorLineData=MinuteChartContainer.JsonDataToHistoryMinuteLineColorData(data);this.MultiDayBeforeOpenData=MinuteChartContainer.JosnDataToBeforeOpenDataArray(data);this.MultiDayAfterCloseData=MinuteChartContainer.JosnDataToAfterCloseDataArray(data);var updateTime=MinuteChartContainer.JsonDataToHistoryMinuteLastUpdateTime(data);this.DataStatus.MultiDay=true;this.CaclutateCallCationYRange();this.Symbol=data.symbol;this.Name=data.name;this.SetCallCationDataBorder({Left:false,Right:false,MultiDay:{Left:this.IsShowMultiDayBeforeData,Right:this.IsShowMultiDayAfterData}});this.CaclutateLimitPrice(this.DayData[0].YClose,data.data[0].limitprice);//计算涨停价格
7719
7732
  this.UpdateHistoryMinuteUI(updateTime);this.RecvMinuteDataEvent({FunctionName:"RecvHistoryMinuteData"});this.RequestOverlayHistoryMinuteData();this.BindAllOverlayIndexData(this.SourceData);this.AutoUpdateEvent(true,"MinuteChartContainer::RequestHistoryMinuteData");this.AutoUpdate();};this.CaclutateCallCationYRange=function(){//多日集合竞价Y轴统一成交量
7720
7733
  var afterRange=null,beforeRange=null;if(IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData)){var range={Max:null,Min:null};for(var i=0;i<this.MultiDayAfterCloseData.length;++i){var item=this.MultiDayAfterCloseData[i];if(range.Max==null)range.Max=item.VolMax;else if(range.Max<item.VolMax)range.Max=item.VolMax;if(range.Min==null)range.Min=item.VolMin;else if(range.Min>item.VolMin)range.Min=item.VolMin;}afterRange=range;}if(IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData)){var range={Max:null,Min:null};for(var i=0;i<this.MultiDayBeforeOpenData.length;++i){var item=this.MultiDayBeforeOpenData[i];if(range.Max==null)range.Max=item.VolMax;else if(range.Max<item.VolMax)range.Max=item.VolMax;if(range.Min==null)range.Min=item.VolMin;else if(range.Min>item.VolMin)range.Min=item.VolMin;}beforeRange=range;}if(this.ShareAfterVol==2)// 公用坐标
7721
7734
  {if(afterRange&&beforeRange){var max=Math.max(afterRange.Max,beforeRange.Max);var min=Math.min(afterRange.Min,beforeRange.Min);afterRange.Max=beforeRange.Max=max;afterRange.Min=beforeRange.Min=min;}}if(afterRange){for(var i=0;i<this.MultiDayAfterCloseData.length;++i){var item=this.MultiDayAfterCloseData[i];item.VolMax=afterRange.Max;item.VolMin=afterRange.Min;}}if(beforeRange){for(var i=0;i<this.MultiDayBeforeOpenData.length;++i){var item=this.MultiDayBeforeOpenData[i];item.VolMax=beforeRange.Max;item.VolMin=beforeRange.Min;}}};this.UpdateHistoryMinuteUI=function(updateTime){var allMinuteData=this.HistoryMinuteDataToArray(this.DayData);//原始数据
@@ -7758,7 +7771,7 @@ this.CreateChartDrawPictureByStorage();//创建画图工具
7758
7771
  this.UpdateFrameMaxMin();//调整坐标最大 最小值
7759
7772
  this.Frame.SetSizeChage(true);this.Draw();this.BindAllOverlayIndexData(this.SourceData);this.AutoUpdateEvent(true,"MinuteChartContainer::RecvUpdateMinuteData");this.AutoUpdate();};this.RecvMinuteData=function(data){if(!data){JSConsole.Chart.Warn("[MinuteChartContainer::RecvMinuteData] recv data is null");return;}if(data.dataType==1)//增量更新数据模式
7760
7773
  {this.RecvUpdateMinuteData(data);return;}if(!data.stock[0])return;if(data.stock[0].symbol!=this.Symbol&&this.EnableVerifyRecvData){JSConsole.Chart.Warn('[MinuteChartContainer::RecvMinuteData] recv data symbol not match. HQChart['+this.Symbol+'] , Recv['+data.stock[0].symbol+']');return;}var aryMinuteData=MinuteChartContainer.JsonDataToMinuteData(data);var aryColorData=MinuteChartContainer.JsonDataToMinuteLineColorData(data);this.BeforeOpenData=null;this.AfterCloseData=null;var beforeOpenData=MinuteChartContainer.JsonDataToBeforeOpenData(data);var afterCloseData=MinuteChartContainer.JsonDataToAfterCloseData(data);var updateTime=MinuteChartContainer.JsonDataToMinuteLastUpdateTime(data);//数据最后的更新时间
7761
- if(this.IsBeforeData)this.BeforeOpenData=beforeOpenData;if(this.IsAfterData)this.AfterCloseData=afterCloseData;if(this.DayCount>1)//多日走势图
7774
+ if(this.IsBeforeData)this.BeforeOpenData=beforeOpenData;if(this.IsAfterData)this.AfterCloseData=afterCloseData;this.DataStatus.LatestDay=true;if(this.DayCount>1)//多日走势图
7762
7775
  {this.UpdateCallCationData(beforeOpenData,afterCloseData);this.UpdateLineColorData(aryColorData,data.stock[0].date);this.UpdateLatestMinuteData(aryMinuteData,data.stock[0].date,data.stock[0]);this.UpdateHistoryMinuteUI(updateTime);this.RecvMinuteDataEvent({FunctionName:"RecvMinuteData"});this.RequestOverlayMinuteData();//请求叠加数据 (主数据下载完再下载)
7763
7776
  this.BindAllOverlayIndexData(this.SourceData);this.AutoUpdateEvent(true,"MinuteChartContainer::RecvMinuteData");this.AutoUpdate();return;}//原始数据
7764
7777
  var sourceData=new ChartData();sourceData.Data=aryMinuteData;sourceData.UpdateTime=updateTime;this.ColorLineData=aryColorData;this.TradeDate=data.stock[0].date;this.Frame.SetDayCount(1);//单日数据
@@ -11489,7 +11502,8 @@ outItem.IsShowTitle=false;break;}if(attr.indexOf('COLOR')==0){outItem.Color=attr
11489
11502
  {var lockData={IsLocked:true,Callback:this.LockCallback,IndexName:this.Name,ID:this.LockID,BG:this.LockBG,Text:this.LockText,TextColor:this.LockTextColor,Font:this.LockFont,Count:this.LockCount,MinWidth:this.LockMinWidth};hqChart.Frame.SubFrame[windowIndex].Frame.SetLock(lockData);}hqChart.UpdataDataoffset();//更新数据偏移
11490
11503
  hqChart.UpdateFrameMaxMin();//调整坐标最大 最小值
11491
11504
  if(data.Redraw===false)//是否重绘
11492
- {}else{hqChart.Draw();}if(hqChart.GetIndexEvent){var event=hqChart.GetIndexEvent();//指标计算完成回调
11505
+ {}else{if(this.IsSync===false)//同步的指标不用刷新
11506
+ hqChart.Draw();}if(hqChart.GetIndexEvent){var event=hqChart.GetIndexEvent();//指标计算完成回调
11493
11507
  if(event){var data={OutVar:this.OutVar,WindowIndex:windowIndex,Name:this.Name,Arguments:this.Arguments,HistoryData:hisData,Stock:{Symbol:hqChart.Symbol,Name:hqChart.Name}};event.Callback(event,data,this);}}};this.FittingArray=function(sourceData,date,time,hqChart,arrayType)//arrayType 0=单值数组 1=结构体
11494
11508
  {var kdata=hqChart.ChartPaint[0].Data;//K线
11495
11509
  var arySingleData=[];for(var i in sourceData){var value=sourceData[i];var indexItem=new SingleData();//单列指标数据
@@ -12641,7 +12655,7 @@ function HQChartScriptWorker(){this.Create=function(){var _this60=this;addEventL
12641
12655
  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);};}/********************************************************************************
12642
12656
  * 版本信息输出
12643
12657
  *
12644
- */var HQCHART_VERSION="1.1.12539";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();//把给外界调用的方法暴露出来
12658
+ */var HQCHART_VERSION="1.1.12541";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();//把给外界调用的方法暴露出来
12645
12659
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
12646
12660
  // BaseIndex:BaseIndex,
12647
12661
  // ChartLine:ChartLine,
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.12540",
5
+ "version": "1.1.12549",
6
6
  "main": "lib/main.js",
7
7
  "private": false,
8
8
  "license": "Apache License 2.0",
@@ -22865,7 +22865,8 @@ function APIScriptIndex(name,script,args,option, isOverlay)
22865
22865
  }
22866
22866
  else
22867
22867
  {
22868
- hqChart.Draw();
22868
+ if (this.IsSync===false) //同步的指标不用刷新
22869
+ hqChart.Draw();
22869
22870
  }
22870
22871
 
22871
22872
  if (hqChart.GetIndexEvent)