金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
楼主: 西安斯尔德

大神帮忙解决,跨周期引用信号闪烁,信号消失

[复制链接]

26

主题

117

帖子

117

积分

等级: 免费版

注册:
2023-11-16
曾用名:
 楼主| 发表于 2024-2-28 13:43 | 显示全部楼层
技术009 发表于 2024-2-28 09:14
你这样:
//rma1:stkindiex('','ma.ma1',0,6,0,100);

这一句能不加个计算100根K线
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-2-28 13:46 | 显示全部楼层
ma1:=stkindiex('','ma.ma1(4)',0,6,-1,100);
rma1:(c+ma1*4)/5;
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

26

主题

117

帖子

117

积分

等级: 免费版

注册:
2023-11-16
曾用名:
 楼主| 发表于 2024-2-28 14:58 | 显示全部楼层
技术009 发表于 2024-2-28 13:46
ma1:=stkindiex('','ma.ma1(4)',0,6,-1,100);
rma1:(c+ma1*4)/5;

现在这样修改,至损不起作用了,帮我看下哪里不对
//声明参数
INPUT : LOTS(1,1,20,1) ;//手数
INPUT : ZS(100,1,300,1); //止损参数
INPUT : JC1(80,1,300,1); //加仓点参数
INPUT : YLD(100,1,300,1); //盈利点参数
////////////////////////

BUYORDERTHISBAR := 0 ;                               
VARIABLE : MYENTRYPRICE =0 ;                 
VARIABLE : MYEXITPRICE =0 ;                       
VARIABLE : _DEBUG = 1 ;                                       
VARIABLE : _TDEBUG = 1 ;                               
VARIABLE : _DEBUGOUT = 0 ;       
VARIABLE : TURTLEUNITS=0 ;                       
VARIABLE : POSITION=0 ;                       


//准备需要计算的变量
ZRC:callstock(stklabel,vtclose,6,-1);
JKP:callstock(stklabel,vtopen,6,0);
J:ZRC>JKP+5;
J1:ZRC<JKP-5;
//MA1:=MA(OPEN,10);
//RMA1:STKINDIEX('','MA.MA1',0,6,0,100);
//ma1:="ma.ma1##day"(4);
//rma1:(C+ma1*4)/5;
ma1:=stkindiex('','ma.ma1(5)',0,6,-1,100);
rma1:(c+ma1*4)/5;
rma2:rma1-10;
rma3:rma1+10;
TJ1:=TIME=210000;/////////////////////////////////////开盘时间
AAA:TOTALDAYTRADE;
//如果当前是没有持仓的状态
IF POSITION=0  AND TJ1 AND TOTALDAYTRADE=0 THEN BEGIN       
        //多头进场
        IF J1 AND ZRC>RMA3 THEN BEGIN
                               
                BUYshort( ZRC>RMA3,LOTS,LIMITR,JKP);
                POSITION := 1 ;
                TURTLEUNITS := 1 ;
                BUYORDERTHISBAR := 1;

        END //IF
//////       
        //空头进场
        IF J AND ZRC<RMA2 THEN BEGIN                                       
                BUY( ZRC<RMA2,LOTS,LIMITR,JKP),IGNORECHECKPRICE;
                POSITION := -1 ;
                TURTLEUNITS := 1 ;
                BUYORDERTHISBAR := 1;

        END       
       
END  //IF


//如果当前持有多头仓位的状态

IF POSITION=1 THEN BEGIN

       
       
        WHILE (HIGH>JKP+JC1*MINDIFF) AND TURTLEUNITS<2 DO BEGIN
               
                BUY( _DEBUG, LOTS, LIMITR, JKP+JC1*MINDIFF);
                TURTLEUNITS := TURTLEUNITS+1 ;
                BUYORDERTHISBAR := 1;

        END
////       
        IF LOW<=JKP+MINDIFF AND BUYORDERTHISBAR=0 AND HOLDING>LOTS  THEN BEGIN
                MYEXITPRICE := IF(OPEN<JKP+MINDIFF ,OPEN ,JKP+MINDIFF ) ;                       
                SELL( _DEBUG ,0,LIMITR,MYEXITPRICE);
                POSITION := 0 ;
                TURTLEUNITS := 0 ;
        END

        //多头止损


        IF LOW<JKP-ZS*MINDIFF AND POSITION=1 AND BUYORDERTHISBAR=0 AND HOLDING=LOTS THEN BEGIN
                MYEXITPRICE := IF(OPEN<JKP-ZS*MINDIFF ,OPEN ,JKP-ZS*MINDIFF ) ;               
                //MYEXITPRICE := FLOOR(MYEXITPRICE/MINDIFF)*MINDIFF ;       
                SELL(LOW<JKP-ZS*MINDIFF ,0,LIMITR,MYEXITPRICE);
                POSITION := 0 ;
                TURTLEUNITS := 0 ;
        END


END  //IF


//持有空头

IF POSITION = -1  THEN BEGIN

       
       
        WHILE (LOW<JKP-JC1*MINDIFF) AND TURTLEUNITS<2 DO BEGIN
               
                BUYSHORT( _DEBUG,LOTS, LIMITR,JKP-JC1*MINDIFF);
                TURTLEUNITS := TURTLEUNITS+1 ;
                BUYORDERTHISBAR := 1;
        END        



        IF H>=JKP-MINDIFF AND BUYORDERTHISBAR=0 AND TURTLEUNITS=2 THEN BEGIN
                MYEXITPRICE := IF(OPEN>JKP-MINDIFF ,OPEN ,JKP-MINDIFF ) ;                       
                SELLSHORT(JKP-MINDIFF,0,LIMITR,MYEXITPRICE);
                POSITION := 0 ;
                TURTLEUNITS := 0 ;
        END

        //空头止损


        IF H>=JKP+ZS*MINDIFF AND POSITION = -1 AND BUYORDERTHISBAR=0 AND TURTLEUNITS=1 THEN BEGIN
                MYEXITPRICE := IF(OPEN>JKP+ZS*MINDIFF ,OPEN ,JKP+ZS*MINDIFF) ;                       
        //        MYEXITPRICE := CEILING(MYEXITPRICE/MINDIFF)*MINDIFF ;       
                SELLSHORT( H>=JKP+ZS*MINDIFF,0,LIMITR,MYEXITPRICE);
                POSITION := 0 ;
                TURTLEUNITS := 0 ;
        END

END  //IF

//多止盈
if c-avgenterprice>YLD*mindiff then begin
sell(1,holding,market);
end

//空止盈
if avgenterprice-c>YLD*mindiff then begin
sellshort(1,holding,market);
end       
IF TIME=150000 THEN BEGIN
         
收盘平多:SELL(HOLDING>0,0,MARKETR) ;
收盘平空:SELLSHORT( HOLDING<0,0,MARKETR) ;
                POSITION := 0 ;
                TURTLEUNITS := 0 ;
                END       


当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-2-28 15:01 | 显示全部楼层
给出能编译的代码,我要直接看效果。否则纯理代码逻辑 太费劲了。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

26

主题

117

帖子

117

积分

等级: 免费版

注册:
2023-11-16
曾用名:
 楼主| 发表于 2024-2-28 15:02 | 显示全部楼层
技术009 发表于 2024-2-28 15:01
给出能编译的代码,我要直接看效果。否则纯理代码逻辑 太费劲了。


        //空头止损


        IF H>=JKP+ZS*MINDIFF AND POSITION = -1 AND BUYORDERTHISBAR=0 AND TURTLEUNITS=1 THEN BEGIN
                MYEXITPRICE := IF(OPEN>JKP+ZS*MINDIFF ,OPEN ,JKP+ZS*MINDIFF) ;                       
        //        MYEXITPRICE := CEILING(MYEXITPRICE/MINDIFF)*MINDIFF ;       
                SELLSHORT( H>=JKP+ZS*MINDIFF,0,LIMITR,MYEXITPRICE);
                POSITION := 0 ;
                TURTLEUNITS := 0 ;
        END
回复

使用道具 举报

26

主题

117

帖子

117

积分

等级: 免费版

注册:
2023-11-16
曾用名:
 楼主| 发表于 2024-2-28 15:04 | 显示全部楼层
技术009 发表于 2024-2-28 15:01
给出能编译的代码,我要直接看效果。否则纯理代码逻辑 太费劲了。


//声明参数
INPUT : LOTS(1,1,20,1) ;//手数
INPUT : ZS(100,1,300,1); //止损参数
INPUT : JC1(80,1,300,1); //加仓点参数
INPUT : YLD(100,1,300,1); //盈利点参数
////////////////////////

BUYORDERTHISBAR := 0 ;                               
VARIABLE : MYENTRYPRICE =0 ;                 
VARIABLE : MYEXITPRICE =0 ;                       
VARIABLE : _DEBUG = 1 ;                                       
VARIABLE : _TDEBUG = 1 ;                               
VARIABLE : _DEBUGOUT = 0 ;       
VARIABLE : TURTLEUNITS=0 ;                       
VARIABLE : POSITION=0 ;                       


//准备需要计算的变量
ZRC:callstock(stklabel,vtclose,6,-1);
JKP:callstock(stklabel,vtopen,6,0);
J:ZRC>JKP+5;
J1:ZRC<JKP-5;
//MA1:=MA(OPEN,10);
//RMA1:STKINDIEX('','MA.MA1',0,6,0,100);
//ma1:="ma.ma1##day"(4);
//rma1:(C+ma1*4)/5;
ma1:=stkindiex('','ma.ma1(5)',0,6,-1,100);
rma1:(c+ma1*4)/5;
rma2:rma1-10;
rma3:rma1+10;
TJ1:=TIME=210000;/////////////////////////////////////开盘时间
AAA:TOTALDAYTRADE;
//如果当前是没有持仓的状态
IF POSITION=0  AND TJ1 AND TOTALDAYTRADE=0 THEN BEGIN       
        //多头进场
        IF J1 AND ZRC>RMA3 THEN BEGIN
                               
                BUYshort( ZRC>RMA3,LOTS,LIMITR,JKP);
                POSITION := 1 ;
                TURTLEUNITS := 1 ;
                BUYORDERTHISBAR := 1;

        END //IF
//////       
        //空头进场
        IF J AND ZRC<RMA2 THEN BEGIN                                       
                BUY( ZRC<RMA2,LOTS,LIMITR,JKP),IGNORECHECKPRICE;
                POSITION := -1 ;
                TURTLEUNITS := 1 ;
                BUYORDERTHISBAR := 1;

        END       
       
END  //IF


//如果当前持有多头仓位的状态

IF POSITION=1 THEN BEGIN

       
       
        WHILE (HIGH>JKP+JC1*MINDIFF) AND TURTLEUNITS<2 DO BEGIN
               
                BUY( _DEBUG, LOTS, LIMITR, JKP+JC1*MINDIFF);
                TURTLEUNITS := TURTLEUNITS+1 ;
                BUYORDERTHISBAR := 1;

        END
////       
        IF LOW<=JKP+MINDIFF AND BUYORDERTHISBAR=0 AND HOLDING>LOTS  THEN BEGIN
                MYEXITPRICE := IF(OPEN<JKP+MINDIFF ,OPEN ,JKP+MINDIFF ) ;                       
                SELL( _DEBUG ,0,LIMITR,MYEXITPRICE);
                POSITION := 0 ;
                TURTLEUNITS := 0 ;
        END

        //多头止损


        IF LOW<JKP-ZS*MINDIFF AND POSITION=1 AND BUYORDERTHISBAR=0 AND HOLDING=LOTS THEN BEGIN
                MYEXITPRICE := IF(OPEN<JKP-ZS*MINDIFF ,OPEN ,JKP-ZS*MINDIFF ) ;               
                //MYEXITPRICE := FLOOR(MYEXITPRICE/MINDIFF)*MINDIFF ;       
                SELL(LOW<JKP-ZS*MINDIFF ,0,LIMITR,MYEXITPRICE);
                POSITION := 0 ;
                TURTLEUNITS := 0 ;
        END


END  //IF


//持有空头

IF POSITION = -1  THEN BEGIN

       
       
        WHILE (LOW<JKP-JC1*MINDIFF) AND TURTLEUNITS<2 DO BEGIN
               
                BUYSHORT( _DEBUG,LOTS, LIMITR,JKP-JC1*MINDIFF);
                TURTLEUNITS := TURTLEUNITS+1 ;
                BUYORDERTHISBAR := 1;
        END        



        IF H>=JKP-MINDIFF AND BUYORDERTHISBAR=0 AND TURTLEUNITS=2 THEN BEGIN
                MYEXITPRICE := IF(OPEN>JKP-MINDIFF ,OPEN ,JKP-MINDIFF ) ;                       
                SELLSHORT(JKP-MINDIFF,0,LIMITR,MYEXITPRICE);
                POSITION := 0 ;
                TURTLEUNITS := 0 ;
        END

        //空头止损


        IF H>=JKP+ZS*MINDIFF AND POSITION = -1 AND BUYORDERTHISBAR=0 AND TURTLEUNITS=1 THEN BEGIN
                MYEXITPRICE := IF(OPEN>JKP+ZS*MINDIFF ,OPEN ,JKP+ZS*MINDIFF) ;                       
        //        MYEXITPRICE := CEILING(MYEXITPRICE/MINDIFF)*MINDIFF ;       
                SELLSHORT( H>=JKP+ZS*MINDIFF,0,LIMITR,MYEXITPRICE);
                POSITION := 0 ;
                TURTLEUNITS := 0 ;
        END

END  //IF

//多止盈
if c-avgenterprice>YLD*mindiff then begin
sell(1,holding,market);
end

//空止盈
if avgenterprice-c>YLD*mindiff then begin
sellshort(1,holding,market);
end       
IF TIME=150000 THEN BEGIN
         
收盘平多:SELL(HOLDING>0,0,MARKETR) ;
收盘平空:SELLSHORT( HOLDING<0,0,MARKETR) ;
                POSITION := 0 ;
                TURTLEUNITS := 0 ;
                END       


当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-2-28 15:09 | 显示全部楼层
你在什么品种,什么周期上测试的。本地加载已经看不到任何信号了。。。
提供一个能出信号的周期和品种吧。
还有:
ma1:=stkindiex('','ma.ma1(5)',0,6,-1,100);

你改成5.。。你算的均线就完全是错的了。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

26

主题

117

帖子

117

积分

等级: 免费版

注册:
2023-11-16
曾用名:
 楼主| 发表于 2024-2-28 15:12 | 显示全部楼层
技术009 发表于 2024-2-28 15:09
你在什么品种,什么周期上测试的。本地加载已经看不到任何信号了。。。
提供一个能出信号的周期和品种吧。 ...

螺纹连续,5分图
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-2-28 15:15 | 显示全部楼层

本帖子中包含更多资源

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

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

使用道具 举报

26

主题

117

帖子

117

积分

等级: 免费版

注册:
2023-11-16
曾用名:
 楼主| 发表于 2024-2-28 15:15 | 显示全部楼层

还有这个止损和加仓是按照开盘来的,想改成成交价
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-4 22:02 , Processed in 0.114977 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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