平均真实波动范围 - Google 表格

问题描述 投票:0回答:2

我从 Google Doc 帮助论坛复制了以下公式,了解如何使用 Google 表格计算 ATR。该公式适用于天数低于 20 的情况,对于天数高于 20 的情况,它会返回以下错误:

函数 ARRAY_ROW 参数 2 的行大小不匹配。预计:22。实际:21。

您能帮助我修复错误吗? 交易吸引了我进入谷歌表格和 Excel,目前以下内容超出了我的技能范围,我仍在使用 IF 语句。

论坛链接:https://productforums.google.com/forum/#!topic/docs/gENldwEI040;context-place=forum/docs

$B1 - 股票代码单元

40 - 周期(天)

=average(ARRAYFORMULA(query(query(transpose(abs(query({query({Googlefinance($B1,"High",today(),today()-(40)),Googlefinance($B1,"low",today(),today()-(40+6))},"select Col1,Col2,Col4 order by Col1 desc limit "&40&" "),query(Googlefinance($B1,"close",today(),today()- (40+6)),"select Col2 order by Col1 desc limit "&40&" offset 1 label Col2 'closeyest' ")}, "select Col2-Col3, Col2-Col4, Col3-Col4"))), "select max(Col"&join(",max(Col",row(indirect("A1:A"&40))&")")))))
google-sheets google-sheets-query
2个回答
1
投票

这正在工作

=average(ARRAYFORMULA(query(query(transpose(abs(query({query({Googlefinance($B1,"High",today()-(100),today()),
Googlefinance($B1,"low",today()-(100),today())},
"select Col1,Col2,Col4 order by Col1 desc limit "&40&" "), query(Googlefinance($B1,"close",today()-(100),today()),
"select Col2 order by Col1 desc limit "&40&" offset 1 label Col2 'closeyest' ")}, 
"select Col2-Col3, Col2-Col4, Col3-Col4"))), 
"select max(Col"&join(",
max(Col",row(indirect("A1:A"&40))&")")))))

0
投票

我已将这两个公式定义为 Google Sheets 中的命名函数,然后使用 if 函数选取这两个公式中的任何一个来计算 ATR。这种方法的好处是,当您输入天数和符号时,您往往会获得更准确的 ATR 值,超过 30 天,第二个公式将接管并应用 40 天固定值进行回溯。

© www.soinside.com 2019 - 2024. All rights reserved.