以文本方式查看主题
- 金字塔客服中心 - 专业程序化交易软件提供商 (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输出理解一下。
|