Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共3 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:请问这个简单的条件如何实现?

1楼
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)  出了问题?该如何修正?

2楼
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编辑过]
3楼
jjjfk 发表于:2017/12/1 13:38:45
多谢指导。我刚试了下,直接将 close<ref(enterprice,enterbars+1) 改成 close<enterprice就成功了,我真笨。
共3 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.03125 s, 2 queries.