hqchart 1.1.12480 → 1.1.12488
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 +7 -7
- package/package.json +1 -1
- package/src/jscommon/umychart.js +6 -4
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +7 -5
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +7 -5
- package/src/jscommon/umychart.wechat/umychart.chartpaint.wechat.js +21 -1
- package/src/jscommon/umychart.wechat/umychart.complier.wechat.js +73 -31
- package/src/jscommon/umychart.wechat/umychart.framesplit.wechat.js +11 -1
- package/src/jscommon/umychart.wechat/umychart.version.wechat.js +1 -1
- package/src/jscommon/umychart.wechat/umychart.wechat.3.0.js +1 -1
package/lib/umychart.vue.js
CHANGED
|
@@ -1353,7 +1353,7 @@ var scriptData=new JSIndexScript();if(option.ColorIndex)//五彩K线
|
|
|
1353
1353
|
}else if(item.JsonData){chart.WindowIndex[i]=new JsonDataIndex(item.Name,item.Script,item.Args,item);//脚本执行
|
|
1354
1354
|
}else if(item.Local&&item.Local.Data){chart.WindowIndex[i]=new LocalJsonDataIndex(item.Local.Name,item.Local.Args,{JsonData:item.Local.Data});}else if(item.API)//使用API挂接指标数据 API:{ Name:指标名字, Script:指标脚本可以为空, Args:参数可以为空, Url:指标执行地址 }
|
|
1355
1355
|
{var apiItem=item.API;chart.WindowIndex[i]=new APIScriptIndex(apiItem.Name,apiItem.Script,apiItem.Args,item);}else{var indexItem=JSIndexMap.Get(item.Index);if(indexItem){chart.WindowIndex[i]=indexItem.Create(item.Option);if(chart.WindowIndex[i].SetArgs)chart.WindowIndex[i].SetArgs(item.Args);chart.CreateWindowIndex(i);}else{var _indexInfo2=scriptData.Get(item.Index);if(!_indexInfo2)continue;if(item.Lock)_indexInfo2.Lock=item.Lock;_indexInfo2.ID=item.Index;var args=_indexInfo2.Args;if(item.Args)args=item.Args;if(item.IsShortTitle)_indexInfo2.IsShortTitle=item.IsShortTitle;if(item.TitleFont)_indexInfo2.TitleFont=item.TitleFont;if(IFrameSplitOperator.IsBool(item.IsSync))_indexInfo2.IsSync=item.IsSync;chart.WindowIndex[i]=new ScriptIndex(_indexInfo2.Name,_indexInfo2.Script,args,_indexInfo2);//脚本执行
|
|
1356
|
-
if(item.StringFormat>0)chart.WindowIndex[i].StringFormat=item.StringFormat;if(item.FloatPrecision>=0)chart.WindowIndex[i].FloatPrecision=item.FloatPrecision;}}var frame=chart.Frame.SubFrame[i].Frame;if(IFrameSplitOperator.IsBool(item.Modify))frame.ModifyIndex=item.Modify;if(IFrameSplitOperator.IsBool(item.Change))frame.ChangeIndex=item.Change;if(IFrameSplitOperator.IsBool(item.Close))frame.CloseIndex=item.Close;if(IFrameSplitOperator.IsBool(item.Overlay))frame.OverlayIndex=item.Overlay;if(IFrameSplitOperator.IsBool(item.Export))frame.ExportData=item.Export;if(IFrameSplitOperator.IsBool(item.MaxMin))chart.Frame.SubFrame[i].Frame.MaxMinWindow=item.MaxMin;if(IFrameSplitOperator.IsBool(item.TitleWindow))chart.Frame.SubFrame[i].Frame.TitleWindow=item.TitleWindow;if(item.IsDrawTitleBG==true)chart.Frame.SubFrame[i].Frame.IsDrawTitleBG=item.IsDrawTitleBG;if(IFrameSplitOperator.IsBool(item.IsShowNameArrow))chart.Frame.SubFrame[i].Frame.IsShowNameArrow=item.IsShowNameArrow;if(IFrameSplitOperator.IsNumber(item.TitleHeight))chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;else item.TitleHeight=chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;if(IFrameSplitOperator.
|
|
1356
|
+
if(item.StringFormat>0)chart.WindowIndex[i].StringFormat=item.StringFormat;if(item.FloatPrecision>=0)chart.WindowIndex[i].FloatPrecision=item.FloatPrecision;}}var frame=chart.Frame.SubFrame[i].Frame;if(IFrameSplitOperator.IsBool(item.Modify))frame.ModifyIndex=item.Modify;if(IFrameSplitOperator.IsBool(item.Change))frame.ChangeIndex=item.Change;if(IFrameSplitOperator.IsBool(item.Close))frame.CloseIndex=item.Close;if(IFrameSplitOperator.IsBool(item.Overlay))frame.OverlayIndex=item.Overlay;if(IFrameSplitOperator.IsBool(item.Export))frame.ExportData=item.Export;if(IFrameSplitOperator.IsBool(item.MaxMin))chart.Frame.SubFrame[i].Frame.MaxMinWindow=item.MaxMin;if(IFrameSplitOperator.IsBool(item.TitleWindow))chart.Frame.SubFrame[i].Frame.TitleWindow=item.TitleWindow;if(item.IsDrawTitleBG==true)chart.Frame.SubFrame[i].Frame.IsDrawTitleBG=item.IsDrawTitleBG;if(IFrameSplitOperator.IsBool(item.IsShowNameArrow))chart.Frame.SubFrame[i].Frame.IsShowNameArrow=item.IsShowNameArrow;if(IFrameSplitOperator.IsNumber(item.TitleHeight))chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;else item.TitleHeight=chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;if(IFrameSplitOperator.IsBool(item.IsShowTitleArrow))chart.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;if(item.IsShowIndexName==false)chart.Frame.SubFrame[i].Frame.IsShowIndexName=false;if(item.IsShowOverlayIndexName==false)chart.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;if(IFrameSplitOperator.IsNumber(item.IndexParamSpace))chart.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;if(IFrameSplitOperator.IsNumber(item.IndexTitleSpace))chart.Frame.SubFrame[i].Frame.IndexTitleSpace=item.IndexTitleSpace;if(item.OverlayIndexType){if(IFrameSplitOperator.IsNumber(item.OverlayIndexType.Position))chart.Frame.SubFrame[i].Frame.OverlayIndexType.Position=item.OverlayIndexType.Position;if(IFrameSplitOperator.IsNumber(item.OverlayIndexType.LineSpace))chart.Frame.SubFrame[i].Frame.OverlayIndexType.LineSpace=item.OverlayIndexType.LineSpace;}}//叠加指标宽度
|
|
1357
1357
|
if(option.OverlayIndexFrameWidth>40)chart.OverlayIndexFrameWidth=option.OverlayIndexFrameWidth;//叠加指标
|
|
1358
1358
|
if(IFrameSplitOperator.IsNonEmptyArray(option.OverlayIndex)){for(var i=0;i<option.OverlayIndex.length;++i){var item=option.OverlayIndex[i];if(item.Windows>=chart.Frame.SubFrame.length)continue;var itemString=(0,_stringify2.default)(item);var obj=JSON.parse(itemString);if(item.Index)obj.IndexName=item.Index;if(item.Windows>=0)obj.WindowIndex=item.Windows;chart.CreateOverlayWindowsIndex(obj);}}this.AdjustTitleHeight(chart);return chart;};//自定义指数历史K线图
|
|
1359
1359
|
this.CreateCustomKLineChartContainer=function(option){var chart=new CustomKLineChartContainer(this.CanvasElement);//创建改参数div
|
|
@@ -7006,7 +7006,7 @@ var indexName=[{Index:"RSI"},{Index:"MACD"},{Index:"VOL"},{Index:"UOS"},{Index:"
|
|
|
7006
7006
|
if(option&&option.Windows.length>0)indexName=option.Windows;//外部设置增加窗口的默认指标
|
|
7007
7007
|
var scriptData=new JSIndexScript();for(var i=currentLength;i<count;++i){var item=indexName[i%indexName.length];var name=item.Index;var indexInfo=scriptData.Get(name);var args=indexInfo.Args;if(item.Args)args=item.Args;var indexData={Name:indexInfo.Name,Script:indexInfo.Script,Args:args,ID:item.Index,//扩展属性 可以是空
|
|
7008
7008
|
KLineType:indexInfo.KLineType,YSpecificMaxMin:indexInfo.YSpecificMaxMin,YSplitScale:indexInfo.YSplitScale,FloatPrecision:indexInfo.FloatPrecision,Condition:indexInfo.Condition,OutName:indexInfo.OutName};this.WindowIndex[i]=new ScriptIndex(indexData.Name,indexData.Script,indexData.Args,indexData);//脚本执行
|
|
7009
|
-
var subFrame=this.Frame.SubFrame[i];if(item.Modify!=null)this.Frame.SubFrame[i].Frame.ModifyIndex=item.Modify;if(item.Change!=null)this.Frame.SubFrame[i].Frame.ChangeIndex=item.Change;if(item.Close!=null)this.Frame.SubFrame[i].Frame.CloseIndex=item.Close;if(item.Overlay!=null)chart.Frame.SubFrame[i].Frame.OverlayIndex=item.Overlay;if(item.IsDrawTitleBG==true)this.Frame.SubFrame[i].Frame.IsDrawTitleBG=item.IsDrawTitleBG;if(IFrameSplitOperator.IsBool(item.IsShowNameArrow))this.Frame.SubFrame[i].Frame.IsShowNameArrow=item.IsShowNameArrow;if(IFrameSplitOperator.IsNumber(item.TitleHeight))this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;else item.TitleHeight=this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;if(IFrameSplitOperator.
|
|
7009
|
+
var subFrame=this.Frame.SubFrame[i];if(item.Modify!=null)this.Frame.SubFrame[i].Frame.ModifyIndex=item.Modify;if(item.Change!=null)this.Frame.SubFrame[i].Frame.ChangeIndex=item.Change;if(item.Close!=null)this.Frame.SubFrame[i].Frame.CloseIndex=item.Close;if(item.Overlay!=null)chart.Frame.SubFrame[i].Frame.OverlayIndex=item.Overlay;if(item.IsDrawTitleBG==true)this.Frame.SubFrame[i].Frame.IsDrawTitleBG=item.IsDrawTitleBG;if(IFrameSplitOperator.IsBool(item.IsShowNameArrow))this.Frame.SubFrame[i].Frame.IsShowNameArrow=item.IsShowNameArrow;if(IFrameSplitOperator.IsNumber(item.TitleHeight))this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;else item.TitleHeight=this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;if(IFrameSplitOperator.IsBool(item.IsShowTitleArrow))this.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;if(item.IsShowIndexName==false)this.Frame.SubFrame[i].Frame.IsShowIndexName=false;if(item.IsShowOverlayIndexName==false)this.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;if(IFrameSplitOperator.IsNumber(item.IndexParamSpace))this.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;if(IFrameSplitOperator.IsNumber(item.IndexTitleSpace))this.Frame.SubFrame[i].Frame.IndexTitleSpace=item.IndexTitleSpace;if(item.IsShowXLine==false)this.Frame.SubFrame[i].Frame.IsShowXLine=false;if(item.IsShowYLine==false)this.Frame.SubFrame[i].Frame.IsShowYLine=false;if(IFrameSplitOperator.IsBool(item.IsShowIndexTitle))this.Frame.SubFrame[i].Frame.IsShowIndexTitle=item.IsShowIndexTitle;if(IFrameSplitOperator.IsBool(item.IsShowLeftText)){subFrame.Frame.IsShowYText[0]=item.IsShowLeftText;subFrame.Frame.YSplitOperator.IsShowLeftText=item.IsShowLeftText;//显示左边刻度
|
|
7010
7010
|
}if(IFrameSplitOperator.IsBool(item.IsShowRightText)){subFrame.Frame.IsShowYText[1]=item.IsShowRightText;subFrame.Frame.YSplitOperator.IsShowRightText=item.IsShowRightText;//显示右边刻度
|
|
7011
7011
|
}if(item.OverlayIndexType){if(IFrameSplitOperator.IsNumber(item.OverlayIndexType.Position))subFrame.Frame.OverlayIndexType.Position=item.OverlayIndexType.Position;if(IFrameSplitOperator.IsNumber(item.OverlayIndexType.LineSpace))subFrame.Frame.OverlayIndexType.LineSpace=item.OverlayIndexType.LineSpace;}var bindData=this.ChartPaint[0].Data;this.BindIndexData(i,bindData);//执行脚本
|
|
7012
7012
|
}//this.UpdataDataoffset(); //更新数据偏移
|
|
@@ -7464,11 +7464,11 @@ if(this.PageInfo.Enable){var option={ID:JSCHART_OPERATOR_ID.OP_SCROLL_LEFT,Step:
|
|
|
7464
7464
|
if(this.PageInfo.Enable){var option={ID:JSCHART_OPERATOR_ID.OP_SCROLL_RIGHT,Step:this.PageInfo.ShowDayCount};this.ChartOperator(option);}break;default:return;}//不让滚动条滚动
|
|
7465
7465
|
if(e.preventDefault)e.preventDefault();else e.returnValue=false;};this.OnMarkRectSelect=function(e){var corssCursor=this.ChartCorssCursor;//十字光标
|
|
7466
7466
|
if(!corssCursor||corssCursor.Status==0)return;if(!IFrameSplitOperator.IsNumber(corssCursor.CursorIndex))return;if(!this.SourceData||!this.SourceData.Data)return;var paint=this.GetRectSelectPaint();if(!paint)return;var cursorIndex=corssCursor.CursorIndex;JSConsole.Chart.Log("[MinuteChartContainer::OnMarkRectSelect] dataIndex",cursorIndex);var kData=this.SourceData;cursorIndex=parseInt(cursorIndex.toFixed(0));var index=cursorIndex+kData.DataOffset;if(index>=kData.Data.length)index=kData.Data.length-1;var item=kData.Data[index];JSConsole.Chart.Log("[MinuteChartContainer::OnMarkRectSelect] item",item);if(!this.SetRectSelectData(item))return;var pointCount=paint.GetPointCount();var pixelTatio=GetDevicePixelRatio();if(pointCount==1)//第1个位置
|
|
7467
|
-
{var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_KEYDOWN_SELECT_RECT_FIRST);if(event&&event.Callback){var data={X:corssCursor.LastPoint.X/pixelTatio,Y:corssCursor.LastPoint.Y/pixelTatio,Item:item,Index:index,RectSelectPaint:paint
|
|
7468
|
-
};event.Callback(event,data,this);}}else if(pointCount==2)//第2个位置
|
|
7467
|
+
{var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_KEYDOWN_SELECT_RECT_FIRST);if(event&&event.Callback){var data={X:corssCursor.LastPoint.X/pixelTatio,Y:corssCursor.LastPoint.Y/pixelTatio,Item:item,Index:index,RectSelectPaint:paint,//区间选择背景
|
|
7468
|
+
e:e};event.Callback(event,data,this);}}else if(pointCount==2)//第2个位置
|
|
7469
7469
|
{var selectData=paint.GetSelectRectData();var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_KEYDOWN_SELECT_RECT);if(event&&event.Callback){var data={X:corssCursor.LastPoint.X/pixelTatio,Y:corssCursor.LastPoint.Y/pixelTatio,SelectData:selectData,//区间选择的数据
|
|
7470
|
-
RectSelectPaint:
|
|
7471
|
-
};event.Callback(event,data,this);}if(this.SelectRectDialog){e.data={Chart:this,X:corssCursor.LastPoint.X/pixelTatio,Y:corssCursor.LastPoint.Y/pixelTatio,SelectData:selectData,//区间选择的数据
|
|
7470
|
+
RectSelectPaint:pain,//区间选择背景
|
|
7471
|
+
e:e};event.Callback(event,data,this);}if(this.SelectRectDialog){e.data={Chart:this,X:corssCursor.LastPoint.X/pixelTatio,Y:corssCursor.LastPoint.Y/pixelTatio,SelectData:selectData,//区间选择的数据
|
|
7472
7472
|
RectSelectPaint:paint//区间选择背景
|
|
7473
7473
|
};this.SelectRectDialog.DoModal(e);}}this.Draw();};//注册鼠标右键事件
|
|
7474
7474
|
this.OnRightMenu=function(x,y,e){if(this.RightMenu){var frameId=this.Frame.PtInFrame(x,y);e.data={Chart:this,FrameID:frameId};this.RightMenu.DoModal(e);}var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CONTEXT_MENU);if(event){var frameId=this.Frame.PtInFrame(x,y);var data={X:x,Y:y,Event:e,FrameID:frameId};event.Callback(event,data,this);}};this.OnWheel=function(e){JSConsole.Chart.Log('[MinuteChartContainer::OnWheel]',e);};this.OnDoubleClick=function(x,y,e){JSConsole.Chart.Log("[MinuteChartContainer::OnDoubleClick]",e);if(this.ClickChartTimer!=null){clearTimeout(this.ClickChartTimer);this.ClickChartTimer=null;}var selectedChart;//图形选中
|
|
@@ -12490,7 +12490,7 @@ function HQChartScriptWorker(){this.Create=function(){var _this60=this;addEventL
|
|
|
12490
12490
|
hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,Stock:{Symbol:message.Symbol},Request:{MaxDataCount:500,MaxMinuteDayCount:5},Period:message.Period,Right:message.Right,Data:hisData};if(IFrameSplitOperator.IsNumber(message.HQDataType))stockObj.HQDataType=message.HQDataType;indexConsole.ExecuteScript(stockObj);};this.OnRecvMessage=function(message){var data=message.data;if(!data)return;if(data.ID==JSCHART_WORKER_MESSAGE_ID.EXECUTE_SCRIPT){if(!IFrameSplitOperator.IsNonEmptyArray(data.AryIndex))return;for(var i=0;i<data.AryIndex.length;++i){var item=data.AryIndex[i];this.ExecuteScript(item,data);}}};this.OnExecuteFinish=function(data,indexInfo,jsExectute){var message={Data:data,IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.FINISH_EXECUTE_SCRIPT};postMessage(message);};this.OnExecuteError=function(error,indexInfo){var message={IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.ERROR_EXECUTE_SCRIPT,Error:error};postMessage(message);};}/********************************************************************************
|
|
12491
12491
|
* 版本信息输出
|
|
12492
12492
|
*
|
|
12493
|
-
*/var HQCHART_VERSION="1.1.
|
|
12493
|
+
*/var HQCHART_VERSION="1.1.12487";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();//把给外界调用的方法暴露出来
|
|
12494
12494
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
12495
12495
|
// BaseIndex:BaseIndex,
|
|
12496
12496
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
package/src/jscommon/umychart.js
CHANGED
|
@@ -613,7 +613,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
613
613
|
|
|
614
614
|
if (IFrameSplitOperator.IsNumber(item.TitleHeight)) chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;
|
|
615
615
|
else item.TitleHeight=chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;
|
|
616
|
-
if (IFrameSplitOperator.
|
|
616
|
+
if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) chart.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
|
|
617
617
|
if (item.IsShowIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowIndexName=false;
|
|
618
618
|
if (item.IsShowOverlayIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
|
|
619
619
|
if (IFrameSplitOperator.IsNumber(item.IndexParamSpace)) chart.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;
|
|
@@ -66862,7 +66862,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
66862
66862
|
|
|
66863
66863
|
if (IFrameSplitOperator.IsNumber(item.TitleHeight)) this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;
|
|
66864
66864
|
else item.TitleHeight=this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;
|
|
66865
|
-
if (IFrameSplitOperator.
|
|
66865
|
+
if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) this.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
|
|
66866
66866
|
if (item.IsShowIndexName==false) this.Frame.SubFrame[i].Frame.IsShowIndexName=false;
|
|
66867
66867
|
if (item.IsShowOverlayIndexName==false) this.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
|
|
66868
66868
|
if (IFrameSplitOperator.IsNumber(item.IndexParamSpace)) this.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;
|
|
@@ -71564,7 +71564,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
71564
71564
|
Y:corssCursor.LastPoint.Y/pixelTatio,
|
|
71565
71565
|
Item:item,
|
|
71566
71566
|
Index:index,
|
|
71567
|
-
RectSelectPaint:paint //区间选择背景
|
|
71567
|
+
RectSelectPaint:paint, //区间选择背景
|
|
71568
|
+
e:e,
|
|
71568
71569
|
};
|
|
71569
71570
|
event.Callback(event,data,this);
|
|
71570
71571
|
}
|
|
@@ -71580,7 +71581,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
71580
71581
|
X:corssCursor.LastPoint.X/pixelTatio,
|
|
71581
71582
|
Y:corssCursor.LastPoint.Y/pixelTatio,
|
|
71582
71583
|
SelectData:selectData, //区间选择的数据
|
|
71583
|
-
RectSelectPaint:
|
|
71584
|
+
RectSelectPaint:pain, //区间选择背景
|
|
71585
|
+
e:e,
|
|
71584
71586
|
};
|
|
71585
71587
|
event.Callback(event,data,this);
|
|
71586
71588
|
}
|
|
@@ -4693,7 +4693,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4693
4693
|
|
|
4694
4694
|
if (IFrameSplitOperator.IsNumber(item.TitleHeight)) chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;
|
|
4695
4695
|
else item.TitleHeight=chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;
|
|
4696
|
-
if (IFrameSplitOperator.
|
|
4696
|
+
if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) chart.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
|
|
4697
4697
|
if (item.IsShowIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowIndexName=false;
|
|
4698
4698
|
if (item.IsShowOverlayIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
|
|
4699
4699
|
if (IFrameSplitOperator.IsNumber(item.IndexParamSpace)) chart.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;
|
|
@@ -70942,7 +70942,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
70942
70942
|
|
|
70943
70943
|
if (IFrameSplitOperator.IsNumber(item.TitleHeight)) this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;
|
|
70944
70944
|
else item.TitleHeight=this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;
|
|
70945
|
-
if (IFrameSplitOperator.
|
|
70945
|
+
if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) this.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
|
|
70946
70946
|
if (item.IsShowIndexName==false) this.Frame.SubFrame[i].Frame.IsShowIndexName=false;
|
|
70947
70947
|
if (item.IsShowOverlayIndexName==false) this.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
|
|
70948
70948
|
if (IFrameSplitOperator.IsNumber(item.IndexParamSpace)) this.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;
|
|
@@ -75644,7 +75644,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
75644
75644
|
Y:corssCursor.LastPoint.Y/pixelTatio,
|
|
75645
75645
|
Item:item,
|
|
75646
75646
|
Index:index,
|
|
75647
|
-
RectSelectPaint:paint //区间选择背景
|
|
75647
|
+
RectSelectPaint:paint, //区间选择背景
|
|
75648
|
+
e:e,
|
|
75648
75649
|
};
|
|
75649
75650
|
event.Callback(event,data,this);
|
|
75650
75651
|
}
|
|
@@ -75660,7 +75661,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
75660
75661
|
X:corssCursor.LastPoint.X/pixelTatio,
|
|
75661
75662
|
Y:corssCursor.LastPoint.Y/pixelTatio,
|
|
75662
75663
|
SelectData:selectData, //区间选择的数据
|
|
75663
|
-
RectSelectPaint:
|
|
75664
|
+
RectSelectPaint:pain, //区间选择背景
|
|
75665
|
+
e:e,
|
|
75664
75666
|
};
|
|
75665
75667
|
event.Callback(event,data,this);
|
|
75666
75668
|
}
|
|
@@ -128045,7 +128047,7 @@ function ScrollBarBGChart()
|
|
|
128045
128047
|
|
|
128046
128048
|
|
|
128047
128049
|
|
|
128048
|
-
var HQCHART_VERSION="1.1.
|
|
128050
|
+
var HQCHART_VERSION="1.1.12487";
|
|
128049
128051
|
|
|
128050
128052
|
function PrintHQChartVersion()
|
|
128051
128053
|
{
|
|
@@ -4737,7 +4737,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4737
4737
|
|
|
4738
4738
|
if (IFrameSplitOperator.IsNumber(item.TitleHeight)) chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;
|
|
4739
4739
|
else item.TitleHeight=chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;
|
|
4740
|
-
if (IFrameSplitOperator.
|
|
4740
|
+
if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) chart.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
|
|
4741
4741
|
if (item.IsShowIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowIndexName=false;
|
|
4742
4742
|
if (item.IsShowOverlayIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
|
|
4743
4743
|
if (IFrameSplitOperator.IsNumber(item.IndexParamSpace)) chart.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;
|
|
@@ -70986,7 +70986,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
70986
70986
|
|
|
70987
70987
|
if (IFrameSplitOperator.IsNumber(item.TitleHeight)) this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;
|
|
70988
70988
|
else item.TitleHeight=this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;
|
|
70989
|
-
if (IFrameSplitOperator.
|
|
70989
|
+
if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) this.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
|
|
70990
70990
|
if (item.IsShowIndexName==false) this.Frame.SubFrame[i].Frame.IsShowIndexName=false;
|
|
70991
70991
|
if (item.IsShowOverlayIndexName==false) this.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
|
|
70992
70992
|
if (IFrameSplitOperator.IsNumber(item.IndexParamSpace)) this.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;
|
|
@@ -75688,7 +75688,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
75688
75688
|
Y:corssCursor.LastPoint.Y/pixelTatio,
|
|
75689
75689
|
Item:item,
|
|
75690
75690
|
Index:index,
|
|
75691
|
-
RectSelectPaint:paint //区间选择背景
|
|
75691
|
+
RectSelectPaint:paint, //区间选择背景
|
|
75692
|
+
e:e,
|
|
75692
75693
|
};
|
|
75693
75694
|
event.Callback(event,data,this);
|
|
75694
75695
|
}
|
|
@@ -75704,7 +75705,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
75704
75705
|
X:corssCursor.LastPoint.X/pixelTatio,
|
|
75705
75706
|
Y:corssCursor.LastPoint.Y/pixelTatio,
|
|
75706
75707
|
SelectData:selectData, //区间选择的数据
|
|
75707
|
-
RectSelectPaint:
|
|
75708
|
+
RectSelectPaint:pain, //区间选择背景
|
|
75709
|
+
e:e,
|
|
75708
75710
|
};
|
|
75709
75711
|
event.Callback(event,data,this);
|
|
75710
75712
|
}
|
|
@@ -128198,7 +128200,7 @@ function HQChartScriptWorker()
|
|
|
128198
128200
|
|
|
128199
128201
|
|
|
128200
128202
|
|
|
128201
|
-
var HQCHART_VERSION="1.1.
|
|
128203
|
+
var HQCHART_VERSION="1.1.12487";
|
|
128202
128204
|
|
|
128203
128205
|
function PrintHQChartVersion()
|
|
128204
128206
|
{
|
|
@@ -7067,6 +7067,7 @@ function ChartVolStick()
|
|
|
7067
7067
|
}
|
|
7068
7068
|
else //太细了直接话线
|
|
7069
7069
|
{
|
|
7070
|
+
var preKItem=null;
|
|
7070
7071
|
for (var i = this.Data.DataOffset, j = 0; i < this.Data.Data.length && j < xPointCount; ++i, ++j, xOffset += (dataWidth + distanceWidth))
|
|
7071
7072
|
{
|
|
7072
7073
|
var value = this.Data.Data[i];
|
|
@@ -7088,7 +7089,15 @@ function ChartVolStick()
|
|
|
7088
7089
|
|
|
7089
7090
|
if (x > chartright) break;
|
|
7090
7091
|
|
|
7091
|
-
|
|
7092
|
+
if (isMinute)
|
|
7093
|
+
{
|
|
7094
|
+
var barColor=this.GetMinuteBarColor(kItem,preKItem); //分时图颜色单独计算
|
|
7095
|
+
}
|
|
7096
|
+
else
|
|
7097
|
+
{
|
|
7098
|
+
var barColor=this.GetBarColor(kItem);
|
|
7099
|
+
}
|
|
7100
|
+
|
|
7092
7101
|
this.Canvas.strokeStyle=barColor.Color;
|
|
7093
7102
|
|
|
7094
7103
|
//var x = this.ChartFrame.GetXFromIndex(j);
|
|
@@ -7096,6 +7105,8 @@ function ChartVolStick()
|
|
|
7096
7105
|
this.Canvas.moveTo(ToFixedPoint(x), y);
|
|
7097
7106
|
this.Canvas.lineTo(ToFixedPoint(x), yBottom);
|
|
7098
7107
|
this.Canvas.stroke();
|
|
7108
|
+
|
|
7109
|
+
preKItem=kItem;
|
|
7099
7110
|
}
|
|
7100
7111
|
}
|
|
7101
7112
|
}
|
|
@@ -7106,6 +7117,15 @@ function ChartVolStick()
|
|
|
7106
7117
|
else return { Color:this.DownColor, IsUp:false };
|
|
7107
7118
|
}
|
|
7108
7119
|
|
|
7120
|
+
this.GetMinuteBarColor=function(kItem, preItem)
|
|
7121
|
+
{
|
|
7122
|
+
var prePrice=kItem.YClose;
|
|
7123
|
+
if (preItem) prePrice=preItem.Close;
|
|
7124
|
+
|
|
7125
|
+
if (kItem.Close>=prePrice) return { Color:this.UpColor, IsUp:true }; //颜色, 是否是上涨
|
|
7126
|
+
else return { Color:this.DownColor, IsUp:false };
|
|
7127
|
+
}
|
|
7128
|
+
|
|
7109
7129
|
this.HScreenDraw = function () //横屏画法
|
|
7110
7130
|
{
|
|
7111
7131
|
var dataWidth = this.ChartFrame.DataWidth;
|
|
@@ -2071,15 +2071,15 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2071
2071
|
//大于
|
|
2072
2072
|
this.GT=function(data,data2)
|
|
2073
2073
|
{
|
|
2074
|
-
let isNumber=
|
|
2075
|
-
let isNumber2=
|
|
2074
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
2075
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
2076
2076
|
|
|
2077
2077
|
//单数值比较
|
|
2078
2078
|
if (isNumber && isNumber2) return (data>data2 ? 1 : 0);
|
|
2079
2079
|
|
|
2080
2080
|
//都是数组比较
|
|
2081
2081
|
let result=[];
|
|
2082
|
-
if (
|
|
2082
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
2083
2083
|
{
|
|
2084
2084
|
let count=Math.max(data.length, data2.length);
|
|
2085
2085
|
for(let i=0;i<count;++i)
|
|
@@ -2088,7 +2088,10 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2088
2088
|
|
|
2089
2089
|
if (i<data.length && i<data2.length)
|
|
2090
2090
|
{
|
|
2091
|
-
if (
|
|
2091
|
+
if (!IFrameSplitOperator.IsVaild(data[i])) continue;
|
|
2092
|
+
if (!IFrameSplitOperator.IsVaild(data2[i])) continue;
|
|
2093
|
+
|
|
2094
|
+
result[i]=(data[i]>data2[i] ? 1:0);
|
|
2092
2095
|
}
|
|
2093
2096
|
}
|
|
2094
2097
|
|
|
@@ -2100,7 +2103,9 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2100
2103
|
for(let i in data2)
|
|
2101
2104
|
{
|
|
2102
2105
|
result[i]=null;
|
|
2103
|
-
if (
|
|
2106
|
+
if (!IFrameSplitOperator.IsVaild(data)) continue;
|
|
2107
|
+
if (!IFrameSplitOperator.IsVaild(data2[i])) continue;
|
|
2108
|
+
result[i]=(data>data2[i] ? 1 : 0);
|
|
2104
2109
|
}
|
|
2105
2110
|
}
|
|
2106
2111
|
else //数组-单数据
|
|
@@ -2108,7 +2113,9 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2108
2113
|
for(let i in data)
|
|
2109
2114
|
{
|
|
2110
2115
|
result[i]=null;
|
|
2111
|
-
if (
|
|
2116
|
+
if (!IFrameSplitOperator.IsVaild(data[i])) continue;
|
|
2117
|
+
if (!IFrameSplitOperator.IsVaild(data2)) continue;
|
|
2118
|
+
result[i]=(data[i]>data2 ? 1 : 0);
|
|
2112
2119
|
}
|
|
2113
2120
|
}
|
|
2114
2121
|
|
|
@@ -2118,15 +2125,15 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2118
2125
|
//大于等于
|
|
2119
2126
|
this.GTE=function(data,data2)
|
|
2120
2127
|
{
|
|
2121
|
-
let isNumber=
|
|
2122
|
-
let isNumber2=
|
|
2128
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
2129
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
2123
2130
|
|
|
2124
2131
|
//单数值比较
|
|
2125
2132
|
if (isNumber && isNumber2) return (data>=data2 ? 1 : 0);
|
|
2126
2133
|
|
|
2127
2134
|
//都是数组比较
|
|
2128
2135
|
let result=[];
|
|
2129
|
-
if (
|
|
2136
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
2130
2137
|
{
|
|
2131
2138
|
let count=Math.max(data.length, data2.length);
|
|
2132
2139
|
for(let i=0;i<count;++i)
|
|
@@ -2135,7 +2142,9 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2135
2142
|
|
|
2136
2143
|
if (i<data.length && i<data2.length)
|
|
2137
2144
|
{
|
|
2138
|
-
if (
|
|
2145
|
+
if (!IFrameSplitOperator.IsVaild(data[i])) continue;
|
|
2146
|
+
if (!IFrameSplitOperator.IsVaild(data2[i])) continue;
|
|
2147
|
+
result[i]=(data[i]>=data2[i] ? 1:0);
|
|
2139
2148
|
}
|
|
2140
2149
|
}
|
|
2141
2150
|
|
|
@@ -2147,7 +2156,9 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2147
2156
|
for(let i in data2)
|
|
2148
2157
|
{
|
|
2149
2158
|
result[i]=null;
|
|
2150
|
-
if (
|
|
2159
|
+
if (!IFrameSplitOperator.IsVaild(data)) continue;
|
|
2160
|
+
if (!IFrameSplitOperator.IsVaild(data2[i])) continue;
|
|
2161
|
+
result[i]=(data>=data2[i] ? 1 : 0);
|
|
2151
2162
|
}
|
|
2152
2163
|
}
|
|
2153
2164
|
else //数组-单数据
|
|
@@ -2155,7 +2166,9 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2155
2166
|
for(let i in data)
|
|
2156
2167
|
{
|
|
2157
2168
|
result[i]=null;
|
|
2158
|
-
if (
|
|
2169
|
+
if (!IFrameSplitOperator.IsVaild(data[i])) continue;
|
|
2170
|
+
if (!IFrameSplitOperator.IsVaild(data2)) continue;
|
|
2171
|
+
result[i]=(data[i]>=data2 ? 1 : 0);
|
|
2159
2172
|
}
|
|
2160
2173
|
}
|
|
2161
2174
|
|
|
@@ -2165,15 +2178,15 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2165
2178
|
//小于
|
|
2166
2179
|
this.LT=function(data,data2)
|
|
2167
2180
|
{
|
|
2168
|
-
let isNumber=
|
|
2169
|
-
let isNumber2=
|
|
2181
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
2182
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
2170
2183
|
|
|
2171
2184
|
//单数值比较
|
|
2172
2185
|
if (isNumber && isNumber2) return (data<data2 ? 1 : 0);
|
|
2173
2186
|
|
|
2174
2187
|
//都是数组比较
|
|
2175
2188
|
let result=[];
|
|
2176
|
-
if (
|
|
2189
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
2177
2190
|
{
|
|
2178
2191
|
let count=Math.max(data.length, data2.length);
|
|
2179
2192
|
for(let i=0;i<count;++i)
|
|
@@ -2182,7 +2195,10 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2182
2195
|
|
|
2183
2196
|
if (i<data.length && i<data2.length)
|
|
2184
2197
|
{
|
|
2185
|
-
if (
|
|
2198
|
+
if (!IFrameSplitOperator.IsVaild(data[i])) continue;
|
|
2199
|
+
if (!IFrameSplitOperator.IsVaild(data2[i])) continue;
|
|
2200
|
+
|
|
2201
|
+
result[i]=(data[i]<data2[i] ? 1:0);
|
|
2186
2202
|
}
|
|
2187
2203
|
}
|
|
2188
2204
|
|
|
@@ -2194,6 +2210,8 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2194
2210
|
for(let i in data2)
|
|
2195
2211
|
{
|
|
2196
2212
|
result[i]=null;
|
|
2213
|
+
if (!IFrameSplitOperator.IsVaild(data)) continue;
|
|
2214
|
+
if (!IFrameSplitOperator.IsVaild(data2[i])) continue;
|
|
2197
2215
|
if ( !isNaN(data) && !isNaN(data2[i]) ) result[i]=(data<data2[i] ? 1 : 0);
|
|
2198
2216
|
}
|
|
2199
2217
|
}
|
|
@@ -2202,7 +2220,9 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2202
2220
|
for(let i in data)
|
|
2203
2221
|
{
|
|
2204
2222
|
result[i]=null;
|
|
2205
|
-
if (
|
|
2223
|
+
if (!IFrameSplitOperator.IsVaild(data[i])) continue;
|
|
2224
|
+
if (!IFrameSplitOperator.IsVaild(data2)) continue;
|
|
2225
|
+
result[i]=(data[i]<data2 ? 1 : 0);
|
|
2206
2226
|
}
|
|
2207
2227
|
}
|
|
2208
2228
|
|
|
@@ -2212,15 +2232,15 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2212
2232
|
//小于等于
|
|
2213
2233
|
this.LTE=function(data,data2)
|
|
2214
2234
|
{
|
|
2215
|
-
let isNumber=
|
|
2216
|
-
let isNumber2=
|
|
2235
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
2236
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
2217
2237
|
|
|
2218
2238
|
//单数值比较
|
|
2219
2239
|
if (isNumber && isNumber2) return (data>=data2 ? 1 : 0);
|
|
2220
2240
|
|
|
2221
2241
|
//都是数组比较
|
|
2222
2242
|
let result=[];
|
|
2223
|
-
if (
|
|
2243
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
2224
2244
|
{
|
|
2225
2245
|
let count=Math.max(data.length, data2.length);
|
|
2226
2246
|
for(let i=0;i<count;++i)
|
|
@@ -2229,7 +2249,10 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2229
2249
|
|
|
2230
2250
|
if (i<data.length && i<data2.length)
|
|
2231
2251
|
{
|
|
2232
|
-
if (
|
|
2252
|
+
if (!IFrameSplitOperator.IsVaild(data[i])) continue;
|
|
2253
|
+
if (!IFrameSplitOperator.IsVaild(data2[i])) continue;
|
|
2254
|
+
|
|
2255
|
+
result[i]=(data[i]<=data2[i] ? 1:0);
|
|
2233
2256
|
}
|
|
2234
2257
|
}
|
|
2235
2258
|
|
|
@@ -2241,7 +2264,9 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2241
2264
|
for(let i in data2)
|
|
2242
2265
|
{
|
|
2243
2266
|
result[i]=null;
|
|
2244
|
-
if (
|
|
2267
|
+
if (!IFrameSplitOperator.IsVaild(data)) continue;
|
|
2268
|
+
if (!IFrameSplitOperator.IsVaild(data2[i])) continue;
|
|
2269
|
+
result[i]=(data<=data2[i] ? 1 : 0);
|
|
2245
2270
|
}
|
|
2246
2271
|
}
|
|
2247
2272
|
else //数组-单数据
|
|
@@ -2249,7 +2274,9 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2249
2274
|
for(let i in data)
|
|
2250
2275
|
{
|
|
2251
2276
|
result[i]=null;
|
|
2252
|
-
if (
|
|
2277
|
+
if (!IFrameSplitOperator.IsVaild(data[i])) continue;
|
|
2278
|
+
if (!IFrameSplitOperator.IsVaild(data2)) continue;
|
|
2279
|
+
result[i]=(data[i]<=data2 ? 1 : 0);
|
|
2253
2280
|
}
|
|
2254
2281
|
}
|
|
2255
2282
|
|
|
@@ -2259,15 +2286,15 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2259
2286
|
//等于
|
|
2260
2287
|
this.EQ=function(data,data2)
|
|
2261
2288
|
{
|
|
2262
|
-
let isNumber=
|
|
2263
|
-
let isNumber2=
|
|
2289
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
2290
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
2264
2291
|
|
|
2265
2292
|
//单数值比较
|
|
2266
2293
|
if (isNumber && isNumber2) return (data==data2 ? 1 : 0);
|
|
2267
2294
|
|
|
2268
2295
|
//都是数组比较
|
|
2269
2296
|
let result=[];
|
|
2270
|
-
if (
|
|
2297
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
2271
2298
|
{
|
|
2272
2299
|
let count=Math.max(data.length, data2.length);
|
|
2273
2300
|
for(let i=0;i<count;++i)
|
|
@@ -2306,15 +2333,15 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2306
2333
|
//不等于
|
|
2307
2334
|
this.NEQ = function (data, data2)
|
|
2308
2335
|
{
|
|
2309
|
-
let isNumber
|
|
2310
|
-
let isNumber2
|
|
2336
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
2337
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
2311
2338
|
|
|
2312
2339
|
//单数值比较
|
|
2313
2340
|
if (isNumber && isNumber2) return (data != data2 ? 1 : 0);
|
|
2314
2341
|
|
|
2315
2342
|
//都是数组比较
|
|
2316
2343
|
let result = [];
|
|
2317
|
-
if (
|
|
2344
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
2318
2345
|
{
|
|
2319
2346
|
let count = Math.max(data.length, data2.length);
|
|
2320
2347
|
for (let i = 0; i < count; ++i)
|
|
@@ -3277,9 +3304,15 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
3277
3304
|
for(var i=0;i<n.length;++i)
|
|
3278
3305
|
{
|
|
3279
3306
|
var period=n[i];
|
|
3280
|
-
if (
|
|
3307
|
+
if (period==0)
|
|
3308
|
+
{
|
|
3309
|
+
result[i]=0;
|
|
3310
|
+
continue;
|
|
3311
|
+
}
|
|
3312
|
+
|
|
3313
|
+
if (!IFrameSplitOperator.IsNumber(period) ) period=i+1; //无效周期 第一个有效值开始.
|
|
3314
|
+
else if (period<0) period=i+1;
|
|
3281
3315
|
|
|
3282
|
-
if (period<1) period=i+1;
|
|
3283
3316
|
count=0;
|
|
3284
3317
|
for(var j=i, k=0 ;j>=0 && k<period ;--j,++k) //当前往前period天 统计
|
|
3285
3318
|
{
|
|
@@ -3709,6 +3742,12 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
3709
3742
|
}
|
|
3710
3743
|
else
|
|
3711
3744
|
{
|
|
3745
|
+
result[0]=data[0];
|
|
3746
|
+
for(var i=1;i<n && i<data.length;++i) //前面小于N周期的累加
|
|
3747
|
+
{
|
|
3748
|
+
result[i] = result[i-1]+data[i];
|
|
3749
|
+
}
|
|
3750
|
+
|
|
3712
3751
|
for(var i=n-1,j=0;i<data.length;++i,++j)
|
|
3713
3752
|
{
|
|
3714
3753
|
for(var k=0;k<n;++k)
|
|
@@ -10000,6 +10039,7 @@ function JSSymbolData(ast,option,jsExecute)
|
|
|
10000
10039
|
this.GetSymbolCacheData=function(dataName)
|
|
10001
10040
|
{
|
|
10002
10041
|
if (!this.Data) return new Array();
|
|
10042
|
+
var upperSymbol=this.Symbol.toUpperCase();
|
|
10003
10043
|
|
|
10004
10044
|
switch(dataName)
|
|
10005
10045
|
{
|
|
@@ -10008,6 +10048,8 @@ function JSSymbolData(ast,option,jsExecute)
|
|
|
10008
10048
|
return this.Data.GetClose();
|
|
10009
10049
|
case 'VOL':
|
|
10010
10050
|
case 'V':
|
|
10051
|
+
if (MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol) && this.DataType==HQ_DATA_TYPE.KLINE_ID) //!! A股K线量单位时股,分时图单位还是手
|
|
10052
|
+
return this.Data.GetVol(100); //A股的 把股转成手
|
|
10011
10053
|
return this.Data.GetVol();
|
|
10012
10054
|
case 'OPEN':
|
|
10013
10055
|
case 'O':
|
|
@@ -445,7 +445,7 @@ IFrameSplitOperator.IsNumber=function(value)
|
|
|
445
445
|
if (value==null) return false;
|
|
446
446
|
if (isNaN(value)) return false;
|
|
447
447
|
|
|
448
|
-
return
|
|
448
|
+
return typeof(value)=='number';
|
|
449
449
|
}
|
|
450
450
|
|
|
451
451
|
//判断是否是正数
|
|
@@ -463,6 +463,16 @@ IFrameSplitOperator.IsInteger=function(x)
|
|
|
463
463
|
return (typeof x === 'number') && (x % 1 === 0);
|
|
464
464
|
}
|
|
465
465
|
|
|
466
|
+
//是否有效
|
|
467
|
+
IFrameSplitOperator.IsVaild=function(value)
|
|
468
|
+
{
|
|
469
|
+
if (isNaN(value)) return false;
|
|
470
|
+
if (value==null) return false;
|
|
471
|
+
if (value===undefined) return false;
|
|
472
|
+
|
|
473
|
+
return true;
|
|
474
|
+
}
|
|
475
|
+
|
|
466
476
|
//判断字段是否存在
|
|
467
477
|
IFrameSplitOperator.IsObjectExist=function(obj)
|
|
468
478
|
{
|
|
@@ -2976,7 +2976,7 @@ function JSChartContainer(uielement)
|
|
|
2976
2976
|
|
|
2977
2977
|
if (IFrameSplitOperator.IsNumber(option.SplitCount)) subFrame.Frame.YSplitOperator.SplitCount=option.SplitCount;
|
|
2978
2978
|
if (IFrameSplitOperator.IsNumber(option.TitleHeight)) subFrame.Frame.ChartBorder.TitleHeight=option.TitleHeight;
|
|
2979
|
-
if (IFrameSplitOperator.IsBool(option.
|
|
2979
|
+
if (IFrameSplitOperator.IsBool(option.IsShowTitleArrow)) subFrame.Frame.IsShowTitleArrow=option.IsShowTitleArrow;
|
|
2980
2980
|
if (IFrameSplitOperator.IsBool(option.IsShowIndexName)) subFrame.Frame.IsShowIndexName=option.IsShowIndexName;
|
|
2981
2981
|
if (IFrameSplitOperator.IsBool(option.IsShowOverlayIndexName)) subFrame.Frame.IsShowOverlayIndexName=option.IsShowOverlayIndexName;
|
|
2982
2982
|
if (IFrameSplitOperator.IsNumber(option.IndexParamSpace)) subFrame.Frame.IndexParamSpace=option.IndexParamSpace;
|