以文本方式查看主题
- 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp)
-- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4)
---- 为什么这不能达到移动止损的目标 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=58158)
|
-- 作者:lxihua5201
-- 发布时间:2013/10/30 10:50:13
-- 为什么这不能达到移动止损的目标
老师这为什么不能达到止损的目标,为什么空止损(zs) 多止损(ZS) 这是直线,我的目标是移动止损的,麻烦老师看一下
VARIABLE:ZS=0,HH=0;//声明全局变量ZS、HL MA5:=MA(C,5); MA20:=MA(C,20); ATR:=MA(H-L,20);//市场平均波动幅度 BUYCOND:=CROSS(MA5,MA20);//平空开多条件 SELLCOND:=CROSS(MA20,MA5);//平多开空条件 IF HOLDING>0 THEN BEGIN 多止损:ZS; IF L<ZS THEN SELL(1,1,LIMITR,MIN(O,ZS)-MINDIFF); ELSE IF SELLCOND THEN SELL(1,1,LIMITR,C); END IF HOLDING<0 THEN BEGIN 空止损:ZS; IF H>ZS THEN SELLSHORT(1,1,LIMITR,MAX(O,ZS)+MINDIFF); ELSE IF BUYCOND THEN SELLSHORT(1,1,LIMITR,C); END IF HOLDING=0 AND BUYCOND THEN BEGIN//多头开仓 BUY(1,1,LIMITR,C); IF H>HH THEN BEGIN HH:=H;//HL开仓后的最有利价位,刚买入时,最有利价位为开仓价 ZS:=HH-2*ATR; END END IF HOLDING=0 AND SELLCOND THEN BEGIN//空头开仓 BUYSHORT(1,1,LIMITR,C); IF L<HH THEN BEGIN HH:=L; ZS:=HH+2*ATR; END END
|
-- 作者:jinzhe
-- 发布时间:2013/10/30 10:58:36
--
VARIABLE:ZS=0,HH=0;//声明全局变量ZS、HL MA5:=MA(C,5); MA20:=MA(C,20); ATR:=MA(H-L,20);//市场平均波动幅度 BUYCOND:=CROSS(MA5,MA20);//平空开多条件 SELLCOND:=CROSS(MA20,MA5);//平多开空条件 IF HOLDING>0 THEN BEGIN
IF L<ZS THEN SELL(1,1,LIMITR,MIN(O,ZS)-MINDIFF); ELSE IF SELLCOND THEN SELL(1,1,LIMITR,C); END IF HOLDING<0 THEN BEGIN
IF H>ZS THEN SELLSHORT(1,1,LIMITR,MAX(O,ZS)+MINDIFF); ELSE IF BUYCOND THEN SELLSHORT(1,1,LIMITR,C); END IF HOLDING=0 AND BUYCOND THEN BEGIN//多头开仓 BUY(1,1,LIMITR,C); IF H>HH THEN BEGIN HH:=H;//HL开仓后的最有利价位,刚买入时,最有利价位为开仓价 ZS:=HH-2*ATR; END END IF HOLDING=0 AND SELLCOND THEN BEGIN//空头开仓 BUYSHORT(1,1,LIMITR,C); IF L<HH THEN BEGIN HH:=L; ZS:=HH+2*ATR; END END 多止损:ZS; 空止损:ZS;
|
-- 作者:lxihua5201
-- 发布时间:2013/10/30 11:03:42
--
老师:多止损:ZS;空止损:ZS;这应该是曲线,但是老师改的出来的不是曲线,我用的是ATR:=MA(H-L,20);来作为止损曲线的
|
-- 作者:lxihua5201
-- 发布时间:2013/10/30 11:06:29
--
ZS应该是红色的线,不是黄色的才是
此主题相关图片如下:bdfc263f-82e8-432a-9ab7-2005e57aa243.jpg

|
-- 作者:jinzhe
-- 发布时间:2013/10/30 11:07:10
--
这个是全局变量啊,只有在上面条件满足的时候才会有数值变化,条件不满足就一直是上一次改变时候的值
|
-- 作者:lxihua5201
-- 发布时间:2013/10/30 11:10:35
--
全局我是董啊,但是为什么加上这两家会变成曲线,我是想改成不要现在加的这两句,麻烦老师了VARIABLE:ZS=c,HL=c;//声明全局变量ZS、HL MA5:=MA(C,5); MA20:=MA(C,20); ATR:=MA(H-L,20);//市场平均波动幅度 BUYCOND:=CROSS(MA5,MA20);//平空开多条件 SELLCOND:=CROSS(MA20,MA5);//平多开空条件 IF HOLDING>0 THEN BEGIN 多止损:ZS; IF L<ZS THEN SELL(1,1,LIMITR,MIN(O,ZS)-MINDIFF); ELSE IF SELLCOND THEN SELL(1,1,LIMITR,C); END IF HOLDING<0 THEN BEGIN 空止损:ZS; IF H>ZS THEN SELLSHORT(1,1,LIMITR,MAX(O,ZS)+MINDIFF); ELSE IF BUYCOND THEN SELLSHORT(1,1,LIMITR,C); END IF HOLDING=0 AND BUYCOND THEN BEGIN//多头开仓 BUY(1,1,LIMITR,C); ZS:=C-2*ATR; HL:=C;//HL开仓后的最有利价位,刚买入时,最有利价位为开仓价 END IF HOLDING=0 AND SELLCOND THEN BEGIN//空头开仓 BUYSHORT(1,1,LIMITR,C); ZS:=C+2*ATR; HL:=C; END IF HOLDING>0 AND ENTERBARS>0 AND H>HL THEN BEGIN//最高价抬升,止损位相应地抬升 HL:=H; ZS:=HL-2*ATR; END IF HOLDING<0 AND ENTERBARS>0 AND L<HL THEN BEGIN//最低价下降,止损位相应地下移 HL:=L; ZS:=L+2*ATR; END
|
-- 作者:jinzhe
-- 发布时间:2013/10/30 11:22:18
--
这种条件满足后才赋值的全局变量,是一条随着k线变化的曲线才是奇怪的问题好吗。全局变量条件满足之后才会赋值,你既然了解为什么还有这样的问题?
[此贴子已经被作者于2013/10/30 11:22:53编辑过]
|
-- 作者:lxihua5201
-- 发布时间:2013/10/30 11:29:27
--
我奇怪的是我把这两句都去掉,IF HOLDING>0 AND ENTERBARS>0 AND H>HL THEN BEGIN//最高价抬升,止损位相应地抬升 HL:=H; ZS:=HL-2*ATR; END IF HOLDING<0 AND ENTERBARS>0 AND L<HL THEN BEGIN//最低价下降,止损位相应地下移 HL:=L; ZS:=L+2*ATR; END 和有这两句的表达的意思是一样,H>HL ,赋值给 HL:=H;,你可能会说条件的问题,我只要开仓我就开始记录最高价了,不去记录收盘价,道理是一样的,但是结果是不一样,所以还是麻烦老师帮我改一下,不要下面两句,你可能会说结果又差异,但是我觉得应该是不会差别很大,麻烦了,,谢谢
|
-- 作者:lxihua5201
-- 发布时间:2013/10/30 12:29:33
--
还有就是你给我改的时候不管什么时候都会画出止损线来,我想要的是有多单,和空单的时候画线,麻烦;老师了
|
-- 作者:lxihua5201
-- 发布时间:2013/10/30 12:57:00
--
而且atr是一个变动的值,(这种条件满足后才赋值的全局变量,是一条随着k线变化的曲线才是奇怪的问题好吗。全局变量条件满足之后才会赋值,你既然了解为什么还有这样的问题?)对于你这种看法我是同意,但你可以给我解释一下,为什么atr在变动,zs不动,希望老师好好看一下
|