-1
我将另一种语言的指标重写为Python,但我的情节看起来不太对。这是一个图片的情节看起来应该像 用matplotlib绘制指标
但我的情节是这样的
东西它是错的我指示器的底部,但我也不怎么解决它。我的完整代码是here和here是我正在使用的data.csv文件。
def matrixSeries(matrix):
nn = 10 #Smoother
# --Sup/Res Detail
SupResPeriod = 50
SupResPercentage = 100
PricePeriod = 16
ob = 200 #Overbought
os = -200 #Oversold
#OBOS = false
#dynamic = true
high = np.array(r['max'])
low = np.array(r['min'])
close = np.array(r['close'])
ys1 = (high + low + close * 2)/4
rk3 = ta.EMA(ys1, nn)
rk4 = ta.STDDEV(ys1, nn)
rk5 = (ys1 - rk3) * 200 /rk4
rk6 = ta.EMA(rk5, nn)
up = ta.EMA(rk6, nn)
down = ta.EMA(up, nn)
# remove nans in array
upNans = np.isnan(up)
up[upNans] = 0
downNans = np.isnan(down)
down[downNans] = 0
Oo = np.where(up<down, up, down)
Cc= np.where(up<down, down, up)
#color
if matrix == 'color':
color = []
aa = Oo > Cc
bb = up > down
color = np.where(aa , 'red' , np.where(bb, 'green','red') )
return color
#Body Calculations
bodyHigh = np.where(up>down, up, down)
bodyLow = np.where(Oo<down, up, down)
bodyCover = np.where(np.any(up>0) and np.any(down>0), bodyLow, np.where(np.any(up<0) and np.any(down<0), bodyHigh,0))
bodyCover = bodyCover
if matrix == 'cover':
return bodyCover
if matrix == 'top':
return Oo
if matrix == 'bottom':
return Cc
ax3 = plt.subplot2grid((6,4), (0,0),sharex=ax1, rowspan=2, colspan=4)
ax3.bar(r['date'], matrixSeries('top'), width=1.1,linewidth=0, color=matrixSeries('color'))
ax3.bar(r['date'], matrixSeries('bottom'), width=1.1,linewidth=0, color=matrixSeries('color'))
ax3.bar(r['date'], matrixSeries('cover'), width=1.1, linewidth=0, color='black')
ax2.axes.xaxis.set_ticklabels([])
plt.show()
请创建[MCVE。这两个情节之间的区别是什么,你不满意? – ImportanceOfBeingErnest
我很抱歉粘贴这么多,我是Python的noob,它花了我3天来绘制这个指标。这两块地块之间的区别在于我的地块没有在底部显示绿色或红色的酒吧。 [图片](http://imgur.com/a/HeFvf) – user3371372
我敢肯定,将这些代码拼凑在一起是很多工作。然而,我们在这里需要能够帮助你的是一个独立的例子。这是一个示例代码,任何人都可以运行,并且包含最少量的代码来重现问题。这通常可以通过发明一些数据数组并删除代码中的所有部分来完成,这对于仍然看到有问题的部分是不必要的。 – ImportanceOfBeingErnest