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


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

   

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


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

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

帅哥哟,离线,有人找我吗?
FireScript
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | 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[显示全部帖子]

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


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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 如何定义的了。

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


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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行代码思路是什么?为什么不直接用持仓情况去判断上次是买还是卖?



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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/12/25 14:33:36    Post IP:180.169.30.6[显示全部帖子]

 那个虚拟持仓是图表的,不能用在后台的。用这个试试呢?TTYPE( ) 这个可以读取上次交易信号的情况,然后做判断。


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/12/25 16:31:32    Post IP:180.169.30.6[显示全部帖子]

 抱歉弄错了,TTYPE也是依赖实际下单记录的。在回测里面也不行。

或许可以这样子。

ZH1:='';
PZ1:='SH510500';
DIFF := EMA(CLOSE,10) - EMA(CLOSE,30);
DEA  := EMA(DIFF,9);
MACD1 := 2*(DIFF-DEA);
CONDBUY:=cross(MACD1,0);
CONDSELL:=cross(0,MACD1);

TBUY(CONDBUY,10000,MKT,0,0,ZH1,PZ1 );
TSELL(CONDSELL,10000,MKT,0,0,ZH1,PZ1);

最后大致是这样的效果。

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




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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/12/25 17:23:49    Post IP:180.169.30.6[显示全部帖子]

 这个没有。你或许可以通过上次开平仓条件的位置来尝试处理下。一般是 用BARSLAST来获取上次某个条件触发的位置。


命数如织,当如磐石。
 回到顶部