全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
求助:能否在hs300的onbar行情中,交易对应的指数期权?如果能,该用什么函数?
hongqida 分享到
2022-07-04 15:45

能否在hs300的onbar行情中,交易对应的指数期权?如果能,该用什么函数?

 

我订阅了hs300的指数行情 ,想根据收盘价与60日均线来决定交易对应的期权,能否在onbar中买卖期权(未订阅行情)?如果可以,该用什么函数?

对应的代码如下:

SubscribeBar(code,"30m",20200101,20201231);

    OnBar(ArrayRef<Integer> indexs)
    {
       //
       If(close[1] > Average(close[1],60) and MarketPosition==0) //如果昨日大于昨日60日均线且仓位为空
       {
              Commentary("指数收盘价站上60日均线");
              option_code = GetOptionCode(code,close[1],1);
              Commentary("虚一看跌期权为" + option_code);
       }
       If(close[1] < Average(close[1],60) and MarketPosition==0) //如果昨日大于昨日60日均线且仓位为空
       {
              Commentary("指数收盘价跌破60日均线");
              option_code = GetOptionCode(code,close[1],0);
              Commentary("虚一看涨期权为" + option_code);
       }
    }

wangkaiming

根据逻辑订阅相应的期权品种 ,期权合约名都有规律

或者A函数指定品种,可以直接下单

回测的话就要订阅,只考虑实时就要结合A函数,属于进阶内容

 

2022-07-05 08:44
hongqida
@wangkaiming

谢谢回答!

我看到有A_BUY函数,可以直接指定合约下单。但函数参数需要指定价格,在hs300指数的onbar驱动函数中,该怎么获得指定合约的实时价格呢?

Bool A_Buy(String symbol, Numeric lot, Numeric price, ArrayRef<Integer> orderIds, String userNote = "", String createSource = "", Integer accountIndex = 0)

symbol是合约代码,类型为String,我已通过自编函数成功获取要想的期权代码。
lot是手数,类型为Numeric,
price 是价格,类型为Numeric, 该如何获取?
orderIds是报单索引,类型为ArrayRef<Integer>,报单索引是什么?该传什么参数进去?

 

2022-07-05 08:57
hongqida
@wangkaiming

现阶段主要是做回测,而不是实时交易,所以还是要解决订阅期权行情的问题。

我在onbar中通过自编函数获取了需要的期权代码,然后订阅。虽然能通过编译,但在回测跑应用时,进度一直停留在0.0%不会动,看来无法在onbar中订阅行情 。且由于指数价格在波动,每次需要交易的期权代码都不一样,需要通过onbar获取hs300的价格后,再取对应的虚一档看涨或看跌期权,该怎么订阅和取消订阅(平仓后即可取消订阅)为好?

2022-07-05 09:06
wangkaiming
@hongqida

一般你订阅个虚实的各3档 应该够用了吧

不要临时订阅,会重启策略单元

订阅都是事先做好

2022-07-05 09:17
hongqida
@wangkaiming

首先,每个月期权的主力合约都会变化,如果回测时间要一年,就有12个月的期权合约要订阅。

其次,具体到每个月,指数价格都在波动,触发交易信号时需要选择的虚值期权合约都不同,无法穷举。

再次,期权的合约编号也不是完全有规律,主力合约的行权价相差50,但虚一些的合约行权价差距可能是100。如果按50价差穷举合约名称,可能会列举出一些不存在的合约,在回测时又会提示无法订阅,相当头疼。

2022-07-05 10:45
wangkaiming
@hongqida

期权合约本来就是这样,每个人交易的又不一样

只有自己设计方案

2022-07-05 15:21
fantasynew
@wangkaiming

看样子你对期权不太了解,也不知道楼主问的问题是什么。

期权根据行情变化可以有几十种策略组合,水平价差,垂直价差,合成套利等等,岂是订阅三个合约就能解决的?

实盘我可以每天加入新合约订阅,回测怎么办?把历史上数千个合约都加到图表吗?

比如50ETF现货价格2.725,判断行情可能缓涨,这时候要获取2.65CALL和2.8CALL组成牛市价差,过几天50ETF价格到了2.8,牛市价差调整成2.8CALL和2.85CALL,在期权策略方面,tbq完全没法回测。实盘可以手动维护合约,回测没法加挂。

2023-01-08 22:29
xiehongquan
@fantasynew

你说的很对!TBQ对期权完全是门外汉,回测是不能用的,实盘也基本不能用!建议TB公司开发人员,看看“真格”量化的期权,才能知道做期权到底需要什么数据,应该提供那些函数。哎,无语中。。。。。。。

2024-07-28 19:07
您未登录,请先 登录注册 后发表评论
顶部