首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何绘制连续合约的期货溢价/现货溢价?

如何绘制连续合约的期货溢价/现货溢价?
EN

Stack Overflow用户
提问于 2020-07-06 07:52:53
回答 1查看 52关注 0票数 0

我一直在尝试使用pine脚本绘制期货合约之间的差异,但似乎无法将其用于当前合约和下一个合约之外的任何其他组合(例如GC2! - GC1!)。

示例:

代码语言:javascript
复制
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!或任何其他“下一个”期货合约,但目标是能够可视化任意两个期货合约之间的期货溢价金额。

EN

Stack Overflow用户

发布于 2020-07-06 10:17:12

不幸的是,PineScript有很多“问题”,就像你提到的这个。但是好的news...there通常是绕过它们的方法。

在你的例子中,它可能听起来像tedious...but试试这个:

为这些选项中的每一个计算security(...)。(我知道,这是最不枯燥的代码ever...but欢迎使用Pine Script)

代码语言:javascript
复制
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

希望这能有所帮助

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62747512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档