以文本方式查看主题
- 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp)
-- 金字塔软件问题提交 (http://www.weistock.com/bbs/list.asp?boardid=2)
---- 15分钟周期下,策略重复开仓的问题 (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=54947)
|
-- 作者:ditto9
-- 发布时间:2013/8/11 0:01:56
-- 15分钟周期下,策略重复开仓的问题
使用固定轮询模式,采取条件成立次周期开盘开仓的方法,在15分钟K线上,策略会重复开仓,一般在K线周期开始后10分钟再次开仓。
问题可能出现在HOLDING函数上,此函数只有在K线走完后,值才会改变,即:虽然我在开盘已开仓,但K线走完之前,HOLDING的值依旧为0,以致在10分钟后,HOLDING=0&&开仓条件依旧成立,系统会再次开仓。
尝试用全局变量替代HOLDING,每次开仓平仓后改变该变量的值,不能解决问题。
同样的策略加载在其他K线周期上都没有出现过问题,可能也与15分钟K线的设置有关。
烦请客户提供一个解决的办法。
|
-- 作者:admin
-- 发布时间:2013/8/11 10:46:55
--
limitr marketr holding是本周期刷新limit market holding是次周期
你的问题希望有日志等等说明,否则我们很难判断您说的问题是由什么引起的
|
-- 作者:ditto9
-- 发布时间:2013/8/11 15:07:22
--
谢谢admin,出问题的策略使用的是marketr holding,本周期刷新的话,应该可以排除holding带来的问题。
开仓语句是if holding=0&&ref(开多条件,1) then buy(1,1,marketr);固定1秒轮询,运行在15分钟K线上,会带来前面说的问题,5分钟和10分钟不会。
日志记录在办公电脑里,如果需要等上班发上来。
再次表示感谢。
|
-- 作者:fly
-- 发布时间:2013/8/12 9:20:12
--
固定1秒轮询
用以下代码在15分钟周期上跟踪测试,未发现楼主说的问题
buycond:=ref(count(c>o,2)=2,1); sellcond:=ref(count(c<o,2)=2,1);
if buycond and holding=0 then begin buy(1,1,marketr); end if holding>0 and sellcond then sell(1,1,marketr);
楼主能否提供个可重现问题的简单代码
|
-- 作者:ditto9
-- 发布时间:2013/8/12 11:32:32
--
你好,fly,是实际交易的时候会重复下单,测试的时候不会。
正好今天在实际交易中,螺纹钢有交易两次,下单日志是发到这里还是发你邮箱合适?
|
-- 作者:lichenghu
-- 发布时间:2013/8/12 11:33:37
--
您好,可直接在此处贴日志
|
-- 作者:ditto9
-- 发布时间:2013/8/12 12:48:20
--
以下是10点的第一次开仓,我把交易帐号删除了
2013-08-12 09:59:57.761 【图表】SRX00 运行完毕 2013-08-12 09:59:57.761 【图表】触发下单 BUY 品种 RB00 2013-08-12 09:59:57.761 【图表】模型下单 20 2013-08-12 09:59:57.761 【图表】下单系数调整后 手数:20 2013-08-12 09:59:57.761 【图表】直接下单 2013-08-12 09:59:57.777 【图表】RB00 运行完毕 2013-08-12 09:59:57.777 【图表】Y00 运行完毕 2013-08-12 09:59:57.777 【图表】IF00 运行完毕 2013-08-12 09:59:57.777 【图表】IF00 运行完毕 2013-08-12 09:59:57.777 【图表】IF00 运行完毕 2013-08-12 09:59:57.777 【图表】IF00 运行完毕 2013-08-12 09:59:57.777 【图表】IF00 运行完毕 2013-08-12 09:59:57.777 【图表】RU00 运行完毕 2013-08-12 09:59:57.777 【图表】IF00 运行完毕 2013-08-12 09:59:57.777 【图表】IF09 运行完毕 2013-08-12 09:59:57.777 【下单】RB01 价0.000000 量20 买卖0 类型1 开平0 账户 Formula 1 2013-08-12 09:59:57.777 【下单】确认报单已发送 ID=805439178 RefID = 1387 2013-08-12 09:59:57.824 【指令】收到回报指令 ID = 805439178 RefID = 1387 2013-08-12 09:59:57.855 【指令】收到回报指令 ID = 805439178 RefID = 1387 2013-08-12 09:59:57.855 【指令】收到回报指令 ID = 805439178 RefID = 1387 2013-08-12 09:59:57.870 【指令】收到成交回报指令 REFID = 1387 2013-08-12 09:59:57.886 【回报】 : rb1401 - 已报单 20 价格:3773 开 买 2013-08-12 09:59:57.902 【回报】 : rb1401 - 已成交 20 价格:3770 开 买 2013-08-12 09:59:58.214 【图表】IF00 运行完毕
以下是10点10分左右开的第二单
2013-08-12 10:09:59.480 【图表】SRX00 运行完毕 2013-08-12 10:09:59.480 【图表】触发下单 BUY 品种 RB00 2013-08-12 10:09:59.480 【图表】模型下单 20 2013-08-12 10:09:59.480 【图表】下单系数调整后 手数:20 2013-08-12 10:09:59.480 【图表】直接下单 2013-08-12 10:09:59.495 【图表】RB00 运行完毕 2013-08-12 10:09:59.495 【图表】Y00 运行完毕 2013-08-12 10:09:59.495 【图表】IF00 运行完毕 2013-08-12 10:09:59.495 【图表】IF00 运行完毕 2013-08-12 10:09:59.495 【图表】IF00 运行完毕 2013-08-12 10:09:59.495 【图表】IF00 运行完毕 2013-08-12 10:09:59.495 【图表】IF00 运行完毕 2013-08-12 10:09:59.495 【图表】RU00 运行完毕 2013-08-12 10:09:59.495 【图表】IF00 运行完毕 2013-08-12 10:09:59.495 【图表】IF09 运行完毕 2013-08-12 10:09:59.495 【下单】RB01 价0.000000 量20 买卖0 类型1 开平0 账户 Formula 1 2013-08-12 10:09:59.495 【下单】确认报单已发送 ID=805439181 RefID = 1390 2013-08-12 10:09:59.495 【指令】收到回报指令 ID = 805439181 RefID = 1390 2013-08-12 10:09:59.511 【回报】85881001 : rb1401 - 已报单 20 价格:3769 开 买 2013-08-12 10:09:59.527 【指令】收到回报指令 ID = 805439181 RefID = 1390 2013-08-12 10:09:59.527 【指令】收到回报指令 ID = 805439181 RefID = 1390 2013-08-12 10:09:59.542 【指令】收到成交回报指令 REFID = 1390 2013-08-12 10:09:59.574 【回报】 : rb1401 - 已成交 20 价格:3766 开 买 2013-08-12 10:10:00.902 【图表】IF00 运行完毕
|
-- 作者:lichenghu
-- 发布时间:2013/8/12 13:08:38
--
您好,9:59:58系统会划分在10点这根K。而10.09是在10.15分这根K
|
-- 作者:ditto9
-- 发布时间:2013/8/12 13:12:35
--
让我奇怪的是使用的是收盘后次周期开盘开仓,怎么会在9:59:58有成交呢?是时间的设定问题吗?
|
-- 作者:lichenghu
-- 发布时间:2013/8/12 13:15:59
--
以下是引用ditto9在2013/8/11 0:01:56的发言:
使用固定轮询模式,采取条件成立次周期开盘开仓的方法,在15分钟K线上,策略会重复开仓,一般在K线周期开始后10分钟再次开仓。
。
您好,您采取固定轮询模式,盘中是实时成交的。
而且您成交时间为10.09,明显是固定轮询模式。您可以自己看下设置是否有问题。
[此贴子已经被作者于2013/8/12 13:16:54编辑过]
|