欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 过滤连续信号的问题

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3959人关注过本帖树形打印复制链接

主题:过滤连续信号的问题

帅哥哟,离线,有人找我吗?
qq代人发帖
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:18691 积分:0 威望:0 精华:0 注册:2013/7/15 9:22:16
过滤连续信号的问题  发帖心情 Post By:2018/12/25 10:23:03    Post IP:180.169.30.6[只看该作者]

请教:我想要解决的问题第一步是过滤连续信号的问题:
LASTBUY:= TENTERBARS(0)>0 AND (( TEXITBARS(0)<0  ) OR (TENTERBARS(0)<TEXITBARS(0)))   ;
LASTSELL:=TEXITBARS(0)>0  AND   (TEXITBARS(0)<TENTERBARS(0))   ;
TBUY(CONDBUY AND not(LASTBUY) ,10000,MKT,0,0,ZH1,PZ1 );
//如果上次不是卖出
TSELL(CONDSELL AND not(LASTSELL) ,10000,MKT,0,0,ZH1,PZ1);

这个在15分钟间隔 实盘模拟中看起来没问题,一买后一卖,
但是在后台程序化 回测中,无法过滤连续买卖,
用DEBUGFILE也是显示的一塌糊涂

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/12/25 10:27:21    Post IP:180.169.30.6[只看该作者]

 截图看下你的回测结果,说明下你说的连续买卖是什么情况。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
qq代人发帖
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:18691 积分:0 威望:0 精华:0 注册:2013/7/15 9:22:16
  发帖心情 Post By:2018/12/25 10:52:24    Post IP:180.169.30.6[只看该作者]

正在注册账号。。
请帮加如下debugfile内容:
2018-12-25 09:30:39.253    持仓=30000
2018-12-25 09:30:39.255    TODAYHOLDING=0
2018-12-25 09:30:39.256    HOLDING=0
2018-12-25 09:30:39.257    TENERBARS=-1
2018-12-25 09:30:39.258    TEXITBARS=-1
2018-12-25 09:30:39.259    LASTBUY=0
2018-12-25 09:30:39.261    LASTSELL=0
2018-12-25 09:30:39.262    DAYHOLDING=0
2018-12-25 09:30:39.271    持仓=30000
2018-12-25 09:30:39.272    TODAYHOLDING=0
2018-12-25 09:30:39.273    HOLDING=0
2018-12-25 09:30:39.275    TENERBARS=-1
2018-12-25 09:30:39.276    TEXITBARS=-1
2018-12-25 09:30:39.277    LASTBUY=0
2018-12-25 09:30:39.278    LASTSELL=0
2018-12-25 09:30:39.280    DAYHOLDING=0
2018-12-25 09:30:39.289    持仓=40000
2018-12-25 09:30:39.291    TODAYHOLDING=0
2018-12-25 09:30:39.292    HOLDING=0
2018-12-25 09:30:39.293    TENERBARS=-1
2018-12-25 09:30:39.294    TEXITBARS=-1
2018-12-25 09:30:39.296    LASTBUY=0
2018-12-25 09:30:39.297    LASTSELL=0

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2018/12/25 10:54:26编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/12/25 11:14:15    Post IP:180.169.30.6[只看该作者]


1.HOLDING这个是图表上的持仓啊。和后台概念不一样的。还是说你这里面只是一个名称而已。贴下你debugfile的语句。

2.你这里用的TENTERBARS  TEXITBARS 都是和后台交易监控

图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看

这里关联的。所以你看到你输出里面都是-1.

3.TENTERBARS TEXITBARS 相关的判断应该没能限制到你开平仓了。所以还得看你的CONDBUY   CONDSELL 如何定义的了。

最好还是给下你的完整代码吧。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
xlxl
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:62 积分:0 威望:0 精华:0 注册:2017/8/8 15:35:19
  发帖心情 Post By:2018/12/25 13:12:50    Post IP:124.239.252.33[只看该作者]

ZH1:='';
PZ1:='SH510500';
 
//条件判断
DIFF := EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  := EMA(DIFF,M);
MACD1 := 2*(DIFF-DEA);
CONDBUY:= MACD1>0;
CONDSELL:=  MACD1<0;
//控制日内交易次数
//IF TTOTALDAYTRADE>=2 THEN EXIT;
 
LASTBUY:= TENTERBARS(0)>0 AND (  TEXITBARS(0)<0   OR (TENTERBARS(0)<TEXITBARS(0)) )  ;
LASTSELL:=TEXITBARS(0)>0  AND   (TEXITBARS(0)<TENTERBARS(0)  )  ;
a:=TBUYHOLDINGEX(ZH1 ,PZ1 ,2 );
DEBUGOUT('持仓=%.0f',a);
//DEBUGOUT('TODAYHOLDING=%.0f',TODAYHOLDING);
DEBUGOUT('THOLDING=%.0f',THOLDING);
DEBUGOUT('TENERBARS=%.0f',TENTERBARS(1));
DEBUGOUT('TEXITBARS=%.0f',TEXITBARS(1));
DEBUGOUT('LASTBUY=%.0f',LASTBUY );
DEBUGOUT('LASTSELL=%.0f', LASTSELL);

DEBUGFILE('C:\金字塔测试\test2.txt','持仓=%.0f',a);
DEBUGFILE('C:\金字塔测试\test2.txt','TODAYHOLDING=%.0f',TODAYHOLDING);
DEBUGFILE('C:\金字塔测试\test2.txt','THOLDING=%.0f',THOLDING);
DEBUGFILE('C:\金字塔测试\test2.txt','TENERBARS=%.0f',TENTERBARS(1));
DEBUGFILE('C:\金字塔测试\test2.txt','TEXITBARS=%.0f',TEXITBARS(1));
DEBUGFILE('C:\金字塔测试\test2.txt','LASTBUY=%.0f',LASTBUY );
DEBUGFILE('C:\金字塔测试\test2.txt','LASTSELL=%.0f', LASTSELL);

//如果上次不是买入
TBUY(CONDBUY AND not(LASTBUY) ,10000,MKT,0,0,ZH1,PZ1 );
//如果上次不是卖出
TSELL(CONDSELL AND not(LASTSELL) ,10000,MKT,0,0,ZH1,PZ1);
ENTERBARS(0)>0 AND ( TEXITBARS(0)<0 or="OR" (TENTERBARS(0)0 AND (TEXITBARS(0)
[此贴子已经被作者于2018/12/25 13:14:17编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
xlxl
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:62 积分:0 威望:0 精华:0 注册:2017/8/8 15:35:19
  发帖心情 Post By:2018/12/25 13:18:52    Post IP:124.239.252.33[只看该作者]

这个是测试debugfile和测试报告,

谢谢


 回到顶部
帅哥哟,离线,有人找我吗?
xlxl
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:62 积分:0 威望:0 精华:0 注册:2017/8/8 15:35:19
  发帖心情 Post By:2018/12/25 13:26:44    Post IP:124.239.252.33[只看该作者]

不好意思,上面公式的最后一行是不存在的,可能编辑帖子的时候多加的

ENTERBARS(0)>0 AND ( TEXITBARS(0)<0 or="OR" (TENTERBARS(0)0 AND (TEXITBARS(0)

 

这个是监测399905,买卖510500的

 

以下是部分模拟实盘预警信息,

运行结束
18.12.25 13:23:03 399905
持仓=10000
18.12.25 13:23:03 399905
THOLDING=0
18.12.25 13:23:03 399905
TENERBARS=19
18.12.25 13:23:03 399905
TEXITBARS=226
18.12.25 13:23:03 399905
LASTBUY=1
18.12.25 13:23:03 399905
LASTSELL=0
18.12.25 13:23:03 399905
运行结束
18.12.25 13:24:03 399905
持仓=10000
18.12.25 13:24:03 399905
THOLDING=0
18.12.25 13:24:03 399905
TENERBARS=20
18.12.25 13:24:03 399905
TEXITBARS=227
18.12.25 13:24:03 399905
LASTBUY=1
18.12.25 13:24:03 399905
LASTSELL=0
18.12.25 13:24:03 510500
TSell 无有效可平仓数量
18.12.25 13:24:03 399905
TSell 已成功触发下单操作 价格:0 数量:10000
18.12.25 13:24:03 399905
运行结束


 回到顶部
帅哥哟,离线,有人找我吗?
xlxl
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:62 积分:0 威望:0 精华:0 注册:2017/8/8 15:35:19
  发帖心情 Post By:2018/12/25 13:47:05    Post IP:124.239.252.35[只看该作者]

以下是引用xlxl在2018/12/25 13:18:52的发言:

这个是测试debugfile和测试报告,

谢谢

文档好像没传上去,再传一遍

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test2.txt


好像只能先传这个了


 回到顶部
帅哥哟,离线,有人找我吗?
xlxl
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:62 积分:0 威望:0 精华:0 注册:2017/8/8 15:35:19
  发帖心情 Post By:2018/12/25 13:55:21    Post IP:124.239.252.35[只看该作者]

内容待审核

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/12/25 14:04:50    Post IP:180.169.30.6[只看该作者]

 LASTBUY:= TENTERBARS(0)>0 AND (( TEXITBARS(0)<0  ) OR (TENTERBARS(0)<TEXITBARS(0)))   ;
LASTSELL:=TEXITBARS(0)>0  AND   (TEXITBARS(0)<TENTERBARS(0))   ;

这里面的 TENTERBARS   TEXITBARS  没能限制到你的开平仓。因为回测时候这2函数返回值都是-1.
这2个函数依赖于监控的记录,所以回测时候这2个函数不能正确取值的。  你需要用其他方式去实现你的需求。
上面2行代码思路是什么?为什么不直接用持仓情况去判断上次是买还是卖?



命数如织,当如磐石。
 回到顶部
总数 22 1 2 3 下一页