hqchart 1.1.13269 → 1.1.13278

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.
@@ -12,8 +12,12 @@ HQData.RequestFlowCapitalData(data,callback);break;case'KLineChartContainer::Req
12
12
  HQData.RequestHistoryMinuteData(data,callback);break;case'KLineChartContainer::RequestMinuteRealtimeData'://分钟增量数据更新
13
13
  HQData.RequestMinuteRealtimeData(data,callback);break;case"JSSymbolData::GetVariantData"://额外的变量数据
14
14
  HQData.RequestIndexVariantData(data,callback);break;case"JSSymbolData::GetOtherSymbolData":HQData.RequestOtherSymbolData(data,callback);break;case"AnnouncementInfo::RequestData":HQData.AnnouncementInfo_RequestData(data,callback);break;case"JSSymbolData::GetLatestData":HQData.RequestLatestData(data,callback);break;case"PforecastInfo::RequestData":HQData.PforecastInfo_RequestData(data,callback);break;case"InvestorInfo::RequestData":HQData.InvestorInfo_RequestData(data,callback);break;case"ResearchInfo::RequestData":break;case"BlockTrading::RequestData":HQData.BlockTrading_RequestData(data,callback);break;case"TradeDetail::RequestData":HQData.TradeDetail_RequestData(data,callback);break;}};HQData.RequestMinuteData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol[0];//请求的股票代码
15
- var dayCount=data.Request.Data.daycount;console.log("[HQData::RequestMinuteData] Symbol="+symbol);var hqchartData=MINUTE_1DAY_DATA;hqchartData.stock[0].symbol=symbol;hqchartData.stock[0].name=symbol;callback(hqchartData);};HQData.RequestMinuteDaysData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol;//请求的股票代码
16
- var dayCount=data.Request.Data.daycount;console.log("[HQData::RequestMinuteDaysData] Symbol="+symbol);var hqchartData=MINUTE_5DAY_DATA;hqchartData.symbol=symbol;hqchartData.name=symbol;callback(hqchartData);};HQData.RequestHistoryData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol;//请求的股票代码
15
+ var callcation=data.Request.Data.callcation;//集合竞价
16
+ console.log("[HQData::RequestMinuteData] Symbol="+symbol);var srcStock=MINUTE_1DAY_DATA.stock[0];var stockItem={date:srcStock.date,minute:srcStock.minute,yclose:srcStock.yclose,symbol:srcStock.symbol,name:srcStock.name};if(callcation.Before){var before=[//[交易时间, 价格,成交量, 成交金额, 日期(可选,YYYYMMDD)],
17
+ [915,srcStock.yclose,0,0],[916,srcStock.yclose+0.01,0,0],[917,srcStock.yclose+0.03,0,0],[918,srcStock.yclose+0.02,0,0],[919,srcStock.yclose+0.02,0,0],[920,srcStock.yclose+0.01,0,0],[921,srcStock.yclose,0,0],[922,srcStock.yclose-0.02,0,0],[923,srcStock.yclose-0.03,0,0],[924,srcStock.yclose,0,0],[925,srcStock.yclose,0,0]];var beforeinfo={totalcount:11,ver:1.0};stockItem.before=before;stockItem.beforeinfo=beforeinfo;}var hqchartData={code:0,stock:[stockItem]};callback(hqchartData);};HQData.RequestMinuteDaysData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol;//请求的股票代码
18
+ var dayCount=data.Request.Data.daycount;var callcation=data.Request.Data.callcation;//集合竞价
19
+ console.log("[HQData::RequestMinuteDaysData] Symbol="+symbol);var hqchartData={code:0,data:[]};hqchartData.symbol=MINUTE_5DAY_DATA.symbol;hqchartData.name=MINUTE_5DAY_DATA.symbol;for(var i=0;i<dayCount&&i<MINUTE_5DAY_DATA.data.length;++i){var item=MINUTE_5DAY_DATA.data[i];var dayItem={minute:item.minute,yclose:item.yclose,date:item.date};if(callcation.Before){var before=[//[交易时间, 价格,成交量, 成交金额, 日期(可选,YYYYMMDD)],
20
+ [915,item.yclose,0,0],[916,item.yclose+0.01,0,0],[917,item.yclose+0.03,0,0],[918,item.yclose+0.02,0,0],[919,item.yclose+0.02,0,0],[920,item.yclose+0.01,0,0],[921,item.yclose,0,0],[922,item.yclose-0.02,0,0],[923,item.yclose-0.03,0,0],[924,item.yclose,0,0],[925,item.yclose,0,0]];var beforeinfo={totalcount:11,ver:1.0};dayItem.before=before;dayItem.beforeinfo=beforeinfo;}hqchartData.data.push(dayItem);}callback(hqchartData);};HQData.RequestHistoryData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol;//请求的股票代码
17
21
  console.log("[HQData::RequestMinuteDaysData] Symbol="+symbol);var hqchartData=KLINE_DAY_DATA;hqchartData.symbol=symbol;hqchartData.name=symbol;callback(hqchartData);};HQData.RequestFlowCapitalData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol;//请求的股票代码
18
22
  console.log("[HQData::RequestFlowCapitalData] Symbol="+symbol);var hqchartData=KLINE_CAPITAL_DATA;callback(hqchartData);};HQData.RequestRealtimeData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol[0];//请求的股票代码
19
23
  console.log("[HQData::RequestRealtimeData] Symbol="+symbol);var hqchartData=KLINE_1DAY_DATA;hqchartData.stock[0].name=symbol;hqchartData.stock[0].symbol=symbol;callback(hqchartData);};HQData.RequestHistoryMinuteData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol;//请求的股票代码
@@ -2000,7 +2000,11 @@ this.Draw();break;case JSCHART_MENU_ID.CMD_CHANGE_DEFAULTCURSOR_ID:if(!IFrameSpl
2000
2000
  this.OnClickRightMenu=function(data){JSConsole.Chart.Log('[JSChartContainer::OnClickRightMenu] ',data);if(!data||!data.Data)return;var cmdID=data.Data.ID;//命令ID
2001
2001
  var aryArgs=data.Data.Args;//参数
2002
2002
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MENU_COMMAND);//回调通知外部
2003
- if(event&&event.Callback){var data={PreventDefault:false,CommandID:cmdID,Args:aryArgs,SrcData:data};event.Callback(event,data,this);if(data.PreventDefault)return;}this.ExecuteMenuCommand(cmdID,aryArgs);};this.PopupRightMenuV2=function(data,e){var _this15=this;if(!this.JSPopMenu)return;var x=data.X,y=data.Y;var frameID=data.FrameID;var menuData={Menu:this.GetRightMenuData(frameID),Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID};menuData.ClickCallback=function(data){_this15.OnClickRightMenu(data);};var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CREATE_RIGHT_MENU);if(event&&event.Callback){var sendData={MenuData:menuData,FrameID:frameID};event.Callback(event,sendData,this);}this.PopupMenuByRClick(menuData,x,y);};}function GetDevicePixelRatio(){if(typeof window=='undefined')return 1;return window.devicePixelRatio||1;}function GetFontHeight(context,font,word){if(!context)return null;if(font)context.font=font;var text='擎';if(IFrameSplitOperator.IsString(word))text=word;var fontInfo=context.measureText(text);var textHeight=fontInfo.fontBoundingBoxAscent+fontInfo.fontBoundingBoxDescent;if(!IFrameSplitOperator.IsNumber(textHeight))textHeight=fontInfo.width+2*GetDevicePixelRatio();return textHeight;}function IsPhoneWeb(){var userAgentInfo=navigator.userAgent;var Agents=new Array("Android","iPhone","SymbianOS","Windows Phone","iPad","iPod");for(var v=0;v<Agents.length;v++){if(userAgentInfo.indexOf(Agents[v])>0)return true;}return false;}function OnKeyDown(e)//键盘事件
2003
+ if(event&&event.Callback){var data={PreventDefault:false,CommandID:cmdID,Args:aryArgs,SrcData:data};event.Callback(event,data,this);if(data.PreventDefault)return;}this.ExecuteMenuCommand(cmdID,aryArgs);};this.PopupRightMenuV2=function(data,e){var _this15=this;if(!this.JSPopMenu)return;var x=data.X,y=data.Y;var frameID=data.FrameID;var menuData={Menu:this.GetRightMenuData(frameID),Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID};menuData.ClickCallback=function(data){_this15.OnClickRightMenu(data);};var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CREATE_RIGHT_MENU);if(event&&event.Callback){var sendData={MenuData:menuData,FrameID:frameID};event.Callback(event,sendData,this);}this.PopupMenuByRClick(menuData,x,y);};//指标窗口扩展图形
2004
+ this.CreateChartPaintExtend=function(chart,windowIndex){if(windowIndex<0)return false;var subFrame=this.Frame.SubFrame[windowIndex];if(!subFrame||!subFrame.Frame)return false;var frame=subFrame.Frame;chart.Canvas=this.Canvas;chart.ChartBorder=frame.ChartBorder;chart.ChartFrame=frame;this.ChartPaintEx.push(chart);return true;};//删除指标窗口扩展图形 option={ ChartID:图形ID, WindowIndex:窗口 }
2005
+ this.DeleteChartPaintExtend=function(option,bCallDestroy){if(!option)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.ChartPaintEx))return;if(IFrameSplitOperator.IsNumber(option.WindowIndex)){var windowIndex=option.WindowIndex;if(!this.Frame.SubFrame[windowIndex])return;var subFrame=this.Frame.SubFrame[windowIndex].Frame;if(!subFrame)return;var paint=[];//踢出当前窗口的指标画法
2006
+ var deleteCount=0;for(var i=0;i<this.ChartPaintEx.length;++i){var item=this.ChartPaintEx[i];var bFind=item.ChartFrame.Guid==subFrame.Guid||item.ChartFrame==subFrame;if(!bFind){paint.push(item);}else{++deleteCount;if(bCallDestroy===true){if(item&&item.OnDestroy)item.OnDestroy();//图形销毁
2007
+ }}}if(deleteCount>0)this.ChartPaintEx=paint;}};}function GetDevicePixelRatio(){if(typeof window=='undefined')return 1;return window.devicePixelRatio||1;}function GetFontHeight(context,font,word){if(!context)return null;if(font)context.font=font;var text='擎';if(IFrameSplitOperator.IsString(word))text=word;var fontInfo=context.measureText(text);var textHeight=fontInfo.fontBoundingBoxAscent+fontInfo.fontBoundingBoxDescent;if(!IFrameSplitOperator.IsNumber(textHeight))textHeight=fontInfo.width+2*GetDevicePixelRatio();return textHeight;}function IsPhoneWeb(){var userAgentInfo=navigator.userAgent;var Agents=new Array("Android","iPhone","SymbianOS","Windows Phone","iPad","iPod");for(var v=0;v<Agents.length;v++){if(userAgentInfo.indexOf(Agents[v])>0)return true;}return false;}function OnKeyDown(e)//键盘事件
2004
2008
  {if(this.JSChartContainer&&this.JSChartContainer.OnKeyDown)this.JSChartContainer.OnKeyDown(e);}function OnWheel(e)//上下滚动事件
2005
2009
  {if(this.JSChartContainer&&this.JSChartContainer.OnWheel)this.JSChartContainer.OnWheel(e);}function ToFixed(number,precision){var b=1;if(isNaN(number))return number;if(number<0)b=-1;var multiplier=Math.pow(10,precision);var value=Math.round(Math.abs(number)*multiplier)/multiplier*b;if(/^(\d+(?:\.\d+)?)(e)([\-]?\d+)$/.test(value))var s=value.toFixed2(precision);else var s=value.toString();var rs=s.indexOf('.');if(rs<0&&precision>0){rs=s.length;s+='.';}while(s.length<=rs+precision){s+='0';}return s;}Number.prototype.toFixed2=Number.prototype.toFixed;//备份下老的
2006
2010
  Number.prototype.toFixed=function(precision){return ToFixed(this,precision);};function Guid(){function S4(){return((1+Math.random())*0x10000|0).toString(16).substring(1);}return"guid"+(S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4());}function GetScrollPosition(){var scrollPos={};var scrollTop=0;var scrollLeft=0;if(document.documentElement&&(document.documentElement.scrollTop||document.documentElement.scrollLeft)){scrollTop=document.documentElement.scrollTop;scrollLeft=document.documentElement.scrollLeft;}else if(document.body){scrollTop=document.body.scrollTop;scrollLeft=document.body.scrollLeft;}scrollPos.Top=scrollTop;scrollPos.Left=scrollLeft;return scrollPos;}//修正线段有毛刺
@@ -7363,7 +7367,7 @@ this.ChangeCoordinateType=function(obj){if(!this.Frame)return;if(!IFrameSplitOpe
7363
7367
  {frame.Frame.YSplitOperator.CoordinateType=2;}else{return;}}else{if(obj.Type>=0&&obj.Type<=5)frame.YSplitOperator.CoordinateType=obj.Type;if(obj.IsReverse===true)frame.CoordinateType=1;else if(obj.IsReverse==false)frame.CoordinateType=0;}//请求缓存的最大最小值
7364
7368
  frame.YMaxMin.Max=null;frame.YMaxMin.Min=null;this.UpdateFrameMaxMin();//调整坐标最大 最小值
7365
7369
  this.Frame.SetSizeChage(true);this.Draw();};//设置指标窗口个数
7366
- this.ChangeIndexWindowCount=function(count,option){var _this22=this;if(count<=0)return;if(this.Frame.SubFrame.length==count)return;this.Frame.RestoreIndexWindows();var currentLength=this.Frame.SubFrame.length;if(currentLength>count){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);for(var i=currentLength-1;i>=count;--i){this.DeleteIndexPaint(i);this.Frame.SubFrame[i].Frame.ClearToolbar();if(event&&event.Callback){var sendData={SubFrame:this.Frame.SubFrame[i],WindowIndex:i};event.Callback(event,sendData,this);}}this.Frame.SubFrame.splice(count,currentLength-count);this.WindowIndex.splice(count,currentLength-count);this.TitlePaint.splice(count+1,currentLength-count);//最后一个显示X轴坐标
7370
+ this.ChangeIndexWindowCount=function(count,option){var _this22=this;if(count<=0)return;if(this.Frame.SubFrame.length==count)return;this.Frame.RestoreIndexWindows();var currentLength=this.Frame.SubFrame.length;if(currentLength>count){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);for(var i=currentLength-1;i>=count;--i){this.DeleteIndexPaint(i);this.DeleteChartPaintExtend({WindowIndex:i});this.Frame.SubFrame[i].Frame.ClearToolbar();if(event&&event.Callback){var sendData={SubFrame:this.Frame.SubFrame[i],WindowIndex:i};event.Callback(event,sendData,this);}}this.Frame.SubFrame.splice(count,currentLength-count);this.WindowIndex.splice(count,currentLength-count);this.TitlePaint.splice(count+1,currentLength-count);//最后一个显示X轴坐标
7367
7371
  for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i].Frame;if(i==this.Frame.SubFrame.length-1)item.XSplitOperator.ShowText=true;else item.XSplitOperator.ShowText=false;}this.Frame.SetSizeChage(true);this.ResetFrameXYSplit();this.UpdateFrameMaxMin();//调整坐标最大 最小值
7368
7372
  this.Draw();}else{//创建新的指标窗口
7369
7373
  var pixelRatio=GetDevicePixelRatio();for(var i=currentLength;i<count;++i){var subFrame=this.CreateSubFrameItem(i);subFrame.Frame.ChartBorder.TitleHeight*=pixelRatio;this.Frame.SubFrame[i]=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 _this22.GetEventCallback(id);};titlePaint.SelectedChart=this.SelectedChart;this.TitlePaint[i+1]=titlePaint;}//最后一个显示X轴坐标
@@ -7393,7 +7397,7 @@ var aryOverlayIndex=[];if(IFrameSplitOperator.IsNonEmptyArray(option.OverlayInde
7393
7397
  {this.BindIndexData(i,bindData);}for(var i=0;i<aryOverlayIndex.length;++i){var item=aryOverlayIndex[i];this.BindOverlayIndexData(item.Overlay,item.WindowsIndex,bindData);}this.UpdataDataoffset();//更新数据偏移
7394
7398
  this.ResetFrameXYSplit();this.UpdateFrameMaxMin();//调整坐标最大 最小值
7395
7399
  this.Draw();}else{if(!symbol)symbol=this.Symbol;var optionData={KLine:{}};if(IFrameSplitOperator.IsNumber(period))optionData.KLine.Period=period;if(IFrameSplitOperator.IsNumber(right))optionData.KLine.Right=right;this.ChangeSymbol(symbol,optionData);}};this.RemoveIndexWindow=function(id,option){JSConsole.Chart.Log('[KLineChartContainer::RemoveIndexWindow] remove id',id);if(id==0){if(option&&option.DeleteMainIndex)//删除指标
7396
- {this.DeleteIndexPaint(id);this.WindowIndex[id]=null;this.Frame.SetSizeChage(true);this.UpdateFrameMaxMin();this.ResetFrameXYSplit();this.Draw();}return;}if(!this.Frame.SubFrame)return;if(id>=this.Frame.SubFrame.length)return;this.Frame.RestoreIndexWindows();var delFrame=this.Frame.SubFrame[id].Frame;this.DeleteIndexPaint(id);this.Frame.SubFrame[id].Frame.ClearToolbar();var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);if(event&&event.Callback){var sendData={SubFrame:this.Frame.SubFrame[id],WindowIndex:id};event.Callback(event,sendData,this);}this.Frame.SubFrame.splice(id,1);this.WindowIndex.splice(id,1);this.TitlePaint.splice(id+1,1);//删除对应的动态标题
7400
+ {this.DeleteIndexPaint(id);this.WindowIndex[id]=null;this.Frame.SetSizeChage(true);this.UpdateFrameMaxMin();this.ResetFrameXYSplit();this.Draw();}return;}if(!this.Frame.SubFrame)return;if(id>=this.Frame.SubFrame.length)return;this.Frame.RestoreIndexWindows();var delFrame=this.Frame.SubFrame[id].Frame;this.DeleteIndexPaint(id);this.DeleteChartPaintExtend({WindowIndex:id});this.Frame.SubFrame[id].Frame.ClearToolbar();var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);if(event&&event.Callback){var sendData={SubFrame:this.Frame.SubFrame[id],WindowIndex:id};event.Callback(event,sendData,this);}this.Frame.SubFrame.splice(id,1);this.WindowIndex.splice(id,1);this.TitlePaint.splice(id+1,1);//删除对应的动态标题
7397
7401
  for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i].Frame;if(i==this.Frame.SubFrame.length-1)item.XSplitOperator.ShowText=true;else item.XSplitOperator.ShowText=false;item.Identify=i;}if(this.ChartDrawPicture.length>0){var aryDrawPicture=[];for(var i in this.ChartDrawPicture){var item=this.ChartDrawPicture[i];if(item.Frame==delFrame)continue;aryDrawPicture.push(item);}this.ChartDrawPicture=aryDrawPicture;}this.Frame.SetSizeChage(true);this.UpdateFrameMaxMin();this.ResetFrameXYSplit();this.Draw();};this.CreateExtendChart=function(name,option)//创建扩展图形
7398
7402
  {var chart;switch(name){case'筹码分布':chart=new StockChip();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.Left=this.Frame.ChartBorder.Right;//左边间距使用当前框架间距
7399
7403
  chart.SetOption(option);this.ExtendChartPaint.push(chart);this.Frame.ChartBorder.Right+=chart.Width;//创建筹码需要增加右边的间距
@@ -7760,10 +7764,10 @@ this.DayData;//多日分钟数据
7760
7764
  this.LimitPrice;//涨停价格 { Max:null, Min:null };
7761
7765
  this.IsShowBeforeData=false;//是否显示盘前集合竞价数据 (当日)
7762
7766
  this.BeforeOpenData=null;//盘前集合竞价数据
7763
- this.IsBeforeData=false;//是否支持显示盘前集合竞价数据
7767
+ this.IsBeforeData=false;//是否支持显示盘前集合竞价数据(当日)
7764
7768
  this.IsShowAfterData=false;//收盘集合竞价
7765
7769
  this.AfterCloseData=null;//收盘集合竞价数据
7766
- this.IsAfterData=false;//是否支持显示收盘集合竞价数据
7770
+ this.IsAfterData=false;//是否支持显示收盘集合竞价数据(当日)
7767
7771
  this.ShareAfterVol=0;//1=盘后数据成交量Y坐标和主图共享 2=盘后数据成交量Y坐标和盘前共享
7768
7772
  this.ExtendWidth={Left:120,Right:120};//单日分时图 左右扩展图形宽度
7769
7773
  this.IsShowLead=true;//指数是否显示领先指标
@@ -7771,7 +7775,7 @@ this.IsShowMultiDayBeforeData=false;//多日分时图 是否显示盘前集合
7771
7775
  this.MultiDayBeforeOpenData=null;//多日分时图 盘前集合竞价数据
7772
7776
  this.IsShowMultiDayAfterData=false;//多日分时图 是否显示收盘集合竞价
7773
7777
  this.MultiDayAfterCloseData=null;//多日分时图 收盘集合竞价数据
7774
- this.MultiDayExtendWidth={Left:20,Right:20};//多日分时图 左右扩展图形宽度
7778
+ this.MultiDayExtendWidth={Left:40,Right:20};//多日分时图 左右扩展图形宽度
7775
7779
  this.ChartDrawStorage=new ChartDrawStorage();this.ChartDrawStorageCache=null;//首次需要创建的画图工具数据
7776
7780
  this.MinuteApiUrl=g_JSChartResource.Domain+"/API/Stock";this.HistoryMinuteApiUrl=g_JSChartResource.Domain+'/API/StockMinuteData';//历史分钟数据
7777
7781
  this.ColorLineData;//主图价格线颜色自定义配置
@@ -7903,7 +7907,7 @@ this.UpdateFrameMaxMin();//调整坐标最大 最小值
7903
7907
  this.Draw();};this.ChangeIndex=function(windowIndex,indexName,option){if(this.Frame.SubFrame.length<3)return;if(option&&option.API)return this.ChangeAPIIndex(windowIndex,option);//查找系统指标
7904
7908
  var scriptData=new JSIndexScript();var indexInfo=scriptData.Get(indexName);if(!indexInfo)return;if(windowIndex<2)windowIndex=2;if(windowIndex>=this.Frame.SubFrame.length)windowIndex=2;JSIndexScript.ModifyAttribute(indexInfo,option);return this.ChangeScriptIndex(windowIndex,indexInfo,option);};//设置指标窗口个数
7905
7909
  this.ChangeIndexWindowCount=function(count){var _this32=this;if(count<2)return;//1,2个窗口固定的不能动
7906
- if(this.Frame.SubFrame.length==count)return;var currentLength=this.Frame.SubFrame.length;if(currentLength>count){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);for(var i=currentLength-1;i>=count;--i){this.DeleteIndexPaint(i);var item=this.Frame.SubFrame[i].Frame;if(item.ClearToolbar)item.ClearToolbar();if(event&&event.Callback){var sendData={SubFrame:this.Frame.SubFrame[i],WindowIndex:i};event.Callback(event,sendData,this);}}this.Frame.SubFrame.splice(count,currentLength-count);this.WindowIndex.splice(count,currentLength-count);this.TitlePaint.splice(count+1,currentLength-count);}else{//创建新的指标窗口
7910
+ if(this.Frame.SubFrame.length==count)return;var currentLength=this.Frame.SubFrame.length;if(currentLength>count){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);for(var i=currentLength-1;i>=count;--i){this.DeleteIndexPaint(i);this.DeleteChartPaintExtend({WindowIndex:i});var item=this.Frame.SubFrame[i].Frame;if(item.ClearToolbar)item.ClearToolbar();if(event&&event.Callback){var sendData={SubFrame:this.Frame.SubFrame[i],WindowIndex:i};event.Callback(event,sendData,this);}}this.Frame.SubFrame.splice(count,currentLength-count);this.WindowIndex.splice(count,currentLength-count);this.TitlePaint.splice(count+1,currentLength-count);}else{//创建新的指标窗口
7907
7911
  var mainFrame=this.Frame.SubFrame[0].Frame;for(var i=currentLength;i<count;++i){var subFrame=this.CreateSubFrameItem(i,mainFrame);this.Frame.SubFrame[i]=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 _this32.GetEventCallback(id);};titlePaint.SelectedChart=this.SelectedChart;this.TitlePaint[i+1]=titlePaint;}//创建指标
7908
7912
  var indexName=["RSI","MACD","DMA","DMI","KDJ","WR"];var scriptData=new JSIndexScript();for(var i=currentLength;i<count;++i){var name=indexName[i%indexName.length];var indexInfo=scriptData.Get(name);this.WindowIndex[i]=new ScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo);//脚本执行
7909
7913
  var bindData=this.SourceData;this.BindIndexData(i,bindData);//执行脚本
@@ -7924,7 +7928,7 @@ for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i].Fr
7924
7928
  var aryOverlayIndex=[];if(IFrameSplitOperator.IsNonEmptyArray(option.OverlayIndex)){for(var i=0;i<option.OverlayIndex.length;++i){var item=option.OverlayIndex[i];if(item.Index)item.IndexName=item.Index;if(item.Windows>=0)item.WindowIndex=item.Windows;var overlay=this.CreateOverlayWindowsIndex(item);if(!overlay)continue;aryOverlayIndex.push({WindowsIndex:item.WindowIndex,Overlay:overlay});}}this.Frame.SetSizeChage(true);if(!bRefreshData){var bindData=this.SourceData;for(var i=0;i<count;++i){this.BindIndexData(i,bindData);//执行脚本
7925
7929
  }for(var i=0;i<aryOverlayIndex.length;++i){var item=aryOverlayIndex[i];this.BindOverlayIndexData(item.Overlay,item.WindowsIndex,bindData);}this.UpdataDataoffset();//更新数据偏移
7926
7930
  if(this.UpdateXShowText)this.UpdateXShowText();this.ResetFrameXYSplit();this.UpdateFrameMaxMin();//调整坐标最大 最小值
7927
- this.Draw();}else{if(!symbol)symbol=this.Symbol;var option={};if(IFrameSplitOperator.IsNumber(dayCount))option.DayCount=dayCount;this.ChangeSymbol(symbol,option);}};this.RemoveIndexWindow=function(id){JSConsole.Chart.Log('[MinuteChartContainer::RemoveIndexWindow] remove id',id);if(id<2)return;if(!this.Frame.SubFrame)return;if(id>=this.Frame.SubFrame.length)return;this.Frame.RestoreIndexWindows();var delFrame=this.Frame.SubFrame[id].Frame;this.DeleteIndexPaint(id);this.Frame.SubFrame[id].Frame.ClearToolbar();var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);if(event&&event.Callback){var sendData={SubFrame:this.Frame.SubFrame[id],WindowIndex:id};event.Callback(event,sendData,this);}this.Frame.SubFrame.splice(id,1);this.WindowIndex.splice(id,1);this.TitlePaint.splice(id+1,1);//删除对应的动态标题
7931
+ this.Draw();}else{if(!symbol)symbol=this.Symbol;var option={};if(IFrameSplitOperator.IsNumber(dayCount))option.DayCount=dayCount;this.ChangeSymbol(symbol,option);}};this.RemoveIndexWindow=function(id){JSConsole.Chart.Log('[MinuteChartContainer::RemoveIndexWindow] remove id',id);if(id<2)return;if(!this.Frame.SubFrame)return;if(id>=this.Frame.SubFrame.length)return;this.Frame.RestoreIndexWindows();var delFrame=this.Frame.SubFrame[id].Frame;this.DeleteIndexPaint(id);this.DeleteChartPaintExtend({WindowIndex:id});this.Frame.SubFrame[id].Frame.ClearToolbar();var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);if(event&&event.Callback){var sendData={SubFrame:this.Frame.SubFrame[id],WindowIndex:id};event.Callback(event,sendData,this);}this.Frame.SubFrame.splice(id,1);this.WindowIndex.splice(id,1);this.TitlePaint.splice(id+1,1);//删除对应的动态标题
7928
7932
  for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i].Frame;if(i==this.Frame.SubFrame.length-1)item.XSplitOperator.ShowText=true;else item.XSplitOperator.ShowText=false;item.Identify=i;}/*
7929
7933
  if (this.ChartDrawPicture.length>0)
7930
7934
  {
@@ -7976,8 +7980,9 @@ this.UpdateFrameMaxMin();this.Draw();};this.ShowBeforeData=function(isShow,optio
7976
7980
  this.ShowCallAuctionData=function(obj,option){if(!obj)return;var optionChanged=false;//配置修改
7977
7981
  if(IFrameSplitOperator.IsBool(obj.Left)&&this.IsShowBeforeData!=obj.Left){this.IsShowBeforeData=obj.Left;optionChanged=true;}if(IFrameSplitOperator.IsBool(obj.Right)&&this.IsShowAfterData!=obj.Right){this.IsShowAfterData=obj.Right;optionChanged=true;}if(obj.MultiDay){var item=obj.MultiDay;if(IFrameSplitOperator.IsBool(item.Left)&&this.IsShowMultiDayBeforeData!=item.Left){this.IsShowMultiDayBeforeData=item.Left;optionChanged=true;}if(IFrameSplitOperator.IsBool(item.Right)&&this.IsShowMultiDayAfterData!=item.Right){this.IsShowMultiDayAfterData=item.Right;optionChanged=true;}}if(option){if(option.BeforeOpen){var item=option.BeforeOpen;if(IFrameSplitOperator.IsNumber(item.Left)&&this.ExtendWidth.Left!=item.Left){this.ExtendWidth.Left=item.Left;optionChanged=true;}}if(option.AfterClose){var item=option.AfterClose;if(IFrameSplitOperator.IsNumber(item.Right)&&this.ExtendWidth.Right!=item.Right){this.ExtendWidth.Right=item.Right;optionChanged=true;}}if(option.MultiDay){var item=option.MultiDay;if(IFrameSplitOperator.IsNumber(item.Left)&&this.MultiDayExtendWidth.Left!=item.Left){this.MultiDayExtendWidth.Left=item.Left;optionChanged=true;}if(IFrameSplitOperator.IsNumber(item.Right)&&this.MultiDayExtendWidth.Right!=item.Right){this.MultiDayExtendWidth.Right=item.Right;optionChanged=true;}}}if(optionChanged)this.RequestData();};this.RequestData=function(){if(this.DayCount<=1)this.RequestMinuteData();else this.RequestHistoryMinuteData();};this.ChangeDrawType=function(type){if(this.ChartPaint.length<=0)return;if(type==0)this.ChartPaint[0].IsDrawArea=true;else if(type==1)this.ChartPaint[0].IsDrawArea=false;else return;this.Draw();};this.UpdateDataOffset=function(){this.SourceData.DataOffset=this.DayOffset.DataOffset;for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(!item.Data)continue;item.Data.DataOffset=this.DayOffset.DataOffset;if(item.ClassName=="ChartMinuteVolumBar"||item.ClassName=="ChartMinutePriceLine")item.DayOffset=this.DayOffset;}for(var i=0;i<this.OverlayChartPaint.length;++i){var item=this.OverlayChartPaint[i];if(!item.Data)continue;item.Data.DataOffset=this.DayOffset.DataOffset;}//叠加指标当前显示的数据偏移
7978
7982
  for(var i=0;i<this.Frame.SubFrame.length;++i){var subFrame=this.Frame.SubFrame[i];for(var j=0;j<subFrame.OverlayIndex.length;++j){var overlayItem=subFrame.OverlayIndex[j];for(var k=0;k<overlayItem.ChartPaint.length;++k){var item=overlayItem.ChartPaint[k];if(!item.Data)continue;item.Data.DataOffset=this.DayOffset.DataOffset;}}}};//请求历史分钟数据
7979
- this.RequestHistoryMinuteData=function(){var self=this;this.IsBeforeData=false;this.IsAfterData=false;this.ChartSplashPaint.SetTitle(this.LoadDataSplashTitle);this.ChartSplashPaint.EnableSplash(true);this.Draw();if(this.NetworkFilter){var obj={Name:'MinuteChartContainer::RequestHistoryMinuteData',//类名::函数
7980
- Explain:'多日分时数据',Request:{Url:self.HistoryMinuteApiUrl,Data:{daycount:self.DayCount,symbol:self.Symbol},Type:'POST'},Self:this,PreventDefault:false};this.NetworkFilter(obj,function(data){self.ChartSplashPaint.EnableSplash(false);self.RecvHistoryMinuteData(data);});if(obj.PreventDefault==true)return;//已被上层替换,不调用默认的网络请求
7983
+ this.RequestHistoryMinuteData=function(){var self=this;this.IsBeforeData=false;this.IsAfterData=false;this.ChartSplashPaint.SetTitle(this.LoadDataSplashTitle);this.ChartSplashPaint.EnableSplash(true);this.Draw();if(this.NetworkFilter){var callCation={Before:this.IsShowMultiDayBeforeData,After:this.IsShowMultiDayAfterData//集合竞价
7984
+ };var obj={Name:'MinuteChartContainer::RequestHistoryMinuteData',//类名::函数
7985
+ Explain:'多日分时数据',Request:{Url:self.HistoryMinuteApiUrl,Data:{daycount:self.DayCount,symbol:self.Symbol,callcation:callCation},Type:'POST'},Self:this,PreventDefault:false};this.NetworkFilter(obj,function(data){self.ChartSplashPaint.EnableSplash(false);self.RecvHistoryMinuteData(data);});if(obj.PreventDefault==true)return;//已被上层替换,不调用默认的网络请求
7981
7986
  }JSNetwork.HttpRequest({url:self.HistoryMinuteApiUrl,data:{"symbol":self.Symbol,"daycount":self.DayCount},type:"post",dataType:"json",async:true,success:function success(data){self.ChartSplashPaint.EnableSplash(false);self.RecvHistoryMinuteData(data);}});};this.RecvHistoryMinuteData=function(data){if(this.EnableVerifyRecvData&&data.symbol!=this.Symbol){JSConsole.Chart.Warn('[MinuteChartContainer::RecvHistoryMinuteData] recv data symbol not match. HQChart['+this.Symbol+'] , Recv['+data.symbol+']');return;}this.DayData=MinuteChartContainer.JsonDataToMinuteDataArray(data);this.ColorLineData=MinuteChartContainer.JsonDataToHistoryMinuteLineColorData(data);this.MultiDayBeforeOpenData=MinuteChartContainer.JosnDataToBeforeOpenDataArray(data);this.MultiDayAfterCloseData=MinuteChartContainer.JosnDataToAfterCloseDataArray(data);var updateTime=MinuteChartContainer.JsonDataToHistoryMinuteLastUpdateTime(data);this.DataStatus.MultiDay=true;this.CaclutateCallCationYRange();this.Symbol=data.symbol;this.Name=data.name;this.SetCallCationDataBorder({Left:false,Right:false,MultiDay:{Left:this.IsShowMultiDayBeforeData,Right:this.IsShowMultiDayAfterData}});this.CaclutateLimitPrice(this.DayData[0].YClose,data.data[0].limitprice);//计算涨停价格
7982
7987
  this.UpdateHistoryMinuteUI(updateTime);this.RecvMinuteDataEvent({FunctionName:"RecvHistoryMinuteData"});this.RequestOverlayHistoryMinuteData();this.BindAllOverlayIndexData(this.SourceData);this.AutoUpdateEvent(true,"MinuteChartContainer::RequestHistoryMinuteData");this.AutoUpdate();};this.CaclutateCallCationYRange=function(){//多日集合竞价Y轴统一成交量
7983
7988
  var afterRange=null,beforeRange=null;if(IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData)){var range={Max:null,Min:null};for(var i=0;i<this.MultiDayAfterCloseData.length;++i){var item=this.MultiDayAfterCloseData[i];if(range.Max==null)range.Max=item.VolMax;else if(range.Max<item.VolMax)range.Max=item.VolMax;if(range.Min==null)range.Min=item.VolMin;else if(range.Min>item.VolMin)range.Min=item.VolMin;}afterRange=range;}if(IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData)){var range={Max:null,Min:null};for(var i=0;i<this.MultiDayBeforeOpenData.length;++i){var item=this.MultiDayBeforeOpenData[i];if(range.Max==null)range.Max=item.VolMax;else if(range.Max<item.VolMax)range.Max=item.VolMax;if(range.Min==null)range.Min=item.VolMin;else if(range.Min>item.VolMin)range.Min=item.VolMin;}beforeRange=range;}if(this.ShareAfterVol==2)// 公用坐标
@@ -7999,7 +8004,8 @@ if(stock&&IFrameSplitOperator.IsNumber(stock.yclose))item.YClose=stock.yclose;if
7999
8004
  this.UpdateLatestMinuteDataV2=function(minuteData){if(this.DayCount>1){if(!this.DayData)return;var findItem=null;for(var i=0;i<this.DayData.length;++i){var item=this.DayData[i];if(item.Date===date){findItem=item;break;}}if(!findItem)return;var findIndex=-1;var firstItem=minuteData.Data[0];for(var i=0;i<findItem.Data.length;++i){var item=findItem.Data[i];if(item.Date==firstItem.Date&&item.Time==firstItem.Time){findIndex=i;break;}}if(findIndex<0)findIndex=findItem.Data.length;for(var i=0,j=findIndex;i<minuteData.Data.length;++i,++j){var item=minuteData.Data[i];findItem.Data[j]=item;}}else{if(!this.SourceData)return;var findIndex=-1;var firstItem=minuteData.Data[0];for(var i=0;i<this.SourceData.Data.length;++i){var item=this.SourceData.Data[i];if(item.Date==firstItem.Date&&item.Time==firstItem.Time){findIndex=i;break;}}if(findIndex<0)findIndex=this.SourceData.Data.length;for(var i=0,j=findIndex;i<minuteData.Data.length;++i,++j){var item=minuteData.Data[i];this.SourceData.Data[j]=item;}}};//请求分钟数据
8000
8005
  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)){//期货的需要加上结算价
8001
8006
  fields.push("clearing");fields.push("yclearing");}// 盘前数据(A股)
8002
- 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 dateRange=null;if(this.DayCount>1){if(IFrameSplitOperator.IsNonEmptyArray(this.DayData)){var dayData=this.DayData[0];dateRange=dayData.GetDateRange();}}else{if(this.SourceData)dateRange=this.SourceData.GetDateRange();}var callCation={Before:this.IsShowBeforeData&&this.DayCount===1,After:this.IsShowAfterData&&this.DayCount===1//集合竞价
8007
+ 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 dateRange=null;if(this.DayCount>1){if(IFrameSplitOperator.IsNonEmptyArray(this.DayData)){var dayData=this.DayData[0];dateRange=dayData.GetDateRange();}}else{if(this.SourceData)dateRange=this.SourceData.GetDateRange();}var callCation={Before:this.IsShowBeforeData,After:this.IsShowAfterData//集合竞价
8008
+ };if(this.DayCount>1)callCation={Before:this.IsShowMultiDayBeforeData,After:this.IsShowMultiDayAfterData//多日集合竞价
8003
8009
  };var obj={Name:'MinuteChartContainer::RequestMinuteData',//类名::函数名
8004
8010
  Explain:'最新分时数据',Request:{Url:self.MinuteApiUrl,Data:{field:fields,symbol:[self.Symbol],callcation:callCation},Type:'POST'},Self:this,PreventDefault:false};if(dateRange)obj.DateRange=dateRange;//本地数据日期范围
8005
8011
  this.NetworkFilter(obj,function(data){self.ChartSplashPaint.EnableSplash(false);self.RecvMinuteData(data);});if(obj.PreventDefault==true)return;//已被上层替换,不调用默认的网络请求
@@ -13208,7 +13214,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
13208
13214
  this.ExecuteScript(item,data);}this.Status=0;}};this.OnExecuteFinish=function(data,indexInfo,jsExectute,jobInfo){var message={Data:data,IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.FINISH_EXECUTE_SCRIPT,JobInfo:jobInfo};postMessage(message);};this.OnExecuteError=function(error,indexInfo,jobData){var message={IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.ERROR_EXECUTE_SCRIPT,Error:error};postMessage(message);};}/********************************************************************************
13209
13215
  * 版本信息输出
13210
13216
  *
13211
- */var HQCHART_VERSION="1.1.13268";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();//把给外界调用的方法暴露出来
13217
+ */var HQCHART_VERSION="1.1.13277";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();//把给外界调用的方法暴露出来
13212
13218
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
13213
13219
  // BaseIndex:BaseIndex,
13214
13220
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.13269",
3
+ "version": "1.1.13278",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -48757,13 +48757,38 @@ HQData.NetworkFilter=function(data, callback)
48757
48757
  HQData.RequestMinuteData=function(data, callback)
48758
48758
  {
48759
48759
  data.PreventDefault=true;
48760
- var symbol=data.Request.Data.symbol[0]; //请求的股票代码
48761
- var dayCount=data.Request.Data.daycount;
48760
+ var symbol=data.Request.Data.symbol[0]; //请求的股票代码
48761
+ var callcation=data.Request.Data.callcation; //集合竞价
48762
48762
  console.log(`[HQData::RequestMinuteData] Symbol=${symbol}`);
48763
48763
 
48764
- var hqchartData=MINUTE_1DAY_DATA;
48765
- hqchartData.stock[0].symbol=symbol;
48766
- hqchartData.stock[0].name=symbol;
48764
+ var srcStock=MINUTE_1DAY_DATA.stock[0];
48765
+ var stockItem={ date:srcStock.date, minute:srcStock.minute, yclose:srcStock.yclose, symbol:srcStock.symbol, name:srcStock.name };
48766
+ if (callcation.Before)
48767
+ {
48768
+ var before=
48769
+ [
48770
+ //[交易时间, 价格,成交量, 成交金额, 日期(可选,YYYYMMDD)],
48771
+ [915, srcStock.yclose,0,0],
48772
+ [916, srcStock.yclose+0.01,0,0],
48773
+ [917, srcStock.yclose+0.03,0,0],
48774
+ [918, srcStock.yclose+0.02,0,0],
48775
+ [919, srcStock.yclose+0.02,0,0],
48776
+ [920, srcStock.yclose+0.01,0,0],
48777
+ [921, srcStock.yclose,0,0],
48778
+ [922, srcStock.yclose-0.02,0,0],
48779
+ [923, srcStock.yclose-0.03,0,0],
48780
+ [924, srcStock.yclose,0,0],
48781
+ [925, srcStock.yclose,0,0],
48782
+ ];
48783
+
48784
+ var beforeinfo={ totalcount:11, ver:1.0 };
48785
+
48786
+ stockItem.before=before;
48787
+ stockItem.beforeinfo=beforeinfo;
48788
+ }
48789
+
48790
+ var hqchartData={code:0, stock:[stockItem] };
48791
+
48767
48792
 
48768
48793
  callback(hqchartData);
48769
48794
  }
@@ -48773,12 +48798,44 @@ HQData.RequestMinuteDaysData=function(data, callback)
48773
48798
  data.PreventDefault=true;
48774
48799
  var symbol=data.Request.Data.symbol; //请求的股票代码
48775
48800
  var dayCount=data.Request.Data.daycount;
48801
+ var callcation=data.Request.Data.callcation; //集合竞价
48776
48802
 
48777
48803
  console.log(`[HQData::RequestMinuteDaysData] Symbol=${symbol}`);
48778
48804
 
48779
- var hqchartData=MINUTE_5DAY_DATA;
48780
- hqchartData.symbol=symbol;
48781
- hqchartData.name=symbol;
48805
+ var hqchartData={code:0, data:[] };
48806
+ hqchartData.symbol=MINUTE_5DAY_DATA.symbol;
48807
+ hqchartData.name=MINUTE_5DAY_DATA.symbol;
48808
+
48809
+ for(var i=0;i<dayCount && i<MINUTE_5DAY_DATA.data.length;++i)
48810
+ {
48811
+ var item=MINUTE_5DAY_DATA.data[i];
48812
+ var dayItem={minute:item.minute, yclose:item.yclose, date:item.date };
48813
+ if (callcation.Before)
48814
+ {
48815
+ var before=
48816
+ [
48817
+ //[交易时间, 价格,成交量, 成交金额, 日期(可选,YYYYMMDD)],
48818
+ [915, item.yclose,0,0],
48819
+ [916, item.yclose+0.01,0,0],
48820
+ [917, item.yclose+0.03,0,0],
48821
+ [918, item.yclose+0.02,0,0],
48822
+ [919, item.yclose+0.02,0,0],
48823
+ [920, item.yclose+0.01,0,0],
48824
+ [921, item.yclose,0,0],
48825
+ [922, item.yclose-0.02,0,0],
48826
+ [923, item.yclose-0.03,0,0],
48827
+ [924, item.yclose,0,0],
48828
+ [925, item.yclose,0,0],
48829
+ ];
48830
+
48831
+ var beforeinfo={ totalcount:11, ver:1.0 };
48832
+
48833
+ dayItem.before=before;
48834
+ dayItem.beforeinfo=beforeinfo;
48835
+ }
48836
+
48837
+ hqchartData.data.push(dayItem);
48838
+ }
48782
48839
 
48783
48840
  callback(hqchartData);
48784
48841
  }
@@ -9472,6 +9472,61 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
9472
9472
 
9473
9473
  this.PopupMenuByRClick(menuData, x, y);
9474
9474
  }
9475
+
9476
+ //指标窗口扩展图形
9477
+ this.CreateChartPaintExtend=function(chart, windowIndex)
9478
+ {
9479
+ if (windowIndex<0) return false;
9480
+ var subFrame=this.Frame.SubFrame[windowIndex];
9481
+ if (!subFrame || !subFrame.Frame) return false;
9482
+
9483
+ var frame=subFrame.Frame;
9484
+ chart.Canvas=this.Canvas;
9485
+ chart.ChartBorder=frame.ChartBorder;
9486
+ chart.ChartFrame=frame;
9487
+
9488
+ this.ChartPaintEx.push(chart);
9489
+
9490
+ return true;
9491
+ }
9492
+
9493
+ //删除指标窗口扩展图形 option={ ChartID:图形ID, WindowIndex:窗口 }
9494
+ this.DeleteChartPaintExtend=function(option, bCallDestroy)
9495
+ {
9496
+ if (!option) return;
9497
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.ChartPaintEx)) return;
9498
+
9499
+ if (IFrameSplitOperator.IsNumber(option.WindowIndex))
9500
+ {
9501
+ var windowIndex=option.WindowIndex;
9502
+ if (!this.Frame.SubFrame[windowIndex]) return;
9503
+ var subFrame=this.Frame.SubFrame[windowIndex].Frame;
9504
+ if (!subFrame) return;
9505
+
9506
+ var paint=[]; //踢出当前窗口的指标画法
9507
+ var deleteCount=0;
9508
+ for(var i=0;i<this.ChartPaintEx.length; ++i)
9509
+ {
9510
+ var item=this.ChartPaintEx[i];
9511
+ var bFind=(item.ChartFrame.Guid==subFrame.Guid || item.ChartFrame==subFrame);
9512
+
9513
+ if (!bFind)
9514
+ {
9515
+ paint.push(item);
9516
+ }
9517
+ else
9518
+ {
9519
+ ++deleteCount;
9520
+ if (bCallDestroy===true)
9521
+ {
9522
+ if (item && item.OnDestroy) item.OnDestroy(); //图形销毁
9523
+ }
9524
+ }
9525
+ }
9526
+
9527
+ if (deleteCount>0) this.ChartPaintEx=paint;
9528
+ }
9529
+ }
9475
9530
  }
9476
9531
 
9477
9532
  function GetDevicePixelRatio()
@@ -71322,6 +71377,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
71322
71377
  for(var i=currentLength-1;i>=count;--i)
71323
71378
  {
71324
71379
  this.DeleteIndexPaint(i);
71380
+ this.DeleteChartPaintExtend({WindowIndex:i});
71325
71381
  this.Frame.SubFrame[i].Frame.ClearToolbar();
71326
71382
  if (event && event.Callback)
71327
71383
  {
@@ -71637,6 +71693,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
71637
71693
 
71638
71694
  var delFrame=this.Frame.SubFrame[id].Frame;
71639
71695
  this.DeleteIndexPaint(id);
71696
+ this.DeleteChartPaintExtend({WindowIndex:id});
71640
71697
  this.Frame.SubFrame[id].Frame.ClearToolbar();
71641
71698
 
71642
71699
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);
@@ -75056,12 +75113,12 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
75056
75113
 
75057
75114
  this.IsShowBeforeData=false; //是否显示盘前集合竞价数据 (当日)
75058
75115
  this.BeforeOpenData=null; //盘前集合竞价数据
75059
- this.IsBeforeData=false; //是否支持显示盘前集合竞价数据
75116
+ this.IsBeforeData=false; //是否支持显示盘前集合竞价数据(当日)
75060
75117
 
75061
75118
  this.IsShowAfterData=false; //收盘集合竞价
75062
75119
  this.AfterCloseData=null; //收盘集合竞价数据
75063
- this.IsAfterData=false; //是否支持显示收盘集合竞价数据
75064
- this.ShareAfterVol=0; //1=盘后数据成交量Y坐标和主图共享 2=盘后数据成交量Y坐标和盘前共享
75120
+ this.IsAfterData=false; //是否支持显示收盘集合竞价数据(当日)
75121
+ this.ShareAfterVol=0; //1=盘后数据成交量Y坐标和主图共享 2=盘后数据成交量Y坐标和盘前共享
75065
75122
  this.ExtendWidth={ Left: 120, Right:120 } ; //单日分时图 左右扩展图形宽度
75066
75123
 
75067
75124
  this.IsShowLead=true; //指数是否显示领先指标
@@ -75071,7 +75128,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
75071
75128
  this.IsShowMultiDayAfterData=false; //多日分时图 是否显示收盘集合竞价
75072
75129
  this.MultiDayAfterCloseData=null; //多日分时图 收盘集合竞价数据
75073
75130
 
75074
- this.MultiDayExtendWidth={ Left:20, Right:20 }; //多日分时图 左右扩展图形宽度
75131
+ this.MultiDayExtendWidth={ Left:40, Right:20 }; //多日分时图 左右扩展图形宽度
75075
75132
 
75076
75133
  this.ChartDrawStorage=new ChartDrawStorage();
75077
75134
  this.ChartDrawStorageCache=null; //首次需要创建的画图工具数据
@@ -77222,6 +77279,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
77222
77279
  for(var i=currentLength-1;i>=count;--i)
77223
77280
  {
77224
77281
  this.DeleteIndexPaint(i);
77282
+ this.DeleteChartPaintExtend({WindowIndex:i});
77225
77283
  var item=this.Frame.SubFrame[i].Frame;
77226
77284
  if (item.ClearToolbar) item.ClearToolbar();
77227
77285
 
@@ -77461,6 +77519,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
77461
77519
 
77462
77520
  var delFrame=this.Frame.SubFrame[id].Frame;
77463
77521
  this.DeleteIndexPaint(id);
77522
+ this.DeleteChartPaintExtend({WindowIndex:id});
77464
77523
  this.Frame.SubFrame[id].Frame.ClearToolbar();
77465
77524
 
77466
77525
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);
@@ -78058,11 +78117,17 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
78058
78117
 
78059
78118
  if (this.NetworkFilter)
78060
78119
  {
78120
+ var callCation=
78121
+ {
78122
+ Before:this.IsShowMultiDayBeforeData ,
78123
+ After:this.IsShowMultiDayAfterData
78124
+ } //集合竞价
78125
+
78061
78126
  var obj=
78062
78127
  {
78063
78128
  Name:'MinuteChartContainer::RequestHistoryMinuteData', //类名::函数
78064
78129
  Explain:'多日分时数据',
78065
- Request:{ Url:self.HistoryMinuteApiUrl, Data:{daycount:self.DayCount, symbol:self.Symbol}, Type:'POST' },
78130
+ Request:{ Url:self.HistoryMinuteApiUrl, Data:{daycount:self.DayCount, symbol:self.Symbol, callcation:callCation }, Type:'POST' },
78066
78131
  Self:this,
78067
78132
  PreventDefault:false
78068
78133
  };
@@ -78442,11 +78507,9 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
78442
78507
  dateRange=this.SourceData.GetDateRange();
78443
78508
  }
78444
78509
 
78445
- var callCation=
78446
- {
78447
- Before:(this.IsShowBeforeData && this.DayCount===1),
78448
- After:(this.IsShowAfterData && this.DayCount===1)
78449
- } //集合竞价
78510
+ var callCation={ Before:this.IsShowBeforeData, After:this.IsShowAfterData } //集合竞价
78511
+ if (this.DayCount>1) callCation={ Before:this.IsShowMultiDayBeforeData, After:this.IsShowMultiDayAfterData } //多日集合竞价
78512
+
78450
78513
  var obj=
78451
78514
  {
78452
78515
  Name:'MinuteChartContainer::RequestMinuteData', //类名::函数名
@@ -82,13 +82,38 @@ HQData.NetworkFilter=function(data, callback)
82
82
  HQData.RequestMinuteData=function(data, callback)
83
83
  {
84
84
  data.PreventDefault=true;
85
- var symbol=data.Request.Data.symbol[0]; //请求的股票代码
86
- var dayCount=data.Request.Data.daycount;
85
+ var symbol=data.Request.Data.symbol[0]; //请求的股票代码
86
+ var callcation=data.Request.Data.callcation; //集合竞价
87
87
  console.log(`[HQData::RequestMinuteData] Symbol=${symbol}`);
88
88
 
89
- var hqchartData=MINUTE_1DAY_DATA;
90
- hqchartData.stock[0].symbol=symbol;
91
- hqchartData.stock[0].name=symbol;
89
+ var srcStock=MINUTE_1DAY_DATA.stock[0];
90
+ var stockItem={ date:srcStock.date, minute:srcStock.minute, yclose:srcStock.yclose, symbol:srcStock.symbol, name:srcStock.name };
91
+ if (callcation.Before)
92
+ {
93
+ var before=
94
+ [
95
+ //[交易时间, 价格,成交量, 成交金额, 日期(可选,YYYYMMDD)],
96
+ [915, srcStock.yclose,0,0],
97
+ [916, srcStock.yclose+0.01,0,0],
98
+ [917, srcStock.yclose+0.03,0,0],
99
+ [918, srcStock.yclose+0.02,0,0],
100
+ [919, srcStock.yclose+0.02,0,0],
101
+ [920, srcStock.yclose+0.01,0,0],
102
+ [921, srcStock.yclose,0,0],
103
+ [922, srcStock.yclose-0.02,0,0],
104
+ [923, srcStock.yclose-0.03,0,0],
105
+ [924, srcStock.yclose,0,0],
106
+ [925, srcStock.yclose,0,0],
107
+ ];
108
+
109
+ var beforeinfo={ totalcount:11, ver:1.0 };
110
+
111
+ stockItem.before=before;
112
+ stockItem.beforeinfo=beforeinfo;
113
+ }
114
+
115
+ var hqchartData={code:0, stock:[stockItem] };
116
+
92
117
 
93
118
  callback(hqchartData);
94
119
  }
@@ -98,12 +123,44 @@ HQData.RequestMinuteDaysData=function(data, callback)
98
123
  data.PreventDefault=true;
99
124
  var symbol=data.Request.Data.symbol; //请求的股票代码
100
125
  var dayCount=data.Request.Data.daycount;
126
+ var callcation=data.Request.Data.callcation; //集合竞价
101
127
 
102
128
  console.log(`[HQData::RequestMinuteDaysData] Symbol=${symbol}`);
103
129
 
104
- var hqchartData=MINUTE_5DAY_DATA;
105
- hqchartData.symbol=symbol;
106
- hqchartData.name=symbol;
130
+ var hqchartData={code:0, data:[] };
131
+ hqchartData.symbol=MINUTE_5DAY_DATA.symbol;
132
+ hqchartData.name=MINUTE_5DAY_DATA.symbol;
133
+
134
+ for(var i=0;i<dayCount && i<MINUTE_5DAY_DATA.data.length;++i)
135
+ {
136
+ var item=MINUTE_5DAY_DATA.data[i];
137
+ var dayItem={minute:item.minute, yclose:item.yclose, date:item.date };
138
+ if (callcation.Before)
139
+ {
140
+ var before=
141
+ [
142
+ //[交易时间, 价格,成交量, 成交金额, 日期(可选,YYYYMMDD)],
143
+ [915, item.yclose,0,0],
144
+ [916, item.yclose+0.01,0,0],
145
+ [917, item.yclose+0.03,0,0],
146
+ [918, item.yclose+0.02,0,0],
147
+ [919, item.yclose+0.02,0,0],
148
+ [920, item.yclose+0.01,0,0],
149
+ [921, item.yclose,0,0],
150
+ [922, item.yclose-0.02,0,0],
151
+ [923, item.yclose-0.03,0,0],
152
+ [924, item.yclose,0,0],
153
+ [925, item.yclose,0,0],
154
+ ];
155
+
156
+ var beforeinfo={ totalcount:11, ver:1.0 };
157
+
158
+ dayItem.before=before;
159
+ dayItem.beforeinfo=beforeinfo;
160
+ }
161
+
162
+ hqchartData.data.push(dayItem);
163
+ }
107
164
 
108
165
  callback(hqchartData);
109
166
  }
@@ -13364,6 +13364,61 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
13364
13364
 
13365
13365
  this.PopupMenuByRClick(menuData, x, y);
13366
13366
  }
13367
+
13368
+ //指标窗口扩展图形
13369
+ this.CreateChartPaintExtend=function(chart, windowIndex)
13370
+ {
13371
+ if (windowIndex<0) return false;
13372
+ var subFrame=this.Frame.SubFrame[windowIndex];
13373
+ if (!subFrame || !subFrame.Frame) return false;
13374
+
13375
+ var frame=subFrame.Frame;
13376
+ chart.Canvas=this.Canvas;
13377
+ chart.ChartBorder=frame.ChartBorder;
13378
+ chart.ChartFrame=frame;
13379
+
13380
+ this.ChartPaintEx.push(chart);
13381
+
13382
+ return true;
13383
+ }
13384
+
13385
+ //删除指标窗口扩展图形 option={ ChartID:图形ID, WindowIndex:窗口 }
13386
+ this.DeleteChartPaintExtend=function(option, bCallDestroy)
13387
+ {
13388
+ if (!option) return;
13389
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.ChartPaintEx)) return;
13390
+
13391
+ if (IFrameSplitOperator.IsNumber(option.WindowIndex))
13392
+ {
13393
+ var windowIndex=option.WindowIndex;
13394
+ if (!this.Frame.SubFrame[windowIndex]) return;
13395
+ var subFrame=this.Frame.SubFrame[windowIndex].Frame;
13396
+ if (!subFrame) return;
13397
+
13398
+ var paint=[]; //踢出当前窗口的指标画法
13399
+ var deleteCount=0;
13400
+ for(var i=0;i<this.ChartPaintEx.length; ++i)
13401
+ {
13402
+ var item=this.ChartPaintEx[i];
13403
+ var bFind=(item.ChartFrame.Guid==subFrame.Guid || item.ChartFrame==subFrame);
13404
+
13405
+ if (!bFind)
13406
+ {
13407
+ paint.push(item);
13408
+ }
13409
+ else
13410
+ {
13411
+ ++deleteCount;
13412
+ if (bCallDestroy===true)
13413
+ {
13414
+ if (item && item.OnDestroy) item.OnDestroy(); //图形销毁
13415
+ }
13416
+ }
13417
+ }
13418
+
13419
+ if (deleteCount>0) this.ChartPaintEx=paint;
13420
+ }
13421
+ }
13367
13422
  }
13368
13423
 
13369
13424
  function GetDevicePixelRatio()
@@ -75214,6 +75269,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
75214
75269
  for(var i=currentLength-1;i>=count;--i)
75215
75270
  {
75216
75271
  this.DeleteIndexPaint(i);
75272
+ this.DeleteChartPaintExtend({WindowIndex:i});
75217
75273
  this.Frame.SubFrame[i].Frame.ClearToolbar();
75218
75274
  if (event && event.Callback)
75219
75275
  {
@@ -75529,6 +75585,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
75529
75585
 
75530
75586
  var delFrame=this.Frame.SubFrame[id].Frame;
75531
75587
  this.DeleteIndexPaint(id);
75588
+ this.DeleteChartPaintExtend({WindowIndex:id});
75532
75589
  this.Frame.SubFrame[id].Frame.ClearToolbar();
75533
75590
 
75534
75591
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);
@@ -78948,12 +79005,12 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
78948
79005
 
78949
79006
  this.IsShowBeforeData=false; //是否显示盘前集合竞价数据 (当日)
78950
79007
  this.BeforeOpenData=null; //盘前集合竞价数据
78951
- this.IsBeforeData=false; //是否支持显示盘前集合竞价数据
79008
+ this.IsBeforeData=false; //是否支持显示盘前集合竞价数据(当日)
78952
79009
 
78953
79010
  this.IsShowAfterData=false; //收盘集合竞价
78954
79011
  this.AfterCloseData=null; //收盘集合竞价数据
78955
- this.IsAfterData=false; //是否支持显示收盘集合竞价数据
78956
- this.ShareAfterVol=0; //1=盘后数据成交量Y坐标和主图共享 2=盘后数据成交量Y坐标和盘前共享
79012
+ this.IsAfterData=false; //是否支持显示收盘集合竞价数据(当日)
79013
+ this.ShareAfterVol=0; //1=盘后数据成交量Y坐标和主图共享 2=盘后数据成交量Y坐标和盘前共享
78957
79014
  this.ExtendWidth={ Left: 120, Right:120 } ; //单日分时图 左右扩展图形宽度
78958
79015
 
78959
79016
  this.IsShowLead=true; //指数是否显示领先指标
@@ -78963,7 +79020,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
78963
79020
  this.IsShowMultiDayAfterData=false; //多日分时图 是否显示收盘集合竞价
78964
79021
  this.MultiDayAfterCloseData=null; //多日分时图 收盘集合竞价数据
78965
79022
 
78966
- this.MultiDayExtendWidth={ Left:20, Right:20 }; //多日分时图 左右扩展图形宽度
79023
+ this.MultiDayExtendWidth={ Left:40, Right:20 }; //多日分时图 左右扩展图形宽度
78967
79024
 
78968
79025
  this.ChartDrawStorage=new ChartDrawStorage();
78969
79026
  this.ChartDrawStorageCache=null; //首次需要创建的画图工具数据
@@ -81114,6 +81171,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
81114
81171
  for(var i=currentLength-1;i>=count;--i)
81115
81172
  {
81116
81173
  this.DeleteIndexPaint(i);
81174
+ this.DeleteChartPaintExtend({WindowIndex:i});
81117
81175
  var item=this.Frame.SubFrame[i].Frame;
81118
81176
  if (item.ClearToolbar) item.ClearToolbar();
81119
81177
 
@@ -81353,6 +81411,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
81353
81411
 
81354
81412
  var delFrame=this.Frame.SubFrame[id].Frame;
81355
81413
  this.DeleteIndexPaint(id);
81414
+ this.DeleteChartPaintExtend({WindowIndex:id});
81356
81415
  this.Frame.SubFrame[id].Frame.ClearToolbar();
81357
81416
 
81358
81417
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);
@@ -81950,11 +82009,17 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
81950
82009
 
81951
82010
  if (this.NetworkFilter)
81952
82011
  {
82012
+ var callCation=
82013
+ {
82014
+ Before:this.IsShowMultiDayBeforeData ,
82015
+ After:this.IsShowMultiDayAfterData
82016
+ } //集合竞价
82017
+
81953
82018
  var obj=
81954
82019
  {
81955
82020
  Name:'MinuteChartContainer::RequestHistoryMinuteData', //类名::函数
81956
82021
  Explain:'多日分时数据',
81957
- Request:{ Url:self.HistoryMinuteApiUrl, Data:{daycount:self.DayCount, symbol:self.Symbol}, Type:'POST' },
82022
+ Request:{ Url:self.HistoryMinuteApiUrl, Data:{daycount:self.DayCount, symbol:self.Symbol, callcation:callCation }, Type:'POST' },
81958
82023
  Self:this,
81959
82024
  PreventDefault:false
81960
82025
  };
@@ -82334,11 +82399,9 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
82334
82399
  dateRange=this.SourceData.GetDateRange();
82335
82400
  }
82336
82401
 
82337
- var callCation=
82338
- {
82339
- Before:(this.IsShowBeforeData && this.DayCount===1),
82340
- After:(this.IsShowAfterData && this.DayCount===1)
82341
- } //集合竞价
82402
+ var callCation={ Before:this.IsShowBeforeData, After:this.IsShowAfterData } //集合竞价
82403
+ if (this.DayCount>1) callCation={ Before:this.IsShowMultiDayBeforeData, After:this.IsShowMultiDayAfterData } //多日集合竞价
82404
+
82342
82405
  var obj=
82343
82406
  {
82344
82407
  Name:'MinuteChartContainer::RequestMinuteData', //类名::函数名
@@ -132137,7 +132200,7 @@ function ScrollBarBGChart()
132137
132200
 
132138
132201
 
132139
132202
 
132140
- var HQCHART_VERSION="1.1.13268";
132203
+ var HQCHART_VERSION="1.1.13277";
132141
132204
 
132142
132205
  function PrintHQChartVersion()
132143
132206
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.13268";
8
+ var HQCHART_VERSION="1.1.13277";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -48757,13 +48757,38 @@ HQData.NetworkFilter=function(data, callback)
48757
48757
  HQData.RequestMinuteData=function(data, callback)
48758
48758
  {
48759
48759
  data.PreventDefault=true;
48760
- var symbol=data.Request.Data.symbol[0]; //请求的股票代码
48761
- var dayCount=data.Request.Data.daycount;
48760
+ var symbol=data.Request.Data.symbol[0]; //请求的股票代码
48761
+ var callcation=data.Request.Data.callcation; //集合竞价
48762
48762
  console.log(`[HQData::RequestMinuteData] Symbol=${symbol}`);
48763
48763
 
48764
- var hqchartData=MINUTE_1DAY_DATA;
48765
- hqchartData.stock[0].symbol=symbol;
48766
- hqchartData.stock[0].name=symbol;
48764
+ var srcStock=MINUTE_1DAY_DATA.stock[0];
48765
+ var stockItem={ date:srcStock.date, minute:srcStock.minute, yclose:srcStock.yclose, symbol:srcStock.symbol, name:srcStock.name };
48766
+ if (callcation.Before)
48767
+ {
48768
+ var before=
48769
+ [
48770
+ //[交易时间, 价格,成交量, 成交金额, 日期(可选,YYYYMMDD)],
48771
+ [915, srcStock.yclose,0,0],
48772
+ [916, srcStock.yclose+0.01,0,0],
48773
+ [917, srcStock.yclose+0.03,0,0],
48774
+ [918, srcStock.yclose+0.02,0,0],
48775
+ [919, srcStock.yclose+0.02,0,0],
48776
+ [920, srcStock.yclose+0.01,0,0],
48777
+ [921, srcStock.yclose,0,0],
48778
+ [922, srcStock.yclose-0.02,0,0],
48779
+ [923, srcStock.yclose-0.03,0,0],
48780
+ [924, srcStock.yclose,0,0],
48781
+ [925, srcStock.yclose,0,0],
48782
+ ];
48783
+
48784
+ var beforeinfo={ totalcount:11, ver:1.0 };
48785
+
48786
+ stockItem.before=before;
48787
+ stockItem.beforeinfo=beforeinfo;
48788
+ }
48789
+
48790
+ var hqchartData={code:0, stock:[stockItem] };
48791
+
48767
48792
 
48768
48793
  callback(hqchartData);
48769
48794
  }
@@ -48773,12 +48798,44 @@ HQData.RequestMinuteDaysData=function(data, callback)
48773
48798
  data.PreventDefault=true;
48774
48799
  var symbol=data.Request.Data.symbol; //请求的股票代码
48775
48800
  var dayCount=data.Request.Data.daycount;
48801
+ var callcation=data.Request.Data.callcation; //集合竞价
48776
48802
 
48777
48803
  console.log(`[HQData::RequestMinuteDaysData] Symbol=${symbol}`);
48778
48804
 
48779
- var hqchartData=MINUTE_5DAY_DATA;
48780
- hqchartData.symbol=symbol;
48781
- hqchartData.name=symbol;
48805
+ var hqchartData={code:0, data:[] };
48806
+ hqchartData.symbol=MINUTE_5DAY_DATA.symbol;
48807
+ hqchartData.name=MINUTE_5DAY_DATA.symbol;
48808
+
48809
+ for(var i=0;i<dayCount && i<MINUTE_5DAY_DATA.data.length;++i)
48810
+ {
48811
+ var item=MINUTE_5DAY_DATA.data[i];
48812
+ var dayItem={minute:item.minute, yclose:item.yclose, date:item.date };
48813
+ if (callcation.Before)
48814
+ {
48815
+ var before=
48816
+ [
48817
+ //[交易时间, 价格,成交量, 成交金额, 日期(可选,YYYYMMDD)],
48818
+ [915, item.yclose,0,0],
48819
+ [916, item.yclose+0.01,0,0],
48820
+ [917, item.yclose+0.03,0,0],
48821
+ [918, item.yclose+0.02,0,0],
48822
+ [919, item.yclose+0.02,0,0],
48823
+ [920, item.yclose+0.01,0,0],
48824
+ [921, item.yclose,0,0],
48825
+ [922, item.yclose-0.02,0,0],
48826
+ [923, item.yclose-0.03,0,0],
48827
+ [924, item.yclose,0,0],
48828
+ [925, item.yclose,0,0],
48829
+ ];
48830
+
48831
+ var beforeinfo={ totalcount:11, ver:1.0 };
48832
+
48833
+ dayItem.before=before;
48834
+ dayItem.beforeinfo=beforeinfo;
48835
+ }
48836
+
48837
+ hqchartData.data.push(dayItem);
48838
+ }
48782
48839
 
48783
48840
  callback(hqchartData);
48784
48841
  }
@@ -13408,6 +13408,61 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
13408
13408
 
13409
13409
  this.PopupMenuByRClick(menuData, x, y);
13410
13410
  }
13411
+
13412
+ //指标窗口扩展图形
13413
+ this.CreateChartPaintExtend=function(chart, windowIndex)
13414
+ {
13415
+ if (windowIndex<0) return false;
13416
+ var subFrame=this.Frame.SubFrame[windowIndex];
13417
+ if (!subFrame || !subFrame.Frame) return false;
13418
+
13419
+ var frame=subFrame.Frame;
13420
+ chart.Canvas=this.Canvas;
13421
+ chart.ChartBorder=frame.ChartBorder;
13422
+ chart.ChartFrame=frame;
13423
+
13424
+ this.ChartPaintEx.push(chart);
13425
+
13426
+ return true;
13427
+ }
13428
+
13429
+ //删除指标窗口扩展图形 option={ ChartID:图形ID, WindowIndex:窗口 }
13430
+ this.DeleteChartPaintExtend=function(option, bCallDestroy)
13431
+ {
13432
+ if (!option) return;
13433
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.ChartPaintEx)) return;
13434
+
13435
+ if (IFrameSplitOperator.IsNumber(option.WindowIndex))
13436
+ {
13437
+ var windowIndex=option.WindowIndex;
13438
+ if (!this.Frame.SubFrame[windowIndex]) return;
13439
+ var subFrame=this.Frame.SubFrame[windowIndex].Frame;
13440
+ if (!subFrame) return;
13441
+
13442
+ var paint=[]; //踢出当前窗口的指标画法
13443
+ var deleteCount=0;
13444
+ for(var i=0;i<this.ChartPaintEx.length; ++i)
13445
+ {
13446
+ var item=this.ChartPaintEx[i];
13447
+ var bFind=(item.ChartFrame.Guid==subFrame.Guid || item.ChartFrame==subFrame);
13448
+
13449
+ if (!bFind)
13450
+ {
13451
+ paint.push(item);
13452
+ }
13453
+ else
13454
+ {
13455
+ ++deleteCount;
13456
+ if (bCallDestroy===true)
13457
+ {
13458
+ if (item && item.OnDestroy) item.OnDestroy(); //图形销毁
13459
+ }
13460
+ }
13461
+ }
13462
+
13463
+ if (deleteCount>0) this.ChartPaintEx=paint;
13464
+ }
13465
+ }
13411
13466
  }
13412
13467
 
13413
13468
  function GetDevicePixelRatio()
@@ -75258,6 +75313,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
75258
75313
  for(var i=currentLength-1;i>=count;--i)
75259
75314
  {
75260
75315
  this.DeleteIndexPaint(i);
75316
+ this.DeleteChartPaintExtend({WindowIndex:i});
75261
75317
  this.Frame.SubFrame[i].Frame.ClearToolbar();
75262
75318
  if (event && event.Callback)
75263
75319
  {
@@ -75573,6 +75629,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
75573
75629
 
75574
75630
  var delFrame=this.Frame.SubFrame[id].Frame;
75575
75631
  this.DeleteIndexPaint(id);
75632
+ this.DeleteChartPaintExtend({WindowIndex:id});
75576
75633
  this.Frame.SubFrame[id].Frame.ClearToolbar();
75577
75634
 
75578
75635
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);
@@ -78992,12 +79049,12 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
78992
79049
 
78993
79050
  this.IsShowBeforeData=false; //是否显示盘前集合竞价数据 (当日)
78994
79051
  this.BeforeOpenData=null; //盘前集合竞价数据
78995
- this.IsBeforeData=false; //是否支持显示盘前集合竞价数据
79052
+ this.IsBeforeData=false; //是否支持显示盘前集合竞价数据(当日)
78996
79053
 
78997
79054
  this.IsShowAfterData=false; //收盘集合竞价
78998
79055
  this.AfterCloseData=null; //收盘集合竞价数据
78999
- this.IsAfterData=false; //是否支持显示收盘集合竞价数据
79000
- this.ShareAfterVol=0; //1=盘后数据成交量Y坐标和主图共享 2=盘后数据成交量Y坐标和盘前共享
79056
+ this.IsAfterData=false; //是否支持显示收盘集合竞价数据(当日)
79057
+ this.ShareAfterVol=0; //1=盘后数据成交量Y坐标和主图共享 2=盘后数据成交量Y坐标和盘前共享
79001
79058
  this.ExtendWidth={ Left: 120, Right:120 } ; //单日分时图 左右扩展图形宽度
79002
79059
 
79003
79060
  this.IsShowLead=true; //指数是否显示领先指标
@@ -79007,7 +79064,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
79007
79064
  this.IsShowMultiDayAfterData=false; //多日分时图 是否显示收盘集合竞价
79008
79065
  this.MultiDayAfterCloseData=null; //多日分时图 收盘集合竞价数据
79009
79066
 
79010
- this.MultiDayExtendWidth={ Left:20, Right:20 }; //多日分时图 左右扩展图形宽度
79067
+ this.MultiDayExtendWidth={ Left:40, Right:20 }; //多日分时图 左右扩展图形宽度
79011
79068
 
79012
79069
  this.ChartDrawStorage=new ChartDrawStorage();
79013
79070
  this.ChartDrawStorageCache=null; //首次需要创建的画图工具数据
@@ -81158,6 +81215,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
81158
81215
  for(var i=currentLength-1;i>=count;--i)
81159
81216
  {
81160
81217
  this.DeleteIndexPaint(i);
81218
+ this.DeleteChartPaintExtend({WindowIndex:i});
81161
81219
  var item=this.Frame.SubFrame[i].Frame;
81162
81220
  if (item.ClearToolbar) item.ClearToolbar();
81163
81221
 
@@ -81397,6 +81455,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
81397
81455
 
81398
81456
  var delFrame=this.Frame.SubFrame[id].Frame;
81399
81457
  this.DeleteIndexPaint(id);
81458
+ this.DeleteChartPaintExtend({WindowIndex:id});
81400
81459
  this.Frame.SubFrame[id].Frame.ClearToolbar();
81401
81460
 
81402
81461
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);
@@ -81994,11 +82053,17 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
81994
82053
 
81995
82054
  if (this.NetworkFilter)
81996
82055
  {
82056
+ var callCation=
82057
+ {
82058
+ Before:this.IsShowMultiDayBeforeData ,
82059
+ After:this.IsShowMultiDayAfterData
82060
+ } //集合竞价
82061
+
81997
82062
  var obj=
81998
82063
  {
81999
82064
  Name:'MinuteChartContainer::RequestHistoryMinuteData', //类名::函数
82000
82065
  Explain:'多日分时数据',
82001
- Request:{ Url:self.HistoryMinuteApiUrl, Data:{daycount:self.DayCount, symbol:self.Symbol}, Type:'POST' },
82066
+ Request:{ Url:self.HistoryMinuteApiUrl, Data:{daycount:self.DayCount, symbol:self.Symbol, callcation:callCation }, Type:'POST' },
82002
82067
  Self:this,
82003
82068
  PreventDefault:false
82004
82069
  };
@@ -82378,11 +82443,9 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
82378
82443
  dateRange=this.SourceData.GetDateRange();
82379
82444
  }
82380
82445
 
82381
- var callCation=
82382
- {
82383
- Before:(this.IsShowBeforeData && this.DayCount===1),
82384
- After:(this.IsShowAfterData && this.DayCount===1)
82385
- } //集合竞价
82446
+ var callCation={ Before:this.IsShowBeforeData, After:this.IsShowAfterData } //集合竞价
82447
+ if (this.DayCount>1) callCation={ Before:this.IsShowMultiDayBeforeData, After:this.IsShowMultiDayAfterData } //多日集合竞价
82448
+
82386
82449
  var obj=
82387
82450
  {
82388
82451
  Name:'MinuteChartContainer::RequestMinuteData', //类名::函数名
@@ -135567,7 +135630,7 @@ function HQChartScriptWorker()
135567
135630
 
135568
135631
 
135569
135632
 
135570
- var HQCHART_VERSION="1.1.13268";
135633
+ var HQCHART_VERSION="1.1.13277";
135571
135634
 
135572
135635
  function PrintHQChartVersion()
135573
135636
  {