开拓者期货期权程序化系统交易论坛

标题: 求教:如判断均线的角度向上? [打印本页]

作者: 傻了吧    时间: 2012-4-12 16:20:32     标题: 求教:如判断均线的角度向上?

本帖最后由 傻了吧 于 2012-4-12 16:22 编辑

比如希望在MA5和MA10都是向上,并且多头排列,也就是5均线在10均线之上。
这种状态连续5个周期后开多单,请教代码如何实现?谢谢
作者: 莫小漠    时间: 2012-4-12 19:06:42

con1=ma1[1]>ma2[1] && ma1[2]>ma2[2] && ma1[3]>ma2[3] && ma1[4]>ma2[4] && ma1[5]>ma2[5];
con2=ma1[1]>ma1[2]>ma1[3]>ma1[4]>ma1[5];
if(con1 && con2)
{
     ......;
}
以上是最笨的办法。考虑了前5个周期,如果你需要5个周期,可以将[5]去掉。然后使用当前bar的open开仓,防止未来函数的发生。
con1保证了一直是多头排列,con2保证了均线一直向上。
也即LZ的要求了。

作者: 傻了吧    时间: 2012-4-12 20:41:08

莫小漠 发表于 2012-4-12 19:06
con1=ma1[1]>ma2[1] && ma1[2]>ma2[2] && ma1[3]>ma2[3] && ma1[4]>ma2[4] && ma1[5]>ma2[5];
con2=ma1[1 ...

非常感谢~~
作者: lnyuanming    时间: 2012-4-24 14:06:15

保存························
作者: ggyyff    时间: 2012-4-24 23:18:54

留着
作者: 绿野仙踪    时间: 2012-4-24 23:45:58

有点繁,那如果是要10周期满足条件,呢;??
作者: zzzlondon    时间: 2012-4-25 09:43:56

bars(10);

con=true;
for i=0 to bars
{
if(ma1[i]<ma2[i] || ma1[i]<ma1[i+1] || ma2[i]<ma2[i+1]){
con=false;
i=bars+1;
}
}
if(con)
{
     ......;
}

没仔细写,大概就是这样吧
作者: zzzlondon    时间: 2012-4-25 15:24:05

想了个更简单的方法

Params
        Numeric length1(5);
        Numeric length2(10);
        Numeric bars(3);
Vars
        NumericSeries ma1;
        NumericSeries ma2;
        Numeric Counts(0);
Begin
        ma1=Average(c,length1);
        ma2=Average(c,length2);
        Counts=CountIf(ma1>ma2&&ma1>ma1[1]&&ma2>ma2[1],bars);
        PlotNumeric("1",counts);
        If(counts==bars)Buy(1,0);
end
作者: hepang    时间: 2013-4-10 14:54:23

我记下来
作者: bloodgod    时间: 2013-4-10 15:54:29

zzzlondon 发表于 2012-4-25 15:24
想了个更简单的方法

Params

能在后面简单注释下是什么意思吗?新手学习中
作者: sorakiraa    时间: 2013-4-10 16:21:15

所谓的上升趋势就是在没有创新低的前提下价格稳步上升

CountIf(Con,N)返回过去N周期满足Con条件的K线数
作者: bahuang    时间: 2013-4-11 00:30:44

不错
作者: jun_lin76    时间: 2013-4-29 09:08:30

有源码学习吗?




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2