Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共9 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

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

1楼
qq代人发帖 发表于:2014/3/19 14:57:04

请教: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均线死叉的位置提示买入。

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

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

4楼
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)

5楼
usucallzk 发表于:2014/3/19 15:29:16
以下是引用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)

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

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

8楼
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);

9楼
usucallzk 发表于:2014/3/19 16:52:13
以下是引用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是可变的,所以我才会选择循环语句。

共9 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.03125 s, 3 queries.