根据你刚发的内容,第一个问题就是,你自己运行的代码也是全部写在oninit里的?
如果是这样的话,那么所有语句只会在启动时候运行1次啊。
对
我记得他的代码是restart(false)
不过他说重新加载策略都不行
T型报价没问题的话
基础数据应该是没问题的
有点匪夷所思
或者干脆不要操作基础数据
用相关的封装函数
https://bbs.tbquant.net/thread/20250522092619293279
期权有好多问题
还是希望官方能给出一系列函数
我现在是自己算了动态订阅
我也发现这个问题
老兄,一个策略单元加载多个品种,同时出信号,有没有控制总量的办法,有的话,能否给个示例
老兄,一个策略单元加载多个品种,同时出信号,有没有控制总量的办法,有的话,能否给个示例
老兄,一个策略单元加载多个品种,同时出信号,有没有控制总量的办法,有的话,能否给个示例
会并发
貌似么得什么好办法
再想想看
好的,谢谢。暂时也想不到
为什么要重启了才能同步基础数据里面的期权名称呢,没重启,都获取不到最新的期权名称、第一张图是重启过后的,第二张图是在云服务器上面没有重启得到的,就没有最新的期权名称。有没有办法不重启直接得到呢?
试试夜盘账户登录或开盘后
再读取、订阅
相当于策略重启
因为商品基础数据更新时间不定
一般要等结算完、换月数据更晚点
股市数据要开盘前
因为股市数据烦杂
我现在商品都是夜盘账户登录时候重启策略
期权策略是开盘动态订阅
确保数据没问题
你说的重启是重启软件?
对的,重启策略不得行,只有重启软件才可以
我在云上面是每天晚上开盘之前都在重启,还是订阅不到最新的。
我知道
上次你问了重启代码
你print下
确定一下是否重启了
提供一下复现代码
我看到重启的。肯定重启了。
Params
Numeric qqxqj(3); //期权行权价离实值(2%)
Numeric zs(100);//每天开仓平种总数限制
Numeric gg(1);//期权名称,有-取0,无-取1
/////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
Vars
Dic<String> dic_string("TB_CP_Options");
String my_close;
Array<String> str;
Array<String> str1;
String str2;
String str3;
String str5;
String str4;
String str6;
String str7;
Array<Numeric> str8;
integer sym1;
Array<Integer> id1;
Array<String> symbols;
Array<String> symbols1;
Array<String> symbols2;
Numeric my_close_qq_c;//期权c行权价
Numeric my_close_qq_p;//期权p行权价
Numeric min_opt_interval;//期权行权价差
Global Numeric my_close_1;
Numeric rValue;
/////////////////////////////////////////////
Events
OnInit()
{
StringSplit(MainSymbol,".",str1);//获取交易所后面代码
Integer hycd;
hycd=FindLastOf(MainSymbol,"."); //判断期货合约名字长度
//Print("期货合约名字长度:"+text(hycd));
str2=SymbolType()+"."+str1[1];//rb.SHFE用来获取期权和期货相关合约
GetDicSymbols(dic_string,symbols);
GetSymbols(str2,Enum_CategoryOptions,symbols); //获取该品种所有的期权合约
GetSymbols(str2,Enum_CategoryFutures,symbols1); //获取该品种所有的期货合约
ArraySort(symbols,True); //期权排序,升序。
ArraySort(symbols1,True); //期货排序,升序。
str3=symbols[1]; //取出第一个期权合约
str5=symbols[2]; //取出第二个期权合约
//Print("第一个期权合约"+str3);
//Print("第二个期权合约"+str5);
str4=Mid(str3,0,hycd)+"."+str1[1]; //取出最近可交易期权的期货标的
//Print("可交易期权的期货月份"+str4);
sym1=SubscribeBar(str4,"1m",Data0.BeginDateTime(),Data0.endDateTime(),Enum_Data_RolloverBackWard()); //订阅最近一个月的期货标的
GetSymbols(str4,Enum_CategoryOptions,symbols);
//Print("期权合约对应的标的:"+str4);
//Print("所有期货合约品种:"+TextArray(symbols1)); //在控制台输出期货合约品种
Print("所有期权合约品种:"+TextArray(symbols)); //在控制台输出期权合约品种
}
理论上
基础数据更新后都能读出来
毕竟TBQ的T型报价列表是没问题的
你还是确定一下
策略是否重启了
理论上是这样的。我都重新加载公式了,肯定是重启了的。