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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 公式测试能通过,但一用在副图就卡死。

   

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


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

主题:公式测试能通过,但一用在副图就卡死。

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


加好友 发短信
等级:超级版主 帖子:18691 积分:0 威望:0 精华:0 注册:2013/7/15 9:22:16
公式测试能通过,但一用在副图就卡死。  发帖心情 Post By:2014/3/19 14:57:04    Post IP:116.231.109.198[只看该作者]

请教:ma1:=ma(c,5);
ma2:=ma(c,10);
ma3:=ma(c,20);
ma4:=ma(c,30);
n:=0;
A:=ref(ma3>ma4,n) and ref(ma2>ma3,n) and ref(ma1>ma2,n);
if ma1<ma2 and ma3>ma4 and ma2>ma3
then repeat n:=n+1 until not(A);
if n>10 then DRAWICON(ma1<ma2,low,4)

目前在练习用循环结构~在均线多头排列超过10天的情况下,在5日均线和10均线死叉的位置提示买入。

公式测试能通过,但一用在副图就卡死,是不是陷入死循环了,请问哪里除了问题呢?


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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2014/3/19 14:59:56    Post IP:58.246.57.26[只看该作者]

then repeat n:=n+1 until not(A);
这个循环是干什么的?直到A不成立就不自加?


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:新手上路 帖子:10 积分:0 威望:0 精华:0 注册:2014/3/19 15:08:57
  发帖心情 Post By:2014/3/19 15:12:04    Post IP:113.110.148.58[只看该作者]

以下是引用jinzhe在2014/3/19 14:59:56的发言:
then repeat n:=n+1 until not(A);
这个循环是干什么的?直到A不成立就不自加?
A不成立的情况就说明,均线不是多头排列了,N表示从不是均线多头排列到死叉位置是多少天,少于10天就不发出买入信号


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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2014/3/19 15:19:01    Post IP:58.246.57.26[只看该作者]

n:=0;
A:=ref(ma3>ma4,n) and ref(ma2>ma3,n) and ref(ma1>ma2,n);
if ma1<ma2 and ma3>ma4 and ma2>ma3
then repeat n:=n+1 until not(A);
改成

 

variable:n=0;
A:=ma3>ma4 and ma2>ma3 and ma1>ma2;
if ma1<ma2 and ma3>ma4 and ma2>ma3  then n:=n+1;

 

if not(a) then n:=0;

 

if n>10 then DRAWICON(ma1<ma2,low,4)



金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:新手上路 帖子:10 积分:0 威望:0 精华:0 注册:2014/3/19 15:08:57
  发帖心情 Post By:2014/3/19 15:29:16    Post IP:113.110.148.58[只看该作者]

以下是引用jinzhe在2014/3/19 15:19:01的发言:

n:=0;
A:=ref(ma3>ma4,n) and ref(ma2>ma3,n) and ref(ma1>ma2,n);
if ma1<ma2 and ma3>ma4 and ma2>ma3
then repeat n:=n+1 until not(A);
改成

 

variable:n=0;
A:=ma3>ma4 and ma2>ma3 and ma1>ma2;
if ma1<ma2 and ma3>ma4 and ma2>ma3  then n:=n+1;

 

if not(a) then n:=0;

 

if n>10 then DRAWICON(ma1<ma2,low,4)

貌似没用,图上一个箭头也没显示~


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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2014/3/19 15:39:51    Post IP:58.246.57.26[只看该作者]

那么无解了,你的思路不对


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:新手上路 帖子:10 积分:0 威望:0 精华:0 注册:2014/3/19 15:08:57
  发帖心情 Post By:2014/3/19 15:43:52    Post IP:113.110.148.58[只看该作者]

以下是引用jinzhe在2014/3/19 15:39:51的发言:
那么无解了,你的思路不对
请问下我之前的公式哪里出问题,感觉循环语句应该没毛病吧


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


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2014/3/19 16:23:08    Post IP:58.246.57.26[只看该作者]

你试试这个

 

ma1:=ma(c,5);
ma2:=ma(c,10);
ma3:=ma(c,20);
ma4:=ma(c,30);


con1:=ma1>ma2 and ma2>ma3 and ma3>ma4;
con2:=ma1<ma2 and ma3>ma4 and ma2>ma3;

if ref(all(con1,10),1) and con2 then drawicon(ma1<ma2,low,4);



金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:新手上路 帖子:10 积分:0 威望:0 精华:0 注册:2014/3/19 15:08:57
  发帖心情 Post By:2014/3/19 16:52:13    Post IP:113.110.148.58[只看该作者]

以下是引用fly在2014/3/19 16:23:08的发言:

你试试这个

 

ma1:=ma(c,5);
ma2:=ma(c,10);
ma3:=ma(c,20);
ma4:=ma(c,30);


con1:=ma1>ma2 and ma2>ma3 and ma3>ma4;
con2:=ma1<ma2 and ma3>ma4 and ma2>ma3;

if ref(all(con1,10),1) and con2 then drawicon(ma1<ma2,low,4);


其实我想知道该如何应用循环语句,因为我这个是条件触发,不一定是10天,也可能是15天,20天,策略是首次均线多头然后5、10日均线死叉,既然是首次多头排列然后死叉,前面自然不能是多头排列,起码均线缠绕,所以还有一句没写出来。

ma1:=ma(c,5);

ma2:=ma(c,10);

ma3:=ma(c,20);

ma4:=ma(c,30);

n:=0;

A:=ref(ma3>ma4,n) and ref(ma2>ma3,n) and ref(ma1>ma2,n);

if ma1<ma2 and ma3>ma4 and ma2>ma3

then repeat n:=n+1 until not(A);

if n>10 and count(not(A),n+15)>=13 then DRAWICON(ma1<ma2,low,4)


这句意思是if n>10 and count(not(A),n+15)>=13

当均线呈现10天以上的多头排列,往前寻起码15天内不能出现超过2次的多头排列,这个13、15和n>10都是可变参数来的。n是可变的,所以我才会选择循环语句。


 回到顶部