以文本方式查看主题
- 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp)
-- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4)
---- [求助]止损是否有问题? (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=76093)
|
-- 作者:渴望知识
-- 发布时间:2015/3/3 13:21:33
-- [求助]止损是否有问题?
老师好
我单独做了一个系统来测试图表程序,发现一个问题,请指教:
这个使用公式测试系统回测后,图形不对,一开就平,不知道是哪里出了问题。
品种鸡蛋,1分钟或5分钟图表测试,后面附图。
zd:=ma(c,5)>ref(ma(c,5),1) and holding=0;//开多条件 zk:=ma(c,5)<ref(ma(c,5),1) and holding=0;//开空条件
BUY(holding=0 and zd and c>o and 090000<time<145500,1,limitr,c); //开多
kcwzl:=valuewhen(zd and ref(holding<=0,1) and holding>0,low);//开多单时的最低价 kdzsjg:kcwzl-3,COLORRED;//多单止损价格 kdzs:=C<kdzsjg ;//多单止损条件 sell(kdzs or c>kdzs+50 and holding>0,0,limitr,c);
此主题相关图片如下:qq图片20150303131957.png

|
-- 作者:jinzhe
-- 发布时间:2015/3/3 13:28:17
--
信号和测评是一致的,k线图上的信号也是一开就平的,哪里不对了?
|
-- 作者:渴望知识
-- 发布时间:2015/3/3 13:34:10
--
可是并没有满足平多的条件,就被平了?这还对?
[此贴子已经被作者于2015/3/3 13:34:20编辑过]
|
-- 作者:jinzhe
-- 发布时间:2015/3/3 13:45:31
--
哪里不对了?是你自己代码错误
c>kdzs+50
kdzs这个逻辑判断,不是价格或者数值,得出的结果不是0就是1,
c>kdzs+50 相当于c>51,你看看白糖的价格,有不满足的情况吗?
|
-- 作者:渴望知识
-- 发布时间:2015/3/3 13:49:26
--
哦,对啊,谢谢了。
|
-- 作者:渴望知识
-- 发布时间:2015/3/3 13:56:43
--
还是有问题啊,我把代码改了,但还是有单子一开就平,这这个问题也没解决啊。
input:tq(10,3,60,1); abb:=(time0-timetot0(dynainfo(207))<=tq) or not(islastbar);
zd:=ma(c,5)>ref(ma(c,5),1) and holding=0;//开多条件 zk:=ma(c,5)<ref(ma(c,5),1) and holding=0;//开空条件
BUY(holding=0 and zd and c>o and 090000<time<145500,1,limitr,c); //开多
kcwzl:=valuewhen(zd and ref(holding<=0,1) and holding>0,low);//开多单时的最低价 kdzsjg:kcwzl-3,COLORRED;//多单止损价格 kdzs:=C<kdzsjg ;//多单止损条件 sell(kdzs or c>kdzsjg+20 and holding>0,0,limitr,c);
此主题相关图片如下:qq截图20150303135617.png

|
-- 作者:jinzhe
-- 发布时间:2015/3/3 14:05:21
--
kcwzl:=valuewhen(zd and ref(holding<=0,1) and holding>0,low);//开多单时的最低价
改成
kcwzl:=ref(low,enterbars);//开多单时的最低价
|
-- 作者:渴望知识
-- 发布时间:2015/3/3 14:17:39
--
我改了,还是有点问题,请看附件:
1、9点半的那单还是被直接平了。
2、9点40那根为什么只是多1个点就平掉?也没到我止损止盈啊?
input:tq(10,3,60,1); abb:=(time0-timetot0(dynainfo(207))<=tq) or not(islastbar);
zd:=ma(c,5)>ref(ma(c,5),1) and holding=0;//开多条件 zk:=ma(c,5)<ref(ma(c,5),1) and holding=0;//开空条件
BUY(holding=0 and zd and c>o ,1,limitr,c); //开多
kcwzl:=ref(low,enterbars);//开多单时的最低价 kdzsjg:kcwzl-3,COLORRED;//多单止损价格 kdzs:=C<kdzsjg ;//多单止损条件 sell(kdzs or c>kdzsjg+20 and holding>0,0,limitr,c);
此主题相关图片如下:qq截图20150303141525.png

|
-- 作者:jinzhe
-- 发布时间:2015/3/3 14:25:07
--
因为条件满足了啊
你自己算算kdzs or c>kdzsjg+20是不是条件满足
具体点,你看看这根k线是不是 c>kdzsjg+20条件满足?
[此贴子已经被作者于2015/3/3 14:25:31编辑过]
|
-- 作者:渴望知识
-- 发布时间:2015/3/3 14:34:26
--
哦,这个是因为有滑点产生了,所以才是条件成立他执行,体现出来就是那个位置了。
谢谢。
有不明白的我再开新贴来问。
|