大智慧引用公式实时刷新?最新行情已更新?
摘要:
如何编写一个公式,让它能够实时计算并显示结果?为什么我的公式引用了其他公式,结果却没有实时刷新?下面我将从这两个方面进行详细解答,如何编写一个可以实时刷新的公式大智慧的公式系统非常... - 如何编写一个公式,让它能够实时计算并显示结果?
- 为什么我的公式引用了其他公式,结果却没有实时刷新?
下面我将从这两个方面进行详细解答。
如何编写一个可以实时刷新的公式
大智慧的公式系统非常强大,但要让公式“活”起来(实时刷新),关键在于正确使用函数和设置。
核心原则:使用行情函数
公式的实时刷新,本质上是对当前最新的一根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,它有两个输出线:MA5 和 MA10。
现在你想在 NEW_FORMULA 中引用它的 MA5 线:
// 新公式,用来引用 MY_MA 公式的结果
引用MA5: INBLOCK('MY_MA', 1); // 1 代表 MY_MA 公式的第一个输出线 MA5
引用MA10: INBLOCK('MY_MA', 2); // 2 代表 MY_MA 公式的第二个输出线 MA10
如何查看一个公式有几个输出线?
- 在大智慧中打开公式管理器。
- 找到你的公式(如
MY_MA),点击“修改”。 - 在公式编辑器下方,你会看到“输出线”区域,那里列出了所有输出线的名称,按顺序从1开始。
被引用的公式本身没有实时刷新
这是一个逻辑问题,如果公式A本身就不刷新(比如它是一个日线指标,而你把它用在了分钟图上,或者它本身就是一个静态的数值),那么引用它的公式B自然也无法刷新。
解决方案:
- 检查被引用的公式:确保被引用的公式(公式A)本身是动态计算的,并且被正确地用在了合适的周期图表上。
- 将公式“编译”或“使用”:你需要先在图表上加载一次被引用的公式,然后再加载引用它的公式,大智慧才能正确识别。
公式缓存问题
大智慧为了提高性能,会缓存已经计算过的公式结果,有时候缓存会导致数据不同步。
解决方案:
- 刷新数据:在图表界面按
F5或F10刷新数据。 - 重置公式:在公式管理器中,找到你的公式,点击“修改”,然后直接点击“确定”或“保存”,这相当于重新编译了一次公式,可以清除缓存。
- 重启软件:如果以上方法无效,尝试完全关闭并重新启动大智慧。
公式逻辑错误导致无法计算
如果你的公式中存在逻辑错误,比如除数为零、使用了不存在的函数等,大智慧可能无法计算出结果,导致显示为空或不刷新。
解决方案:
- 仔细检查语法:确保所有函数名拼写正确,括号匹配。
- 使用调试功能:大智慧的公式编辑器通常有“测试”或“编译”功能,可以帮你检查语法错误。
- 简化公式:如果公式很复杂,尝试去掉一部分,看看是哪一部分导致了问题。
总结与最佳实践
- 实时刷新的基础:你的公式必须包含
CLOSE,OPEN,VOL等行情函数,并且这些函数要放在一个会随时间周期变化的计算中(如MA,MACD等)。 - 正确引用公式:记住使用
INBLOCK('公式名', N)来引用其他公式的输出线,而不是用函数调用的方式。 - 检查依赖项:如果公式A引用公式B,请确保公式B本身是实时有效的。
- 养成好习惯:
- 为你的公式起一个清晰、唯一的名字。
- 在公式注释中说明其用途、参数和输出线的含义。
- 定期保存和编译你的公式,防止缓存问题。
- 遇到问题时,先从最简单的部分开始排查,比如先确保被引用的公式能单独正常工作。
通过以上步骤,你应该能够解决大智慧公式引用和实时刷新的大部分问题,如果还有具体的问题,可以提供你的公式代码和遇到的具体现象,我可以帮你进一步分析。
作者:咔咔本文地址:https://www.jits.cn/content/3513.html发布于 11-05
文章转载或复制请以超链接形式并注明出处杰思科技・AI 股讯



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