金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 4491|回复: 18

请问图表交易支持5组不同的报单吗,能分包对应具体的止盈止损及开仓价吗?

[复制链接]

17

主题

76

帖子

76

积分

等级: 免费版

注册:
2024-1-6
曾用名:
发表于 2024-1-6 22:35 | 显示全部楼层 |阅读模式
DIFF:=EMA(CLOSE,12) - EMA(CLOSE,26);
DEA:=EMA(DIFF,9);
MACD:=2*(DIFF-DEA);

MA5:EMA(C,5);     
MA10:EMA(C,10);  
MA20:EMA(C,20);   
MA60:EMA(C,60);   
MA100:EMA(C,100);
MA200:EMA(C,200);

短线卖点1:=CROSS(MA10,MA5);
短线卖点2:=CROSS(MA20,MA5);
短线卖点3:=CROSS(MA60,MA5);
短线卖点4:=CROSS(MA100,MA5);
短线卖点5:=CROSS(MA200,MA5);

短线卖点:=短线卖点1 or 短线卖点2 or 短线卖点3 or 短线卖点4 or 短线卖点5;
MACD条件:=REF(MACD,1)>0;

K开仓基价X:=LOW;

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

BS卖开执行A:=短线卖点 AND MACD条件 ;

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

BS卖开执行B:=短线卖点 AND MACD条件;

//BS基本卖开执行C  
短线卖开仓价C:=K开仓基价X-1*mindiff;   
短线卖止损价C:=REF(H,1)+1*mindiff;                                             
短线卖止盈价C:=K开仓基价X-6*mindiff;   

BS卖开执行C:=短线卖点 AND MACD条件;

//BS基本卖开执行D  
短线卖开仓价D:=K开仓基价X-1*mindiff;   
短线卖止损价D:=K开仓基价X+3*mindiff;                                             
短线卖止盈价D:=短线卖开仓价D-6*mindiff;   

BS卖开执行D:=短线卖点 AND MACD条件;

//BS基本卖开执行E  
短线卖开仓价E:=K开仓基价X-1*mindiff;   
短线卖止损价E:=REF(H,1)-1*mindiff;                                             
短线卖止盈价E:=K开仓基价X-9*mindiff;   

BS卖开执行E:=短线卖点 AND MACD条件;

//******************************************
//交易执行:
//******************************************
{BS卖开执行A,BS卖开执行B,BS卖开执行C,BS卖开执行D ,BS卖开执行E 五组开空单}

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

//****持仓管理*****
K_ID:=BARPOS;

S_IDX_01:=BARPOS;
S_IDX_02:=BARPOS;
S_IDX_03:=BARPOS;
S_IDX_04:=BARPOS;
S_IDX_05:=BARPOS;

VARIABLE: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_COUNT_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,S_COUNT_02:=0,
         S_03:=0,S_OPN_03:=0,S_TKP_03:=0,S_STP_03:=0,S_STP_BRK_03:=0,S_IDX_03:=0,S_COUNT_03:=0,
         S_04:=0,S_OPN_04:=0,S_TKP_04:=0,S_STP_04:=0,S_STP_BRK_04:=0,S_IDX_04:=0,S_COUNT_04:=0,
         S_05:=0,S_OPN_05:=0,S_TKP_05:=0,S_STP_05:=0,S_STP_BRK_05:=0,S_IDX_05:=0,S_COUNT_05:=0;

//****平仓*****
截图202401062235151901.png
回复

使用道具 举报

17

主题

76

帖子

76

积分

等级: 免费版

注册:
2024-1-6
曾用名:
 楼主| 发表于 2024-1-22 13:30 | 显示全部楼层
技术010 发表于 2024-1-9 08:51
1、是的,如果图表上信号闪烁消失了,那开仓记录的这些全局变量也会消失的。图表程序化交易是以图表上的信 ...

我写了一个简单的案例:
MA3:=EMA(C,3);   
MA5:=EMA(C,5);
MA10:=EMA(C,10);
MA20:=EMA(C,20);
MA30:=EMA(C,30);
MA40:=EMA(C,40);

K开仓基价X:=LOW;


DIFF:=EMA(CLOSE,12) - EMA(CLOSE,26);         
DEA:=EMA(DIFF,9);                           
MACD:=2*(DIFF-DEA);                        
MACD卖出条件:=REF(MACD,2)<=REF(MACD,1);                                                                        // A  在上一个K线已经确认MACD条件, 不会存在闪点     


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

短线卖点:= REF(短线卖点1,1) or ref(短线卖点2,1) or ref(短线卖点3,1) or ref(短线卖点4,1) or ref(短线卖点5,1) ;  // B  在上一个K线已经确认CROSS条件, 不会存在闪点
        

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

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

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

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


DRAWTEXT(BS卖开执行A,短线卖开仓价A, +NUMTOSTR(短线卖开仓价A,0)),COLORRED;
DRAWTEXT(BS卖开执行A,短线卖止损价A, +NUMTOSTR(短线卖止损价A,0)),COLORRED;            
DRAWTEXT(BS卖开执行A,短线卖止盈价A, +NUMTOSTR(短线卖止盈价A,0)),COLORRED;


DRAWTEXT(BS卖开执行B,短线卖开仓价B, +NUMTOSTR(短线卖开仓价B,0)),COLORFF00FF;
DRAWTEXT(BS卖开执行B,短线卖止损价B, +NUMTOSTR(短线卖止损价B,0)),COLORFF00FF;        
DRAWTEXT(BS卖开执行B,短线卖止盈价B, +NUMTOSTR(短线卖止盈价B,0)),COLORFF00FF;


//交易执行:
//******************************************

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

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


VARIABLE: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_COUNT_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,S_COUNT_02:=0;

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

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

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


补充内容 (2024-1-22 13:37):
具体问题见下楼
回复

使用道具 举报

17

主题

76

帖子

76

积分

等级: 免费版

注册:
2024-1-6
曾用名:
 楼主| 发表于 2024-1-6 22:36 | 显示全部楼层
请问图表交易支持5组不同的报单吗,能分别对应具体的止盈止损及开仓价吗?请问我的代码有问题吗?
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-1-8 08:31 | 显示全部楼层
小熊鲸鱼大灰狼 发表于 2024-1-6 22:36
请问图表交易支持5组不同的报单吗,能分别对应具体的止盈止损及开仓价吗?请问我的代码有问题吗?

下单逻辑控制没有限制。开仓条件只要对应各自的开平仓语句即可
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

17

主题

76

帖子

76

积分

等级: 免费版

注册:
2024-1-6
曾用名:
 楼主| 发表于 2024-1-8 09:50 | 显示全部楼层
技术006 发表于 2024-1-8 08:31
下单逻辑控制没有限制。开仓条件只要对应各自的开平仓语句即可

//******************************************
{BS卖开执行A,BS卖开执行B,BS卖开执行C,BS卖开执行D ,BS卖开执行E 五组开空单}

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

//****持仓管理*****
K_ID:=BARPOS;

S_IDX_01:=BARPOS;
S_IDX_02:=BARPOS;
S_IDX_03:=BARPOS;
S_IDX_04:=BARPOS;
S_IDX_05:=BARPOS;

VARIABLE: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_COUNT_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,S_COUNT_02:=0,
         S_03:=0,S_OPN_03:=0,S_TKP_03:=0,S_STP_03:=0,S_STP_BRK_03:=0,S_IDX_03:=0,S_COUNT_03:=0,
         S_04:=0,S_OPN_04:=0,S_TKP_04:=0,S_STP_04:=0,S_STP_BRK_04:=0,S_IDX_04:=0,S_COUNT_04:=0,
         S_05:=0,S_OPN_05:=0,S_TKP_05:=0,S_STP_05:=0,S_STP_BRK_05:=0,S_IDX_05:=0,S_COUNT_05:=0;

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

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

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

IF S_03=1 AND CLOSE<=S_TKP_03 THEN                                                            
BEGIN
        KC盈:SELLSHORT(1,1,LIMITR,CLOSE);                                                                             
        S_03:=0;                                                                                                                                      
END


IF S_04=1 AND CLOSE<=S_TKP_04 THEN                                                            
BEGIN
        KD盈:SELLSHORT(1,1,LIMITR,CLOSE);                                                                             
        S_04:=0;                                                                                                                                      
END

IF S_05=1 AND CLOSE<=S_TKP_05 THEN                                                            
BEGIN
        KE盈:SELLSHORT(1,1,LIMITR,CLOSE);                                                                             
        S_05:=0;                                                                                                                                      
END




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

IF S_01=1 AND R_C1>S_STP_01 THEN                                                            
BEGIN
        KA损:SELLSHORT(1,1,LIMITR,OPEN);                           //执行LIMITR价格止损                                       
        S_01:=0;                                                   //状态
END

IF S_02=1 AND R_C1>S_STP_02 THEN                                                            
BEGIN
        KB损:SELLSHORT(1,1,LIMITR,OPEN);                                                                  
        S_02:=0;                                                      
END

IF S_03=1 AND R_C1>S_STP_03 THEN                                                            
BEGIN
        KC损:SELLSHORT(1,1,LIMITR,OPEN);                                                                  
        S_03:=0;                                                      
END

IF S_04=1 AND R_C1>S_STP_04 THEN                                                            
BEGIN
        KD损:SELLSHORT(1,1,LIMITR,OPEN);                                                                  
        S_04:=0;                                                      
END

IF S_05=1 AND R_C1>S_STP_05 THEN                                                            
BEGIN
        KE损:SELLSHORT(1,1,LIMITR,OPEN);                                                                  
        S_05:=0;                                                      
END



//*************超过4K平仓*************
IF S_01=1 AND BARPOS-S_IDX_01>=4 THEN                                                            
BEGIN
        KA超:SELLSHORT(1,1,LIMITR,OPEN);                           //执行LIMITR价格止损                                       
        S_01:=0;                                                   //状态
END

IF S_02=1 AND BARPOS-S_IDX_02>=4 THEN                                                            
BEGIN
        KB超:SELLSHORT(1,1,LIMITR,OPEN);                                                                  
        S_02:=0;                                                   
END

IF S_03=1 AND BARPOS-S_IDX_03>=4 THEN                                                            
BEGIN
        KC超:SELLSHORT(1,1,LIMITR,OPEN);                                                               
        S_03:=0;                                                   
END

IF S_04=1 AND BARPOS-S_IDX_04>=4 THEN                                                            
BEGIN
        KD超:SELLSHORT(1,1,LIMITR,OPEN);                                                                 
        S_04:=0;                                                
END


//************信号计数*************
IF S_01=1 AND BS卖开执行A THEN                                                            
BEGIN
        S_COUNT_01:=S_COUNT_01+1;
        IF S_COUNT_01>=4 THEN
        BEGIN
        KA信:SELLSHORT(1,1,LIMITR,OPEN);                                                                 
        S_01:=0;                                                
        END
END

IF S_02=1 AND BS卖开执行B THEN                                                            
BEGIN
        S_COUNT_02:=S_COUNT_02+1;
        IF S_COUNT_02>=4 THEN
        BEGIN
        KB信:SELLSHORT(1,1,LIMITR,OPEN);                                                               
        S_02:=0;                                                   
        END
END


IF S_03=1 AND BS卖开执行C THEN                                                            
BEGIN
        S_COUNT_03:=S_COUNT_03+1;
        IF S_COUNT_03>=4 THEN
        BEGIN
        KC信:SELLSHORT(1,1,LIMITR,OPEN);                                                                  
        S_03:=0;                                                   
        END
END


IF S_04=1 AND BS卖开执行D THEN                                                            
BEGIN
        S_COUNT_04:=S_COUNT_04+1;
        IF S_COUNT_04>=4 THEN
        BEGIN
        KD信:SELLSHORT(1,1,LIMITR,OPEN);                                                               
        S_04:=0;                                                   
        END
END

IF S_05=1 AND BS卖开执行E THEN                                                            
BEGIN
        S_COUNT_05:=S_COUNT_05+1;
        IF S_COUNT_05>=4 THEN
        BEGIN
        KE信:SELLSHORT(1,1,LIMITR,OPEN);                                                                  
        S_05:=0;                                                   
        END
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;                                                 //开仓K线   
        S_COUNT_01:=0;                                    
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;  
        S_COUNT_02:=0;                                    
END


IF BS卖开执行C AND S_03=0 THEN                             
BEGIN
        KC:BUYSHORT(BS卖开执行C,1,LIMITR,短线卖开仓价C);        
        S_03:=1;                                             
        S_OPN_03:=短线卖开仓价C;                                 
          S_TKP_03:=短线卖止盈价C;                                 
        S_STP_03:=短线卖止损价C;                                 
        S_IDX_03:=BARPOS;   
        S_COUNT_03:=0;                                   
END

IF BS卖开执行D AND S_04=0 THEN                             
BEGIN
        KD:BUYSHORT(BS卖开执行D,1,LIMITR,短线卖开仓价D);        
        S_04:=1;                                             
        S_OPN_04:=短线卖开仓价D;                                 
          S_TKP_04:=短线卖止盈价D;                                 
        S_STP_04:=短线卖止损价D;                                 
        S_IDX_04:=BARPOS;   
        S_COUNT_04:=0;                                   
END

IF BS卖开执行E AND S_05=0 THEN                             
BEGIN
        KE:BUYSHORT(BS卖开执行E,1,LIMITR,短线卖开仓价E);        
        S_05:=1;                                             
        S_OPN_05:=短线卖开仓价E;                                 
          S_TKP_05:=短线卖止盈价E;                                 
        S_STP_05:=短线卖止损价E;                                 
        S_IDX_05:=BARPOS;   
        S_COUNT_05:=0;                                   
END
回复

使用道具 举报

17

主题

76

帖子

76

积分

等级: 免费版

注册:
2024-1-6
曾用名:
 楼主| 发表于 2024-1-8 09:51 | 显示全部楼层
技术006 发表于 2024-1-8 08:31
下单逻辑控制没有限制。开仓条件只要对应各自的开平仓语句即可

请问可以电话联系不, 我只要了解了这个写法OK, 在运行中没有问题, 就准备购买软件了
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2024-1-8 10:17 | 显示全部楼层
从代码逻辑上看,没有看出来有逻辑问题。建议你可以先用免费版模拟交易下,看实际运行是否和预期一致。在运行过程中遇到问题,可以跟踪调试下代码,图表策略调试方法如下:https://www.weistock.com/bbs/for ... &extra=page%3D1
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

17

主题

76

帖子

76

积分

等级: 免费版

注册:
2024-1-6
曾用名:
 楼主| 发表于 2024-1-8 10:21 | 显示全部楼层
技术010 发表于 2024-1-8 10:17
从代码逻辑上看,没有看出来有逻辑问题。建议你可以先用免费版模拟交易下,看实际运行是否和预期一致。在运 ...

DIFF:=EMA(CLOSE,12) - EMA(CLOSE,26);
DEA:=EMA(DIFF,9);
MACD:=2*(DIFF-DEA);

MA5:EMA(C,5);     
MA10:=EMA(C,10);  
MA20:EMA(C,20);   
MA60:=EMA(C,60);   
MA100:=EMA(C,100);
MA200:=EMA(C,200);

短线卖点1:=CROSS(MA10,MA5);
短线卖点2:=CROSS(MA20,MA5);
短线卖点3:=CROSS(MA60,MA5);
短线卖点4:=CROSS(MA100,MA5);
短线卖点5:=CROSS(MA200,MA5);

短线卖点:=短线卖点1 or 短线卖点2 or 短线卖点3 or 短线卖点4 or 短线卖点5;
MACD条件:=REF(MACD,1)>MACD;

K开仓基价X:=LOW;
   
//BS基本卖开执行A  
短线卖开仓价A:=K开仓基价X-1;   
短线卖止损价A:=REF(H,1)+4;                 
短线卖止盈价A:=K开仓基价X-7;   

BS卖开执行A:=短线卖点 AND MACD条件 ;
           
//BS基本卖开执行B  
短线卖开仓价B:=K开仓基价X-1;   
短线卖止损价B:=REF(H,1)+2;                                                              
短线卖止盈价B:=K开仓基价X-9;  
  
BS卖开执行B:=短线卖点 AND MACD条件;

//BS基本卖开执行C  
短线卖开仓价C:=K开仓基价X-1;   
短线卖止损价C:=REF(H,1)+1;                                             
短线卖止盈价C:=K开仓基价X-6;   

BS卖开执行C:=短线卖点 AND MACD条件;

//BS基本卖开执行D  
短线卖开仓价D:=K开仓基价X-1;   
短线卖止损价D:=K开仓基价X+3;                                             
短线卖止盈价D:=短线卖开仓价D-6;   

BS卖开执行D:=短线卖点 AND MACD条件;

//BS基本卖开执行E  
短线卖开仓价E:=K开仓基价X-1;   
短线卖止损价E:=REF(H,1)-1;                                             
短线卖止盈价E:=K开仓基价X-9;   

BS卖开执行E:=短线卖点 AND MACD条件;

//******************************************
//交易执行:
//******************************************
{BS卖开执行A,BS卖开执行B,BS卖开执行C,BS卖开执行D ,BS卖开执行E 五组开空单}

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

//****持仓管理*****
K_ID:=BARPOS;

S_IDX_01:=BARPOS;
S_IDX_02:=BARPOS;
S_IDX_03:=BARPOS;
S_IDX_04:=BARPOS;
S_IDX_05:=BARPOS;

VARIABLE: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_COUNT_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,S_COUNT_02:=0,
         S_03:=0,S_OPN_03:=0,S_TKP_03:=0,S_STP_03:=0,S_STP_BRK_03:=0,S_IDX_03:=0,S_COUNT_03:=0,
         S_04:=0,S_OPN_04:=0,S_TKP_04:=0,S_STP_04:=0,S_STP_BRK_04:=0,S_IDX_04:=0,S_COUNT_04:=0,
         S_05:=0,S_OPN_05:=0,S_TKP_05:=0,S_STP_05:=0,S_STP_BRK_05:=0,S_IDX_05:=0,S_COUNT_05:=0;

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

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

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

IF S_03=1 AND CLOSE<=S_TKP_03 THEN                                                            
BEGIN
        KC盈:SELLSHORT(1,1,LIMITR,CLOSE);                                                                             
        S_03:=0;                                                                                                                                      
END


IF S_04=1 AND CLOSE<=S_TKP_04 THEN                                                            
BEGIN
        KD盈:SELLSHORT(1,1,LIMITR,CLOSE);                                                                             
        S_04:=0;                                                                                                                                      
END

IF S_05=1 AND CLOSE<=S_TKP_05 THEN                                                            
BEGIN
        KE盈:SELLSHORT(1,1,LIMITR,CLOSE);                                                                             
        S_05:=0;                                                                                                                                      
END




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

IF S_01=1 AND R_C1>S_STP_01 THEN                                                            
BEGIN
        KA损:SELLSHORT(1,1,LIMITR,OPEN);                           //执行LIMITR价格止损                                       
        S_01:=0;                                                   //状态
END

IF S_02=1 AND R_C1>S_STP_02 THEN                                                            
BEGIN
        KB损:SELLSHORT(1,1,LIMITR,OPEN);                                                                  
        S_02:=0;                                                      
END

IF S_03=1 AND R_C1>S_STP_03 THEN                                                            
BEGIN
        KC损:SELLSHORT(1,1,LIMITR,OPEN);                                                                  
        S_03:=0;                                                      
END

IF S_04=1 AND R_C1>S_STP_04 THEN                                                            
BEGIN
        KD损:SELLSHORT(1,1,LIMITR,OPEN);                                                                  
        S_04:=0;                                                      
END

IF S_05=1 AND R_C1>S_STP_05 THEN                                                            
BEGIN
        KE损:SELLSHORT(1,1,LIMITR,OPEN);                                                                  
        S_05:=0;                                                      
END



//*************超过4K平仓*************
IF S_01=1 AND BARPOS-S_IDX_01>=4 THEN                                                            
BEGIN
        KA超:SELLSHORT(1,1,LIMITR,OPEN);                           //执行LIMITR价格止损                                       
        S_01:=0;                                                   //状态
END

IF S_02=1 AND BARPOS-S_IDX_02>=4 THEN                                                            
BEGIN
        KB超:SELLSHORT(1,1,LIMITR,OPEN);                                                                  
        S_02:=0;                                                   
END

IF S_03=1 AND BARPOS-S_IDX_03>=4 THEN                                                            
BEGIN
        KC超:SELLSHORT(1,1,LIMITR,OPEN);                                                               
        S_03:=0;                                                   
END

IF S_04=1 AND BARPOS-S_IDX_04>=4 THEN                                                            
BEGIN
        KD超:SELLSHORT(1,1,LIMITR,OPEN);                                                                 
        S_04:=0;                                                
END


//************信号计数*************
IF S_01=1 AND BS卖开执行A THEN                                                            
BEGIN
        S_COUNT_01:=S_COUNT_01+1;
        IF S_COUNT_01>=4 THEN
        BEGIN
        KA信:SELLSHORT(1,1,LIMITR,OPEN);                                                                 
        S_01:=0;                                                
        END
END

IF S_02=1 AND BS卖开执行B THEN                                                            
BEGIN
        S_COUNT_02:=S_COUNT_02+1;
        IF S_COUNT_02>=4 THEN
        BEGIN
        KB信:SELLSHORT(1,1,LIMITR,OPEN);                                                               
        S_02:=0;                                                   
        END
END


IF S_03=1 AND BS卖开执行C THEN                                                            
BEGIN
        S_COUNT_03:=S_COUNT_03+1;
        IF S_COUNT_03>=4 THEN
        BEGIN
        KC信:SELLSHORT(1,1,LIMITR,OPEN);                                                                  
        S_03:=0;                                                   
        END
END


IF S_04=1 AND BS卖开执行D THEN                                                            
BEGIN
        S_COUNT_04:=S_COUNT_04+1;
        IF S_COUNT_04>=4 THEN
        BEGIN
        KD信:SELLSHORT(1,1,LIMITR,OPEN);                                                               
        S_04:=0;                                                   
        END
END

IF S_05=1 AND BS卖开执行E THEN                                                            
BEGIN
        S_COUNT_05:=S_COUNT_05+1;
        IF S_COUNT_05>=4 THEN
        BEGIN
        KE信:SELLSHORT(1,1,LIMITR,OPEN);                                                                  
        S_05:=0;                                                   
        END
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;                                                 //开仓K线   
        S_COUNT_01:=0;                                    
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;  
        S_COUNT_02:=0;                                    
END


IF BS卖开执行C AND S_03=0 THEN                             
BEGIN
        KC:BUYSHORT(BS卖开执行C,1,LIMITR,短线卖开仓价C);        
        S_03:=1;                                             
        S_OPN_03:=短线卖开仓价C;                                 
          S_TKP_03:=短线卖止盈价C;                                 
        S_STP_03:=短线卖止损价C;                                 
        S_IDX_03:=BARPOS;   
        S_COUNT_03:=0;                                   
END

IF BS卖开执行D AND S_04=0 THEN                             
BEGIN
        KD:BUYSHORT(BS卖开执行D,1,LIMITR,短线卖开仓价D);        
        S_04:=1;                                             
        S_OPN_04:=短线卖开仓价D;                                 
          S_TKP_04:=短线卖止盈价D;                                 
        S_STP_04:=短线卖止损价D;                                 
        S_IDX_04:=BARPOS;   
        S_COUNT_04:=0;                                   
END

IF BS卖开执行E AND S_05=0 THEN                             
BEGIN
        KE:BUYSHORT(BS卖开执行E,1,LIMITR,短线卖开仓价E);        
        S_05:=1;                                             
        S_OPN_05:=短线卖开仓价E;                                 
          S_TKP_05:=短线卖止盈价E;                                 
        S_STP_05:=短线卖止损价E;                                 
        S_IDX_05:=BARPOS;   
        S_COUNT_05:=0;                                   
END
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2024-1-8 10:25 | 显示全部楼层
代码单靠看无法看出所有的问题的,只有在实际运行中,才能验证代码的执行结果和预期的是否一致的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

17

主题

76

帖子

76

积分

等级: 免费版

注册:
2024-1-6
曾用名:
 楼主| 发表于 2024-1-8 18:11 | 显示全部楼层
你好,关于图表交易的问题:
我的开仓信号出现就会给出具体的开仓价, 止损价及止盈价。图表交易方式是TICK,信号出现及时开仓。 那么就会出现一个现象,即开仓信号有很多情况会消失。
是不是对应如下种情况:
1. 如果信号闪烁的过程中, 单子成交了! 但是K线原先的信号没有被确认, 是不是意味着原先设计的止损价及止盈价不会被记录, 单子就处于无法控制的状态, 那么需要人工处理。
2. 如果信号闪烁过程中,报的单子没有完成成交, 是不是意味着我原先设计的开仓价,止损价及止盈价会被记录,也就是挂单。
3. 如果信号闪烁过程后,K线走完了,报的单子没有完成成交, 是不是意味着我原先设计的开仓价,止损价及止盈价会被记录,也就是挂单。

补充内容 (2024-1-8 18:13):
如果信号闪烁过程后,K线走完了,信号也确认了,但是报的单子没有完成成交, 是不是意味着我原先设计的开仓价,止损价及止盈价会被记录,也就是挂单。
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2024-1-9 08:51 | 显示全部楼层
1、是的,如果图表上信号闪烁消失了,那开仓记录的这些全局变量也会消失的。图表程序化交易是以图表上的信号为准的,图上信号消失,那实际开的单子程序化是处理不了的,是需要人工干预,或者使用自动持仓同步功能,自动平掉开的单子。
2、开仓价的记录完全取决于信号,图上有信号就记录,没有信号就不记录了。
3、全局变量的记录和是否成交没有关系。图表上的信号默认都是成交的。
4、只要信号是稳定的,那开仓价这些都会被记录。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-21 03:46 , Processed in 0.111818 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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