以文本方式查看主题
- 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp)
-- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4)
---- 收盘平仓 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=164330)
|
-- 作者:yuanman
-- 发布时间:2018/7/9 10:41:53
-- 收盘平仓
请老师帮助编写,在每天14.59分平所有持仓。谢谢
|
-- 作者:FireScript
-- 发布时间:2018/7/9 10:43:56
--
if time>=185900 then begin sell(holding>0,holding,market); sellshort(holding<0,holding,market);
end
在日线上time函数失效。这个范例代码也就失效了。
[此贴子已经被作者于2018/7/9 10:46:10编辑过]
|
-- 作者:wenarm
-- 发布时间:2018/7/9 11:11:31
--
参考这个处理方式
收盘前x分钟平仓(分钟级别) M1: T0TOTIME(TIMETOT0(CLOSETIME(0))-60); //收盘前1分钟 M15:T0TOTIME(TIMETOT0(CLOSETIME(0))-60*15); //收盘前15分钟 if T0TOTIME(TIMETOT0(CLOSETIME(0))-60)<=DYNAINFO(207) or (time=190000 and not(ISLASTBAR)) then begin sell(1,holding,MARKET); sellshort(1,holding,MARKET); end 说明:提前的时间必须在最后一根k的范围内。否则采用(time < xxxx and time > xxxx)的方式进行控制 收盘前x分钟平仓(日线级别) if T0TOTIME(TIMETOT0(CLOSETIME(0))-60)<=DYNAINFO(207) or (not(ISLASTBAR)) then begin sell(1,holding,MARKET); sellshort(1,holding,MARKET); end
|
-- 作者:yuanman
-- 发布时间:2018/7/9 11:29:53
--
谢谢两位老师的解答,我是在5分钟周期上使用,要在收盘前一分钟平仓用这个可以吗?谢谢 if time>=185900 thenbegin sell(holding>0,holding,market); sellshort(holding<0,holding,market);
end
|
-- 作者:FireScript
-- 发布时间:2018/7/9 11:33:24
--
那不行的,time的返回值和K线周期直接挂钩。这种情况下建议采用3楼的方法比较好。或者是软件自带的提前下单(走完K模式才允许启用这个功能)
|
-- 作者:wenarm
-- 发布时间:2018/7/9 15:44:55
--
你可以直接分析理解我给你的代码范例。
|
-- 作者:yuanman
-- 发布时间:2018/7/9 16:25:20
--
我直接把老师给的语句复制到模型的交易指令后面。却出现了只要开仓就在开仓的当根K线上平仓的情况,不知什么原因?(游览器原因发不了截图)请老师帮忙。谢谢!M1: T0TOTIME(TIMETOT0(CLOSETIME(0))-60); //收盘前1分钟//M15:T0TOTIME(TIMETOT0(CLOSETIME(0))-60*15); //收盘前15分钟 IF T0TOTIME(TIMETOT0(CLOSETIME(0))-60)<=DYNAINFO(207) OR (TIME=145900 AND NOT(ISLASTBAR)) THEN BEGIN SELL(1,HOLDING,MARKET); SELLSHORT(1,HOLDING,MARKET); END
|
-- 作者:FireScript
-- 发布时间:2018/7/9 16:34:10
--
这个你要先判断是不是上面代码触发了。这段代码本身是没有问题的。上面代码在历史K上也是只在下午2点59分才触发。你给出的信息不足以做出判断。
|
-- 作者:yuanman
-- 发布时间:2018/7/10 15:37:50
--
平仓语句不能按时平仓,而且模型不能显示信号,M1: T0TOTIME(TIMETOT0(CLOSETIME(0))-60); //收盘前1分钟 IF T0TOTIME(TIMETOT0(CLOSETIME(0))-60)<=DYNAINFO(207) OR (TIME=145900 AND NOT(ISLASTBAR)) THEN BEGIN SELL(1,HOLDING,MARKET); SELLSHORT(1,HOLDING,MARKET); END 加载后如图;
此主题相关图片如下:qq截图20180710152027.png

|
-- 作者:yuanman
-- 发布时间:2018/7/10 15:53:16
--
9点加载模型后显示还是正常的,下午3点后再看时就像上图这样了,和昨天不同的是今天虽然每根K线上都有平仓信号显示但却没有平仓指令发出,不过14.59分钟也没有执行平仓。
|