| 以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- [求助]减少回撤 (http://222.73.7.161/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 -- 可以了,老师太厉害  
         |