大神老师好,
麻烦请教以下问题:
1:如何通过主力连续合约,映射到 交易的主力合约上的代码,同时周期要求是3分钟的周期。
之后主力合约更换时候,自动切换交易标的。比如 rb2505 和 ag2502 是当下的主力合约。如何实现
onbaropen的时候,扫描下888合约,和当下的主力合约报价,是否匹配,如果匹配,那么选用这个合约,作为下单合约。
2:如何表达三分钟交易周期的,tick棒体前 三根棒体的范围内的最高价和最低价,代码如何表达,感谢。
3:代码编写过程中,报错内容是 无法识别字符串onbaropen ,有点莫名。。代码如下
OnBarOpen(ArrayRef<Integer> indexs)
{
// 主程序代码 A 棒体新开时,计算一次
Numeric HighD;
Numeric LowD;
Numeric OpenD;
Numeric CloseD;
k3_yin = OpenD(3)<CloseD(3); // 这里的k3_yin 用的是 bool 声明的 ,下面的也是。不知道是否符合语法。
k2_yin = OpenD(2)<CloseD(2); //
k1_yin = OpenD(1)<CloseD(1); //后面把这段删了,还是报错,无法识别字符串 onbaropen
if(OpenD(3)>CloseD(3) and OpenD(2)>CloseD(2) and OpenD(1)>=CloseD(1))
{
yangkongjian = abs(HighD(1)-LowD(3));
}
//感谢大神老师的帮助。
迷弟:不懂就问
第三个问题 这个代码基础常识性的错误太多了
第一 大括号匹配了么?
第二 highd,lowd等等这些都是系统函数,你用numeric定义一下是什么意思?
第三 k3_yin等这些容器怎么定义的?复制过来直接报未定义错误
第四 把以上问题修复以后,编译时正常的,没有任何报错。
你发代码前有没有自己先确认一下这个代码是否语法正确,是否能正确复现你的问题吗?
这种不能说明问题的代码发出来也没有意义,纯粹浪费时间
大神老师,是这样的,
第一:大括号是匹配的,两组大括号,在onbaropen里面的,复制的时候少复制了一个。
第二个问题,已经收到,理解下来,HighD(3) 是系统自带的功能函数,意思是,统计当前TICK棒体之前的 三根棒体的最高价。 而 close(3)是回溯 当前棒体之前的 第三根棒的收盘价, 不知是否是这样理解是否 正确 ?
第三:k3_yin 的容易,是用来判断,所以之前在变量声明里面用 bool 来声明。后续在IF条件语句中,尝试过直接用变量名来取代逻辑算法,结果报错。最后才尝试直接用逻辑算法来表达。
HighD是系统内置的函数,函数的参数是写在()里的,HighD(3)的意思是求3天前的最高价。回溯是用[],回溯3收盘价应该是Close[3]
第二个问题,必须订阅tick数据,然后用tick图层的数据来处理。
重要提醒,不推荐调取数据后把信号结果放在大周期上!非常不推荐!原因建议看零基础课程里的跨周期相关内容!
第一个问题
订阅品种对应的888数据。比如rb2502就订阅rb888配合。然后读rb888的relativesymbol看看跟你标的的symbol是否一致,剩下的你自己处理了
有点复杂,先研究一下