金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 1147|回复: 1

回测都是0是什么问题 求解

[复制链接]

13

主题

25

帖子

25

积分

Rank: 1

等级: 新手上路

注册:
2024-3-5
曾用名:
发表于 2024-3-7 15:57 来自手机 | 显示全部楼层 |阅读模式

DEA:=EMA(DIFF,M);
MACD:=2*(DIFF-DEA);

//MA 指标
VARIABLE:1F金叉:=0, 1F死叉:=0;
VARIABLE :ma_move:=0;
VARIABLE:open_long:=0; // 新增变量
VARIABLE:open_short:=0; // 新增变量
VARIABLE:open_short:=0; // 新增变量
VARIABLE:stop_loss:=0; // 新增变量



金叉1:=CROSS(DIFF,DEA),NODRAW;
死叉1:=CROSS(DEA,DIFF),NODRAW;
金叉K: =barslast(金叉1>0),NODRAW;
死叉K: =BARSLAST(死叉1>0),NODRAW;
IF 金叉K=0 then BEGIN
        1F金叉:=1;1F死叉:=0;
        级别:=1;
        END

IF 死叉K=0 then BEGIN
        1F金叉:=0:;1F死叉:=1;
        级别:=1;
        END       

1F金叉值:1F金叉,;
1F死叉值:1F死叉,;

3F金叉:STKINDI('','MACD引用.金叉值’,0,17,-1),NODRAW;      
3F死叉:STKINDI('','MACD引用.金叉值’,0,17,-1),NODRAW;      
5F金叉:STKINDI('','MACD引用.金叉值’,0,2,-1),NODRAW;      
5F死叉:STKINDI('','MACD引用.金叉值’,0,2,-1),NODRAW;      
10F金叉:STKINDI('','MACD引用.金叉值’,0,18,-1),NODRAW;   
10F死叉:STKINDI('','MACD引用.金叉值’,0,18,-1),NODRAW;
15F金叉:STKINDI('','MACD引用.金叉值’,0,3,-1),NODRAW;
15F死叉:STKINDI('','MACD引用.金叉值’,0,3,-1),NODRAW;  
30F金叉:STKINDI('','MACD引用.金叉值’,0,4,-1),NODRAW;   
30F死叉:STKINDI('','MACD引用.金叉值’,0,4,-1),NODRAW;


MA36 :MA (C,36); 均线向上:ALL(MA36>REF(MA36,1),3), ;
MA36:=MA (C,36); 均线向下:ALL(MA36<REF(MA36,1),3),;

//更新MA_move变量
IF 均线向上 THEN MA_move:=1;
IF 均线向下 THEN MA_move:=-1;



手数:=ss;
//交易条件
// 更新open_long变量

   开多平空条件:=CROSS(MACD,0);//开多平空条件

  


   开空平多条件:=CROSS(0,MACD);//开空平多条件


//交易执行
// 添加新的交易条件

IF 金叉1 AND 均线向上 AND REF(MA36,1) < MA36 THEN open_long:=1;
IF 死叉1 AND 均线向下 AND REF(MA36,1) > MA36 THEN open_short:=1;

EXITSHORT:=CROSS(MACD,0) AND holding>0,TFILTER;
EXITLONG:=CROSS(0,MACD) AND holding>0,TFILTER;
ENTERLONG:=金叉1 AND 均线向上 AND REF(MA36,1) < MA36,TFILTER;
ENTERSHORT:=死叉1 AND 均线向下 AND REF(MA36,1) > MA36,TFILTER;

// 添加开仓信号的提示
IF 金叉1 AND 均线向上 AND REF(MA36,1) < MA36 THEN BEGIN
    open_long:=1;
   
END;
IF 死叉1 AND 均线向下 AND REF(MA36,1) > MA36 THEN BEGIN
    open_short:=1;
   
END;

// 添加新的交易条件
IF 开多平空条件 THEN BEGIN
    EXITSHORT:=1;
    EXITLONG:=0;
END

IF 开空平多条件 THEN BEGIN
    EXITSHORT:=0;
    EXITLONG:=1;
END

IF 开多平空条件 THEN BEGIN
    ENTERLONG:=1;
    ENTERSHORT:=0;
END

IF 开空平多条件 THEN BEGIN
    ENTERLONG:=0;
    ENTERSHORT:=1;
END
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-3-7 16:02 | 显示全部楼层
ENTERLONG  ,ENTERSHORT 都是旧交易系统的语句。你这里所有用到的地方 都应该换成新交易系统。
此外 你也不能对ENTERSHORT 他们赋值。

图表函数列表:https://www.weistock.com/docs/PE ... 87%BD%E6%95%B0.html
建议参考函数说明里的范例重新调整你的代码。
至于其他问题,需要你先改掉上面的函数使用后再看了。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-14 04:28 , Processed in 0.100396 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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