回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>下午好</p>
<p>宣布了ADX指示器功能
(链接Python:Average Directive Index(ADX)2定向运动系统计算-<a href="https://www.youtube.com/watch?v=joOWm-GcHTw" rel="nofollow noreferrer">https://www.youtube.com/watch?v=joOWm-GcHTw</a>)</p>
<p>操作过程中出现错误-“TypeError:“内置函数”或“方法”对象不可下标”</p>
<p>在这条线上—
TRDate,TrueRange=TR(日期[x],关闭[x],高点[x],低点[x],打开[x],关闭[x-1])
TypeError:“内置函数”或“方法”对象不可下标</p>
<p>我很高兴能得到任何帮助。
感谢
代码如下</p>
<pre><code>def TR(d,c,h,l,o,yc):
x = h-l
y = abs(h-yc)
z = abs(l-yc)
if y <= x >= z:
TR = x
elif x <= y >= z:
TR = y
elif x <= z >= y:
TR = z
return d, TR
def DM(d,o,h,l,c,yo,yh,yl,yc):
moveUp = h-yh
moveDown = yl-l
if 0 < moveUp > moveDown:
PDM = moveUp
else:
PDM = 0
if 0 < moveDown > moveUp:
NDM = moveDown
else:
NDM = 0
return d,PDM,NDM
def calcDIs(date,openp,highp,lowp,closep,openpy,highpy,lowpy,closepy,tf):
x = 1
TRDates = []
TrueRanges = []
PosDMs = []
NegDMs = []
while x < len(date):
TRDate,TrueRange = TR(date[x],closep[x],highp[x],lowp[x],openp[x],closep[x-1]) << error
TRDates.append(TRDate)
TrueRanges.append(TrueRange)
DMdate,PosDM,NegDM = DM(date[x],openp[x],highp[x],lowp[x],closep[x],openp[x-1],highp[x-1],lowp[-1],closep[x-1]) << I assume that there will be the same error
PosDMs.append(PosDM)
NegDMs.append(NegDM)
x +=1
expPosDM = ExpMovingAverage(PosDMs,14)
expNegDM = ExpMovingAverage(NegDMs,14)
ATR = ExpMovingAverage(TrueRanges,14)
xx = 0
PDIs = []
NDIs = []
while xx < len(ATR):
PDI = 100*(expPosDM[xx]/ATR[xx])
PDIs.append(PDI)
NDI = 100*(expNegDM[xx]/ATR[xx])
NDIs.append(NDI)
xx +=1
return PDIs,NDIs
</code></pre>