以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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
--  
可以了,老师太厉害图片点击可在新窗口打开查看