以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 提前平仓问题 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=158682) |
-- 作者:zkz258 -- 发布时间:2017/10/16 16:17:06 -- 提前平仓问题 M10:=T0TOTIME(TIMETOT0(CLOSETIME(0))-60*TT); //收盘前TT分钟 平空:SELLSHORT(平空条件 and time>=M10,手数,MARKET); 上述提前TT分钟平仓代码,使用图表交易,K线是30分钟周期,固定轮询2秒,设定TT=1,原想在收盘前一分钟平仓,即185900动作(使用金字塔时间),但是程序执行结果是在18:30过2秒平仓,也就是30分钟K线完毕就执行,查了很久不知道原因,请老师帮忙解答。 |
-- 作者:wenarm -- 发布时间:2017/10/16 16:40:21 -- 你用的是time,它最候一根k的市价就是190000>M10的条件成立。你要用下面的方式处理 M1: T0TOTIME(TIMETOT0(CLOSETIME(0))-60); //收盘前1分钟 [此贴子已经被作者于2017/10/16 16:40:50编辑过]
|
-- 作者:zkz258 -- 发布时间:2017/10/16 16:47:24 -- 哦,明白了,time取的时间不是我想的那样,需要用动态函数207来处理才行,谢谢老师。 [此贴子已经被作者于2017/10/16 16:48:46编辑过]
|
-- 作者:zkz258 -- 发布时间:2017/10/16 19:21:36 -- 用老是的代码测试了一下,怎么在30分钟K线上开平仓显示不对啊 |
-- 作者:zkz258 -- 发布时间:2017/10/16 20:31:11 -- 不好意思,后面的OR (time=190000 and not(ISLASTBAR)),是我没有加上的time=190000。 但是对这段语句有个疑问: 既然30分钟K线上,time在最后这个K线上取得的是190000,那么这OR (time=190000 and not(ISLASTBAR))不是也会在18:30过2秒就触发动作了呢
|
-- 作者:wenarm -- 发布时间:2017/10/16 22:08:55 -- DYNAINFO(207)没有历史值。那就会造成历史上的信号发生变换。time=190000 and not(ISLASTBAR))这个的作用就是为了让成为历史信号的开平仓稳定下来。 not(ISLASTBAR)作用是判断不是最后一根k.
|