以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://www.weistock.com/bbs/list.asp?boardid=2)
----  新人,关于策略编程的几个问题  (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=151715)

--  作者:simonxj
--  发布时间:2017/4/17 10:02:55
--  新人,关于策略编程的几个问题
目前正在使用金字塔系统,有几个问题烦请帮忙解答一下: 
1. 信号触发后马上执行的模式如何实现,是每秒轮询还是可以通过所谓专业版机构版的高频功能,每500ms接受交易所传来的最新报价后,如果价格突破立刻发出委托,这个具体程序语句实现上是怎么完成,还是在系统里设置类似逐tick检验?
2. 对于始终在市场内的策略(非多即空),保证先平再开的语句是这样就行了么?
平空:sellshort(做多 and holding<0, HOLDING(),limitr,Price);
平多:sell(做空 and holding>0,HOLDING(),limitr,Price);
开空:buyshort(做空 and holding=0,手数,limitr,Price);
开多:buy(做多 and holding=0, 手数,limitr,Price);
3. 如果下单后,无法立即成交,追单功能是系统设置实现的还是在策略里面自己写?
4. 是否能在下单时,就设置一个附加的止损命令,避免出现突破止损价后,再下单造成延时无法及时止损。包括是否可以定时修改做移动止损?具体语句怎么写?
5. 滑点有没有经验值范围?
谢谢各位的帮助!

--  作者:gxx978
--  发布时间:2017/4/17 10:18:41
--  

1,具体语句没有差别,在系统中设置1秒轮询或高频交易。

2,开平语句顺序需要是平空、开多,平多,开空。

3,追撤单功能可以使用在系统中设置,但要通过程序写的话,只有后台程序化可以写。

4,这个止损条件能否再描述一下。

5,这个没有经验值,一般的滑点也有在+/-2点之内,但也不排除极端行情下的大滑点。金字塔专业版以上提供大单情况下的滑点优化处理功能。

[此贴子已经被作者于2017/4/17 10:38:35编辑过]

--  作者:simonxj
--  发布时间:2017/4/17 12:18:11
--  
非常感谢您的回复!
4. 比如2010开1手多仓,止损2000,然后价格上涨到2050,止损调整到2040,并且如果价格打到2040开新空仓。如果移动止损了,就只要写开1手空仓即可,因为2040一手空仓被止损指令执行了。
5. 大单滑点优化?多大单属于大单?优化是系统自动设置运行的么?

--  作者:gxx978
--  发布时间:2017/4/17 12:51:28
--  

1,这个止损是可以通过代码编写的。另外你的意思是说价格到了2040,不是去平仓,而是要开一手反手仓?这个图表上不能实现,需要后台程序化,因为图表上不支持双边持仓。

2,大单数量这个没有限制。金字塔的这个功能是在拆分大单的时候,通过设置,是成交速度优先,还是减少滑点优先。这个处理大单的时候可以适当的降低些滑点问题,因为滑点对大单的影响还是比较大的,小单不必使用这个。

 


图片点击可在新窗口打开查看此主题相关图片如下:image 2.jpg
图片点击可在新窗口打开查看

--  作者:simonxj
--  发布时间:2017/4/17 17:46:32
--  
谢谢!
4. 是单边持仓,我意思是,因为移动止损单先执行了,所以此时变成空仓了,再开反手仓。之所以用止损单,是考虑这样执行速度会不会快一点。否则就是检测到价格突破了,然后先下平仓指令,然后再下开反手仓指令,会不会指令执行时间会有差别?

--  作者:gxx978
--  发布时间:2017/4/18 8:44:01
--  

并不会快,信号的执行时受走完K线还是固定时间间隔模式影响的,你是采用移动止损代码,还是采用平仓指令的执行并不会有执行时间的差别。


--  作者:simonxj
--  发布时间:2017/4/18 23:11:08
--  
谢谢您的回复!
这两天把策略写了,遇到实盘涉及的几个问题:
1.我的策略需要触发后立即执行,在图表程式化交易中选择固定时间间隔,可是最快只能选择1s,这样速度肯定落后了,能否设定类似于在tick数据广播接收的事件里面判断是否触发价格线,然后执行后续的指令?或者缩小轮询的时间到500ms?
2.如果上面运行单策略多品种,或者多策略多品种,甚至多账户多策略多品种,会不会因此造成速度受影响?是一次查询返回多个结果还是多次查询返回不同的结果?
谢谢!

--  作者:gxx978
--  发布时间:2017/4/19 8:40:00
--  

1, 固定时间间隔,最小就是1S,如果需要更快,那就只能使用高频交易了。

2,速度一般是受策略的复杂度和硬件的配置所影响。代码的执行时按顺序依次遍历,即在每一个品种上执行一遍,多次执行的。


--  作者:simonxj
--  发布时间:2017/4/19 13:20:02
--  
谢谢!
还有,在图表实盘中,如果策略是这样写的:
开多平空条件1:=High>价格上限 and holding<=0;
平空:tsellshort(开多平空条件1 and 开多平空条件2 and holding<0, holding,marketr);

那么在后台模式的实盘中是否改成:
开多平空条件1:=DYNAINFO(7)>价格上限 and tholding<=0;
平空:tsellshort(开多平空条件1 and 开多平空条件2 and tholding<0, tholding,MKT);

如果这样写了,貌似回测后台模式的策略无法取得结果,是不是我采用后台交易系统回测方式不对?

--  作者:gxx978
--  发布时间:2017/4/19 13:38:59
--  

1,你是如何测试后台策略的?软件中的策略测评只能测试图表策略,后台策略需要专业版以上版本才能回测。

2,图表中的平空使用sellshort,另外你的后台策略没有逻辑错误,需要说明的是tholding返回的是可用持仓,未考虑未成交单的情况;tholding2表示实际持仓,有考虑未成交的情况,你可以在后台上用debugout输出理解一下。