hqchart 1.1.12433 → 1.1.12442
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 +29 -28
- package/package.json +1 -1
- package/src/jscommon/umychart.complier.js +30 -30
- package/src/jscommon/umychart.js +12 -8
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +43 -39
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +43 -39
- package/src/jscommon/umychart.wechat/umychart.complier.wechat.js +35 -9
- package/src/jscommon/umychart.wechat/umychart.framesplit.wechat.js +41 -0
- package/src/jscommon/umychart.wechat/umychart.version.wechat.js +1 -1
- package/src/jscommon/umychart.wechat/umychart.wechat.3.0.js +1 -0
package/lib/umychart.vue.js
CHANGED
|
@@ -1924,7 +1924,8 @@ this.Tooltip.style.position="absolute";this.Tooltip.style.left=left+"px";this.To
|
|
|
1924
1924
|
chartPaint.push(this.ChartPaint[i]);}for(var i=0;i<this.OverlayChartPaint.length;++i){chartPaint.push(this.OverlayChartPaint[i]);}var aryNotSupport=[];for(var i=0;i<chartPaint.length;++i){var paint=chartPaint[i];if(paint.NotSupportMessage){aryNotSupport.push(paint);continue;}var range=paint.GetMaxMin();if(range==null||range.Max==null||range.Min==null)continue;var frameItem=null;for(var j=0;j<frameMaxMinData.length;++j){if(frameMaxMinData[j].Frame==paint.ChartFrame){frameItem=frameMaxMinData[j];break;}}if(frameItem){if(frameItem.Range.Max<range.Max)frameItem.Range.Max=range.Max;if(frameItem.Range.Min>range.Min)frameItem.Range.Min=range.Min;}else{frameItem={OverlayFrame:[]};frameItem.Frame=paint.ChartFrame;frameItem.Range=range;frameMaxMinData.push(frameItem);}}//当前计算
|
|
1925
1925
|
for(var i=0;i<aryNotSupport.length;++i){var paint=aryNotSupport[i];var range={Max:10,Min:1};var frameItem=null;for(var j=0;j<frameMaxMinData.length;++j){if(frameMaxMinData[j].Frame==paint.ChartFrame){frameItem=frameMaxMinData[j];break;}}if(frameItem)continue;frameItem={OverlayFrame:[]};frameItem.Frame=paint.ChartFrame;frameItem.Range=range;frameMaxMinData.push(frameItem);}var mapFrame=new _map2.default();for(var i=0;i<frameMaxMinData.length;++i){var item=frameMaxMinData[i];mapFrame.set(item.Frame.Identify,item);}//叠加坐标Y轴使用主图指标, 最大最小值
|
|
1926
1926
|
for(var i=0;i<this.Frame.SubFrame.length;++i){var subFrame=this.Frame.SubFrame[i];for(var j=0;j<subFrame.OverlayIndex.length;++j){var overlayItem=subFrame.OverlayIndex[j];var overlayFrame=overlayItem.Frame;if(overlayFrame.IsShareY!=true)continue;if(!overlayFrame.MainFrame)continue;if(!mapFrame.has(overlayFrame.MainFrame.Identify))continue;var frameItem=mapFrame.get(overlayFrame.MainFrame.Identify);if(!frameItem)continue;frameItem.OverlayFrame.push(overlayFrame);if(overlayFrame.IsCalculateYMaxMin===false)continue;//叠加坐标Y轴不调整
|
|
1927
|
-
for(var k=0;k<overlayItem.ChartPaint.length;++k){var paint=overlayItem.ChartPaint[k];
|
|
1927
|
+
for(var k=0;k<overlayItem.ChartPaint.length;++k){var paint=overlayItem.ChartPaint[k];if(paint.IsShow==false)continue;//隐藏的图形不计算
|
|
1928
|
+
var range=paint.GetMaxMin();if(range==null||range.Max==null||range.Min==null)continue;if(frameItem.Range.Max<range.Max)frameItem.Range.Max=range.Max;if(frameItem.Range.Min>range.Min)frameItem.Range.Min=range.Min;}}}for(var i=0;i<frameMaxMinData.length;++i){var item=frameMaxMinData[i];if(!item.Frame||!item.Range)continue;if(item.Range.Max==null||item.Range.Min==null)continue;if(item.Frame.YSpecificMaxMin){item.Frame.HorizontalMax=item.Frame.YSpecificMaxMin.Max;item.Frame.HorizontalMin=item.Frame.YSpecificMaxMin.Min;}else{item.Frame.HorizontalMax=item.Range.Max;item.Frame.HorizontalMin=item.Range.Min;}item.Frame.XYSplit=true;for(var j in item.OverlayFrame){item.OverlayFrame[j].XYSplit=true;}}//更新独立子坐标
|
|
1928
1929
|
for(var i=0;i<this.Frame.SubFrame.length;++i){var subFrame=this.Frame.SubFrame[i];for(var j=0;j<subFrame.OverlayIndex.length;++j){var overlayItem=subFrame.OverlayIndex[j];if(overlayItem.Frame.IsShareY===true)continue;overlayItem.UpdateFrameMaxMin();}}};this.DataMoveLeft=function(){var data=null;if(!this.Frame.Data)data=this.Frame.Data;else data=this.Frame.SubFrame[0].Frame.Data;if(!data)return false;if(data.DataOffset<=0)return false;--data.DataOffset;return true;};this.DataMoveRight=function(){var data=null;if(!this.Frame.Data)data=this.Frame.Data;else data=this.Frame.SubFrame[0].Frame.Data;if(!data)return false;var xPointcount=0;if(this.Frame.XPointCount)xPointcount=this.Frame.XPointCount;else xPointcount=this.Frame.SubFrame[0].Frame.XPointCount;if(!xPointcount)return false;if(xPointcount+data.DataOffset>=data.Data.length)return false;++data.DataOffset;return true;};this.UpdataDataoffset=function(){var data=null;if(this.Frame.Data)data=this.Frame.Data;else data=this.Frame.SubFrame[0].Frame.Data;if(!data)return;for(var i in this.ChartPaint){var item=this.ChartPaint[i];if(!item.Data)continue;item.Data.DataOffset=data.DataOffset;}for(var i in this.OverlayChartPaint){var item=this.OverlayChartPaint[i];if(!item.Data)continue;item.Data.DataOffset=data.DataOffset;}//叠加指标当前显示的数据偏移
|
|
1929
1930
|
for(var i in this.Frame.SubFrame){var subFrame=this.Frame.SubFrame[i];for(var j in subFrame.OverlayIndex){var overlayItem=subFrame.OverlayIndex[j];for(var k in overlayItem.ChartPaint){var item=overlayItem.ChartPaint[k];if(!item.Data)continue;item.Data.DataOffset=data.DataOffset;}}}};this.GetMoveOneStepWidth=function(){if(IFrameSplitOperator.IsPlusNumber(this.StepPixel))return this.StepPixel;var pixelRatio=GetDevicePixelRatio();var mainFrame=this.Frame.SubFrame[0].Frame;var dataWidth=mainFrame.DataWidth;var distanceWidth=mainFrame.DistanceWidth;var oneStepWidth=this.StepPixel;var oneStepWidth=(dataWidth+distanceWidth)/pixelRatio;if(oneStepWidth<1)oneStepWidth=1;return oneStepWidth;};this.DataMove=function(step,isLeft){var oneStepWidth=this.GetMoveOneStepWidth();var moveStep=step;step=parseInt(step/oneStepWidth);//除以4个像素
|
|
1930
1931
|
if(step<=0)return false;var data=null;if(!this.Frame.Data)data=this.Frame.Data;else data=this.Frame.SubFrame[0].Frame.Data;if(!data)return false;var xPointcount=0;if(this.Frame.XPointCount)xPointcount=this.Frame.XPointCount;else xPointcount=this.Frame.SubFrame[0].Frame.XPointCount;if(!xPointcount)return false;if(this.Frame.SubFrame&&this.Frame.SubFrame.length>0&&this.Frame.SubFrame[0].Frame){var fristFrame=this.Frame.SubFrame[0].Frame;if(fristFrame.DataWidth<=1||fristFrame.DistanceWidth<=1)//K线在缩放很小的时候 移动加速
|
|
@@ -4895,7 +4896,7 @@ return year.toString()+'-'+IFrameSplitOperator.NumberToString(month)+'-'+IFrameS
|
|
|
4895
4896
|
IFrameSplitOperator.FormatReportDateString=function(value){var year=parseInt(value/10000);var month=parseInt(value/100)%100;var monthText;switch(month){case 3:monthText="一季度报";break;case 6:monthText="半年报";break;case 9:monthText="三季度报";break;case 12:monthText="年报";break;}return year.toString()+monthText;};IFrameSplitOperator.FormatDateTimeString=function(value,isShowDate,isShowTime){var aryValue=value.split(' ');if(aryValue.length<2)return"";var result="";if(isShowDate){var date=parseInt(aryValue[0]);var year=parseInt(date/10000);var month=parseInt(date%10000/100);var day=date%100;var text=year.toString()+'-'+(month<10?'0'+month.toString():month.toString())+'-'+(day<10?'0'+day.toString():day.toString());result+=text;}if(isShowTime){var time=parseInt(aryValue[1]);if(time<10000){var minute=time%100;var hour=parseInt(time/100);var text=IFrameSplitOperator.NumberToString(hour)+':'+IFrameSplitOperator.NumberToString(minute);if(result.length>0)result+=" ";result+=text;}else{var hour=parseInt(time/10000);var minute=parseInt(time%10000/100);var second=time%100;var text=IFrameSplitOperator.NumberToString(hour)+':'+IFrameSplitOperator.NumberToString(minute)+':'+IFrameSplitOperator.NumberToString(second);if(result.length>0)result+=" ";result+=text;}}return result;};//字段颜色格式化
|
|
4896
4897
|
IFrameSplitOperator.FormatValueColor=function(value,value2){if(value!=null&&value2==null)//只传一个值的 就判断value正负
|
|
4897
4898
|
{if(value==0)return'PriceNull';else if(value>0)return'PriceUp';else return'PriceDown';}//2个数值对比 返回颜色
|
|
4898
|
-
if(value==null||value2==null)return'PriceNull';if(value==value2)return'PriceNull';else if(value>value2)return'PriceUp';else return'PriceDown';};IFrameSplitOperator.IsNumber=function(value){if(value==null)return false;if(isNaN(value))return false;return
|
|
4899
|
+
if(value==null||value2==null)return'PriceNull';if(value==value2)return'PriceNull';else if(value>value2)return'PriceUp';else return'PriceDown';};IFrameSplitOperator.IsNumber=function(value){if(value==null)return false;if(isNaN(value))return false;return typeof value=='number';};//判断是否是正数
|
|
4899
4900
|
IFrameSplitOperator.IsPlusNumber=function(value){if(value==null)return false;if(isNaN(value))return false;return value>0;};//是否是整形
|
|
4900
4901
|
IFrameSplitOperator.IsInteger=function(x){return typeof x==='number'&&x%1===0;};//判断字段是否存在
|
|
4901
4902
|
IFrameSplitOperator.IsObjectExist=function(obj){if(obj===undefined)return false;if(obj==null)return false;return true;};//是否时bool
|
|
@@ -5044,7 +5045,7 @@ this.GetMultiDayBeforeOpenData=function(){if(!this.MultiDayBeforeOpenData||!IFra
|
|
|
5044
5045
|
var range=item.GetMaxMin();if(range.Max&&range.Max>max)max=range.Max;if(range.Min&&range.Min<min)min=range.Min;}if(this.SplitType==1&&this.LimitPrice){if(max<this.LimitPrice.Max)max=this.LimitPrice.Max;if(min>this.LimitPrice.Min)min=this.LimitPrice.Min;}if(IFrameSplitOperator.IsNumber(this.High)&&IFrameSplitOperator.IsNumber(this.Low)){if(max<this.High)max=this.High;if(min>this.Low)min=this.Low;}var range={Max:null,Min:null};if(this.IsAfterData&&this.AfterCloseData){this.GetCallAuctionMaxMin(this.AfterCloseData,range);}if(this.IsBeforeData&&this.BeforeOpenData){this.GetCallAuctionMaxMin(this.BeforeOpenData,range);}var multiDayBeforeOpenData=this.GetMultiDayBeforeOpenData();if(multiDayBeforeOpenData&&this.ChartBorder.MultiDayMinute.Count>1&&this.ChartBorder.MultiDayMinute.Left>0){for(var i=0;i<multiDayBeforeOpenData.length;++i){var dayItem=multiDayBeforeOpenData[i];this.GetCallAuctionMaxMin(dayItem,range);}}var multiDayAfterCloseData=this.GetMultiDayAfterCloseData();if(multiDayAfterCloseData&&this.ChartBorder.MultiDayMinute.Count>1&&this.ChartBorder.MultiDayMinute.Right>0){for(var i=0;i<multiDayAfterCloseData.length;++i){var dayItem=multiDayAfterCloseData[i];this.GetCallAuctionMaxMin(dayItem,range);}}if(IFrameSplitOperator.IsNumber(range.Max)&&max<range.Max)max=range.Max;if(IFrameSplitOperator.IsNumber(range.Min)&&min>range.Min)min=range.Min;//叠加指标
|
|
5045
5046
|
var overlayRange=this.GetOverlayMaxMin();if(overlayRange){if(IFrameSplitOperator.IsNumber(overlayRange.Max)&&overlayRange.Max>max)max=overlayRange.Max;if(IFrameSplitOperator.IsNumber(overlayRange.Min)&&overlayRange.Min<min)min=overlayRange.Min;}return{Max:max,Min:min};};//获取共享Y轴叠加指标最大,最小值
|
|
5046
5047
|
this.GetOverlayMaxMin=function(){if(!this.HQChart)return null;if(!this.HQChart.Frame||!this.HQChart.Frame.SubFrame)return null;var subFrame=this.HQChart.Frame.SubFrame[0];if(!subFrame)return null;if(!IFrameSplitOperator.IsNonEmptyArray(subFrame.OverlayIndex))return null;var range={Max:null,Min:null};for(var i=0;i<subFrame.OverlayIndex.length;++i){var item=subFrame.OverlayIndex[i];if(!item||!item.Frame)continue;var overlayFrame=item.Frame;if(overlayFrame.IsShareY!=true)continue;if(overlayFrame.IsCalculateYMaxMin===false)continue;//叠加坐标Y轴不调整
|
|
5047
|
-
for(var j=0;j<item.ChartPaint.length;++j){var paint=item.ChartPaint[j];var value=paint.GetMaxMin();if(value==null||value.Max==null||value.Min==null)continue;if(range.Max==null||range.Max<value.Max)range.Max=value.Max;if(range.Min==null||range.Min>value.Min)range.Min=value.Min;}}return range;};this.USASplit=function(range){var max=range.Max;var min=range.Min;if(max==min){max=max+max*0.1;min=min-min*0.1;}else{var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
|
|
5048
|
+
for(var j=0;j<item.ChartPaint.length;++j){var paint=item.ChartPaint[j];if(paint.IsShow==false)continue;var value=paint.GetMaxMin();if(value==null||value.Max==null||value.Min==null)continue;if(range.Max==null||range.Max<value.Max)range.Max=value.Max;if(range.Min==null||range.Min>value.Min)range.Min=value.Min;}}return range;};this.USASplit=function(range){var max=range.Max;var min=range.Min;if(max==min){max=max+max*0.1;min=min-min*0.1;}else{var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
|
|
5048
5049
|
var height=this.Frame.ChartBorder.GetHeight();//画布的高度
|
|
5049
5050
|
var spacePrice=5*pixelTatio*(max-min)/height;max+=spacePrice;min-=spacePrice;if(min<0)min=range.Min;}var showCount=this.SplitCount;var distance=(max-min)/(showCount-1);var minDistance=[1,0.1,0.01,0.001,0.0001];var defaultfloatPrecision=GetfloatPrecision(this.Symbol);if(distance<minDistance[defaultfloatPrecision]){distance=minDistance[defaultfloatPrecision];max=min+distance*showCount;//min=this.YClose-(distance*(showCount-1)/2);
|
|
5050
5051
|
}for(var i=0;i<showCount;++i){var price=min+distance*i;if(this.YClose&&price==this.YClose)continue;var coordinate=new CoordinateInfo();coordinate.Value=price;var strPrice=price.toFixed(defaultfloatPrecision);//价格刻度字符串
|
|
@@ -9373,41 +9374,41 @@ var result=[];if(!isNumber&&!isNumber2){var count=Math.max(data.length,data2.len
|
|
|
9373
9374
|
if(_i53<data.length&&_i53<data2.length){if(this.IsNumber(data[_i53])&&this.IsDivideNumber(data2[_i53]))result[_i53]=data[_i53]/data2[_i53];}}return result;}if(isNumber)//单数据-数组
|
|
9374
9375
|
{for(var _i54 in data2){result[_i54]=null;if(this.IsNumber(data)&&this.IsDivideNumber(data2[_i54]))result[_i54]=data/data2[_i54];}}else//数组-单数据
|
|
9375
9376
|
{for(var _i55 in data){result[_i55]=null;if(this.IsNumber(data[_i55])&&this.IsDivideNumber(data2))result[_i55]=data[_i55]/data2;}}return result;};//大于
|
|
9376
|
-
this.GT=function(data,data2){var isNumber=
|
|
9377
|
+
this.GT=function(data,data2){var isNumber=IFrameSplitOperator.IsNumber(data);var isNumber2=IFrameSplitOperator.IsNumber(data2);//单数值比较
|
|
9377
9378
|
if(isNumber&&isNumber2)return data>data2?1:0;//都是数组比较
|
|
9378
|
-
var result=[];if(
|
|
9379
|
-
if(_i56<data.length&&_i56<data2.length){if(!isNaN(data[_i56])&&!isNaN(data2[_i56]))result[_i56]=data[_i56]>data2[_i56]?1:0;}}return result;}if(isNumber)//单数据-数组
|
|
9380
|
-
{for(var _i57 in data2){result[_i57]=null;if(!isNaN(data)&&!isNaN(data2[_i57]))result[_i57]=data>data2[_i57]?1:0;}}else//数组-单数据
|
|
9379
|
+
var result=[];if(Array.isArray(data)&&Array.isArray(data2)){var count=Math.max(data.length,data2.length);for(var _i56=0;_i56<count;++_i56){result[_i56]=null;//初始化
|
|
9380
|
+
if(_i56<data.length&&_i56<data2.length){if(!isNaN(data[_i56])&&!isNaN(data2[_i56]))result[_i56]=data[_i56]>data2[_i56]?1:0;}}return result;}if(isNumber&&Array.isArray(data2))//单数据-数组
|
|
9381
|
+
{for(var _i57 in data2){result[_i57]=null;if(!isNaN(data)&&!isNaN(data2[_i57]))result[_i57]=data>data2[_i57]?1:0;}}else if(isNumber2&&Array.isArray(data))//数组-单数据
|
|
9381
9382
|
{for(var _i58 in data){result[_i58]=null;if(!isNaN(data[_i58])&&!isNaN(data2))result[_i58]=data[_i58]>data2?1:0;}}return result;};//大于等于
|
|
9382
|
-
this.GTE=function(data,data2){var isNumber=
|
|
9383
|
+
this.GTE=function(data,data2){var isNumber=IFrameSplitOperator.IsNumber(data);var isNumber2=IFrameSplitOperator.IsNumber(data2);//单数值比较
|
|
9383
9384
|
if(isNumber&&isNumber2)return data>=data2?1:0;//都是数组比较
|
|
9384
|
-
var result=[];if(
|
|
9385
|
-
if(_i59<data.length&&_i59<data2.length){if(!isNaN(data[_i59])&&!isNaN(data2[_i59]))result[_i59]=data[_i59]>=data2[_i59]?1:0;}}return result;}if(isNumber)//单数据-数组
|
|
9386
|
-
{for(var _i60 in data2){result[_i60]=null;if(!isNaN(data)&&!isNaN(data2[_i60]))result[_i60]=data>=data2[_i60]?1:0;}}else//数组-单数据
|
|
9385
|
+
var result=[];if(Array.isArray(data)&&Array.isArray(data2)){var count=Math.max(data.length,data2.length);for(var _i59=0;_i59<count;++_i59){result[_i59]=null;//初始化
|
|
9386
|
+
if(_i59<data.length&&_i59<data2.length){if(!isNaN(data[_i59])&&!isNaN(data2[_i59]))result[_i59]=data[_i59]>=data2[_i59]?1:0;}}return result;}if(isNumber&&Array.isArray(data2))//单数据-数组
|
|
9387
|
+
{for(var _i60 in data2){result[_i60]=null;if(!isNaN(data)&&!isNaN(data2[_i60]))result[_i60]=data>=data2[_i60]?1:0;}}else if(isNumber2&&Array.isArray(data))//数组-单数据
|
|
9387
9388
|
{for(var _i61 in data){result[_i61]=null;if(!isNaN(data[_i61])&&!isNaN(data2))result[_i61]=data[_i61]>=data2?1:0;}}return result;};//小于
|
|
9388
|
-
this.LT=function(data,data2){var isNumber=
|
|
9389
|
+
this.LT=function(data,data2){var isNumber=IFrameSplitOperator.IsNumber(data);var isNumber2=IFrameSplitOperator.IsNumber(data2);//单数值比较
|
|
9389
9390
|
if(isNumber&&isNumber2)return data<data2?1:0;//都是数组比较
|
|
9390
|
-
var result=[];if(
|
|
9391
|
-
if(_i62<data.length&&_i62<data2.length){if(!isNaN(data[_i62])&&!isNaN(data2[_i62]))result[_i62]=data[_i62]<data2[_i62]?1:0;}}return result;}if(isNumber)//单数据-数组
|
|
9392
|
-
{for(var _i63 in data2){result[_i63]=null;if(!isNaN(data)&&!isNaN(data2[_i63]))result[_i63]=data<data2[_i63]?1:0;}}else//数组-单数据
|
|
9391
|
+
var result=[];if(Array.isArray(data)&&Array.isArray(data2)){var count=Math.max(data.length,data2.length);for(var _i62=0;_i62<count;++_i62){result[_i62]=null;//初始化
|
|
9392
|
+
if(_i62<data.length&&_i62<data2.length){if(!isNaN(data[_i62])&&!isNaN(data2[_i62]))result[_i62]=data[_i62]<data2[_i62]?1:0;}}return result;}if(isNumber&&Array.isArray(data2))//单数据-数组
|
|
9393
|
+
{for(var _i63 in data2){result[_i63]=null;if(!isNaN(data)&&!isNaN(data2[_i63]))result[_i63]=data<data2[_i63]?1:0;}}else if(isNumber2&&Array.isArray(data))//数组-单数据
|
|
9393
9394
|
{for(var _i64 in data){result[_i64]=null;if(!isNaN(data[_i64])&&!isNaN(data2))result[_i64]=data[_i64]<data2?1:0;}}return result;};//小于等于
|
|
9394
|
-
this.LTE=function(data,data2){var isNumber=
|
|
9395
|
+
this.LTE=function(data,data2){var isNumber=IFrameSplitOperator.IsNumber(data);var isNumber2=IFrameSplitOperator.IsNumber(data2);//单数值比较
|
|
9395
9396
|
if(isNumber&&isNumber2)return data>=data2?1:0;//都是数组比较
|
|
9396
|
-
var result=[];if(
|
|
9397
|
-
if(_i65<data.length&&_i65<data2.length){if(!isNaN(data[_i65])&&!isNaN(data2[_i65]))result[_i65]=data[_i65]<=data2[_i65]?1:0;}}return result;}if(isNumber)//单数据-数组
|
|
9398
|
-
{for(var _i66 in data2){result[_i66]=null;if(!isNaN(data)&&!isNaN(data2[_i66]))result[_i66]=data<=data2[_i66]?1:0;}}else//数组-单数据
|
|
9397
|
+
var result=[];if(Array.isArray(data)&&Array.isArray(data2)){var count=Math.max(data.length,data2.length);for(var _i65=0;_i65<count;++_i65){result[_i65]=null;//初始化
|
|
9398
|
+
if(_i65<data.length&&_i65<data2.length){if(!isNaN(data[_i65])&&!isNaN(data2[_i65]))result[_i65]=data[_i65]<=data2[_i65]?1:0;}}return result;}if(isNumber&&Array.isArray(data2))//单数据-数组
|
|
9399
|
+
{for(var _i66 in data2){result[_i66]=null;if(!isNaN(data)&&!isNaN(data2[_i66]))result[_i66]=data<=data2[_i66]?1:0;}}else if(isNumber2&&Array.isArray(data))//数组-单数据
|
|
9399
9400
|
{for(var _i67 in data){result[_i67]=null;if(!isNaN(data[_i67])&&!isNaN(data2))result[_i67]=data[_i67]<=data2?1:0;}}return result;};//等于
|
|
9400
|
-
this.EQ=function(data,data2){var isNumber=
|
|
9401
|
+
this.EQ=function(data,data2){var isNumber=IFrameSplitOperator.IsNumber(data);var isNumber2=IFrameSplitOperator.IsNumber(data2);//单数值比较
|
|
9401
9402
|
if(isNumber&&isNumber2)return data==data2?1:0;//都是数组比较
|
|
9402
|
-
var result=[];if(
|
|
9403
|
-
if(_i68<data.length&&_i68<data2.length){if(!isNaN(data[_i68])&&!isNaN(data2[_i68]))result[_i68]=data[_i68]==data2[_i68]?1:0;}}return result;}if(isNumber)//单数据-数组
|
|
9404
|
-
{for(var _i69 in data2){result[_i69]=null;if(!isNaN(data)&&!isNaN(data2[_i69]))result[_i69]=data==data2[_i69]?1:0;}}else//数组-单数据
|
|
9403
|
+
var result=[];if(Array.isArray(data)&&Array.isArray(data2)){var count=Math.max(data.length,data2.length);for(var _i68=0;_i68<count;++_i68){result[_i68]=null;//初始化
|
|
9404
|
+
if(_i68<data.length&&_i68<data2.length){if(!isNaN(data[_i68])&&!isNaN(data2[_i68]))result[_i68]=data[_i68]==data2[_i68]?1:0;}}return result;}if(isNumber&&Array.isArray(data2))//单数据-数组
|
|
9405
|
+
{for(var _i69 in data2){result[_i69]=null;if(!isNaN(data)&&!isNaN(data2[_i69]))result[_i69]=data==data2[_i69]?1:0;}}else if(isNumber2&&Array.isArray(data))//数组-单数据
|
|
9405
9406
|
{for(var _i70 in data){result[_i70]=null;if(!isNaN(data[_i70])&&!isNaN(data2))result[_i70]=data[_i70]==data2?1:0;}}return result;};//不等于
|
|
9406
|
-
this.NEQ=function(data,data2){var isNumber=
|
|
9407
|
+
this.NEQ=function(data,data2){var isNumber=IFrameSplitOperator.IsNumber(data);var isNumber2=IFrameSplitOperator.IsNumber(data2);//单数值比较
|
|
9407
9408
|
if(isNumber&&isNumber2)return data!=data2?1:0;//都是数组比较
|
|
9408
|
-
var result=[];if(
|
|
9409
|
-
if(_i71<data.length&&_i71<data2.length){if(!isNaN(data[_i71])&&!isNaN(data2[_i71]))result[_i71]=data[_i71]!=data2[_i71]?1:0;}}return result;}if(isNumber)//单数据-数组
|
|
9410
|
-
{for(var _i72 in data2){result[_i72]=null;if(!isNaN(data)&&!isNaN(data2[_i72]))result[_i72]=data!=data2[_i72]?1:0;}}else//数组-单数据
|
|
9409
|
+
var result=[];if(Array.isArray(data)&&Array.isArray(data2)){var count=Math.max(data.length,data2.length);for(var _i71=0;_i71<count;++_i71){result[_i71]=null;//初始化
|
|
9410
|
+
if(_i71<data.length&&_i71<data2.length){if(!isNaN(data[_i71])&&!isNaN(data2[_i71]))result[_i71]=data[_i71]!=data2[_i71]?1:0;}}return result;}if(isNumber&&Array.isArray(data2))//单数据-数组
|
|
9411
|
+
{for(var _i72 in data2){result[_i72]=null;if(!isNaN(data)&&!isNaN(data2[_i72]))result[_i72]=data!=data2[_i72]?1:0;}}else if(isNumber2&&Array.isArray(data))//数组-单数据
|
|
9411
9412
|
{for(var _i73 in data){result[_i73]=null;if(!isNaN(data[_i73])&&!isNaN(data2))result[_i73]=data[_i73]!=data2?1:0;}}return result;};//AND &&
|
|
9412
9413
|
this.And=function(data,data2){var isNumber=typeof data=='number';var isNumber2=typeof data2=='number';//单数值 &&
|
|
9413
9414
|
if(isNumber&&isNumber2)return data&&data2?1:0;//都是数组 &&
|
|
@@ -12468,7 +12469,7 @@ this.AreaColor=g_JSChartResource.ScrollBar.BGChart.AreaColor;//面积图颜色
|
|
|
12468
12469
|
};this.Draw=function(){if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;this.Canvas.save();if(this.LineWidth>0)this.Canvas.lineWidth=this.LineWidth*GetDevicePixelRatio();var bottom=this.ChartBorder.GetBottom();this.Canvas.strokeStyle=this.Color;var bFirstPoint=true;var drawCount=0,x,y;var firstPoint={};for(var i=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];var value=item.Close;if(!IFrameSplitOperator.IsNumber(value))continue;x=this.ChartFrame.GetXFromIndex(i);y=this.ChartFrame.GetYFromData(value);if(bFirstPoint){this.Canvas.beginPath();this.Canvas.moveTo(x,y);bFirstPoint=false;firstPoint={X:x,Y:y};}else{this.Canvas.lineTo(x,y);}++drawCount;}if(drawCount>0){this.Canvas.stroke();this.Canvas.lineTo(x,bottom);this.Canvas.lineTo(firstPoint.X,bottom);this.Canvas.closePath();this.Canvas.fillStyle=this.AreaColor;this.Canvas.fill();}this.Canvas.restore();};this.GetMaxMin=function(){var range={Max:null,Min:null};if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return range;for(var i=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];var value=item.Close;if(!IFrameSplitOperator.IsNumber(value))continue;if(range.Max==null||range.Max<value)range.Max=value;if(range.Min==null||range.Min>value)range.Min=value;}return range;};}/********************************************************************************
|
|
12469
12470
|
* 版本信息输出
|
|
12470
12471
|
*
|
|
12471
|
-
*/var HQCHART_VERSION="1.1.
|
|
12472
|
+
*/var HQCHART_VERSION="1.1.12441";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();//把给外界调用的方法暴露出来
|
|
12472
12473
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
12473
12474
|
// BaseIndex:BaseIndex,
|
|
12474
12475
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
|
@@ -2411,15 +2411,15 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
2411
2411
|
//大于
|
|
2412
2412
|
this.GT=function(data,data2)
|
|
2413
2413
|
{
|
|
2414
|
-
let isNumber=
|
|
2415
|
-
let isNumber2=
|
|
2414
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
2415
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
2416
2416
|
|
|
2417
2417
|
//单数值比较
|
|
2418
2418
|
if (isNumber && isNumber2) return (data>data2 ? 1 : 0);
|
|
2419
2419
|
|
|
2420
2420
|
//都是数组比较
|
|
2421
2421
|
let result=[];
|
|
2422
|
-
if (
|
|
2422
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
2423
2423
|
{
|
|
2424
2424
|
let count=Math.max(data.length, data2.length);
|
|
2425
2425
|
for(let i=0;i<count;++i)
|
|
@@ -2435,7 +2435,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
2435
2435
|
return result;
|
|
2436
2436
|
}
|
|
2437
2437
|
|
|
2438
|
-
if (isNumber) //单数据-数组
|
|
2438
|
+
if (isNumber && Array.isArray(data2)) //单数据-数组
|
|
2439
2439
|
{
|
|
2440
2440
|
for(let i in data2)
|
|
2441
2441
|
{
|
|
@@ -2443,7 +2443,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
2443
2443
|
if ( !isNaN(data) && !isNaN(data2[i]) ) result[i]=(data>data2[i] ? 1 : 0);
|
|
2444
2444
|
}
|
|
2445
2445
|
}
|
|
2446
|
-
else
|
|
2446
|
+
else if (isNumber2 && Array.isArray(data)) //数组-单数据
|
|
2447
2447
|
{
|
|
2448
2448
|
for(let i in data)
|
|
2449
2449
|
{
|
|
@@ -2458,15 +2458,15 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
2458
2458
|
//大于等于
|
|
2459
2459
|
this.GTE=function(data,data2)
|
|
2460
2460
|
{
|
|
2461
|
-
let isNumber=
|
|
2462
|
-
let isNumber2=
|
|
2461
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
2462
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
2463
2463
|
|
|
2464
2464
|
//单数值比较
|
|
2465
2465
|
if (isNumber && isNumber2) return (data>=data2 ? 1 : 0);
|
|
2466
2466
|
|
|
2467
2467
|
//都是数组比较
|
|
2468
2468
|
let result=[];
|
|
2469
|
-
if (
|
|
2469
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
2470
2470
|
{
|
|
2471
2471
|
let count=Math.max(data.length, data2.length);
|
|
2472
2472
|
for(let i=0;i<count;++i)
|
|
@@ -2482,7 +2482,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
2482
2482
|
return result;
|
|
2483
2483
|
}
|
|
2484
2484
|
|
|
2485
|
-
if (isNumber) //单数据-数组
|
|
2485
|
+
if (isNumber && Array.isArray(data2)) //单数据-数组
|
|
2486
2486
|
{
|
|
2487
2487
|
for(let i in data2)
|
|
2488
2488
|
{
|
|
@@ -2490,7 +2490,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
2490
2490
|
if ( !isNaN(data) && !isNaN(data2[i]) ) result[i]=(data>=data2[i] ? 1 : 0);
|
|
2491
2491
|
}
|
|
2492
2492
|
}
|
|
2493
|
-
else
|
|
2493
|
+
else if (isNumber2 && Array.isArray(data)) //数组-单数据
|
|
2494
2494
|
{
|
|
2495
2495
|
for(let i in data)
|
|
2496
2496
|
{
|
|
@@ -2505,15 +2505,15 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
2505
2505
|
//小于
|
|
2506
2506
|
this.LT=function(data,data2)
|
|
2507
2507
|
{
|
|
2508
|
-
let isNumber=
|
|
2509
|
-
let isNumber2=
|
|
2508
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
2509
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
2510
2510
|
|
|
2511
2511
|
//单数值比较
|
|
2512
2512
|
if (isNumber && isNumber2) return (data<data2 ? 1 : 0);
|
|
2513
2513
|
|
|
2514
2514
|
//都是数组比较
|
|
2515
2515
|
let result=[];
|
|
2516
|
-
if (
|
|
2516
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
2517
2517
|
{
|
|
2518
2518
|
let count=Math.max(data.length, data2.length);
|
|
2519
2519
|
for(let i=0;i<count;++i)
|
|
@@ -2529,7 +2529,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
2529
2529
|
return result;
|
|
2530
2530
|
}
|
|
2531
2531
|
|
|
2532
|
-
if (isNumber) //单数据-数组
|
|
2532
|
+
if (isNumber && Array.isArray(data2)) //单数据-数组
|
|
2533
2533
|
{
|
|
2534
2534
|
for(let i in data2)
|
|
2535
2535
|
{
|
|
@@ -2537,7 +2537,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
2537
2537
|
if ( !isNaN(data) && !isNaN(data2[i]) ) result[i]=(data<data2[i] ? 1 : 0);
|
|
2538
2538
|
}
|
|
2539
2539
|
}
|
|
2540
|
-
else
|
|
2540
|
+
else if (isNumber2 && Array.isArray(data)) //数组-单数据
|
|
2541
2541
|
{
|
|
2542
2542
|
for(let i in data)
|
|
2543
2543
|
{
|
|
@@ -2552,15 +2552,15 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
2552
2552
|
//小于等于
|
|
2553
2553
|
this.LTE=function(data,data2)
|
|
2554
2554
|
{
|
|
2555
|
-
let isNumber=
|
|
2556
|
-
let isNumber2=
|
|
2555
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
2556
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
2557
2557
|
|
|
2558
2558
|
//单数值比较
|
|
2559
2559
|
if (isNumber && isNumber2) return (data>=data2 ? 1 : 0);
|
|
2560
2560
|
|
|
2561
2561
|
//都是数组比较
|
|
2562
2562
|
let result=[];
|
|
2563
|
-
if (
|
|
2563
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
2564
2564
|
{
|
|
2565
2565
|
let count=Math.max(data.length, data2.length);
|
|
2566
2566
|
for(let i=0;i<count;++i)
|
|
@@ -2576,7 +2576,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
2576
2576
|
return result;
|
|
2577
2577
|
}
|
|
2578
2578
|
|
|
2579
|
-
if (isNumber) //单数据-数组
|
|
2579
|
+
if (isNumber && Array.isArray(data2)) //单数据-数组
|
|
2580
2580
|
{
|
|
2581
2581
|
for(let i in data2)
|
|
2582
2582
|
{
|
|
@@ -2584,7 +2584,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
2584
2584
|
if ( !isNaN(data) && !isNaN(data2[i]) ) result[i]=(data<=data2[i] ? 1 : 0);
|
|
2585
2585
|
}
|
|
2586
2586
|
}
|
|
2587
|
-
else
|
|
2587
|
+
else if (isNumber2 && Array.isArray(data)) //数组-单数据
|
|
2588
2588
|
{
|
|
2589
2589
|
for(let i in data)
|
|
2590
2590
|
{
|
|
@@ -2599,15 +2599,15 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
2599
2599
|
//等于
|
|
2600
2600
|
this.EQ=function(data,data2)
|
|
2601
2601
|
{
|
|
2602
|
-
let isNumber=
|
|
2603
|
-
let isNumber2=
|
|
2602
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
2603
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
2604
2604
|
|
|
2605
2605
|
//单数值比较
|
|
2606
2606
|
if (isNumber && isNumber2) return (data==data2 ? 1 : 0);
|
|
2607
2607
|
|
|
2608
2608
|
//都是数组比较
|
|
2609
2609
|
let result=[];
|
|
2610
|
-
if (
|
|
2610
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
2611
2611
|
{
|
|
2612
2612
|
let count=Math.max(data.length, data2.length);
|
|
2613
2613
|
for(let i=0;i<count;++i)
|
|
@@ -2623,7 +2623,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
2623
2623
|
return result;
|
|
2624
2624
|
}
|
|
2625
2625
|
|
|
2626
|
-
if (isNumber) //单数据-数组
|
|
2626
|
+
if (isNumber && Array.isArray(data2)) //单数据-数组
|
|
2627
2627
|
{
|
|
2628
2628
|
for(let i in data2)
|
|
2629
2629
|
{
|
|
@@ -2631,7 +2631,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
2631
2631
|
if ( !isNaN(data) && !isNaN(data2[i]) ) result[i]=(data==data2[i] ? 1 : 0);
|
|
2632
2632
|
}
|
|
2633
2633
|
}
|
|
2634
|
-
else
|
|
2634
|
+
else if (isNumber2 && Array.isArray(data)) //数组-单数据
|
|
2635
2635
|
{
|
|
2636
2636
|
for(let i in data)
|
|
2637
2637
|
{
|
|
@@ -2646,15 +2646,15 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
2646
2646
|
//不等于
|
|
2647
2647
|
this.NEQ=function(data,data2)
|
|
2648
2648
|
{
|
|
2649
|
-
let isNumber=
|
|
2650
|
-
let isNumber2=
|
|
2649
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
2650
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
2651
2651
|
|
|
2652
2652
|
//单数值比较
|
|
2653
2653
|
if (isNumber && isNumber2) return (data!=data2 ? 1 : 0);
|
|
2654
2654
|
|
|
2655
2655
|
//都是数组比较
|
|
2656
2656
|
let result=[];
|
|
2657
|
-
if (
|
|
2657
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
2658
2658
|
{
|
|
2659
2659
|
let count=Math.max(data.length, data2.length);
|
|
2660
2660
|
for(let i=0;i<count;++i)
|
|
@@ -2670,7 +2670,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
2670
2670
|
return result;
|
|
2671
2671
|
}
|
|
2672
2672
|
|
|
2673
|
-
if (isNumber) //单数据-数组
|
|
2673
|
+
if (isNumber && Array.isArray(data2)) //单数据-数组
|
|
2674
2674
|
{
|
|
2675
2675
|
for(let i in data2)
|
|
2676
2676
|
{
|
|
@@ -2678,7 +2678,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
2678
2678
|
if ( !isNaN(data) && !isNaN(data2[i]) ) result[i]=(data!=data2[i] ? 1 : 0);
|
|
2679
2679
|
}
|
|
2680
2680
|
}
|
|
2681
|
-
else
|
|
2681
|
+
else if (isNumber2 && Array.isArray(data)) //数组-单数据
|
|
2682
2682
|
{
|
|
2683
2683
|
for(let i in data)
|
|
2684
2684
|
{
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -6692,6 +6692,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
6692
6692
|
for(var k=0; k<overlayItem.ChartPaint.length; ++k)
|
|
6693
6693
|
{
|
|
6694
6694
|
var paint=overlayItem.ChartPaint[k];
|
|
6695
|
+
if (paint.IsShow==false)
|
|
6696
|
+
continue; //隐藏的图形不计算
|
|
6695
6697
|
var range=paint.GetMaxMin();
|
|
6696
6698
|
if (range==null || range.Max==null || range.Min==null) continue;
|
|
6697
6699
|
|
|
@@ -42428,7 +42430,7 @@ IFrameSplitOperator.IsNumber=function(value)
|
|
|
42428
42430
|
if (value==null) return false;
|
|
42429
42431
|
if (isNaN(value)) return false;
|
|
42430
42432
|
|
|
42431
|
-
return
|
|
42433
|
+
return typeof(value)=='number';
|
|
42432
42434
|
}
|
|
42433
42435
|
|
|
42434
42436
|
//判断是否是正数
|
|
@@ -44290,13 +44292,13 @@ function FrameSplitMinutePriceY()
|
|
|
44290
44292
|
if (IFrameSplitOperator.IsNumber(range.Max) && max<range.Max) max=range.Max;
|
|
44291
44293
|
if (IFrameSplitOperator.IsNumber(range.Min) && min>range.Min) min=range.Min;
|
|
44292
44294
|
|
|
44293
|
-
|
|
44294
|
-
|
|
44295
|
-
|
|
44296
|
-
|
|
44297
|
-
|
|
44298
|
-
|
|
44299
|
-
|
|
44295
|
+
//叠加指标
|
|
44296
|
+
var overlayRange=this.GetOverlayMaxMin();
|
|
44297
|
+
if (overlayRange)
|
|
44298
|
+
{
|
|
44299
|
+
if (IFrameSplitOperator.IsNumber(overlayRange.Max) && overlayRange.Max>max) max=overlayRange.Max;
|
|
44300
|
+
if (IFrameSplitOperator.IsNumber(overlayRange.Min) && overlayRange.Min<min) min=overlayRange.Min;
|
|
44301
|
+
}
|
|
44300
44302
|
|
|
44301
44303
|
|
|
44302
44304
|
return { Max:max, Min:min };
|
|
@@ -44322,6 +44324,8 @@ function FrameSplitMinutePriceY()
|
|
|
44322
44324
|
for(var j=0;j<item.ChartPaint.length; ++j)
|
|
44323
44325
|
{
|
|
44324
44326
|
var paint=item.ChartPaint[j];
|
|
44327
|
+
if (paint.IsShow==false) continue;
|
|
44328
|
+
|
|
44325
44329
|
var value=paint.GetMaxMin();
|
|
44326
44330
|
if (value==null || value.Max==null || value.Min==null) continue;
|
|
44327
44331
|
|
|
@@ -10772,6 +10772,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
10772
10772
|
for(var k=0; k<overlayItem.ChartPaint.length; ++k)
|
|
10773
10773
|
{
|
|
10774
10774
|
var paint=overlayItem.ChartPaint[k];
|
|
10775
|
+
if (paint.IsShow==false)
|
|
10776
|
+
continue; //隐藏的图形不计算
|
|
10775
10777
|
var range=paint.GetMaxMin();
|
|
10776
10778
|
if (range==null || range.Max==null || range.Min==null) continue;
|
|
10777
10779
|
|
|
@@ -46508,7 +46510,7 @@ IFrameSplitOperator.IsNumber=function(value)
|
|
|
46508
46510
|
if (value==null) return false;
|
|
46509
46511
|
if (isNaN(value)) return false;
|
|
46510
46512
|
|
|
46511
|
-
return
|
|
46513
|
+
return typeof(value)=='number';
|
|
46512
46514
|
}
|
|
46513
46515
|
|
|
46514
46516
|
//判断是否是正数
|
|
@@ -48370,13 +48372,13 @@ function FrameSplitMinutePriceY()
|
|
|
48370
48372
|
if (IFrameSplitOperator.IsNumber(range.Max) && max<range.Max) max=range.Max;
|
|
48371
48373
|
if (IFrameSplitOperator.IsNumber(range.Min) && min>range.Min) min=range.Min;
|
|
48372
48374
|
|
|
48373
|
-
|
|
48374
|
-
|
|
48375
|
-
|
|
48376
|
-
|
|
48377
|
-
|
|
48378
|
-
|
|
48379
|
-
|
|
48375
|
+
//叠加指标
|
|
48376
|
+
var overlayRange=this.GetOverlayMaxMin();
|
|
48377
|
+
if (overlayRange)
|
|
48378
|
+
{
|
|
48379
|
+
if (IFrameSplitOperator.IsNumber(overlayRange.Max) && overlayRange.Max>max) max=overlayRange.Max;
|
|
48380
|
+
if (IFrameSplitOperator.IsNumber(overlayRange.Min) && overlayRange.Min<min) min=overlayRange.Min;
|
|
48381
|
+
}
|
|
48380
48382
|
|
|
48381
48383
|
|
|
48382
48384
|
return { Max:max, Min:min };
|
|
@@ -48402,6 +48404,8 @@ function FrameSplitMinutePriceY()
|
|
|
48402
48404
|
for(var j=0;j<item.ChartPaint.length; ++j)
|
|
48403
48405
|
{
|
|
48404
48406
|
var paint=item.ChartPaint[j];
|
|
48407
|
+
if (paint.IsShow==false) continue;
|
|
48408
|
+
|
|
48405
48409
|
var value=paint.GetMaxMin();
|
|
48406
48410
|
if (value==null || value.Max==null || value.Min==null) continue;
|
|
48407
48411
|
|
|
@@ -94500,15 +94504,15 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94500
94504
|
//大于
|
|
94501
94505
|
this.GT=function(data,data2)
|
|
94502
94506
|
{
|
|
94503
|
-
let isNumber=
|
|
94504
|
-
let isNumber2=
|
|
94507
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
94508
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
94505
94509
|
|
|
94506
94510
|
//单数值比较
|
|
94507
94511
|
if (isNumber && isNumber2) return (data>data2 ? 1 : 0);
|
|
94508
94512
|
|
|
94509
94513
|
//都是数组比较
|
|
94510
94514
|
let result=[];
|
|
94511
|
-
if (
|
|
94515
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
94512
94516
|
{
|
|
94513
94517
|
let count=Math.max(data.length, data2.length);
|
|
94514
94518
|
for(let i=0;i<count;++i)
|
|
@@ -94524,7 +94528,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94524
94528
|
return result;
|
|
94525
94529
|
}
|
|
94526
94530
|
|
|
94527
|
-
if (isNumber) //单数据-数组
|
|
94531
|
+
if (isNumber && Array.isArray(data2)) //单数据-数组
|
|
94528
94532
|
{
|
|
94529
94533
|
for(let i in data2)
|
|
94530
94534
|
{
|
|
@@ -94532,7 +94536,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94532
94536
|
if ( !isNaN(data) && !isNaN(data2[i]) ) result[i]=(data>data2[i] ? 1 : 0);
|
|
94533
94537
|
}
|
|
94534
94538
|
}
|
|
94535
|
-
else
|
|
94539
|
+
else if (isNumber2 && Array.isArray(data)) //数组-单数据
|
|
94536
94540
|
{
|
|
94537
94541
|
for(let i in data)
|
|
94538
94542
|
{
|
|
@@ -94547,15 +94551,15 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94547
94551
|
//大于等于
|
|
94548
94552
|
this.GTE=function(data,data2)
|
|
94549
94553
|
{
|
|
94550
|
-
let isNumber=
|
|
94551
|
-
let isNumber2=
|
|
94554
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
94555
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
94552
94556
|
|
|
94553
94557
|
//单数值比较
|
|
94554
94558
|
if (isNumber && isNumber2) return (data>=data2 ? 1 : 0);
|
|
94555
94559
|
|
|
94556
94560
|
//都是数组比较
|
|
94557
94561
|
let result=[];
|
|
94558
|
-
if (
|
|
94562
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
94559
94563
|
{
|
|
94560
94564
|
let count=Math.max(data.length, data2.length);
|
|
94561
94565
|
for(let i=0;i<count;++i)
|
|
@@ -94571,7 +94575,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94571
94575
|
return result;
|
|
94572
94576
|
}
|
|
94573
94577
|
|
|
94574
|
-
if (isNumber) //单数据-数组
|
|
94578
|
+
if (isNumber && Array.isArray(data2)) //单数据-数组
|
|
94575
94579
|
{
|
|
94576
94580
|
for(let i in data2)
|
|
94577
94581
|
{
|
|
@@ -94579,7 +94583,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94579
94583
|
if ( !isNaN(data) && !isNaN(data2[i]) ) result[i]=(data>=data2[i] ? 1 : 0);
|
|
94580
94584
|
}
|
|
94581
94585
|
}
|
|
94582
|
-
else
|
|
94586
|
+
else if (isNumber2 && Array.isArray(data)) //数组-单数据
|
|
94583
94587
|
{
|
|
94584
94588
|
for(let i in data)
|
|
94585
94589
|
{
|
|
@@ -94594,15 +94598,15 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94594
94598
|
//小于
|
|
94595
94599
|
this.LT=function(data,data2)
|
|
94596
94600
|
{
|
|
94597
|
-
let isNumber=
|
|
94598
|
-
let isNumber2=
|
|
94601
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
94602
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
94599
94603
|
|
|
94600
94604
|
//单数值比较
|
|
94601
94605
|
if (isNumber && isNumber2) return (data<data2 ? 1 : 0);
|
|
94602
94606
|
|
|
94603
94607
|
//都是数组比较
|
|
94604
94608
|
let result=[];
|
|
94605
|
-
if (
|
|
94609
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
94606
94610
|
{
|
|
94607
94611
|
let count=Math.max(data.length, data2.length);
|
|
94608
94612
|
for(let i=0;i<count;++i)
|
|
@@ -94618,7 +94622,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94618
94622
|
return result;
|
|
94619
94623
|
}
|
|
94620
94624
|
|
|
94621
|
-
if (isNumber) //单数据-数组
|
|
94625
|
+
if (isNumber && Array.isArray(data2)) //单数据-数组
|
|
94622
94626
|
{
|
|
94623
94627
|
for(let i in data2)
|
|
94624
94628
|
{
|
|
@@ -94626,7 +94630,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94626
94630
|
if ( !isNaN(data) && !isNaN(data2[i]) ) result[i]=(data<data2[i] ? 1 : 0);
|
|
94627
94631
|
}
|
|
94628
94632
|
}
|
|
94629
|
-
else
|
|
94633
|
+
else if (isNumber2 && Array.isArray(data)) //数组-单数据
|
|
94630
94634
|
{
|
|
94631
94635
|
for(let i in data)
|
|
94632
94636
|
{
|
|
@@ -94641,15 +94645,15 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94641
94645
|
//小于等于
|
|
94642
94646
|
this.LTE=function(data,data2)
|
|
94643
94647
|
{
|
|
94644
|
-
let isNumber=
|
|
94645
|
-
let isNumber2=
|
|
94648
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
94649
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
94646
94650
|
|
|
94647
94651
|
//单数值比较
|
|
94648
94652
|
if (isNumber && isNumber2) return (data>=data2 ? 1 : 0);
|
|
94649
94653
|
|
|
94650
94654
|
//都是数组比较
|
|
94651
94655
|
let result=[];
|
|
94652
|
-
if (
|
|
94656
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
94653
94657
|
{
|
|
94654
94658
|
let count=Math.max(data.length, data2.length);
|
|
94655
94659
|
for(let i=0;i<count;++i)
|
|
@@ -94665,7 +94669,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94665
94669
|
return result;
|
|
94666
94670
|
}
|
|
94667
94671
|
|
|
94668
|
-
if (isNumber) //单数据-数组
|
|
94672
|
+
if (isNumber && Array.isArray(data2)) //单数据-数组
|
|
94669
94673
|
{
|
|
94670
94674
|
for(let i in data2)
|
|
94671
94675
|
{
|
|
@@ -94673,7 +94677,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94673
94677
|
if ( !isNaN(data) && !isNaN(data2[i]) ) result[i]=(data<=data2[i] ? 1 : 0);
|
|
94674
94678
|
}
|
|
94675
94679
|
}
|
|
94676
|
-
else
|
|
94680
|
+
else if (isNumber2 && Array.isArray(data)) //数组-单数据
|
|
94677
94681
|
{
|
|
94678
94682
|
for(let i in data)
|
|
94679
94683
|
{
|
|
@@ -94688,15 +94692,15 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94688
94692
|
//等于
|
|
94689
94693
|
this.EQ=function(data,data2)
|
|
94690
94694
|
{
|
|
94691
|
-
let isNumber=
|
|
94692
|
-
let isNumber2=
|
|
94695
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
94696
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
94693
94697
|
|
|
94694
94698
|
//单数值比较
|
|
94695
94699
|
if (isNumber && isNumber2) return (data==data2 ? 1 : 0);
|
|
94696
94700
|
|
|
94697
94701
|
//都是数组比较
|
|
94698
94702
|
let result=[];
|
|
94699
|
-
if (
|
|
94703
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
94700
94704
|
{
|
|
94701
94705
|
let count=Math.max(data.length, data2.length);
|
|
94702
94706
|
for(let i=0;i<count;++i)
|
|
@@ -94712,7 +94716,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94712
94716
|
return result;
|
|
94713
94717
|
}
|
|
94714
94718
|
|
|
94715
|
-
if (isNumber) //单数据-数组
|
|
94719
|
+
if (isNumber && Array.isArray(data2)) //单数据-数组
|
|
94716
94720
|
{
|
|
94717
94721
|
for(let i in data2)
|
|
94718
94722
|
{
|
|
@@ -94720,7 +94724,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94720
94724
|
if ( !isNaN(data) && !isNaN(data2[i]) ) result[i]=(data==data2[i] ? 1 : 0);
|
|
94721
94725
|
}
|
|
94722
94726
|
}
|
|
94723
|
-
else
|
|
94727
|
+
else if (isNumber2 && Array.isArray(data)) //数组-单数据
|
|
94724
94728
|
{
|
|
94725
94729
|
for(let i in data)
|
|
94726
94730
|
{
|
|
@@ -94735,15 +94739,15 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94735
94739
|
//不等于
|
|
94736
94740
|
this.NEQ=function(data,data2)
|
|
94737
94741
|
{
|
|
94738
|
-
let isNumber=
|
|
94739
|
-
let isNumber2=
|
|
94742
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
94743
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
94740
94744
|
|
|
94741
94745
|
//单数值比较
|
|
94742
94746
|
if (isNumber && isNumber2) return (data!=data2 ? 1 : 0);
|
|
94743
94747
|
|
|
94744
94748
|
//都是数组比较
|
|
94745
94749
|
let result=[];
|
|
94746
|
-
if (
|
|
94750
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
94747
94751
|
{
|
|
94748
94752
|
let count=Math.max(data.length, data2.length);
|
|
94749
94753
|
for(let i=0;i<count;++i)
|
|
@@ -94759,7 +94763,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94759
94763
|
return result;
|
|
94760
94764
|
}
|
|
94761
94765
|
|
|
94762
|
-
if (isNumber) //单数据-数组
|
|
94766
|
+
if (isNumber && Array.isArray(data2)) //单数据-数组
|
|
94763
94767
|
{
|
|
94764
94768
|
for(let i in data2)
|
|
94765
94769
|
{
|
|
@@ -94767,7 +94771,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94767
94771
|
if ( !isNaN(data) && !isNaN(data2[i]) ) result[i]=(data!=data2[i] ? 1 : 0);
|
|
94768
94772
|
}
|
|
94769
94773
|
}
|
|
94770
|
-
else
|
|
94774
|
+
else if (isNumber2 && Array.isArray(data)) //数组-单数据
|
|
94771
94775
|
{
|
|
94772
94776
|
for(let i in data)
|
|
94773
94777
|
{
|
|
@@ -127637,7 +127641,7 @@ function ScrollBarBGChart()
|
|
|
127637
127641
|
|
|
127638
127642
|
|
|
127639
127643
|
|
|
127640
|
-
var HQCHART_VERSION="1.1.
|
|
127644
|
+
var HQCHART_VERSION="1.1.12441";
|
|
127641
127645
|
|
|
127642
127646
|
function PrintHQChartVersion()
|
|
127643
127647
|
{
|
|
@@ -10816,6 +10816,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
10816
10816
|
for(var k=0; k<overlayItem.ChartPaint.length; ++k)
|
|
10817
10817
|
{
|
|
10818
10818
|
var paint=overlayItem.ChartPaint[k];
|
|
10819
|
+
if (paint.IsShow==false)
|
|
10820
|
+
continue; //隐藏的图形不计算
|
|
10819
10821
|
var range=paint.GetMaxMin();
|
|
10820
10822
|
if (range==null || range.Max==null || range.Min==null) continue;
|
|
10821
10823
|
|
|
@@ -46552,7 +46554,7 @@ IFrameSplitOperator.IsNumber=function(value)
|
|
|
46552
46554
|
if (value==null) return false;
|
|
46553
46555
|
if (isNaN(value)) return false;
|
|
46554
46556
|
|
|
46555
|
-
return
|
|
46557
|
+
return typeof(value)=='number';
|
|
46556
46558
|
}
|
|
46557
46559
|
|
|
46558
46560
|
//判断是否是正数
|
|
@@ -48414,13 +48416,13 @@ function FrameSplitMinutePriceY()
|
|
|
48414
48416
|
if (IFrameSplitOperator.IsNumber(range.Max) && max<range.Max) max=range.Max;
|
|
48415
48417
|
if (IFrameSplitOperator.IsNumber(range.Min) && min>range.Min) min=range.Min;
|
|
48416
48418
|
|
|
48417
|
-
|
|
48418
|
-
|
|
48419
|
-
|
|
48420
|
-
|
|
48421
|
-
|
|
48422
|
-
|
|
48423
|
-
|
|
48419
|
+
//叠加指标
|
|
48420
|
+
var overlayRange=this.GetOverlayMaxMin();
|
|
48421
|
+
if (overlayRange)
|
|
48422
|
+
{
|
|
48423
|
+
if (IFrameSplitOperator.IsNumber(overlayRange.Max) && overlayRange.Max>max) max=overlayRange.Max;
|
|
48424
|
+
if (IFrameSplitOperator.IsNumber(overlayRange.Min) && overlayRange.Min<min) min=overlayRange.Min;
|
|
48425
|
+
}
|
|
48424
48426
|
|
|
48425
48427
|
|
|
48426
48428
|
return { Max:max, Min:min };
|
|
@@ -48446,6 +48448,8 @@ function FrameSplitMinutePriceY()
|
|
|
48446
48448
|
for(var j=0;j<item.ChartPaint.length; ++j)
|
|
48447
48449
|
{
|
|
48448
48450
|
var paint=item.ChartPaint[j];
|
|
48451
|
+
if (paint.IsShow==false) continue;
|
|
48452
|
+
|
|
48449
48453
|
var value=paint.GetMaxMin();
|
|
48450
48454
|
if (value==null || value.Max==null || value.Min==null) continue;
|
|
48451
48455
|
|
|
@@ -94544,15 +94548,15 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94544
94548
|
//大于
|
|
94545
94549
|
this.GT=function(data,data2)
|
|
94546
94550
|
{
|
|
94547
|
-
let isNumber=
|
|
94548
|
-
let isNumber2=
|
|
94551
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
94552
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
94549
94553
|
|
|
94550
94554
|
//单数值比较
|
|
94551
94555
|
if (isNumber && isNumber2) return (data>data2 ? 1 : 0);
|
|
94552
94556
|
|
|
94553
94557
|
//都是数组比较
|
|
94554
94558
|
let result=[];
|
|
94555
|
-
if (
|
|
94559
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
94556
94560
|
{
|
|
94557
94561
|
let count=Math.max(data.length, data2.length);
|
|
94558
94562
|
for(let i=0;i<count;++i)
|
|
@@ -94568,7 +94572,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94568
94572
|
return result;
|
|
94569
94573
|
}
|
|
94570
94574
|
|
|
94571
|
-
if (isNumber) //单数据-数组
|
|
94575
|
+
if (isNumber && Array.isArray(data2)) //单数据-数组
|
|
94572
94576
|
{
|
|
94573
94577
|
for(let i in data2)
|
|
94574
94578
|
{
|
|
@@ -94576,7 +94580,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94576
94580
|
if ( !isNaN(data) && !isNaN(data2[i]) ) result[i]=(data>data2[i] ? 1 : 0);
|
|
94577
94581
|
}
|
|
94578
94582
|
}
|
|
94579
|
-
else
|
|
94583
|
+
else if (isNumber2 && Array.isArray(data)) //数组-单数据
|
|
94580
94584
|
{
|
|
94581
94585
|
for(let i in data)
|
|
94582
94586
|
{
|
|
@@ -94591,15 +94595,15 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94591
94595
|
//大于等于
|
|
94592
94596
|
this.GTE=function(data,data2)
|
|
94593
94597
|
{
|
|
94594
|
-
let isNumber=
|
|
94595
|
-
let isNumber2=
|
|
94598
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
94599
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
94596
94600
|
|
|
94597
94601
|
//单数值比较
|
|
94598
94602
|
if (isNumber && isNumber2) return (data>=data2 ? 1 : 0);
|
|
94599
94603
|
|
|
94600
94604
|
//都是数组比较
|
|
94601
94605
|
let result=[];
|
|
94602
|
-
if (
|
|
94606
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
94603
94607
|
{
|
|
94604
94608
|
let count=Math.max(data.length, data2.length);
|
|
94605
94609
|
for(let i=0;i<count;++i)
|
|
@@ -94615,7 +94619,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94615
94619
|
return result;
|
|
94616
94620
|
}
|
|
94617
94621
|
|
|
94618
|
-
if (isNumber) //单数据-数组
|
|
94622
|
+
if (isNumber && Array.isArray(data2)) //单数据-数组
|
|
94619
94623
|
{
|
|
94620
94624
|
for(let i in data2)
|
|
94621
94625
|
{
|
|
@@ -94623,7 +94627,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94623
94627
|
if ( !isNaN(data) && !isNaN(data2[i]) ) result[i]=(data>=data2[i] ? 1 : 0);
|
|
94624
94628
|
}
|
|
94625
94629
|
}
|
|
94626
|
-
else
|
|
94630
|
+
else if (isNumber2 && Array.isArray(data)) //数组-单数据
|
|
94627
94631
|
{
|
|
94628
94632
|
for(let i in data)
|
|
94629
94633
|
{
|
|
@@ -94638,15 +94642,15 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94638
94642
|
//小于
|
|
94639
94643
|
this.LT=function(data,data2)
|
|
94640
94644
|
{
|
|
94641
|
-
let isNumber=
|
|
94642
|
-
let isNumber2=
|
|
94645
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
94646
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
94643
94647
|
|
|
94644
94648
|
//单数值比较
|
|
94645
94649
|
if (isNumber && isNumber2) return (data<data2 ? 1 : 0);
|
|
94646
94650
|
|
|
94647
94651
|
//都是数组比较
|
|
94648
94652
|
let result=[];
|
|
94649
|
-
if (
|
|
94653
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
94650
94654
|
{
|
|
94651
94655
|
let count=Math.max(data.length, data2.length);
|
|
94652
94656
|
for(let i=0;i<count;++i)
|
|
@@ -94662,7 +94666,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94662
94666
|
return result;
|
|
94663
94667
|
}
|
|
94664
94668
|
|
|
94665
|
-
if (isNumber) //单数据-数组
|
|
94669
|
+
if (isNumber && Array.isArray(data2)) //单数据-数组
|
|
94666
94670
|
{
|
|
94667
94671
|
for(let i in data2)
|
|
94668
94672
|
{
|
|
@@ -94670,7 +94674,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94670
94674
|
if ( !isNaN(data) && !isNaN(data2[i]) ) result[i]=(data<data2[i] ? 1 : 0);
|
|
94671
94675
|
}
|
|
94672
94676
|
}
|
|
94673
|
-
else
|
|
94677
|
+
else if (isNumber2 && Array.isArray(data)) //数组-单数据
|
|
94674
94678
|
{
|
|
94675
94679
|
for(let i in data)
|
|
94676
94680
|
{
|
|
@@ -94685,15 +94689,15 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94685
94689
|
//小于等于
|
|
94686
94690
|
this.LTE=function(data,data2)
|
|
94687
94691
|
{
|
|
94688
|
-
let isNumber=
|
|
94689
|
-
let isNumber2=
|
|
94692
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
94693
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
94690
94694
|
|
|
94691
94695
|
//单数值比较
|
|
94692
94696
|
if (isNumber && isNumber2) return (data>=data2 ? 1 : 0);
|
|
94693
94697
|
|
|
94694
94698
|
//都是数组比较
|
|
94695
94699
|
let result=[];
|
|
94696
|
-
if (
|
|
94700
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
94697
94701
|
{
|
|
94698
94702
|
let count=Math.max(data.length, data2.length);
|
|
94699
94703
|
for(let i=0;i<count;++i)
|
|
@@ -94709,7 +94713,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94709
94713
|
return result;
|
|
94710
94714
|
}
|
|
94711
94715
|
|
|
94712
|
-
if (isNumber) //单数据-数组
|
|
94716
|
+
if (isNumber && Array.isArray(data2)) //单数据-数组
|
|
94713
94717
|
{
|
|
94714
94718
|
for(let i in data2)
|
|
94715
94719
|
{
|
|
@@ -94717,7 +94721,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94717
94721
|
if ( !isNaN(data) && !isNaN(data2[i]) ) result[i]=(data<=data2[i] ? 1 : 0);
|
|
94718
94722
|
}
|
|
94719
94723
|
}
|
|
94720
|
-
else
|
|
94724
|
+
else if (isNumber2 && Array.isArray(data)) //数组-单数据
|
|
94721
94725
|
{
|
|
94722
94726
|
for(let i in data)
|
|
94723
94727
|
{
|
|
@@ -94732,15 +94736,15 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94732
94736
|
//等于
|
|
94733
94737
|
this.EQ=function(data,data2)
|
|
94734
94738
|
{
|
|
94735
|
-
let isNumber=
|
|
94736
|
-
let isNumber2=
|
|
94739
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
94740
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
94737
94741
|
|
|
94738
94742
|
//单数值比较
|
|
94739
94743
|
if (isNumber && isNumber2) return (data==data2 ? 1 : 0);
|
|
94740
94744
|
|
|
94741
94745
|
//都是数组比较
|
|
94742
94746
|
let result=[];
|
|
94743
|
-
if (
|
|
94747
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
94744
94748
|
{
|
|
94745
94749
|
let count=Math.max(data.length, data2.length);
|
|
94746
94750
|
for(let i=0;i<count;++i)
|
|
@@ -94756,7 +94760,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94756
94760
|
return result;
|
|
94757
94761
|
}
|
|
94758
94762
|
|
|
94759
|
-
if (isNumber) //单数据-数组
|
|
94763
|
+
if (isNumber && Array.isArray(data2)) //单数据-数组
|
|
94760
94764
|
{
|
|
94761
94765
|
for(let i in data2)
|
|
94762
94766
|
{
|
|
@@ -94764,7 +94768,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94764
94768
|
if ( !isNaN(data) && !isNaN(data2[i]) ) result[i]=(data==data2[i] ? 1 : 0);
|
|
94765
94769
|
}
|
|
94766
94770
|
}
|
|
94767
|
-
else
|
|
94771
|
+
else if (isNumber2 && Array.isArray(data)) //数组-单数据
|
|
94768
94772
|
{
|
|
94769
94773
|
for(let i in data)
|
|
94770
94774
|
{
|
|
@@ -94779,15 +94783,15 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94779
94783
|
//不等于
|
|
94780
94784
|
this.NEQ=function(data,data2)
|
|
94781
94785
|
{
|
|
94782
|
-
let isNumber=
|
|
94783
|
-
let isNumber2=
|
|
94786
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
94787
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
94784
94788
|
|
|
94785
94789
|
//单数值比较
|
|
94786
94790
|
if (isNumber && isNumber2) return (data!=data2 ? 1 : 0);
|
|
94787
94791
|
|
|
94788
94792
|
//都是数组比较
|
|
94789
94793
|
let result=[];
|
|
94790
|
-
if (
|
|
94794
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
94791
94795
|
{
|
|
94792
94796
|
let count=Math.max(data.length, data2.length);
|
|
94793
94797
|
for(let i=0;i<count;++i)
|
|
@@ -94803,7 +94807,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94803
94807
|
return result;
|
|
94804
94808
|
}
|
|
94805
94809
|
|
|
94806
|
-
if (isNumber) //单数据-数组
|
|
94810
|
+
if (isNumber && Array.isArray(data2)) //单数据-数组
|
|
94807
94811
|
{
|
|
94808
94812
|
for(let i in data2)
|
|
94809
94813
|
{
|
|
@@ -94811,7 +94815,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
94811
94815
|
if ( !isNaN(data) && !isNaN(data2[i]) ) result[i]=(data!=data2[i] ? 1 : 0);
|
|
94812
94816
|
}
|
|
94813
94817
|
}
|
|
94814
|
-
else
|
|
94818
|
+
else if (isNumber2 && Array.isArray(data)) //数组-单数据
|
|
94815
94819
|
{
|
|
94816
94820
|
for(let i in data)
|
|
94817
94821
|
{
|
|
@@ -127681,7 +127685,7 @@ function ScrollBarBGChart()
|
|
|
127681
127685
|
|
|
127682
127686
|
|
|
127683
127687
|
|
|
127684
|
-
var HQCHART_VERSION="1.1.
|
|
127688
|
+
var HQCHART_VERSION="1.1.12441";
|
|
127685
127689
|
|
|
127686
127690
|
function PrintHQChartVersion()
|
|
127687
127691
|
{
|
|
@@ -2499,13 +2499,27 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2499
2499
|
let result=[];
|
|
2500
2500
|
if (typeof(n)=='number')
|
|
2501
2501
|
{
|
|
2502
|
-
if (data
|
|
2503
|
-
|
|
2504
|
-
|
|
2505
|
-
|
|
2506
|
-
|
|
2507
|
-
|
|
2508
|
-
|
|
2502
|
+
if (IFrameSplitOperator.IsNumber(data)) //单数值
|
|
2503
|
+
{
|
|
2504
|
+
if (n<0) return result;
|
|
2505
|
+
var kData=this.SymbolData.Data.Data;
|
|
2506
|
+
if (!kData || kData.length<=0) return result;
|
|
2507
|
+
var count=kData.length;
|
|
2508
|
+
for(var i=n;i<count;++i)
|
|
2509
|
+
{
|
|
2510
|
+
result[i]=data;
|
|
2511
|
+
}
|
|
2512
|
+
}
|
|
2513
|
+
else
|
|
2514
|
+
{
|
|
2515
|
+
if (data.length<=0) return result;
|
|
2516
|
+
if (n>=data.length) return result;
|
|
2517
|
+
|
|
2518
|
+
result=data.slice(0,data.length-n);
|
|
2519
|
+
|
|
2520
|
+
for(let i=0;i<n;++i)
|
|
2521
|
+
result.unshift(null);
|
|
2522
|
+
}
|
|
2509
2523
|
}
|
|
2510
2524
|
else //n 为数组的情况
|
|
2511
2525
|
{
|
|
@@ -3674,9 +3688,21 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
3674
3688
|
{
|
|
3675
3689
|
if (n==0)
|
|
3676
3690
|
{
|
|
3677
|
-
|
|
3691
|
+
var start=-1;
|
|
3692
|
+
for(var i=0; i<data.length; ++i) //取第1个有效数
|
|
3693
|
+
{
|
|
3694
|
+
if (IFrameSplitOperator.IsNumber(data[i]))
|
|
3695
|
+
{
|
|
3696
|
+
start=i;
|
|
3697
|
+
break;
|
|
3698
|
+
}
|
|
3699
|
+
}
|
|
3700
|
+
|
|
3701
|
+
if (start<0) return result;
|
|
3702
|
+
|
|
3703
|
+
result[start]=data[start];
|
|
3678
3704
|
|
|
3679
|
-
for (var i=1; i<data.length; ++i)
|
|
3705
|
+
for (var i=start+1; i<data.length; ++i)
|
|
3680
3706
|
{
|
|
3681
3707
|
result[i] = result[i-1]+data[i];
|
|
3682
3708
|
}
|
|
@@ -1253,9 +1253,50 @@ function FrameSplitMinutePriceY()
|
|
|
1253
1253
|
if (min > this.Low) min = this.Low;
|
|
1254
1254
|
}
|
|
1255
1255
|
|
|
1256
|
+
//叠加指标
|
|
1257
|
+
var overlayRange=this.GetOverlayMaxMin();
|
|
1258
|
+
if (overlayRange)
|
|
1259
|
+
{
|
|
1260
|
+
if (IFrameSplitOperator.IsNumber(overlayRange.Max) && overlayRange.Max>max) max=overlayRange.Max;
|
|
1261
|
+
if (IFrameSplitOperator.IsNumber(overlayRange.Min) && overlayRange.Min<min) min=overlayRange.Min;
|
|
1262
|
+
}
|
|
1263
|
+
|
|
1256
1264
|
return { Max: max, Min: min };
|
|
1257
1265
|
}
|
|
1258
1266
|
|
|
1267
|
+
//获取共享Y轴叠加指标最大,最小值
|
|
1268
|
+
this.GetOverlayMaxMin=function()
|
|
1269
|
+
{
|
|
1270
|
+
if (!this.HQChart) return null;
|
|
1271
|
+
if (!this.HQChart.Frame || !this.HQChart.Frame.SubFrame) return null;
|
|
1272
|
+
var subFrame=this.HQChart.Frame.SubFrame[0];
|
|
1273
|
+
if (!subFrame) return null;
|
|
1274
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(subFrame.OverlayIndex)) return null;
|
|
1275
|
+
|
|
1276
|
+
var range={ Max:null, Min:null };
|
|
1277
|
+
for(var i=0;i<subFrame.OverlayIndex.length;++i)
|
|
1278
|
+
{
|
|
1279
|
+
var item=subFrame.OverlayIndex[i];
|
|
1280
|
+
if (!item || !item.Frame) continue;
|
|
1281
|
+
var overlayFrame=item.Frame;
|
|
1282
|
+
if (overlayFrame.IsShareY!=true) continue;
|
|
1283
|
+
if (overlayFrame.IsCalculateYMaxMin===false) continue; //叠加坐标Y轴不调整
|
|
1284
|
+
for(var j=0;j<item.ChartPaint.length; ++j)
|
|
1285
|
+
{
|
|
1286
|
+
var paint=item.ChartPaint[j];
|
|
1287
|
+
if (paint.IsShow==false) continue;
|
|
1288
|
+
|
|
1289
|
+
var value=paint.GetMaxMin();
|
|
1290
|
+
if (value==null || value.Max==null || value.Min==null) continue;
|
|
1291
|
+
|
|
1292
|
+
if (range.Max==null || range.Max<value.Max) range.Max=value.Max;
|
|
1293
|
+
if (range.Min==null || range.Min>value.Min ) range.Min=value.Min;
|
|
1294
|
+
}
|
|
1295
|
+
}
|
|
1296
|
+
|
|
1297
|
+
return range;
|
|
1298
|
+
}
|
|
1299
|
+
|
|
1259
1300
|
this.USASplit=function(range)
|
|
1260
1301
|
{
|
|
1261
1302
|
var max=range.Max;
|
|
@@ -8368,6 +8368,7 @@ function MinuteChartContainer(uielement)
|
|
|
8368
8368
|
frame.YSplitOperator = new FrameSplitMinutePriceY();
|
|
8369
8369
|
frame.YSplitOperator.FrameSplitData = this.FrameSplitData.get('price');
|
|
8370
8370
|
frame.YSplitOperator.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
|
|
8371
|
+
frame.YSplitOperator.HQChart=this;
|
|
8371
8372
|
}
|
|
8372
8373
|
else
|
|
8373
8374
|
{
|