hqchart 1.1.11313 → 1.1.11321

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.
@@ -1362,7 +1362,7 @@ var scriptData=new JSIndexScript();for(var i=0;i<option.Windows.length;++i){var
1362
1362
  this.CreateMinuteChartContainer=function(option){var chart=null;if(option.Type==="分钟走势图横屏")chart=new MinuteChartHScreenContainer(this.CanvasElement);else chart=new MinuteChartContainer(this.CanvasElement);if(option.NetworkFilter)chart.NetworkFilter=option.NetworkFilter;chart.ModifyIndexDialog=this.ModifyIndexDialog;chart.ChangeIndexDialog=this.ChangeIndexDialog;var windowsCount=2;if(option.Windows&&option.Windows.length>0)windowsCount+=option.Windows.length;//指标窗口从第3个窗口开始
1363
1363
  if(option.EnableScrollUpDown==true)chart.EnableScrollUpDown=option.EnableScrollUpDown;if(option.DisableMouse==true)chart.DisableMouse=option.DisableMouse;if(option.ScriptError)chart.ScriptErrorCallback=option.ScriptError;//指标执行错误回调
1364
1364
  if(IFrameSplitOperator.IsString(option.SplashTitle))chart.LoadDataSplashTitle=option.SplashTitle;if(IFrameSplitOperator.IsBool(option.EnableSelectRect))chart.EnableSelectRect=option.EnableSelectRect;//是否启用区间选择
1365
- if(IFrameSplitOperator.IsBool(option.EnableZoomIndexWindow))chart.EnableZoomIndexWindow=option.EnableZoomIndexWindow;if(IFrameSplitOperator.IsBool(option.IsDrawPictureXY))chart.IsDrawPictureXY=option.IsDrawPictureXY;if(IFrameSplitOperator.IsBool(option.EnableNewIndex))chart.EnableNewIndex=option.EnableNewIndex;if(IFrameSplitOperator.IsBool(option.EnableIndexChartDrag))chart.EnableIndexChartDrag=option.EnableIndexChartDrag;chart.SelectRectDialog=new MinuteSelectRectDialog(this.DivElement);if(option.Minute)//分钟走势图属性设置
1365
+ if(IFrameSplitOperator.IsBool(option.EnableZoomIndexWindow))chart.EnableZoomIndexWindow=option.EnableZoomIndexWindow;if(IFrameSplitOperator.IsBool(option.IsDrawPictureXY))chart.IsDrawPictureXY=option.IsDrawPictureXY;if(IFrameSplitOperator.IsBool(option.EnableNewIndex))chart.EnableNewIndex=option.EnableNewIndex;if(IFrameSplitOperator.IsBool(option.EnableIndexChartDrag))chart.EnableIndexChartDrag=option.EnableIndexChartDrag;if(option.GlobalOption){var item=option.GlobalOption;if(IFrameSplitOperator.IsBool(item.IsValueFullRange))chart.GlobalOption.IsValueFullRange=item.IsValueFullRange;}chart.SelectRectDialog=new MinuteSelectRectDialog(this.DivElement);if(option.Minute)//分钟走势图属性设置
1366
1366
  {if(option.Minute.IsShowTooltip==false)chart.IsShowTooltip=false;if(option.Minute.DragMode>=0)chart.DragMode=option.Minute.DragMode;}if(option.Language){var value=g_JSChartLocalization.GetLanguageID(option.Language);if(IFrameSplitOperator.IsNumber(value))chart.LanguageID=value;}if(option.Info&&option.Info.length>0)chart.SetMinuteInfo(option.Info,false);if(option.DrawTool)//画图工具
1367
1367
  {if(option.DrawTool.StorageKey&&chart.ChartDrawStorage)chart.ChartDrawStorage.Load(option.DrawTool.StorageKey);}if(option.BeforeOpen)//集合竞价
1368
1368
  {var item=option.BeforeOpen;if(IFrameSplitOperator.IsBool(item.IsShow))chart.IsShowBeforeData=item.IsShow;if(IFrameSplitOperator.IsNumber(item.Width))chart.ExtendWidth.Left=item.Width;if(IFrameSplitOperator.IsBool(item.IsShowMultiDay))chart.IsShowMultiDayBeforeData=item.IsShowMultiDay;if(IFrameSplitOperator.IsNumber(item.MulitiDayWidth))chart.MultiDayExtendWidth.Left=item.MulitiDayWidth;}if(option.AfterClose)//收盘集合竞价
@@ -1630,7 +1630,7 @@ this.EnableYDrag={Left:false,Right:false};//是否可以拖拽Y轴,放大缩小Y
1630
1630
  this.EnableZoomIndexWindow=false;//是否支持双击缩放附图窗口
1631
1631
  this.PhoneDBClick=new PhoneDBClick();this.SelectedChart={EnableSelected:false,EnableMoveOn:false,Selected:{Identify:null},MoveOn:{Identify:null}};//选中图形
1632
1632
  this.IndexChartDrag;//拖拽指标图形
1633
- this.EnableIndexChartDrag=false;this.ChartDestroy=function()//销毁
1633
+ this.EnableIndexChartDrag=false;this.GlobalOption={IsValueFullRange:false};this.ChartDestroy=function()//销毁
1634
1634
  {this.IsDestroy=true;this.StopAutoUpdate();if(this.GetLatestVersionTimer!=null){clearTimeout(this.GetLatestVersionTimer);this.GetLatestVersionTimer=null;}};this.ChartDestory=this.ChartDestroy;//老版本写错了,需要兼容下
1635
1635
  this.GetLatestVersionTimer=null;//获取最新版本
1636
1636
  this.GetLatestVersion=function(){var _this2=this;if(this.GetLatestVersionTimer!=null){clearTimeout(this.GetLatestVersionTimer);this.GetLatestVersionTimer=null;}var roundeTime=Math.floor(Math.random()*50);var waittimer=1000*60*3+roundeTime*1000;var value="aHR0cHM6Ly9ocWNoYXJ0LnplYWxpbmsuY29tL2FwaS9HZXRWZXJzaW9u";JSConsole.Chart.Log("[JSChartContainer::GetLatestVersion] wait for get hqchart latest version. ",waittimer);this.GetLatestVersionTimer=setTimeout(function(){var width=0,height=0;if(_this2.Frame&&_this2.Frame.ChartBorder){width=_this2.Frame.ChartBorder.GetChartWidth();height=_this2.Frame.ChartBorder.GetChartHeight();}var url=atob(value)+'?width='+width+'&height='+height+'&type=h5';if(JSChart.LastVersion!=null)return;//只请求一次
@@ -1997,7 +1997,7 @@ this.IsShowIndexTitle=true;//显示整个指标标题信息
1997
1997
  this.IsDrawTitleBottomLine=false;this.BorderLine=null;//1=上 2=下 4=左 8=右
1998
1998
  this.Buttons=[];//按钮事件
1999
1999
  this.IsMinSize=false;//窗口是否最小化
2000
- this.LogoTextColor=g_JSChartResource.FrameLogo.TextColor;this.LogoTextFont=g_JSChartResource.FrameLogo.Font;this.PtInButtons=function(x,y)//坐标是否在按钮上
2000
+ this.LogoTextColor=g_JSChartResource.FrameLogo.TextColor;this.LogoTextFont=g_JSChartResource.FrameLogo.Font;this.GlobalOption;this.PtInButtons=function(x,y)//坐标是否在按钮上
2001
2001
  {for(var i=0;i<this.Buttons.length;++i){var item=this.Buttons[i];if(!item.Rect)continue;var rect=item.Rect;this.Canvas.beginPath();this.Canvas.rect(rect.Left,rect.Top,rect.Width,rect.Height);if(this.Canvas.isPointInPath(x,y)){return{ID:item.ID,Rect:rect};}}return null;};this.GetBorder=function(){if(this.IsHScreen)return this.ChartBorder.GetHScreenBorder();else return this.ChartBorder.GetBorder();};this.Draw=function(){this.Buttons=[];this.DrawFrame();this.DrawBorder();this.SizeChange=false;this.XYSplit=false;};this.DrawFrame=function(){};this.ClearCoordinateText=function(option){if(IFrameSplitOperator.IsNonEmptyArray(this.HorizontalInfo)){for(var i=0;i<this.HorizontalInfo.length;++i){var item=this.HorizontalInfo[i];if(item&&item.Message&&Array.isArray(item.Message))item.Message[0]=item.Message[1]=null;}}if(IFrameSplitOperator.IsNonEmptyArray(this.VerticalInfo)){for(var i=0;i<this.VerticalInfo.length;++i){var item=this.VerticalInfo[i];if(item&&item.Message&&Array.isArray(item.Message))item.Message[0]=item.Message[1]=null;}}};//画边框
2002
2002
  this.DrawBorder=function(){if(!this.IsShowBorder)return;if(this.IsMinSize)return;var border=this.IsHScreen==true?this.ChartBorder.GetHScreenBorder():this.ChartBorder.GetBorder();var left=ToFixedPoint(border.Left);var top=ToFixedPoint(border.Top);var right=ToFixedPoint(border.Right);var bottom=ToFixedPoint(border.Bottom);var width=right-left;var height=bottom-top;//JSConsole.Chart.Log('[IChartFramePainting.DrawBorder] bottom',bottom);
2003
2003
  if(this.BorderLine==null){this.Canvas.strokeStyle=this.PenBorder;this.Canvas.strokeRect(left,top,width,height);}else if(IFrameSplitOperator.IsPlusNumber(this.BorderLine))//单独绘制每个边框
@@ -2149,7 +2149,7 @@ var top=ToFixedPoint(border.Top);var bottom=ToFixedPoint(border.Bottom);this.Can
2149
2149
  {this.Canvas.fillStyle=this.AfterBGColor;var left=ToFixedPoint(this.ChartBorder.GetRight());var right=ToFixedPoint(border.Right);var width=right-left;var height=bottom-top;this.Canvas.fillRect(left,top,width,height);}};//选中的画图工具X轴坐标信息
2150
2150
  this.DrawPictureXCoordinate=function(drawPicture,range,option){if(this.IsHScreen)return;if(!range)return;if(!IFrameSplitOperator.IsNonEmptyArray(range.Points))return;var border=this.GetBorder();var left=border.Left;var right=border.Right;this.Canvas.font=this.DrawPicture.Font;var fontHeight=this.GetFontHeight();if(range.X){var xRange=range.X;var xLeft=xRange.Min.X;var xRight=xRange.Max.X;if(xLeft<left)xLeft=left;if(xRight>right)xRight=right;this.Canvas.fillStyle=this.DrawPicture.BGColor;this.Canvas.fillRect(xLeft,border.Bottom,xRight-xLeft,fontHeight);}for(var i=0;i<range.Points.length;++i){var item=range.Points[i];if(item.X<left||item.X>right)continue;var index=parseInt(this.GetXData(item.X));var kItem=this.GetKItem(index,option);if(kItem){//var text=IFrameSplitOperator.FormatDateString(kItem.Date,null);
2151
2151
  var text=IFrameSplitOperator.FormatTimeString(kItem.Time,"HH:MM");var textWidth=this.Canvas.measureText(text).width+2;var textLeft=item.X-textWidth/2;if(textLeft<left)textLeft=left;this.Canvas.fillStyle=this.DrawPicture.TextBGColor;this.Canvas.fillRect(textLeft,border.Bottom,textWidth,fontHeight);this.Canvas.fillStyle=this.DrawPicture.TextColor;var yCenter=border.Bottom+fontHeight;this.Canvas.fillText(text,textLeft+1,yCenter);}}};this.GetKItem=function(currentIndex,option){if(!this.Data)return null;if(!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return null;if(currentIndex<this.Data.Data.length){return this.Data.Data[currentIndex];}else{var kItem=this.Data.Data[this.Data.Data.length-1];var xDatetime=g_MinuteTimeStringData.GetTimeData(option.Symbol);var index=currentIndex%xDatetime.length;var timeItem=xDatetime[index];return{Date:kItem.Date,Time:timeItem};}};//分割x,y轴坐标信息
2152
- this.SplitXYCoordinate=function(){if(this.XYSplit==false)return;if(this.YSplitOperator!=null)this.YSplitOperator.Operator();if(this.XSplitOperator!=null)this.XSplitOperator.Operator();};this.GetMultiDayXFromIndex=function(index,border){var dayBorder=border.DayBorder;var minuteIndex=index%this.MinuteCount;var dayIndex=parseInt(index/this.MinuteCount);if(dayIndex>=dayBorder.length)dayIndex=dayBorder.length-1;var client=dayBorder[dayIndex];var count=this.MinuteCount-1;if(minuteIndex>=count){return client.RightEx;}else{var width=client.RightEx-client.LeftEx;var offset=client.LeftEx+width*minuteIndex/count;return offset;}};this.GetXFromIndex=function(index){var count=this.XPointCount-1;var border=this.ChartBorder.GetBorder();if(border.DayBorder)return this.GetMultiDayXFromIndex(index,border);if(count==1){if(index==0)return border.LeftEx;else return border.RightEx;}else if(count<=0){return border.LeftEx;}else if(index>=count){return border.RightEx;}else{var width=border.RightEx-border.LeftEx;var offset=border.LeftEx+width*index/count;return offset;}};this.GetMultiDayXData=function(x,border){var dayBorder=border.DayBorder;for(var i=0;i<dayBorder.length;++i){var client=dayBorder[i];if(x>=client.Left&&x<=client.Right){var count=this.MinuteCount-1;var dayMinuteCount=this.MinuteCount*i;if(x<=client.LeftEx)return 0+dayMinuteCount;if(x>=client.RightEx)return count+dayMinuteCount;var width=client.RightEx-client.LeftEx;return(x-client.LeftEx)*(count*1.0/width)+dayMinuteCount;}}};//X坐标转x轴数值
2152
+ this.SplitXYCoordinate=function(){if(this.XYSplit==false)return;if(this.XSplitOperator!=null)this.XSplitOperator.Operator();if(this.YSplitOperator!=null)this.YSplitOperator.Operator();};this.GetMultiDayXFromIndex=function(index,border){var dayBorder=border.DayBorder;var minuteIndex=index%this.MinuteCount;var dayIndex=parseInt(index/this.MinuteCount);if(dayIndex>=dayBorder.length)dayIndex=dayBorder.length-1;var client=dayBorder[dayIndex];var count=this.MinuteCount-1;if(minuteIndex>=count){return client.RightEx;}else{var width=client.RightEx-client.LeftEx;var offset=client.LeftEx+width*minuteIndex/count;return offset;}};this.GetXFromIndex=function(index){var count=this.XPointCount-1;var border=this.ChartBorder.GetBorder();if(border.DayBorder)return this.GetMultiDayXFromIndex(index,border);if(count==1){if(index==0)return border.LeftEx;else return border.RightEx;}else if(count<=0){return border.LeftEx;}else if(index>=count){return border.RightEx;}else{var width=border.RightEx-border.LeftEx;var offset=border.LeftEx+width*index/count;return offset;}};this.GetMultiDayXData=function(x,border){var dayBorder=border.DayBorder;for(var i=0;i<dayBorder.length;++i){var client=dayBorder[i];if(x>=client.Left&&x<=client.Right){var count=this.MinuteCount-1;var dayMinuteCount=this.MinuteCount*i;if(x<=client.LeftEx)return 0+dayMinuteCount;if(x>=client.RightEx)return count+dayMinuteCount;var width=client.RightEx-client.LeftEx;return(x-client.LeftEx)*(count*1.0/width)+dayMinuteCount;}}};//X坐标转x轴数值
2153
2153
  this.GetXData=function(x){var count=this.XPointCount-1;if(count<0)count=0;var border=this.ChartBorder.GetBorder();if(border.DayBorder)return this.GetMultiDayXData(x,border);if(x<=border.LeftEx)return 0;if(x>=border.RightEx)return count;var width=border.RightEx-border.LeftEx;return(x-border.LeftEx)*(count*1.0/width);};this.DrawCustomHorizontal=function()//Y轴刻度定制显示
2154
2154
  {if(this.IsMinSize)return;for(var i in this.CustomHorizontalInfo){var item=this.CustomHorizontalInfo[i];switch(item.Type){case 0:case 1:this.DrawCustomItem(item);//自定义刻度
2155
2155
  break;}}};this.GetLeftExtendXFromIndex=function(index,obj){var count=obj.TotalCount-1;var border=this.ChartBorder.GetBorder();if(border.DayBorder)return this.GetLeftExtendMultiDayXFromIndex(index,obj,border);var left=border.Left;var width=this.ChartBorder.LeftExtendWidth;var offset=left+width*index/count;return offset;};this.GetLeftExtendMultiDayXFromIndex=function(index,obj,border){var dayBorder=border.DayBorder;var client=dayBorder[obj.Index];var count=obj.TotalCount-1;var left=client.Left;var right=client.LeftEx;var width=right-left;var offset=left+width*index/count;return offset;};this.GetLeftExtendMultiDayXData=function(x,obj,border){var dayBorder=border.DayBorder;for(var i=0;i<dayBorder.length;++i){var client=dayBorder[i];if(x>=client.Left&&x<=client.LeftEx){if(!obj[i])return null;var count=obj[i].TotalCount-1;var left=client.Left;var right=client.LeftEx;var width=right-left;var index=(x-left)*(count*1.0/width);return{DayIndex:parseInt(i),DataIndex:index};}}};this.GetLeftExtendXData=function(x,obj){var border=this.ChartBorder.GetBorder();if(border.DayBorder)return this.GetLeftExtendMultiDayXData(x,obj,border);var count=obj.TotalCount-1;if(count<0)count=0;var left=border.Left;var right=border.LeftEx;if(x<=left)return 0;if(x>=right)return count;var width=right-left;return(x-left)*(count*1.0/width);};this.MoveXIndexLeft=function(step,obj){JSConsole.Chart.Log("[MinuteFrame::MoveXIndexLeft] obj ",obj);if(obj.DataType==2)//多日数据
@@ -2837,7 +2837,7 @@ this.SelectedBGColor=g_JSChartResource.SelectedChart.BGColor;this.DrawSelectedSt
2837
2837
  this.PtInChart;//function(x,y) { }
2838
2838
  this.Draw=function(){};this.GetBorder=function(){if(this.ChartFrame.IsHScreen)return this.ChartBorder.GetHScreenBorder();return this.ChartBorder.GetBorder();};this.ClipClient=function(isHScreen)//裁剪客户端
2839
2839
  {if(isHScreen==true){var left=this.ChartBorder.GetLeftEx();var right=this.ChartBorder.GetRightEx();var top=this.ChartBorder.GetTop();var bottom=this.ChartBorder.GetBottom();}else{var left=this.ChartBorder.GetLeft();var right=this.ChartBorder.GetRight();var top=this.ChartBorder.GetTopEx();var bottom=this.ChartBorder.GetBottomEx();}this.Canvas.beginPath();this.Canvas.rect(left,top,right-left,bottom-top);//this.Canvas.stroke(); //调试用
2840
- this.Canvas.clip();};this.GetYFromData=function(value,isLimit){return this.ChartFrame.GetYFromData(value,isLimit);};this.IsMinuteFrame=function(){var isMinute=this.ChartFrame.ClassName=="MinuteFrame"||this.ChartFrame.ClassName=="MinuteHScreenFrame"||this.ChartFrame.ClassName=="OverlayMinuteFrame"||this.ChartFrame.ClassName=="OverlayMinuteHScreenFrame";return isMinute;};this.DrawNotSupportmessage=function(){this.Canvas.font=this.MessageFont;this.Canvas.fillStyle=this.MessageColor;var left=this.ChartBorder.GetLeft();var width=this.ChartBorder.GetWidth();var top=this.ChartBorder.GetTopEx();var height=this.ChartBorder.GetHeightEx();var x=left+width/2;var y=top+height/2;this.Canvas.textAlign="center";this.Canvas.textBaseline="middle";this.Canvas.fillText(this.NotSupportMessage,x,y);};this.GetTooltipData=function(x,y,tooltip){return false;};this.GetMaxMin=function(){var xPointCount=this.ChartFrame.XPointCount;var range={};range.Min=null;range.Max=null;if(!this.Data||!this.Data.Data)return range;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var value=this.Data.Data[i];if(value==null||isNaN(value))continue;if(range.Max==null)range.Max=value;if(range.Min==null)range.Min=value;if(range.Max<value)range.Max=value;if(range.Min>value)range.Min=value;}return range;};this.GetDynamicFont=function(dataWidth,distanceWidth,maxSize,minSize,zoom,fontname)//根据宽度自动获取对应字体
2840
+ this.Canvas.clip();};this.GetYFromData=function(value,isLimit){return this.ChartFrame.GetYFromData(value,isLimit);};this.IsMinuteFrame=function(){var isMinute=this.ChartFrame.ClassName=="MinuteFrame"||this.ChartFrame.ClassName=="MinuteHScreenFrame"||this.ChartFrame.ClassName=="OverlayMinuteFrame"||this.ChartFrame.ClassName=="OverlayMinuteHScreenFrame";return isMinute;};this.DrawNotSupportmessage=function(){this.Canvas.font=this.MessageFont;this.Canvas.fillStyle=this.MessageColor;var left=this.ChartBorder.GetLeft();var width=this.ChartBorder.GetWidth();var top=this.ChartBorder.GetTopEx();var height=this.ChartBorder.GetHeightEx();var x=left+width/2;var y=top+height/2;this.Canvas.textAlign="center";this.Canvas.textBaseline="middle";this.Canvas.fillText(this.NotSupportMessage,x,y);};this.GetTooltipData=function(x,y,tooltip){return false;};this.GetMaxMin=function(){var xPointCount=this.ChartFrame.XPointCount;var start=this.Data.DataOffset;if(this.ChartFrame.GlobalOption&&this.ChartFrame.GlobalOption.IsValueFullRange){start=0;xPointCount=this.Data.Data.length;}var range={};range.Min=null;range.Max=null;if(!this.Data||!this.Data.Data)return range;for(var i=start,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var value=this.Data.Data[i];if(value==null||isNaN(value))continue;if(range.Max==null)range.Max=value;if(range.Min==null)range.Min=value;if(range.Max<value)range.Max=value;if(range.Min>value)range.Min=value;}return range;};this.GetDynamicFont=function(dataWidth,distanceWidth,maxSize,minSize,zoom,fontname)//根据宽度自动获取对应字体
2841
2841
  {var pixelTatio=GetDevicePixelRatio();maxSize*=pixelTatio;minSize*=pixelTatio;if(maxSize==minSize)//固定大小
2842
2842
  {var font=maxSize.toFixed(0)+'px '+fontname;return font;}var fontSize=dataWidth+distanceWidth;if(zoom){if(zoom.Type==0){if(zoom.Value>0)fontSize=dataWidth*zoom.Value;}else if(zoom.Type==1){if(zoom.Value>0)fontSize=(dataWidth+distanceWidth)*zoom.Value;}else if(zoom.Type==2){if(IFrameSplitOperator.IsNumber(zoom.Value))fontSize=dataWidth+distanceWidth+2*zoom.Value*pixelTatio;}}if(fontSize<minSize)fontSize=minSize;else if(fontSize>maxSize)fontSize=maxSize;var font=fontSize.toFixed(0)+'px '+fontname;/*
2843
2843
  if (dataWidth < 5) font =4*pixelTatio + 'px Arial'; //字体根据数据宽度动态调整
@@ -3161,7 +3161,7 @@ this.MultiDayAfterCloseData;//多日分时图 盘后数据 数组 1天一个
3161
3161
  this.PtInChart=function(x,y){var option={MinuteVolBar:true};return this.PtInBar(x,y,option);};this.DrawSelectedStatus=function(){return this.DrawLinePoint({MinuteVolBar:true});};this.Draw=function(){var isHScreen=this.ChartFrame.IsHScreen===true;if(isHScreen){var border=this.ChartBorder.GetHScreenBorder();var chartright=border.BottomEx;}else{var border=this.ChartBorder.GetBorder();var chartright=border.RightEx;}this.DrawBeforeOpen();this.DrawMultiDayBeforeOpen();var xPointCount=this.ChartFrame.XPointCount;var yBottom=this.ChartFrame.GetYFromData(0);var yPrice=this.YClose;//上一分钟的价格
3162
3162
  var data=this.Data;var bShowColorBar=MARKET_SUFFIX_NAME.IsShowMinuteColorVolBar(this.Symbol);if(bShowColorBar)this.Canvas.strokeStyle=this.CustomColor;for(var i=data.DataOffset,j=0;i<data.Data.length&&j<xPointCount;++i,++j){var item=data.Data[i];var vol=null;if(!item)continue;var price=null;vol=item.Vol;price=item.Close;if(!vol)continue;var y=this.ChartFrame.GetYFromData(vol);var x=this.ChartFrame.GetXFromIndex(j);if(x>chartright)break;//价格>=上一分钟价格 红色 否则绿色
3163
3163
  if(!bShowColorBar)this.Canvas.strokeStyle=price>=yPrice?this.UpColor:this.DownColor;this.Canvas.beginPath();if(isHScreen){this.Canvas.moveTo(y,ToFixedPoint(x));this.Canvas.lineTo(yBottom,ToFixedPoint(x));}else{this.Canvas.moveTo(ToFixedPoint(x),y);this.Canvas.lineTo(ToFixedPoint(x),yBottom);}this.Canvas.stroke();if(price)yPrice=price;}this.DrawAfterClose();this.DrawMultiDayAfterClose();};this.DrawBeforeOpen=function(){if(this.ChartBorder.LeftExtendWidth<10)return;if(!this.BeforeOpenData)return;this.DrawCallAuction(-1,this.BeforeOpenData,true);};this.DrawAfterClose=function(){if(this.ChartBorder.RightExtendWidth<10)return;if(!this.AfterCloseData)return;this.DrawCallAuction(-1,this.AfterCloseData,false);};this.DrawMultiDayBeforeOpen=function(){if(this.ChartBorder.MultiDayMinute.Count<=1||this.ChartBorder.MultiDayMinute.Left<=0)return;if(!this.MultiDayBeforeOpenData)return;var offset=0,showDayCount=this.MultiDayBeforeOpenData.length;if(this.DayOffset){if(IFrameSplitOperator.IsNumber(this.DayOffset.Offset))offset=this.DayOffset.Offset;if(IFrameSplitOperator.IsNumber(this.DayOffset.ShowDayCount))showDayCount=this.DayOffset.ShowDayCount;}for(var i=offset,j=0;i<this.MultiDayBeforeOpenData.length&&j<showDayCount;++i,++j){var dayItem=this.MultiDayBeforeOpenData[i];this.DrawCallAuction(j,dayItem,true);}};this.DrawMultiDayAfterClose=function(){if(this.ChartBorder.MultiDayMinute.Count<=1||this.ChartBorder.MultiDayMinute.Right<=0)return;if(!this.MultiDayAfterCloseData)return;var offset=0,showDayCount=this.MultiDayAfterCloseData.length;if(this.DayOffset){if(IFrameSplitOperator.IsNumber(this.DayOffset.Offset))offset=this.DayOffset.Offset;if(IFrameSplitOperator.IsNumber(this.DayOffset.ShowDayCount))showDayCount=this.DayOffset.ShowDayCount;}for(var i=offset,j=0;i<this.MultiDayAfterCloseData.length&&j<showDayCount;++i,++j){var dayItem=this.MultiDayAfterCloseData[i];this.DrawCallAuction(j,dayItem,false);}};this.DrawCallAuction=function(indexDay,callAutionData,isBeforeOpen){if(!callAutionData)return;callAutionData.Index=indexDay;var border=this.GetBorder();var isHScreen=this.ChartFrame.IsHScreen===true;var yPrice=this.YClose;//上一分钟的价格
3164
- var yBottom=this.ChartFrame.GetYFromData(0);if(callAutionData.Ver==1.0){for(var i in callAutionData.Data){var item=callAutionData.Data[i];if(!item||!IFrameSplitOperator.IsNumber(item.Vol[0]))continue;if(isBeforeOpen){var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[0]);}else{var x=this.ChartFrame.GetRightExtendXFromIndex(i,callAutionData);var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[0]);}this.Canvas.strokeStyle=item.Price>=yPrice?this.UpColor:this.DownColor;this.Canvas.beginPath();if(isHScreen){this.Canvas.moveTo(y,ToFixedPoint(x));this.Canvas.lineTo(yBottom,ToFixedPoint(x));}else{this.Canvas.moveTo(ToFixedPoint(x),y);this.Canvas.lineTo(ToFixedPoint(x),yBottom);}this.Canvas.stroke();if(item.Price)yPrice=item.Price;}}else if(callAutionData.Ver==2.0||callAutionData.Ver==3.0){var range={Max:callAutionData.VolMax,Min:callAutionData.VolMin};for(var i in callAutionData.Data){var item=callAutionData.Data[i];if(!item)continue;if(IFrameSplitOperator.IsPlusNumber(item.Vol[0])){if(isBeforeOpen){var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[0],false,{Range:range});}else{var x=this.ChartFrame.GetRightExtendXFromIndex(i,callAutionData);if(this.ShareAfterVol==1)var y=this.ChartFrame.GetYFromData(item.Vol[0]);else var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[0],false,{Range:range});}this.Canvas.strokeStyle=this.GetBarColor(item.ColorID);this.Canvas.beginPath();if(isHScreen){this.Canvas.moveTo(y,ToFixedPoint(x));this.Canvas.lineTo(yBottom,ToFixedPoint(x));}else{this.Canvas.moveTo(ToFixedPoint(x),y);this.Canvas.lineTo(ToFixedPoint(x),yBottom);}this.Canvas.stroke();}if(IFrameSplitOperator.IsPlusNumber(item.Vol[1])){if(isBeforeOpen){var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[1],false,{Range:range});}else{var x=this.ChartFrame.GetRightExtendXFromIndex(i,callAutionData);if(this.ShareAfterVol==1)var y=this.ChartFrame.GetYFromData(item.Vol[1]);else var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[1],false,{Range:range});}this.Canvas.strokeStyle=this.GetBarColor(item.ColorID);this.Canvas.beginPath();if(isHScreen){y-=yBottom;y=border.RightEx-y;this.Canvas.moveTo(y,ToFixedPoint(x));this.Canvas.lineTo(border.RightEx,ToFixedPoint(x));}else{y-=yBottom;y=border.TopEx-y;this.Canvas.moveTo(ToFixedPoint(x),y);this.Canvas.lineTo(ToFixedPoint(x),border.TopEx);}this.Canvas.stroke();}}}};this.GetBarColor=function(id){switch(id){case 0:return this.UnchangeColor;case 1:return this.UpColor;case 2:return this.DownColor;}if(this.BeforeVolColor&&Array.isArray(this.BeforeVolColor)){var index=id-3;if(index>=0&&index<this.BeforeVolColor.length)return this.BeforeVolColor[index];}return this.UnchangeColor;};this.GetMaxMin=function(){var xPointCount=this.ChartFrame.XPointCount;var range={};range.Min=0;range.Max=null;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var item=this.Data.Data[i];if(!item||!item.Vol)continue;if(range.Max==null)range.Max=item.Vol;if(range.Max<item.Vol)range.Max=item.Vol;}if(this.ShareAfterVol==1){this.GetAfterCloseMaxMin(range);this.GetMultiDayAfterCloseMaxMin(range);}return range;};this.GetAfterCloseMaxMin=function(range){if(this.ChartBorder.RightExtendWidth<10)return;if(!this.AfterCloseData)return;var callAutionData=this.AfterCloseData;if(range.Max==null||range.Max<callAutionData.VolMax)range.Max=callAutionData.VolMax;};this.GetMultiDayAfterCloseMaxMin=function(range){if(this.ChartBorder.MultiDayMinute.Count<=1||this.ChartBorder.MultiDayMinute.Right<=0)return;if(!this.MultiDayAfterCloseData)return;for(var i=0;i<this.MultiDayAfterCloseData.length;++i){var callAutionData=this.MultiDayAfterCloseData[i];if(callAutionData.Ver==2.0||callAutionData.Ver==3.0){if(range.Max==null||range.Max<callAutionData.VolMax)range.Max=callAutionData.VolMax;}}};}function ChartErrorMessage(){this.newMethod=IChartPainting;//派生
3164
+ var yBottom=this.ChartFrame.GetYFromData(0);if(callAutionData.Ver==1.0){for(var i in callAutionData.Data){var item=callAutionData.Data[i];if(!item||!IFrameSplitOperator.IsNumber(item.Vol[0]))continue;if(isBeforeOpen){var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[0]);}else{var x=this.ChartFrame.GetRightExtendXFromIndex(i,callAutionData);var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[0]);}this.Canvas.strokeStyle=item.Price>=yPrice?this.UpColor:this.DownColor;this.Canvas.beginPath();if(isHScreen){this.Canvas.moveTo(y,ToFixedPoint(x));this.Canvas.lineTo(yBottom,ToFixedPoint(x));}else{this.Canvas.moveTo(ToFixedPoint(x),y);this.Canvas.lineTo(ToFixedPoint(x),yBottom);}this.Canvas.stroke();if(item.Price)yPrice=item.Price;}}else if(callAutionData.Ver==2.0||callAutionData.Ver==3.0){var range={Max:callAutionData.VolMax,Min:callAutionData.VolMin};for(var i in callAutionData.Data){var item=callAutionData.Data[i];if(!item)continue;if(IFrameSplitOperator.IsPlusNumber(item.Vol[0])){if(isBeforeOpen){var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[0],false,{Range:range});}else{var x=this.ChartFrame.GetRightExtendXFromIndex(i,callAutionData);if(this.ShareAfterVol==1)var y=this.ChartFrame.GetYFromData(item.Vol[0]);else var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[0],false,{Range:range});}this.Canvas.strokeStyle=this.GetBarColor(item.ColorID);this.Canvas.beginPath();if(isHScreen){this.Canvas.moveTo(y,ToFixedPoint(x));this.Canvas.lineTo(yBottom,ToFixedPoint(x));}else{this.Canvas.moveTo(ToFixedPoint(x),y);this.Canvas.lineTo(ToFixedPoint(x),yBottom);}this.Canvas.stroke();}if(IFrameSplitOperator.IsPlusNumber(item.Vol[1])){if(isBeforeOpen){var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[1],false,{Range:range});}else{var x=this.ChartFrame.GetRightExtendXFromIndex(i,callAutionData);if(this.ShareAfterVol==1)var y=this.ChartFrame.GetYFromData(item.Vol[1]);else var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[1],false,{Range:range});}this.Canvas.strokeStyle=this.GetBarColor(item.ColorID);this.Canvas.beginPath();if(isHScreen){y-=yBottom;y=border.RightEx-y;this.Canvas.moveTo(y,ToFixedPoint(x));this.Canvas.lineTo(border.RightEx,ToFixedPoint(x));}else{y-=yBottom;y=border.TopEx-y;this.Canvas.moveTo(ToFixedPoint(x),y);this.Canvas.lineTo(ToFixedPoint(x),border.TopEx);}this.Canvas.stroke();}}}};this.GetBarColor=function(id){switch(id){case 0:return this.UnchangeColor;case 1:return this.UpColor;case 2:return this.DownColor;}if(this.BeforeVolColor&&Array.isArray(this.BeforeVolColor)){var index=id-3;if(index>=0&&index<this.BeforeVolColor.length)return this.BeforeVolColor[index];}return this.UnchangeColor;};this.GetMaxMin=function(){var xPointCount=this.ChartFrame.XPointCount;var start=this.Data.DataOffset;if(this.ChartFrame.GlobalOption&&this.ChartFrame.GlobalOption.IsValueFullRange===true){xPointCount=this.Data.Data.length;start=0;}var range={};range.Min=0;range.Max=null;for(var i=start,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var item=this.Data.Data[i];if(!item||!item.Vol)continue;if(range.Max==null)range.Max=item.Vol;if(range.Max<item.Vol)range.Max=item.Vol;}if(this.ShareAfterVol==1){this.GetAfterCloseMaxMin(range);this.GetMultiDayAfterCloseMaxMin(range);}return range;};this.GetAfterCloseMaxMin=function(range){if(this.ChartBorder.RightExtendWidth<10)return;if(!this.AfterCloseData)return;var callAutionData=this.AfterCloseData;if(range.Max==null||range.Max<callAutionData.VolMax)range.Max=callAutionData.VolMax;};this.GetMultiDayAfterCloseMaxMin=function(range){if(this.ChartBorder.MultiDayMinute.Count<=1||this.ChartBorder.MultiDayMinute.Right<=0)return;if(!this.MultiDayAfterCloseData)return;for(var i=0;i<this.MultiDayAfterCloseData.length;++i){var callAutionData=this.MultiDayAfterCloseData[i];if(callAutionData.Ver==2.0||callAutionData.Ver==3.0){if(range.Max==null||range.Max<callAutionData.VolMax)range.Max=callAutionData.VolMax;}}};}function ChartErrorMessage(){this.newMethod=IChartPainting;//派生
3165
3165
  this.newMethod();delete this.newMethod;this.ClassName='ChartErrorMessage';//类名
3166
3166
  this.Draw=function(){if(!this.IsShow)return;if(this.NotSupportMessage)this.DrawNotSupportmessage();};}//线段 支持横屏
3167
3167
  function ChartLine(){this.newMethod=IChartPainting;//派生
@@ -3372,7 +3372,8 @@ var ptFirst={};var drawCount=0;var preColor=null;this.Canvas.save();for(var i=da
3372
3372
  bFirstPoint=false;
3373
3373
  preColor=colorItem.Color;
3374
3374
  */}var x=this.ChartFrame.GetXFromIndex(j);var y=this.ChartFrame.GetYFromData(value);if(bFirstPoint){this.Canvas.strokeStyle=colorItem.Color;if(IFrameSplitOperator.IsNumber(colorItem.LineWidth))this.Canvas.lineWidth=colorItem.LineWidth;this.Canvas.beginPath();if(isHScreen)this.Canvas.moveTo(y,x);else this.Canvas.moveTo(x,y);bFirstPoint=false;ptFirst={X:x,Y:y};preColor=colorItem.Color;}else{if(isHScreen)this.Canvas.lineTo(y,x);else this.Canvas.lineTo(x,y);}ptLast.X=x;ptLast.Y=y;ptLast.Price=value;++drawCount;}if(drawCount>0){this.Canvas.stroke();}this.Canvas.restore();};this.GetMaxMin=function(){var xPointCount=this.ChartFrame.XPointCount;var range={};if(this.YClose==null)return range;if(!this.IsShow)return range;range.Min=this.YClose;range.Max=this.YClose;if(this.ChartBorder.LeftExtendWidth>10&&this.BeforeOpenData){for(var i in this.BeforeOpenData.Data){var item=this.BeforeOpenData.Data[i];if(!item)continue;if(IFrameSplitOperator.IsNumber(item.Price)){if(range.Max==null)range.Max=item.Price;if(range.Min==null)range.Min=item.Price;if(range.Max<item.Price)range.Max=item.Price;if(range.Min>item.Price)range.Min=item.Price;}//集合竞价均线统计
3375
- if(this.BeforeOpenData.Ver==3.0&&IFrameSplitOperator.IsNumber(item.AvPrice)){if(range.Max==null)range.Max=item.AvPrice;if(range.Min==null)range.Min=item.AvPrice;if(range.Max<item.AvPrice)range.Max=item.AvPrice;if(range.Min>item.AvPrice)range.Min=item.AvPrice;}}}var data=this.Data;for(var i=data.DataOffset,j=0;i<data.Data.length&&j<xPointCount;++i,++j){var value=null;value=data.Data[i];if(value==null)continue;if(range.Max==null)range.Max=value;if(range.Min==null)range.Min=value;if(range.Max<value)range.Max=value;if(range.Min>value)range.Min=value;}if(range.Max==this.YClose&&range.Min==this.YClose){range.Max=this.YClose+this.YClose*0.1;range.Min=this.YClose-this.YClose*0.1;return range;}var distance=Math.max(Math.abs(this.YClose-range.Max),Math.abs(this.YClose-range.Min));range.Max=this.YClose+distance;range.Min=this.YClose-distance;return range;};this.GetTooltipData=function(x,y,tooltip){var isHScreen=this.ChartFrame.IsHScreen===true;if(isHScreen)return false;if(!this.IsShow)return false;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return false;var position=this.ChartBorder.PtInClient(x,y,this.Canvas,isHScreen);if(position!=1)return false;var data=this.Data;var index=this.ChartFrame.GetXData(x);var end=Math.ceil(index);var start=Math.floor(index);if(end>=data.Data.length||start>=data.Data.length)return false;var lineWidth=5;if(end==start){var value=data.Data[start];}else{var startValue=data.Data[start];var endValue=data.Data[end];var ptStart={X:this.ChartFrame.GetXFromIndex(start),Y:this.ChartFrame.GetYFromData(startValue)};var ptEnd={X:this.ChartFrame.GetXFromIndex(end),Y:this.ChartFrame.GetYFromData(endValue)};this.Canvas.beginPath();this.Canvas.moveTo(ptStart.X,ptStart.Y+lineWidth);this.Canvas.lineTo(ptStart.X,ptStart.Y-lineWidth);this.Canvas.lineTo(ptEnd.X,ptEnd.Y-lineWidth);this.Canvas.lineTo(ptEnd.X,ptEnd.Y+lineWidth);this.Canvas.closePath();if(this.Canvas.isPointInPath(x,y)){tooltip.Data={Index:index,Start:{Index:start,Item:data.Data[start]},End:{Index:end,Value:data.Data[end]}};tooltip.ChartPaint=this;tooltip.Type=5;//走势图线
3375
+ if(this.BeforeOpenData.Ver==3.0&&IFrameSplitOperator.IsNumber(item.AvPrice)){if(range.Max==null)range.Max=item.AvPrice;if(range.Min==null)range.Min=item.AvPrice;if(range.Max<item.AvPrice)range.Max=item.AvPrice;if(range.Min>item.AvPrice)range.Min=item.AvPrice;}}}//价格数据
3376
+ var data=this.Data;for(var i=data.DataOffset,j=0;i<data.Data.length&&j<xPointCount;++i,++j){var value=null;value=data.Data[i];if(value==null)continue;if(range.Max==null)range.Max=value;if(range.Min==null)range.Min=value;if(range.Max<value)range.Max=value;if(range.Min>value)range.Min=value;}if(range.Max==this.YClose&&range.Min==this.YClose){range.Max=this.YClose+this.YClose*0.1;range.Min=this.YClose-this.YClose*0.1;return range;}var distance=Math.max(Math.abs(this.YClose-range.Max),Math.abs(this.YClose-range.Min));range.Max=this.YClose+distance;range.Min=this.YClose-distance;return range;};this.GetTooltipData=function(x,y,tooltip){var isHScreen=this.ChartFrame.IsHScreen===true;if(isHScreen)return false;if(!this.IsShow)return false;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return false;var position=this.ChartBorder.PtInClient(x,y,this.Canvas,isHScreen);if(position!=1)return false;var data=this.Data;var index=this.ChartFrame.GetXData(x);var end=Math.ceil(index);var start=Math.floor(index);if(end>=data.Data.length||start>=data.Data.length)return false;var lineWidth=5;if(end==start){var value=data.Data[start];}else{var startValue=data.Data[start];var endValue=data.Data[end];var ptStart={X:this.ChartFrame.GetXFromIndex(start),Y:this.ChartFrame.GetYFromData(startValue)};var ptEnd={X:this.ChartFrame.GetXFromIndex(end),Y:this.ChartFrame.GetYFromData(endValue)};this.Canvas.beginPath();this.Canvas.moveTo(ptStart.X,ptStart.Y+lineWidth);this.Canvas.lineTo(ptStart.X,ptStart.Y-lineWidth);this.Canvas.lineTo(ptEnd.X,ptEnd.Y-lineWidth);this.Canvas.lineTo(ptEnd.X,ptEnd.Y+lineWidth);this.Canvas.closePath();if(this.Canvas.isPointInPath(x,y)){tooltip.Data={Index:index,Start:{Index:start,Item:data.Data[start]},End:{Index:end,Value:data.Data[end]}};tooltip.ChartPaint=this;tooltip.Type=5;//走势图线
3376
3377
  return true;}}return false;};}//分钟线叠加 支持横屏
3377
3378
  function ChartOverlayMinutePriceLine(){this.newMethod=IChartPainting;//派生
3378
3379
  this.newMethod();delete this.newMethod;this.Color="rgb(65,105,225)";this.MainData;//主图数据
@@ -4004,12 +4005,12 @@ function FrameSplitMinutePriceY(){this.newMethod=IFrameSplitOperator;//派生
4004
4005
  this.newMethod();delete this.newMethod;this.High=null;//最高最低价
4005
4006
  this.Low=null;this.YClose;//昨收
4006
4007
  this.Data;//分钟数据
4007
- this.AverageData;//分钟均线数据
4008
4008
  this.SourceData;//原始数据
4009
4009
  this.OverlayChartPaint;this.SplitCount=7;this.Symbol;this.SplitType=0;//0=默认根据最大最小值分割 1=涨跌停分割 2=数据最大最大值分割
4010
4010
  this.DefaultSplitType=0;this.LimitPrice;//{Max: Min:} 涨跌停价
4011
4011
  this.Custom;this.RightTextFormat=0;//右边刻度显示模式 0=百分比 1=价格
4012
- this.BeforeOpenData;this.IsBeforeData=false;this.AfterCloseData;this.IsAfterData=false;this.MultiDayBeforeOpenData;this.MultiDayAfterCloseData;this.IsEnableDragY=function(){return false;};this.Operator=function(){this.Frame.HorizontalInfo=[];this.Frame.CustomHorizontalInfo=[];if(!this.Data)return;var range=this.GetMaxMin();if(this.Symbol&&MARKET_SUFFIX_NAME.IsUSA(this.Symbol.toUpperCase())){this.USASplit(range);}else if(this.SplitType==2){this.USASplit(range);}else{this.DefaultSplit(range);}this.CustomCoordinate();if(this.GetEventCallback){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_SPLIT_YCOORDINATE);if(event&&event.Callback){var data={ID:this.Frame.Identify,Frame:this.Frame};event.Callback(event,data,this);}}};this.CustomCoordinate=function()//自定义刻度
4012
+ this.BeforeOpenData;this.IsBeforeData=false;this.AfterCloseData;this.IsAfterData=false;this.MultiDayBeforeOpenData;this.MultiDayAfterCloseData;this.DayOffset;this.AverageData;//均线
4013
+ this.DayCount=1;this.GlobalOption;this.IsEnableDragY=function(){return false;};this.Operator=function(){this.Frame.HorizontalInfo=[];this.Frame.CustomHorizontalInfo=[];if(!this.Data)return;var range=this.GetMaxMin();if(this.Symbol&&MARKET_SUFFIX_NAME.IsUSA(this.Symbol.toUpperCase())){this.USASplit(range);}else if(this.SplitType==2){this.USASplit(range);}else{this.DefaultSplit(range);}this.CustomCoordinate();if(this.GetEventCallback){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_SPLIT_YCOORDINATE);if(event&&event.Callback){var data={ID:this.Frame.Identify,Frame:this.Frame};event.Callback(event,data,this);}}};this.CustomCoordinate=function()//自定义刻度
4013
4014
  {if(!this.Custom)return;var defaultfloatPrecision=GetfloatPrecision(this.Symbol);for(var i in this.Custom){var item=this.Custom[i];if(item.Type==1)this.CustomFixedCoordinate(item);else if(item.Type==0){var latestItem=this.GetLatestPrice(defaultfloatPrecision,item);if(latestItem)this.Frame.CustomHorizontalInfo.push(latestItem);}}};this.GetLatestPrice=function(floatPrecision,option){if(!this.Data||!this.Data.Data)return null;if(this.Data.Data.length<=0)return null;var price=this.Data.Data[this.Data.Data.length-1];if(!IFrameSplitOperator.IsNumber(price)||!IFrameSplitOperator.IsNumber(this.YClose))return null;var info=new CoordinateInfo();info.Type=0;info.Value=price;info.TextColor=g_JSChartResource.FrameLatestPrice.TextColor;info.LineType=2;//虚线
4014
4015
  var strPrice=price.toFixed(floatPrecision);if(option.DateTime=='HH:MM'){var latestItem=this.Frame.Data.Data[this.Frame.Data.Data.length-1];var strTime=IFrameSplitOperator.FormatTimeString(latestItem.Time,option.DateTime);var aryText=[{Text:strPrice},{Text:strTime}];if(option.Position=='left')info.Message[0]=aryText;else info.Message[1]=aryText;}else{if(option.Position=='left')info.Message[0]=strPrice;else info.Message[1]=strPrice;}if(price>this.YClose)info.LineColor=g_JSChartResource.FrameLatestPrice.UpBarColor;else if(price<this.YClose)info.LineColor=g_JSChartResource.FrameLatestPrice.DownBarColor;else info.LineColor=g_JSChartResource.FrameLatestPrice.UnchagneBarColor;if(IFrameSplitOperator.IsNumber(option.LineType))info.LineType=option.LineType;if(IFrameSplitOperator.IsPlusNumber(option.LineWidth))info.LineWidth=option.LineWidth;if(option.LineDash)info.LineDash=option.LineDash;if(option.IsShowLine==false)info.LineType=-1;if(option.PositionEx===1)info.ExtendData={Custom:{Position:1}};//强制画在内部
4015
4016
  return info;};this.CustomFixedCoordinate=function(option)//固定坐标刻度
@@ -4017,9 +4018,11 @@ return info;};this.CustomFixedCoordinate=function(option)//固定坐标刻度
4017
4018
  if(IFrameSplitOperator.IsNumber(option.LineType))info.LineType=option.LineType;if(IFrameSplitOperator.IsPlusNumber(option.LineWidth))info.LineWidth=option.LineWidth;if(option.LineDash)info.LineDash=option.LineDash;if(option.IsShowLine==false)info.LineType=-1;if(option.PositionEx===1)info.ExtendData={Custom:{Position:1}};//强制画在内部
4018
4019
  if(IFrameSplitOperator.IsNumber(item.Increase))//涨幅计算价格
4019
4020
  {if(!IFrameSplitOperator.IsNumber(this.YClose))continue;info.Value=this.YClose*(1+item.Increase);}else{info.Value=item.Value;}var text;if(item.Text)text=item.Text;else text=info.Value.toFixed(defaultfloatPrecision);if(option.Position=='left')info.Message[0]=text;else info.Message[1]=text;this.Frame.CustomHorizontalInfo.push(info);}};this.GetCallAuctionMaxMin=function(callAuctionData,range){for(var i in callAuctionData.Data){var item=callAuctionData.Data[i];if(!item)continue;if(IFrameSplitOperator.IsNumber(item.Price)){if(range.Max==null)range.Max=item.Price;if(range.Min==null)range.Min=item.Price;if(range.Max<item.Price)range.Max=item.Price;if(range.Min>item.Price)range.Min=item.Price;}//集合竞价均线统计
4020
- if(callAuctionData.Ver==3.0&&IFrameSplitOperator.IsNumber(item.AvPrice)){if(range.Max==null)range.Max=item.AvPrice;if(range.Min==null)range.Min=item.AvPrice;if(range.Max<item.AvPrice)range.Max=item.AvPrice;if(range.Min>item.AvPrice)range.Min=item.AvPrice;}}};this.GetMaxMin=function()//计算图中所有的数据的最大最小值
4021
- {var max=this.YClose;var min=this.YClose;var data=this.Data;var isBerforeData=false;if(this.SourceData){data=this.SourceData;isBerforeData=true;}for(var i in data.Data){var value=null;if(isBerforeData){var item=data.Data[i];if(item.Before)value=item.Before.Close;else value=item.Close;}else{value=data.Data[i];}if(value==null)continue;if(max<value)max=value;if(min>value)min=value;}if(this.AverageData){for(var i in this.AverageData.Data){if(this.AverageData.Data[i]==null)continue;if(max<this.AverageData.Data[i])max=this.AverageData.Data[i];if(min>this.AverageData.Data[i])min=this.AverageData.Data[i];}}for(var i in this.OverlayChartPaint){var item=this.OverlayChartPaint[i];//if (item.Status!=OVERLAY_STATUS_ID.STATUS_FINISHED_ID) continue;
4022
- var range=item.GetMaxMin();if(range.Max&&range.Max>max)max=range.Max;if(range.Min&&range.Min<min)min=range.Min;}if(this.SplitType==1&&this.LimitPrice){if(max<this.LimitPrice.Max)max=this.LimitPrice.Max;if(min>this.LimitPrice.Min)min=this.LimitPrice.Min;}if(IFrameSplitOperator.IsNumber(this.High)&&IFrameSplitOperator.IsNumber(this.Low)){if(max<this.High)max=this.High;if(min>this.Low)min=this.Low;}var range={Max:null,Min:null};if(this.IsAfterData&&this.AfterCloseData){this.GetCallAuctionMaxMin(this.AfterCloseData,range);}if(this.IsBeforeData&&this.BeforeOpenData){this.GetCallAuctionMaxMin(this.BeforeOpenData,range);}if(this.MultiDayBeforeOpenData&&this.ChartBorder.MultiDayMinute.Count>1&&this.ChartBorder.MultiDayMinute.Left>0){for(var i in this.MultiDayBeforeOpenData){var dayItem=this.MultiDayBeforeOpenData[i];this.GetCallAuctionMaxMin(dayItem,range);}}if(this.MultiDayAfterCloseData&&this.ChartBorder.MultiDayMinute.Count>1&&this.ChartBorder.MultiDayMinute.Right>0){for(var i in this.MultiDayAfterCloseData){var dayItem=this.MultiDayAfterCloseData[i];this.GetCallAuctionMaxMin(dayItem,range);}}if(IFrameSplitOperator.IsNumber(range.Max)&&max<range.Max)max=range.Max;if(IFrameSplitOperator.IsNumber(range.Min)&&min>range.Min)min=range.Min;return{Max:max,Min:min};};this.USASplit=function(range){var max=range.Max;var min=range.Min;if(max==min){max=max+max*0.1;min=min-min*0.1;}else{var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
4021
+ if(callAuctionData.Ver==3.0&&IFrameSplitOperator.IsNumber(item.AvPrice)){if(range.Max==null)range.Max=item.AvPrice;if(range.Min==null)range.Min=item.AvPrice;if(range.Max<item.AvPrice)range.Max=item.AvPrice;if(range.Min>item.AvPrice)range.Min=item.AvPrice;}}};//多日分时图 集合竞价数据
4022
+ this.GetMultiDayBeforeOpenData=function(){if(!this.MultiDayBeforeOpenData||!IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData))return null;if(!this.DayOffset)return this.MultiDayBeforeOpenData;if(!IFrameSplitOperator.IsNumber(this.DayOffset.Offset)||!IFrameSplitOperator.IsNumber(this.DayOffset.ShowDayCount))return null;if(this.GlobalOption&&this.GlobalOption.IsValueFullRange===true)return this.MultiDayBeforeOpenData;var showCount=this.DayOffset.ShowDayCount;var offset=this.DayOffset.Offset;var aryData=this.MultiDayBeforeOpenData.slice(offset,offset+showCount);return aryData;};this.GetMultiDayAfterCloseData=function(){if(!this.MultiDayAfterCloseData||!IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData))return null;if(!this.DayOffset)return this.MultiDayAfterCloseData;if(!IFrameSplitOperator.IsNumber(this.DayOffset.Offset)||!IFrameSplitOperator.IsNumber(this.DayOffset.ShowDayCount))return null;if(this.GlobalOption&&this.GlobalOption.IsValueFullRange===true)return this.MultiDayAfterCloseData;var showCount=this.DayOffset.ShowDayCount;var offset=this.DayOffset.Offset;var aryData=this.MultiDayAfterCloseData.slice(offset,offset+showCount);return aryData;};this.GetMaxMin=function()//计算图中所有的数据的最大最小值
4023
+ {var max=this.YClose;var min=this.YClose;var data=this.Data;var isBerforeData=false;if(this.SourceData){data=this.SourceData;isBerforeData=true;}if(this.DayCount>1)//多日
4024
+ {var offset=this.DayOffset.DataOffset;var showDataCount=this.DayOffset.ShowDataCount;if(this.GlobalOption&&this.GlobalOption.IsValueFullRange===true){offset=0;showDataCount=data.Data.length;}for(var i=offset,j=0;i<data.Data.length&&j<showDataCount;++i,++j){var value=null;if(isBerforeData){var item=data.Data[i];if(item.Before)value=item.Before.Close;else value=item.Close;}else{value=data.Data[i];}if(value==null)continue;if(max<value)max=value;if(min>value)min=value;}if(this.AverageData){for(var i=offset,j=0;i<this.AverageData.Data.length&&j<showDataCount;++i,++j){if(this.AverageData.Data[i]==null)continue;if(max<this.AverageData.Data[i])max=this.AverageData.Data[i];if(min>this.AverageData.Data[i])min=this.AverageData.Data[i];}}}else{for(var i=0;i<data.Data.length;++i){var value=null;if(isBerforeData){var item=data.Data[i];if(item.Before)value=item.Before.Close;else value=item.Close;}else{value=data.Data[i];}if(value==null)continue;if(max<value)max=value;if(min>value)min=value;}if(this.AverageData){for(var i=0;i<this.AverageData.Data.length;++i){if(this.AverageData.Data[i]==null)continue;if(max<this.AverageData.Data[i])max=this.AverageData.Data[i];if(min>this.AverageData.Data[i])min=this.AverageData.Data[i];}}}for(var i in this.OverlayChartPaint){var item=this.OverlayChartPaint[i];//if (item.Status!=OVERLAY_STATUS_ID.STATUS_FINISHED_ID) continue;
4025
+ var range=item.GetMaxMin();if(range.Max&&range.Max>max)max=range.Max;if(range.Min&&range.Min<min)min=range.Min;}if(this.SplitType==1&&this.LimitPrice){if(max<this.LimitPrice.Max)max=this.LimitPrice.Max;if(min>this.LimitPrice.Min)min=this.LimitPrice.Min;}if(IFrameSplitOperator.IsNumber(this.High)&&IFrameSplitOperator.IsNumber(this.Low)){if(max<this.High)max=this.High;if(min>this.Low)min=this.Low;}var range={Max:null,Min:null};if(this.IsAfterData&&this.AfterCloseData){this.GetCallAuctionMaxMin(this.AfterCloseData,range);}if(this.IsBeforeData&&this.BeforeOpenData){this.GetCallAuctionMaxMin(this.BeforeOpenData,range);}var multiDayBeforeOpenData=this.GetMultiDayBeforeOpenData();if(multiDayBeforeOpenData&&this.ChartBorder.MultiDayMinute.Count>1&&this.ChartBorder.MultiDayMinute.Left>0){for(var i=0;i<multiDayBeforeOpenData.length;++i){var dayItem=multiDayBeforeOpenData[i];this.GetCallAuctionMaxMin(dayItem,range);}}var multiDayAfterCloseData=this.GetMultiDayAfterCloseData();if(multiDayAfterCloseData&&this.ChartBorder.MultiDayMinute.Count>1&&this.ChartBorder.MultiDayMinute.Right>0){for(var i=0;i<multiDayAfterCloseData.length;++i){var dayItem=multiDayAfterCloseData[i];this.GetCallAuctionMaxMin(dayItem,range);}}if(IFrameSplitOperator.IsNumber(range.Max)&&max<range.Max)max=range.Max;if(IFrameSplitOperator.IsNumber(range.Min)&&min>range.Min)min=range.Min;return{Max:max,Min:min};};this.USASplit=function(range){var max=range.Max;var min=range.Min;if(max==min){max=max+max*0.1;min=min-min*0.1;}else{var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
4023
4026
  var height=this.Frame.ChartBorder.GetHeight();//画布的高度
4024
4027
  var spacePrice=5*pixelTatio*(max-min)/height;max+=spacePrice;min-=spacePrice;if(min<0)min=range.Min;}var showCount=this.SplitCount;var distance=(max-min)/(showCount-1);var minDistance=[1,0.1,0.01,0.001,0.0001];var defaultfloatPrecision=GetfloatPrecision(this.Symbol);if(distance<minDistance[defaultfloatPrecision]){distance=minDistance[defaultfloatPrecision];max=min+distance*showCount;//min=this.YClose-(distance*(showCount-1)/2);
4025
4028
  }for(var i=0;i<showCount;++i){var price=min+distance*i;if(this.YClose&&price==this.YClose)continue;var coordinate=new CoordinateInfo();coordinate.Value=price;var strPrice=price.toFixed(defaultfloatPrecision);//价格刻度字符串
@@ -4039,7 +4042,7 @@ this.newMethod();delete this.newMethod;this.ShowText=true;//是否显示坐标
4039
4042
  this.Symbol=null;//股票代码 x轴刻度根据股票类型来调整
4040
4043
  this.DayCount=1;this.ShowDateFormate=1;//0=YYYY-MM-DD 1=MM-DD
4041
4044
  this.Operator=function(){this.Frame.VerticalInfo=[];var xPointCount=this.Frame.XPointCount;var width=this.Frame.ChartBorder.GetWidth();var isHScreen=this.Frame.IsHScreen===true;if(isHScreen)width=this.Frame.ChartBorder.GetHeight();width=width/GetDevicePixelRatio();var minuteCoordinate=g_MinuteCoordinateData;var xcoordinateData=minuteCoordinate.GetCoordinateData(this.Symbol,width);var minuteCount=xcoordinateData.Count;var minuteMiddleCount=xcoordinateData.MiddleCount>0?xcoordinateData.MiddleCount:parseInt(minuteCount/2);var xcoordinate=xcoordinateData.Data;this.Frame.XPointCount=minuteCount*this.DayCount;//计算一共显示的数据个数
4042
- this.Frame.MinuteCount=minuteCount;this.Frame.VerticalInfo=[];if(this.DayCount<=1){this.DayOffset.DataOffset=0;for(var i=0;i<xcoordinate.length;++i){var info=new CoordinateInfo();if(g_JSChartResource.Minute.FrameSplitTextColor)info.TextColor=g_JSChartResource.Minute.FrameSplitTextColor;info.Value=xcoordinate[i][0];if(this.ShowText)info.Message[0]=xcoordinate[i][3];this.Frame.VerticalInfo[i]=info;}}else{var offset=0,showDayCount=this.DayData.length;if(this.DayOffset){if(IFrameSplitOperator.IsNumber(this.DayOffset.Offset))offset=this.DayOffset.Offset;if(IFrameSplitOperator.IsNumber(this.DayOffset.ShowDayCount))showDayCount=this.DayOffset.ShowDayCount;}this.DayOffset.DataOffset=offset*minuteCount;for(var i=this.DayData.length-1-offset,j=0;i>=0&&j<showDayCount;--i,++j){var info=new CoordinateInfo();info.Value=j*minuteCount+minuteMiddleCount;info.LineType=-1;//线段不画
4045
+ this.Frame.MinuteCount=minuteCount;this.Frame.VerticalInfo=[];if(this.DayCount<=1){this.DayOffset.DataOffset=0;for(var i=0;i<xcoordinate.length;++i){var info=new CoordinateInfo();if(g_JSChartResource.Minute.FrameSplitTextColor)info.TextColor=g_JSChartResource.Minute.FrameSplitTextColor;info.Value=xcoordinate[i][0];if(this.ShowText)info.Message[0]=xcoordinate[i][3];this.Frame.VerticalInfo[i]=info;}}else{var offset=0,showDayCount=this.DayData.length;if(this.DayOffset){if(IFrameSplitOperator.IsNumber(this.DayOffset.Offset))offset=this.DayOffset.Offset;if(IFrameSplitOperator.IsNumber(this.DayOffset.ShowDayCount))showDayCount=this.DayOffset.ShowDayCount;}this.DayOffset.DataOffset=offset*minuteCount;this.DayOffset.ShowDataCount=this.DayOffset.ShowDayCount*minuteCount;for(var i=this.DayData.length-1-offset,j=0;i>=0&&j<showDayCount;--i,++j){var info=new CoordinateInfo();info.Value=j*minuteCount+minuteMiddleCount;info.LineType=-1;//线段不画
4043
4046
  if(this.ShowText){info.Message[0]=IFrameSplitOperator.FormatDateString(this.DayData[i].Date,this.ShowFormate==0?'YYYY-MM-DD':'MM-DD');info.BG={Index:{Start:j*minuteCount+1,End:(j+1)*minuteCount-1},Date:this.DayData[i].Date};//背景设置
4044
4047
  }this.Frame.VerticalInfo.push(info);var info=new CoordinateInfo();info.Value=(j+1)*minuteCount;this.Frame.VerticalInfo.push(info);}}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);}}};}function FrameSplitXData(){this.newMethod=IFrameSplitOperator;//派生
4045
4048
  this.newMethod();delete this.newMethod;this.ShowText=true;//是否显示坐标信息
@@ -5964,9 +5967,9 @@ if(this.EnableIndexChartDrag)this.CreateExtendChart("DragMovePaint");//子窗口
5964
5967
  for(var i in this.Frame.SubFrame){var titlePaint=new DynamicChartTitlePainting();titlePaint.Frame=this.Frame.SubFrame[i].Frame;titlePaint.Canvas=this.Canvas;titlePaint.LanguageID=this.LanguageID;titlePaint.GetEventCallback=function(id){return _this17.GetEventCallback(id);};titlePaint.SelectedChart=this.SelectedChart;this.TitlePaint.push(titlePaint);}this.ChartCorssCursor.StringFormatX.Frame=this.Frame.SubFrame[0].Frame;this.ChartCorssCursor.StringFormatY.Frame=this.Frame;if(this.ChartCorssCursor.CallAcutionXOperator)this.ChartCorssCursor.CallAcutionXOperator.Frame=this.Frame.SubFrame[0].Frame;var bRegisterKeydown=true;var bRegisterWheel=true;if(option){if(option.KeyDown===false){bRegisterKeydown=false;JSConsole.Chart.Log('[MinuteChartContainer::Create] not register keydown event.');}if(option.Wheel===false){bRegisterWheel=false;JSConsole.Chart.Log('[MinuteChartContainer::Create] not register wheel event.');}}if(bRegisterKeydown)this.UIElement.addEventListener("keydown",function(e){_this17.OnKeyDown(e);},true);//键盘消息
5965
5968
  if(bRegisterWheel)this.UIElement.addEventListener("wheel",function(e){_this17.OnWheel(e);},true);//上下滚动消息
5966
5969
  };//创建子窗口
5967
- this.CreateChildWindow=function(windowCount){var _this18=this;for(var i=0;i<windowCount;++i){var border=new ChartBorder();border.UIElement=this.UIElement;var frame=new MinuteFrame();frame.Canvas=this.Canvas;frame.ChartBorder=border;frame.Identify=i;if(i<2)frame.ChartBorder.TitleHeight=0;frame.XPointCount=243;if(i>=2){if(this.ModifyIndexDialog)frame.ModifyIndexEvent=this.ModifyIndexDialog.DoModal;//绑定菜单事件
5968
- if(this.ChangeIndexDialog)frame.ChangeIndexEvent=this.ChangeIndexDialog.DoModal;}var DEFAULT_HORIZONTAL=[9,8,7,6,5,4,3,2,1];frame.HorizontalMax=DEFAULT_HORIZONTAL[0];frame.HorizontalMin=DEFAULT_HORIZONTAL[DEFAULT_HORIZONTAL.length-1];if(i==0){frame.YSplitOperator=new FrameSplitMinutePriceY();frame.YSplitOperator.FrameSplitData=this.FrameSplitData.get('price');frame.YSplitOperator.GetEventCallback=function(id){return _this18.GetEventCallback(id);};}else{frame.YSplitOperator=new FrameSplitY();frame.YSplitOperator.LanguageID=this.LanguageID;frame.YSplitOperator.FrameSplitData=this.FrameSplitData.get('double');frame.YSplitOperator.GetEventCallback=function(id){return _this18.GetEventCallback(id);};if(i==1)frame.YSplitOperator.ShareAfterVol=this.ShareAfterVol;}frame.YSplitOperator.Frame=frame;frame.YSplitOperator.ChartBorder=border;frame.XSplitOperator=new FrameSplitMinuteX();frame.XSplitOperator.Frame=frame;frame.XSplitOperator.ChartBorder=border;frame.XSplitOperator.DayOffset=this.DayOffset;frame.XSplitOperator.GetEventCallback=function(id){return _this18.GetEventCallback(id);};if(i!=windowCount-1)frame.XSplitOperator.ShowText=false;frame.XSplitOperator.Operator();for(var j in DEFAULT_HORIZONTAL){frame.HorizontalInfo[j]=new CoordinateInfo();frame.HorizontalInfo[j].Value=DEFAULT_HORIZONTAL[j];if(i==0&&j==frame.HorizontalMin)continue;frame.HorizontalInfo[j].Message[1]=DEFAULT_HORIZONTAL[j].toString();frame.HorizontalInfo[j].Font="14px 微软雅黑";}var subFrame=new SubFrameItem();subFrame.Frame=frame;if(i==0)subFrame.Height=20;else subFrame.Height=10;this.Frame.SubFrame[i]=subFrame;}};this.CreateSubFrameItem=function(id){var _this19=this;var border=new ChartBorder();border.UIElement=this.UIElement;var frame=new MinuteFrame();frame.Canvas=this.Canvas;frame.ChartBorder=border;frame.Identify=id;//窗口序号
5969
- frame.XPointCount=243;if(id>=2){if(this.ModifyIndexDialog)frame.ModifyIndexEvent=this.ModifyIndexDialog.DoModal;//绑定菜单事件
5970
+ this.CreateChildWindow=function(windowCount){var _this18=this;for(var i=0;i<windowCount;++i){var border=new ChartBorder();border.UIElement=this.UIElement;var frame=new MinuteFrame();frame.Canvas=this.Canvas;frame.ChartBorder=border;frame.Identify=i;frame.GlobalOption=this.GlobalOption;if(i<2)frame.ChartBorder.TitleHeight=0;frame.XPointCount=243;if(i>=2){if(this.ModifyIndexDialog)frame.ModifyIndexEvent=this.ModifyIndexDialog.DoModal;//绑定菜单事件
5971
+ if(this.ChangeIndexDialog)frame.ChangeIndexEvent=this.ChangeIndexDialog.DoModal;}var DEFAULT_HORIZONTAL=[9,8,7,6,5,4,3,2,1];frame.HorizontalMax=DEFAULT_HORIZONTAL[0];frame.HorizontalMin=DEFAULT_HORIZONTAL[DEFAULT_HORIZONTAL.length-1];if(i==0){frame.YSplitOperator=new FrameSplitMinutePriceY();frame.YSplitOperator.FrameSplitData=this.FrameSplitData.get('price');frame.YSplitOperator.GetEventCallback=function(id){return _this18.GetEventCallback(id);};frame.YSplitOperator.DayOffset=this.DayOffset;frame.YSplitOperator.GlobalOption=this.GlobalOption;}else{frame.YSplitOperator=new FrameSplitY();frame.YSplitOperator.LanguageID=this.LanguageID;frame.YSplitOperator.FrameSplitData=this.FrameSplitData.get('double');frame.YSplitOperator.GetEventCallback=function(id){return _this18.GetEventCallback(id);};if(i==1)frame.YSplitOperator.ShareAfterVol=this.ShareAfterVol;}frame.YSplitOperator.Frame=frame;frame.YSplitOperator.ChartBorder=border;frame.XSplitOperator=new FrameSplitMinuteX();frame.XSplitOperator.Frame=frame;frame.XSplitOperator.ChartBorder=border;frame.XSplitOperator.DayOffset=this.DayOffset;frame.XSplitOperator.GetEventCallback=function(id){return _this18.GetEventCallback(id);};if(i!=windowCount-1)frame.XSplitOperator.ShowText=false;frame.XSplitOperator.Operator();for(var j in DEFAULT_HORIZONTAL){frame.HorizontalInfo[j]=new CoordinateInfo();frame.HorizontalInfo[j].Value=DEFAULT_HORIZONTAL[j];if(i==0&&j==frame.HorizontalMin)continue;frame.HorizontalInfo[j].Message[1]=DEFAULT_HORIZONTAL[j].toString();frame.HorizontalInfo[j].Font="14px 微软雅黑";}var subFrame=new SubFrameItem();subFrame.Frame=frame;if(i==0)subFrame.Height=20;else subFrame.Height=10;this.Frame.SubFrame[i]=subFrame;}};this.CreateSubFrameItem=function(id){var _this19=this;var border=new ChartBorder();border.UIElement=this.UIElement;var frame=new MinuteFrame();frame.Canvas=this.Canvas;frame.ChartBorder=border;frame.Identify=id;//窗口序号
5972
+ frame.XPointCount=243;frame.GlobalOption=this.GlobalOption;if(id>=2){if(this.ModifyIndexDialog)frame.ModifyIndexEvent=this.ModifyIndexDialog.DoModal;//绑定菜单事件
5970
5973
  if(this.ChangeIndexDialog)frame.ChangeIndexEvent=this.ChangeIndexDialog.DoModal;}var DEFAULT_HORIZONTAL=[9,8,7,6,5,4,3,2,1];frame.HorizontalMax=DEFAULT_HORIZONTAL[0];frame.HorizontalMin=DEFAULT_HORIZONTAL[DEFAULT_HORIZONTAL.length-1];frame.YSplitOperator=new FrameSplitY();frame.YSplitOperator.LanguageID=this.LanguageID;frame.YSplitOperator.FrameSplitData=this.FrameSplitData.get('double');frame.YSplitOperator.Frame=frame;frame.YSplitOperator.ChartBorder=border;frame.XSplitOperator=new FrameSplitMinuteX();frame.XSplitOperator.Frame=frame;frame.XSplitOperator.ChartBorder=border;frame.XSplitOperator.ShowText=false;frame.XSplitOperator.GetEventCallback=function(id){return _this19.GetEventCallback(id);};frame.YSplitOperator.GetEventCallback=function(id){return _this19.GetEventCallback(id);};frame.XSplitOperator.Symbol=this.Symbol;if(this.DayCount>1){frame.XSplitOperator.DayCount=this.DayData.length;frame.XSplitOperator.DayData=this.DayData;frame.DayCount=this.DayData.length;}//K线数据绑定
5971
5974
  var xPointCouont=this.Frame.SubFrame[0].Frame.XPointCount;frame.XPointCount=xPointCouont;frame.Data=this.ChartPaint[0].Data;for(var j in DEFAULT_HORIZONTAL){frame.HorizontalInfo[j]=new CoordinateInfo();frame.HorizontalInfo[j].Value=DEFAULT_HORIZONTAL[j];frame.HorizontalInfo[j].Message[1]=DEFAULT_HORIZONTAL[j].toString();frame.HorizontalInfo[j].Font="14px 微软雅黑";}var subFrame=new SubFrameItem();subFrame.Frame=frame;subFrame.Height=10;return subFrame;};this.UpdateXShowText=function(){var bLastFrame=true;for(var i=this.Frame.SubFrame.length-1;i>=0;--i){var item=this.Frame.SubFrame[i].Frame;var subFrame=this.Frame.SubFrame[i];if(bLastFrame){item.XSplitOperator.ShowText=true;if(subFrame.Height>0)bLastFrame=false;}else{item.XSplitOperator.ShowText=false;}}};//删除某一个窗口的指标
5972
5975
  this.DeleteIndexPaint=function(windowIndex,bCallDestroy){var paint=new Array();//踢出当前窗口的指标画法
@@ -6046,10 +6049,11 @@ if(this.DayOffset.ShowDayCount==-1)this.DayOffset.ShowDayCount=this.DayData.leng
6046
6049
  if(this.DayOffset.Offset==-8888)this.DayOffset.Offset=this.DayOffset.DayCount-this.DayOffset.ShowDayCount;//最后一页
6047
6050
  var showDayCount=this.DayOffset.ShowDayCount;this.Frame.SetDayCount(showDayCount);var upperSymbol=this.Symbol.toUpperCase();var yClose=this.DayData[0].YClose;var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol);if(IFrameSplitOperator.IsNumber(this.DayData[0].YClearing)&&isFutures)yClose=this.DayData[0].YClearing;//期货使用前结算价
6048
6051
  this.BindMainData(sourceData,yClose);//外汇 均线暂时不用
6049
- if(MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol))this.ChartPaint[1].Data=null;if(this.Frame.SubFrame.length>2){var bindData=new ChartData();bindData.Data=allMinuteData;for(var i=2;i<this.Frame.SubFrame.length;++i){this.BindIndexData(i,bindData);}}for(var _i27=0;_i27<this.Frame.SubFrame.length;++_i27){var item=this.Frame.SubFrame[_i27];item.Frame.XSplitOperator.Symbol=this.Symbol;item.Frame.XSplitOperator.DayCount=showDayCount;item.Frame.XSplitOperator.DayData=this.DayData;item.Frame.XSplitOperator.Operator();//调整X轴个数
6052
+ if(MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol))this.ChartPaint[1].Data=null;for(var _i27=0;_i27<this.Frame.SubFrame.length;++_i27){var item=this.Frame.SubFrame[_i27];item.Frame.XSplitOperator.Symbol=this.Symbol;item.Frame.XSplitOperator.DayCount=showDayCount;item.Frame.XSplitOperator.DayData=this.DayData;item.Frame.XSplitOperator.Operator();//调整X轴个数
6050
6053
  item.Frame.XSplitOperator.IsBeforeData=this.IsBeforeData;item.Frame.XSplitOperator.IsAfterData=this.IsAfterData;item.Frame.YSplitOperator.Symbol=this.Symbol;item.Frame.YSplitOperator.IsBeforeData=this.IsBeforeData;item.Frame.YSplitOperator.IsAfterData=this.IsAfterData;for(var j in item.OverlayIndex)//子坐标X轴个数同步
6051
6054
  {var overlayItem=item.OverlayIndex[j];overlayItem.Frame.XPointCount=item.Frame.XPointCount;overlayItem.Frame.MinuteCount=item.Frame.MinuteCount;}}this.ChartCorssCursor.StringFormatY.Symbol=this.Symbol;this.ChartCorssCursor.StringFormatX.Symbol=this.Symbol;this.ChartCorssCursor.StringFormatX.IsBeforeData=this.IsBeforeData;this.ChartCorssCursor.StringFormatX.IsAfterData=this.IsAfterData;this.TitlePaint[0].IsShowDate=true;this.UpdateDataOffset();this.UpdateFrameMaxMin();//调整坐标最大 最小值
6052
- this.Frame.SetSizeChage(true);this.Draw();};this.HistoryMinuteDataToArray=function(data){var result=[];for(var i=data.length-1;i>=0;--i){var item=data[i];for(var j=0;j<item.Data.length;++j){result.push(item.Data[j]);}}return result;};this.UpdateLatestMinuteData=function(data,date){for(var i in this.DayData){var item=this.DayData[i];if(item.Date===date){item.Data=data;break;}}};//请求分钟数据
6055
+ this.Frame.SetSizeChage(true);this.Draw();//执行脚本
6056
+ if(this.Frame.SubFrame.length>2){var bindData=new ChartData();bindData.Data=allMinuteData;for(var i=2;i<this.Frame.SubFrame.length;++i){this.BindIndexData(i,bindData);}}};this.HistoryMinuteDataToArray=function(data){var result=[];for(var i=data.length-1;i>=0;--i){var item=data[i];for(var j=0;j<item.Data.length;++j){result.push(item.Data[j]);}}return result;};this.UpdateLatestMinuteData=function(data,date){for(var i in this.DayData){var item=this.DayData[i];if(item.Date===date){item.Data=data;break;}}};//请求分钟数据
6053
6057
  this.RequestMinuteData=function(){var self=this;var fields=["name","symbol","yclose","open","price","high","low","vol","amount","date","time","minute","minutecount"];var upperSymbol=this.Symbol.toUpperCase();if(MARKET_SUFFIX_NAME.IsFutures(upperSymbol)){//期货的需要加上结算价
6054
6058
  fields.push("clearing");fields.push("yclearing");}// 盘前数据(A股)
6055
6059
  this.IsBeforeData=false;if(this.IsShowBeforeData&&this.DayCount===1&&MARKET_SUFFIX_NAME.IsSHSZStockA(self.Symbol)){this.IsBeforeData=true;fields.push('before');}this.IsAfterData=false;if(this.IsShowAfterData&&this.DayCount===1&&MARKET_SUFFIX_NAME.IsSHSZStockA(self.Symbol)){this.IsAfterData=true;}if(this.NetworkFilter){var callCation={Before:this.IsShowBeforeData&&this.DayCount===1,After:this.IsShowAfterData&&this.DayCount===1//集合竞价
@@ -6102,7 +6106,8 @@ this.ChartPaint[0].Source=minuteData;if(MARKET_SUFFIX_NAME.IsSHSZIndex(this.Symb
6102
6106
  }//均线
6103
6107
  bindData=new ChartData();bindData.Data=minuteData.GetMinuteAvPrice();this.ChartPaint[1].Data=bindData;var upperSymbol=this.Symbol.toUpperCase();if(MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol))//外汇没有均线
6104
6108
  this.ChartPaint[1].Data=null;else if(MARKET_SUFFIX_NAME.IsShowAvPrice&&!MARKET_SUFFIX_NAME.IsShowAvPrice(upperSymbol))//外部控制是否显示均线
6105
- this.ChartPaint[1].Data=null;firstFrame.YSplitOperator.AverageData=bindData;firstFrame.YSplitOperator.OverlayChartPaint=this.OverlayChartPaint;firstFrame.YSplitOperator.LimitPrice=this.LimitPrice;firstFrame.YSplitOperator.MultiDayBeforeOpenData=multiBeforeOpenData;firstFrame.YSplitOperator.MultiDayAfterCloseData=multiAfterCloseData;if(extendData){firstFrame.YSplitOperator.High=extendData.High;firstFrame.YSplitOperator.Low=extendData.Low;}else{firstFrame.YSplitOperator.High=null;firstFrame.YSplitOperator.Low=null;}//成交量
6109
+ this.ChartPaint[1].Data=null;firstFrame.YSplitOperator.AverageData=bindData;//均线
6110
+ firstFrame.YSplitOperator.OverlayChartPaint=this.OverlayChartPaint;firstFrame.YSplitOperator.LimitPrice=this.LimitPrice;firstFrame.YSplitOperator.MultiDayBeforeOpenData=multiBeforeOpenData;firstFrame.YSplitOperator.MultiDayAfterCloseData=multiAfterCloseData;firstFrame.YSplitOperator.DayCount=this.DayCount;if(extendData){firstFrame.YSplitOperator.High=extendData.High;firstFrame.YSplitOperator.Low=extendData.Low;}else{firstFrame.YSplitOperator.High=null;firstFrame.YSplitOperator.Low=null;}//成交量
6106
6111
  this.ChartPaint[2].Data=minuteData;this.ChartPaint[2].YClose=yClose;this.ChartPaint[2].Symbol=this.Symbol;this.ChartPaint[2].BeforeOpenData=this.BeforeOpenData;this.ChartPaint[2].AfterCloseData=this.AfterCloseData;this.ChartPaint[2].MultiDayBeforeOpenData=multiBeforeOpenData;this.ChartPaint[2].MultiDayAfterCloseData=multiAfterCloseData;for(var i in this.Frame.SubFrame){var item=this.Frame.SubFrame[i];item.Frame.YSplitOperator.BeforeOpenData=this.BeforeOpenData;item.Frame.YSplitOperator.IsBeforeData=this.IsBeforeData;item.Frame.YSplitOperator.AfterCloseData=this.AfterCloseData;item.Frame.YSplitOperator.IsAfterData=this.IsAfterData;item.Frame.YSplitOperator.MultiDayBeforeOpenData=multiBeforeOpenData;item.Frame.YSplitOperator.MultiDayAfterCloseData=multiAfterCloseData;}if(MARKET_SUFFIX_NAME.IsShowMinutePostionLine(upperSymbol))this.BindOverlayPositionData(minuteData,yClose);//期货,期权 持仓量
6107
6112
  else this.ClearBindOverlayPositionData();this.TitlePaint[0].Data=this.SourceData;//动态标题
6108
6113
  this.TitlePaint[0].Symbol=this.Symbol;this.TitlePaint[0].Name=this.Name;this.TitlePaint[0].YClose=yClose;this.TitlePaint[0].BeforeOpenData=this.BeforeOpenData;this.TitlePaint[0].AfterCloseData=this.AfterCloseData;this.TitlePaint[0].MultiDayBeforeOpenData=this.IsShowMultiDayBeforeData?this.MultiDayBeforeOpenData:null;this.TitlePaint[0].MultiDayAfterCloseData=this.IsShowMultiDayAfterData?this.MultiDayAfterCloseData:null;if(this.TitlePaint[0].CallAcutionXOperator){this.TitlePaint[0].CallAcutionXOperator.BeforeOpenData=this.BeforeOpenData;this.TitlePaint[0].CallAcutionXOperator.AfterCloseData=this.AfterCloseData;this.TitlePaint[0].CallAcutionXOperator.MultiDayBeforeOpenData=multiBeforeOpenData;this.TitlePaint[0].CallAcutionXOperator.MultiDayAfterCloseData=multiAfterCloseData;this.TitlePaint[0].CallAcutionXOperator.DayOffset=this.DayOffset;}if(this.ChartCorssCursor&&this.ChartCorssCursor.StringFormatY){this.ChartCorssCursor.StringFormatY.YClose=yClose;this.ChartCorssCursor.StringFormatY.BeforeOpenData=this.BeforeOpenData;this.ChartCorssCursor.StringFormatY.AfterCloseData=this.AfterCloseData;this.ChartCorssCursor.StringFormatY.MultiDayBeforeOpenData=multiBeforeOpenData;this.ChartCorssCursor.StringFormatY.MultiDayAfterCloseData=multiAfterCloseData;this.ChartCorssCursor.StringFormatY.DayOffset=this.DayOffset;this.ChartCorssCursor.StringFormatX.Data=this.ChartPaint[0].Data;//十字光标
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.11313",
5
+ "version": "1.1.11321",
6
6
  "main": "lib/main.js",
7
7
  "private": false,
8
8
  "license": "Apache License 2.0",
@@ -4713,6 +4713,13 @@ function JSChart(divElement, bOffscreen)
4713
4713
  if (IFrameSplitOperator.IsBool(option.EnableNewIndex)) chart.EnableNewIndex=option.EnableNewIndex;
4714
4714
  if (IFrameSplitOperator.IsBool(option.EnableIndexChartDrag)) chart.EnableIndexChartDrag=option.EnableIndexChartDrag;
4715
4715
 
4716
+ if (option.GlobalOption)
4717
+ {
4718
+ var item=option.GlobalOption;
4719
+ if (IFrameSplitOperator.IsBool(item.IsValueFullRange)) chart.GlobalOption.IsValueFullRange=item.IsValueFullRange;
4720
+ }
4721
+
4722
+
4716
4723
  chart.SelectRectDialog=new MinuteSelectRectDialog(this.DivElement);
4717
4724
 
4718
4725
 
@@ -6441,6 +6448,8 @@ function JSChartContainer(uielement, OffscreenElement)
6441
6448
  this.IndexChartDrag; //拖拽指标图形
6442
6449
  this.EnableIndexChartDrag=false;
6443
6450
 
6451
+ this.GlobalOption={ IsValueFullRange:false };
6452
+
6444
6453
  this.ChartDestroy=function() //销毁
6445
6454
  {
6446
6455
  this.IsDestroy=true;
@@ -11542,7 +11551,7 @@ function IChartFramePainting()
11542
11551
 
11543
11552
  this.LogoTextColor=g_JSChartResource.FrameLogo.TextColor;
11544
11553
  this.LogoTextFont=g_JSChartResource.FrameLogo.Font;
11545
-
11554
+ this.GlobalOption;
11546
11555
 
11547
11556
  this.PtInButtons=function(x,y) //坐标是否在按钮上
11548
11557
  {
@@ -13880,8 +13889,8 @@ function MinuteFrame()
13880
13889
  this.SplitXYCoordinate=function()
13881
13890
  {
13882
13891
  if (this.XYSplit==false) return;
13883
- if (this.YSplitOperator!=null) this.YSplitOperator.Operator();
13884
13892
  if (this.XSplitOperator!=null) this.XSplitOperator.Operator();
13893
+ if (this.YSplitOperator!=null) this.YSplitOperator.Operator();
13885
13894
  }
13886
13895
 
13887
13896
  this.GetMultiDayXFromIndex=function(index, border)
@@ -21630,13 +21639,20 @@ function IChartPainting()
21630
21639
  this.GetMaxMin=function()
21631
21640
  {
21632
21641
  var xPointCount=this.ChartFrame.XPointCount;
21642
+ var start=this.Data.DataOffset;
21643
+ if (this.ChartFrame.GlobalOption && this.ChartFrame.GlobalOption.IsValueFullRange)
21644
+ {
21645
+ start=0;
21646
+ xPointCount=this.Data.Data.length;
21647
+ }
21648
+
21633
21649
  var range={};
21634
21650
  range.Min=null;
21635
21651
  range.Max=null;
21636
21652
 
21637
21653
  if(!this.Data || !this.Data.Data) return range;
21638
21654
 
21639
- for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
21655
+ for(var i=start,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
21640
21656
  {
21641
21657
  var value=this.Data.Data[i];
21642
21658
  if (value==null || isNaN(value)) continue;
@@ -26830,17 +26846,25 @@ function ChartMinuteVolumBar()
26830
26846
  this.GetMaxMin=function()
26831
26847
  {
26832
26848
  var xPointCount=this.ChartFrame.XPointCount;
26849
+ var start=this.Data.DataOffset;
26850
+ if (this.ChartFrame.GlobalOption && this.ChartFrame.GlobalOption.IsValueFullRange===true)
26851
+ {
26852
+ xPointCount=this.Data.Data.length;
26853
+ start=0;
26854
+ }
26855
+
26833
26856
  var range={};
26834
26857
  range.Min=0;
26835
26858
  range.Max=null;
26836
-
26837
- for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
26859
+
26860
+ for(var i=start,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
26838
26861
  {
26839
26862
  var item = this.Data.Data[i];
26840
26863
  if (!item || !item.Vol) continue;
26841
26864
  if (range.Max == null) range.Max = item.Vol;
26842
26865
  if (range.Max < item.Vol) range.Max = item.Vol;
26843
26866
  }
26867
+
26844
26868
 
26845
26869
  if (this.ShareAfterVol==1)
26846
26870
  {
@@ -30350,6 +30374,7 @@ function ChartMinutePriceLine()
30350
30374
  }
30351
30375
 
30352
30376
 
30377
+ //价格数据
30353
30378
  var data=this.Data;
30354
30379
  for(var i=data.DataOffset,j=0;i<data.Data.length && j<xPointCount;++i,++j)
30355
30380
  {
@@ -40254,7 +40279,6 @@ function FrameSplitMinutePriceY()
40254
40279
 
40255
40280
  this.YClose; //昨收
40256
40281
  this.Data; //分钟数据
40257
- this.AverageData; //分钟均线数据
40258
40282
  this.SourceData; //原始数据
40259
40283
  this.OverlayChartPaint;
40260
40284
  this.SplitCount=7;
@@ -40272,6 +40296,11 @@ function FrameSplitMinutePriceY()
40272
40296
 
40273
40297
  this.MultiDayBeforeOpenData;
40274
40298
  this.MultiDayAfterCloseData;
40299
+ this.DayOffset;
40300
+
40301
+ this.AverageData; //均线
40302
+ this.DayCount=1;
40303
+ this.GlobalOption;
40275
40304
 
40276
40305
  this.IsEnableDragY=function()
40277
40306
  {
@@ -40435,10 +40464,38 @@ function FrameSplitMinutePriceY()
40435
40464
  }
40436
40465
  }
40437
40466
 
40467
+ //多日分时图 集合竞价数据
40468
+ this.GetMultiDayBeforeOpenData=function()
40469
+ {
40470
+ if (!this.MultiDayBeforeOpenData || !IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData)) return null;
40471
+ if (!this.DayOffset) return this.MultiDayBeforeOpenData;
40472
+ if (!IFrameSplitOperator.IsNumber(this.DayOffset.Offset) || !IFrameSplitOperator.IsNumber(this.DayOffset.ShowDayCount)) return null;
40473
+ if (this.GlobalOption && this.GlobalOption.IsValueFullRange===true) return this.MultiDayBeforeOpenData;
40474
+
40475
+ var showCount= this.DayOffset.ShowDayCount;
40476
+ var offset=this.DayOffset.Offset;
40477
+ var aryData=this.MultiDayBeforeOpenData.slice(offset, offset+showCount);
40478
+ return aryData;
40479
+ }
40480
+
40481
+ this.GetMultiDayAfterCloseData=function()
40482
+ {
40483
+ if (!this.MultiDayAfterCloseData || !IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData)) return null;
40484
+ if (!this.DayOffset) return this.MultiDayAfterCloseData;
40485
+ if (!IFrameSplitOperator.IsNumber(this.DayOffset.Offset) || !IFrameSplitOperator.IsNumber(this.DayOffset.ShowDayCount)) return null;
40486
+ if (this.GlobalOption && this.GlobalOption.IsValueFullRange===true) return this.MultiDayAfterCloseData;
40487
+
40488
+ var showCount= this.DayOffset.ShowDayCount;
40489
+ var offset=this.DayOffset.Offset;
40490
+ var aryData=this.MultiDayAfterCloseData.slice(offset, offset+showCount);
40491
+ return aryData;
40492
+ }
40493
+
40438
40494
  this.GetMaxMin=function() //计算图中所有的数据的最大最小值
40439
40495
  {
40440
40496
  var max=this.YClose;
40441
40497
  var min=this.YClose;
40498
+
40442
40499
  var data=this.Data;
40443
40500
  var isBerforeData=false;
40444
40501
  if (this.SourceData)
@@ -40447,31 +40504,72 @@ function FrameSplitMinutePriceY()
40447
40504
  isBerforeData=true;
40448
40505
  }
40449
40506
 
40450
- for(var i in data.Data)
40507
+ if (this.DayCount>1) //多日
40451
40508
  {
40452
- var value=null;
40453
- if (isBerforeData)
40509
+ var offset=this.DayOffset.DataOffset;
40510
+ var showDataCount=this.DayOffset.ShowDataCount;
40511
+ if (this.GlobalOption && this.GlobalOption.IsValueFullRange===true)
40454
40512
  {
40455
- var item=data.Data[i];
40456
- if (item.Before) value=item.Before.Close;
40457
- else value=item.Close;
40513
+ offset=0;
40514
+ showDataCount=data.Data.length;
40458
40515
  }
40459
- else
40516
+
40517
+ for(var i=offset, j=0; i<data.Data.length && j<showDataCount ;++i,++j)
40460
40518
  {
40461
- value=data.Data[i];
40519
+ var value=null;
40520
+ if (isBerforeData)
40521
+ {
40522
+ var item=data.Data[i];
40523
+ if (item.Before) value=item.Before.Close;
40524
+ else value=item.Close;
40525
+ }
40526
+ else
40527
+ {
40528
+ value=data.Data[i];
40529
+ }
40530
+ if (value==null) continue;
40531
+ if (max<value) max=value;
40532
+ if (min>value) min=value;
40533
+ }
40534
+
40535
+ if (this.AverageData)
40536
+ {
40537
+ for(var i=offset,j=0; i<this.AverageData.Data.length && j<showDataCount; ++i,++j)
40538
+ {
40539
+ if (this.AverageData.Data[i]==null) continue;
40540
+ if (max<this.AverageData.Data[i]) max=this.AverageData.Data[i];
40541
+ if (min>this.AverageData.Data[i]) min=this.AverageData.Data[i];
40542
+ }
40462
40543
  }
40463
- if (value==null) continue;
40464
- if (max<value) max=value;
40465
- if (min>value) min=value;
40466
40544
  }
40467
-
40468
- if (this.AverageData)
40545
+ else
40469
40546
  {
40470
- for(var i in this.AverageData.Data)
40547
+ for(var i=0;i<data.Data.length;++i)
40548
+ {
40549
+ var value=null;
40550
+ if (isBerforeData)
40551
+ {
40552
+ var item=data.Data[i];
40553
+ if (item.Before) value=item.Before.Close;
40554
+ else value=item.Close;
40555
+ }
40556
+ else
40557
+ {
40558
+ value=data.Data[i];
40559
+ }
40560
+ if (value==null) continue;
40561
+ if (max<value) max=value;
40562
+ if (min>value) min=value;
40563
+ }
40564
+
40565
+ if (this.AverageData)
40471
40566
  {
40472
- if (this.AverageData.Data[i]==null) continue;
40473
- if (max<this.AverageData.Data[i]) max=this.AverageData.Data[i];
40474
- if (min>this.AverageData.Data[i]) min=this.AverageData.Data[i];
40567
+ for(var i=0;i<this.AverageData.Data.length;++i)
40568
+ {
40569
+ if (this.AverageData.Data[i]==null) continue;
40570
+ if (max<this.AverageData.Data[i]) max=this.AverageData.Data[i];
40571
+ if (min>this.AverageData.Data[i]) min=this.AverageData.Data[i];
40572
+ }
40475
40573
  }
40476
40574
  }
40477
40575
 
@@ -40507,20 +40605,22 @@ function FrameSplitMinutePriceY()
40507
40605
  this.GetCallAuctionMaxMin(this.BeforeOpenData,range);
40508
40606
  }
40509
40607
 
40510
- if (this.MultiDayBeforeOpenData && this.ChartBorder.MultiDayMinute.Count>1 && this.ChartBorder.MultiDayMinute.Left>0)
40608
+ var multiDayBeforeOpenData=this.GetMultiDayBeforeOpenData();
40609
+ if (multiDayBeforeOpenData && this.ChartBorder.MultiDayMinute.Count>1 && this.ChartBorder.MultiDayMinute.Left>0)
40511
40610
  {
40512
- for(var i in this.MultiDayBeforeOpenData)
40611
+ for(var i=0;i<multiDayBeforeOpenData.length; ++i)
40513
40612
  {
40514
- var dayItem=this.MultiDayBeforeOpenData[i];
40613
+ var dayItem=multiDayBeforeOpenData[i];
40515
40614
  this.GetCallAuctionMaxMin(dayItem,range);
40516
40615
  }
40517
40616
  }
40518
40617
 
40519
- if (this.MultiDayAfterCloseData && this.ChartBorder.MultiDayMinute.Count>1 && this.ChartBorder.MultiDayMinute.Right>0)
40618
+ var multiDayAfterCloseData=this.GetMultiDayAfterCloseData();
40619
+ if (multiDayAfterCloseData && this.ChartBorder.MultiDayMinute.Count>1 && this.ChartBorder.MultiDayMinute.Right>0)
40520
40620
  {
40521
- for(var i in this.MultiDayAfterCloseData)
40621
+ for(var i=0;i<multiDayAfterCloseData.length; ++i)
40522
40622
  {
40523
- var dayItem=this.MultiDayAfterCloseData[i];
40623
+ var dayItem=multiDayAfterCloseData[i];
40524
40624
  this.GetCallAuctionMaxMin(dayItem,range);
40525
40625
  }
40526
40626
  }
@@ -40733,6 +40833,7 @@ function FrameSplitMinuteX()
40733
40833
  if (IFrameSplitOperator.IsNumber(this.DayOffset.ShowDayCount)) showDayCount=this.DayOffset.ShowDayCount;
40734
40834
  }
40735
40835
  this.DayOffset.DataOffset=offset*minuteCount;
40836
+ this.DayOffset.ShowDataCount=this.DayOffset.ShowDayCount*minuteCount;
40736
40837
 
40737
40838
  for(var i=this.DayData.length-1-offset, j=0; i>=0 && j<showDayCount; --i,++j)
40738
40839
  {
@@ -60334,6 +60435,7 @@ function MinuteChartContainer(uielement)
60334
60435
 
60335
60436
  this.DayOffset={ Offset:0, ShowDayCount:-1, DataOffset:0, DayCount:1, }; //Offset 日期偏移 , DataOffset数据偏移
60336
60437
  this.PageInfo={ Enable:false, Offset:-8888, ShowDayCount:4 }; //分页配置
60438
+
60337
60439
 
60338
60440
  //集合竞价设置 obj={ Left:true/false, Right:true/false, MultiDay:{Left:, Right:} }
60339
60441
  this.SetCallCationDataBorder=function(obj)
@@ -61734,6 +61836,7 @@ function MinuteChartContainer(uielement)
61734
61836
  frame.Canvas=this.Canvas;
61735
61837
  frame.ChartBorder=border;
61736
61838
  frame.Identify=i;
61839
+ frame.GlobalOption=this.GlobalOption;
61737
61840
  if (i<2) frame.ChartBorder.TitleHeight=0;
61738
61841
  frame.XPointCount=243;
61739
61842
 
@@ -61752,6 +61855,8 @@ function MinuteChartContainer(uielement)
61752
61855
  frame.YSplitOperator=new FrameSplitMinutePriceY();
61753
61856
  frame.YSplitOperator.FrameSplitData=this.FrameSplitData.get('price');
61754
61857
  frame.YSplitOperator.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
61858
+ frame.YSplitOperator.DayOffset=this.DayOffset;
61859
+ frame.YSplitOperator.GlobalOption=this.GlobalOption;
61755
61860
  }
61756
61861
  else
61757
61862
  {
@@ -61803,6 +61908,7 @@ function MinuteChartContainer(uielement)
61803
61908
  frame.ChartBorder=border;
61804
61909
  frame.Identify=id; //窗口序号
61805
61910
  frame.XPointCount=243;
61911
+ frame.GlobalOption=this.GlobalOption;
61806
61912
 
61807
61913
 
61808
61914
  if (id>=2)
@@ -62663,16 +62769,6 @@ function MinuteChartContainer(uielement)
62663
62769
  //外汇 均线暂时不用
62664
62770
  if (MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol)) this.ChartPaint[1].Data=null;
62665
62771
 
62666
- if (this.Frame.SubFrame.length>2)
62667
- {
62668
- var bindData=new ChartData();
62669
- bindData.Data=allMinuteData;
62670
- for(var i=2; i<this.Frame.SubFrame.length; ++i)
62671
- {
62672
- this.BindIndexData(i,bindData);
62673
- }
62674
- }
62675
-
62676
62772
  for(let i=0; i<this.Frame.SubFrame.length; ++i)
62677
62773
  {
62678
62774
  var item=this.Frame.SubFrame[i];
@@ -62703,6 +62799,17 @@ function MinuteChartContainer(uielement)
62703
62799
  this.UpdateFrameMaxMin(); //调整坐标最大 最小值
62704
62800
  this.Frame.SetSizeChage(true);
62705
62801
  this.Draw();
62802
+
62803
+ //执行脚本
62804
+ if (this.Frame.SubFrame.length>2)
62805
+ {
62806
+ var bindData=new ChartData();
62807
+ bindData.Data=allMinuteData;
62808
+ for(var i=2; i<this.Frame.SubFrame.length; ++i)
62809
+ {
62810
+ this.BindIndexData(i,bindData);
62811
+ }
62812
+ }
62706
62813
  }
62707
62814
 
62708
62815
  this.HistoryMinuteDataToArray=function(data)
@@ -63320,11 +63427,12 @@ function MinuteChartContainer(uielement)
63320
63427
  else if (MARKET_SUFFIX_NAME.IsShowAvPrice && !MARKET_SUFFIX_NAME.IsShowAvPrice(upperSymbol)) //外部控制是否显示均线
63321
63428
  this.ChartPaint[1].Data=null;
63322
63429
 
63323
- firstFrame.YSplitOperator.AverageData=bindData;
63430
+ firstFrame.YSplitOperator.AverageData=bindData; //均线
63324
63431
  firstFrame.YSplitOperator.OverlayChartPaint=this.OverlayChartPaint;
63325
63432
  firstFrame.YSplitOperator.LimitPrice=this.LimitPrice;
63326
63433
  firstFrame.YSplitOperator.MultiDayBeforeOpenData=multiBeforeOpenData;
63327
63434
  firstFrame.YSplitOperator.MultiDayAfterCloseData=multiAfterCloseData;
63435
+ firstFrame.YSplitOperator.DayCount=this.DayCount;
63328
63436
  if (extendData)
63329
63437
  {
63330
63438
  firstFrame.YSplitOperator.High=extendData.High;
@@ -4757,6 +4757,13 @@ function JSChart(divElement, bOffscreen)
4757
4757
  if (IFrameSplitOperator.IsBool(option.EnableNewIndex)) chart.EnableNewIndex=option.EnableNewIndex;
4758
4758
  if (IFrameSplitOperator.IsBool(option.EnableIndexChartDrag)) chart.EnableIndexChartDrag=option.EnableIndexChartDrag;
4759
4759
 
4760
+ if (option.GlobalOption)
4761
+ {
4762
+ var item=option.GlobalOption;
4763
+ if (IFrameSplitOperator.IsBool(item.IsValueFullRange)) chart.GlobalOption.IsValueFullRange=item.IsValueFullRange;
4764
+ }
4765
+
4766
+
4760
4767
  chart.SelectRectDialog=new MinuteSelectRectDialog(this.DivElement);
4761
4768
 
4762
4769
 
@@ -6485,6 +6492,8 @@ function JSChartContainer(uielement, OffscreenElement)
6485
6492
  this.IndexChartDrag; //拖拽指标图形
6486
6493
  this.EnableIndexChartDrag=false;
6487
6494
 
6495
+ this.GlobalOption={ IsValueFullRange:false };
6496
+
6488
6497
  this.ChartDestroy=function() //销毁
6489
6498
  {
6490
6499
  this.IsDestroy=true;
@@ -11586,7 +11595,7 @@ function IChartFramePainting()
11586
11595
 
11587
11596
  this.LogoTextColor=g_JSChartResource.FrameLogo.TextColor;
11588
11597
  this.LogoTextFont=g_JSChartResource.FrameLogo.Font;
11589
-
11598
+ this.GlobalOption;
11590
11599
 
11591
11600
  this.PtInButtons=function(x,y) //坐标是否在按钮上
11592
11601
  {
@@ -13924,8 +13933,8 @@ function MinuteFrame()
13924
13933
  this.SplitXYCoordinate=function()
13925
13934
  {
13926
13935
  if (this.XYSplit==false) return;
13927
- if (this.YSplitOperator!=null) this.YSplitOperator.Operator();
13928
13936
  if (this.XSplitOperator!=null) this.XSplitOperator.Operator();
13937
+ if (this.YSplitOperator!=null) this.YSplitOperator.Operator();
13929
13938
  }
13930
13939
 
13931
13940
  this.GetMultiDayXFromIndex=function(index, border)
@@ -21674,13 +21683,20 @@ function IChartPainting()
21674
21683
  this.GetMaxMin=function()
21675
21684
  {
21676
21685
  var xPointCount=this.ChartFrame.XPointCount;
21686
+ var start=this.Data.DataOffset;
21687
+ if (this.ChartFrame.GlobalOption && this.ChartFrame.GlobalOption.IsValueFullRange)
21688
+ {
21689
+ start=0;
21690
+ xPointCount=this.Data.Data.length;
21691
+ }
21692
+
21677
21693
  var range={};
21678
21694
  range.Min=null;
21679
21695
  range.Max=null;
21680
21696
 
21681
21697
  if(!this.Data || !this.Data.Data) return range;
21682
21698
 
21683
- for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
21699
+ for(var i=start,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
21684
21700
  {
21685
21701
  var value=this.Data.Data[i];
21686
21702
  if (value==null || isNaN(value)) continue;
@@ -26874,17 +26890,25 @@ function ChartMinuteVolumBar()
26874
26890
  this.GetMaxMin=function()
26875
26891
  {
26876
26892
  var xPointCount=this.ChartFrame.XPointCount;
26893
+ var start=this.Data.DataOffset;
26894
+ if (this.ChartFrame.GlobalOption && this.ChartFrame.GlobalOption.IsValueFullRange===true)
26895
+ {
26896
+ xPointCount=this.Data.Data.length;
26897
+ start=0;
26898
+ }
26899
+
26877
26900
  var range={};
26878
26901
  range.Min=0;
26879
26902
  range.Max=null;
26880
-
26881
- for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
26903
+
26904
+ for(var i=start,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
26882
26905
  {
26883
26906
  var item = this.Data.Data[i];
26884
26907
  if (!item || !item.Vol) continue;
26885
26908
  if (range.Max == null) range.Max = item.Vol;
26886
26909
  if (range.Max < item.Vol) range.Max = item.Vol;
26887
26910
  }
26911
+
26888
26912
 
26889
26913
  if (this.ShareAfterVol==1)
26890
26914
  {
@@ -30394,6 +30418,7 @@ function ChartMinutePriceLine()
30394
30418
  }
30395
30419
 
30396
30420
 
30421
+ //价格数据
30397
30422
  var data=this.Data;
30398
30423
  for(var i=data.DataOffset,j=0;i<data.Data.length && j<xPointCount;++i,++j)
30399
30424
  {
@@ -40298,7 +40323,6 @@ function FrameSplitMinutePriceY()
40298
40323
 
40299
40324
  this.YClose; //昨收
40300
40325
  this.Data; //分钟数据
40301
- this.AverageData; //分钟均线数据
40302
40326
  this.SourceData; //原始数据
40303
40327
  this.OverlayChartPaint;
40304
40328
  this.SplitCount=7;
@@ -40316,6 +40340,11 @@ function FrameSplitMinutePriceY()
40316
40340
 
40317
40341
  this.MultiDayBeforeOpenData;
40318
40342
  this.MultiDayAfterCloseData;
40343
+ this.DayOffset;
40344
+
40345
+ this.AverageData; //均线
40346
+ this.DayCount=1;
40347
+ this.GlobalOption;
40319
40348
 
40320
40349
  this.IsEnableDragY=function()
40321
40350
  {
@@ -40479,10 +40508,38 @@ function FrameSplitMinutePriceY()
40479
40508
  }
40480
40509
  }
40481
40510
 
40511
+ //多日分时图 集合竞价数据
40512
+ this.GetMultiDayBeforeOpenData=function()
40513
+ {
40514
+ if (!this.MultiDayBeforeOpenData || !IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData)) return null;
40515
+ if (!this.DayOffset) return this.MultiDayBeforeOpenData;
40516
+ if (!IFrameSplitOperator.IsNumber(this.DayOffset.Offset) || !IFrameSplitOperator.IsNumber(this.DayOffset.ShowDayCount)) return null;
40517
+ if (this.GlobalOption && this.GlobalOption.IsValueFullRange===true) return this.MultiDayBeforeOpenData;
40518
+
40519
+ var showCount= this.DayOffset.ShowDayCount;
40520
+ var offset=this.DayOffset.Offset;
40521
+ var aryData=this.MultiDayBeforeOpenData.slice(offset, offset+showCount);
40522
+ return aryData;
40523
+ }
40524
+
40525
+ this.GetMultiDayAfterCloseData=function()
40526
+ {
40527
+ if (!this.MultiDayAfterCloseData || !IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData)) return null;
40528
+ if (!this.DayOffset) return this.MultiDayAfterCloseData;
40529
+ if (!IFrameSplitOperator.IsNumber(this.DayOffset.Offset) || !IFrameSplitOperator.IsNumber(this.DayOffset.ShowDayCount)) return null;
40530
+ if (this.GlobalOption && this.GlobalOption.IsValueFullRange===true) return this.MultiDayAfterCloseData;
40531
+
40532
+ var showCount= this.DayOffset.ShowDayCount;
40533
+ var offset=this.DayOffset.Offset;
40534
+ var aryData=this.MultiDayAfterCloseData.slice(offset, offset+showCount);
40535
+ return aryData;
40536
+ }
40537
+
40482
40538
  this.GetMaxMin=function() //计算图中所有的数据的最大最小值
40483
40539
  {
40484
40540
  var max=this.YClose;
40485
40541
  var min=this.YClose;
40542
+
40486
40543
  var data=this.Data;
40487
40544
  var isBerforeData=false;
40488
40545
  if (this.SourceData)
@@ -40491,31 +40548,72 @@ function FrameSplitMinutePriceY()
40491
40548
  isBerforeData=true;
40492
40549
  }
40493
40550
 
40494
- for(var i in data.Data)
40551
+ if (this.DayCount>1) //多日
40495
40552
  {
40496
- var value=null;
40497
- if (isBerforeData)
40553
+ var offset=this.DayOffset.DataOffset;
40554
+ var showDataCount=this.DayOffset.ShowDataCount;
40555
+ if (this.GlobalOption && this.GlobalOption.IsValueFullRange===true)
40498
40556
  {
40499
- var item=data.Data[i];
40500
- if (item.Before) value=item.Before.Close;
40501
- else value=item.Close;
40557
+ offset=0;
40558
+ showDataCount=data.Data.length;
40502
40559
  }
40503
- else
40560
+
40561
+ for(var i=offset, j=0; i<data.Data.length && j<showDataCount ;++i,++j)
40504
40562
  {
40505
- value=data.Data[i];
40563
+ var value=null;
40564
+ if (isBerforeData)
40565
+ {
40566
+ var item=data.Data[i];
40567
+ if (item.Before) value=item.Before.Close;
40568
+ else value=item.Close;
40569
+ }
40570
+ else
40571
+ {
40572
+ value=data.Data[i];
40573
+ }
40574
+ if (value==null) continue;
40575
+ if (max<value) max=value;
40576
+ if (min>value) min=value;
40577
+ }
40578
+
40579
+ if (this.AverageData)
40580
+ {
40581
+ for(var i=offset,j=0; i<this.AverageData.Data.length && j<showDataCount; ++i,++j)
40582
+ {
40583
+ if (this.AverageData.Data[i]==null) continue;
40584
+ if (max<this.AverageData.Data[i]) max=this.AverageData.Data[i];
40585
+ if (min>this.AverageData.Data[i]) min=this.AverageData.Data[i];
40586
+ }
40506
40587
  }
40507
- if (value==null) continue;
40508
- if (max<value) max=value;
40509
- if (min>value) min=value;
40510
40588
  }
40511
-
40512
- if (this.AverageData)
40589
+ else
40513
40590
  {
40514
- for(var i in this.AverageData.Data)
40591
+ for(var i=0;i<data.Data.length;++i)
40592
+ {
40593
+ var value=null;
40594
+ if (isBerforeData)
40595
+ {
40596
+ var item=data.Data[i];
40597
+ if (item.Before) value=item.Before.Close;
40598
+ else value=item.Close;
40599
+ }
40600
+ else
40601
+ {
40602
+ value=data.Data[i];
40603
+ }
40604
+ if (value==null) continue;
40605
+ if (max<value) max=value;
40606
+ if (min>value) min=value;
40607
+ }
40608
+
40609
+ if (this.AverageData)
40515
40610
  {
40516
- if (this.AverageData.Data[i]==null) continue;
40517
- if (max<this.AverageData.Data[i]) max=this.AverageData.Data[i];
40518
- if (min>this.AverageData.Data[i]) min=this.AverageData.Data[i];
40611
+ for(var i=0;i<this.AverageData.Data.length;++i)
40612
+ {
40613
+ if (this.AverageData.Data[i]==null) continue;
40614
+ if (max<this.AverageData.Data[i]) max=this.AverageData.Data[i];
40615
+ if (min>this.AverageData.Data[i]) min=this.AverageData.Data[i];
40616
+ }
40519
40617
  }
40520
40618
  }
40521
40619
 
@@ -40551,20 +40649,22 @@ function FrameSplitMinutePriceY()
40551
40649
  this.GetCallAuctionMaxMin(this.BeforeOpenData,range);
40552
40650
  }
40553
40651
 
40554
- if (this.MultiDayBeforeOpenData && this.ChartBorder.MultiDayMinute.Count>1 && this.ChartBorder.MultiDayMinute.Left>0)
40652
+ var multiDayBeforeOpenData=this.GetMultiDayBeforeOpenData();
40653
+ if (multiDayBeforeOpenData && this.ChartBorder.MultiDayMinute.Count>1 && this.ChartBorder.MultiDayMinute.Left>0)
40555
40654
  {
40556
- for(var i in this.MultiDayBeforeOpenData)
40655
+ for(var i=0;i<multiDayBeforeOpenData.length; ++i)
40557
40656
  {
40558
- var dayItem=this.MultiDayBeforeOpenData[i];
40657
+ var dayItem=multiDayBeforeOpenData[i];
40559
40658
  this.GetCallAuctionMaxMin(dayItem,range);
40560
40659
  }
40561
40660
  }
40562
40661
 
40563
- if (this.MultiDayAfterCloseData && this.ChartBorder.MultiDayMinute.Count>1 && this.ChartBorder.MultiDayMinute.Right>0)
40662
+ var multiDayAfterCloseData=this.GetMultiDayAfterCloseData();
40663
+ if (multiDayAfterCloseData && this.ChartBorder.MultiDayMinute.Count>1 && this.ChartBorder.MultiDayMinute.Right>0)
40564
40664
  {
40565
- for(var i in this.MultiDayAfterCloseData)
40665
+ for(var i=0;i<multiDayAfterCloseData.length; ++i)
40566
40666
  {
40567
- var dayItem=this.MultiDayAfterCloseData[i];
40667
+ var dayItem=multiDayAfterCloseData[i];
40568
40668
  this.GetCallAuctionMaxMin(dayItem,range);
40569
40669
  }
40570
40670
  }
@@ -40777,6 +40877,7 @@ function FrameSplitMinuteX()
40777
40877
  if (IFrameSplitOperator.IsNumber(this.DayOffset.ShowDayCount)) showDayCount=this.DayOffset.ShowDayCount;
40778
40878
  }
40779
40879
  this.DayOffset.DataOffset=offset*minuteCount;
40880
+ this.DayOffset.ShowDataCount=this.DayOffset.ShowDayCount*minuteCount;
40780
40881
 
40781
40882
  for(var i=this.DayData.length-1-offset, j=0; i>=0 && j<showDayCount; --i,++j)
40782
40883
  {
@@ -60378,6 +60479,7 @@ function MinuteChartContainer(uielement)
60378
60479
 
60379
60480
  this.DayOffset={ Offset:0, ShowDayCount:-1, DataOffset:0, DayCount:1, }; //Offset 日期偏移 , DataOffset数据偏移
60380
60481
  this.PageInfo={ Enable:false, Offset:-8888, ShowDayCount:4 }; //分页配置
60482
+
60381
60483
 
60382
60484
  //集合竞价设置 obj={ Left:true/false, Right:true/false, MultiDay:{Left:, Right:} }
60383
60485
  this.SetCallCationDataBorder=function(obj)
@@ -61778,6 +61880,7 @@ function MinuteChartContainer(uielement)
61778
61880
  frame.Canvas=this.Canvas;
61779
61881
  frame.ChartBorder=border;
61780
61882
  frame.Identify=i;
61883
+ frame.GlobalOption=this.GlobalOption;
61781
61884
  if (i<2) frame.ChartBorder.TitleHeight=0;
61782
61885
  frame.XPointCount=243;
61783
61886
 
@@ -61796,6 +61899,8 @@ function MinuteChartContainer(uielement)
61796
61899
  frame.YSplitOperator=new FrameSplitMinutePriceY();
61797
61900
  frame.YSplitOperator.FrameSplitData=this.FrameSplitData.get('price');
61798
61901
  frame.YSplitOperator.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
61902
+ frame.YSplitOperator.DayOffset=this.DayOffset;
61903
+ frame.YSplitOperator.GlobalOption=this.GlobalOption;
61799
61904
  }
61800
61905
  else
61801
61906
  {
@@ -61847,6 +61952,7 @@ function MinuteChartContainer(uielement)
61847
61952
  frame.ChartBorder=border;
61848
61953
  frame.Identify=id; //窗口序号
61849
61954
  frame.XPointCount=243;
61955
+ frame.GlobalOption=this.GlobalOption;
61850
61956
 
61851
61957
 
61852
61958
  if (id>=2)
@@ -62707,16 +62813,6 @@ function MinuteChartContainer(uielement)
62707
62813
  //外汇 均线暂时不用
62708
62814
  if (MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol)) this.ChartPaint[1].Data=null;
62709
62815
 
62710
- if (this.Frame.SubFrame.length>2)
62711
- {
62712
- var bindData=new ChartData();
62713
- bindData.Data=allMinuteData;
62714
- for(var i=2; i<this.Frame.SubFrame.length; ++i)
62715
- {
62716
- this.BindIndexData(i,bindData);
62717
- }
62718
- }
62719
-
62720
62816
  for(let i=0; i<this.Frame.SubFrame.length; ++i)
62721
62817
  {
62722
62818
  var item=this.Frame.SubFrame[i];
@@ -62747,6 +62843,17 @@ function MinuteChartContainer(uielement)
62747
62843
  this.UpdateFrameMaxMin(); //调整坐标最大 最小值
62748
62844
  this.Frame.SetSizeChage(true);
62749
62845
  this.Draw();
62846
+
62847
+ //执行脚本
62848
+ if (this.Frame.SubFrame.length>2)
62849
+ {
62850
+ var bindData=new ChartData();
62851
+ bindData.Data=allMinuteData;
62852
+ for(var i=2; i<this.Frame.SubFrame.length; ++i)
62853
+ {
62854
+ this.BindIndexData(i,bindData);
62855
+ }
62856
+ }
62750
62857
  }
62751
62858
 
62752
62859
  this.HistoryMinuteDataToArray=function(data)
@@ -63364,11 +63471,12 @@ function MinuteChartContainer(uielement)
63364
63471
  else if (MARKET_SUFFIX_NAME.IsShowAvPrice && !MARKET_SUFFIX_NAME.IsShowAvPrice(upperSymbol)) //外部控制是否显示均线
63365
63472
  this.ChartPaint[1].Data=null;
63366
63473
 
63367
- firstFrame.YSplitOperator.AverageData=bindData;
63474
+ firstFrame.YSplitOperator.AverageData=bindData; //均线
63368
63475
  firstFrame.YSplitOperator.OverlayChartPaint=this.OverlayChartPaint;
63369
63476
  firstFrame.YSplitOperator.LimitPrice=this.LimitPrice;
63370
63477
  firstFrame.YSplitOperator.MultiDayBeforeOpenData=multiBeforeOpenData;
63371
63478
  firstFrame.YSplitOperator.MultiDayAfterCloseData=multiAfterCloseData;
63479
+ firstFrame.YSplitOperator.DayCount=this.DayCount;
63372
63480
  if (extendData)
63373
63481
  {
63374
63482
  firstFrame.YSplitOperator.High=extendData.High;