pine-script - 尝试在 Pine 脚本中制作一个在不同时间尺度上工作的 RSI 指标
问题描述
好的,所以我的代码是这样的:
rsilength = input(14, title="RSI Length", type=input.integer)
//200 SMA
sma = sma(close, input(200))
rsiset = rsi(close, rsilength)
rsiW = security(syminfo.tickerid, "W", rsiset) // 1 Week
rsiD = security(syminfo.tickerid, "D", rsiset) // 1 Day
rsi4h = security(syminfo.tickerid, "240", rsiset) // 4h
if rsi4h == rsiset
sma := sma(close, input(1200))
if rsiD == rsiset
sma := sma(close, input(200))
if rsiW == rsiset
sma := sma(close, input(29))
我试图让 sma 图正确显示在每日、4 小时和每周图表上。
它正在工作。SMA 线在所有 3 个时间框架上都绘制得很好。但我收到警告
每次计算都应调用函数“sma”以保持一致性。建议从此范围中提取调用。
有没有办法写同样的东西而不收到警告?RSI 也可以正常工作(我在代码的下方使用它们。唯一困扰我的是 ifs 中每个 sma 的 3 个警告
解决方案
//@version=4
study("My Script")
var int myInput = 1
rsilength = input(14, title="RSI Length", type=input.integer)
sma = sma(close, input(200))
rsiset = rsi(close, rsilength)
rsiW = security(syminfo.tickerid, "W", rsiset) // 1 Week
rsiD = security(syminfo.tickerid, "D", rsiset) // 1 Day
rsi4h = security(syminfo.tickerid, "240", rsiset) // 4h
if rsi4h == rsiset
myInput := input(1200, "input rsi4h")
else if rsiD == rsiset
myInput := input( 200, "input rsiD")
else if rsiW == rsiset
myInput := input( 29, "input rsiW")
sma := sma(close, myInput)
plot(sma)
推荐阅读
- angular - Angular ng build --prod 错误:类型不可分配且属性不存在
- dart - 飞镖 DivElement
- swift - 日期总是返回相同的时间
- php - WordPress wp_title() 在 echo 语句中为空白
- bash - Bash:将属性文件读入数组
- scala - 使用定义 nullable = false 的模式从 Spark 中的 CSV 读取空值的行为与预期不符
- c++ - 确定类型是否可调用
- python - 提取由离散数据产生的样本波的波长
- angular - 在 ionic 3 angular 5 的标头中发送授权令牌的问题
- javascript - 在 React 中创建组件参数的最佳方法是什么?