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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 问个小周期套大周期的问题

   

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


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

主题:问个小周期套大周期的问题

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


加好友 发短信
等级:新手上路 帖子:37 积分:0 威望:0 精华:0 注册:2016/1/15 10:23:10
问个小周期套大周期的问题  发帖心情 Post By:2018/8/27 13:44:40    Post IP:116.246.41.51[只看该作者]

做小时线,套日线,选择MACD,当日线MACD金叉时,在本小时K线结束时偷鸡进场,结果本日的每个小时都会触发买入条件,按照我的思路,COUNT(A1,4)应该会从1开始累积起来,但是从实际看下来,COUNT(A1,4)在当天一直等于1。

想让老师看看,该怎样修改,可以达到我想要的效果,谢谢!

 

DIFDAY:=MACD.DIF#DAY;
DEADAY:=MACD.DEA#DAY;

A1:=CROSS(DIFDAY,DEADAY);

A2:=COUNT(A1,4)=1;

进场:=ISLASTBAR AND A2;


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


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

 你是否有检查你的DIFDAY  和DEADAY的引用呢?
如下才能正确引用:
DIFDAY:"MACD.DIF#DAY";
DEADAY:"MACD.DEA#DAY";


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


加好友 发短信
等级:新手上路 帖子:37 积分:0 威望:0 精华:0 注册:2016/1/15 10:23:10
  发帖心情 Post By:2018/8/27 14:08:38    Post IP:116.246.41.51[只看该作者]

测试过,这2种引用是一样的。

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


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

 1.你原先的引用方式 我本地甚至都编译不了。
 2.假设正常引用。你代码里面就是判断统计最近4个K  A1=1的数量是否等于1。 所以你可以查看下当天小时K对应的A1值的情况了。  
你可以在小时线上把A1,A2都输出出来。  另外考虑到你是小引大,当日几个小时K线上引用到的 DIFDAY,DEADAY值应该都是一样的吧。

光从代码暂时无法判断你这个是什么情况了,另外你是走完K运行还是固定轮询运行的呢,每个小时K上都有开仓信息?。


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


加好友 发短信
等级:新手上路 帖子:37 积分:0 威望:0 精华:0 注册:2016/1/15 10:23:10
  发帖心情 Post By:2018/8/27 15:08:46    Post IP:116.246.41.51[只看该作者]

举例来说:

比如今天第一根K线就满足了日线金叉(CROSS),照道理,第二根K线的时候用COUNT(A1,4),计算得出的周期应该是2,但是在小时线上,这个周期仍然是1,实际上当天4根K线都是1;

似乎日线CROSS对于每根小时线都是成立的。


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


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

 
我知道你这个思路是什么意思。 但是现在问题是如果你是小时K 

DIFDAY:"MACD.DIF#DAY";
DIFDAY:"MACD.DEA#DAY";

这种引用在当天的小时K线上引用的值都应该是一样的,因为他们引用到的都是同一个日线的macd下的dif和dea,这种情况下 COUNT(A1,4)=1;  这个条件 至多在当天的前三个K才可能成立。并且还要要求昨日日线满足macd金叉才行。 

按照正常逻辑 不可能出现你说的情况的,每个K的count都返回1。所以需要你直接在图表上输出你的a1,a2等变量值。
我不清楚你到底如何检查你的变量返回值的,是图表输出?还是根据实际下单信号倒推出来的。


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


加好友 发短信
等级:新手上路 帖子:37 积分:0 威望:0 精华:0 注册:2016/1/15 10:23:10
  发帖心情 Post By:2018/8/27 16:34:49    Post IP:116.246.41.51[只看该作者]

我图片发不上来,我用的是在图表上输出,当天小时线上4根K的A2都是1,A1显示的是当天第一个K为1.

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


加好友 发短信
等级:新手上路 帖子:37 积分:0 威望:0 精华:0 注册:2016/1/15 10:23:10
  发帖心情 Post By:2018/8/27 16:43:48    Post IP:116.246.41.51[只看该作者]

我明白了,日线CROSS在小时K上只成立了一次,所以用COUNT(A1,4)肯定等于1;看来我这样的做法是有问题的。

 

请教老师,有其它方法可以做到我想要的效果吗?


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


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

  count函数处理逻辑是这样:如果4个K 的a1都是1,那么在最后一个K上,返回值肯定是4.这个函数机制是没问题
。问题在于按照你的代码 ,今日的几个小时K上的A1值肯定是一样的,不可能是不同的值的,我本地直接测试,是这样不会错的。


图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看
这上面最后面几个K对应的DIFDAY,DIFDAY 都是一样的。也就是说a1值对应的也是一样的。不会有差异的。

你上面发的代码是完整代码吗?我无论如何重现不了你说的情况。

[此贴子已经被作者于2018/8/27 17:24:17编辑过]


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


加好友 发短信
等级:新手上路 帖子:37 积分:0 威望:0 精华:0 注册:2016/1/15 10:23:10
  发帖心情 Post By:2018/8/28 9:12:39    Post IP:210.13.105.28[只看该作者]

我找到原因了,我引用的是“MACD.DIFF#DAY”;不是“MACD.DIF#DAY”。

使用“MACD.DIFF#DAY”的话,A1只出现在当天第一个K线上,

使用“MACD.DIF#DAY”,A1会出现在当天所有K线上。

 

但是我发觉不管我用哪个,似乎都没法达到我的要求;

比如今天第二根K线出现了日线金叉,使用“MACD.DIF#DAY”,A1会从当天第一根K线开始为1,也就是说在第二根K线的时候,使用COUNT(A1,4)会等于2,变成类似未来函数的样子。

请教老师,这种情况下有什么其他办法解决吗?

 


 回到顶部
总数 22 1 2 3 下一页