SyntaxError:Can't assign to function call -coding on a Financial analysis tool
SyntaxError:Can't assign to function call -coding on a Financial analysis tool
def SMMA(column,N):
for i in range(len(column)):
if i <= N:
SMMA(i) = np.nan()
elif i == N + 1:
SMMA(i) = column[:N].mean()
else:
SMMA(i) = (SMMA(i-1)*N + column[i])/ N
平滑移动平均线 (SMMA) 是我最喜欢的财务分析之一 tool.It 不同于广为人知的简单移动平均线工具。下面是定义,上面是我的代码,但是 IDE 一直告诉我 syntaxError:
File "<ipython-input-13-fdcc1fd914c0>", line 6
SMMA(i) = column[:N].mean()
^SyntaxError: can't assign to function call
SMMA定义:
此平滑移动平均线的第一个值计算为简单移动平均线 (SMA):
SUM1 = SUM (CLOSE (i), N)
SMMA1 = SUM1 / N
第二个移动平均线是根据这个公式计算的:
SMMA (i) = (SMMA1*(N-1) + CLOSE (i)) / N
后续移动平均线根据以下公式计算:
PREVSUM = SMMA (i - 1) * N
SMMA (i) = (PREVSUM - SMMA (i - 1) + CLOSE (i)) / N
SMMA(i) 的写法就像调用函数一样。可以将变量分配给函数的输出,但将函数作为变量调用并将其设置为等于值是没有意义的。例如 moving_average = SMMA(i) 会将变量 moving_average 分配给函数 SMMA(i) 的输出,但 SMMA(i) = moving_average 没有意义。希望我有所帮助。
`
SMMA(i) = 4
Traceback (most recent call last):
Python Shell, prompt 5, line 1
Syntax Error: can't assign to function call: <string>, line 1, pos 0
`
你的想法是这样的吗?
def SMMA(column,N):
result = np.empty(len(column))
for i, e in enumerate(column):
if i <= N:
result[i] = np.nan()
elif i == N + 1:
result[i] = column[:N].mean()
else:
result[i] = (result[i-1]*N + e) / N
return result
您可以在 Python 中分配给 result[i]
这样的下标。
除非您 return 或产生一个值或改变一个参数或其他东西,否则该函数不会做任何事情。
以上代码生成并 returns 一个 NumPy 浮点数组,它可能是也可能不是您想要的。 (如果这还不够,请编辑您的问题以阐明预期用途。)
def SMMA(column,N):
for i in range(len(column)):
if i <= N:
SMMA(i) = np.nan()
elif i == N + 1:
SMMA(i) = column[:N].mean()
else:
SMMA(i) = (SMMA(i-1)*N + column[i])/ N
平滑移动平均线 (SMMA) 是我最喜欢的财务分析之一 tool.It 不同于广为人知的简单移动平均线工具。下面是定义,上面是我的代码,但是 IDE 一直告诉我 syntaxError:
File "<ipython-input-13-fdcc1fd914c0>", line 6
SMMA(i) = column[:N].mean()
^SyntaxError: can't assign to function call
SMMA定义:
此平滑移动平均线的第一个值计算为简单移动平均线 (SMA):
SUM1 = SUM (CLOSE (i), N)
SMMA1 = SUM1 / N
第二个移动平均线是根据这个公式计算的:
SMMA (i) = (SMMA1*(N-1) + CLOSE (i)) / N
后续移动平均线根据以下公式计算:
PREVSUM = SMMA (i - 1) * N
SMMA (i) = (PREVSUM - SMMA (i - 1) + CLOSE (i)) / N
SMMA(i) 的写法就像调用函数一样。可以将变量分配给函数的输出,但将函数作为变量调用并将其设置为等于值是没有意义的。例如 moving_average = SMMA(i) 会将变量 moving_average 分配给函数 SMMA(i) 的输出,但 SMMA(i) = moving_average 没有意义。希望我有所帮助。 `
SMMA(i) = 4
Traceback (most recent call last):
Python Shell, prompt 5, line 1
Syntax Error: can't assign to function call: <string>, line 1, pos 0
`
你的想法是这样的吗?
def SMMA(column,N):
result = np.empty(len(column))
for i, e in enumerate(column):
if i <= N:
result[i] = np.nan()
elif i == N + 1:
result[i] = column[:N].mean()
else:
result[i] = (result[i-1]*N + e) / N
return result
您可以在 Python 中分配给 result[i]
这样的下标。
除非您 return 或产生一个值或改变一个参数或其他东西,否则该函数不会做任何事情。
以上代码生成并 returns 一个 NumPy 浮点数组,它可能是也可能不是您想要的。 (如果这还不够,请编辑您的问题以阐明预期用途。)