hqchart 1.1.14947 → 1.1.14956
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.
- package/lib/umychart.vue.js +54 -33
- package/package.json +1 -1
- package/src/jscommon/umychart.NetworkFilterTest.js +287 -33
- package/src/jscommon/umychart.js +285 -60
- package/src/jscommon/umychart.testdata.js +286 -32
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +286 -61
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.NetworkFilterTest.vue.js +287 -33
- package/src/jscommon/umychart.vue/umychart.vue.js +286 -61
package/lib/umychart.vue.js
CHANGED
|
@@ -2358,7 +2358,7 @@ if(this.ChangeKLineDrawType&¶m!=null)this.ChangeKLineDrawType(param,aryArgs[
|
|
|
2358
2358
|
if(this.ChangePriceGap&&IFrameSplitOperator.IsBool(aryArgs[0])){if(aryArgs[0]==false){this.ChangePriceGap({Enable:aryArgs[0]});}else{if(IFrameSplitOperator.IsNumber(aryArgs[1]))this.ChangePriceGap({Enable:aryArgs[0],Count:aryArgs[1]});}}break;case JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID:if(aryArgs[1]===true){if(this.OverlaySymbol&&aryArgs[0])this.OverlaySymbol(aryArgs[0]);}else if(aryArgs[1]===false){if(this.DeleteOverlaySymbol&&aryArgs[0])this.DeleteOverlaySymbol(aryArgs[0]);}break;case JSCHART_MENU_ID.CMD_DELETE_ALL_OVERLAY_SYMBOL_ID:if(this.ClearOverlaySymbol)this.ClearOverlaySymbol();break;case JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID:if(this.ChangeCoordinateType&&aryArgs[0])this.ChangeCoordinateType(aryArgs[0]);break;case JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID:if(aryArgs[0]&&IFrameSplitOperator.IsBool(aryArgs[1])){if(aryArgs[1]==true&&this.AddKLineInfo)this.AddKLineInfo(aryArgs[0],true);else if(aryArgs[1]==false&&this.DeleteKLineInfo)this.DeleteKLineInfo(aryArgs[0]);}break;case JSCHART_MENU_ID.CMD_DELETE_ALL_KLINE_INFO_ID:if(this.ClearKLineInfo)this.ClearKLineInfo();break;case JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID:if(param!=null){this.DragMode=param;if(this.DragMode==1&&IFrameSplitOperator.IsBool(aryArgs[1]))//shift+左键拖动
|
|
2359
2359
|
this.KLineDragConfig.EnableShfit=aryArgs[1];}break;case JSCHART_MENU_ID.CMD_CHANGE_BG_SPLIT_ID:if(IFrameSplitOperator.IsBool(srcParam)){if(srcParam){this.CreateExtendChart("SessionBreaksPaint",{});this.Draw();}else{var finder=this.GetExtendChartByClassName("SessionBreaksPaint");if(finder){this.DeleteExtendChartByID(finder.Chart.ID);this.Draw();}}}break;case JSCHART_MENU_ID.CMD_SHOW_DRAWTOOL_ID:if(!this.IsShowDrawToolDialog())this.ShowDrawToolDialog();break;case JSCHART_MENU_ID.CMD_SHOW_STOCKCHIP_ID://var option={Name:'筹码分布', ShowType:1, Width:230 };
|
|
2360
2360
|
var stockChip=this.GetStockChipChart();if(stockChip)return;if(srcParam){var extendChart=this.CreateExtendChart(srcParam,aryArgs[1]);//创建扩展图形
|
|
2361
|
-
this.SetSizeChange(true);this.Draw();}break;case JSCHART_MENU_ID.CMD_HIDE_STOCKCHIP_ID:if(this.DeleteStockChipChart)this.DeleteStockChipChart();break;case JSCHART_MENU_ID.CMD_CHIP_CHART_SETTING_ID:var stockChip=this.GetStockChipChart();if(!stockChip)return;if(param!=null){stockChip.Chart.ShowType=param;this.SetSizeChange(true);this.Draw();}break;case JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID:if(this.ChangeDayCount&¶m!=null)this.ChangeDayCount(param);break;case JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID:if(this.ShowCallAuctionData&&srcParam){var left=null,right=null;if(IFrameSplitOperator.IsBool(srcParam.Left))left=srcParam.Left;if(IFrameSplitOperator.IsBool(srcParam.Right))right=srcParam.Right;this.ShowCallAuctionData({Left:left,Right:right});}break;case JSCHART_MENU_ID.CMD_CHANGE_BASELINE_ID:if(this.ChangeBaselineType&&IFrameSplitOperator.IsNumber(param))this.ChangeBaselineType(param);break;case JSCHART_MENU_ID.CMD_SELECTED_ZOOM_ID:if(this.ShowSelectData&&srcParam)this.ShowSelectData(srcParam);break;case JSCHART_MENU_ID.CMD_SELECTED_SUMMARY_ID:this.OnCMDSelectedSummary(srcParam,aryArgs[1]);break;case JSCHART_MENU_ID.CMD_SHOW_INDEX_ID://显示隐藏指标 [0]=windowIndex [1]=0=自动 1=隐藏 2=显示
|
|
2361
|
+
this.SetSizeChange(true);this.Draw();}break;case JSCHART_MENU_ID.CMD_HIDE_STOCKCHIP_ID:if(this.DeleteStockChipChart)this.DeleteStockChipChart();break;case JSCHART_MENU_ID.CMD_CHIP_CHART_SETTING_ID:var stockChip=this.GetStockChipChart();if(!stockChip)return;if(param!=null){stockChip.Chart.ShowType=param;this.SetSizeChange(true);this.Draw();}break;case JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID:if(this.ChangeDayCount&¶m!=null)this.ChangeDayCount(param);break;case JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID:if(this.ShowCallAuctionData&&srcParam){var left=null,right=null;if(IFrameSplitOperator.IsBool(srcParam.Left))left=srcParam.Left;if(IFrameSplitOperator.IsBool(srcParam.Right))right=srcParam.Right;var multiDay=null;if(srcParam.MultiDay){var item=srcParam.MultiDay;multiDay={};if(IFrameSplitOperator.IsBool(item.Left))multiDay.Left=item.Left;if(IFrameSplitOperator.IsBool(item.Right))multiDay.Right=item.Right;}this.ShowCallAuctionData({Left:left,Right:right,MultiDay:multiDay});}break;case JSCHART_MENU_ID.CMD_CHANGE_BASELINE_ID:if(this.ChangeBaselineType&&IFrameSplitOperator.IsNumber(param))this.ChangeBaselineType(param);break;case JSCHART_MENU_ID.CMD_SELECTED_ZOOM_ID:if(this.ShowSelectData&&srcParam)this.ShowSelectData(srcParam);break;case JSCHART_MENU_ID.CMD_SELECTED_SUMMARY_ID:this.OnCMDSelectedSummary(srcParam,aryArgs[1]);break;case JSCHART_MENU_ID.CMD_SHOW_INDEX_ID://显示隐藏指标 [0]=windowIndex [1]=0=自动 1=隐藏 2=显示
|
|
2362
2362
|
if(param==null||!IFrameSplitOperator.IsNumber(aryArgs[1]))return false;var windowIndex=param,showType=aryArgs[1];var script=this.WindowIndex[windowIndex];if(!script)return false;if(showType==1)script.IsShow=false;else if(showType==2)script.IsShow=true;else script.IsShow=!script.IsShow;this.UpdateWindowIndex(windowIndex);break;case JSCHART_MENU_ID.CMD_SHOW_OVERLAY_INDEX_ID://显示隐藏叠加指标 [0]=indexGuid [1]=0=自动 1=隐藏 2=显示
|
|
2363
2363
|
if(!srcParam||!IFrameSplitOperator.IsNumber(aryArgs[1]))return false;var indexGuid=srcParam,showType=aryArgs[1];var overlay=this.GetOverlayIndexByIdentify(indexGuid);if(!overlay||!overlay.OverlayItem||!overlay.OverlayItem.Script)return false;var script=overlay.OverlayItem.Script;if(showType==1)script.IsShow=false;else if(showType==2)script.IsShow==true;else script.IsShow=!script.IsShow;this.UpdateOverlayIndex(indexGuid);break;case JSCHART_MENU_ID.CMD_DELETE_OVERLAY_INDEX_ID:if(srcParam&&this.DeleteOverlayWindowsIndex)this.DeleteOverlayWindowsIndex(srcParam);break;case JSCHART_MENU_ID.CMD_SHOW_OVERLAY_Y_AXIS_ID:if(!srcParam||!IFrameSplitOperator.IsNumber(aryArgs[1]))return false;if(!this.GetOverlayIndexByIdentify)return false;var indexGuid=srcParam,showType=aryArgs[1];var finder=this.GetOverlayIndexByIdentify(indexGuid);if(!finder||!finder.OverlayItem)return false;var frame=finder.OverlayItem.Frame;if(showType==1)frame.IsShow=false;else if(showType==2)frame.IsShow==true;else frame.IsShow=!frame.IsShow;this.UpdataDataoffset();//更新数据偏移
|
|
2364
2364
|
this.UpdateFrameMaxMin();//调整坐标最大 最小值
|
|
@@ -2396,7 +2396,7 @@ event.Callback(event,data,this);if(data.PreventDefault)return;}};this.ResetOverl
|
|
|
2396
2396
|
this.OnChangeCorssCursorStatus=function(data,obj){if(data.Type==1){if(!data.IsShowCorss)//十字光标隐藏
|
|
2397
2397
|
{//清空当前鼠标坐标
|
|
2398
2398
|
this.LastPoint.X=null;this.LastPoint.Y=null;this.HideTooltip();this.CloseTooltipDialog();}else{if(IFrameSplitOperator.IsNumber(data.X)&&IFrameSplitOperator.IsNumber(data.Y)){//设置鼠标位置
|
|
2399
|
-
if(this.LastPoint
|
|
2399
|
+
if(this.LastPoint&&(!IFrameSplitOperator.IsNumber(this.LastPoint.X)||!IFrameSplitOperator.IsNumber(this.LastPoint.Y))){this.LastPoint.X=data.X;this.LastPoint.Y=data.Y;}}}}};//手动更新指标 [ {ID:主图指标窗口索引, OverlayID:叠加指标ID }]
|
|
2400
2400
|
this.UpdateWindowIndexV2=function(aryIndex,option){if(!this.Frame||!this.Frame.SubFrame)return false;var kData=this.GetKData();if(!kData||!IFrameSplitOperator.IsNonEmptyArray(kData.Data))return false;if(!IFrameSplitOperator.IsNonEmptyArray(aryIndex))return false;var setMainIndex=new _set2.default();//主图指标
|
|
2401
2401
|
var setOverlayIndex=new _set2.default();//附图指标
|
|
2402
2402
|
for(var i=0;i<aryIndex.length;++i){var item=aryIndex[i];if(!item)continue;if(IFrameSplitOperator.IsNumber(item.ID))setMainIndex.add(item.ID);if(item.OverlayID)setOverlayIndex.add(item.OverlayID);}if(setMainIndex.size<=0&&setOverlayIndex.size<0)return false;//K线数据
|
|
@@ -4238,7 +4238,7 @@ if(!bShowColorBar)this.Canvas.strokeStyle=this.GetMinuteBarColor(price,yPrice);t
|
|
|
4238
4238
|
this.GetMinuteBarColor=function(price,yPrice){if(this.BarColorType==1)//通达信模式
|
|
4239
4239
|
{if(price>yPrice)return this.UpColor;else if(price<yPrice)return this.DownColor;else return this.UnchangeColor;}else//东方财富模式
|
|
4240
4240
|
{return price>=yPrice?this.UpColor:this.DownColor;}};this.DrawBeforeOpen=function(){if(this.ChartBorder.LeftExtendWidth<10)return;if(!this.BeforeOpenData)return;this.DrawCallAuction(-1,this.BeforeOpenData,true);};this.DrawAfterClose=function(){if(this.ChartBorder.RightExtendWidth<10)return;if(!this.AfterCloseData)return;this.DrawCallAuction(-1,this.AfterCloseData,false);};this.DrawMultiDayBeforeOpen=function(){if(this.ChartBorder.MultiDayMinute.Count<=1||this.ChartBorder.MultiDayMinute.Left<=0)return;if(!this.MultiDayBeforeOpenData)return;var offset=0,showDayCount=this.MultiDayBeforeOpenData.length;if(this.DayOffset){if(IFrameSplitOperator.IsNumber(this.DayOffset.Offset))offset=this.DayOffset.Offset;if(IFrameSplitOperator.IsNumber(this.DayOffset.ShowDayCount))showDayCount=this.DayOffset.ShowDayCount;}for(var i=offset,j=0;i<this.MultiDayBeforeOpenData.length&&j<showDayCount;++i,++j){var dayItem=this.MultiDayBeforeOpenData[i];this.DrawCallAuction(j,dayItem,true);}};this.DrawMultiDayAfterClose=function(){if(this.ChartBorder.MultiDayMinute.Count<=1||this.ChartBorder.MultiDayMinute.Right<=0)return;if(!this.MultiDayAfterCloseData)return;var offset=0,showDayCount=this.MultiDayAfterCloseData.length;if(this.DayOffset){if(IFrameSplitOperator.IsNumber(this.DayOffset.Offset))offset=this.DayOffset.Offset;if(IFrameSplitOperator.IsNumber(this.DayOffset.ShowDayCount))showDayCount=this.DayOffset.ShowDayCount;}for(var i=offset,j=0;i<this.MultiDayAfterCloseData.length&&j<showDayCount;++i,++j){var dayItem=this.MultiDayAfterCloseData[i];this.DrawCallAuction(j,dayItem,false);}};this.DrawCallAuction=function(indexDay,callAutionData,isBeforeOpen){if(!callAutionData)return;callAutionData.Index=indexDay;var border=this.GetBorder();var isHScreen=this.ChartFrame.IsHScreen===true;var yPrice=this.YClose;//上一分钟的价格
|
|
4241
|
-
var yBottom=this.ChartFrame.GetYFromData(0);var yBottom=border.BottomEx;if(isHScreen)yBottom=border.LeftEx;var unit=this.GetVolUnit();if(callAutionData.Ver==1.0){for(var i
|
|
4241
|
+
var yBottom=this.ChartFrame.GetYFromData(0);var yBottom=border.BottomEx;if(isHScreen)yBottom=border.LeftEx;var unit=this.GetVolUnit();if(callAutionData.Ver==1.0){for(var i=0;i<callAutionData.Data.length;++i){var item=callAutionData.Data[i];if(!item||!IFrameSplitOperator.IsNonEmptyArray(item.Vol)||!IFrameSplitOperator.IsNumber(item.Vol[0]))continue;if(isBeforeOpen){var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[0]/unit);}else{var x=this.ChartFrame.GetRightExtendXFromIndex(i,callAutionData);var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[0]/unit);}this.Canvas.strokeStyle=item.Price>=yPrice?this.UpColor:this.DownColor;this.Canvas.beginPath();if(isHScreen){this.Canvas.moveTo(y,ToFixedPoint(x));this.Canvas.lineTo(yBottom,ToFixedPoint(x));}else{this.Canvas.moveTo(ToFixedPoint(x),y);this.Canvas.lineTo(ToFixedPoint(x),yBottom);}this.Canvas.stroke();if(item.Price)yPrice=item.Price;}}else if(callAutionData.Ver==2.0||callAutionData.Ver==3.0){var range={Max:callAutionData.VolMax,Min:callAutionData.VolMin};for(var i=0;i<callAutionData.Data.length;++i){var item=callAutionData.Data[i];if(!item)continue;if(item.Vol&&IFrameSplitOperator.IsPlusNumber(item.Vol[0])){if(isBeforeOpen){var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[0]/unit,false,{Range:range});}else{var x=this.ChartFrame.GetRightExtendXFromIndex(i,callAutionData);if(this.ShareAfterVol==1)var y=this.ChartFrame.GetYFromData(item.Vol[0]/unit);else var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[0]/unit,false,{Range:range});}this.Canvas.strokeStyle=this.GetBarColor(item.ColorID);this.Canvas.beginPath();if(isHScreen){this.Canvas.moveTo(y,ToFixedPoint(x));this.Canvas.lineTo(yBottom,ToFixedPoint(x));}else{this.Canvas.moveTo(ToFixedPoint(x),y);this.Canvas.lineTo(ToFixedPoint(x),yBottom);}this.Canvas.stroke();}if(item.Vol&&IFrameSplitOperator.IsPlusNumber(item.Vol[1])){if(isBeforeOpen){var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[1]/unit,false,{Range:range});}else{var x=this.ChartFrame.GetRightExtendXFromIndex(i,callAutionData);if(this.ShareAfterVol==1)var y=this.ChartFrame.GetYFromData(item.Vol[1]/unit);else var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[1]/unit,false,{Range:range});}this.Canvas.strokeStyle=this.GetBarColor(item.ColorID);this.Canvas.beginPath();if(isHScreen){y-=yBottom;y=border.RightEx-y;this.Canvas.moveTo(y,ToFixedPoint(x));this.Canvas.lineTo(border.RightEx,ToFixedPoint(x));}else{y-=yBottom;y=border.TopEx-y;this.Canvas.moveTo(ToFixedPoint(x),y);this.Canvas.lineTo(ToFixedPoint(x),border.TopEx);}this.Canvas.stroke();}}}};this.GetBarColor=function(id){switch(id){case 0:return this.UnchangeColor;case 1:return this.UpColor;case 2:return this.DownColor;}if(this.BeforeVolColor&&Array.isArray(this.BeforeVolColor)){var index=id-3;if(index>=0&&index<this.BeforeVolColor.length)return this.BeforeVolColor[index];}return this.UnchangeColor;};this.GetMaxMin=function(){var unit=this.GetVolUnit();var xPointCount=this.ChartFrame.XPointCount;var start=this.Data.DataOffset;if(this.ChartFrame.GlobalOption&&this.ChartFrame.GlobalOption.IsValueFullRange===true){xPointCount=this.Data.Data.length;start=0;}var range={};range.Min=0;range.Max=null;for(var i=start,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var item=this.Data.Data[i];if(!item||!item.Vol)continue;var value=item.Vol/unit;if(range.Max==null||range.Max<value)range.Max=value;}if(this.ShareAfterVol==1){this.GetAfterCloseMaxMin(range);this.GetMultiDayAfterCloseMaxMin(range);}return range;};this.GetAfterCloseMaxMin=function(range){if(this.ChartBorder.RightExtendWidth<10)return;if(!this.AfterCloseData)return;var callAutionData=this.AfterCloseData;if(range.Max==null||range.Max<callAutionData.VolMax)range.Max=callAutionData.VolMax;};this.GetMultiDayAfterCloseMaxMin=function(range){if(this.ChartBorder.MultiDayMinute.Count<=1||this.ChartBorder.MultiDayMinute.Right<=0)return;if(!this.MultiDayAfterCloseData)return;for(var i=0;i<this.MultiDayAfterCloseData.length;++i){var callAutionData=this.MultiDayAfterCloseData[i];if(callAutionData.Ver==2.0||callAutionData.Ver==3.0){if(range.Max==null||range.Max<callAutionData.VolMax)range.Max=callAutionData.VolMax;}}};}//只画集合竞价柱子
|
|
4242
4242
|
function ChartMinuteBarCallAuction(){this.newMethod=ChartMinuteVolumBar;//派生
|
|
4243
4243
|
this.newMethod();delete this.newMethod;this.ClassName="ChartMinuteBarCallAuction";this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;this.DrawBeforeOpen();this.DrawMultiDayBeforeOpen();this.DrawAfterClose();this.DrawMultiDayAfterClose();};}function ChartErrorMessage(){this.newMethod=IChartPainting;//派生
|
|
4244
4244
|
this.newMethod();delete this.newMethod;this.ClassName='ChartErrorMessage';//类名
|
|
@@ -4558,7 +4558,8 @@ this.DrawLead=function(){if(!this.LeadData)return;var isHScreen=this.ChartFrame.
|
|
|
4558
4558
|
//var chartright=this.ChartBorder.GetRight();
|
|
4559
4559
|
var xPointCount=this.ChartFrame.XPointCount;var minuteCount=this.ChartFrame.MinuteCount;var bottom=this.ChartBorder.GetBottomEx();var top=this.ChartBorder.GetTopEx();if(isHScreen===true)top=this.ChartBorder.GetRightEx();if(xPointCount>minuteCount)return;var aryLead=[];//{X: Value:}
|
|
4560
4560
|
var max=null,min=null;var yCenter=this.ChartFrame.GetYFromData(this.YClose);var leadHeight=(yCenter-top)/3;var data=this.LeadData;for(var i=data.DataOffset,j=0;i<data.Data.length&&j<xPointCount;++i,++j){var value=data.Data[i];if(!IFrameSplitOperator.IsNumber(value))continue;if(value==0)continue;var x=this.ChartFrame.GetXFromIndex(j);if(max==null||max<value)max=value;if(min==null||min>value)min=value;aryLead.push({X:x,Value:value});}if(aryLead.length<=0)return;var maxValue=Math.max(Math.abs(max),Math.abs(min));for(var i in aryLead){var item=aryLead[i];if(item.Value>0)this.Canvas.strokeStyle=this.UpColor;else this.Canvas.strokeStyle=this.DownColor;var y=yCenter-item.Value*leadHeight/maxValue;var x=ToFixedPoint(item.X);this.Canvas.beginPath();if(isHScreen===true){this.Canvas.moveTo(yCenter,x);this.Canvas.lineTo(y,x);}else{this.Canvas.moveTo(x,yCenter);this.Canvas.lineTo(x,y);}this.Canvas.stroke();}};this.DrawBeforeOpen=function(){if(this.ChartBorder.LeftExtendWidth<10)return;if(!this.BeforeOpenData)return;this.DrawCallAuction(-1,this.BeforeOpenData,true);};this.DrawAfterClose=function(){if(this.ChartBorder.RightExtendWidth<10)return;if(!this.AfterCloseData)return;this.DrawCallAuction(-1,this.AfterCloseData,false);};this.DrawMultiDayBeforeOpen=function(){if(this.ChartBorder.MultiDayMinute.Count<=1||this.ChartBorder.MultiDayMinute.Left<=0)return;if(!this.MultiDayBeforeOpenData)return;var offset=0,showDayCount=this.MultiDayBeforeOpenData.length;if(this.DayOffset){if(IFrameSplitOperator.IsNumber(this.DayOffset.Offset))offset=this.DayOffset.Offset;if(IFrameSplitOperator.IsNumber(this.DayOffset.ShowDayCount))showDayCount=this.DayOffset.ShowDayCount;}for(var i=offset,j=0;i<this.MultiDayBeforeOpenData.length&&j<showDayCount;++i,++j){var dayItem=this.MultiDayBeforeOpenData[i];this.DrawCallAuction(j,dayItem,true);}};this.DrawMultiDayAfterClose=function(){if(this.ChartBorder.MultiDayMinute.Count<=1||this.ChartBorder.MultiDayMinute.Right<=0)return;if(!this.MultiDayAfterCloseData)return;var offset=0,showDayCount=this.MultiDayAfterCloseData.length;if(this.DayOffset){if(IFrameSplitOperator.IsNumber(this.DayOffset.Offset))offset=this.DayOffset.Offset;if(IFrameSplitOperator.IsNumber(this.DayOffset.ShowDayCount))showDayCount=this.DayOffset.ShowDayCount;}for(var i=offset,j=0;i<this.MultiDayAfterCloseData.length&&j<showDayCount;++i,++j){var dayItem=this.MultiDayAfterCloseData[i];this.DrawCallAuction(j,dayItem,false);}};this.DrawCallAuction=function(indexDay,callAutionData,isBeforeOpen){if(!callAutionData)return;callAutionData.Index=indexDay;var isHScreen=this.ChartFrame.IsHScreen===true;var bFirstPoint=true;var drawCount=0;var callAutionInfo={TotalCount:callAutionData.TotalCount};if(callAutionData.Ver==3.0)//均线
|
|
4561
|
-
{for(var i=0;i<callAutionData.Data.length;++i){var item=callAutionData.Data[i];if(!item||!IFrameSplitOperator.IsNumber(item.AvPrice))continue;if(isBeforeOpen){var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);var y=this.ChartFrame.GetLeftExtendYFromData(item.AvPrice);}else{var x=this.ChartFrame.GetRightExtendXFromIndex(i,callAutionData);var y=this.ChartFrame.GetRightExtendYFromData(item.AvPrice);}if(bFirstPoint){this.Canvas.strokeStyle=this.BeforeAvPriceColor;this.Canvas.beginPath();if(isHScreen)this.Canvas.moveTo(y,x);else this.Canvas.moveTo(x,y);bFirstPoint=false;}else{if(isHScreen)this.Canvas.lineTo(y,x);else this.Canvas.lineTo(x,y);}++drawCount;}if(drawCount>0){this.Canvas.stroke();}}var bFirstPoint=true;var drawCount=0;var aryPoint=[];for(var i=0;i<callAutionData.Data.length;++i){var item=callAutionData.Data[i];if(!item||!IFrameSplitOperator.IsNumber(item.Price)){if(i==0&&isBeforeOpen
|
|
4561
|
+
{for(var i=0;i<callAutionData.Data.length;++i){var item=callAutionData.Data[i];if(!item||!IFrameSplitOperator.IsNumber(item.AvPrice))continue;if(isBeforeOpen){var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);var y=this.ChartFrame.GetLeftExtendYFromData(item.AvPrice);}else{var x=this.ChartFrame.GetRightExtendXFromIndex(i,callAutionData);var y=this.ChartFrame.GetRightExtendYFromData(item.AvPrice);}if(bFirstPoint){this.Canvas.strokeStyle=this.BeforeAvPriceColor;this.Canvas.beginPath();if(isHScreen)this.Canvas.moveTo(y,x);else this.Canvas.moveTo(x,y);bFirstPoint=false;}else{if(isHScreen)this.Canvas.lineTo(y,x);else this.Canvas.lineTo(x,y);}++drawCount;}if(drawCount>0){this.Canvas.stroke();}}var bFirstPoint=true;var drawCount=0;var aryPoint=[];for(var i=0;i<callAutionData.Data.length;++i){var item=callAutionData.Data[i];if(!item||!IFrameSplitOperator.IsNumber(item.Price)){if(i==0&&isBeforeOpen){//盘前集合竞价起始点为昨收或昨结算
|
|
4562
|
+
var price=callAutionData.YClose;if(IFrameSplitOperator.IsNumber(callAutionData.YClearing))price=callAutionData.YClearing;if(IFrameSplitOperator.IsNumber(price)){var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);var y=this.ChartFrame.GetLeftExtendYFromData(price);this.Canvas.strokeStyle=this.BeforeLineColor;this.Canvas.beginPath();if(isHScreen)this.Canvas.moveTo(y,x);else this.Canvas.moveTo(x,y);bFirstPoint=false;}}continue;}if(isBeforeOpen){var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);var y=this.ChartFrame.GetLeftExtendYFromData(item.Price);}else{var x=this.ChartFrame.GetRightExtendXFromIndex(i,callAutionData);var y=this.ChartFrame.GetRightExtendYFromData(item.Price);}if(bFirstPoint){this.Canvas.strokeStyle=isBeforeOpen?this.BeforeLineColor:this.AfterLineColor;this.Canvas.beginPath();if(isHScreen)this.Canvas.moveTo(y,x);else this.Canvas.moveTo(x,y);bFirstPoint=false;aryPoint.push({X:x,Y:y});}else{if(isHScreen)this.Canvas.lineTo(y,x);else this.Canvas.lineTo(x,y);aryPoint.push({X:x,Y:y});}var dateTime=item.Date*1000000+item.Time;this.UpdateLastPoint(dateTime,x,y,{Value:item.Price,Index:i,Date:item.Date,Time:item.Time,Type:isBeforeOpen?1:2,Explain:isBeforeOpen?"盘前":"盘后"});++drawCount;}if(drawCount>0){this.Canvas.stroke();}if(callAutionData.Ver==2.0&&this.BeforePoint.Radius>0){this.Canvas.fillStyle=isBeforeOpen?this.BeforePoint.Color:this.AfterPoint.Color;for(var i in aryPoint){var item=aryPoint[i];this.Canvas.beginPath();if(isHScreen)this.Canvas.arc(item.Y,item.X,this.BeforePoint.Radius,0,2*Math.PI);else this.Canvas.arc(item.X,item.Y,this.BeforePoint.Radius,0,2*Math.PI);this.Canvas.fill();}}};this.FindColorLineItem=function(minuteItem){if(!minuteItem||!this.ColorLineData)return null;for(var i in this.ColorLineData){var item=this.ColorLineData[i];if(item.Date==minuteItem.Date&&minuteItem.Time>=item.Start&&minuteItem.Time<=item.End){return item;}}return null;};//TODO:这个函数比较耗时间 后面再优化吧
|
|
4562
4563
|
this.DrawColorLine=function(){if(!this.ColorLineData||!this.Source||!this.Data)return;var isHScreen=this.ChartFrame.IsHScreen===true;var border=this.ChartBorder.GetBorder();var xPointCount=this.ChartFrame.XPointCount;var minuteCount=this.ChartFrame.MinuteCount;var data=this.Data;var bFirstPoint=true;var ptLast={};//最后一个点
|
|
4563
4564
|
var ptFirst={};var drawCount=0;var preColor=null;this.Canvas.save();for(var i=data.DataOffset,j=0;i<data.Data.length&&j<xPointCount;++i,++j){var value=null;value=data.Data[i];var item=this.Source.Data[i];if(!value||!item)continue;var colorItem=this.FindColorLineItem(item);if(!colorItem){if(drawCount>0){this.Canvas.stroke();bFirstPoint=true;}continue;}if(preColor&&preColor!=colorItem.Color){this.Canvas.stroke();bFirstPoint=true;/*
|
|
4564
4565
|
this.Canvas.strokeStyle=colorItem.Color;
|
|
@@ -8930,7 +8931,7 @@ this.GetRightMenuData=function(frameID,option){var windowCount=this.Frame.SubFra
|
|
|
8930
8931
|
var aryOverlaySymbol=[];//叠加的股票列表
|
|
8931
8932
|
for(var i=0;i<this.OverlayChartPaint.length;++i){var item=this.OverlayChartPaint[i];if(item&&item.Symbol)aryOverlaySymbol.push(item.Symbol);}var bShowCorss=false;//十字光标十字线
|
|
8932
8933
|
var bCorssDrawCloseLine=false;//十字光标只能画在走势图价格线上
|
|
8933
|
-
var bCorssDrawVaildTime=false;var bCorssDrawPoint=false;var bCorssBCClick=false;if(this.ChartCorssCursor){bShowCorss=this.ChartCorssCursor.IsShowCorss;bCorssDrawCloseLine=this.ChartCorssCursor.IsOnlyDrawMinute;bCorssDrawVaildTime=this.ChartCorssCursor.IsFixXLastTime;bCorssDrawPoint=this.ChartCorssCursor.CorssPointConfig.Enable;bCorssBCClick=this.ChartCorssCursor.EnableDBClick;}var bRButtonSelectRect=false,bLButtonSelectRect=false;if(this.ChartDragSelectRect){bRButtonSelectRect=this.ChartDragSelectRect.EnableRButton;bLButtonSelectRect=this.ChartDragSelectRect.EnableLButton;}var bShowBuySellBar=this.IsShowMinuteBuySellBar();var minItem=null;if(frameID>=0&&option&&IFrameSplitOperator.IsNumber(option.CursorIndex)){var kData=this.GetKData();if(kData&&IFrameSplitOperator.IsNonEmptyArray(kData.Data)){var dataIndex=kData.DataOffset+parseInt(option.CursorIndex.toFixed(0));if(dataIndex>=0&&dataIndex<kData.Data.length)minItem=kData.Data[dataIndex];}}var aryMenu=[{Name:"叠加品种",SubMenu:[{Name:"上证指数",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["000001.sh",!aryOverlaySymbol.includes("000001.sh")]},Checked:aryOverlaySymbol.includes("000001.sh")},{Name:"深证成指",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["399001.sz",!aryOverlaySymbol.includes("399001.sz")]},Checked:aryOverlaySymbol.includes("399001.sz")},{Name:"中小板指",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["399005.sz",!aryOverlaySymbol.includes("399005.sz")]},Checked:aryOverlaySymbol.includes("399005.sz")},{Name:"创业板指",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["399006.sz",!aryOverlaySymbol.includes("399006.sz")]},Checked:aryOverlaySymbol.includes("399006.sz")},{Name:"沪深300",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["000300.sh",!aryOverlaySymbol.includes("000300.sh")]},Checked:aryOverlaySymbol.includes("000300.sh")}]},{Name:"多日分时图",SubMenu:[{Name:"当日分时图",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID,Args:[1]},Checked:this.DayCount==1},{Name:"最近2日",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID,Args:[2]},Checked:this.DayCount==2},{Name:"最近3日",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID,Args:[3]},Checked:this.DayCount==3},{Name:"最近4日",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID,Args:[4]},Checked:this.DayCount==4},{Name:"最近5日",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID,Args:[5]},Checked:this.DayCount==5},{Name:"基准线选择",SubMenu:[{Name:"最新昨收价",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_BASELINE_ID,Args:[0]},Checked:this.BaselineType===0},{Name:"多日前昨收价",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_BASELINE_ID,Args:[1]},Checked:this.BaselineType===1}]}]},{Name:"指标窗口个数",SubMenu:[{Name:"1个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[2]},Checked:3==windowCount},{Name:"2个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[3]},Checked:4==windowCount},{Name:"3个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[4]},Checked:5==windowCount},{Name:"4个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[5]},Checked:6==windowCount},{Name:"5个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[6]},Checked:7==windowCount}]},{Name:"指标切换",SubMenu:[{Name:"MACD",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"MACD"]}},{Name:"DMI",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"DMI"]}},{Name:"DMA",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"DMA"]}},{Name:"BRAR",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"BRAR"]}},{Name:"KDJ",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"KDJ"]}},{Name:"RSI",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"RSI"]}},{Name:"WR",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"WR"]}},{Name:"CCI",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"CCI"]}},{Name:"TRIX",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"TRIX"]}}]},{Name:"区间选择",SubMenu:[{Name:"左键区间选择",Data:{ID:JSCHART_MENU_ID.CMD_LBUTTON_SELECT_RECT_ID,Args:[!bLButtonSelectRect]},Checked:bLButtonSelectRect},{Name:"右键区间选择",Data:{ID:JSCHART_MENU_ID.CMD_RBUTTON_SELECT_RECT_ID,Args:[!bRButtonSelectRect]},Checked:bRButtonSelectRect}]},{Name:"十字光标",SubMenu:[{Name:"显示",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_CORSS_LINE_ID,Args:[!bShowCorss]},Checked:bShowCorss},{Name:"画在价格线上",Data:{ID:JSCHART_MENU_ID.CMD_CORSS_ON_CLOSE_LINE_ID,Args:[!bCorssDrawCloseLine]},Checked:bCorssDrawCloseLine},{Name:"画在有效X轴上",Data:{ID:JSCHART_MENU_ID.CMD_CORSS_ON_VAILD_TIME_ID,Args:[!bCorssDrawVaildTime]},Checked:bCorssDrawVaildTime},{Name:"画圆点",Data:{ID:JSCHART_MENU_ID.CMD_CORSS_POINT_ID,Args:[!bCorssDrawPoint]},Checked:bCorssDrawPoint},{Name:"双击显示/隐藏",Data:{ID:JSCHART_MENU_ID.CMD_CORSS_DBCLICK_ID,Args:[!bCorssBCClick]},Checked:bCorssBCClick}]},{Name:"其他设置",SubMenu:[{Name:"画图工具",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_DRAWTOOL_ID,Args:[]},Checked:this.IsShowDrawToolDialog()},{Name:"盘口分析",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_BUYSELL_BAR_ID,Args:[!bShowBuySellBar]},Checked:bShowBuySellBar},{Name:JSPopMenu.SEPARATOR_LINE_NAME},{Name:"语言设置",SubMenu:[{Name:"中文",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_LANGUAGE_ID,Args:["CN"]},Checked:this.LanguageID==JSCHART_LANGUAGE_ID.LANGUAGE_CHINESE_ID},{Name:"英语",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_LANGUAGE_ID,Args:["EN"]},Checked:this.LanguageID==JSCHART_LANGUAGE_ID.LANGUAGE_ENGLISH_ID},{Name:"繁体",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_LANGUAGE_ID,Args:["TC"]},Checked:this.LanguageID==JSCHART_LANGUAGE_ID.LANGUAGE_TRADITIONAL_CHINESE_ID}]},{Name:"区间选择样式",SubMenu:[{Name:"样式1(默认)",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_RECT_SHOW_MODE_ID,Args:[0]},Checked:0==this.ChartDragSelectRect.ShowMode},{Name:"样式2",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_RECT_SHOW_MODE_ID,Args:[1]},Checked:1==this.ChartDragSelectRect.ShowMode},{Name:"样式3",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_RECT_SHOW_MODE_ID,Args:[2]},Checked:2==this.ChartDragSelectRect.ShowMode}]},{Name:"K线浮动框",SubMenu:[{Name:"禁用",Data:{ID:JSCHART_MENU_ID.CMD_DIALOG_TOOLTIP_ATTRIBUTE,Args:[{Enable:false}]},Checked:!this.DialogTooltip},{Name:"样式1",Data:{ID:JSCHART_MENU_ID.CMD_DIALOG_TOOLTIP_ATTRIBUTE,Args:[{Enable:true,Style:0}]},Checked:this.DialogTooltip&&this.DialogTooltip.Style===0},{Name:"样式2",Data:{ID:JSCHART_MENU_ID.CMD_DIALOG_TOOLTIP_ATTRIBUTE,Args:[{Enable:true,Style:1}]},Checked:this.DialogTooltip&&this.DialogTooltip.Style===1}]}]}];if(MARKET_SUFFIX_NAME.IsSHSZStockA(this.Symbol)){var item={Name:"集合竞价",SubMenu:[]};var bShow=this.IsShowAfterData&&this.IsShowBeforeData;var subItem={Name:"盘后盘前(单日)",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID,Args:[{Left:!bShow,Right:!bShow}]},Checked:bShow};item.SubMenu.push(subItem);var subItem={Name:"盘前(单日)",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID,Args:[{Left:!this.IsShowBeforeData}]},Checked:this.IsShowBeforeData};item.SubMenu.push(subItem);var subItem={Name:"盘后(单日)",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID,Args:[{Right:!this.IsShowAfterData}]},Checked:this.IsShowAfterData};item.SubMenu.push(subItem);aryMenu.splice(4,0,item);}for(var i=0;i<aryMenu.length;++i){var item=aryMenu[i];if(item.Name=="叠加品种")//删除菜单
|
|
8934
|
+
var bCorssDrawVaildTime=false;var bCorssDrawPoint=false;var bCorssBCClick=false;if(this.ChartCorssCursor){bShowCorss=this.ChartCorssCursor.IsShowCorss;bCorssDrawCloseLine=this.ChartCorssCursor.IsOnlyDrawMinute;bCorssDrawVaildTime=this.ChartCorssCursor.IsFixXLastTime;bCorssDrawPoint=this.ChartCorssCursor.CorssPointConfig.Enable;bCorssBCClick=this.ChartCorssCursor.EnableDBClick;}var bRButtonSelectRect=false,bLButtonSelectRect=false;if(this.ChartDragSelectRect){bRButtonSelectRect=this.ChartDragSelectRect.EnableRButton;bLButtonSelectRect=this.ChartDragSelectRect.EnableLButton;}var bShowBuySellBar=this.IsShowMinuteBuySellBar();var minItem=null;if(frameID>=0&&option&&IFrameSplitOperator.IsNumber(option.CursorIndex)){var kData=this.GetKData();if(kData&&IFrameSplitOperator.IsNonEmptyArray(kData.Data)){var dataIndex=kData.DataOffset+parseInt(option.CursorIndex.toFixed(0));if(dataIndex>=0&&dataIndex<kData.Data.length)minItem=kData.Data[dataIndex];}}var aryMenu=[{Name:"叠加品种",SubMenu:[{Name:"上证指数",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["000001.sh",!aryOverlaySymbol.includes("000001.sh")]},Checked:aryOverlaySymbol.includes("000001.sh")},{Name:"深证成指",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["399001.sz",!aryOverlaySymbol.includes("399001.sz")]},Checked:aryOverlaySymbol.includes("399001.sz")},{Name:"中小板指",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["399005.sz",!aryOverlaySymbol.includes("399005.sz")]},Checked:aryOverlaySymbol.includes("399005.sz")},{Name:"创业板指",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["399006.sz",!aryOverlaySymbol.includes("399006.sz")]},Checked:aryOverlaySymbol.includes("399006.sz")},{Name:"沪深300",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["000300.sh",!aryOverlaySymbol.includes("000300.sh")]},Checked:aryOverlaySymbol.includes("000300.sh")}]},{Name:"多日分时图",SubMenu:[{Name:"当日分时图",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID,Args:[1]},Checked:this.DayCount==1},{Name:"最近2日",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID,Args:[2]},Checked:this.DayCount==2},{Name:"最近3日",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID,Args:[3]},Checked:this.DayCount==3},{Name:"最近4日",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID,Args:[4]},Checked:this.DayCount==4},{Name:"最近5日",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID,Args:[5]},Checked:this.DayCount==5},{Name:"基准线选择",SubMenu:[{Name:"最新昨收价",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_BASELINE_ID,Args:[0]},Checked:this.BaselineType===0},{Name:"多日前昨收价",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_BASELINE_ID,Args:[1]},Checked:this.BaselineType===1}]}]},{Name:"指标窗口个数",SubMenu:[{Name:"1个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[2]},Checked:3==windowCount},{Name:"2个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[3]},Checked:4==windowCount},{Name:"3个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[4]},Checked:5==windowCount},{Name:"4个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[5]},Checked:6==windowCount},{Name:"5个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[6]},Checked:7==windowCount}]},{Name:"指标切换",SubMenu:[{Name:"MACD",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"MACD"]}},{Name:"DMI",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"DMI"]}},{Name:"DMA",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"DMA"]}},{Name:"BRAR",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"BRAR"]}},{Name:"KDJ",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"KDJ"]}},{Name:"RSI",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"RSI"]}},{Name:"WR",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"WR"]}},{Name:"CCI",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"CCI"]}},{Name:"TRIX",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"TRIX"]}}]},{Name:"区间选择",SubMenu:[{Name:"左键区间选择",Data:{ID:JSCHART_MENU_ID.CMD_LBUTTON_SELECT_RECT_ID,Args:[!bLButtonSelectRect]},Checked:bLButtonSelectRect},{Name:"右键区间选择",Data:{ID:JSCHART_MENU_ID.CMD_RBUTTON_SELECT_RECT_ID,Args:[!bRButtonSelectRect]},Checked:bRButtonSelectRect}]},{Name:"十字光标",SubMenu:[{Name:"显示",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_CORSS_LINE_ID,Args:[!bShowCorss]},Checked:bShowCorss},{Name:"画在价格线上",Data:{ID:JSCHART_MENU_ID.CMD_CORSS_ON_CLOSE_LINE_ID,Args:[!bCorssDrawCloseLine]},Checked:bCorssDrawCloseLine},{Name:"画在有效X轴上",Data:{ID:JSCHART_MENU_ID.CMD_CORSS_ON_VAILD_TIME_ID,Args:[!bCorssDrawVaildTime]},Checked:bCorssDrawVaildTime},{Name:"画圆点",Data:{ID:JSCHART_MENU_ID.CMD_CORSS_POINT_ID,Args:[!bCorssDrawPoint]},Checked:bCorssDrawPoint},{Name:"双击显示/隐藏",Data:{ID:JSCHART_MENU_ID.CMD_CORSS_DBCLICK_ID,Args:[!bCorssBCClick]},Checked:bCorssBCClick}]},{Name:"其他设置",SubMenu:[{Name:"画图工具",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_DRAWTOOL_ID,Args:[]},Checked:this.IsShowDrawToolDialog()},{Name:"盘口分析",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_BUYSELL_BAR_ID,Args:[!bShowBuySellBar]},Checked:bShowBuySellBar},{Name:JSPopMenu.SEPARATOR_LINE_NAME},{Name:"语言设置",SubMenu:[{Name:"中文",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_LANGUAGE_ID,Args:["CN"]},Checked:this.LanguageID==JSCHART_LANGUAGE_ID.LANGUAGE_CHINESE_ID},{Name:"英语",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_LANGUAGE_ID,Args:["EN"]},Checked:this.LanguageID==JSCHART_LANGUAGE_ID.LANGUAGE_ENGLISH_ID},{Name:"繁体",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_LANGUAGE_ID,Args:["TC"]},Checked:this.LanguageID==JSCHART_LANGUAGE_ID.LANGUAGE_TRADITIONAL_CHINESE_ID}]},{Name:"区间选择样式",SubMenu:[{Name:"样式1(默认)",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_RECT_SHOW_MODE_ID,Args:[0]},Checked:0==this.ChartDragSelectRect.ShowMode},{Name:"样式2",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_RECT_SHOW_MODE_ID,Args:[1]},Checked:1==this.ChartDragSelectRect.ShowMode},{Name:"样式3",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_RECT_SHOW_MODE_ID,Args:[2]},Checked:2==this.ChartDragSelectRect.ShowMode}]},{Name:"K线浮动框",SubMenu:[{Name:"禁用",Data:{ID:JSCHART_MENU_ID.CMD_DIALOG_TOOLTIP_ATTRIBUTE,Args:[{Enable:false}]},Checked:!this.DialogTooltip},{Name:"样式1",Data:{ID:JSCHART_MENU_ID.CMD_DIALOG_TOOLTIP_ATTRIBUTE,Args:[{Enable:true,Style:0}]},Checked:this.DialogTooltip&&this.DialogTooltip.Style===0},{Name:"样式2",Data:{ID:JSCHART_MENU_ID.CMD_DIALOG_TOOLTIP_ATTRIBUTE,Args:[{Enable:true,Style:1}]},Checked:this.DialogTooltip&&this.DialogTooltip.Style===1}]}]}];if(MARKET_SUFFIX_NAME.IsSHSZStockA(this.Symbol)){var item={Name:"集合竞价",SubMenu:[]};var bShow=this.IsShowAfterData&&this.IsShowBeforeData;var subItem={Name:"盘后盘前(单日)",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID,Args:[{Left:!bShow,Right:!bShow}]},Checked:bShow};item.SubMenu.push(subItem);var subItem={Name:"盘前(单日)",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID,Args:[{Left:!this.IsShowBeforeData}]},Checked:this.IsShowBeforeData};item.SubMenu.push(subItem);var subItem={Name:"盘后(单日)",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID,Args:[{Right:!this.IsShowAfterData}]},Checked:this.IsShowAfterData};item.SubMenu.push(subItem);var bShow=this.IsShowMultiDayBeforeData&&this.IsShowMultiDayAfterData;var subItem={Name:"盘后盘前(多日)",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID,Args:[{MultiDay:{Left:!bShow,Right:!bShow}}]},Checked:bShow};item.SubMenu.push(subItem);var subItem={Name:"盘前(多日)",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID,Args:[{MultiDay:{Left:!this.IsShowMultiDayBeforeData}}]},Checked:this.IsShowMultiDayBeforeData};item.SubMenu.push(subItem);var subItem={Name:"盘后(多日)",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID,Args:[{MultiDay:{Right:!this.IsShowMultiDayAfterData}}]},Checked:this.IsShowMultiDayAfterData};item.SubMenu.push(subItem);aryMenu.splice(4,0,item);}for(var i=0;i<aryMenu.length;++i){var item=aryMenu[i];if(item.Name=="叠加品种")//删除菜单
|
|
8934
8935
|
{for(var j=0;j<item.SubMenu.length;++j){if(item.SubMenu[j].Checked){item.SubMenu.push({Name:JSPopMenu.SEPARATOR_LINE_NAME});item.SubMenu.push({Name:"取消叠加",Data:{ID:JSCHART_MENU_ID.CMD_DELETE_ALL_OVERLAY_SYMBOL_ID}});break;}}}else if(item.Name=="十字光标"){if(minItem){var bLocked=this.IsLockCorssCursor();if(bLocked)item.SubMenu.push({Name:"锁十字光标",Data:{ID:JSCHART_MENU_ID.CMD_UNLOCK_CROSSCURSOR},Checked:bLocked});else item.SubMenu.push({Name:"锁十字光标",Data:{ID:JSCHART_MENU_ID.CMD_LOCK_CROSSCURSOR,Args:[{KItem:{Date:minItem.Date,Time:minItem.Time},Draw:true}]},Checked:bLocked});}}}return aryMenu;};this.OnWheel=function(e){JSConsole.Chart.Log('[MinuteChartContainer::OnWheel]',e);if(this.ChartSplashPaint&&this.ChartSplashPaint.IsEnableSplash==true)return;var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;var isInClient=false;var rtClient={Left:this.Frame.ChartBorder.GetLeft(),Right:this.Frame.ChartBorder.GetRight(),Top:this.Frame.ChartBorder.GetTop(),Bottom:this.Frame.ChartBorder.GetBottom(),Width:this.Frame.ChartBorder.GetWidth(),Height:this.Frame.ChartBorder.GetHeight()};if(x>=rtClient.Left&&x<=rtClient.Right&&y>=rtClient.Top&&y<=rtClient.Bottom)isInClient=true;var bPreventDefault=false;if(this.OnWheel_ChangeDayCount(e,x,y))//ctrl+上下滚轴
|
|
8935
8936
|
{bPreventDefault=true;}else{if(this.OnWheel_ZoomUpDownFrameY(e,x,y))bPreventDefault=true;}if(bPreventDefault){if(e.preventDefault)e.preventDefault();else e.returnValue=false;}};//通过滚轴缩放Y轴
|
|
8936
8937
|
this.OnWheel_ZoomUpDownFrameY=function(e,x,y){if(!this.EnableYDrag.Wheel)return false;var frameID=this.Frame.PtInFrame(x,y);if(frameID<0)return false;var frame=this.Frame.SubFrame[frameID].Frame;var splitOper=frame.YSplitOperator;if(!splitOper||!splitOper.FixedYMaxMin)return false;//Y轴缩放状态下才有效
|
|
@@ -9075,31 +9076,41 @@ this.Frame.SetSizeChage(true);this.Draw();};this.HistoryMinuteDataToArray=functi
|
|
|
9075
9076
|
this.UpdateLatestMinuteData=function(data,date,stock){if(!this.DayData)return;for(var i=0;i<this.DayData.length;++i){var item=this.DayData[i];if(item.Date===date){item.Data=data;//整一天的数据都替换掉
|
|
9076
9077
|
if(stock&&IFrameSplitOperator.IsNumber(stock.yclose))item.YClose=stock.yclose;if(stock&&IFrameSplitOperator.IsNumber(stock.yclearing))item.YClearing=stock.yclearing;return;}}if(this.DayData.length>0){if(this.DayData[0].Date<date)//新的一天 插入
|
|
9077
9078
|
{var dayItem=new ChartData();dayItem.Date=date;dayItem.Data=data;if(stock&&IFrameSplitOperator.IsNumber(stock.yclose))dayItem.YClose=stock.yclose;if(stock&&IFrameSplitOperator.IsNumber(stock.yclearing))dayItem.YClearing=stock.yclearing;this.DayData.unshift(dayItem);}}};//更新最新的几条数据
|
|
9078
|
-
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===
|
|
9079
|
+
this.UpdateLatestMinuteDataV2=function(minuteData){if(!minuteData||!IFrameSplitOperator.IsNonEmptyArray(minuteData.Data))return;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===minuteData.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;}}};//请求分钟数据
|
|
9079
9080
|
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)){//期货的需要加上结算价
|
|
9080
9081
|
fields.push("clearing");fields.push("yclearing");}// 盘前数据(A股)
|
|
9081
9082
|
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;}//5档买卖盘
|
|
9082
9083
|
var bBuySellBar=this.IsShowMinuteBuySellBar();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//集合竞价
|
|
9083
9084
|
};if(this.DayCount>1)callCation={Before:this.IsShowMultiDayBeforeData,After:this.IsShowMultiDayAfterData//多日集合竞价
|
|
9084
|
-
};
|
|
9085
|
+
};callCation.Latest={Before:this.GetLatestBeforeOpenItem(),After:this.GetLatestAfterCloseItem()};//最新一条的盘前盘后数据
|
|
9086
|
+
var obj={Name:'MinuteChartContainer::RequestMinuteData',//类名::函数名
|
|
9085
9087
|
Explain:'最新分时数据',Request:{Url:self.MinuteApiUrl,Data:{field:fields,symbol:[self.Symbol],callcation:callCation,AryDate:this.AryDate,IsShowBuySellBar:bBuySellBar},Type:'POST'},Self:this,PreventDefault:false};if(dateRange)obj.DateRange=dateRange;//本地数据日期范围
|
|
9086
9088
|
this.NetworkFilter(obj,function(data){self.ChartSplashPaint.EnableSplash(false);self.RecvMinuteData(data);});if(obj.PreventDefault==true)return;//已被上层替换,不调用默认的网络请求
|
|
9087
9089
|
}JSNetwork.HttpRequest({url:self.MinuteApiUrl,data:{"field":fields,"symbol":[self.Symbol],"start":-1},type:"post",dataType:"json",async:true,success:function success(data){self.ChartSplashPaint.EnableSplash(false);self.RecvMinuteData(data);}});};this.RecvMinuteDataEvent=function(option){if(!this.mapEvent.has(JSCHART_EVENT_ID.RECV_MINUTE_DATA))return;var event=this.mapEvent.get(JSCHART_EVENT_ID.RECV_MINUTE_DATA);var data={MinuteData:this.SourceData,Stock:{Symbol:this.Symbol,Name:this.Name},Option:option,DataStatus:this.DataStatus};event.Callback(event,data,this);};this.UpdateLineColorData=function(data,date){if(!this.ColorLineData){this.ColorLineData=data;return;}//移除当前的
|
|
9088
|
-
var aryColorLineData=this.ColorLineData.filter(function(item,index,arr){return item.Date!=date;});if(IFrameSplitOperator.IsNonEmptyArray(data)){for(var i in data){aryColorLineData.push(data[i]);}}this.ColorLineData=aryColorLineData;};this.UpdateCallCationData=function(beforeOpenData,afterCloseData){if(beforeOpenData&&IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData)){var lastItem=this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1];if(lastItem.Date==beforeOpenData.Date)
|
|
9090
|
+
var aryColorLineData=this.ColorLineData.filter(function(item,index,arr){return item.Date!=date;});if(IFrameSplitOperator.IsNonEmptyArray(data)){for(var i in data){aryColorLineData.push(data[i]);}}this.ColorLineData=aryColorLineData;};this.UpdateCallCationData=function(beforeOpenData,afterCloseData,option){var dataType=0;if(option&&IFrameSplitOperator.IsNumber(option.DataType))dataType=option.DataType;if(dataType==1){if(beforeOpenData&&IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData)){var lastItem=this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1];if(lastItem.Date==beforeOpenData.Date)//增量更新
|
|
9091
|
+
{this.UpdateLatestCallCationData(lastItem,beforeOpenData);}}if(afterCloseData&&IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData)){var lastItem=this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1];if(lastItem.Date==afterCloseData.Date)//增量更新
|
|
9092
|
+
{this.UpdateLatestCallCationData(lastItem,afterCloseData);}}}else{if(beforeOpenData&&IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData)){var lastItem=this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1];if(lastItem.Date==beforeOpenData.Date)//存在更新
|
|
9089
9093
|
this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1]=beforeOpenData;else if(lastItem.Date<beforeOpenData.Date)//新的一天插入
|
|
9090
|
-
this.MultiDayBeforeOpenData.push(beforeOpenData);}if(afterCloseData&&IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData)){var lastItem=this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1];if(lastItem.Date==afterCloseData.Date)this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1]=afterCloseData;else if(lastItem.Date<afterCloseData.Date)this.MultiDayAfterCloseData.push(afterCloseData);}this.CaclutateCallCationYRange();};//增量更新
|
|
9094
|
+
this.MultiDayBeforeOpenData.push(beforeOpenData);}if(afterCloseData&&IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData)){var lastItem=this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1];if(lastItem.Date==afterCloseData.Date)this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1]=afterCloseData;else if(lastItem.Date<afterCloseData.Date)this.MultiDayAfterCloseData.push(afterCloseData);}}this.CaclutateCallCationYRange();};//增量更新
|
|
9091
9095
|
this.RecvUpdateMinuteData=function(data){var minuteData=MinuteChartContainer.JsonDataToUpdateMinuteData(data);var aryColorData=MinuteChartContainer.JsonDataToMinuteLineColorData(data);var beforeOpenData=MinuteChartContainer.JsonDataToBeforeOpenData(data);var afterCloseData=MinuteChartContainer.JsonDataToAfterCloseData(data);var updateTime=MinuteChartContainer.JsonDataToMinuteLastUpdateTime(data);//数据最后的更新时间
|
|
9092
|
-
if(
|
|
9093
|
-
{
|
|
9094
|
-
this.
|
|
9095
|
-
this.
|
|
9096
|
-
|
|
9096
|
+
if(data.LatestPointFlash)//最新数据闪烁
|
|
9097
|
+
{var item=data.LatestPointFlash;if(IFrameSplitOperator.IsNumber(item.FlashCount))this.SetLatestPointFlash(item.FlashCount);}if(this.DayCount>1)//多日走势图
|
|
9098
|
+
{this.UpdateCallCationData(beforeOpenData,afterCloseData,{DataType:1});this.UpdateLineColorData(aryColorData,minuteData.date);this.UpdateLatestMinuteDataV2(minuteData);this.UpdateHistoryMinuteUI(updateTime);this.RecvMinuteDataEvent({FunctionName:"RecvUpdateMinuteData"});this.RequestOverlayMinuteData();//请求叠加数据 (主数据下载完再下载)
|
|
9099
|
+
this.BindAllOverlayIndexData(this.SourceData,{SyncExecute:false});this.AutoUpdateEvent(true,"MinuteChartContainer::RecvUpdateMinuteData");this.AutoUpdate();return;}//if (this.IsBeforeData && beforeOpenData) this.BeforeOpenData=beforeOpenData;
|
|
9100
|
+
//if (this.IsAfterData && afterCloseData) this.AfterCloseData=afterCloseData;
|
|
9101
|
+
//盘前盘后数据更新
|
|
9102
|
+
if(this.IsBeforeData&&beforeOpenData)this.UpdateLatestCallCationData(this.BeforeOpenData,beforeOpenData);if(this.IsAfterData&&afterCloseData)this.UpdateLatestCallCationData(this.AfterCloseData,afterCloseData);this.UpdateLatestMinuteDataV2(minuteData);this.UpdateMinuteUI(data.stock[0],{FunctionName:"RecvUpdateMinuteData"});if(data.AutoUpdate===false)//不执行自动更新
|
|
9103
|
+
{}else{this.AutoUpdateEvent(true,"MinuteChartContainer::RecvUpdateMinuteData");this.AutoUpdate();}};this.UpdateLatestCallCationData=function(destData,updateData){if(!destData)return;if(!updateData||!IFrameSplitOperator.IsNonEmptyArray(updateData.Data))return;if(destData.Data.length==0){destData.Data=updateData.Data;destData.VolMax=updateData.VolMax;destData.VolMin=updateData.VolMin;return;}//覆盖历史数据
|
|
9104
|
+
var mapData=new _map2.default(updateData.Data.map(function(obj){return[obj.Time,obj];}));var lastTime=null;//最后的时间
|
|
9105
|
+
for(var i=0;i<destData.Data.length;++i){var item=destData.Data[i];lastTime=item.Time;if(!mapData.has(item.Time))continue;var newItem=mapData.get(item.Time);if(!newItem||!IFrameSplitOperator.IsNumber(newItem.Price))continue;//只覆盖有效数据
|
|
9106
|
+
destData.Data[i]=newItem;}//新数据往后插
|
|
9107
|
+
for(var i=0;i<updateData.Data.length;++i){var item=updateData.Data[i];if(item.Time<=lastTime)continue;destData.Data.push(item);}if(destData.VolMax<updateData.VolMax)destData.VolMax=updateData.VolMax;if(IFrameSplitOperator.IsNumber(updateData.TotalCount)&&updateData.TotalCount>destData.TotalCount)updateData.TotalCount=destData.TotalCount;};this.RecvBuySellData=function(data){if(!data)return;if(Array.isArray(data.AryBuy)){this.BuySellData.AryBuy=data.AryBuy.slice();}if(Array.isArray(data.ArySell)){this.BuySellData.ArySell=data.ArySell.slice();}};this.RecvMinuteData=function(data){if(!data){JSConsole.Chart.Warn("[MinuteChartContainer::RecvMinuteData] recv data is null");return;}if(data.dataType==1)//增量更新数据模式
|
|
9097
9108
|
{this.RecvUpdateMinuteData(data);return;}if(!data.stock[0])return;if(data.stock[0].symbol!=this.Symbol&&this.EnableVerifyRecvData){JSConsole.Chart.Warn('[MinuteChartContainer::RecvMinuteData] recv data symbol not match. HQChart['+this.Symbol+'] , Recv['+data.stock[0].symbol+']');return;}var aryMinuteData=MinuteChartContainer.JsonDataToMinuteData(data);var aryColorData=MinuteChartContainer.JsonDataToMinuteLineColorData(data);this.BeforeOpenData=null;this.AfterCloseData=null;var beforeOpenData=MinuteChartContainer.JsonDataToBeforeOpenData(data);var afterCloseData=MinuteChartContainer.JsonDataToAfterCloseData(data);var updateTime=MinuteChartContainer.JsonDataToMinuteLastUpdateTime(data);//数据最后的更新时间
|
|
9098
9109
|
if(this.IsBeforeData)this.BeforeOpenData=beforeOpenData;if(this.IsAfterData)this.AfterCloseData=afterCloseData;var bFirstData=this.DataStatus.LatestDay==false;//首条单日数据
|
|
9099
9110
|
if(IFrameSplitOperator.IsNonEmptyArray(data.stock)&&data.stock[0]){this.DataStatus.LatestDate=data.stock[0].date;//保存下最后一天的日期
|
|
9100
9111
|
this.RecvBuySellData(data.stock[0].BuySellData);}if(data.LatestPointFlash)//最新数据闪烁
|
|
9101
9112
|
{var item=data.LatestPointFlash;if(IFrameSplitOperator.IsNumber(item.FlashCount))this.SetLatestPointFlash(item.FlashCount);}this.DataStatus.LatestDay=true;if(this.DayCount>1)//多日走势图
|
|
9102
|
-
{this.UpdateCallCationData(beforeOpenData,afterCloseData);this.UpdateLineColorData(aryColorData,data.stock[0].date);this.UpdateLatestMinuteData(aryMinuteData,data.stock[0].date,data.stock[0]);this.UpdateTradeStatusData(data.TradeStatus);this.UpdateHistoryMinuteUI(updateTime);this.RecvMinuteDataEvent({FunctionName:"RecvMinuteData"});this.RequestOverlayMinuteData();//请求叠加数据 (主数据下载完再下载)
|
|
9113
|
+
{this.UpdateCallCationData(beforeOpenData,afterCloseData,{DataType:0});this.UpdateLineColorData(aryColorData,data.stock[0].date);this.UpdateLatestMinuteData(aryMinuteData,data.stock[0].date,data.stock[0]);this.UpdateTradeStatusData(data.TradeStatus);this.UpdateHistoryMinuteUI(updateTime);this.RecvMinuteDataEvent({FunctionName:"RecvMinuteData"});this.RequestOverlayMinuteData();//请求叠加数据 (主数据下载完再下载)
|
|
9103
9114
|
this.BindAllOverlayIndexData(this.SourceData,{SyncExecute:false});this.AutoUpdateEvent(true,"MinuteChartContainer::RecvMinuteData");this.AutoUpdate();return;}if(this.IsOnTouch==true||this.IsPauseUpdateByKeyboard())//正在操作中不更新数据
|
|
9104
9115
|
{if(this.SourceData&&IFrameSplitOperator.IsNonEmptyArray(this.SourceData.Data)){this.AutoUpdate();return;}}//原始数据
|
|
9105
9116
|
var sourceData=new ChartData();sourceData.Data=aryMinuteData;sourceData.UpdateTime=updateTime;this.SourceData=sourceData;this.ColorLineData=aryColorData;this.UpdateTradeStatusData(data.TradeStatus);this.UpdateMinuteUI(data.stock[0],{FunctionName:"RecvMinuteData",Day:{IsFirstData:bFirstData}});if(data.AutoUpdate===false)//不执行自动更新
|
|
@@ -9306,30 +9317,38 @@ if(this.ChartCorssCursor.ClientPos>=0){var titlePaint=this.TitlePaint[0];if(titl
|
|
|
9306
9317
|
{if(!this.SourceData||!IFrameSplitOperator.IsNonEmptyArray(this.SourceData.Data))return false;var minuteData=this.SourceData.Data[this.SourceData.Data.length-1];var dataID={Symbol:this.Symbol,Date:minuteData.Date,Time:minuteData.Time};if(!this.DialogTooltip.IsEqualDataID(dataID))return false;minuteItem={Type:0,Data:minuteData};dataType=2;}var sendData={DataType:dataType,ClientPos:this.ChartCorssCursor.ClientPos,//位置
|
|
9307
9318
|
IsShowCorss:this.ChartCorssCursor.IsShowCorss,//是否显示十字线
|
|
9308
9319
|
MinItem:minuteItem,Symbol:this.Symbol,Name:this.Name,LastValue:this.ChartCorssCursor.LastValue};this.DialogTooltip.Update(sendData);return true;};this.DrawSelectRectDialog=function(e){if(!this.DialogSelectRect)return;this.UpdateSelectRectDialog(e);};this.UpdateSelectRectDialog=function(e){if(!this.DialogSelectRect)return false;var data=e.data;//区间统计数据
|
|
9309
|
-
var x,y;if(data&&IFrameSplitOperator.IsNumber(data.X)&&IFrameSplitOperator.IsNumber(data.Y)){var pixelRatio=GetDevicePixelRatio();var rtClient=this.UIElement.getBoundingClientRect();var rtScroll=GetScrollPosition();x=data.X;y=data.Y;x+=rtClient.left+rtScroll.Left;y+=rtClient.top+rtScroll.Top;}var sendData={Symbol:this.Symbol,Name:this.Name,SelectData:data.SelectData,X:x,Y:y,e:e};this.DialogSelectRect.Update(sendData);};this.GetKData=function(){if(!this.SourceData)return null;var data=this.SourceData;if(!data)return null;return data;}
|
|
9320
|
+
var x,y;if(data&&IFrameSplitOperator.IsNumber(data.X)&&IFrameSplitOperator.IsNumber(data.Y)){var pixelRatio=GetDevicePixelRatio();var rtClient=this.UIElement.getBoundingClientRect();var rtScroll=GetScrollPosition();x=data.X;y=data.Y;x+=rtClient.left+rtScroll.Left;y+=rtClient.top+rtScroll.Top;}var sendData={Symbol:this.Symbol,Name:this.Name,SelectData:data.SelectData,X:x,Y:y,e:e};this.DialogSelectRect.Update(sendData);};this.GetKData=function(){if(!this.SourceData)return null;var data=this.SourceData;if(!data)return null;return data;};//获取最新的一条盘前数据
|
|
9321
|
+
this.GetLatestBeforeOpenItem=function(){var lastItem=null;if(this.DayCount>1){if(!IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData))return null;var dayItem=this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1];if(!dayItem||!IFrameSplitOperator.IsNonEmptyArray(dayItem.Data))return null;var finder=dayItem.Data.findLast(function(element){return element&&IFrameSplitOperator.IsNumber(element.Price);});if(finder)lastItem=finder;}else{if(!this.BeforeOpenData||!IFrameSplitOperator.IsNonEmptyArray(this.BeforeOpenData.Data))return null;var finder=this.BeforeOpenData.Data.findLast(function(element){return element&&IFrameSplitOperator.IsNumber(element.Price);});if(finder)lastItem=finder;}return lastItem;};//获取最新的一条盘后数据
|
|
9322
|
+
this.GetLatestAfterCloseItem=function(){if(this.DayCount>1){if(!IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData))return null;var dayItem=this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1];if(!dayItem||!IFrameSplitOperator.IsNonEmptyArray(dayItem.Data))return null;var finder=dayItem.Data.findLast(function(element){return element&&IFrameSplitOperator.IsNumber(element.Price);});if(finder)lastItem=finder;}else{if(!this.AfterCloseData||!IFrameSplitOperator.IsNonEmptyArray(this.AfterCloseData.Data))return null;var finder=this.AfterCloseData.Data.findLast(function(element){return element&&IFrameSplitOperator.IsNumber(element.Price);});if(finder)lastItem=finder;}return lastItem;};this.IsCallAuctionFrame=function(frameID){if(!IFrameSplitOperator.IsNonEmptyArray(this.ChartPaintEx))return false;if(!IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame))return false;if(frameID<0||frameID>=this.Frame.SubFrame.length)return false;var subItem=this.Frame.SubFrame[frameID];if(!subItem||!subItem.Frame)return false;var subFrame=subItem.Frame;for(var i=0;i<this.ChartPaintEx.length;++i){var item=this.ChartPaintEx[i];if(item.ChartFrame&&item.ChartFrame.Guid==subFrame.Guid)return true;}return false;};}//盘前数据
|
|
9310
9323
|
MinuteChartContainer.JsonDataToBeforeOpenData=function(data){var symbol=data.stock[0].symbol;var upperSymbol=symbol.toUpperCase();var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);var yClose=data.stock[0].yclose;var preClose=data.stock[0].yclose;//前一个数据价格
|
|
9311
9324
|
var stockData=data.stock[0];var date=stockData.date;//日期
|
|
9312
|
-
var beforeOpenData={Data:[],TotalCount:15,Ver:1.0,Date:date};var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_BEFOREOPEN_EXTENDDATA;//扩展数据序号
|
|
9325
|
+
var beforeOpenData={Data:[],TotalCount:15,Ver:1.0,Date:date,YClose:stockData.yclose,YClearing:stockData.yclearing};var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_BEFOREOPEN_EXTENDDATA;//扩展数据序号
|
|
9313
9326
|
if(stockData.beforeinfo){if(IFrameSplitOperator.IsNumber(stockData.beforeinfo.totalcount))beforeOpenData.TotalCount=stockData.beforeinfo.totalcount;if(IFrameSplitOperator.IsNumber(stockData.beforeinfo.ver))beforeOpenData.Ver=stockData.beforeinfo.ver;}if(beforeOpenData.Ver==1.0){if(IFrameSplitOperator.IsNonEmptyArray(stockData.before)){for(var i=0;i<stockData.before.length;++i){var item=new BeforeOpenData();var jsData=stockData.before[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]=jsData[2];item.Amount=jsData[3];if(IFrameSplitOperator.IsNumber(jsData[4])&&jsData[4]>19000101)//日期
|
|
9314
|
-
item.Date=jsData[4];item.DateTime=item.Date+' '+item.Time;beforeOpenData.Data.push(item);}}}else if(beforeOpenData.Ver==2.0){var max=0;for(var i
|
|
9327
|
+
item.Date=jsData[4];item.DateTime=item.Date+' '+item.Time;beforeOpenData.Data.push(item);}}}else if(beforeOpenData.Ver==2.0){var max=0;for(var i=0;i<stockData.before.length;++i){var item=new BeforeOpenData();var jsData=stockData.before[i];item.YClose=yClose;item.Time=jsData[0];item.Date=date;item.Price=jsData[1];item.Vol[0]=jsData[2];//匹配量
|
|
9315
9328
|
item.Vol[1]=jsData[3];//未匹配量
|
|
9316
9329
|
item.ColorID=jsData[4];//柱子颜色ID
|
|
9317
9330
|
if(IFrameSplitOperator.IsNumber(jsData[6]))item.Date=jsData[6];//日期
|
|
9318
|
-
|
|
9331
|
+
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];beforeOpenData.Data.push(item);}beforeOpenData.VolMax=max/unit;beforeOpenData.VolMin=0;if(stockData.beforeinfo&&stockData.beforeinfo.TimeConfig)//固定时间
|
|
9332
|
+
MinuteChartContainer.CompleteCallAuctionData(stockData.beforeinfo.TimeConfig,beforeOpenData);}else if(beforeOpenData.Ver==3.0){var max=0;for(var i=0;i<stockData.before.length;++i){var item=new BeforeOpenData();var jsData=stockData.before[i];item.YClose=yClose;item.Time=jsData[0];item.Date=date;item.Price=jsData[1];item.AvPrice=jsData[2];//均价
|
|
9319
9333
|
item.Vol[0]=jsData[3];//匹配量
|
|
9320
9334
|
item.ColorID=jsData[4];//柱子颜色ID
|
|
9321
|
-
|
|
9335
|
+
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];beforeOpenData.Data.push(item);}beforeOpenData.VolMax=max/unit;beforeOpenData.VolMin=0;if(stockData.beforeinfo&&stockData.beforeinfo.TimeConfig)//固定时间
|
|
9336
|
+
MinuteChartContainer.CompleteCallAuctionData(stockData.beforeinfo.TimeConfig,beforeOpenData);}return beforeOpenData;};MinuteChartContainer.CompleteCallAuctionData=function(timeConfig,callAuctionData){var aryData=MinuteChartContainer.CreateCallAuctionTimeData(timeConfig);if(!IFrameSplitOperator.IsNonEmptyArray(aryData))return false;var mapData=new _map2.default(callAuctionData.Data.map(function(obj){return[obj.Time,obj];}));for(var i=0;i<aryData.length;++i){var time=aryData[i].Time;if(!mapData.has(time))continue;var item=mapData.get(time);aryData[i]=item;}callAuctionData.Data=aryData;callAuctionData.TotalCount=aryData.length;return true;};//创建集合竞价秒级时间 { AryTime:[ { Start:92500, End:92459, Date:20250101 } ] } hhmmss
|
|
9337
|
+
MinuteChartContainer.CreateCallAuctionTimeData=function(config){if(!config||!IFrameSplitOperator.IsNonEmptyArray(config.AryTime))return null;var step=1;//1s
|
|
9338
|
+
if(IFrameSplitOperator.IsPlusNumber(config.Step))step=config.Step;var aryData=[];for(var i=0;i<config.AryTime.length;++i){var item=config.AryTime[i];var value=item.Start;var hour=parseInt(value/10000);var minute=parseInt(value%10000/100);var second=value%100;var startTime=new Date(2021,5,2,hour,minute,second);value=item.End;var hour=parseInt(value/10000);var minute=parseInt(value%10000/100);var second=value%100;var endTime=new Date(2021,5,2,hour,minute,second);for(var j=0;j<5000&&startTime<=endTime;++j){var time=startTime.getHours()*10000+startTime.getMinutes()*100+startTime.getSeconds();var secItem={Time:time,Date:item.Date};aryData.push(secItem);startTime.setSeconds(startTime.getSeconds()+step);}}return aryData;};//收盘集合竞价
|
|
9322
9339
|
MinuteChartContainer.JsonDataToAfterCloseData=function(data){var yClose=data.stock[0].yclose;var preClose=data.stock[0].yclose;//前一个数据价格
|
|
9323
9340
|
var stockData=data.stock[0];var date=stockData.date;//日期
|
|
9324
|
-
if(!stockData.afterinfo)return null;var symbol=data.stock[0].symbol;var upperSymbol=symbol.toUpperCase();var afterCloseData={Data:[],TotalCount:3*60,Ver:2.0,Date:date};var item=stockData.afterinfo;if(IFrameSplitOperator.IsNumber(item.totalcount))afterCloseData.TotalCount=item.totalcount;if(IFrameSplitOperator.IsNumber(item.ver))afterCloseData.Ver=item.ver;var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_AFTERCLOSE_EXTENDDATA;//扩展数据序号
|
|
9341
|
+
if(!stockData.afterinfo)return null;var symbol=data.stock[0].symbol;var upperSymbol=symbol.toUpperCase();var afterCloseData={Data:[],TotalCount:3*60,Ver:2.0,Date:date,YClose:stockData.yclose,YClearing:stockData.yclearing};var item=stockData.afterinfo;if(IFrameSplitOperator.IsNumber(item.totalcount))afterCloseData.TotalCount=item.totalcount;if(IFrameSplitOperator.IsNumber(item.ver))afterCloseData.Ver=item.ver;var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_AFTERCLOSE_EXTENDDATA;//扩展数据序号
|
|
9325
9342
|
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);if(afterCloseData.Ver==1.0){for(var i=0;i<stockData.after.length;++i){var item=new AfterCloseData();var jsData=stockData.after[i];item.YClose=yClose;item.Time=jsData[0];item.Date=date;item.Price=jsData[1];item.Vol[0]=jsData[2];item.Amount=jsData[3];if(IFrameSplitOperator.IsNumber(jsData[4]))//日期
|
|
9326
|
-
item.Date=jsData[4];item.DateTime=item.Date+' '+item.Time;afterCloseData.Data.push(item);}}else if(afterCloseData.Ver==2.0){var max=0;for(var i
|
|
9343
|
+
item.Date=jsData[4];item.DateTime=item.Date+' '+item.Time;afterCloseData.Data.push(item);}}else if(afterCloseData.Ver==2.0){var max=0;for(var i=0;i<stockData.after.length;++i){var item=new AfterCloseData();var jsData=stockData.after[i];item.YClose=yClose;item.Time=jsData[0];item.Date=date;item.Price=jsData[1];item.Vol[0]=jsData[2];//匹配量
|
|
9327
9344
|
item.Vol[1]=jsData[3];//未匹配量
|
|
9328
9345
|
item.ColorID=jsData[4];//柱子颜色ID
|
|
9329
|
-
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];afterCloseData.Data.push(item);}afterCloseData.VolMax=max/unit;afterCloseData.VolMin=0;
|
|
9346
|
+
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];afterCloseData.Data.push(item);}afterCloseData.VolMax=max/unit;afterCloseData.VolMin=0;if(stockData.afterinfo&&stockData.afterinfo.TimeConfig)//固定时间
|
|
9347
|
+
MinuteChartContainer.CompleteCallAuctionData(stockData.afterinfo.TimeConfig,afterCloseData);}else if(afterCloseData.Ver==3.0){var max=0;for(var i in stockData.after){var item=new AfterCloseData();var jsData=stockData.after[i];item.YClose=yClose;item.Time=jsData[0];item.Date=date;item.Price=jsData[1];item.AvPrice=jsData[2];//均价
|
|
9330
9348
|
item.Vol[0]=jsData[3];//匹配量
|
|
9331
9349
|
item.ColorID=jsData[4];//柱子颜色ID
|
|
9332
|
-
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];afterCloseData.Data.push(item);}afterCloseData.VolMax=max/unit;afterCloseData.VolMin=0;
|
|
9350
|
+
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];afterCloseData.Data.push(item);}afterCloseData.VolMax=max/unit;afterCloseData.VolMin=0;if(stockData.afterinfo&&stockData.afterinfo.TimeConfig)//固定时间
|
|
9351
|
+
MinuteChartContainer.CompleteCallAuctionData(stockData.afterinfo.TimeConfig,afterCloseData);}return afterCloseData;};//API 返回数据 转化为array[]
|
|
9333
9352
|
MinuteChartContainer.JsonDataToMinuteData=function(data,isBeforeData){var symbol=data.stock[0].symbol;var upperSymbol=symbol.toUpperCase();var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol);//国内期货, 纽约期货交易所
|
|
9334
9353
|
var isSHO=MARKET_SUFFIX_NAME.IsSHO(upperSymbol);//上海股票期权
|
|
9335
9354
|
var isSZO=MARKET_SUFFIX_NAME.IsSZO(upperSymbol);//深证股票期权
|
|
@@ -9348,9 +9367,9 @@ if(IFrameSplitOperator.IsNumber(jsData.price))preClose=jsData.price;if(IFrameSpl
|
|
|
9348
9367
|
aryMinuteData[i]=item;}return aryMinuteData;};//分钟增量数据 stock: [ { date:, yclose:, yclearing: , minute:[ [],]} 0=日期 1=时间 2=开 3=高 4=低 5=收 6=均价 7=量 8=金额 9=涨幅 10=涨跌 11=领先指标 12=持仓 ]
|
|
9349
9368
|
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 isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol);//国内期货, 纽约期货交易所
|
|
9350
9369
|
var minuteData={Date:stock.date,Data:[],Symbol:symbol,Name:stock.name};var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_DAY_EXTENDDATA;//扩展数据序号
|
|
9351
|
-
if(IFrameSplitOperator.IsNumber(stock.high))minuteData.High=stock.high;if(IFrameSplitOperator.IsNumber(stock.low))minuteData.Low=stock.low;if(IFrameSplitOperator.IsNumber(stock.yclose))minuteData.YClose=stock.yclose;if(IFrameSplitOperator.IsNumber(stock.YClearing))minuteData.YClearing=stock.yclearing;if(IFrameSplitOperator.IsNonEmptyArray(stock.minute)){for(var i=0;i<stock.minute.length;++i){var jsData=stock.minute[i];var item=new MinuteData();item.YClearing=minuteData.YClearing;item.YClose=minuteData.YClose;item.Date=jsData[0];item.Time=jsData[1];item.Open=jsData[2];item.High=jsData[3];item.Low=jsData[4];item.Close=jsData[5];item.AvPrice=jsData[6];item.Vol=jsData[7];item.Amount=jsData[8];if(IFrameSplitOperator.IsNumber(jsData[9]))item.Increase=jsData[9];if(IFrameSplitOperator.IsNumber(jsData[10]))item.Risefall=jsData[10];if(IFrameSplitOperator.IsNumber(jsData[11]))item.Lead=jsData[11];if(IFrameSplitOperator.IsNumber(jsData[12]))item.Position=jsData[12];if(jsData[extendDataIndex])item.ExtendData=jsData[extendDataIndex];item.DateTime=item.Date+' '+item.Time;if(IFrameSplitOperator.IsNumber(minuteData.YClose)&&item.Close)item.Increase=(item.Close-minuteData.
|
|
9352
|
-
|
|
9353
|
-
minuteData.Data.push(item);}}return minuteData;};MinuteChartContainer.JsonDataToMinuteLineColorData=function(data){if(!data||!data.stock[0])return null;var stockItem=data.stock[0];if(!stockItem.linecolor||!IFrameSplitOperator.IsNonEmptyArray(stockItem.linecolor.data))return null;var aryLineColor=[];for(var i in stockItem.linecolor.data){var item=stockItem.linecolor.data[i];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;};//获取最后的数据更新时间
|
|
9370
|
+
if(IFrameSplitOperator.IsNumber(stock.high))minuteData.High=stock.high;if(IFrameSplitOperator.IsNumber(stock.low))minuteData.Low=stock.low;if(IFrameSplitOperator.IsNumber(stock.yclose))minuteData.YClose=stock.yclose;if(IFrameSplitOperator.IsNumber(stock.YClearing))minuteData.YClearing=stock.yclearing;if(IFrameSplitOperator.IsNonEmptyArray(stock.minute)){for(var i=0;i<stock.minute.length;++i){var jsData=stock.minute[i];var item=new MinuteData();item.YClearing=minuteData.YClearing;item.YClose=minuteData.YClose;item.Date=jsData[0];item.Time=jsData[1];item.Open=jsData[2];item.High=jsData[3];item.Low=jsData[4];item.Close=jsData[5];item.AvPrice=jsData[6];item.Vol=jsData[7];item.Amount=jsData[8];if(IFrameSplitOperator.IsNumber(jsData[9]))item.Increase=jsData[9];if(IFrameSplitOperator.IsNumber(jsData[10]))item.Risefall=jsData[10];if(IFrameSplitOperator.IsNumber(jsData[11]))item.Lead=jsData[11];if(IFrameSplitOperator.IsNumber(jsData[12]))item.Position=jsData[12];if(jsData[extendDataIndex])item.ExtendData=jsData[extendDataIndex];item.DateTime=item.Date+' '+item.Time;if(!IFrameSplitOperator.IsNumber(item.Increase)&&IFrameSplitOperator.IsNumber(minuteData.YClose)&&item.Close){if(isFutures&&minuteData.YClearing&&item.Close)item.Increase=(item.Close-minuteData.YClearing)/minuteData.YClearing*100;//涨幅 (最新价格-昨结算价)/昨结算价*100;
|
|
9371
|
+
else item.Increase=(item.Close-minuteData.YClose)/minuteData.YClose*100;//涨幅 (最新价格-昨收)/昨收*100;
|
|
9372
|
+
}minuteData.Data.push(item);}}return minuteData;};MinuteChartContainer.JsonDataToMinuteLineColorData=function(data){if(!data||!data.stock[0])return null;var stockItem=data.stock[0];if(!stockItem.linecolor||!IFrameSplitOperator.IsNonEmptyArray(stockItem.linecolor.data))return null;var aryLineColor=[];for(var i in stockItem.linecolor.data){var item=stockItem.linecolor.data[i];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;};//获取最后的数据更新时间
|
|
9354
9373
|
MinuteChartContainer.JsonDataToMinuteLastUpdateTime=function(data){if(!data||!data.stock[0])return null;var stock=data.stock[0];if(!IFrameSplitOperator.IsNumber(stock.date)||!IFrameSplitOperator.IsNumber(stock.time))return null;return{Date:stock.date,Time:stock.time};};MinuteChartContainer.JsonDataToHistoryMinuteLastUpdateTime=function(data){if(!data||!data.updatetime)return null;var item=data.updatetime;if(!IFrameSplitOperator.IsNumber(item.date)||!IFrameSplitOperator.IsNumber(item.time))return null;return{Date:item.date,Time:item.time};};//多日日线数据API 转化成array[];
|
|
9355
9374
|
MinuteChartContainer.JsonDataToMinuteDataArray=function(data){var symbol=data.symbol;var upperSymbol=symbol.toUpperCase();var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);var isSHO=MARKET_SUFFIX_NAME.IsSHO(upperSymbol);//上海股票期权
|
|
9356
9375
|
var isSZO=MARKET_SUFFIX_NAME.IsSZO(upperSymbol);//深证股票期权
|
|
@@ -9366,16 +9385,18 @@ var item=new MinuteData();item.YClearing=yClearing;item.YClose=yClose;item.Close
|
|
|
9366
9385
|
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];//日期
|
|
9367
9386
|
item.DateTime=item.Date.toString()+" "+jsData[0].toString();}if((isFutures||isSHO||isSZO)&&9<jsData.length)item.Position=jsData[9];//持仓
|
|
9368
9387
|
if(!IFrameSplitOperator.IsNumber(item.Close))//当前没有价格 使用上一个价格填充
|
|
9369
|
-
{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 upperSymbol=symbol?symbol.toUpperCase():null;var unit=MARKET_SUFFIX_NAME.GetVolUnit(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;//扩展数据序号
|
|
9370
|
-
if(callAuctionData.Ver==1.0){var preClose=null;for(var i
|
|
9388
|
+
{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,dataInfo){if(!IFrameSplitOperator.IsNonEmptyArray(data))return;var upperSymbol=symbol?symbol.toUpperCase():null;var unit=MARKET_SUFFIX_NAME.GetVolUnit(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;//扩展数据序号
|
|
9389
|
+
if(callAuctionData.Ver==1.0){var preClose=null;for(var i=0;i<data.length;++i){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]=jsData[2];//沪深股票原始单位股
|
|
9371
9390
|
item.Amount=jsData[3];if(IFrameSplitOperator.IsNumber(jsData[4]))//日期
|
|
9372
|
-
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
|
|
9391
|
+
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=0;i<data.length;++i){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];//匹配量
|
|
9373
9392
|
item.Vol[1]=jsData[3];//未匹配量
|
|
9374
9393
|
item.ColorID=jsData[4];//柱子颜色ID
|
|
9375
|
-
|
|
9394
|
+
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/unit;callAuctionData.VolMin=0;if(dataInfo&&dataInfo.TimeConfig)//固定时间
|
|
9395
|
+
MinuteChartContainer.CompleteCallAuctionData(dataInfo.TimeConfig,callAuctionData);}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];//均价
|
|
9376
9396
|
item.Vol[0]=jsData[3];//匹配量
|
|
9377
9397
|
item.ColorID=jsData[4];//柱子颜色ID
|
|
9378
|
-
|
|
9398
|
+
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/unit;callAuctionData.VolMin=0;if(dataInfo&&dataInfo.TimeConfig)//固定时间
|
|
9399
|
+
MinuteChartContainer.CompleteCallAuctionData(dataInfo.TimeConfig,callAuctionData);}};MinuteChartContainer.JosnDataToBeforeOpenDataArray=function(data){if(!data||!data.data)return null;var aryDay=[];for(var i=0;i<data.data.length;++i){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,dayItem.beforeinfo);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=0;i<data.data.length;++i){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,dayItem.afterinfo);aryDay.push(afterCloseData);}aryDay.sort(function(left,right){return left.Date-right.Date;});return aryDay;};/////////////////////////////////////////////////////////////////////////////
|
|
9379
9400
|
// 自定义指数
|
|
9380
9401
|
//
|
|
9381
9402
|
function CustomKLineChartContainer(uielement){this.newMethod=KLineChartContainer;//派生
|
|
@@ -15216,7 +15237,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
|
|
|
15216
15237
|
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);};}/********************************************************************************
|
|
15217
15238
|
* 版本信息输出
|
|
15218
15239
|
*
|
|
15219
|
-
*/var HQCHART_VERSION="1.1.
|
|
15240
|
+
*/var HQCHART_VERSION="1.1.14955";function PrintHQChartVersion(){var logo='\n\n*************************************************************************************************************************************************************************** \n* \n* :%@@- \n* :@@@@- \n* =@@@@ :#@@@ .:+#@@@#=: :=*@@@@@@#+-. *@@@@. \n* :@@@@@ .@@@@@ .#@@@@@@@@@@@- +@@@@@@@@@@@@@+ @@@@@ -%@@* \n* +@@@@% #@@@@# *@@@@@@@@@@@@@@%. =@@@@@@@@@@@@@@@- @@@@@ -@@@@+ \n* %@@@@* @@@@@+ .%@@@@@@@@@@@@@@@@%: #@@@@@@@@@@@@@@@% @@@@# *@@@@= \n* @@@@@= @@@@@- .%@@@@@@@*++*%@@@@@@% .%@@@@@@@%*+==+**= -@@@@+ #@@@@- \n* @@@@@. @@@@@. #@@@@@%= =@@@@@@* %@@@@@@#: *@@@@- :::. .-+*###+: ::: .+##+: -%%@@@@@%%%% \n* .@@@@@ .@@@@@. +@@@@@% .@@@@@@ *@@@@@@: %@@@@: +@@@@@%. :%@@@@@@@@@@: *@@@ :@@@@@* @@@@@@@@@@@@ \n* :@@@@@ :@@@@@ @@@@@% :@@@@@+ @@@@@@: %@@@@-@@@@@@@@@. @@@@@@@@@@@@@. :@@@%-@@@@@@.:@@@@@@@@@@@# \n* -@@@@% -@@@@@ =@@@@@. %@@@@% %@@@@@- %@@@@@@@@@@@@@@* %@@@@@@@@@@@@+ -@@@@@@@@@@# -@@@@@@@@@@@. \n* +@@@@%=========#@@@@% @@@@@# :@@@@@ .@@@@@% @@@@@@@@%@@@@@@@ -%+:. .#@@@@* +@@@@@@@%%@. .::+@@@@#:: \n* #@@@@@@@@@@@@@@@@@@@# .@@@@@ .@@@@@ :@@@@@. @@@@@@#. #@@@@@. -@@@@* #@@@@@@: *@@@@+ \n* %@@@@@@@@@@@@@@@@@@@+ :@@@@@ .@@@@@ -@@@@@ @@@@@+ @@@@@. :@@@@* @@@@@% #@@@@- \n* @@@@@@@@@@@@@@@@@@@@: :@@@@% :@@@@@ +@@@@% -@@@@+ @@@@@ -@@@@+ @@@@@. @@@@@. \n* .@@@@@@@@@@@@@@@@@@@@ :@@@@% -@@@@% *@@@@% #@@@@. @@@@@ .=*#%%%@@@@@= :@@@@# @@@@@. \n* -@@@@@:::::::::=@@@@@ :@@@@@ @@@@@* +@@@@% @@@@@ @@@@% -#@@@@@@@@@@@@: -@@@@* @@@@@ \n* =@@@@% =@@@@% .@@@@@ :@@@@@. -@@@@% @@@@@ .@@@@* +@@@@@@@@@@@@@@. =@@@@+ .@@@@@ \n* +@@@@# +@@@@# @@@@@# %@@@@% :@@@@@ .@@@@% =@@@@= -@@@@@*-:..%@@@@ +@@@@= :@@@@# \n* *@@@@* *@@@@* +@@@@@: #@@@@@+ .@@@@@@ :@@@@% *@@@@- @@@@@. @@@@% #@@@@: =@@@@+ \n* %@@@@= %@@@@+ @@@@@@- .%@@@@@# #@@@@@# :@@@@% #@@@@: @@@@% @@@@* %@@@@. #@@@@- \n* @@@@@- @@@@@= =@@@@@@#=...-*@@@@@@@: @@@@@@%=. :+**. :@@@@* %@@@@. .@@@@* *@@@@= @@@@@ %@@@@+ \n* .@@@@@: .@@@@@: *@@@@@@@@@@@@@@@@@@@# =@@@@@@@@%%%@@@@@@ +@@@@- @@@@@ .@@@@@: :%@@@@@- .@@@@% %@@@@@*+- \n* :@@@@@ :@@@@@ +@@@@@@@@@@@@@@@@@@@# =@@@@@@@@@@@@@@@@% %@@@@ @@@@@ @@@@@@@@@@@@@@@: -@@@@* *@@@@@@@@- \n* =@@@@@ -@@@@@ :@@@@@@@@@@@@@@@@@@@# :@@@@@@@@@@@@@@@% @@@@@ %@@@% #@@@@@@@@@#@@@@. +@@@@- .@@@@@@@@# \n* *@@@@# =@@@@% :#@@@@@@@#: :@@@@@= =@@@@@@@@@@@+. @@@@@ :@@@+ *@@@@@@@- %@@@ *@@@= =@@@@@@@* \n* =++++- -++++= .:::. .=*+: :-=+++=:. ****= .=+. .-++=: :+++ -+=: .-=+=:. \n* \n* \n* HQChart \n* Ver: '+HQCHART_VERSION+' \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n************************************************************************************************************************************************************************** \n ';console.log(logo);}PrintHQChartVersion();//把给外界调用的方法暴露出来
|
|
15220
15241
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
15221
15242
|
// BaseIndex:BaseIndex,
|
|
15222
15243
|
// ChartLine:ChartLine,
|