设为首页收藏本站

 找回密码
 注册
查看: 2948|回复: 9
打印 上一主题 下一主题

简单的均线交叉,加载后不显示信号,求助。 [复制链接]

Rank: 5Rank: 5

精华
0
UID
117787
积分
680
帖子
44
主题
14
阅读权限
60
注册时间
2013-4-5
最后登录
2020-5-23
跳转到指定楼层
1#
发表于 2015-11-26 16:17:27 |只看该作者 |倒序浏览
一个简单的均线交叉系统,前一根Bar的收盘价高于前10天的最高价,并且前一个bar收盘时,短期均线在长期均线上面时,在最新的一根BAR上以开盘价开多,但是加载后没有信号,求助
Params
Numeric Length(10);
Numeric MA1(20);
Numeric MA2(60);
Numeric Lots(1);
Numeric Offset(2);

Vars
NumericSeries Highestvalue;
NumericSeries Lowestvalue;
NumericSeries avgp1;
NumericSeries avgp2;

Begin
avgp1=average(Close[1],MA1);
PlotNumeric("avgp1",avgp1);
avgp2=average(Close[1],MA2);
PlotNumeric("avgp2",avgp2);
Highestvalue=Highest(High[1],Length);
Lowestvalue=Lowest(Low[1],Length);

If(MarketPosition==0 and Close[1]>Highestvalue And avgp1>avgp2 )
{Buy(Lots,Open+Offset * MinMove * PriceScale);}

If(MarketPosition==0 and Close[1]<Lowestvalue And avgp1<avgp2)
{SellShort(Lots,Open-Offset * MinMove * PriceScale);}

If(MarketPosition==1 and Close[1]<avgp2)
{Sell(Lots,Open-Offset * MinMove * PriceScale);}

If(MarketPosition==-1 and Close[1]>avgp2)
{BuyToCover(Lots,Open+Offset * MinMove * PriceScale);}
End

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
2#
发表于 2015-11-26 16:41:40 |只看该作者
highestvalue是计算是用high来计算的,, 而你的在判断条件是当close>highestvalue时才开多(先忽略avgp1>avgp2的条件不看)
就算是一个只涨不跌的K线上,收盘价等于最高价的情况下,也只能是使用close==highestvalue的判断啊,没法大于。所以这里不会有开仓信号。
开空同理反向。

所以,建议你改为high[1]>= highestvalue,以及 low[1]<=lowestvalue,再来看看结果。

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
117787
积分
680
帖子
44
主题
14
阅读权限
60
注册时间
2013-4-5
最后登录
2020-5-23
3#
发表于 2015-12-4 18:34:44 |只看该作者
小米 发表于 2015-11-26 16:41
highestvalue是计算是用high来计算的,, 而你的在判断条件是当close>highestvalue时才开多(先忽略avgp1>a ...

你好,同一根线确实有这个问题,但是改成如下形式,却通不过检验,请问这是怎么回事?谢谢
Highestvalue=Highest(High[2],Length);
Lowestvalue=Lowest(Low[2],Length);

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
117787
积分
680
帖子
44
主题
14
阅读权限
60
注册时间
2013-4-5
最后登录
2020-5-23
4#
发表于 2015-12-4 19:03:01 |只看该作者
jwieen 发表于 2015-12-4 18:34
你好,同一根线确实有这个问题,但是改成如下形式,却通不过检验,请问这是怎么回事?谢谢
Highestvalue= ...

其实是想表达:当前收盘价高于前N个交易日的最高价时,在下一根BAR的开盘价开多仓。

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
117787
积分
680
帖子
44
主题
14
阅读权限
60
注册时间
2013-4-5
最后登录
2020-5-23
5#
发表于 2015-12-4 19:04:41 |只看该作者
小米 发表于 2015-11-26 16:41
highestvalue是计算是用high来计算的,, 而你的在判断条件是当close>highestvalue时才开多(先忽略avgp1>a ...

其实是想表达:当前收盘价高于前N个交易日的最高价时,在下一根BAR的开盘价开多仓。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
6#
发表于 2015-12-7 09:05:42 |只看该作者
jwieen 发表于 2015-12-4 19:03
其实是想表达:当前收盘价高于前N个交易日的最高价时,在下一根BAR的开盘价开多仓。 ...

当前收盘价高于前N个交易日的最高价时,在下一根BAR的开盘价开多仓。
可以如你3#所写的,改为high[2]与low[2]来进行计算。(你所说的不能过检验是指示啥呢??单就这二句来说是没有问题的。)
或是原赋值不变的情况下,判断改为如下试试:
cLose[1]>highestvalue[1]
close[1]<lowestvalue[1]

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
117787
积分
680
帖子
44
主题
14
阅读权限
60
注册时间
2013-4-5
最后登录
2020-5-23
7#
发表于 2015-12-9 18:20:14 |只看该作者
小米 发表于 2015-12-7 09:05
当前收盘价高于前N个交易日的最高价时,在下一根BAR的开盘价开多仓。
可以如你3#所写的,改为high[2]与lo ...

改成high[2]或者cLose[1]>highestvalue[1],还是不能通过程序编译,不知道是怎么回事?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
8#
发表于 2015-12-10 08:54:51 |只看该作者
jwieen 发表于 2015-12-9 18:20
改成high[2]或者cLose[1]>highestvalue[1],还是不能通过程序编译,不知道是怎么回事? ...

这三表达并没有问题,不可能是这个原因导致不能编译吧。
有检查过其它语句吗??或是你的公式编辑界面,提示不能通过编译的那段代码截图我看看

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
117787
积分
680
帖子
44
主题
14
阅读权限
60
注册时间
2013-4-5
最后登录
2020-5-23
9#
发表于 2015-12-12 22:35:26 |只看该作者
本帖最后由 jwieen 于 2015-12-12 23:37 编辑

如下

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
117787
积分
680
帖子
44
主题
14
阅读权限
60
注册时间
2013-4-5
最后登录
2020-5-23
10#
发表于 2015-12-12 22:39:41 |只看该作者
本帖最后由 jwieen 于 2015-12-12 23:37 编辑
小米 发表于 2015-12-10 08:54
这三表达并没有问题,不可能是这个原因导致不能编译吧。
有检查过其它语句吗??或是你的公式编辑界面, ...


使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-16 02:12

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部