以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请教盈利回撤的问题  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=54121)

--  作者:gsqh_zyp
--  发布时间:2013/7/19 16:03:54
--  请教盈利回撤的问题


图片点击可在新窗口打开查看此主题相关图片如下:111.jpg
图片点击可在新窗口打开查看

请问上图当多头盈利出现回撤后进行多头止盈,为什么多头止盈的地方出现开多,是不是因为这时候方向并没有反转还是多头趋势,如果是这样如何多头止盈出的开多


--  作者:lichenghu
--  发布时间:2013/7/19 16:15:21
--  
您还,这与您交易策略本身有关。您用从策略本身入手
--  作者:gsqh_zyp
--  发布时间:2013/7/19 16:24:04
--  
跟策略有关吗?没有什么办法控制吗?
--  作者:lichenghu
--  发布时间:2013/7/19 16:29:13
--  
您好,您只能从策略入手,改变此种情况时的入手规则
--  作者:gsqh_zyp
--  发布时间:2013/7/22 9:57:14
--  

//参数设置:
INPUT : M(9,2,60,6),N(14,1,100,1),P(26,20,100,8),S(12,5,40,4);
INPUT : SS(40,1,100,1);//持仓手数
VARIABLE : maxprofit = 0;//有仓位时最大获利幅度
win1 := 0;
win2 := 0;//止损、止盈、回撤控制

//需要的中间变量

 

//MACD指标
DIFF := EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  := EMA(DIFF,M);
MACD1 := 2 * (DIFF-DEA), COLORSTICK;

//开平仓条件
开多 := CROSS(DIFF , DEA);

开空 := CROSS(DEA , DIFF);

平空 := 开多;
平多 := 开空;
                            
//交易系统

IF HOLDING > 0 THEN BEGIN
 //多头平仓
 IF 平多 THEN
  SELL(1,HOLDING,LIMITR,CLOSE);
        
 //盈利计算
 IF ENTERBARS > 0 THEN BEGIN
  win1 := (c - ENTERPRICE)/ENTERPRICE * 100;//记录最大盈利
  IF win1 > maxprofit then
   maxprofit := win1;
  win2 :=(maxprofit - win1)/maxprofit*100;//最大盈利后的回调幅度
 END
    
 //多头浮动亏损达3%止损
 IF win1 < -3 THEN
  多头止损:SELL(1,HOLDING,LIMITR,CLOSE);
     //多头获利后回撤20%止盈
 IF win2 >15 AND win1 > 10 THEN BEGIN
  多头止盈:SELL(1,HOLDING,LIMITR,CLOSE),ORDERQUEUE;
END

IF HOLDING < 0 THEN BEGIN
     //空头平仓
 IF 平空 THEN
  SELLSHORT(1,HOLDING,LIMITR,CLOSE);
        
     //盈亏计算
 IF ENTERBARS > 0 THEN BEGIN   
  win1 := (enterprice - c)/enterprice*100; //记录最大盈利
  IF win1 > maxprofit THEN
   maxprofit := win1;
      win2 := (maxprofit - win1)/maxprofit*100; //最大盈利后的回调幅度
 END
         
 //空头浮动亏损达3%止损
 IF win1 < -3 THEN
  空头止损:SELLSHORT(1,HOLDING,LIMITR,CLOSE);
     //空头获利后回撤20%止盈
 IF win2 > 15 AND win1 > 10 THEN
  空头止盈:SELLSHORT(1,HOLDING,LIMITR,CLOSE);
END
       
IF HOLDING=0 THEN BEGIN
     //多头开仓
 IF 开多 THEN BEGIN
  BUY(1,SS,LIMITR,CLOSE);
  maxprofit := 0;
 END  
     
     //空头开仓
 IF 开空 THEN BEGIN
  BUYSHORT(1,SS,LIMITR,CLOSE);
  maxprofit := 0;
 END
END     

 

上面一个简单的例子,请帮忙改下如果改变策略使得当出现盈利回撤平仓后反手开仓 


--  作者:gsqh_zyp
--  发布时间:2013/7/22 10:45:26
--  
有没有老师能解答下哈?
--  作者:gsqh_zyp
--  发布时间:2013/7/22 14:12:31
--  
图片点击可在新窗口打开查看没人回答吗?图片点击可在新窗口打开查看
--  作者:gsqh_zyp
--  发布时间:2013/7/22 14:55:03
--  
没人回应?
--  作者:lichenghu
--  发布时间:2013/7/22 15:17:44
--  


//参数设置:
INPUT : M(9,2,60,6),N(14,1,100,1),P(26,20,100,8),S(12,5,40,4);
INPUT : SS(40,1,100,1);//持仓手数
VARIABLE : maxprofit = 0;//有仓位时最大获利幅度
win1 := 0;
win2 := 0;//止损、止盈、回撤控制

//需要的中间变量


 

//MACD指标
DIFF := EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  := EMA(DIFF,M);
MACD1 := 2 * (DIFF-DEA), COLORSTICK;

//开平仓条件
开多 := CROSS(DIFF , DEA);

开空 := CROSS(DEA , DIFF);

平空 := 开多;
平多 := 开空;
                            
//交易系统

IF HOLDING > 0 THEN BEGIN
 //多头平仓
 IF 平多 THEN
  SELL(1,HOLDING,LIMITR,CLOSE);
        
 //盈利计算
 IF ENTERBARS > 0 THEN BEGIN
  win1 := (c - ENTERPRICE)/ENTERPRICE * 100;//记录最大盈利
  IF win1 > maxprofit then
   maxprofit := win1;
  win2 :=(maxprofit - win1)/maxprofit*100;//最大盈利后的回调幅度
 END
    
 //多头浮动亏损达3%止损
 IF win1 < -3 THEN
  多头止损:SELL(1,HOLDING,LIMITR,CLOSE);
     //多头获利后回撤20%止盈
 IF win2 >15 AND win1 > 10 THEN BEGIN
  多头止盈:SELL(1,HOLDING,LIMITR,CLOSE),ORDERQUEUE;
  BUYSHORT(1,1,LIMITR,CLOSE);//回撤止盈反手
END

IF HOLDING < 0 THEN BEGIN
     //空头平仓
 IF 平空 THEN
  SELLSHORT(1,HOLDING,LIMITR,CLOSE);
        
     //盈亏计算
 IF ENTERBARS > 0 THEN BEGIN   
  win1 := (enterprice - c)/enterprice*100; //记录最大盈利
  IF win1 > maxprofit THEN
   maxprofit := win1;
      win2 := (maxprofit - win1)/maxprofit*100; //最大盈利后的回调幅度
 END
         
 //空头浮动亏损达3%止损
 IF win1 < -3 THEN
  空头止损:SELLSHORT(1,HOLDING,LIMITR,CLOSE);
     //空头获利后回撤20%止盈
 IF win2 > 15 AND win1 > 10 THEN
  空头止盈:SELLSHORT(1,HOLDING,LIMITR,CLOSE);
   BUY(1,1,LIMITR,CLOSE);//回撤止盈反手
END
       
IF HOLDING=0 THEN BEGIN
     //多头开仓
 IF 开多 THEN BEGIN
  BUY(1,SS,LIMITR,CLOSE);
  maxprofit := 0;
 END  
     
     //空头开仓
 IF 开空 THEN BEGIN
  BUYSHORT(1,SS,LIMITR,CLOSE);
  maxprofit := 0;
 END

 


--  作者:gsqh_zyp
--  发布时间:2013/7/22 16:11:03
--  
帅哥,在线噢!
lichenghu

你好,这反手语句我之前也试过,但是,如果当前趋势没有改变的话,它还是会继续按照之前的方向开仓,

 


此主题相关图片如下:未命名.jpg
按此在新窗口浏览图片