本文作者:咔咔

大智慧引用公式实时刷新?最新行情已更新?

大智慧引用公式实时刷新?最新行情已更新?摘要: 如何编写一个公式,让它能够实时计算并显示结果?为什么我的公式引用了其他公式,结果却没有实时刷新?下面我将从这两个方面进行详细解答,如何编写一个可以实时刷新的公式大智慧的公式系统非常...
  1. 如何编写一个公式,让它能够实时计算并显示结果?
  2. 为什么我的公式引用了其他公式,结果却没有实时刷新?

下面我将从这两个方面进行详细解答。

大智慧引用公式实时刷新?最新行情已更新?


如何编写一个可以实时刷新的公式

大智慧的公式系统非常强大,但要让公式“活”起来(实时刷新),关键在于正确使用函数和设置。

核心原则:使用行情函数

公式的实时刷新,本质上是对当前最新的一根K线(或Tick数据)进行计算,你的公式中必须包含能够获取最新行情数据的函数。

最核心的行情函数包括:

  • CLOSE: 当前周期的收盘价。
  • OPEN: 当前周期的开盘价。
  • HIGH: 当前周期的最高价。
  • LOW: 当前周期的最低价。
  • VOL: 当前周期的成交量。
  • AMOUNT: 当前周期的成交额。

示例:一个简单的实时均线指标

这是一个最简单的实时刷新公式,它会显示5日和10日移动平均线,并且随着新K线的产生而自动移动。

// 简单的均线系统
MA5:MA(CLOSE,5);
MA10:MA(CLOSE,10);

为什么这个公式能实时刷新? 因为 MA(CLOSE, 5) 这个函数,在每根新的K线(比如每分钟、5分钟、日线等)生成时,都会自动重新计算一次,它总是取最近5个周期的收盘价来计算平均值。

正确设置周期

公式的刷新频率取决于你把它加载到哪个周期的图表上。

大智慧引用公式实时刷新?最新行情已更新?

  • 加载到1分钟图上:公式每分钟刷新一次。
  • 加载到日线图上:公式每个交易日结束后刷新一次(收盘后生成新的日线K线时)。
  • 加载到 Tick 图上:理论上可以做到逐笔刷新,但非常消耗资源。

实时引用外部数据(非公式)

如果你想在公式中引用外部数据(比如一个文本文件中的数据),情况会复杂一些,大智慧提供了 INBLOCK 函数来读取外部数据块。

重要提示: 直接读取外部文本文件通常无法做到真正的“实时”,因为它依赖于数据源的更新和软件的刷新机制,更常见的实时数据引用是引用其他指标或系统函数


公式引用公式不刷新的常见原因及解决方案

这是用户最常遇到的问题,你写了一个公式A,然后在公式B中引用了A,但B的结果却不跟着A更新。

引用语法错误

这是最常见的问题,在大智慧中,引用一个已经存在的指标公式,不是用 公式名() 的方式,而是用特定的函数。

正确方法:使用 INBLOCK 函数

INBLOCK 函数的语法是:INBLOCK('公式名称', N)

  • '公式名称':你要引用的那个公式的完整名称(注意要用单引号括起来)。
  • N:你要引用该公式的第几个输出线,从1开始计数。

错误示例: MA5: MY_MA_FORMULA(CLOSE, 5); // 这样写是错误的,大智慧不认识。

大智慧引用公式实时刷新?最新行情已更新?

正确示例: 假设你有一个已经存在的公式,名叫 MY_MA,它有两个输出线:MA5MA10

现在你想在 NEW_FORMULA 中引用它的 MA5 线:

// 新公式,用来引用 MY_MA 公式的结果
引用MA5: INBLOCK('MY_MA', 1); // 1 代表 MY_MA 公式的第一个输出线 MA5
引用MA10: INBLOCK('MY_MA', 2); // 2 代表 MY_MA 公式的第二个输出线 MA10

如何查看一个公式有几个输出线?

  1. 在大智慧中打开公式管理器。
  2. 找到你的公式(如 MY_MA),点击“修改”。
  3. 在公式编辑器下方,你会看到“输出线”区域,那里列出了所有输出线的名称,按顺序从1开始。

被引用的公式本身没有实时刷新

这是一个逻辑问题,如果公式A本身就不刷新(比如它是一个日线指标,而你把它用在了分钟图上,或者它本身就是一个静态的数值),那么引用它的公式B自然也无法刷新。

解决方案:

  1. 检查被引用的公式:确保被引用的公式(公式A)本身是动态计算的,并且被正确地用在了合适的周期图表上。
  2. 将公式“编译”或“使用”:你需要先在图表上加载一次被引用的公式,然后再加载引用它的公式,大智慧才能正确识别。

公式缓存问题

大智慧为了提高性能,会缓存已经计算过的公式结果,有时候缓存会导致数据不同步。

解决方案:

  1. 刷新数据:在图表界面按 F5F10 刷新数据。
  2. 重置公式:在公式管理器中,找到你的公式,点击“修改”,然后直接点击“确定”或“保存”,这相当于重新编译了一次公式,可以清除缓存。
  3. 重启软件:如果以上方法无效,尝试完全关闭并重新启动大智慧。

公式逻辑错误导致无法计算

如果你的公式中存在逻辑错误,比如除数为零、使用了不存在的函数等,大智慧可能无法计算出结果,导致显示为空或不刷新。

解决方案:

  1. 仔细检查语法:确保所有函数名拼写正确,括号匹配。
  2. 使用调试功能:大智慧的公式编辑器通常有“测试”或“编译”功能,可以帮你检查语法错误。
  3. 简化公式:如果公式很复杂,尝试去掉一部分,看看是哪一部分导致了问题。

总结与最佳实践

  1. 实时刷新的基础:你的公式必须包含 CLOSE, OPEN, VOL 等行情函数,并且这些函数要放在一个会随时间周期变化的计算中(如 MA, MACD 等)。
  2. 正确引用公式:记住使用 INBLOCK('公式名', N) 来引用其他公式的输出线,而不是用函数调用的方式。
  3. 检查依赖项:如果公式A引用公式B,请确保公式B本身是实时有效的。
  4. 养成好习惯
    • 为你的公式起一个清晰、唯一的名字。
    • 在公式注释中说明其用途、参数和输出线的含义。
    • 定期保存和编译你的公式,防止缓存问题。
    • 遇到问题时,先从最简单的部分开始排查,比如先确保被引用的公式能单独正常工作。

通过以上步骤,你应该能够解决大智慧公式引用和实时刷新的大部分问题,如果还有具体的问题,可以提供你的公式代码和遇到的具体现象,我可以帮你进一步分析。

文章版权及转载声明

作者:咔咔本文地址:https://www.jits.cn/content/3513.html发布于 11-05
文章转载或复制请以超链接形式并注明出处杰思科技・AI 股讯

阅读
分享

发表评论

快捷回复:

评论列表 (暂无评论,5人围观)参与讨论

还没有评论,来说两句吧...