金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
12
返回列表 发新帖

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

[复制链接]

17

主题

76

帖子

76

积分

等级: 免费版

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

谢谢啊
回复

使用道具 举报

17

主题

76

帖子

76

积分

等级: 免费版

注册:
2024-1-6
曾用名:
 楼主| 发表于 2024-1-20 16:44 | 显示全部楼层
技术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


回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-1-22 08:22 | 显示全部楼层
语法上没有问题,至于逻辑是否有问题,需要使用者根据自己的实际要求判断。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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-22 13:36 | 显示全部楼层
MACD卖出条件:=REF(MACD,2)<=REF(MACD,1);       在上一个K线已经确认MACD条件, 不会存在闪点;短线卖点:= REF(短线卖点1,1) or ref(短线卖点2,1) or ref(短线卖点3,1) or ref(短线卖点4,1) or ref(短线卖点5,1) ;  在上一个K线已经确认CROSS条件, 不会存在闪点;
1. 请问  KA盈:SELLSHORT(1,1,LIMITR,CLOSE),这个里面的CLOSE 是不是应该改为对应的短线卖止盈价A, 而不是简单的CLOSE, 因为我是限定报价的。
2.@空单:LIMITR价格止损
R_C1:=REF(C,1);
IF S_01=1 AND R_C1>S_STP_01 and BS卖损执行A THEN                                                            
BEGIN

请问能不能只写成:
IF S_01=1 AND BS卖损执行A THEN                                                            
BEGIN

而不写 AND R_C1>S_STP_01 这句话


回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2024-1-22 13:47 | 显示全部楼层
1、你在开空后,已经把止盈价A赋值给S_STP_01了啊 。你平空时已经满足了C<=S_STP_01了,那用C或S_STP_01没有区别啊。
2、是可以,BS卖损执行A和S_STP_01是一样的,但是你这个止损是在开空后才执行的,应该要加上S_STP_01<>0吧。如果等于0,那就是还没开空啊
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

17

主题

76

帖子

76

积分

等级: 免费版

注册:
2024-1-6
曾用名:
 楼主| 发表于 2024-1-22 15:47 | 显示全部楼层
技术010 发表于 2024-1-22 13:47
1、你在开空后,已经把止盈价A赋值给S_STP_01了啊 。你平空时已经满足了C

谢谢阿, 顾工。
麻烦改一下后台模式,学习学习。
https://www.weistock.com/bbs/for ... hread&tid=17594
(出处: 金字塔决策交易系统)
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2024-1-22 15:50 | 显示全部楼层
该贴在公式区正在回复中,还请等待下。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

17

主题

76

帖子

76

积分

等级: 免费版

注册:
2024-1-6
曾用名:
 楼主| 发表于 2024-1-22 17:14 | 显示全部楼层
技术010 发表于 2024-1-22 15:50
该贴在公式区正在回复中,还请等待下。

谢谢阿,顾工
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-21 07:23 , Processed in 0.116837 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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