以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- [求助]减少回撤 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=149241) |
-- 作者:宁静致远1 -- 发布时间:2017/3/17 10:15:52 -- [求助]减少回撤 老师,请问你一下,以下为开平仓条件,我想设置如果是亏损单的话,则平仓后反向开仓,并设5点止损和5点止赢,而且这个平仓条件不能作为其他单子的平仓条件,只是为了减少回撤使用,该怎么设置 if c>UPPER and macd1>ref(macd1,1) and holding=0 and bjd=0 then buy(holding=0,ss,marketr); if c<enterprice-5 and holding>0 then sell(1,holding,marketr); if c<LOWER and macd1<ref(macd1,1) a and holding=0 and bjk=0 then buyshort(holding=0,ss,marketr); if c>enterprice+5 and holding<0 then sellshort(1,holding,marketr); |
-- 作者:jinzhe -- 发布时间:2017/3/17 10:27:38 -- variable:bj=0; if c>enterprice+5 and holding<0 and bj=0 then begin sellshort(1,holding,marketr); buy(1,1,marketr); bj:=1; end
if c<enterprice-5 and holding>0 and bj=0 then begin sell(1,holding,marketr); buyshort(1,1,marketr); bj:=1; end
if bj=1 and holding>0 and c>enterprice+5 then begin sell(1,0,marketr); bj:=0; end
if bj=1 and holding>0 and c<enterprice-5 then begin sell(1,0,marketr); bj:=0; end
if bj=1 and holding<0 and c<enterprice-5 then begin sellshort(1,0,marketr); bj:=0; end
if bj=1 and holding<0 and c>enterprice+5 then begin sellshort(1,0,marketr); bj:=0; end
|
-- 作者:宁静致远1 -- 发布时间:2017/3/17 14:20:39 -- 测了一下,还是对盈利的单子有影响,倒是对亏损的单子没反应,麻烦老师再帮我看看 |
-- 作者:宁静致远1 -- 发布时间:2017/3/17 14:21:11 -- 我是图表的 |
-- 作者:jinzhe -- 发布时间:2017/3/17 14:26:24 -- 以下是引用宁静致远1在2017-3-17 14:20:39的发言:
测了一下,还是对盈利的单子有影响,倒是对亏损的单子没反应,麻烦老师再帮我看看 发出你的截图,让我看到“对盈利有影响对亏损没有” |
-- 作者:宁静致远1 -- 发布时间:2017/3/17 14:46:37 -- 截图不懂得发,您帮我看一下,下面这些代码有没有什么问题 DIFF := EMA(CLOSE,12) - EMA(CLOSE,26); DEA := EMA(DIFF,9); MACD := 2*(DIFF-DEA), COLORSTICK; abb:=(timetot0(dynainfo(207))>=time0-2) or not(islastbar); if DEA>0 and macd>0 and macd>ref(macd,1) and abb then buy(holding=0,20,marketr); if macd<0 and abb and holding>0 then sell(1,0,marketr); if DEA<0 and macd<0 and macd<ref(macd,1) and abb then buyshort(holding=0,20,marketr); if macd>0 and abb and holding<0 then sellshort(1,0,marketr); variable:bj=0; if c>enterprice+5 and holding<0 and bj=0 then begin sellshort(1,holding,marketr); buy(1,1,marketr); bj:=1; end if c<enterprice-5 and holding>0 and bj=0 then begin sell(1,holding,marketr); buyshort(1,1,marketr); bj:=1; end if bj=1 and holding>0 and c>enterprice+5 then begin sell(1,0,marketr); bj:=0; end if bj=1 and holding>0 and c<enterprice-5 then begin sell(1,0,marketr); bj:=0; end if bj=1 and holding<0 and c<enterprice-5 then begin sellshort(1,0,marketr); bj:=0; end if bj=1 and holding<0 and c>enterprice+5 then begin sellshort(1,0,marketr); bj:=0; end |
-- 作者:jinzhe -- 发布时间:2017/3/17 14:49:23 -- 如果你用了我的代码然后出现了上述问题,那么你要把错误的地方用实际的情况来解释说明,你光说“有影响,没反映”是解决不了问题的 |
-- 作者:宁静致远1 -- 发布时间:2017/3/17 14:59:42 -- 就是会出现开仓盈利5个点就平仓了,亏损没有达到5个点的就不会反向开仓的情况 |
-- 作者:jinzhe -- 发布时间:2017/3/17 15:06:33 -- DIFF := EMA(CLOSE,12) - EMA(CLOSE,26);
DEA := EMA(DIFF,9);
MACD := 2*(DIFF-DEA), COLORSTICK;
variable:bj=0;
abb:=(timetot0(dynainfo(207))>=time0-2) or not(islastbar);
if DEA>0 and macd>0 and macd>ref(macd,1) and abb then buy(holding=0,20,marketr);
if macd<0 and abb and holding>0 then begin
sell(1,0,marketr);
if numprofit(1)<0 and bj=0 and holding=0 then begin
buyshort(holding=0,1,marketr);
bj:=1;
end
end
if DEA<0 and macd<0 and macd<ref(macd,1) and abb then buyshort(holding=0,20,marketr);
if macd>0 and abb and holding<0 then begin
sellshort(1,0,marketr);
if numprofit(1)<0 and bj=0 and holding=0 then begin
buy(holding=0,1,market);
bj:=1;
end
end
if bj=1 and holding>0 and c>enterprice+5 then begin
sell(1,0,marketr);
bj:=0;
end
if bj=1 and holding>0 and c<enterprice-5 then begin
sell(1,0,marketr);
bj:=0;
end
if bj=1 and holding<0 and c<enterprice-5 then begin
sellshort(1,0,marketr);
bj:=0;
end
if bj=1 and holding<0 and c>enterprice+5 then begin
sellshort(1,0,marketr);
bj:=0;
end
|
-- 作者:宁静致远1 -- 发布时间:2017/3/17 15:11:16 -- 可以了,老师太厉害 ![]() |