老师,请教:
后台程序化时,如果同一个程序运行多个商品,如何操作?
感觉有2种作法:
1. 本地预警交易窗体内,“新增条件”:选择指标程序后,将需要运行的所有商品加入到“监控品种”;
2. 本地预警交易窗体内,增加多个条件:新增条件,只选择1个商品加入监控品种,之后,再增加条件即可;
我的疑问:
1) 以上2种方法有什么区别?
2) 同一个程序运行多个商品,TBUYHOLDING(1), TENTERBARS(0)等类似函数的返回值是否是当前运行的商品的相应数值,还是账号下所有商品的相应数值?
望尽快回复,谢谢!
这2种操作方法效果是一致的,唯一区别就是
1,全部品种都是在一个CPU进程下运行的,多核处理器优势没有得到体现
2,多个条件就等于多个核运行,可以提高运行效率
TBUYHOLDING 返回账号下的数值。要看指定的账号品种数值可以看看函数:TBUYHOLDINGEX
开仓、平仓时,需要知道当前商品的持仓情况,及当前商品的开仓K线到当前K线距离?注意是当前商品,某一个商品。
感觉:TENTERBARS(0),返回的是当前账号所有商品的数值信息;TBUYHOLDING还好,可以用TBUYHOLDINGEX来代替。
TENTERBARS 这个只会返回跟你监控品种有关的信息,不会返回你所有帐号内的东西
你自己用DEBUGFILE调试一下就什么都明白了,后台交易你需要掌握一些必要的调试技巧,如果你不能掌握这个,那么你就不可能顺利完成后台交易的过度
[此贴子已经被作者于2015/9/15 13:06:24编辑过]
我不可能将所有后台函数用DEBUGFILE测试一遍。
我问的关键点在于:多个预警条件程序之间是否有交集?如:TSELLHOLDING(1)返回的数值是否是相同的?而如果我需要知道当前监控商品的持仓,用什么函数?
TSELLHOLDING(1)当前账户的持仓,这个是你账户持仓。你当前监控的是哪个品种,他返回就是该品种持仓
你可以看下函数说明,有下面这句话的表面是各策略独自运行的结果。
注意:
1、该函数只有在后台程式化交易运行中有效。该函数依赖TBUY等交易语句或者在交易监控中的手工干预的成交记录。
[此贴子已经被作者于2015/9/15 13:23:53编辑过]