hqchart 1.1.12459 → 1.1.12463

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.
@@ -4479,8 +4479,9 @@ this.newMethod();delete this.newMethod;this.ClassName='MinuteTooltipPaint';this.
4479
4479
  this.TitlePaint;this.GetTop=function(){if(this.IsHScreen){var border=this.ChartBorder.GetHScreenBorder();if(this.ShowPosition==0)return border.TopEx+this.Left;else return border.BottomEx-this.Width-this.Left;}else{var border=this.ChartBorder.GetBorder();return border.Top+this.Top;}};this.GetLeft=function(){if(this.IsHScreen){var border=this.ChartBorder.GetHScreenBorder();return border.Right-this.Height-this.Top;}else{var border=this.ChartBorder.GetBorder();if(this.ShowPosition==0)return border.LeftEx+this.Left;else return border.RightEx-this.Width-this.Left;}};this.Draw=function(){if(!this.IsEnableDraw())return;this.IsHScreen=this.ChartFrame.IsHScreen===true;this.TitlePaint=this.HQChart.TitlePaint[0];if(!this.TitlePaint)return;var drawData;//{ Type:0=连续交易 1=集合竞价, Data:数据 }
4480
4480
  var pointInfo=this.TitlePaint.PointInfo;if(pointInfo&&(pointInfo.ClientPos==2||pointInfo.ClientPos==3||pointInfo.ClientPos>=200&&pointInfo.ClientPos<=299||pointInfo.ClientPos>=300&&pointInfo.ClientPos<=399)){var auctionData=this.TitlePaint.GetCurrentAuctionData();if(!auctionData)return;drawData={Type:1,Data:auctionData};}else{var minuteData=this.TitlePaint.GetCurrentKLineData();if(!minuteData)return;drawData={Type:0,Data:minuteData};}var titleData=this.GetFormatTitle(drawData);if(!titleData||!IFrameSplitOperator.IsNonEmptyArray(titleData.AryText))return;this.CalculateTooltipSize(titleData);this.CalculateShowPosition();this.DrawBG();this.DrawTooltipData(titleData);this.DrawBorder();};this.GetFormatTitle=function(data){if(!data||!data.Data)return;var item;var close,vol,amount;if(data.Type==0)//盘中
4481
4481
  {item=data.Data;close=item.Close;vol=item.Vol;amount=item.Amount;}else if(data.Type==1)//盘前 盘后
4482
- {item=data.Data.Data;if(!item)return;close=item.Price;}var upperSymbol;this.YClose=this.TitlePaint.YClose;this.YClose=item.YClose;if(this.HQChart.Symbol)upperSymbol=this.HQChart.Symbol.toUpperCase();var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
4483
- var aryText=[];var result={AryText:aryText};var text,title,color;if(IFrameSplitOperator.IsNumber(item.Date)){text=IFrameSplitOperator.FormatDateString(item.Date);aryText.push({Text:text,Color:this.DateTimeColor});}if(IFrameSplitOperator.IsNumber(item.Time)){text=IFrameSplitOperator.FormatTimeString(item.Time);aryText.push({Text:text,Color:this.DateTimeColor});}if(IFrameSplitOperator.IsNumber(close))//最新
4482
+ {item=data.Data.Data;if(!item)return;close=item.Price;}var upperSymbol;if(this.HQChart.Symbol)upperSymbol=this.HQChart.Symbol.toUpperCase();var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol);//国内期货, 纽约期货交易所
4483
+ var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
4484
+ this.YClose=this.TitlePaint.YClose;this.YClose=item.YClose;if(isFutures&&IFrameSplitOperator.IsNumber(item.YClearing))this.YClose=item.YClearing;var aryText=[];var result={AryText:aryText};var text,title,color;if(IFrameSplitOperator.IsNumber(item.Date)){text=IFrameSplitOperator.FormatDateString(item.Date);aryText.push({Text:text,Color:this.DateTimeColor});}if(IFrameSplitOperator.IsNumber(item.Time)){text=IFrameSplitOperator.FormatTimeString(item.Time);aryText.push({Text:text,Color:this.DateTimeColor});}if(IFrameSplitOperator.IsNumber(close))//最新
4484
4485
  {title=g_JSChartLocalization.GetText('Tooltip-Price',this.LanguageID);color=this.TitlePaint.GetColor(close,this.YClose);text=close.toFixed(defaultfloatPrecision);aryText.push({Title:title,TitleColor:this.TitleColor,Text:text,Color:color});}var isShowAvPrice=true;if(MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol))isShowAvPrice=false;//外汇没有均价
4485
4486
  else if(MARKET_SUFFIX_NAME.IsET(upperSymbol)&&!MARKET_SUFFIX_NAME.IsETShowAvPrice(upperSymbol))isShowAvPrice=false;else if(MARKET_SUFFIX_NAME.IsShowAvPrice&&!MARKET_SUFFIX_NAME.IsShowAvPrice(upperSymbol))isShowAvPrice=false;//均价
4486
4487
  if(isShowAvPrice&&IFrameSplitOperator.IsNumber(item.AvPrice)&&this.IsShowAveragePrice){title=g_JSChartLocalization.GetText('Tooltip-AvPrice',this.LanguageID);var color=this.TitlePaint.GetColor(item.AvPrice,this.YClose);text=item.AvPrice.toFixed(defaultfloatPrecision);aryText.push({Title:title,TitleColor:this.TitleColor,Text:text,Color:color});}//涨幅
@@ -4625,10 +4626,11 @@ this.FixedWidth;//固定宽度
4625
4626
  this.Font=g_JSChartResource.PCTooltipPaint.TitleFont;this.HQChart;//设置参数接口
4626
4627
  this.SetOption=function(option){if(option.BGColor)this.BGColor=option.BGColor;if(option.LanguageID>0)this.LanguageID=option.LanguageID;if(IFrameSplitOperator.IsNumber(option.FixedWidth))this.FixedWidth=option.FixedWidth;};this.IsEnableDraw=function(){if(!this.HQChart||!this.HQChart.TitlePaint||!this.HQChart.TitlePaint[0])return false;var pt=this.HQChart.LastPoint;if(!pt)return false;return this.HQChart.IsMouseOnClient(pt.X,pt.Y);};this.Draw=function(){if(!this.IsEnableDraw())return;this.TitlePaint=this.HQChart.TitlePaint[0];if(!this.TitlePaint)return;var pointInfo=this.TitlePaint.PointInfo;var drawData;//{ Type:0=连续交易 1=集合竞价, Data:数据 }
4627
4628
  if(pointInfo&&(pointInfo.ClientPos==2||pointInfo.ClientPos==3||pointInfo.ClientPos>=200&&pointInfo.ClientPos<=299||pointInfo.ClientPos>=300&&pointInfo.ClientPos<=399)){var auctionData=this.TitlePaint.GetCurrentAuctionData();if(!auctionData)return;drawData={Type:1,Data:auctionData};}else{var minuteData=this.TitlePaint.GetCurrentKLineData();if(!minuteData)return;drawData={Type:0,Data:minuteData};}this.YClose=this.TitlePaint.YClose;var aryText=this.GetForamtTitle(drawData);if(!IFrameSplitOperator.IsNonEmptyArray(aryText))return;this.Canvas.font=this.Font;this.Canvas.textBaseline='top';this.LineHeight=GetFontHeight(this.Canvas,null,"擎");var border=this.ChartBorder.GetBorder();var height=this.LineHeight*aryText.length*2;var rtBorder={Left:1,Top:1,Right:border.Left};rtBorder.Bottom=rtBorder.Top+height;rtBorder.Width=rtBorder.Right-rtBorder.Left;rtBorder.Height=rtBorder.Bottom-rtBorder.Top;rtBorder.Height+=this.Mergin.Top+this.Mergin.Bottom;rtBorder.Bottom=rtBorder.Top+rtBorder.Height;if(IFrameSplitOperator.IsNumber(this.FixedWidth))rtBorder.Width=this.FixedWidth;this.Canvas.fillStyle=this.BGColor;this.Canvas.fillRect(rtBorder.Left,rtBorder.Top,rtBorder.Width,rtBorder.Height);this.Canvas.strokeStyle=this.BorderColor;this.Canvas.strokeRect(ToFixedPoint(rtBorder.Left),ToFixedPoint(rtBorder.Top),ToFixedRect(rtBorder.Width),ToFixedRect(rtBorder.Height));var right=rtBorder.Left+rtBorder.Width-this.Mergin.Right;var left=this.Mergin.Left+rtBorder.Left;var top=this.Mergin.Top+rtBorder.Top;var rtItem={Left:left,Top:top,Right:right};rtItem.Width=rtItem.Right-rtItem.Left;for(var i=0;i<aryText.length;++i){var item=aryText[i];this.DrawText(item,rtItem);}};this.DrawText=function(item,rtItem){this.Canvas.fillStyle=item.TitleColor;this.Canvas.textAlign='left';this.Canvas.fillText(item.Title,rtItem.Left,rtItem.Top);rtItem.Top+=this.LineHeight;rtItem.Bottom=rtItem.Top+this.LineHeight;this.Canvas.textAlign='right';this.Canvas.fillStyle=item.TextColor;this.Canvas.fillText(item.Text,rtItem.Right,rtItem.Top);rtItem.Top+=this.LineHeight;rtItem.Bottom=rtItem.Top+this.LineHeight;};//{ Title:, Text:, Color: }
4628
- this.GetForamtTitle=function(drawData){if(!drawData||!drawData.Data)return null;var aryText=[];var upperSymbol;if(this.HQChart.Symbol)upperSymbol=this.HQChart.Symbol.toUpperCase();var defaultfloatPrecision=GetfloatPrecision(upperSymbol);//价格小数位数
4629
+ this.GetForamtTitle=function(drawData){if(!drawData||!drawData.Data)return null;var aryText=[];var isFutures=false;var upperSymbol;if(this.HQChart.Symbol)upperSymbol=this.HQChart.Symbol.toUpperCase();var defaultfloatPrecision=GetfloatPrecision(upperSymbol);//价格小数位数
4630
+ if(upperSymbol)isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol);//国内期货, 纽约期货交易所
4629
4631
  if(drawData.Type==0)//连续交易
4630
- {var item=drawData.Data;if(!item)return;this.YClose=item.YClose;var titleItem=this.FormatDate(item.Date);if(titleItem)aryText.push(titleItem);var titleItem=this.ForamtTime(item.Time,"HH:MM",'PCTooltip-Time');if(titleItem)aryText.push(titleItem);var titleItem=this.ForamtPrice(item.Close,defaultfloatPrecision,'PCTooltip-Price');if(titleItem)aryText.push(titleItem);var titleItem=this.ForamtPrice(item.AvPrice,defaultfloatPrecision,'PCTooltip-AvPrice');if(titleItem)aryText.push(titleItem);var titleItem=this.ForamtIncrease(item.Close,"PCTooltip-Increase");if(titleItem)aryText.push(titleItem);var titleItem=this.FormatVol(item.Vol,'PCTooltip-Vol');if(titleItem)aryText.push(titleItem);if(IFrameSplitOperator.IsNumber(item.Amount)){var titleItem={Title:g_JSChartLocalization.GetText('PCTooltip-Amount',this.LanguageID),TitleColor:this.TitleColor,Text:IFrameSplitOperator.FromatIntegerString(item.Amount,2,this.LanguageID),TextColor:this.AmountColor};aryText.push(titleItem);}}else if(drawData.Type==1)//集合竞价
4631
- {var item=drawData.Data.Data;if(!item)return;this.YClose=item.YClose;var titleItem=this.FormatDate(item.Date);if(titleItem)aryText.push(titleItem);var timeForamt="HH:MM:SS";if(item.Ver===1)timeForamt="HH:MM";var titleItem=this.ForamtTime(item.Time,timeForamt,'PCTooltip-Time');if(titleItem)aryText.push(titleItem);var titleItem=this.ForamtPrice(item.Price,defaultfloatPrecision,'PCTooltip-AC-Price');if(titleItem)aryText.push(titleItem);var titleItem=this.ForamtIncrease(item.Price,"PCTooltip-AC-Increase");if(titleItem)aryText.push(titleItem);if(IFrameSplitOperator.IsNonEmptyArray(item.Vol)){var titleItem=this.FormatVol(item.Vol[0],'PCTooltip-AC-Vol');if(titleItem)aryText.push(titleItem);var titleItem=this.FormatVol(item.Vol[1],'PCTooltip-AC-NotMatchVol');if(titleItem)aryText.push(titleItem);}}return aryText;};this.GetColor=function(price,yclse){if(price>yclse)return this.UpColor;else if(price<yclse)return this.DownColor;else return this.UnchagneColor;};this.FormatDate=function(date){if(!IFrameSplitOperator.IsNumber(date))return null;var titleItem={Title:g_JSChartLocalization.GetText('PCTooltip-Date',this.LanguageID),TitleColor:this.TitleColor,Text:IFrameSplitOperator.FormatDateString(date,"MM-DD",this.LanguageID),TextColor:this.DateTimeColor};return titleItem;};this.ForamtTime=function(time,format,TitleID){if(!IFrameSplitOperator.IsNumber(time))return null;var titleItem={Title:g_JSChartLocalization.GetText(TitleID,this.LanguageID),TitleColor:this.TitleColor,Text:IFrameSplitOperator.FormatTimeString(time,format,this.LanguageID),TextColor:this.DateTimeColor};return titleItem;};this.ForamtPrice=function(price,defaultfloatPrecision,TitleID){if(!IFrameSplitOperator.IsNumber(price))return null;var titleItem={Title:g_JSChartLocalization.GetText(TitleID,this.LanguageID),TitleColor:this.TitleColor,Text:price.toFixed(defaultfloatPrecision),TextColor:this.GetColor(price,this.YClose)};return titleItem;};this.ForamtIncrease=function(price,TitleID){if(!IFrameSplitOperator.IsNumber(price)||price==0)return null;var value=(price-this.YClose)/this.YClose*100;var titleItem={Title:g_JSChartLocalization.GetText(TitleID,this.LanguageID),TitleColor:this.TitleColor,Text:value.toFixed(2)+'%',TextColor:this.GetColor(value,0)};return titleItem;};this.FormatVol=function(vol,TitleID){if(!IFrameSplitOperator.IsNumber(vol))return null;var titleItem={Title:g_JSChartLocalization.GetText(TitleID,this.LanguageID),TitleColor:this.TitleColor,Text:IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID),TextColor:this.VolColor};return titleItem;};}//股票信息
4632
+ {var item=drawData.Data;if(!item)return;this.YClose=item.YClose;if(isFutures&&IFrameSplitOperator.IsNumber(item.YClearing))this.YClose=item.YClearing;var titleItem=this.FormatDate(item.Date);if(titleItem)aryText.push(titleItem);var titleItem=this.ForamtTime(item.Time,"HH:MM",'PCTooltip-Time');if(titleItem)aryText.push(titleItem);var titleItem=this.ForamtPrice(item.Close,defaultfloatPrecision,'PCTooltip-Price');if(titleItem)aryText.push(titleItem);var titleItem=this.ForamtPrice(item.AvPrice,defaultfloatPrecision,'PCTooltip-AvPrice');if(titleItem)aryText.push(titleItem);var titleItem=this.ForamtIncrease(item.Close,"PCTooltip-Increase");if(titleItem)aryText.push(titleItem);var titleItem=this.FormatVol(item.Vol,'PCTooltip-Vol');if(titleItem)aryText.push(titleItem);if(IFrameSplitOperator.IsNumber(item.Amount)){var titleItem={Title:g_JSChartLocalization.GetText('PCTooltip-Amount',this.LanguageID),TitleColor:this.TitleColor,Text:IFrameSplitOperator.FromatIntegerString(item.Amount,2,this.LanguageID),TextColor:this.AmountColor};aryText.push(titleItem);}}else if(drawData.Type==1)//集合竞价
4633
+ {var item=drawData.Data.Data;if(!item)return;this.YClose=item.YClose;if(isFutures&&IFrameSplitOperator.IsNumber(item.YClearing))this.YClose=item.YClearing;var titleItem=this.FormatDate(item.Date);if(titleItem)aryText.push(titleItem);var timeForamt="HH:MM:SS";if(item.Ver===1)timeForamt="HH:MM";var titleItem=this.ForamtTime(item.Time,timeForamt,'PCTooltip-Time');if(titleItem)aryText.push(titleItem);var titleItem=this.ForamtPrice(item.Price,defaultfloatPrecision,'PCTooltip-AC-Price');if(titleItem)aryText.push(titleItem);var titleItem=this.ForamtIncrease(item.Price,"PCTooltip-AC-Increase");if(titleItem)aryText.push(titleItem);if(IFrameSplitOperator.IsNonEmptyArray(item.Vol)){var titleItem=this.FormatVol(item.Vol[0],'PCTooltip-AC-Vol');if(titleItem)aryText.push(titleItem);var titleItem=this.FormatVol(item.Vol[1],'PCTooltip-AC-NotMatchVol');if(titleItem)aryText.push(titleItem);}}return aryText;};this.GetColor=function(price,yclse){if(price>yclse)return this.UpColor;else if(price<yclse)return this.DownColor;else return this.UnchagneColor;};this.FormatDate=function(date){if(!IFrameSplitOperator.IsNumber(date))return null;var titleItem={Title:g_JSChartLocalization.GetText('PCTooltip-Date',this.LanguageID),TitleColor:this.TitleColor,Text:IFrameSplitOperator.FormatDateString(date,"MM-DD",this.LanguageID),TextColor:this.DateTimeColor};return titleItem;};this.ForamtTime=function(time,format,TitleID){if(!IFrameSplitOperator.IsNumber(time))return null;var titleItem={Title:g_JSChartLocalization.GetText(TitleID,this.LanguageID),TitleColor:this.TitleColor,Text:IFrameSplitOperator.FormatTimeString(time,format,this.LanguageID),TextColor:this.DateTimeColor};return titleItem;};this.ForamtPrice=function(price,defaultfloatPrecision,TitleID){if(!IFrameSplitOperator.IsNumber(price))return null;var titleItem={Title:g_JSChartLocalization.GetText(TitleID,this.LanguageID),TitleColor:this.TitleColor,Text:price.toFixed(defaultfloatPrecision),TextColor:this.GetColor(price,this.YClose)};return titleItem;};this.ForamtIncrease=function(price,TitleID){if(!IFrameSplitOperator.IsNumber(price)||price==0)return null;var value=(price-this.YClose)/this.YClose*100;var titleItem={Title:g_JSChartLocalization.GetText(TitleID,this.LanguageID),TitleColor:this.TitleColor,Text:value.toFixed(2)+'%',TextColor:this.GetColor(value,0)};return titleItem;};this.FormatVol=function(vol,TitleID){if(!IFrameSplitOperator.IsNumber(vol))return null;var titleItem={Title:g_JSChartLocalization.GetText(TitleID,this.LanguageID),TitleColor:this.TitleColor,Text:IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID),TextColor:this.VolColor};return titleItem;};}//股票信息
4632
4634
  function StockInfoExtendChartPaint(){this.newMethod=IExtendChartPainting;//派生
4633
4635
  this.newMethod();delete this.newMethod;this.Left=80;this.Right=1;this.Top=1;this.Bottom=1;this.BorderColor=g_JSChartResource.FrameBorderPen;this.Symbol;this.Name;this.TitleFont=["14px 微软雅黑"];this.Draw=function(){var left=this.ChartBorder.GetRight()+this.Left;var right=this.ChartBorder.GetChartWidth()-this.Right;var y=this.Top+18;var middle=left+(right-left)/2;if(this.Symbol&&this.Name){this.Canvas.font=this.TitleFont[0];this.Canvas.textAlign="right";this.Canvas.textBaseline="bottom";this.Canvas.fillText(this.Symbol,middle-2,y);this.Canvas.textAlign="left";this.Canvas.fillText(this.Name,middle+2,y);};this.Canvas.strokeStyle=this.BorderColor;this.Canvas.moveTo(left,y);this.Canvas.lineTo(right,y);this.Canvas.stroke();y+=30;this.DrawBorder();};this.DrawBorder=function(){var left=this.ChartBorder.GetRight()+this.Left;var right=this.ChartBorder.GetChartWidth()-this.Right;var top=this.Top;var bottom=this.ChartBorder.GetChartHeight()-this.Bottom;this.Canvas.strokeStyle=this.BorderColor;this.Canvas.strokeRect(left,top,right-left,bottom-top);};}//筹码分布
4634
4636
  function StockChip(){this.newMethod=IExtendChartPainting;//派生
@@ -5337,11 +5339,13 @@ var emptyData={ClientPos:this.PointInfo.ClientPos,X:this.PointInfo.Point.X,Y:thi
5337
5339
  }}else if(this.AfterOpenData&&IFrameSplitOperator.IsNonEmptyArray(this.AfterOpenData.Data)){afterItem=this.AfterOpenData.Data[this.AfterOpenData.Data.length-1];afterDataVer=this.AfterOpenData.Ver;afterExplain="AfterClose";}var dataItem=null;if(this.Data&&IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)){var count=this.Data.Data.length;dataItem=this.Data.Data[count-1];}if(!beforeItem&&!afterItem&&!dataItem)return null;if(!bCallAuction)return{Type:0,Data:dataItem};if(!dataItem)return{Type:1,Data:beforeItem,Ver:beforeDataVer,Explain:beforeExplain};if(beforeItem&&dataItem)//盘前数据
5338
5340
  {if(beforeItem.Date>dataItem.Date||beforeItem.Date==dataItem.Date&&beforeItem.Time>dataItem.Time&&afterDataVer==1.0)return{Type:2,Data:beforeItem,Ver:beforeDataVer,Explain:beforeExplain};}if(afterItem&&dataItem)//盘后数据
5339
5341
  {if(afterItem.Date>=dataItem.Date)return{Type:1,Data:afterItem,Ver:afterDataVer,Explain:afterExplain};}return{Type:0,Data:dataItem};};this.GetFormatTitle=function(data)//{ Data:, IsLastOne: }
5340
- {if(!data||!data.Data)return;var defaultfloatPrecision=GetfloatPrecision(this.Symbol);//价格小数位数
5342
+ {if(!data||!data.Data)return;var upperSymbol=this.Symbol.toUpperCase();var defaultfloatPrecision=GetfloatPrecision(this.Symbol);//价格小数位数
5343
+ var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol);//国内期货, 纽约期货交易所
5341
5344
  var item=data.Data;var isLastOne=data.IsLastOne;var aryText=[];//{Color:, Text: }
5342
5345
  if(this.IsShowName)aryText.push({Text:this.Name,Color:this.NameColor});if(this.IsShowDate||this.IsShowTime){var bShowUpdateTime=false;//是否显示了更新时间
5343
5346
  if(isLastOne&&this.ShowLastDataFormat==1){if(this.Data&&this.Data.UpdateTime&&IFrameSplitOperator.IsNumber(this.Data.UpdateTime.Date)&&IFrameSplitOperator.IsNumber(this.Data.UpdateTime.Time)){var text=IFrameSplitOperator.FormatTimeString(this.Data.UpdateTime.Time,"HH:MM:SS");aryText.push({Text:text,Color:this.DateTimeColor});bShowUpdateTime=true;}}if(!bShowUpdateTime){if(this.TimeFormat)//指定时间格式
5344
- {var strDate=null,strTime=null,text=null;if(this.IsShowDate)strDate=IFrameSplitOperator.FormatDateString("YYYY-MM-DD",item.Date);if(this.IsShowTime)strTime=IFrameSplitOperator.FormatTimeString(item.Time,this.TimeFormat);if(strDate&&strTime)text=strDate+' '+strTime;else if(strDate)text=strDate;else if(strTime)text=strTime;if(text)aryText.push({Text:text,Color:this.DateTimeColor});}else{var text=IFrameSplitOperator.FormatDateTimeString(item.DateTime,this.IsShowDate,this.IsShowTime);aryText.push({Text:text,Color:this.DateTimeColor});}}}var close=item.Close;var increase=item.Increase;var vol=item.Vol;var amount=item.Amount;var yClose=item.YClose;if(!IFrameSplitOperator.IsNumber(yClose))yClose=this.YClose;if(IFrameSplitOperator.IsNumber(close)){var color=this.GetColor(close,yClose);var text=g_JSChartLocalization.GetText('MTitle-Close',this.LanguageID)+close.toFixed(defaultfloatPrecision);aryText.push({Text:text,Color:color});}if(IFrameSplitOperator.IsNumber(increase)){var color=this.GetColor(increase,0);var text=g_JSChartLocalization.GetText('MTitle-Increase',this.LanguageID)+increase.toFixed(2)+'%';aryText.push({Text:text,Color:color});}var isShowAvPrice=true;var upperSymbol=this.Symbol.toUpperCase();if(MARKET_SUFFIX_NAME.IsET(upperSymbol)&&!MARKET_SUFFIX_NAME.IsETShowAvPrice(upperSymbol))isShowAvPrice=false;else if(MARKET_SUFFIX_NAME.IsShowAvPrice&&!MARKET_SUFFIX_NAME.IsShowAvPrice(upperSymbol))isShowAvPrice=false;if(IFrameSplitOperator.IsNumber(item.AvPrice)&&isShowAvPrice&&this.IsShowAveragePrice){var color=this.GetColor(item.AvPrice,yClose);var text=g_JSChartLocalization.GetText('MTitle-AvPrice',this.LanguageID)+item.AvPrice.toFixed(defaultfloatPrecision);aryText.push({Text:text,Color:color});}if(IFrameSplitOperator.IsNumber(vol)){var text=g_JSChartLocalization.GetText('MTitle-Vol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);aryText.push({Text:text,Color:this.VolColor});}if(IFrameSplitOperator.IsNumber(amount)){var text=g_JSChartLocalization.GetText('MTitle-Amount',this.LanguageID)+IFrameSplitOperator.FormatValueString(amount,2,this.LanguageID);aryText.push({Text:text,Color:this.AmountColor});}if(IFrameSplitOperator.IsNumber(item.Position)){var text=g_JSChartLocalization.GetText('MTitle-Position',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(item.Position,2,this.LanguageID);aryText.push({Text:text,Color:this.VolColor});}if(isLastOne&&this.ShowLastDataFormat==0)//显示数据最后的更新时间
5347
+ {var strDate=null,strTime=null,text=null;if(this.IsShowDate)strDate=IFrameSplitOperator.FormatDateString("YYYY-MM-DD",item.Date);if(this.IsShowTime)strTime=IFrameSplitOperator.FormatTimeString(item.Time,this.TimeFormat);if(strDate&&strTime)text=strDate+' '+strTime;else if(strDate)text=strDate;else if(strTime)text=strTime;if(text)aryText.push({Text:text,Color:this.DateTimeColor});}else{var text=IFrameSplitOperator.FormatDateTimeString(item.DateTime,this.IsShowDate,this.IsShowTime);aryText.push({Text:text,Color:this.DateTimeColor});}}}var close=item.Close;var increase=item.Increase;var vol=item.Vol;var amount=item.Amount;var yClose=item.YClose;if(!IFrameSplitOperator.IsNumber(yClose))yClose=this.YClose;if(isFutures&&IFrameSplitOperator.IsNumber(item.YClearing))yClose=item.YClearing;//期货使用昨结算
5348
+ if(IFrameSplitOperator.IsNumber(close)){var color=this.GetColor(close,yClose);var text=g_JSChartLocalization.GetText('MTitle-Close',this.LanguageID)+close.toFixed(defaultfloatPrecision);aryText.push({Text:text,Color:color});}if(IFrameSplitOperator.IsNumber(increase)){var color=this.GetColor(increase,0);var text=g_JSChartLocalization.GetText('MTitle-Increase',this.LanguageID)+increase.toFixed(2)+'%';aryText.push({Text:text,Color:color});}var isShowAvPrice=true;var upperSymbol=this.Symbol.toUpperCase();if(MARKET_SUFFIX_NAME.IsET(upperSymbol)&&!MARKET_SUFFIX_NAME.IsETShowAvPrice(upperSymbol))isShowAvPrice=false;else if(MARKET_SUFFIX_NAME.IsShowAvPrice&&!MARKET_SUFFIX_NAME.IsShowAvPrice(upperSymbol))isShowAvPrice=false;if(IFrameSplitOperator.IsNumber(item.AvPrice)&&isShowAvPrice&&this.IsShowAveragePrice){var color=this.GetColor(item.AvPrice,yClose);var text=g_JSChartLocalization.GetText('MTitle-AvPrice',this.LanguageID)+item.AvPrice.toFixed(defaultfloatPrecision);aryText.push({Text:text,Color:color});}if(IFrameSplitOperator.IsNumber(vol)){var text=g_JSChartLocalization.GetText('MTitle-Vol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);aryText.push({Text:text,Color:this.VolColor});}if(IFrameSplitOperator.IsNumber(amount)){var text=g_JSChartLocalization.GetText('MTitle-Amount',this.LanguageID)+IFrameSplitOperator.FormatValueString(amount,2,this.LanguageID);aryText.push({Text:text,Color:this.AmountColor});}if(IFrameSplitOperator.IsNumber(item.Position)){var text=g_JSChartLocalization.GetText('MTitle-Position',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(item.Position,2,this.LanguageID);aryText.push({Text:text,Color:this.VolColor});}if(isLastOne&&this.ShowLastDataFormat==0)//显示数据最后的更新时间
5345
5349
  {if(this.Data&&this.Data.UpdateTime&&IFrameSplitOperator.IsNumber(this.Data.UpdateTime.Date)&&IFrameSplitOperator.IsNumber(this.Data.UpdateTime.Time)){var text=g_JSChartLocalization.GetText('MTitle-UpdateTime',this.LanguageID)+IFrameSplitOperator.FormatTimeString(this.Data.UpdateTime.Time,"HH:MM:SS");aryText.push({Text:text,Color:this.DateTimeColor});}}//叠加股票的名字
5346
5350
  if(IFrameSplitOperator.IsNonEmptyArray(this.OverlayChartPaint)){for(var i=0;i<this.OverlayChartPaint.length;++i){var item=this.OverlayChartPaint[i];if(!item.Symbol||!item.Title)continue;var clrText=item.Color;var text='['+item.Title+']';aryText.push({Text:text,Color:clrText});}}return{AryText:aryText};};this.DrawItem=function(item,isLastOne)//isLastOne 是否是最后一个数据
5347
5351
  {if(!item)return;var pixelRatio=GetDevicePixelRatio();var isHScreen=this.Frame.IsHScreen===true;var border=this.Frame.GetBorder();var left=border.Left;var bottom=border.Top-this.Frame.ChartBorder.Top/2;var defaultfloatPrecision=GetfloatPrecision(this.Symbol);//价格小数位数
@@ -7757,24 +7761,16 @@ var isSHO=MARKET_SUFFIX_NAME.IsSHO(upperSymbol);//上海股票期权
7757
7761
  var isSZO=MARKET_SUFFIX_NAME.IsSZO(upperSymbol);//深证股票期权
7758
7762
  var aryMinuteData=[];var preClose=data.stock[0].yclose;//前一个数据价格
7759
7763
  var preAvPrice=data.stock[0].yclose;//前一个均价
7760
- var yClose=data.stock[0].yclose;if(isFutures&&data.stock[0].yclearing)yClose=preClose=preAvPrice=data.stock[0].yclearing;//期货使用昨结算价
7764
+ var yClose=data.stock[0].yclose;var yClearing=data.stock[0].yclearing;if(isFutures&&yClearing)preClose=preAvPrice=yClearing;//期货使用昨结算价
7761
7765
  if(!IFrameSplitOperator.IsNonEmptyArray(data.stock[0].minute))return aryMinuteData;var date=data.stock[0].date;//默认使用外部日期, 但跨天的 走势图使用内部的日期
7762
- for(var i=0;i<data.stock[0].minute.length;++i){var jsData=data.stock[0].minute[i];var item=new MinuteData();item.YClose=yClose;item.Close=jsData.price;item.Open=jsData.open;item.High=jsData.high;item.Low=jsData.low;if(isSHSZ)item.Vol=jsData.vol/100;//沪深股票原始单位股
7766
+ for(var i=0;i<data.stock[0].minute.length;++i){var jsData=data.stock[0].minute[i];var item=new MinuteData();item.YClearing=yClearing;item.YClose=yClose;item.Close=jsData.price;item.Open=jsData.open;item.High=jsData.high;item.Low=jsData.low;if(isSHSZ)item.Vol=jsData.vol/100;//沪深股票原始单位股
7763
7767
  else item.Vol=jsData.vol;item.Amount=jsData.amount;if(jsData.date>0)date=jsData.date;//分钟数据中有日期 优先使用
7764
7768
  item.DateTime=date.toString()+" "+jsData.time.toString();item.Date=date;item.Time=jsData.time;if(isFutures||isSHO||isSZO)item.Position=jsData.position;//期货 期权有持仓
7765
7769
  else if(IFrameSplitOperator.IsNumber(jsData.position))item.Position=jsData.position;item.Increase=jsData.increase;item.Risefall=jsData.risefall;item.AvPrice=jsData.avprice;if(IFrameSplitOperator.IsNumber(jsData.lead))item.Lead=jsData.lead;//领先指标 指数才有
7766
7770
  if(!IFrameSplitOperator.IsNumber(item.Close))//当前没有价格 使用上一个价格填充
7767
- {item.Close=preClose;item.Open=item.High=item.Low=item.Close;}if(!item.AvPrice)item.AvPrice=preAvPrice;//价格是0的 都用空
7768
- //if (item.Open<=0) item.Open=null;
7769
- //if (item.Close<=0) item.Close=null;
7770
- //if (item.AvPrice<=0) item.AvPrice=null;
7771
- //if (item.High<=0) item.High=null;
7772
- //if (item.Low<=0) item.Low=null;
7773
- //if (isFutures) item.AvPrice=null; //期货均价暂时没有
7774
- if(yClose&&item.Close)item.Increase=(item.Close-yClose)/yClose*100;//涨幅 (最新价格-昨收)/昨收*100;
7775
- //均价太大 可能是后台算错了
7776
- var checkValue=Math.abs(item.AvPrice-item.Close);//JSConsole.Chart.Log(`[MinuteChartContainer::JsonDataToMinuteData] checkValue=${checkValue}, ${item.Close*0.13} `)
7777
- if(isSHSZ&&checkValue>item.Close*0.13)item.AvPrice=preAvPrice;//上次价格
7771
+ {item.Close=preClose;item.Open=item.High=item.Low=item.Close;}if(!item.AvPrice)item.AvPrice=preAvPrice;if(yClose&&item.Close)item.Increase=(item.Close-yClose)/yClose*100;//涨幅 (最新价格-昨收)/昨收*100;
7772
+ if(isFutures&&yClearing&&item.Close)item.Increase=(item.Close-yClearing)/yClearing*100;//涨幅 (最新价格-昨结算价)/昨结算价*100;
7773
+ //上次价格
7778
7774
  if(IFrameSplitOperator.IsNumber(jsData.price))preClose=jsData.price;if(IFrameSplitOperator.IsNumber(jsData.avprice)&&item.AvPrice===jsData.avprice)preAvPrice=jsData.avprice;if(jsData.ExtendData)item.ExtendData=jsData.ExtendData;//扩展数据
7779
7775
  aryMinuteData[i]=item;}return aryMinuteData;};//分钟增量数据 stock: [ { date:, yclose:, yclearing: , minute:[ [],]} 0=日期 1=时间 2=开 3=高 4=低 5=收 6=均价 7=量 8=金额 9=涨幅 10=涨跌 11=领先指标 ]
7780
7776
  MinuteChartContainer.JsonDataToUpdateMinuteData=function(data){if(!data||!data.stock)return null;var stock=data.stock[0];if(!IFrameSplitOperator.IsNumber(stock.date))return null;var symbol=data.stock[0].symbol;var upperSymbol=symbol.toUpperCase();var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);var minuteData={Date:stock.date,Data:[],Symbol:symbol,Name:stock.name};var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_DAY_EXTENDDATA;//扩展数据序号
@@ -7786,35 +7782,27 @@ MinuteChartContainer.JsonDataToMinuteDataArray=function(data){var symbol=data.sy
7786
7782
  var isSZO=MARKET_SUFFIX_NAME.IsSZO(upperSymbol);//深证股票期权
7787
7783
  var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol);//国内期货, 纽约期货交易所
7788
7784
  var result=[];var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_MULTI_DAY_EXTENDDATA;//扩展数据序号
7789
- for(var i in data.data){var minuteData=[];var dayData=data.data[i];var date=dayData.date;var yClose=dayData.yclose;//前收盘 计算涨幅
7785
+ for(var i in data.data){var minuteData=[];var dayData=data.data[i];var date=dayData.date;var yClearing=dayData.yclearing;//昨结算价
7786
+ var yClose=dayData.yclose;//前收盘 计算涨幅
7790
7787
  var preClose=yClose;//前一个数据价格
7791
7788
  var preAvPrice=null;//上一个均价
7792
- var yClearing=dayData.yclearing;//昨结算价
7793
- //var preAvPrice=data.stock[0].yclose; //前一个均价
7789
+ if(isFutures&&yClearing)preClose=preAvPrice=yClearing;//期货使用昨结算价
7794
7790
  for(var j in dayData.minute){var jsData=dayData.minute[j];if(jsData[2])preClose=jsData[2];//保存上一个收盘数据
7795
- var item=new MinuteData();item.YClose=yClose;item.Close=jsData[2];item.Open=jsData[1];item.High=jsData[3];item.Low=jsData[4];if(isSHSZ)item.Vol=jsData[5]/100;//原始单位股
7791
+ var item=new MinuteData();item.YClearing=yClearing;item.YClose=yClose;item.Close=jsData[2];item.Open=jsData[1];item.High=jsData[3];item.Low=jsData[4];item.Increase=null;if(isSHSZ)item.Vol=jsData[5]/100;//原始单位股
7796
7792
  else item.Vol=jsData[5];item.Amount=jsData[6];if(7<jsData.length&&jsData[7]>0)item.AvPrice=jsData[7];//均价
7797
7793
  item.DateTime=date.toString()+" "+jsData[0].toString();item.Date=date;item.Time=jsData[0];if(8<jsData.length&&jsData[8]>0){item.Date=jsData[8];//日期
7798
7794
  item.DateTime=item.Date.toString()+" "+jsData[0].toString();}if((isFutures||isSHO||isSZO)&&9<jsData.length)item.Position=jsData[9];//持仓
7799
7795
  if(!IFrameSplitOperator.IsNumber(item.Close))//当前没有价格 使用上一个价格填充
7800
- {item.Close=preClose;item.Open=item.High=item.Low=item.Close;}if(!item.AvPrice&&preAvPrice)item.AvPrice=preAvPrice;if(item.Close&&yClose)item.Increase=(item.Close-yClose)/yClose*100;else item.Increase=null;//价格是0 都用空
7801
- //if (item.Open<=0) item.Open=null;
7802
- //if (item.Close<=0) item.Close=null;
7803
- //if (item.AvPrice<=0) item.AvPrice=null;
7804
- //if (item.High<=0) item.High=null;
7805
- //if (item.Low<=0) item.Low=null;
7806
- //if (item.AvPrice<=0) item.AvPrice=null;
7807
- //均价太大 可能是后台算错了
7808
- if(item.AvPrice&&isSHSZ){var checkValue=Math.abs(item.AvPrice-item.Close);if(checkValue>item.Close*0.13)item.AvPrice=preAvPrice;}if(jsData.length>7&&jsData[7]>0&&item.AvPrice===jsData[7])preAvPrice=jsData[7];if(jsData[extendDataIndex])item.ExtendData=jsData[extendDataIndex];minuteData[j]=item;}var newData=new ChartData();newData.Data=minuteData;newData.YClose=yClose;newData.Close=dayData.close;newData.Date=date;if(IFrameSplitOperator.IsNumber(yClearing))newData.YClearing=yClearing;result.push(newData);}return result;};MinuteChartContainer.JsonDataToHistoryMinuteLineColorData=function(data){if(!data)return null;var aryLineColor=[];for(var i in data.data){var dayData=data.data[i];if(!dayData.linecolor)continue;for(var j in dayData.linecolor.data){var item=dayData.linecolor.data[j];if(!IFrameSplitOperator.IsNumber(item.type)||!IFrameSplitOperator.IsNumber(item.date)||!IFrameSplitOperator.IsNumber(item.start)||!IFrameSplitOperator.IsNumber(item.end)||!item.color)continue;if(item.start>=item.end)continue;var newItem={Type:item.type,Date:item.date,Start:item.start,End:item.end,Color:item.color};if(IFrameSplitOperator.IsPlusNumber(item.linewidth))newItem.LineWidth=item.linewidth;aryLineColor.push(newItem);}}return aryLineColor.length>0?aryLineColor:null;};MinuteChartContainer.JsonDataToCallAuctionItem=function(data,callAuctionData,isBeforeOpen,symbol){var isSHSZ=false;if(symbol){var upperSymbol=symbol.toUpperCase();isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);}var date=callAuctionData.Date;var yClose=callAuctionData.YClose;var extendDataIndex=isBeforeOpen?JSCHART_DATA_FIELD_ID.MINUTE_BEFOREOPEN_EXTENDDATA:JSCHART_DATA_FIELD_ID.MINUTE_AFTERCLOSE_EXTENDDATA;//扩展数据序号
7809
- if(callAuctionData.Ver==1.0){var preClose=null;for(var i in data){var item=isBeforeOpen?new BeforeOpenData():new AfterCloseData();var jsData=data[i];item.YClose=yClose;item.Time=jsData[0];item.Date=date;item.Price=jsData[1];if(!item.Price)item.Price=preClose;else preClose=item.Price;item.Vol[0]=isSHSZ?jsData[2]/100:jsData[2];//沪深股票原始单位股
7796
+ {item.Close=preClose;item.Open=item.High=item.Low=item.Close;}if(!item.AvPrice&&preAvPrice)item.AvPrice=preAvPrice;if(item.Close&&yClose)item.Increase=(item.Close-yClose)/yClose*100;if(item.Close&&yClearing&&isFutures)item.Increase=(item.Close-yClearing)/yClearing*100;if(jsData.length>7&&jsData[7]>0&&item.AvPrice===jsData[7])preAvPrice=jsData[7];if(jsData[extendDataIndex])item.ExtendData=jsData[extendDataIndex];minuteData[j]=item;}var newData=new ChartData();newData.Data=minuteData;newData.YClose=yClose;if(IFrameSplitOperator.IsNumber(yClearing))newData.YClearing=yClearing;newData.Close=dayData.close;newData.Date=date;result.push(newData);}return result;};MinuteChartContainer.JsonDataToHistoryMinuteLineColorData=function(data){if(!data)return null;var aryLineColor=[];for(var i in data.data){var dayData=data.data[i];if(!dayData.linecolor)continue;for(var j in dayData.linecolor.data){var item=dayData.linecolor.data[j];if(!IFrameSplitOperator.IsNumber(item.type)||!IFrameSplitOperator.IsNumber(item.date)||!IFrameSplitOperator.IsNumber(item.start)||!IFrameSplitOperator.IsNumber(item.end)||!item.color)continue;if(item.start>=item.end)continue;var newItem={Type:item.type,Date:item.date,Start:item.start,End:item.end,Color:item.color};if(IFrameSplitOperator.IsPlusNumber(item.linewidth))newItem.LineWidth=item.linewidth;aryLineColor.push(newItem);}}return aryLineColor.length>0?aryLineColor:null;};MinuteChartContainer.JsonDataToCallAuctionItem=function(data,callAuctionData,isBeforeOpen,symbol){var isSHSZ=false;if(symbol){var upperSymbol=symbol.toUpperCase();isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);}var date=callAuctionData.Date;var yClose=callAuctionData.YClose;var yClearing=callAuctionData.YClearing;var extendDataIndex=isBeforeOpen?JSCHART_DATA_FIELD_ID.MINUTE_BEFOREOPEN_EXTENDDATA:JSCHART_DATA_FIELD_ID.MINUTE_AFTERCLOSE_EXTENDDATA;//扩展数据序号
7797
+ if(callAuctionData.Ver==1.0){var preClose=null;for(var i in data){var item=isBeforeOpen?new BeforeOpenData():new AfterCloseData();var jsData=data[i];item.YClose=yClose;item.YClearing=yClearing;item.Time=jsData[0];item.Date=date;item.Price=jsData[1];if(!item.Price)item.Price=preClose;else preClose=item.Price;item.Vol[0]=isSHSZ?jsData[2]/100:jsData[2];//沪深股票原始单位股
7810
7798
  item.Amount=jsData[3];if(IFrameSplitOperator.IsNumber(jsData[4]))//日期
7811
- item.Date=jsData[4];item.DateTime=item.Date+' '+item.Time;callAuctionData.Data.push(item);}}else if(callAuctionData.Ver==2.0){var max=0;for(var i in data){var item=isBeforeOpen?new BeforeOpenData():new AfterCloseData();var jsData=data[i];item.YClose=yClose;item.Time=jsData[0];item.Date=date;item.Price=jsData[1];item.Vol[0]=jsData[2];//匹配量
7799
+ item.Date=jsData[4];item.DateTime=item.Date+' '+item.Time;callAuctionData.Data.push(item);}}else if(callAuctionData.Ver==2.0){var max=0;for(var i in data){var item=isBeforeOpen?new BeforeOpenData():new AfterCloseData();var jsData=data[i];item.YClose=yClose;item.YClearing=yClearing;item.Time=jsData[0];item.Date=date;item.Price=jsData[1];item.Vol[0]=jsData[2];//匹配量
7812
7800
  item.Vol[1]=jsData[3];//未匹配量
7813
7801
  item.ColorID=jsData[4];//柱子颜色ID
7814
- item.DateTime=date.toString()+" "+item.Time.toString();var totalVol=item.Vol[0]+item.Vol[1];if(IFrameSplitOperator.IsNumber(jsData[5]))totalVol=jsData[5];if(totalVol>max)max=totalVol;if(jsData[extendDataIndex])item.ExtendData=jsData[extendDataIndex];callAuctionData.Data.push(item);}callAuctionData.VolMax=max;callAuctionData.VolMin=0;}else if(beforeOpenData.Ver==3.0){var max=0;for(var i in data){var item=isBeforeOpen?new BeforeOpenData():new AfterCloseData();var jsData=data[i];item.YClose=yClose;item.Time=jsData[0];item.Date=date;item.Price=jsData[1];item.AvPrice=jsData[2];//均价
7802
+ item.DateTime=date.toString()+" "+item.Time.toString();var totalVol=item.Vol[0]+item.Vol[1];if(IFrameSplitOperator.IsNumber(jsData[5]))totalVol=jsData[5];if(totalVol>max)max=totalVol;if(jsData[extendDataIndex])item.ExtendData=jsData[extendDataIndex];callAuctionData.Data.push(item);}callAuctionData.VolMax=max;callAuctionData.VolMin=0;}else if(beforeOpenData.Ver==3.0){var max=0;for(var i in data){var item=isBeforeOpen?new BeforeOpenData():new AfterCloseData();var jsData=data[i];item.YClose=yClose;item.YClearing=yClearing;item.Time=jsData[0];item.Date=date;item.Price=jsData[1];item.AvPrice=jsData[2];//均价
7815
7803
  item.Vol[0]=jsData[3];//匹配量
7816
7804
  item.ColorID=jsData[4];//柱子颜色ID
7817
- item.DateTime=date.toString()+" "+item.Time.toString();var totalVol=item.Vol[0];if(IFrameSplitOperator.IsNumber(jsData[5]))totalVol=jsData[5];if(totalVol>max)max=totalVol;if(jsData[extendDataIndex])item.ExtendData=jsData[extendDataIndex];callAuctionData.Data.push(item);}callAuctionData.VolMax=max;callAuctionData.VolMin=0;}};MinuteChartContainer.JosnDataToBeforeOpenDataArray=function(data){if(!data||!data.data)return null;var aryDay=[];for(var i in data.data){var dayItem=data.data[i];var beforeOpenData={Data:[],TotalCount:15,Ver:1.0,Date:dayItem.date,YClose:dayItem.yclose};if(dayItem.beforeinfo){if(IFrameSplitOperator.IsNumber(dayItem.beforeinfo.totalcount))beforeOpenData.TotalCount=dayItem.beforeinfo.totalcount;if(IFrameSplitOperator.IsNumber(dayItem.beforeinfo.ver))beforeOpenData.Ver=dayItem.beforeinfo.ver;}MinuteChartContainer.JsonDataToCallAuctionItem(dayItem.before,beforeOpenData,true,data.symbol);aryDay.push(beforeOpenData);}aryDay.sort(function(left,right){return left.Date-right.Date;});return aryDay;};MinuteChartContainer.JosnDataToAfterCloseDataArray=function(data){if(!data||!data.data)return null;var aryDay=[];for(var i in data.data){var dayItem=data.data[i];var afterCloseData={Data:[],TotalCount:15,Ver:1.0,Date:dayItem.date,YClose:dayItem.yclose};if(dayItem.afterinfo){if(IFrameSplitOperator.IsNumber(dayItem.afterinfo.totalcount))afterCloseData.TotalCount=dayItem.afterinfo.totalcount;if(IFrameSplitOperator.IsNumber(dayItem.afterinfo.ver))afterCloseData.Ver=dayItem.afterinfo.ver;}MinuteChartContainer.JsonDataToCallAuctionItem(dayItem.after,afterCloseData,false,data.symbol);aryDay.push(afterCloseData);}aryDay.sort(function(left,right){return left.Date-right.Date;});return aryDay;};/*
7805
+ item.DateTime=date.toString()+" "+item.Time.toString();var totalVol=item.Vol[0];if(IFrameSplitOperator.IsNumber(jsData[5]))totalVol=jsData[5];if(totalVol>max)max=totalVol;if(jsData[extendDataIndex])item.ExtendData=jsData[extendDataIndex];callAuctionData.Data.push(item);}callAuctionData.VolMax=max;callAuctionData.VolMin=0;}};MinuteChartContainer.JosnDataToBeforeOpenDataArray=function(data){if(!data||!data.data)return null;var aryDay=[];for(var i in data.data){var dayItem=data.data[i];var beforeOpenData={Data:[],TotalCount:15,Ver:1.0,Date:dayItem.date,YClose:dayItem.yclose,YClearing:dayItem.YClearing};if(dayItem.beforeinfo){if(IFrameSplitOperator.IsNumber(dayItem.beforeinfo.totalcount))beforeOpenData.TotalCount=dayItem.beforeinfo.totalcount;if(IFrameSplitOperator.IsNumber(dayItem.beforeinfo.ver))beforeOpenData.Ver=dayItem.beforeinfo.ver;}MinuteChartContainer.JsonDataToCallAuctionItem(dayItem.before,beforeOpenData,true,data.symbol);aryDay.push(beforeOpenData);}aryDay.sort(function(left,right){return left.Date-right.Date;});return aryDay;};MinuteChartContainer.JosnDataToAfterCloseDataArray=function(data){if(!data||!data.data)return null;var aryDay=[];for(var i in data.data){var dayItem=data.data[i];var afterCloseData={Data:[],TotalCount:15,Ver:1.0,Date:dayItem.date,YClose:dayItem.yclose,YClearing:dayItem.YClearing};if(dayItem.afterinfo){if(IFrameSplitOperator.IsNumber(dayItem.afterinfo.totalcount))afterCloseData.TotalCount=dayItem.afterinfo.totalcount;if(IFrameSplitOperator.IsNumber(dayItem.afterinfo.ver))afterCloseData.Ver=dayItem.afterinfo.ver;}MinuteChartContainer.JsonDataToCallAuctionItem(dayItem.after,afterCloseData,false,data.symbol);aryDay.push(afterCloseData);}aryDay.sort(function(left,right){return left.Date-right.Date;});return aryDay;};/*
7818
7806
  历史分钟走势图
7819
7807
  */function HistoryMinuteChartContainer(uielement){this.newMethod=MinuteChartContainer;//派生
7820
7808
  this.newMethod(uielement);delete this.newMethod;this.HistoryMinuteApiUrl="http://127.0.0.1:8080/cache/minuteday/day/";this.ClassName='HistoryMinuteChartContainer';//创建主图K线画法
@@ -8669,7 +8657,7 @@ IsET:function IsET(upperSymbol){if(!upperSymbol)return false;return upperSymbol.
8669
8657
  var pos=upperSymbol.length-this.SH.length;var find=upperSymbol.indexOf(this.SH);return find==pos;},IsSZ:function IsSZ(upperSymbol){var pos=upperSymbol.length-this.SZ.length;var find=upperSymbol.indexOf(this.SZ);return find==pos;},IsBJ:function IsBJ(upperSymbol){var pos=upperSymbol.length-this.BJ.length;var find=upperSymbol.indexOf(this.BJ);return find==pos;},//自定义指数
8670
8658
  IsSHSZCustomIndex:function IsSHSZCustomIndex(upperSymbol){var pos=upperSymbol.length-this.SHSZ_C_Index.length;var find=upperSymbol.indexOf(this.SHSZ_C_Index);return find==pos;},IsSHO:function IsSHO(upperSymbol){var pos=upperSymbol.length-this.SHO.length;var find=upperSymbol.indexOf(this.SHO);return find==pos;},IsSZO:function IsSZO(upperSymbol){var pos=upperSymbol.length-this.SZO.length;var find=upperSymbol.indexOf(this.SZO);return find==pos;},IsHK:function IsHK(upperSymbol){var pos=upperSymbol.length-this.HK.length;var find=upperSymbol.indexOf(this.HK);return find==pos;},IsTW:function IsTW(upperSymbol){var pos=upperSymbol.length-this.TW.length;var find=upperSymbol.indexOf(this.TW);return find==pos;},IsJP:function IsJP(upperSymbol){var pos=upperSymbol.length-this.JP.length;var find=upperSymbol.indexOf(this.JP);return find==pos;},IsSHFE:function IsSHFE(upperSymbol){if(!upperSymbol)return false;if(upperSymbol.indexOf(this.SHFE)>0)return true;if(upperSymbol.indexOf(this.SHFE2)>0)return true;return false;},IsCFFEX:function IsCFFEX(upperSymbol){if(!upperSymbol)return false;if(upperSymbol.indexOf(this.CFFEX)>0)return true;return false;},IsDCE:function IsDCE(upperSymbol){if(!upperSymbol)return false;return upperSymbol.indexOf(this.DCE)>0;},IsCZCE:function IsCZCE(upperSymbol){if(!upperSymbol)return false;return upperSymbol.indexOf(this.CZCE)>0;},IsGZFE:function IsGZFE(upperSymbol){if(!upperSymbol)return false;return upperSymbol.indexOf(this.GZFE)>0;},IsChinaFutures:function IsChinaFutures(upperSymbol)//是否是国内期货 /期权
8671
8659
  {return this.IsSHO(upperSymbol)||this.IsSZO(upperSymbol)||this.IsGZFE(upperSymbol)||this.IsCFFEX(upperSymbol)||this.IsCZCE(upperSymbol)||this.IsDCE(upperSymbol)||this.IsSHFE(upperSymbol);},IsFutures:function IsFutures(upperSymbol)//是否是期货 包含国外的
8672
- {return this.IsChinaFutures(upperSymbol)||this.IsNYMEX(upperSymbol)||this.IsCOMEX(upperSymbol)||this.IsNYBOT(upperSymbol)||this.IsCBOT(upperSymbol)||this.IsLME(upperSymbol)||this.IsTOCOM(upperSymbol);},IsSHSZ:function IsSHSZ(upperSymbol)//是否是沪深的股票
8660
+ {if(!upperSymbol)return false;return this.IsChinaFutures(upperSymbol)||this.IsNYMEX(upperSymbol)||this.IsCOMEX(upperSymbol)||this.IsNYBOT(upperSymbol)||this.IsCBOT(upperSymbol)||this.IsLME(upperSymbol)||this.IsTOCOM(upperSymbol);},IsSHSZ:function IsSHSZ(upperSymbol)//是否是沪深的股票
8673
8661
  {return this.IsSZ(upperSymbol)||this.IsSH(upperSymbol)||this.IsSHSZCustomIndex(upperSymbol);},IsSHSZFund:function IsSHSZFund(upperSymbol)//是否是交易所基金
8674
8662
  {if(!upperSymbol)return false;if(this.IsSH(upperSymbol))//51XXXX.SH
8675
8663
  {if(upperSymbol.charAt(0)=='5'&&upperSymbol.charAt(1)=='1')return true;}else if(this.IsSZ(upperSymbol))//15XXXX.sz, 16XXXX.sz, 17XXXX.sz, 18XXXX.sz
@@ -12478,7 +12466,7 @@ this.AreaColor=g_JSChartResource.ScrollBar.BGChart.AreaColor;//面积图颜色
12478
12466
  };this.Draw=function(){if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;this.Canvas.save();if(this.LineWidth>0)this.Canvas.lineWidth=this.LineWidth*GetDevicePixelRatio();var bottom=this.ChartBorder.GetBottom();this.Canvas.strokeStyle=this.Color;var bFirstPoint=true;var drawCount=0,x,y;var firstPoint={};for(var i=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];var value=item.Close;if(!IFrameSplitOperator.IsNumber(value))continue;x=this.ChartFrame.GetXFromIndex(i);y=this.ChartFrame.GetYFromData(value);if(bFirstPoint){this.Canvas.beginPath();this.Canvas.moveTo(x,y);bFirstPoint=false;firstPoint={X:x,Y:y};}else{this.Canvas.lineTo(x,y);}++drawCount;}if(drawCount>0){this.Canvas.stroke();this.Canvas.lineTo(x,bottom);this.Canvas.lineTo(firstPoint.X,bottom);this.Canvas.closePath();this.Canvas.fillStyle=this.AreaColor;this.Canvas.fill();}this.Canvas.restore();};this.GetMaxMin=function(){var range={Max:null,Min:null};if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return range;for(var i=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];var value=item.Close;if(!IFrameSplitOperator.IsNumber(value))continue;if(range.Max==null||range.Max<value)range.Max=value;if(range.Min==null||range.Min>value)range.Min=value;}return range;};}/********************************************************************************
12479
12467
  * 版本信息输出
12480
12468
  *
12481
- */var HQCHART_VERSION="1.1.12458";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
12469
+ */var HQCHART_VERSION="1.1.12464";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
12482
12470
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
12483
12471
  // BaseIndex:BaseIndex,
12484
12472
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "hqchart",
3
3
  "description": "stock chart",
4
4
  "author": "jones2000",
5
- "version": "1.1.12459",
5
+ "version": "1.1.12463",
6
6
  "main": "lib/main.js",
7
7
  "private": false,
8
8
  "license": "Apache License 2.0",
@@ -38015,10 +38015,13 @@ function MinuteTooltipPaint()
38015
38015
  }
38016
38016
 
38017
38017
  var upperSymbol;
38018
- this.YClose=this.TitlePaint.YClose;
38019
- this.YClose=item.YClose;
38020
38018
  if (this.HQChart.Symbol) upperSymbol=this.HQChart.Symbol.toUpperCase();
38019
+ var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
38021
38020
  var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
38021
+
38022
+ this.YClose=this.TitlePaint.YClose;
38023
+ this.YClose=item.YClose;
38024
+ if (isFutures && IFrameSplitOperator.IsNumber(item.YClearing)) this.YClose=item.YClearing;
38022
38025
 
38023
38026
  var aryText=[];
38024
38027
  var result={ AryText:aryText };
@@ -38353,9 +38356,11 @@ function MinuteLeftTooltipPaint()
38353
38356
  if (!drawData || !drawData.Data) return null;
38354
38357
 
38355
38358
  var aryText=[];
38359
+ var isFutures=false;
38356
38360
  var upperSymbol;
38357
38361
  if (this.HQChart.Symbol) upperSymbol=this.HQChart.Symbol.toUpperCase();
38358
38362
  var defaultfloatPrecision=GetfloatPrecision(upperSymbol);//价格小数位数
38363
+ if (upperSymbol) isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
38359
38364
 
38360
38365
  if (drawData.Type==0) //连续交易
38361
38366
  {
@@ -38363,6 +38368,7 @@ function MinuteLeftTooltipPaint()
38363
38368
  if (!item) return;
38364
38369
 
38365
38370
  this.YClose=item.YClose;
38371
+ if (isFutures && IFrameSplitOperator.IsNumber(item.YClearing)) this.YClose=item.YClearing;
38366
38372
  var titleItem=this.FormatDate(item.Date);
38367
38373
  if (titleItem) aryText.push(titleItem);
38368
38374
 
@@ -38400,6 +38406,7 @@ function MinuteLeftTooltipPaint()
38400
38406
  if (!item) return;
38401
38407
 
38402
38408
  this.YClose=item.YClose;
38409
+ if (isFutures && IFrameSplitOperator.IsNumber(item.YClearing)) this.YClose=item.YClearing;
38403
38410
  var titleItem=this.FormatDate(item.Date);
38404
38411
  if (titleItem) aryText.push(titleItem);
38405
38412
 
@@ -48091,7 +48098,10 @@ function DynamicMinuteTitlePainting()
48091
48098
  {
48092
48099
  if (!data || !data.Data) return;
48093
48100
 
48094
- var defaultfloatPrecision=GetfloatPrecision(this.Symbol);//价格小数位数
48101
+ var upperSymbol=this.Symbol.toUpperCase();
48102
+ var defaultfloatPrecision=GetfloatPrecision(this.Symbol); //价格小数位数
48103
+ var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
48104
+
48095
48105
  var item=data.Data;
48096
48106
  var isLastOne=data.IsLastOne;
48097
48107
  var aryText=[]; //{Color:, Text: }
@@ -48137,6 +48147,8 @@ function DynamicMinuteTitlePainting()
48137
48147
  var amount=item.Amount;
48138
48148
  var yClose=item.YClose;
48139
48149
  if (!IFrameSplitOperator.IsNumber(yClose)) yClose=this.YClose;
48150
+ if (isFutures && IFrameSplitOperator.IsNumber(item.YClearing)) yClose=item.YClearing; //期货使用昨结算
48151
+
48140
48152
 
48141
48153
  if (IFrameSplitOperator.IsNumber(close))
48142
48154
  {
@@ -74944,7 +74956,9 @@ MinuteChartContainer.JsonDataToMinuteData=function(data,isBeforeData)
74944
74956
  var preClose=data.stock[0].yclose; //前一个数据价格
74945
74957
  var preAvPrice=data.stock[0].yclose; //前一个均价
74946
74958
  var yClose=data.stock[0].yclose;
74947
- if (isFutures && data.stock[0].yclearing) yClose=preClose=preAvPrice=data.stock[0].yclearing; //期货使用昨结算价
74959
+ var yClearing=data.stock[0].yclearing;
74960
+
74961
+ if (isFutures && yClearing) preClose=preAvPrice=yClearing; //期货使用昨结算价
74948
74962
 
74949
74963
  if (!IFrameSplitOperator.IsNonEmptyArray(data.stock[0].minute)) return aryMinuteData;
74950
74964
 
@@ -74953,7 +74967,7 @@ MinuteChartContainer.JsonDataToMinuteData=function(data,isBeforeData)
74953
74967
  {
74954
74968
  var jsData=data.stock[0].minute[i];
74955
74969
  var item=new MinuteData();
74956
-
74970
+ item.YClearing=yClearing;
74957
74971
  item.YClose=yClose;
74958
74972
  item.Close=jsData.price;
74959
74973
  item.Open=jsData.open;
@@ -74984,24 +74998,11 @@ MinuteChartContainer.JsonDataToMinuteData=function(data,isBeforeData)
74984
74998
 
74985
74999
  if (!item.AvPrice) item.AvPrice=preAvPrice;
74986
75000
 
74987
- //价格是0的 都用空
74988
- //if (item.Open<=0) item.Open=null;
74989
- //if (item.Close<=0) item.Close=null;
74990
- //if (item.AvPrice<=0) item.AvPrice=null;
74991
- //if (item.High<=0) item.High=null;
74992
- //if (item.Low<=0) item.Low=null;
74993
-
74994
- //if (isFutures) item.AvPrice=null; //期货均价暂时没有
74995
-
74996
75001
  if (yClose && item.Close)
74997
75002
  item.Increase=(item.Close-yClose)/yClose*100; //涨幅 (最新价格-昨收)/昨收*100;
74998
75003
 
74999
-
75000
- //均价太大 可能是后台算错了
75001
- var checkValue=Math.abs(item.AvPrice-item.Close);
75002
- //JSConsole.Chart.Log(`[MinuteChartContainer::JsonDataToMinuteData] checkValue=${checkValue}, ${item.Close*0.13} `)
75003
- if (isSHSZ && checkValue>item.Close*0.13 )
75004
- item.AvPrice=preAvPrice;
75004
+ if (isFutures && yClearing && item.Close)
75005
+ item.Increase=(item.Close-yClearing)/yClearing*100; //涨幅 (最新价格-昨结算价)/昨结算价*100;
75005
75006
 
75006
75007
  //上次价格
75007
75008
  if (IFrameSplitOperator.IsNumber(jsData.price)) preClose=jsData.price;
@@ -75115,7 +75116,7 @@ MinuteChartContainer.JsonDataToMinuteDataArray=function(data)
75115
75116
  var symbol=data.symbol;
75116
75117
  var upperSymbol=symbol.toUpperCase();
75117
75118
  var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);
75118
- var isSHO=MARKET_SUFFIX_NAME.IsSHO(upperSymbol); //上海股票期权
75119
+ var isSHO=MARKET_SUFFIX_NAME.IsSHO(upperSymbol); //上海股票期权
75119
75120
  var isSZO=MARKET_SUFFIX_NAME.IsSZO(upperSymbol); //深证股票期权
75120
75121
  var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
75121
75122
  var result=[];
@@ -75125,22 +75126,25 @@ MinuteChartContainer.JsonDataToMinuteDataArray=function(data)
75125
75126
  var minuteData=[];
75126
75127
  var dayData=data.data[i];
75127
75128
  var date=dayData.date;
75129
+ var yClearing=dayData.yclearing; //昨结算价
75128
75130
  var yClose=dayData.yclose; //前收盘 计算涨幅
75129
75131
  var preClose=yClose; //前一个数据价格
75130
75132
  var preAvPrice=null; //上一个均价
75131
- var yClearing=dayData.yclearing; //昨结算价
75132
75133
 
75133
- //var preAvPrice=data.stock[0].yclose; //前一个均价
75134
+ if (isFutures && yClearing) preClose=preAvPrice=yClearing; //期货使用昨结算价
75135
+
75134
75136
  for(var j in dayData.minute)
75135
75137
  {
75136
75138
  var jsData=dayData.minute[j];
75137
75139
  if (jsData[2]) preClose=jsData[2]; //保存上一个收盘数据
75138
75140
  var item=new MinuteData();
75141
+ item.YClearing=yClearing;
75139
75142
  item.YClose=yClose;
75140
75143
  item.Close=jsData[2];
75141
75144
  item.Open=jsData[1];
75142
75145
  item.High=jsData[3];
75143
75146
  item.Low=jsData[4];
75147
+ item.Increase=null;
75144
75148
  if (isSHSZ) item.Vol=jsData[5]/100; //原始单位股
75145
75149
  else item.Vol=jsData[5];
75146
75150
  item.Amount=jsData[6];
@@ -75163,23 +75167,12 @@ MinuteChartContainer.JsonDataToMinuteDataArray=function(data)
75163
75167
 
75164
75168
  if (!item.AvPrice && preAvPrice) item.AvPrice=preAvPrice;
75165
75169
 
75166
- if (item.Close && yClose) item.Increase = (item.Close - yClose)/yClose*100;
75167
- else item.Increase=null;
75168
-
75169
- //价格是0的 都用空
75170
- //if (item.Open<=0) item.Open=null;
75171
- //if (item.Close<=0) item.Close=null;
75172
- //if (item.AvPrice<=0) item.AvPrice=null;
75173
- //if (item.High<=0) item.High=null;
75174
- //if (item.Low<=0) item.Low=null;
75175
- //if (item.AvPrice<=0) item.AvPrice=null;
75170
+ if (item.Close && yClose)
75171
+ item.Increase = (item.Close - yClose)/yClose*100;
75176
75172
 
75177
- //均价太大 可能是后台算错了
75178
- if (item.AvPrice && isSHSZ)
75179
- {
75180
- var checkValue=Math.abs(item.AvPrice-item.Close);
75181
- if (checkValue>item.Close*0.13 ) item.AvPrice=preAvPrice;
75182
- }
75173
+ if (item.Close && yClearing && isFutures)
75174
+ item.Increase = (item.Close - yClearing)/yClearing*100;
75175
+
75183
75176
 
75184
75177
  if (jsData.length>7 && jsData[7]>0 && item.AvPrice===jsData[7]) preAvPrice=jsData[7];
75185
75178
  if (jsData[extendDataIndex]) item.ExtendData=jsData[extendDataIndex];
@@ -75190,9 +75183,9 @@ MinuteChartContainer.JsonDataToMinuteDataArray=function(data)
75190
75183
  var newData=new ChartData();
75191
75184
  newData.Data=minuteData;
75192
75185
  newData.YClose=yClose;
75186
+ if (IFrameSplitOperator.IsNumber(yClearing)) newData.YClearing=yClearing;
75193
75187
  newData.Close=dayData.close;
75194
75188
  newData.Date=date;
75195
- if (IFrameSplitOperator.IsNumber(yClearing)) newData.YClearing=yClearing;
75196
75189
 
75197
75190
  result.push(newData);
75198
75191
  }
@@ -75241,6 +75234,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
75241
75234
 
75242
75235
  var date=callAuctionData.Date;
75243
75236
  var yClose=callAuctionData.YClose;
75237
+ var yClearing=callAuctionData.YClearing;
75244
75238
  var extendDataIndex=isBeforeOpen? JSCHART_DATA_FIELD_ID.MINUTE_BEFOREOPEN_EXTENDDATA:JSCHART_DATA_FIELD_ID.MINUTE_AFTERCLOSE_EXTENDDATA; //扩展数据序号
75245
75239
  if (callAuctionData.Ver==1.0)
75246
75240
  {
@@ -75250,6 +75244,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
75250
75244
  var item=isBeforeOpen? new BeforeOpenData() : new AfterCloseData();
75251
75245
  var jsData=data[i];
75252
75246
  item.YClose=yClose;
75247
+ item.YClearing=yClearing;
75253
75248
  item.Time=jsData[0];
75254
75249
  item.Date=date;
75255
75250
  item.Price=jsData[1];
@@ -75273,6 +75268,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
75273
75268
  var item=isBeforeOpen? new BeforeOpenData() : new AfterCloseData();
75274
75269
  var jsData=data[i];
75275
75270
  item.YClose=yClose;
75271
+ item.YClearing=yClearing;
75276
75272
  item.Time=jsData[0];
75277
75273
  item.Date=date;
75278
75274
  item.Price=jsData[1];
@@ -75300,6 +75296,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
75300
75296
  var item=isBeforeOpen? new BeforeOpenData() : new AfterCloseData();
75301
75297
  var jsData=data[i];
75302
75298
  item.YClose=yClose;
75299
+ item.YClearing=yClearing;
75303
75300
  item.Time=jsData[0];
75304
75301
  item.Date=date;
75305
75302
  item.Price=jsData[1];
@@ -75329,7 +75326,7 @@ MinuteChartContainer.JosnDataToBeforeOpenDataArray=function(data)
75329
75326
  for(var i in data.data)
75330
75327
  {
75331
75328
  var dayItem=data.data[i];
75332
- var beforeOpenData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose };
75329
+ var beforeOpenData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose, YClearing:dayItem.YClearing };
75333
75330
  if (dayItem.beforeinfo)
75334
75331
  {
75335
75332
  if (IFrameSplitOperator.IsNumber(dayItem.beforeinfo.totalcount)) beforeOpenData.TotalCount=dayItem.beforeinfo.totalcount;
@@ -75354,7 +75351,7 @@ MinuteChartContainer.JosnDataToAfterCloseDataArray=function(data)
75354
75351
  for(var i in data.data)
75355
75352
  {
75356
75353
  var dayItem=data.data[i];
75357
- var afterCloseData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose };
75354
+ var afterCloseData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose, YClearing:dayItem.YClearing };
75358
75355
 
75359
75356
  if (dayItem.afterinfo)
75360
75357
  {
@@ -84473,6 +84470,8 @@ var MARKET_SUFFIX_NAME=
84473
84470
 
84474
84471
  IsFutures:function(upperSymbol) //是否是期货 包含国外的
84475
84472
  {
84473
+ if (!upperSymbol) return false;
84474
+
84476
84475
  return this.IsChinaFutures(upperSymbol) ||
84477
84476
  this.IsNYMEX(upperSymbol) || this.IsCOMEX(upperSymbol) || this.IsNYBOT(upperSymbol) || this.IsCBOT(upperSymbol) ||
84478
84477
  this.IsLME(upperSymbol) || this.IsTOCOM(upperSymbol);
@@ -42095,10 +42095,13 @@ function MinuteTooltipPaint()
42095
42095
  }
42096
42096
 
42097
42097
  var upperSymbol;
42098
- this.YClose=this.TitlePaint.YClose;
42099
- this.YClose=item.YClose;
42100
42098
  if (this.HQChart.Symbol) upperSymbol=this.HQChart.Symbol.toUpperCase();
42099
+ var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
42101
42100
  var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
42101
+
42102
+ this.YClose=this.TitlePaint.YClose;
42103
+ this.YClose=item.YClose;
42104
+ if (isFutures && IFrameSplitOperator.IsNumber(item.YClearing)) this.YClose=item.YClearing;
42102
42105
 
42103
42106
  var aryText=[];
42104
42107
  var result={ AryText:aryText };
@@ -42433,9 +42436,11 @@ function MinuteLeftTooltipPaint()
42433
42436
  if (!drawData || !drawData.Data) return null;
42434
42437
 
42435
42438
  var aryText=[];
42439
+ var isFutures=false;
42436
42440
  var upperSymbol;
42437
42441
  if (this.HQChart.Symbol) upperSymbol=this.HQChart.Symbol.toUpperCase();
42438
42442
  var defaultfloatPrecision=GetfloatPrecision(upperSymbol);//价格小数位数
42443
+ if (upperSymbol) isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
42439
42444
 
42440
42445
  if (drawData.Type==0) //连续交易
42441
42446
  {
@@ -42443,6 +42448,7 @@ function MinuteLeftTooltipPaint()
42443
42448
  if (!item) return;
42444
42449
 
42445
42450
  this.YClose=item.YClose;
42451
+ if (isFutures && IFrameSplitOperator.IsNumber(item.YClearing)) this.YClose=item.YClearing;
42446
42452
  var titleItem=this.FormatDate(item.Date);
42447
42453
  if (titleItem) aryText.push(titleItem);
42448
42454
 
@@ -42480,6 +42486,7 @@ function MinuteLeftTooltipPaint()
42480
42486
  if (!item) return;
42481
42487
 
42482
42488
  this.YClose=item.YClose;
42489
+ if (isFutures && IFrameSplitOperator.IsNumber(item.YClearing)) this.YClose=item.YClearing;
42483
42490
  var titleItem=this.FormatDate(item.Date);
42484
42491
  if (titleItem) aryText.push(titleItem);
42485
42492
 
@@ -52171,7 +52178,10 @@ function DynamicMinuteTitlePainting()
52171
52178
  {
52172
52179
  if (!data || !data.Data) return;
52173
52180
 
52174
- var defaultfloatPrecision=GetfloatPrecision(this.Symbol);//价格小数位数
52181
+ var upperSymbol=this.Symbol.toUpperCase();
52182
+ var defaultfloatPrecision=GetfloatPrecision(this.Symbol); //价格小数位数
52183
+ var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
52184
+
52175
52185
  var item=data.Data;
52176
52186
  var isLastOne=data.IsLastOne;
52177
52187
  var aryText=[]; //{Color:, Text: }
@@ -52217,6 +52227,8 @@ function DynamicMinuteTitlePainting()
52217
52227
  var amount=item.Amount;
52218
52228
  var yClose=item.YClose;
52219
52229
  if (!IFrameSplitOperator.IsNumber(yClose)) yClose=this.YClose;
52230
+ if (isFutures && IFrameSplitOperator.IsNumber(item.YClearing)) yClose=item.YClearing; //期货使用昨结算
52231
+
52220
52232
 
52221
52233
  if (IFrameSplitOperator.IsNumber(close))
52222
52234
  {
@@ -79024,7 +79036,9 @@ MinuteChartContainer.JsonDataToMinuteData=function(data,isBeforeData)
79024
79036
  var preClose=data.stock[0].yclose; //前一个数据价格
79025
79037
  var preAvPrice=data.stock[0].yclose; //前一个均价
79026
79038
  var yClose=data.stock[0].yclose;
79027
- if (isFutures && data.stock[0].yclearing) yClose=preClose=preAvPrice=data.stock[0].yclearing; //期货使用昨结算价
79039
+ var yClearing=data.stock[0].yclearing;
79040
+
79041
+ if (isFutures && yClearing) preClose=preAvPrice=yClearing; //期货使用昨结算价
79028
79042
 
79029
79043
  if (!IFrameSplitOperator.IsNonEmptyArray(data.stock[0].minute)) return aryMinuteData;
79030
79044
 
@@ -79033,7 +79047,7 @@ MinuteChartContainer.JsonDataToMinuteData=function(data,isBeforeData)
79033
79047
  {
79034
79048
  var jsData=data.stock[0].minute[i];
79035
79049
  var item=new MinuteData();
79036
-
79050
+ item.YClearing=yClearing;
79037
79051
  item.YClose=yClose;
79038
79052
  item.Close=jsData.price;
79039
79053
  item.Open=jsData.open;
@@ -79064,24 +79078,11 @@ MinuteChartContainer.JsonDataToMinuteData=function(data,isBeforeData)
79064
79078
 
79065
79079
  if (!item.AvPrice) item.AvPrice=preAvPrice;
79066
79080
 
79067
- //价格是0的 都用空
79068
- //if (item.Open<=0) item.Open=null;
79069
- //if (item.Close<=0) item.Close=null;
79070
- //if (item.AvPrice<=0) item.AvPrice=null;
79071
- //if (item.High<=0) item.High=null;
79072
- //if (item.Low<=0) item.Low=null;
79073
-
79074
- //if (isFutures) item.AvPrice=null; //期货均价暂时没有
79075
-
79076
79081
  if (yClose && item.Close)
79077
79082
  item.Increase=(item.Close-yClose)/yClose*100; //涨幅 (最新价格-昨收)/昨收*100;
79078
79083
 
79079
-
79080
- //均价太大 可能是后台算错了
79081
- var checkValue=Math.abs(item.AvPrice-item.Close);
79082
- //JSConsole.Chart.Log(`[MinuteChartContainer::JsonDataToMinuteData] checkValue=${checkValue}, ${item.Close*0.13} `)
79083
- if (isSHSZ && checkValue>item.Close*0.13 )
79084
- item.AvPrice=preAvPrice;
79084
+ if (isFutures && yClearing && item.Close)
79085
+ item.Increase=(item.Close-yClearing)/yClearing*100; //涨幅 (最新价格-昨结算价)/昨结算价*100;
79085
79086
 
79086
79087
  //上次价格
79087
79088
  if (IFrameSplitOperator.IsNumber(jsData.price)) preClose=jsData.price;
@@ -79195,7 +79196,7 @@ MinuteChartContainer.JsonDataToMinuteDataArray=function(data)
79195
79196
  var symbol=data.symbol;
79196
79197
  var upperSymbol=symbol.toUpperCase();
79197
79198
  var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);
79198
- var isSHO=MARKET_SUFFIX_NAME.IsSHO(upperSymbol); //上海股票期权
79199
+ var isSHO=MARKET_SUFFIX_NAME.IsSHO(upperSymbol); //上海股票期权
79199
79200
  var isSZO=MARKET_SUFFIX_NAME.IsSZO(upperSymbol); //深证股票期权
79200
79201
  var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
79201
79202
  var result=[];
@@ -79205,22 +79206,25 @@ MinuteChartContainer.JsonDataToMinuteDataArray=function(data)
79205
79206
  var minuteData=[];
79206
79207
  var dayData=data.data[i];
79207
79208
  var date=dayData.date;
79209
+ var yClearing=dayData.yclearing; //昨结算价
79208
79210
  var yClose=dayData.yclose; //前收盘 计算涨幅
79209
79211
  var preClose=yClose; //前一个数据价格
79210
79212
  var preAvPrice=null; //上一个均价
79211
- var yClearing=dayData.yclearing; //昨结算价
79212
79213
 
79213
- //var preAvPrice=data.stock[0].yclose; //前一个均价
79214
+ if (isFutures && yClearing) preClose=preAvPrice=yClearing; //期货使用昨结算价
79215
+
79214
79216
  for(var j in dayData.minute)
79215
79217
  {
79216
79218
  var jsData=dayData.minute[j];
79217
79219
  if (jsData[2]) preClose=jsData[2]; //保存上一个收盘数据
79218
79220
  var item=new MinuteData();
79221
+ item.YClearing=yClearing;
79219
79222
  item.YClose=yClose;
79220
79223
  item.Close=jsData[2];
79221
79224
  item.Open=jsData[1];
79222
79225
  item.High=jsData[3];
79223
79226
  item.Low=jsData[4];
79227
+ item.Increase=null;
79224
79228
  if (isSHSZ) item.Vol=jsData[5]/100; //原始单位股
79225
79229
  else item.Vol=jsData[5];
79226
79230
  item.Amount=jsData[6];
@@ -79243,23 +79247,12 @@ MinuteChartContainer.JsonDataToMinuteDataArray=function(data)
79243
79247
 
79244
79248
  if (!item.AvPrice && preAvPrice) item.AvPrice=preAvPrice;
79245
79249
 
79246
- if (item.Close && yClose) item.Increase = (item.Close - yClose)/yClose*100;
79247
- else item.Increase=null;
79248
-
79249
- //价格是0的 都用空
79250
- //if (item.Open<=0) item.Open=null;
79251
- //if (item.Close<=0) item.Close=null;
79252
- //if (item.AvPrice<=0) item.AvPrice=null;
79253
- //if (item.High<=0) item.High=null;
79254
- //if (item.Low<=0) item.Low=null;
79255
- //if (item.AvPrice<=0) item.AvPrice=null;
79250
+ if (item.Close && yClose)
79251
+ item.Increase = (item.Close - yClose)/yClose*100;
79256
79252
 
79257
- //均价太大 可能是后台算错了
79258
- if (item.AvPrice && isSHSZ)
79259
- {
79260
- var checkValue=Math.abs(item.AvPrice-item.Close);
79261
- if (checkValue>item.Close*0.13 ) item.AvPrice=preAvPrice;
79262
- }
79253
+ if (item.Close && yClearing && isFutures)
79254
+ item.Increase = (item.Close - yClearing)/yClearing*100;
79255
+
79263
79256
 
79264
79257
  if (jsData.length>7 && jsData[7]>0 && item.AvPrice===jsData[7]) preAvPrice=jsData[7];
79265
79258
  if (jsData[extendDataIndex]) item.ExtendData=jsData[extendDataIndex];
@@ -79270,9 +79263,9 @@ MinuteChartContainer.JsonDataToMinuteDataArray=function(data)
79270
79263
  var newData=new ChartData();
79271
79264
  newData.Data=minuteData;
79272
79265
  newData.YClose=yClose;
79266
+ if (IFrameSplitOperator.IsNumber(yClearing)) newData.YClearing=yClearing;
79273
79267
  newData.Close=dayData.close;
79274
79268
  newData.Date=date;
79275
- if (IFrameSplitOperator.IsNumber(yClearing)) newData.YClearing=yClearing;
79276
79269
 
79277
79270
  result.push(newData);
79278
79271
  }
@@ -79321,6 +79314,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
79321
79314
 
79322
79315
  var date=callAuctionData.Date;
79323
79316
  var yClose=callAuctionData.YClose;
79317
+ var yClearing=callAuctionData.YClearing;
79324
79318
  var extendDataIndex=isBeforeOpen? JSCHART_DATA_FIELD_ID.MINUTE_BEFOREOPEN_EXTENDDATA:JSCHART_DATA_FIELD_ID.MINUTE_AFTERCLOSE_EXTENDDATA; //扩展数据序号
79325
79319
  if (callAuctionData.Ver==1.0)
79326
79320
  {
@@ -79330,6 +79324,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
79330
79324
  var item=isBeforeOpen? new BeforeOpenData() : new AfterCloseData();
79331
79325
  var jsData=data[i];
79332
79326
  item.YClose=yClose;
79327
+ item.YClearing=yClearing;
79333
79328
  item.Time=jsData[0];
79334
79329
  item.Date=date;
79335
79330
  item.Price=jsData[1];
@@ -79353,6 +79348,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
79353
79348
  var item=isBeforeOpen? new BeforeOpenData() : new AfterCloseData();
79354
79349
  var jsData=data[i];
79355
79350
  item.YClose=yClose;
79351
+ item.YClearing=yClearing;
79356
79352
  item.Time=jsData[0];
79357
79353
  item.Date=date;
79358
79354
  item.Price=jsData[1];
@@ -79380,6 +79376,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
79380
79376
  var item=isBeforeOpen? new BeforeOpenData() : new AfterCloseData();
79381
79377
  var jsData=data[i];
79382
79378
  item.YClose=yClose;
79379
+ item.YClearing=yClearing;
79383
79380
  item.Time=jsData[0];
79384
79381
  item.Date=date;
79385
79382
  item.Price=jsData[1];
@@ -79409,7 +79406,7 @@ MinuteChartContainer.JosnDataToBeforeOpenDataArray=function(data)
79409
79406
  for(var i in data.data)
79410
79407
  {
79411
79408
  var dayItem=data.data[i];
79412
- var beforeOpenData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose };
79409
+ var beforeOpenData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose, YClearing:dayItem.YClearing };
79413
79410
  if (dayItem.beforeinfo)
79414
79411
  {
79415
79412
  if (IFrameSplitOperator.IsNumber(dayItem.beforeinfo.totalcount)) beforeOpenData.TotalCount=dayItem.beforeinfo.totalcount;
@@ -79434,7 +79431,7 @@ MinuteChartContainer.JosnDataToAfterCloseDataArray=function(data)
79434
79431
  for(var i in data.data)
79435
79432
  {
79436
79433
  var dayItem=data.data[i];
79437
- var afterCloseData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose };
79434
+ var afterCloseData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose, YClearing:dayItem.YClearing };
79438
79435
 
79439
79436
  if (dayItem.afterinfo)
79440
79437
  {
@@ -88553,6 +88550,8 @@ var MARKET_SUFFIX_NAME=
88553
88550
 
88554
88551
  IsFutures:function(upperSymbol) //是否是期货 包含国外的
88555
88552
  {
88553
+ if (!upperSymbol) return false;
88554
+
88556
88555
  return this.IsChinaFutures(upperSymbol) ||
88557
88556
  this.IsNYMEX(upperSymbol) || this.IsCOMEX(upperSymbol) || this.IsNYBOT(upperSymbol) || this.IsCBOT(upperSymbol) ||
88558
88557
  this.IsLME(upperSymbol) || this.IsTOCOM(upperSymbol);
@@ -127803,7 +127802,7 @@ function ScrollBarBGChart()
127803
127802
 
127804
127803
 
127805
127804
 
127806
- var HQCHART_VERSION="1.1.12458";
127805
+ var HQCHART_VERSION="1.1.12464";
127807
127806
 
127808
127807
  function PrintHQChartVersion()
127809
127808
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.12458";
8
+ var HQCHART_VERSION="1.1.12464";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -42139,10 +42139,13 @@ function MinuteTooltipPaint()
42139
42139
  }
42140
42140
 
42141
42141
  var upperSymbol;
42142
- this.YClose=this.TitlePaint.YClose;
42143
- this.YClose=item.YClose;
42144
42142
  if (this.HQChart.Symbol) upperSymbol=this.HQChart.Symbol.toUpperCase();
42143
+ var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
42145
42144
  var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
42145
+
42146
+ this.YClose=this.TitlePaint.YClose;
42147
+ this.YClose=item.YClose;
42148
+ if (isFutures && IFrameSplitOperator.IsNumber(item.YClearing)) this.YClose=item.YClearing;
42146
42149
 
42147
42150
  var aryText=[];
42148
42151
  var result={ AryText:aryText };
@@ -42477,9 +42480,11 @@ function MinuteLeftTooltipPaint()
42477
42480
  if (!drawData || !drawData.Data) return null;
42478
42481
 
42479
42482
  var aryText=[];
42483
+ var isFutures=false;
42480
42484
  var upperSymbol;
42481
42485
  if (this.HQChart.Symbol) upperSymbol=this.HQChart.Symbol.toUpperCase();
42482
42486
  var defaultfloatPrecision=GetfloatPrecision(upperSymbol);//价格小数位数
42487
+ if (upperSymbol) isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
42483
42488
 
42484
42489
  if (drawData.Type==0) //连续交易
42485
42490
  {
@@ -42487,6 +42492,7 @@ function MinuteLeftTooltipPaint()
42487
42492
  if (!item) return;
42488
42493
 
42489
42494
  this.YClose=item.YClose;
42495
+ if (isFutures && IFrameSplitOperator.IsNumber(item.YClearing)) this.YClose=item.YClearing;
42490
42496
  var titleItem=this.FormatDate(item.Date);
42491
42497
  if (titleItem) aryText.push(titleItem);
42492
42498
 
@@ -42524,6 +42530,7 @@ function MinuteLeftTooltipPaint()
42524
42530
  if (!item) return;
42525
42531
 
42526
42532
  this.YClose=item.YClose;
42533
+ if (isFutures && IFrameSplitOperator.IsNumber(item.YClearing)) this.YClose=item.YClearing;
42527
42534
  var titleItem=this.FormatDate(item.Date);
42528
42535
  if (titleItem) aryText.push(titleItem);
42529
42536
 
@@ -52215,7 +52222,10 @@ function DynamicMinuteTitlePainting()
52215
52222
  {
52216
52223
  if (!data || !data.Data) return;
52217
52224
 
52218
- var defaultfloatPrecision=GetfloatPrecision(this.Symbol);//价格小数位数
52225
+ var upperSymbol=this.Symbol.toUpperCase();
52226
+ var defaultfloatPrecision=GetfloatPrecision(this.Symbol); //价格小数位数
52227
+ var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
52228
+
52219
52229
  var item=data.Data;
52220
52230
  var isLastOne=data.IsLastOne;
52221
52231
  var aryText=[]; //{Color:, Text: }
@@ -52261,6 +52271,8 @@ function DynamicMinuteTitlePainting()
52261
52271
  var amount=item.Amount;
52262
52272
  var yClose=item.YClose;
52263
52273
  if (!IFrameSplitOperator.IsNumber(yClose)) yClose=this.YClose;
52274
+ if (isFutures && IFrameSplitOperator.IsNumber(item.YClearing)) yClose=item.YClearing; //期货使用昨结算
52275
+
52264
52276
 
52265
52277
  if (IFrameSplitOperator.IsNumber(close))
52266
52278
  {
@@ -79068,7 +79080,9 @@ MinuteChartContainer.JsonDataToMinuteData=function(data,isBeforeData)
79068
79080
  var preClose=data.stock[0].yclose; //前一个数据价格
79069
79081
  var preAvPrice=data.stock[0].yclose; //前一个均价
79070
79082
  var yClose=data.stock[0].yclose;
79071
- if (isFutures && data.stock[0].yclearing) yClose=preClose=preAvPrice=data.stock[0].yclearing; //期货使用昨结算价
79083
+ var yClearing=data.stock[0].yclearing;
79084
+
79085
+ if (isFutures && yClearing) preClose=preAvPrice=yClearing; //期货使用昨结算价
79072
79086
 
79073
79087
  if (!IFrameSplitOperator.IsNonEmptyArray(data.stock[0].minute)) return aryMinuteData;
79074
79088
 
@@ -79077,7 +79091,7 @@ MinuteChartContainer.JsonDataToMinuteData=function(data,isBeforeData)
79077
79091
  {
79078
79092
  var jsData=data.stock[0].minute[i];
79079
79093
  var item=new MinuteData();
79080
-
79094
+ item.YClearing=yClearing;
79081
79095
  item.YClose=yClose;
79082
79096
  item.Close=jsData.price;
79083
79097
  item.Open=jsData.open;
@@ -79108,24 +79122,11 @@ MinuteChartContainer.JsonDataToMinuteData=function(data,isBeforeData)
79108
79122
 
79109
79123
  if (!item.AvPrice) item.AvPrice=preAvPrice;
79110
79124
 
79111
- //价格是0的 都用空
79112
- //if (item.Open<=0) item.Open=null;
79113
- //if (item.Close<=0) item.Close=null;
79114
- //if (item.AvPrice<=0) item.AvPrice=null;
79115
- //if (item.High<=0) item.High=null;
79116
- //if (item.Low<=0) item.Low=null;
79117
-
79118
- //if (isFutures) item.AvPrice=null; //期货均价暂时没有
79119
-
79120
79125
  if (yClose && item.Close)
79121
79126
  item.Increase=(item.Close-yClose)/yClose*100; //涨幅 (最新价格-昨收)/昨收*100;
79122
79127
 
79123
-
79124
- //均价太大 可能是后台算错了
79125
- var checkValue=Math.abs(item.AvPrice-item.Close);
79126
- //JSConsole.Chart.Log(`[MinuteChartContainer::JsonDataToMinuteData] checkValue=${checkValue}, ${item.Close*0.13} `)
79127
- if (isSHSZ && checkValue>item.Close*0.13 )
79128
- item.AvPrice=preAvPrice;
79128
+ if (isFutures && yClearing && item.Close)
79129
+ item.Increase=(item.Close-yClearing)/yClearing*100; //涨幅 (最新价格-昨结算价)/昨结算价*100;
79129
79130
 
79130
79131
  //上次价格
79131
79132
  if (IFrameSplitOperator.IsNumber(jsData.price)) preClose=jsData.price;
@@ -79239,7 +79240,7 @@ MinuteChartContainer.JsonDataToMinuteDataArray=function(data)
79239
79240
  var symbol=data.symbol;
79240
79241
  var upperSymbol=symbol.toUpperCase();
79241
79242
  var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);
79242
- var isSHO=MARKET_SUFFIX_NAME.IsSHO(upperSymbol); //上海股票期权
79243
+ var isSHO=MARKET_SUFFIX_NAME.IsSHO(upperSymbol); //上海股票期权
79243
79244
  var isSZO=MARKET_SUFFIX_NAME.IsSZO(upperSymbol); //深证股票期权
79244
79245
  var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
79245
79246
  var result=[];
@@ -79249,22 +79250,25 @@ MinuteChartContainer.JsonDataToMinuteDataArray=function(data)
79249
79250
  var minuteData=[];
79250
79251
  var dayData=data.data[i];
79251
79252
  var date=dayData.date;
79253
+ var yClearing=dayData.yclearing; //昨结算价
79252
79254
  var yClose=dayData.yclose; //前收盘 计算涨幅
79253
79255
  var preClose=yClose; //前一个数据价格
79254
79256
  var preAvPrice=null; //上一个均价
79255
- var yClearing=dayData.yclearing; //昨结算价
79256
79257
 
79257
- //var preAvPrice=data.stock[0].yclose; //前一个均价
79258
+ if (isFutures && yClearing) preClose=preAvPrice=yClearing; //期货使用昨结算价
79259
+
79258
79260
  for(var j in dayData.minute)
79259
79261
  {
79260
79262
  var jsData=dayData.minute[j];
79261
79263
  if (jsData[2]) preClose=jsData[2]; //保存上一个收盘数据
79262
79264
  var item=new MinuteData();
79265
+ item.YClearing=yClearing;
79263
79266
  item.YClose=yClose;
79264
79267
  item.Close=jsData[2];
79265
79268
  item.Open=jsData[1];
79266
79269
  item.High=jsData[3];
79267
79270
  item.Low=jsData[4];
79271
+ item.Increase=null;
79268
79272
  if (isSHSZ) item.Vol=jsData[5]/100; //原始单位股
79269
79273
  else item.Vol=jsData[5];
79270
79274
  item.Amount=jsData[6];
@@ -79287,23 +79291,12 @@ MinuteChartContainer.JsonDataToMinuteDataArray=function(data)
79287
79291
 
79288
79292
  if (!item.AvPrice && preAvPrice) item.AvPrice=preAvPrice;
79289
79293
 
79290
- if (item.Close && yClose) item.Increase = (item.Close - yClose)/yClose*100;
79291
- else item.Increase=null;
79292
-
79293
- //价格是0的 都用空
79294
- //if (item.Open<=0) item.Open=null;
79295
- //if (item.Close<=0) item.Close=null;
79296
- //if (item.AvPrice<=0) item.AvPrice=null;
79297
- //if (item.High<=0) item.High=null;
79298
- //if (item.Low<=0) item.Low=null;
79299
- //if (item.AvPrice<=0) item.AvPrice=null;
79294
+ if (item.Close && yClose)
79295
+ item.Increase = (item.Close - yClose)/yClose*100;
79300
79296
 
79301
- //均价太大 可能是后台算错了
79302
- if (item.AvPrice && isSHSZ)
79303
- {
79304
- var checkValue=Math.abs(item.AvPrice-item.Close);
79305
- if (checkValue>item.Close*0.13 ) item.AvPrice=preAvPrice;
79306
- }
79297
+ if (item.Close && yClearing && isFutures)
79298
+ item.Increase = (item.Close - yClearing)/yClearing*100;
79299
+
79307
79300
 
79308
79301
  if (jsData.length>7 && jsData[7]>0 && item.AvPrice===jsData[7]) preAvPrice=jsData[7];
79309
79302
  if (jsData[extendDataIndex]) item.ExtendData=jsData[extendDataIndex];
@@ -79314,9 +79307,9 @@ MinuteChartContainer.JsonDataToMinuteDataArray=function(data)
79314
79307
  var newData=new ChartData();
79315
79308
  newData.Data=minuteData;
79316
79309
  newData.YClose=yClose;
79310
+ if (IFrameSplitOperator.IsNumber(yClearing)) newData.YClearing=yClearing;
79317
79311
  newData.Close=dayData.close;
79318
79312
  newData.Date=date;
79319
- if (IFrameSplitOperator.IsNumber(yClearing)) newData.YClearing=yClearing;
79320
79313
 
79321
79314
  result.push(newData);
79322
79315
  }
@@ -79365,6 +79358,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
79365
79358
 
79366
79359
  var date=callAuctionData.Date;
79367
79360
  var yClose=callAuctionData.YClose;
79361
+ var yClearing=callAuctionData.YClearing;
79368
79362
  var extendDataIndex=isBeforeOpen? JSCHART_DATA_FIELD_ID.MINUTE_BEFOREOPEN_EXTENDDATA:JSCHART_DATA_FIELD_ID.MINUTE_AFTERCLOSE_EXTENDDATA; //扩展数据序号
79369
79363
  if (callAuctionData.Ver==1.0)
79370
79364
  {
@@ -79374,6 +79368,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
79374
79368
  var item=isBeforeOpen? new BeforeOpenData() : new AfterCloseData();
79375
79369
  var jsData=data[i];
79376
79370
  item.YClose=yClose;
79371
+ item.YClearing=yClearing;
79377
79372
  item.Time=jsData[0];
79378
79373
  item.Date=date;
79379
79374
  item.Price=jsData[1];
@@ -79397,6 +79392,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
79397
79392
  var item=isBeforeOpen? new BeforeOpenData() : new AfterCloseData();
79398
79393
  var jsData=data[i];
79399
79394
  item.YClose=yClose;
79395
+ item.YClearing=yClearing;
79400
79396
  item.Time=jsData[0];
79401
79397
  item.Date=date;
79402
79398
  item.Price=jsData[1];
@@ -79424,6 +79420,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
79424
79420
  var item=isBeforeOpen? new BeforeOpenData() : new AfterCloseData();
79425
79421
  var jsData=data[i];
79426
79422
  item.YClose=yClose;
79423
+ item.YClearing=yClearing;
79427
79424
  item.Time=jsData[0];
79428
79425
  item.Date=date;
79429
79426
  item.Price=jsData[1];
@@ -79453,7 +79450,7 @@ MinuteChartContainer.JosnDataToBeforeOpenDataArray=function(data)
79453
79450
  for(var i in data.data)
79454
79451
  {
79455
79452
  var dayItem=data.data[i];
79456
- var beforeOpenData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose };
79453
+ var beforeOpenData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose, YClearing:dayItem.YClearing };
79457
79454
  if (dayItem.beforeinfo)
79458
79455
  {
79459
79456
  if (IFrameSplitOperator.IsNumber(dayItem.beforeinfo.totalcount)) beforeOpenData.TotalCount=dayItem.beforeinfo.totalcount;
@@ -79478,7 +79475,7 @@ MinuteChartContainer.JosnDataToAfterCloseDataArray=function(data)
79478
79475
  for(var i in data.data)
79479
79476
  {
79480
79477
  var dayItem=data.data[i];
79481
- var afterCloseData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose };
79478
+ var afterCloseData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose, YClearing:dayItem.YClearing };
79482
79479
 
79483
79480
  if (dayItem.afterinfo)
79484
79481
  {
@@ -88597,6 +88594,8 @@ var MARKET_SUFFIX_NAME=
88597
88594
 
88598
88595
  IsFutures:function(upperSymbol) //是否是期货 包含国外的
88599
88596
  {
88597
+ if (!upperSymbol) return false;
88598
+
88600
88599
  return this.IsChinaFutures(upperSymbol) ||
88601
88600
  this.IsNYMEX(upperSymbol) || this.IsCOMEX(upperSymbol) || this.IsNYBOT(upperSymbol) || this.IsCBOT(upperSymbol) ||
88602
88601
  this.IsLME(upperSymbol) || this.IsTOCOM(upperSymbol);
@@ -127847,7 +127846,7 @@ function ScrollBarBGChart()
127847
127846
 
127848
127847
 
127849
127848
 
127850
- var HQCHART_VERSION="1.1.12458";
127849
+ var HQCHART_VERSION="1.1.12464";
127851
127850
 
127852
127851
  function PrintHQChartVersion()
127853
127852
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.12444";
8
+ var HQCHART_VERSION="1.1.12460";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -1084,6 +1084,7 @@ function JSChart(element)
1084
1084
  }
1085
1085
 
1086
1086
  if (!chart) return false;
1087
+ this.JSChartContainer = chart;
1087
1088
 
1088
1089
  if (option.OnCreatedCallback) option.OnCreatedCallback(chart);
1089
1090
 
@@ -1100,7 +1101,6 @@ function JSChart(element)
1100
1101
 
1101
1102
  //设置股票代码
1102
1103
  if (!option.Symbol) return false;
1103
- this.JSChartContainer = chart;
1104
1104
 
1105
1105
  chart.Draw();
1106
1106
  chart.ChangeSymbol(option.Symbol);