  
等级: 新手上路 
- 注册: 
 - 2022-7-12
 
- 曾用名: 
 
 
 
 | 
 
老师您好,我的策略是开仓信号发出后开仓,平仓信号发出后平仓然后反向开仓,现有策略加载在图上好像不能满足我的设想?有一下两个问题希望解答: 
    1.你看图上7月12日附近,开多以后有平多信号,但是没有开空信号,不知什么原因 
    2.每次开仓后朝有利方向走,没走多远就平仓了,是止盈幅度设置问题,还是回撤止盈设置有问题? 
 
//参数设置: 
INPUT:P(1){建仓量},P1(1,0,50,5){初始止损幅度},P2(3,2,100,10){止盈幅度},P3(45,5,60,5){回撤止盈}; 
VARIABLE:MAXPROFIT=0,{有仓位时最大获利幅度}               
WIN1:=0;                                                             
WIN2:=0;//止盈、止损、回撤控制  
 
//信号模块:该模块主用于多空头及平仓信号的量化                                               
MA10:MA(CLOSE,10),PRECISION0,;                                                   
MA20:MA(CLOSE,20),PRECISION0,;                          
平空开多:=CROSS(MA10,MA20);                                                                                           
平多开空:=CROSS(MA20,MA10);   
 
//图表日内交易模块: 
  IF HOLDING=0 THEN BEGIN  
     //多头开仓  
     IF {交易时间 AND} 平空开多 THEN BEGIN  
         BUY(1,P,MARKETR);  
         MAXPROFIT:=0;  
     END  
 
     //空头开仓  
     IF {交易时间 AND} 平多开空 THEN BEGIN  
         BUYSHORT(1,P,MARKETR);  
         MAXPROFIT:=0;  
     END  
 END  
 
 IF HOLDING>0 THEN BEGIN  
     //多头平仓  
     IF 平多开空 THEN  
         SELL(1,HOLDING,MARKETR);  
 
     //盈亏计算  
     IF ENTERBARS>0 THEN BEGIN  
         WIN1:=(C-AVGENTERPRICE)/AVGENTERPRICE*100; //记录最大盈利 
             IF WIN1>MAXPROFIT THEN 
                 MAXPROFIT:=WIN1;  
         WIN2:=(MAXPROFIT-WIN1)/MAXPROFIT*100;  
     END  
 
     //多头初始浮亏 P1% 止损  
     IF WIN1<-P1 THEN  
         SELL(1,HOLDING,MARKETR);  
 
     //多头利润大于 P2% 止盈  
     IF WIN1>P2 THEN  
         SELL(1,HOLDING,MARKETR);  
 
     //多头获利后回撤 P3%止盈  
     IF WIN2>P3 AND OPENPROFIT>0 THEN  
         SELL(1,HOLDING,MARKETR);  
 END  
 
 IF HOLDING<0 THEN BEGIN  
 
     //空头平仓  
     IF 平空开多 THEN  
         SELLSHORT(1,HOLDING,MARKETR);  
 
     //盈亏计算  
     IF ENTERBARS>0 THEN BEGIN  
         WIN1:=(AVGENTERPRICE-C)/AVGENTERPRICE*100; //记录最大盈利  
             IF WIN1>MAXPROFIT THEN 
               MAXPROFIT:=WIN1;  
         WIN2:=(MAXPROFIT-WIN1)/MAXPROFIT*100;  
     END  
 
     //空头初始浮亏超过 P1% 止损  
     IF WIN1<-P1 THEN  
         SELLSHORT(1,HOLDING,MARKETR);  
 
     //空头利润大于 P2%止盈  
     IF WIN1>P2 THEN  
         SELLSHORT(1,HOLDING,MARKETR);  
 
     //空头回撤 P3% 止盈  
     IF WIN2>P3 AND OPENPROFIT>0 THEN  
         SELLSHORT(1,HOLDING,MARKETR);  
 END 
 
 
 
 
 |   
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?  
 
 
 
x
 
 
 
 
 |