跨合约取带函数的值,不是变量

02-20 09:09发布

请问怎么跨合约读取带函数的值,比如读取该合约变量的前N分钟的值?我是想用上证指数的突破信号作为IF合约操作执行的信号,但好像调取上证的都是一个值,不是变量或者方法,希望得到指点,感恩!

请问怎么跨合约读取带函数的值,比如读取该合约变量的前N分钟的值?我是想用上证指数的突破信号作为IF合约操作执行的信号,但好像调取上证的都是一个值,不是变量或者方法,希望得到指点,感恩!
付费偷看设置
发送
9条回答
文华解答
2楼-- · 02-20 10:14
跨合约取值使用#CALL函数就可以了,具体您可以在编写平台双击函数-》右键查找函数说明了解。

给您举个例子,比如您要引用上证指数前5分钟的收盘价,

新建一个被引用的模型AA:

CC:REF(C,5);

新建跨合约模型加载到IF合约上,参考:

#CALL [999001, AA] AS VAR1
CC:VAR1.CC;//表示的就是5分钟前的上证指数收盘价

无知无畏
3楼-- · 02-20 10:35
嗯嗯,如果您刚才例子中的5能变成一个变量N就对了,我需要调用上证指数N个周期前的关盘价,这个N怎么能变成动态的呢,或者带函数的
文华解答
4楼-- · 02-20 10:55
被引用模型AA:

N:=5;
CC:REF(C,N);
无知无畏
5楼-- · 02-20 11:15
你好,例子中的N还是写死了,定义成了固定值5,N好像不能定义成函数,得到动态值对吗?就是 call另一个合约的数据的时候可不可以是个函数
文华解答
6楼-- · 02-20 11:34
如果您的这个N是根据公式计算出来的,您就将N后面的5改成公式就可以了,是可以使用变量的;

您的描述太模糊了,我们不知道您到底想要怎么取这个N,您可以具体说明下您的思路,或者上传下源码我们帮您针对修改下。
无知无畏
7楼-- · 02-20 11:55
上证一分钟合约



IF合约
#CALL_PLUS [999001,MIN,1,F001] AS BOX

N:=BARSSP;

// 这里要获取999001合约1分钟K线在N个周期前的CLOSE
BOX_C:=BOX.REF(C,N)
// 这个也是不支持的,可以怎么实现这个想法