以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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

 

出现问题:



此主题相关图片如下:图片1.png
按此在新窗口浏览图片

红箭头处的第三次开仓其实并不符合我想要的条件,因为它的收盘并没有低于上一次的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就成功了,我真笨。