我一直在尝试使用pine脚本绘制期货合约之间的差异,但似乎无法将其用于当前合约和下一个合约之外的任何其他组合(例如GC2! - GC1!)。
示例:
curr =
month == 1 and year == 2019 ? "G2019" :
month == 2 and year == 2019 ? "H2019" :
// ...
month == 11 and year == 2020 ? "Z2020" :
month == 12 and year == 2020 ? "F2021" : ""
next =
month == 1 and year == 2019 ? "H2019" :
month == 2 and year == 2019 ? "J2019" :
// ...
month == 11 and year == 2020 ? "F2021" :
month == 12 and year == 2020 ? "G2021" : ""
future_1 = security(syminfo.root + curr, "D", close, barmerge.gaps_off, barmerge.lookahead_off)
future_2 = security(syminfo.root + next, "D", close, barmerge.gaps_off, barmerge.lookahead_off)
contango = future_2 - future_1
// plot contango安全函数抱怨说,它不能处理series[string],只能处理string作为第一个参数,并且我不知道如何转换它们。在series[string]中,tostring()函数似乎不起作用。
我知道本例中的curr也可以是GC2!或CL2!或任何其他“下一个”期货合约,但目标是能够可视化任意两个期货合约之间的期货溢价金额。
发布于 2020-07-06 10:17:12
不幸的是,PineScript有很多“问题”,就像你提到的这个。但是好的news...there通常是绕过它们的方法。
在你的例子中,它可能听起来像tedious...but试试这个:
为这些选项中的每一个计算security(...)。(我知道,这是最不枯燥的代码ever...but欢迎使用Pine Script)
G19 = security(syminfo.root + "G2019", "D", close, barmerge.gaps_off, barmerge.lookahead_off)
J19 = security(syminfo.root + "J2019", "D", close, barmerge.gaps_off, barmerge.lookahead_off)
...
F21 = security(syminfo.root + "F2021", "D", close, barmerge.gaps_off, barmerge.lookahead_off)
...
G21 = security(syminfo.root + "G2021", "D", close, barmerge.gaps_off, barmerge.lookahead_off)然后,使用链接的三元运算符确定要分配给future_1/2的选项,然后计算contango
希望这能有所帮助
https://stackoverflow.com/questions/62747512
复制相似问题