PineCoders

Functions Allowing Series As Length - PineCoders FAQ

Pinescript requires many of its built-in functions to use a simple int as their period length, which entails the period length cannot vary during the script's execution. These functions allow using a series int or series float for their period length, which means it can vary on each bar.

The functions shared in this script include:
  • Rolling sum: Sum( src ,p)
  • Simple moving average: Sma( src ,p)
  • Rolling variance: Variance( src ,p)
  • Rolling standard deviation: Stdev( src ,p)
  • Rolling covariance: Covariance(x,y,p)
  • Rolling correlation: Correlation(x,y,p)

If p is a float then it is rounded to the nearest int.

How to Use the Script
Most of the functions in the script are dependent on the Sma function. The Correlation function uses the Covariance and Stdev functions. Be sure you include all the required functions in your script.

Make sure the series you use as the length argument is greater than 0, else the functions will return na. When using a series as length argument, the following error might appear:
Pine cannot determine the referencing length of a series. Try using max_bars_back in the study or strategy function.
This can be frequent if you use barssince(condition) where condition is a relatively rare event. You can fix it by including max_bars_back=5000 in your study declaration statement as follows:
study("Title",overlay=true,max_bars_back=5000)

Example
The chart shows the Sma, Stdev, Covariance and Correlation functions. The Sma uses the closing price as input and bars as period length where:

bars = barssince(change(security(syminfo.tickerid,"D",close[1],lookahead=true)))

The Stdev uses the closing price as input and bars + 9 as period length. The Covariance and Correlation use the closing price as x and bar_index as y, with bars + 9 as period length.
Jan 11
版本注释: Updated Comments
从收藏脚本中删除 添加到收藏脚本

评论

Thanks for the New Years present!
Gr, JD,
+3 回复
Thanks Alex and LucF! This is great!
+1 回复
Great examples, thanks @PineCoders. And better late then never, best wishes and luck in 2020, cheers!
+1 回复
首页 股票筛选器 外汇筛选器 加密货币筛选器 财经日历 如何运作 图表功能 价格 推荐朋友 网站规则 帮助中心 网站 & 经纪商解决方案 插件 图表解决方案 轻量图表库 博客 & 新闻 Twitter
概览 个人资料设置 账户和账单 推荐朋友 我的客服工单 帮助中心 已发表观点 粉丝 正在关注 私人消息 聊天 退出