如何更改 pine 脚本中函数的全局变量?

2024-02-06

我正在尝试编写一个脚本来获得 9 个级别的江恩平方。我已经用其他语言完成了它,但无法理解此处的 pine 脚本,它说无法修改函数中的全局变量。有什么解决方案可以获取这里的值是我的脚本

//@version=4
study(title="Volume-weighted average example", max_bars_back=5000, overlay=true)
timeDiff = time - time[4]

// Translate that time period into seconds
diffSeconds = timeDiff / 1000

// Output calculated time difference
//plot(series=diffSeconds)
var ln = 0
var wdvaltrg = 0.0

WdGann(price) =>
    for i = 1 to 8
        wdvaltrg := (ln+(1/i))*(ln+(1/i))
        if wdvaltrg >= price
            break
    if wdvaltrg < price
        ln := ln+1
        WdGann(price)

var vwap0935 = 0.0
v = vwap
if hour == 9 and minute == 35
    vwap0935 := v



plot(vwap0935)

自 2020 年 9 月 10 日起,阵列在 pine 中可用。使用它,您可以在全局范围内存储在函数中创建的值。

这是可行的,因为写入数组元素不会改变实际数组变量的引用。因此,您只需使用全局数组并修改其内容,就像在函数之外执行的操作一样。

数组为 pine 脚本开启了许多可能性。

一个简单的例子:

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © wallneradam
//@version=4
study("Global variables", overlay=false)

// Declare constants to access global variables
IDX_STOCH = 0
IDX_RSI = 1

// Initialize an empty array to store variables
global = array.new_float(2)

// This is the modify the array
calculate(period) =>
    v_stoch = stoch(close, high, low, period)
    v_rsi = rsi(close, period)
    array.set(global, IDX_STOCH, v_stoch)
    array.set(global, IDX_RSI, v_rsi)
     
// Call the function any times you want
calculate(14)
// Plot the results
plot(array.get(global, IDX_STOCH), color=color.red)
plot(array.get(global, IDX_RSI), color=color.yellow)
// Call the function any times you want
calculate(14 * 5)
// Plot the results
plot(array.get(global, IDX_STOCH), color=color.maroon)
plot(array.get(global, IDX_RSI), color=color.olive)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何更改 pine 脚本中函数的全局变量? 的相关文章

随机推荐

  • “alert()”和“confirm()”不适用于“apple-mobile-web-app-capable”

    在iOS 当前7 0 下 它看起来像alert and confirm 当我们的网络应用程序固定到主屏幕时 也称为使用元标记 无法工作apple mobile web app capable 我发现推特上有一个用户有类似的问题 https
  • 回收器视图项目输入动画不起作用

    我按照动画 recyclerview 项目的教程进行操作 但动画不起作用 我对是否应用动画感到困惑 活动 Java 更新的代码在这里我尝试单击按钮 但我不知道如何从适配器的 onBindHolder 调用动画方法 private void
  • Windows Phone 7 Silverlight MVVM(和其他)框架

    目前 WP7 有哪些可用的 mvvm 框架 您会推荐哪一个 为什么 在开始 WP7 silverlight 开发时是否应该考虑其他有用的框架 感谢您发布迄今为止的经历 干杯 菲尔 看看这个MVVM框架比较 http www japf fr
  • 如何将信息传递给React中的嵌套组件?

    说我有
  • 如何使用 VBA 在 Excel 文档中循环浏览超链接

    我有一份大约的清单 Excel 中的一列中有 160 个超链接 我正在尝试从每个单独的链接中提取数据 为了导航到特定页面 例如https www oddschecker com golf canadian open winner bet h
  • 在 xamarin 表单上预加载页面

    我正在寻找让我的 Xamarin Forms 应用程序更快的技巧 我遇到了这个article https newbedev com slow startup of xamarin app 好吧 我已经尝试了一些选项 但我发现很难实现最后一个
  • 在 Node.js 中的 mongoose 用户上使用 _.omit

    我有一个像这样构建的猫鼬用户模式 var UserSchema new Schema username type String required true index unique true password type String req
  • 并行化 std::nth_element 和 std::partition

    我正在移植使用的 C 代码std nth element and std partition到 OpenCL nth element http www cplusplus com reference algorithm nth elemen
  • .NET 如何以及何时实际编译代码?

    假设您使用 C VB 或任何 NET 编写应用程序 当你点击构建时 它真的会编译你的代码吗 我是这么认为的 直到我开始在我的一些程序集上使用 redgates 反射器并逐字查看我的代码 我本来期望展开循环并进行大量优化 但什么也没有 那么编
  • 无法在 iPhone 应用程序中通过 Oauth 2.0 获取 google+ 的访问令牌

    我正在尝试在 iPhone 应用程序中使用 Oauth 2 0 访问 Google API 为此 我使用 OauthConsumer 库 我获得了未经授权的 request token 和授权码 但无法使用授权码将该 request tok
  • 我怎样才能取消 Future.delayed 函数调用

    我怎样才能取消 Future delayed 我正在使用 Future delayed 来执行某些任务 但是如果我想取消这个延迟的任务 那么他们的任何方法或任何其他要使用的东西也是如此 Future delayed Duration sec
  • 将密钥和 SSL 证书导入 java 密钥库

    我有 pem 格式的证书文件和私钥文件 是否可以使用 Java 代码和 JDK 附带的默认库 而不是第三方库 将这些文件加载 到 Java 密钥库中 当我尝试谷歌搜索时 我只能找到 der 格式的文件以使用 java 代码导入到 java
  • Python 异常传播

    我正在构建一个工具 当异常向上传播时 有关异常上下文的新数据将添加到异常中 问题是 当异常到达顶层时 所有额外的上下文数据都在那里 但只显示最新的堆栈跟踪 有没有一种简单的方法可以让异常显示抛出异常的原始堆栈跟踪而不是最后一个堆栈跟踪 或者
  • 无法在导入请求时从“集合”导入名称“映射”[重复]

    这个问题在这里已经有答案了 Python版本 Python 3 10 4 画中画版本 pip 22 0 4 所以我试图用套接字制作一个小项目 我添加了一个上传文件的功能 但是每当我导入请求时 它都会抛出此错误 下面是我运行的代码 Trace
  • USB 控制传输能否保证交付?

    USB 2 0 指定 http www usb org developers docs usb20 docs 4 种传输类型 第 5 4 节传输类型 控制转移 同步传输 中断传输 批量转账 第 5 8 节规定批量转账提供 在带宽可用的基础上
  • 如何将数据从一种表单发送到另一个类的函数

    我知道如何将数据从一种表单传递到另一种表单 但如何将数据从一种表单传递到类 这是我想要传递的数据form1上课问题 string GrpID somevalue string DurationID somevalue 我搜索过但没有得到确切
  • Android java 设置图像资源

    我对此有很大的了解 if num1 getText equals 0 num1 setText 1 ImageView hpdown1 ImageView findViewById R id hair hpdown1 setImageRes
  • 通过代码使用 NHibernate 映射:当 IDENTITY_INSERT 设置为 OFF 时,无法在表“DietUser”中插入标识列的显式值

    我花了一段时间才找到这个问题的答案 所以我想分享这份爱 当通过 SQL Server 代码使用 NHibernate 的新映射时 我无法保存实体 保存实体时 会引发 System Data SqlClient SqlException 并显
  • 我们应该在 C++ 中使用 exit 吗?

    根据C 参考 exit正常终止进程 执行常规清理 用于终止程序 正常的程序终止执行以下操作 以相同的顺序 与当前线程关联并具有线程存储的对象 持续时间被破坏 仅限 C 11 具有静态存储的对象 持续时间被破坏 C 并且使用 atexit 注
  • 如何更改 pine 脚本中函数的全局变量?

    我正在尝试编写一个脚本来获得 9 个级别的江恩平方 我已经用其他语言完成了它 但无法理解此处的 pine 脚本 它说无法修改函数中的全局变量 有什么解决方案可以获取这里的值是我的脚本 version 4 study title Volume