金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 4288|回复: 10

麻烦改一下后台模式,学习学习。

[复制链接]

17

主题

76

帖子

76

积分

等级: 免费版

注册:
2024-1-6
曾用名:
发表于 2024-1-22 15:40 | 显示全部楼层 |阅读模式
{后台要求:

1. 品种为 RM,M,RB,AG,P,TA 且主力合约自动换月,

2. 收盘前2分钟自动全部平仓,

3. 收盘前15分钟不开新仓,

4. 交易模式为TICK 固定间隔,连续交易,多空双向交易

5. 报单后3分钟没有成交撤单

}

//*************** 1. 基础条件 ********************

K开仓基价X:=LOW;  D开仓基价X:=HIGH;

DIFF:=EMA(CLOSE,12) - EMA(CLOSE,26);         
DEA:=EMA(DIFF,9);                           
MACD:=2*(DIFF-DEA);                        
MACD卖出条件:=REF(MACD,2)<=REF(MACD,1);         
MACD买入条件:=REF(MACD,2)>REF(MACD,1);   

MA3:=EMA(C,3);    MA20:=EMA(C,20);
MA5:=EMA(C,5);    MA30:=EMA(C,30);
MA10:=EMA(C,10);  MA40:=EMA(C,40);

短线买点1:=CROSS(MA3,MA5);   短线卖点1:=CROSS(MA5,MA3);
短线买点2:=CROSS(MA3,MA10);  短线卖点2:=CROSS(MA10,MA3);
短线买点3:=CROSS(MA3,MA20);  短线卖点3:=CROSS(MA20,MA3);
短线买点4:=CROSS(MA3,MA30);  短线卖点4:=CROSS(MA30,MA3);
短线买点5:=CROSS(MA3,MA40);  短线卖点5:=CROSS(MA40,MA3);

短线卖点:= REF(短线卖点1,1) or ref(短线卖点2,1) or ref(短线卖点3,1) or ref(短线卖点4,1) or ref(短线卖点5,1) ;
短线买点:= REF(短线买点1,1) or ref(短线买点2,1) or ref(短线买点3,1) or ref(短线买点4,1) or ref(短线买点5,1);


//*************** 2. 多头策略 ********************

{BS基本买开执行A}
短线买开仓价A:=D开仓基价X+1*mindiff;
短线买止损价A:=REF(L,2);           
短线买止盈价A:=D开仓基价X+4*mindiff;  

BS买开执行A:=短线买点 and MACD买入条件;
BS多止损执行A:=REF(c,1)<短线买止损价A;

{BS基本买开执行B}
短线买开仓价B:=D开仓基价X;
短线买止损价B:=REF(L,2)-1*mindiff;            
短线买止盈价B:=D开仓基价X+7*mindiff;  

BS买开执行B:=短线买点 and MACD买入条件;
BS多止损执行B:=REF(c,1)<短线买止损价B;


//*************** 3. 空头策略 ********************
{BS基本卖开执行A}
短线卖开仓价A:=K开仓基价X-1*mindiff;   
短线卖止损价A:=REF(H,1)+4*mindiff;                 
短线卖止盈价A:=K开仓基价X-7*mindiff;   

BS卖开执行A:=短线卖点 and MACD卖出条件 ;
BS空止损执行A:=REF(c,1)>短线卖止损价A;

           
{BS基本卖开执行B}  
短线卖开仓价B:=K开仓基价X-0*mindiff;   
短线卖止损价B:=REF(H,1)+2*mindiff;                                                              
短线卖止盈价B:=K开仓基价X-9*mindiff;  

BS卖开执行B:=短线卖点 and MACD卖出条件;
BS空止损执行B:=REF(c,1)>短线卖止损价B;



//*************** 4. 交易执行 ********************

//****持仓管理*****

VARIABLE:B_01:=0,B_OPN_01:=0,B_TKP_01:=0,B_STP_01:=0,B_STP_BRK_01:=0,B_IDX_01:=0,
         B_02:=0,B_OPN_02:=0,B_TKP_02:=0,B_STP_02:=0,B_STP_BRK_02:=0,B_IDX_02:=0,
         S_01:=0,S_OPN_01:=0,S_TKP_01:=0,S_STP_01:=0,S_STP_BRK_01:=0,S_IDX_01:=0,
         S_02:=0,S_OPN_02:=0,S_TKP_02:=0,S_STP_02:=0,S_STP_BRK_02:=0,S_IDX_02:=0;
         
   
//*************** 多头 ********************
//****平仓*****       

//------------------多单:
//@多单:止盈

IF B_01=1 AND CLOSE>=B_TKP_01 THEN                                                               
BEGIN
        DA盈:SELL(1,1,LIMITR,CLOSE);                                                      
        B_01:=0;                                                                                                  
END

IF B_02=1 AND CLOSE>=B_TKP_02 THEN                                                               
BEGIN
        DB盈:SELL(1,1,LIMITR,CLOSE);                                                      
        B_02:=0;                                                                                 
END


//@多单:价格LIMITR止损
IF B_01=1 and BS多止损执行A THEN                                                               
BEGIN
        DA损:SELL(1,1,LIMITR,close);                                                
        B_01:=0;
END

IF B_02=1 and BS多止损执行B THEN                                                               
BEGIN
        DB损:SELL(1,1,LIMITR,close);                                                  
        B_02:=0;
END


//****开仓*****       

//@多单:开仓

IF BS买开执行A AND B_01=0 THEN                  
BEGIN
       
        DA:BUY(1,1,LIMITR,短线买开仓价A);           //执行买开     
        B_01:=1;                                    //状态          表示1手多单已经是持仓状态了                 
        B_OPN_01:=短线买开仓价A;                    //开仓         
    B_TKP_01:=短线买止盈价A;                    //止盈   
        B_STP_01:=短线买止损价A;                    //价格止损   
        B_IDX_01:=BARPOS;                           //开仓K线       记录哪一个开仓K线
END


IF BS买开执行B AND B_02=0 THEN              
BEGIN
       
        DB:BUY(1,1,LIMITR,短线买开仓价B);              
        B_02:=1;                                                     
        B_OPN_02:=短线买开仓价B;                       
    B_TKP_02:=短线买止盈价B;                       
        B_STP_02:=短线买止损价B;                        
        B_IDX_02:=BARPOS;                                
END





//*************** 空头 ********************

//****平仓*****       

//------------------空单:
//@空单:止盈

IF S_01=1 AND CLOSE<=S_TKP_01 THEN                                                            
BEGIN
        KA盈:SELLSHORT(1,1,LIMITR,CLOSE);                                                                        
        S_01:=0;                                                                                                                                
END

IF S_02=1 AND CLOSE<=S_TKP_02 THEN                                                            
BEGIN
        KB盈:SELLSHORT(1,1,LIMITR,CLOSE);                                                                             
        S_02:=0;                                                                                                                                      
END


//@空单:LIMITR价格止损
R_C1:=REF(C,1);

IF S_01=1 AND R_C1>S_STP_01 and BS空止损执行A THEN                                                            
BEGIN
        KA损:SELLSHORT(1,1,LIMITR,OPEN);                                                                  
        S_01:=0;                                                   
END


IF S_02=1 AND R_C1>S_STP_02 and BS空止损执行B THEN                                                            
BEGIN
        KB损:SELLSHORT(1,1,LIMITR,OPEN);                                                                  
        S_02:=0;                                                      
END



//****开仓*****       

//@空单:开仓
                           
IF BS卖开执行A AND S_01=0 THEN                             
BEGIN
        KA:BUYSHORT(BS卖开执行A,1,LIMITR,短线卖开仓价A);         
        S_01:=1;                                                
        S_OPN_01:=短线卖开仓价A;                                
          S_TKP_01:=短线卖止盈价A;                                 
        S_STP_01:=短线卖止损价A;                                 
        S_IDX_01:=BARPOS;                                                
END


IF BS卖开执行B AND S_02=0 THEN                             
BEGIN
        KB:BUYSHORT(BS卖开执行B,1,LIMITR,短线卖开仓价B);         
        S_02:=1;                                             
        S_OPN_02:=短线卖开仓价B;                                 
          S_TKP_02:=短线卖止盈价B;                                 
        S_STP_02:=短线卖止损价B;                                 
        S_IDX_02:=BARPOS;  
END



回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-1-22 16:00 | 显示全部楼层
1和5可以直接使用软件自带的移仓换月功能和追撤单功能
[PEL] 复制代码
{
1. 品种为 RM,M,RB,AG,P,TA 且主力合约自动换月,

2. 收盘前2分钟自动全部平仓,

3. 收盘前15分钟不开新仓,

4. 交易模式为TICK 固定间隔,连续交易,多空双向交易

5. 报单后3分钟没有成交撤单

}

//*************** 1. 基础条件 ********************

K开仓基价X:=LOW;  D开仓基价X:=HIGH;

DIFF:=EMA(CLOSE,12) - EMA(CLOSE,26);         
DEA:=EMA(DIFF,9);                           
MACD:=2*(DIFF-DEA);                        
MACD卖出条件:=REF(MACD,2)<=REF(MACD,1);         
MACD买入条件:=REF(MACD,2)>REF(MACD,1);   

MA3:=EMA(C,3);    
MA20:=EMA(C,20);
MA5:=EMA(C,5);    
MA30:=EMA(C,30);
MA10:=EMA(C,10);  
MA40:=EMA(C,40);

短线买点1:=CROSS(MA3,MA5);   短线卖点1:=CROSS(MA5,MA3);
短线买点2:=CROSS(MA3,MA10);  短线卖点2:=CROSS(MA10,MA3);
短线买点3:=CROSS(MA3,MA20);  短线卖点3:=CROSS(MA20,MA3);
短线买点4:=CROSS(MA3,MA30);  短线卖点4:=CROSS(MA30,MA3);
短线买点5:=CROSS(MA3,MA40);  短线卖点5:=CROSS(MA40,MA3);

短线卖点:= REF(短线卖点1,1) or ref(短线卖点2,1) or ref(短线卖点3,1) or ref(短线卖点4,1) or ref(短线卖点5,1) ;
短线买点:= REF(短线买点1,1) or ref(短线买点2,1) or ref(短线买点3,1) or ref(短线买点4,1) or ref(短线买点5,1);


//*************** 2. 多头策略 ********************

{BS基本买开执行A}
短线买开仓价A:=D开仓基价X+1*mindiff;
短线买止损价A:=REF(L,2);           
短线买止盈价A:=D开仓基价X+4*mindiff;  

BS买开执行A:=短线买点 and MACD买入条件;
BS多止损执行A:=REF(c,1)<短线买止损价A;

{BS基本买开执行B}
短线买开仓价B:=D开仓基价X;
短线买止损价B:=REF(L,2)-1*mindiff;            
短线买止盈价B:=D开仓基价X+7*mindiff;  

BS买开执行B:=短线买点 and MACD买入条件;
BS多止损执行B:=REF(c,1)<短线买止损价B;


//*************** 3. 空头策略 ********************
{BS基本卖开执行A}
短线卖开仓价A:=K开仓基价X-1*mindiff;   
短线卖止损价A:=REF(H,1)+4*mindiff;                 
短线卖止盈价A:=K开仓基价X-7*mindiff;   

BS卖开执行A:=短线卖点 and MACD卖出条件 ;
BS空止损执行A:=REF(c,1)>短线卖止损价A;

           
{BS基本卖开执行B}  
短线卖开仓价B:=K开仓基价X-0*mindiff;   
短线卖止损价B:=REF(H,1)+2*mindiff;                                                              
短线卖止盈价B:=K开仓基价X-9*mindiff;  

BS卖开执行B:=短线卖点 and MACD卖出条件;
BS空止损执行B:=REF(c,1)>短线卖止损价B;



//*************** 4. 交易执行 ********************

//****持仓管理*****

GLOBALVARIABLE:B_01:=0,B_OPN_01:=0,B_TKP_01:=0,B_STP_01:=0,B_STP_BRK_01:=0,B_IDX_01:=0,
         B_02:=0,B_OPN_02:=0,B_TKP_02:=0,B_STP_02:=0,B_STP_BRK_02:=0,B_IDX_02:=0,
         S_01:=0,S_OPN_01:=0,S_TKP_01:=0,S_STP_01:=0,S_STP_BRK_01:=0,S_IDX_01:=0,
         S_02:=0,S_OPN_02:=0,S_TKP_02:=0,S_STP_02:=0,S_STP_BRK_02:=0,S_IDX_02:=0;
         
   
//*************** 多头 ********************
//****平仓*****       

//------------------多单:
//@多单:止盈

IF B_01=1 AND CLOSE>=B_TKP_01 AND TBUYHOLDINGEX('','',1)>0 THEN                                                               
BEGIN
        DA盈:TSELL(1,1,LMT,CLOSE);                                                      
        B_01:=0;                                                                                                  
END

IF B_02=1 AND CLOSE>=B_TKP_02  AND TBUYHOLDINGEX('','',1)>0 THEN                                                               
BEGIN
        DB盈:TSELL(1,1,LMT,CLOSE);                                                      
        B_02:=0;                                                                               
END


//@多单:价格LIMITR止损
IF B_01=1 and BS多止损执行A  AND TBUYHOLDINGEX('','',1)>0 THEN                                                               
BEGIN
        DA损:TSELL(1,1,LMT,close);                                                
        B_01:=0;
END

IF B_02=1 and BS多止损执行B  AND TBUYHOLDINGEX('','',1)>0 THEN                                                               
BEGIN
        DB损:TSELL(1,1,LMT,close);                                                  
        B_02:=0;
END


//****开仓*****       

//@多单:开仓


IF BS买开执行A AND B_01=0 AND TBUYHOLDINGEX('','',2)=0 AND REMAININGTIME(CLOSE)>15*60 THEN                  
BEGIN
       
        DA:TBUY(1,1,LMT,短线买开仓价A);           //执行买开     
        B_01:=1;                                    //状态          表示1手多单已经是持仓状态了                 
        B_OPN_01:=短线买开仓价A;                    //开仓         
    	B_TKP_01:=短线买止盈价A;                    //止盈   
        B_STP_01:=短线买止损价A;                    //价格止损   
        B_IDX_01:=BARPOS;                           //开仓K线       记录哪一个开仓K线
END


IF BS买开执行B AND B_02=0 AND  TBUYHOLDINGEX('','',2)=0 AND REMAININGTIME(CLOSE)>15*60  THEN              
BEGIN
       
        DB:TBUY(1,1,LMT,短线买开仓价B);              
        B_02:=1;                                                     
        B_OPN_02:=短线买开仓价B;                       
    B_TKP_02:=短线买止盈价B;                       
        B_STP_02:=短线买止损价B;                        
        B_IDX_02:=BARPOS;                                
END





//*************** 空头 ********************

//****平仓*****       

//------------------空单:
//@空单:止盈

IF S_01=1 AND CLOSE<=S_TKP_01 AND  TSELLHOLDINGEX('','',1)>0 THEN                                                            
BEGIN
        KA盈:TSELLSHORT(1,1,LMT,CLOSE);                                                                        
        S_01:=0;                                                                                                                                
END

IF S_02=1 AND CLOSE<=S_TKP_02 AND  TSELLHOLDINGEX('','',1)>0 THEN                                                            
BEGIN
        KB盈:TSELLSHORT(1,1,lmt,CLOSE);                                                                             
        S_02:=0;                                                                                                                                      
END


//@空单:LIMITR价格止损
R_C1:=REF(C,1);

IF S_01=1 AND R_C1>S_STP_01 and BS空止损执行A AND  TSELLHOLDINGEX('','',1)>0 THEN                                                            
BEGIN
        KA损:TSELLSHORT(1,1,lmt,OPEN);                                                                  
        S_01:=0;                                                   
END


IF S_02=1 AND R_C1>S_STP_02 and BS空止损执行B AND  TSELLHOLDINGEX('','',1)>0 THEN                                                            
BEGIN
        KB损:TSELLSHORT(1,1,lmt,OPEN);                                                                  
        S_02:=0;                                                      
END



//****开仓*****       

//@空单:开仓
                           
IF BS卖开执行A AND S_01=0 AND  TSELLHOLDINGEX('','',2)=0 AND REMAININGTIME(CLOSE)>15*60 THEN                             
BEGIN
        KA:TBUYSHORT(BS卖开执行A,1,lmt,短线卖开仓价A);         
        S_01:=1;                                                
        S_OPN_01:=短线卖开仓价A;                                
          S_TKP_01:=短线卖止盈价A;                                 
        S_STP_01:=短线卖止损价A;                                 
        S_IDX_01:=BARPOS;                                                
END


IF BS卖开执行B AND S_02=0  AND  TSELLHOLDINGEX('','',2)=0 AND REMAININGTIME(CLOSE)>15*60  THEN                             
BEGIN
        KB:TBUYSHORT(BS卖开执行B,1,lmt,短线卖开仓价B);         
        S_02:=1;                                             
        S_OPN_02:=短线卖开仓价B;                                 
          S_TKP_02:=短线卖止盈价B;                                 
        S_STP_02:=短线卖止损价B;                                 
        S_IDX_02:=BARPOS;  
END


//2. 收盘前2分钟自动全部平仓,


if REMAININGTIME(CLOSE)<2*60  then BEGIN
	TSELLSHORT(TSELLHOLDINGEX('','',1)>0,TSELLHOLDINGEX('','',1),mkt); 
	TSELL(TBUYHOLDINGEX('','',1)>0,TBUYHOLDINGEX('','',1),mkt); 
END
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

17

主题

76

帖子

76

积分

等级: 免费版

注册:
2024-1-6
曾用名:
 楼主| 发表于 2024-1-22 17:15 | 显示全部楼层
技术006 发表于 2024-1-22 16:00
1和5可以直接使用软件自带的移仓换月功能和追撤单功能
[mw_shl_code=pel,true]{
1. 品种为 RM,M,RB,AG ...

谢谢阿,顾工, 我先自己试一下!不然文斗不知道问!感谢!!
回复

使用道具 举报

17

主题

76

帖子

76

积分

等级: 免费版

注册:
2024-1-6
曾用名:
 楼主| 发表于 2024-1-24 14:36 | 显示全部楼层
小熊鲸鱼大灰狼 发表于 2024-1-22 17:15
谢谢阿,顾工, 我先自己试一下!不然文斗不知道问!感谢!!

你好, 我申请了试用账户, 点击的步骤都是正确的,不知道为什么一个信号都没有, 按道理我设置的均线组合交叉, 应该有很多交易机会的, 尤其一分钟级别,请问你在贵司的电脑上看一下是什么原因引起的不?
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-1-24 14:55 | 显示全部楼层
上面代码有有笔误REMAININGTIME(CLOSETIME(0)),调整了下,至于没有信号的问题,要盘中测试跟踪看下。
[PEL] 复制代码
{
1. 品种为 RM,M,RB,AG,P,TA 且主力合约自动换月,

2. 收盘前2分钟自动全部平仓,

3. 收盘前15分钟不开新仓,

4. 交易模式为TICK 固定间隔,连续交易,多空双向交易

5. 报单后3分钟没有成交撤单

}

//*************** 1. 基础条件 ********************

K开仓基价X:=LOW;  D开仓基价X:=HIGH;

DIFF:=EMA(CLOSE,12) - EMA(CLOSE,26);         
DEA:=EMA(DIFF,9);                           
MACD:=2*(DIFF-DEA);                        
MACD卖出条件:=REF(MACD,2)<=REF(MACD,1);         
MACD买入条件:=REF(MACD,2)>REF(MACD,1);   

MA3:=EMA(C,3);   
MA20:=EMA(C,20);
MA5:=EMA(C,5);   
MA30:=EMA(C,30);
MA10:=EMA(C,10);  
MA40:=EMA(C,40);

短线买点1:=CROSS(MA3,MA5);   短线卖点1:=CROSS(MA5,MA3);
短线买点2:=CROSS(MA3,MA10);  短线卖点2:=CROSS(MA10,MA3);
短线买点3:=CROSS(MA3,MA20);  短线卖点3:=CROSS(MA20,MA3);
短线买点4:=CROSS(MA3,MA30);  短线卖点4:=CROSS(MA30,MA3);
短线买点5:=CROSS(MA3,MA40);  短线卖点5:=CROSS(MA40,MA3);

短线卖点:= REF(短线卖点1,1) or ref(短线卖点2,1) or ref(短线卖点3,1) or ref(短线卖点4,1) or ref(短线卖点5,1) ;
短线买点:= REF(短线买点1,1) or ref(短线买点2,1) or ref(短线买点3,1) or ref(短线买点4,1) or ref(短线买点5,1);


//*************** 2. 多头策略 ********************

{BS基本买开执行A}
短线买开仓价A:=D开仓基价X+1*mindiff;
短线买止损价A:=REF(L,2);           
短线买止盈价A:=D开仓基价X+4*mindiff;  

BS买开执行A:=短线买点 and MACD买入条件;
BS多止损执行A:=REF(c,1)<短线买止损价A;

{BS基本买开执行B}
短线买开仓价B:=D开仓基价X;
短线买止损价B:=REF(L,2)-1*mindiff;            
短线买止盈价B:=D开仓基价X+7*mindiff;  

BS买开执行B:=短线买点 and MACD买入条件;
BS多止损执行B:=REF(c,1)<短线买止损价B;


//*************** 3. 空头策略 ********************
{BS基本卖开执行A}
短线卖开仓价A:=K开仓基价X-1*mindiff;   
短线卖止损价A:=REF(H,1)+4*mindiff;                 
短线卖止盈价A:=K开仓基价X-7*mindiff;   

BS卖开执行A:=短线卖点 and MACD卖出条件 ;
BS空止损执行A:=REF(c,1)>短线卖止损价A;

            
{BS基本卖开执行B}
短线卖开仓价B:=K开仓基价X-0*mindiff;   
短线卖止损价B:=REF(H,1)+2*mindiff;                                                              
短线卖止盈价B:=K开仓基价X-9*mindiff;  

BS卖开执行B:=短线卖点 and MACD卖出条件;
BS空止损执行B:=REF(c,1)>短线卖止损价B;



//*************** 4. 交易执行 ********************

//****持仓管理*****

GLOBALVARIABLE:B_01:=0,B_OPN_01:=0,B_TKP_01:=0,B_STP_01:=0,B_STP_BRK_01:=0,B_IDX_01:=0,
         B_02:=0,B_OPN_02:=0,B_TKP_02:=0,B_STP_02:=0,B_STP_BRK_02:=0,B_IDX_02:=0,
         S_01:=0,S_OPN_01:=0,S_TKP_01:=0,S_STP_01:=0,S_STP_BRK_01:=0,S_IDX_01:=0,
         S_02:=0,S_OPN_02:=0,S_TKP_02:=0,S_STP_02:=0,S_STP_BRK_02:=0,S_IDX_02:=0;
         
   
//*************** 多头 ********************
//****平仓*****      

//------------------多单:
//@多单:止盈

IF B_01=1 AND CLOSE>=B_TKP_01 AND TBUYHOLDINGEX('','',1)>0 THEN                                                              
BEGIN
        DA盈:TSELL(1,1,LMT,CLOSE);                                                      
        B_01:=0;                                                                                                  
END

IF B_02=1 AND CLOSE>=B_TKP_02  AND TBUYHOLDINGEX('','',1)>0 THEN                                                              
BEGIN
        DB盈:TSELL(1,1,LMT,CLOSE);                                                      
        B_02:=0;                                                                              
END


//@多单:价格LIMITR止损
IF B_01=1 and BS多止损执行A  AND TBUYHOLDINGEX('','',1)>0 THEN                                                              
BEGIN
        DA损:TSELL(1,1,LMT,close);                                                
        B_01:=0;
END

IF B_02=1 and BS多止损执行B  AND TBUYHOLDINGEX('','',1)>0 THEN                                                              
BEGIN
        DB损:TSELL(1,1,LMT,close);                                                  
        B_02:=0;
END


//****开仓*****      

//@多单:开仓


IF BS买开执行A AND B_01=0 AND TBUYHOLDINGEX('','',2)=0 AND REMAININGTIME(CLOSETIME(0))>15*60 THEN                 
BEGIN
        
        DA:TBUY(1,1,LMT,短线买开仓价A);           //执行买开     
        B_01:=1;                                    //状态          表示1手多单已经是持仓状态了                 
        B_OPN_01:=短线买开仓价A;                    //开仓         
        B_TKP_01:=短线买止盈价A;                    //止盈   
        B_STP_01:=短线买止损价A;                    //价格止损   
        B_IDX_01:=BARPOS;                           //开仓K线       记录哪一个开仓K线
END


IF BS买开执行B AND B_02=0 AND  TBUYHOLDINGEX('','',2)=0 AND REMAININGTIME(CLOSETIME(0))>15*60  THEN            
BEGIN
        
        DB:TBUY(1,1,LMT,短线买开仓价B);              
        B_02:=1;                                                     
        B_OPN_02:=短线买开仓价B;                       
    B_TKP_02:=短线买止盈价B;                       
        B_STP_02:=短线买止损价B;                        
        B_IDX_02:=BARPOS;                                
END





//*************** 空头 ********************

//****平仓*****      

//------------------空单:
//@空单:止盈

IF S_01=1 AND CLOSE<=S_TKP_01 AND  TSELLHOLDINGEX('','',1)>0 THEN                                                           
BEGIN
        KA盈:TSELLSHORT(1,1,LMT,CLOSE);                                                                        
        S_01:=0;                                                                                                                                
END

IF S_02=1 AND CLOSE<=S_TKP_02 AND  TSELLHOLDINGEX('','',1)>0 THEN                                                           
BEGIN
        KB盈:TSELLSHORT(1,1,lmt,CLOSE);                                                                             
        S_02:=0;                                                                                                                                      
END


//@空单:LIMITR价格止损
R_C1:=REF(C,1);

IF S_01=1 AND R_C1>S_STP_01 and BS空止损执行A AND  TSELLHOLDINGEX('','',1)>0 THEN                                                           
BEGIN
        KA损:TSELLSHORT(1,1,lmt,OPEN);                                                                  
        S_01:=0;                                                   
END


IF S_02=1 AND R_C1>S_STP_02 and BS空止损执行B AND  TSELLHOLDINGEX('','',1)>0 THEN                                                           
BEGIN
        KB损:TSELLSHORT(1,1,lmt,OPEN);                                                                  
        S_02:=0;                                                      
END



//****开仓*****      

//@空单:开仓
                           
IF BS卖开执行A AND S_01=0 AND  TSELLHOLDINGEX('','',2)=0 AND REMAININGTIME(CLOSETIME(0))>15*60 THEN                           
BEGIN
        KA:TBUYSHORT(BS卖开执行A,1,lmt,短线卖开仓价A);         
        S_01:=1;                                                
        S_OPN_01:=短线卖开仓价A;                                
          S_TKP_01:=短线卖止盈价A;                                 
        S_STP_01:=短线卖止损价A;                                 
        S_IDX_01:=BARPOS;                                                
END


IF BS卖开执行B AND S_02=0  AND  TSELLHOLDINGEX('','',2)=0 AND REMAININGTIME(CLOSETIME(0))>15*60  THEN                           
BEGIN
        KB:TBUYSHORT(BS卖开执行B,1,lmt,短线卖开仓价B);         
        S_02:=1;                                             
        S_OPN_02:=短线卖开仓价B;                                 
          S_TKP_02:=短线卖止盈价B;                                 
        S_STP_02:=短线卖止损价B;                                 
        S_IDX_02:=BARPOS;  
END


//2. 收盘前2分钟自动全部平仓,


if REMAININGTIME(CLOSETIME(0))<10*60  then BEGIN
    TSELLSHORT(TSELLHOLDINGEX('','',1)>0,TSELLHOLDINGEX('','',1),mkt);
    TSELL(TBUYHOLDINGEX('','',1)>0,TBUYHOLDINGEX('','',1),mkt);
END
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-1-24 14:56 | 显示全部楼层
本帖最后由 技术009 于 2024-1-24 15:35 编辑

里面有笔误,调整下即可。
[PEL] 复制代码
{
1. 品种为 rm,m,rb,ag,p,ta 且主力合约自动换月,
  
2. 收盘前2分钟自动全部平仓,
  
3. 收盘前15分钟不开新仓,
  
4. 交易模式为tick 固定间隔,连续交易,多空双向交易
  
5. 报单后3分钟没有成交撤单
  
}
  
//*************** 1. 基础条件 ********************
  
k开仓基价x:=low;  d开仓基价x:=high;
  
diff:=ema(close,12) - ema(close,26);         
dea:=ema(diff,9);                           
macd:=2*(diff-dea);                        
macd卖出条件:=ref(macd,2)<=ref(macd,1);         
macd买入条件:=ref(macd,2)>ref(macd,1);   
  
ma3:=ema(c,3);    
ma20:=ema(c,20);
ma5:=ema(c,5);    
ma30:=ema(c,30);
ma10:=ema(c,10);  
ma40:=ema(c,40);
  
短线买点1:=cross(ma3,ma5);   短线卖点1:=cross(ma5,ma3);
短线买点2:=cross(ma3,ma10);  短线卖点2:=cross(ma10,ma3);
短线买点3:=cross(ma3,ma20);  短线卖点3:=cross(ma20,ma3);
短线买点4:=cross(ma3,ma30);  短线卖点4:=cross(ma30,ma3);
短线买点5:=cross(ma3,ma40);  短线卖点5:=cross(ma40,ma3);
  
短线卖点:= ref(短线卖点1,1) or ref(短线卖点2,1) or ref(短线卖点3,1) or ref(短线卖点4,1) or ref(短线卖点5,1) ;
短线买点:= ref(短线买点1,1) or ref(短线买点2,1) or ref(短线买点3,1) or ref(短线买点4,1) or ref(短线买点5,1);
  
  
//*************** 2. 多头策略 ********************
  
{bs基本买开执行a}
短线买开仓价a:=d开仓基价x+1*mindiff;
短线买止损价a:=ref(l,2);           
短线买止盈价a:=d开仓基价x+4*mindiff;  
  
bs买开执行a:=短线买点 and macd买入条件;
bs多止损执行a:=ref(c,1)<短线买止损价a;
  
{bs基本买开执行b}
短线买开仓价b:=d开仓基价x;
短线买止损价b:=ref(l,2)-1*mindiff;            
短线买止盈价b:=d开仓基价x+7*mindiff;  
  
bs买开执行b:=短线买点 and macd买入条件;
bs多止损执行b:=ref(c,1)<短线买止损价b;
  
  
//*************** 3. 空头策略 ********************
{bs基本卖开执行a}
短线卖开仓价a:=k开仓基价x-1*mindiff;   
短线卖止损价a:=ref(h,1)+4*mindiff;                 
短线卖止盈价a:=k开仓基价x-7*mindiff;   
  
bs卖开执行a:=短线卖点 and macd卖出条件 ;
bs空止损执行a:=ref(c,1)>短线卖止损价a;
  
             
{bs基本卖开执行b}
短线卖开仓价b:=k开仓基价x-0*mindiff;   
短线卖止损价b:=ref(h,1)+2*mindiff;                                                              
短线卖止盈价b:=k开仓基价x-9*mindiff;  
  
bs卖开执行b:=短线卖点 and macd卖出条件;
bs空止损执行b:=ref(c,1)>短线卖止损价b;
  
  
  
//*************** 4. 交易执行 ********************
  
//****持仓管理*****
  
globalvariable:b_01:=0,b_opn_01:=0,b_tkp_01:=0,b_stp_01:=0,b_stp_brk_01:=0,b_idx_01:=0,
         b_02:=0,b_opn_02:=0,b_tkp_02:=0,b_stp_02:=0,b_stp_brk_02:=0,b_idx_02:=0,
         s_01:=0,s_opn_01:=0,s_tkp_01:=0,s_stp_01:=0,s_stp_brk_01:=0,s_idx_01:=0,
         s_02:=0,s_opn_02:=0,s_tkp_02:=0,s_stp_02:=0,s_stp_brk_02:=0,s_idx_02:=0;
           
     
//*************** 多头 ********************
//****平仓*****       
  
//------------------多单:
//@多单:止盈
  
if b_01=1 and close>=b_tkp_01 and tbuyholdingex('','',1)>0 then                                                             
begin
        da盈:tsell(1,1,lmt,close);                                                      
        b_01:=0;                                                                                                  
end
  
if b_02=1 and close>=b_tkp_02  and tbuyholdingex('','',1)>0 then                                                             
begin
        db盈:tsell(1,1,lmt,close);                                                      
        b_02:=0;                                                                               
end
  
  
//@多单:价格limitr止损
if b_01=1 and bs多止损执行a  and tbuyholdingex('','',1)>0 then                                                             
begin
        da损:tsell(1,1,lmt,close);                                                
        b_01:=0;
end
  
if b_02=1 and bs多止损执行b  and tbuyholdingex('','',1)>0 then                                                             
begin
        db损:tsell(1,1,lmt,close);                                                  
        b_02:=0;
end
  
  
//****开仓*****       
  
//@多单:开仓
  
  
if bs买开执行a and b_01=0 and tbuyholdingex('','',2)=0 and remainingtime(closetime(0))>15*60 then                
begin
         
        da:tbuy(1,1,lmt,短线买开仓价a);           //执行买开     
        b_01:=1;                                    //状态          表示1手多单已经是持仓状态了                 
        b_opn_01:=短线买开仓价a;                    //开仓         
        b_tkp_01:=短线买止盈价a;                    //止盈   
        b_stp_01:=短线买止损价a;                    //价格止损   
        b_idx_01:=barpos;                           //开仓k线       记录哪一个开仓k线
end
  
  
if bs买开执行b and b_02=0 and  tbuyholdingex('','',2)=0 and remainingtime(closetime(0))>15*60  then            
begin
         
        db:tbuy(1,1,lmt,短线买开仓价b);              
        b_02:=1;                                                     
        b_opn_02:=短线买开仓价b;                       
    b_tkp_02:=短线买止盈价b;                       
        b_stp_02:=短线买止损价b;                        
        b_idx_02:=barpos;                                
end
  
  
  
  
  
//*************** 空头 ********************
  
//****平仓*****       
  
//------------------空单:
//@空单:止盈
  
if s_01=1 and close<=s_tkp_01 and  tsellholdingex('','',1)>0 then                                                          
begin
        ka盈:tsellshort(1,1,lmt,close);                                                                        
        s_01:=0;                                                                                                                                
end
  
if s_02=1 and close<=s_tkp_02 and  tsellholdingex('','',1)>0 then                                                          
begin
        kb盈:tsellshort(1,1,lmt,close);                                                                             
        s_02:=0;                                                                                                                                      
end
  
  
//@空单:limitr价格止损
r_c1:=ref(c,1);
  
if s_01=1 and r_c1>s_stp_01 and bs空止损执行a and  tsellholdingex('','',1)>0 then                                                          
begin
        ka损:tsellshort(1,1,lmt,open);                                                                  
        s_01:=0;                                                   
end
  
  
if s_02=1 and r_c1>s_stp_02 and bs空止损执行b and  tsellholdingex('','',1)>0 then                                                          
begin
        kb损:tsellshort(1,1,lmt,open);                                                                  
        s_02:=0;                                                      
end
  
  
  
//****开仓*****       
  
//@空单:开仓
                             
if bs卖开执行a and s_01=0 and  tsellholdingex('','',2)=0 and remainingtime(closetime(0))>15*60 then                           
begin
        ka:tbuyshort(bs卖开执行a,1,lmt,短线卖开仓价a);         
        s_01:=1;                                                
        s_opn_01:=短线卖开仓价a;                                
          s_tkp_01:=短线卖止盈价a;                                 
        s_stp_01:=短线卖止损价a;                                 
        s_idx_01:=barpos;                                                
end
  
  
if bs卖开执行b and s_02=0  and  tsellholdingex('','',2)=0 and remainingtime(closetime(0))>15*60  then                           
begin
        kb:tbuyshort(bs卖开执行b,1,lmt,短线卖开仓价b);         
        s_02:=1;                                             
        s_opn_02:=短线卖开仓价b;                                 
          s_tkp_02:=短线卖止盈价b;                                 
        s_stp_02:=短线卖止损价b;                                 
        s_idx_02:=barpos;  
end
  
  
//2. 收盘前2分钟自动全部平仓,
  
  
if remainingtime(closetime(0))<2*60  then begin
    tsellshort(tsellholdingex('','',1)>0,tsellholdingex('','',1),mkt); 
    tsell(tbuyholdingex('','',1)>0,tbuyholdingex('','',1),mkt); 
end
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

17

主题

76

帖子

76

积分

等级: 免费版

注册:
2024-1-6
曾用名:
 楼主| 发表于 2024-1-24 16:35 | 显示全部楼层
技术009 发表于 2024-1-24 14:56
里面有笔误,调整下即可。
[mw_shl_code=pel,true]{
1. 品种为 rm,m,rb,ag,p,ta 且主力合约自动换月 ...

谢谢啊!
回复

使用道具 举报

17

主题

76

帖子

76

积分

等级: 免费版

注册:
2024-1-6
曾用名:
 楼主| 发表于 2024-1-26 09:47 | 显示全部楼层
技术009 发表于 2024-1-24 14:56
里面有笔误,调整下即可。
[mw_shl_code=pel,true]{
1. 品种为 rm,m,rb,ag,p,ta 且主力合约自动换月 ...

你好, 后台可以跑了,有一个典型问题麻烦看一下, 我做了一个PPT进行描述。 这个问题理解了, 就没什么大问题了。代码在附件里面。





补充内容 (2024-1-26 09:50):

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-1-26 10:01 | 显示全部楼层
1.图表和后台没有对比性,图表不能准确反应后台当时的执行结果,例如策略中有ema这类算法,对于数据量是否敏感度的,使用不同的数据其计算结果会有出入。
对于后台的信号条件的疑问只能在相应的位置增加debugfile输出条件结果。(这种函数特性、执行间隔、数据量等因素都会造成差异性)

2.策略条件只要满足并且被捕获到,就会下单。关闭电脑也没有问题,只要第二天开盘前启动金字塔就行。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2024-1-26 16:09 | 显示全部楼层
在C盘创建一个名称为调试日志的文件夹,日志文件会输出到该文件夹中,把以下代码加入到你的策略最后。
LJ:STRCAT(STRCAT('C:\调试日志\',STKLABEL),'.TXT');
IF ISLASTBAR THEN BEGIN
   DEBUGFILE(LJ,'多头持仓='&NUMTOSTR(TBUYHOLDINGEX('','',2),0)&' 空头持仓='&NUMTOSTR(TSELLHOLDINGEX('','',2),0)&' 最新价='&NUMTOSTR(C,2)&' 前收='&NUMTOSTR(R_C1,2),1);
   DEBUGFILE(LJ,'开多条件1='&NUMTOSTR(BS买开执行A,0)&' 开多条件2='&NUMTOSTR(BS买开执行B,0)&' 开多标记1='&NUMTOSTR(B_01,0)&' 开多标记2='&NUMTOSTR(B_02,0),1);       
   DEBUGFILE(LJ,'短线买开仓价A='&NUMTOSTR(B_OPN_01,2)&' 短线买止盈价A='&NUMTOSTR(B_TKP_01,2)&' 短线买止损价A='&NUMTOSTR(B_STP_01,2),1);
   DEBUGFILE(LJ,'短线买开仓价B='&NUMTOSTR(B_OPN_02,2)&' 短线买止盈价B='&NUMTOSTR(B_TKP_02,2)&' 短线买止损价B='&NUMTOSTR(B_STP_02,2),1);
   DEBUGFILE(LJ,'短线卖开仓价A='&NUMTOSTR(S_OPN_01,2)&' 短线卖止盈价A='&NUMTOSTR(S_TKP_01,2)&' 短线卖止损价A='&NUMTOSTR(S_STP_01,2),1);
   DEBUGFILE(LJ,'短线卖开仓价B='&NUMTOSTR(S_OPN_02,2)&' 短线卖止盈价B='&NUMTOSTR(S_TKP_02,2)&' 短线卖止损价B='&NUMTOSTR(S_STP_02,2),1);
   DEBUGFILE(LJ,'-------------------------------------------------------',1);
   END

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-8-3 05:54 , Processed in 0.113559 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表