以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 金字塔软件问题提交 (http://weistock.com/bbs/list.asp?boardid=2) ---- 请问这个简单的条件如何实现? (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=160033) |
-- 作者:jjjfk -- 发布时间:2017/12/1 9:36:40 -- 请问这个简单的条件如何实现? 条件:比如做空,收盘突破n日最低点就交易X单位,随后只要是阴线且收盘比上一次的enterprice低,那就加仓X单位,加仓次数限制为3次。
加仓代码: variable:m=0; if holding<0 and close<open and close<ref(enterprice,enterbars+1) and m<3 and enterbars>=1 then begin buyshort(1,ss,marketr); m:=m+1; end
出现问题: 红箭头处的第三次开仓其实并不符合我想要的条件,因为它的收盘并没有低于上一次的enterprice 。 是不是 close<ref(enterprice,enterbars+1) 出了问题?该如何修正? |
-- 作者:gxx978 -- 发布时间:2017/12/1 9:56:22 -- 是这个地方出了问题,可以输出enterbars进行查看。因为你的开仓指令用的是marketr本周期指令,enterbars在开仓位置输出的是0,在后面那根K上输出的是1,你在enterbars再加1,等于在第三根K上等于是close和第一根出开空信号K的close做了比较的。所以你可以把marketr指令换成market指令。使用本周期指令或次周期指令会导致enterbars这类函数输出的值有差异的,需要注意下。 [此贴子已经被作者于2017/12/1 9:58:27编辑过]
|
-- 作者:jjjfk -- 发布时间:2017/12/1 13:38:45 -- 多谢指导。我刚试了下,直接将 close<ref(enterprice,enterbars+1) 改成 close<enterprice就成功了,我真笨。 |