全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
老师,K线图下面加载一个Macd技术指标,这算两个图层还是算一个图层
2022-04-17 18:21

老师,K线图下面加载一个Macd技术指标,这算两个图层还是算一个图层

kyover

一个

图层仅仅是指数据源

macd那是图层的子图

2022-04-18 08:47
president

老师,K线图下面加个了一个macd 技术指标,为什么K线和技术指标都眯成一条线了,中间的间距很大,没法看,这是什么原因呢,谢谢

2024-05-25 13:58
Phoenix129
@president

这个MACD指标如果不是系统内建指标,而是你自己创建的新指标,即使是完全没有改动的复制黏贴,然后加载使用,默认情况下,显示方式是【主图】而不是【子图】,这样即使出现MACD的量纲与主图K线量纲不同,比如MACD为0.1,K线价格为1000,都放在主图里面,Y轴还要自适应把二者都显示出来,就会出现【K线和技术指标都眯成一条线】,你把自己创建的【MACD】技术指标的显示方式改为【子图】,然后再编译一下,加载运行一下就好了。

\"\"

2024-05-25 14:26
president

老师,您好。公式里面是一个双均线和Macd的组合,这个两个公式都是从复制粘贴过来的,现在加到K线图上,显示方式是主图,K线图上有均线能看清了,但Macd太小还是看不清。如果改成子图,变成了裸K、均线、macd三个独立显示,均线从K线图上分离出来了

2024-05-25 14:49
Phoenix129
@president

那就用下面的代码就搞定了

Params
	Numeric FastLength(12);
	Numeric SlowLength(26);
	Numeric MACDLength(9);
	Numeric Length1(5);
	Numeric Length2(10);
	
Vars
	Plot MaPlt;
	Plot MacdPlt;
	Numeric MACDDiff;
	Numeric AvgMACD;
	Numeric MACDValue;
	
Events
	OnInit(){
		MacdPlt.figure(0);
	}
	
	OnBar(ArrayRef<Integer> indexs){
		Range[0 : DataSourceSize() - 1]{
			MACDDiff = XAverage( Close, FastLength ) - XAverage( Close, SlowLength );
			AvgMACD = XAverage(MACDDiff,MACDLength);
			MACDValue = MACDDiff - AvgMACD;
			
			MacdPlt.line(\"MACDDiff\", MACDDiff);
			MacdPlt.line(\"MACDDEA\", AvgMACD);
			If(MACDValue >= 0){
				MacdPlt.setOption(\"MACD\", \"color\", Red);
				MacdPlt.barv(\"MACD\", MACDValue);
			}Else{
				MacdPlt.setOption(\"MACD\", \"color\", Green);
				MacdPlt.barv(\"MACD\", MACDValue);
			}
			MacdPlt.line(\"零线\", 0);
			
			MaPlt.line(\"MA1\", AverageFC(Close, Length1));
			MaPlt.line(\"MA2\", AverageFC(Close, Length2));
		}
	}
2024-05-25 16:47
president

收到,问题解决了,非常感谢老师

2024-05-26 01:28
您未登录,请先 登录注册 后发表评论
顶部