首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在循环中分配松本脚本4整数变量时会变成series[integer]?

为什么在循环中分配松本脚本4整数变量时会变成series[integer]?
EN

Stack Overflow用户
提问于 2021-01-08 07:06:03
回答 1查看 2.7K关注 0票数 1

我一直在编写一个TradingView研究报告,在这个问题上,我要将一个length变量传递到ema函数中,并给出了错误:

Cannot call 'ema' with arguments (series[float], series[integer]); available overloads: ema(series[float], integer) => series[float]

我已经将问题的原因缩小到循环中分配的length变量。

下面是一些复制问题的简化代码:

代码语言:javascript
复制
data_source = close
int length = 20

for i = 0 to 1
    length := 20
    
result := ema(data_source, length)

plot(series=result ? result : na, color=color.blue, linewidth=2, transp=0, title='Baseline')

上面的代码与上面的错误一起失败,但是在循环中没有分配length变量的下面的代码工作得很好:

代码语言:javascript
复制
data_source = close
int length = 20
    
result := ema(data_source, length)

plot(series=result ? result : na, color=color.blue, linewidth=2, transp=0, title='Baseline')

我不明白为什么一个简单的integer变量在循环中被赋值时会变成series[integer]

有人能告诉我如何在循环中分配变量而不让它们变成series吗?

耽误您时间,实在对不起

更新:为了节省一些时间,下面是我对这个问题的调查结果:

  • 当一个整数变量在for循环中被赋值时,它会自动从一个整数转换成一个序列,并且同样适用于浮点数。如果您创建一个变量并使用表达式的结果给它赋值(例如;(a=b+ c),如果表达式中的任何变量是一个序列,则结果将是一个序列。
  • 如果将一个值赋给数组的一个元素,它将自动转换为一个序列。
  • 一旦一个变量成为一个序列,就无法将它转换回一个简单的类型,例如整数、浮点数等……
  • 有许多an函数只能接受它们的参数中的一个简单类型,而不是一个序列,例如ema、wma、vwma、linreg、alma和其他。
  • a全局变量不能从函数内部分配,因此,解决方法是使用数组,然后在函数内部推送或设置数组中项的值。但是如上所述,当您这样做时,数组值将被转换为串联值。从一个函数返回多个值的唯一方法是再次使用一个系列.

我添加了一个特性请求,以添加对将系列转换为简单类型的松树脚本语言的支持。你可以在这里看到它:https://trello.com/c/QA6bcL7l

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-08 17:06:07

for循环产生系列。您可以使用接受一系列句点的alexgrover's Ema() function

代码语言:javascript
复制
//@version=4
study("")
Ema(src,p) =>
    ema = 0.
    sf = 2/(p+1)
    ema := nz(ema[1] + sf*(src - ema[1]),src)

data_source = close
int length = 20

for i = 0 to 1
    length := 20

result = Ema(data_source, length)

plot(series=result ? result : na, color=color.blue, linewidth=2, transp=0, title='Baseline')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65624718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档