以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- k线走完的方式,收盘前平仓如何编写? (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=13209) |
-- 作者:saidas -- 发布时间:2012/7/21 13:47:12 -- k线走完的方式,收盘前平仓如何编写? 5分钟图。选择了“走完一根K线以后”的下单方式,想在临近收盘的时候平仓。用了以下两种: 代码一: if time>145000 then begin sell(true,0,limit,c-slip); sellshort(true,0,limit,c+slip); end 代码一会出现漏单的情况,图上能显示信号,却不发出委托。有时能按想法正常平仓,有时却不能。于是改成代码二, 代码二: if time>145000 then begin sell(holding>0,0,limit,c-slip); sellshort(holding<0,0,limit,c+slip); end 代码二仍然不行,一样的现象,有时能正常平仓,有时却不能。搜了一下论坛,好像不止一个朋友反应用holding来构建下单条件会有不可预知的漏单情况。我也发现在,9个交易日有4个交易日被漏掉了。开始我还以为是网络问题,反复测试发现不是。如果说是代码有什么问题,我用两个模拟帐号一起测试,两个图上都出了信号,其中一个帐号正常发出了委托,另一个没有却发出委托,检查了日志,确实没发委托,预定平仓时间点前后全是“【图表】IF08 运行完毕”这种字样。同样的代码,居然运行出了不同的结果。唉。 请教一下,假若不使用软件本身的功能选项,5分钟图,K线走完的方式,想实现收盘前平仓,究竟应该怎么写呢?
[此贴子已经被作者于2012-7-21 13:55:44编辑过]
|
-- 作者:saidas -- 发布时间:2012/7/21 13:59:14 -- 其实真正想问的问题是, 代码一 与 代码二 的写法为何均会出现 有时能正常平仓,有时却不能正常平仓 的现象。9个交易日有5个交易日按设计预想准点平仓了,有4个交易日却图上出了信号,却没发出委托。 [此贴子已经被作者于2012-7-21 14:00:08编辑过]
|
-- 作者:saidas -- 发布时间:2012/7/21 15:10:11 -- 图表交易 |
-- 作者:admin -- 发布时间:2012/7/21 19:17:05 -- 你的情况应该是使用了未来数据,导致信号闪烁,用论坛上的2.89测试版,该版本已经支持自动持仓矫正功能 |
-- 作者:saidas -- 发布时间:2012/7/21 22:13:49 -- 未来函数? 不对啊。 if time>145000 条件是time啊。time 构建的条件也“被未来”了。 我仔细F8一句句调试也没有发现哪个地方不对。但没有办法在语句之内调试,个人猜测,可能跟holding的值有关,信号出现的周期由holding构成的条件是成立的,设置为K线走完,不会立即发出委托。K线走完的一瞬间,本该发出委托,但由holding构成的条件却不成立了,所以出现了“K线走完”之后就未发委托。
|
-- 作者:saidas -- 发布时间:2012/7/24 10:39:44 -- 楼主 软件这一块的功能是没有问题的,我怀疑是你的某一个账户在那一时刻断开了导致的,你可以仔细盯盘,然后再出现信号应该下单的那个时候,手工下单一手试试,看能否下单。 我会再多做尝试,尽可能提供更精确的问题所在。
[此贴子已经被作者于2012-7-24 10:40:23编辑过]
|
-- 作者:阿火 -- 发布时间:2012/7/24 15:08:26 -- 把完整的贴出来,看下就知道。
limit 最好改成limitr |
-- 作者:saidas -- 发布时间:2012/8/7 16:00:12 -- 请帮我看一下,为什么 14:55 收盘前平仓 图表上显示有信号,但自动交易却未发出委托——并不是每次都会漏单,10个交易日大约有4、5个交易日会漏掉。自己花了半个月也没有找到问题所在。 //股指日内突破组合 //用于股指日内5min,K线走完 variable:v1=1; variable:v2=1; variable:v3=1; variable:v4=1; variable:hold1=0; variable:hold2=0; variable:hold3=0; variable:hold4=0; variable:holdall=0; runmode:0; //逐k线模式 t1:=time>093000 and time<143500; t2:=time>145000; // 策略一 n1:=30; if c>ref(hhv(c,n1),1) then begin//做多 if hold1<0 then hold1:=0; if t1 then hold1:=v1; end if c<ref(llv(c,n1),1) then begin//做空 if hold1>0 then hold1:=0; if t1 then hold1:=-v1; end // 策略二 n2:=35; if c>ref(hhv(c,n2),1) then begin//做多 if hold2<0 then hold2:=0; if t1 then hold2:=v2; end if c<ref(llv(c,n2),1) then begin//做空 if hold2>0 then hold2:=0; if t1 then hold2:=-v2; end // 策略三 n3:=40; if c>ref(hhv(c,n3),1) then begin//做多 if hold3<0 then hold3:=0; if t1 then hold3:=v3; end if c<ref(llv(c,n3),1) then begin//做空 if hold3>0 then hold3:=0; if t1 then hold3:=-v3; end // 策略四 n4:=45; if c>ref(hhv(c,n4),1) then begin//做多 if hold4<0 then hold4:=0; if t1 then hold4:=v4; end if c<ref(llv(c,n4),1) then begin//做空 if hold4>0 then hold4:=0; if t1 then hold4:=-v4; end if t2 then begin//收盘 hold1:=0; hold2:=0; hold3:=0; hold4:=0; end holdall:=hold1+hold2+hold3+hold4;//交易指令 if holding<>holdall then begin if holdall>0 then begin sellshort(holding<0,0,market); buy(holding<holdall and t1,holdall-holding,market); sell(holding>holdall,holding-holdall,market); end//if holdall>0 if holdall<0 then begin sell(holding>0,0,market); buyshort(holding>holdall and t1,holding-holdall,market); sellshort(holding<holdall,holdall-holding,market); end//if holdall<0 end//if holding<>holdall if holdall=0 or t2 then begin //就这部份好像总是不好好工作。 sell(holding>0,0,market); sellshort(holding<0,0,market); end//if holdall=0 // --- 结束 --- [此贴子已经被作者于2012-8-7 16:03:53编辑过]
|
-- 作者:董小球 -- 发布时间:2012/8/7 16:12:59 -- 既然有能够正常触发的时候,那么说明软件的功能是没有问题的 所以问题应该处在时间上,可能时间稍微早或者慢那么一点,导致你的下单信号在最后一根K线,从而也就导致不下单了 所以 你可以本着查问题的想法来试试,把收盘前的平仓时间放到倒数第二个K线上,也就是50分,估计都百分百没问题了 另外,还有一个怀疑,就是网络不稳定,你可以在出现信号但是没下单的时候,手工下单试试,看能否正常下单,以判断是否是因为交易断开或者不稳定导致的
[此贴子已经被作者于2012-8-7 16:14:04编辑过]
|
-- 作者:saidas -- 发布时间:2012/8/7 16:30:21 -- 既然有能够正常触发的时候,那么说明软件的功能是没有问题的 所以问题应该处在时间上,可能时间稍微早或者慢那么一点,导致你的下单信号在最后一根K线,从而也就导致不下单了…… 您提示的原因1:下单信号在最后一根K线——交易的是股指,所以不存在这个问题。 就算是商品,代码中t2:=time>145000.理论上委托发出距离收盘还有5分钟,足够交易服务响应。 您提示的原因2:网络不稳定——我已经在不同的网络线路测试过了。另外,假若是网络不稳定,那么开仓也应该有问题吧,开仓从未有问题,只是平仓有问题。还有,别的简单策略没有问题,漏单频率很低<1% 这个策略是一个组合,稍复杂,漏单频率很高,十个交易日大约4、5个交易日会漏掉。
[此贴子已经被作者于2012-8-7 16:33:06编辑过]
|