设为首页收藏本站

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

关于卡夫曼自适应移动平均 [复制链接]

Rank: 3Rank: 3

精华
0
UID
14647
积分
135
帖子
34
主题
9
阅读权限
40
注册时间
2010-7-20
最后登录
2014-10-23
跳转到指定楼层
1#
发表于 2010-7-30 15:08:28 |只看该作者 |倒序浏览
对以下语句不甚理解:
AMAValue =AdaptiveMovAvg(close,terms,2,30);
    if(close==AMAValue)
         return;         //如果Bar个数小于计算周期,直接返回


恳请指教!!!!!

Rank: 10Rank: 10Rank: 10

精华
2
UID
4130
积分
20901
帖子
6519
主题
17
阅读权限
200
注册时间
2009-4-15
最后登录
2019-4-12
2#
发表于 2010-7-30 17:31:11 |只看该作者
close==AMAValue//如果Bar个数小于计算周期,直接返回
指的是如果bar周期数不够所填参数的计算,则return,不进行以下公式运行。

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
14647
积分
135
帖子
34
主题
9
阅读权限
40
注册时间
2010-7-20
最后登录
2014-10-23
3#
发表于 2010-9-1 14:04:37 |只看该作者
//------------------------------------------------------------------------
// 简称: AdaptiveMovAvg
// 名称: 自适应移动平均
// 类别: 交易指令
// 类型: 其他
// 输出:
//------------------------------------------------------------------------
Params
        Numeric        FilterSet(0.1);//过滤器偏移量
        Numeric        lots(1);
        Numeric        terms(10);//自适应计算周期
        Numeric        AMAOffSetPercent(0.55);//前后两日均线差值触发值百分比
Vars
        NumericSeries        AMAValue;
        Numeric        ExtHigh;//前高
        Numeric        ExtLow;//前低
        Numeric        filter;
        Numeric        AMAOffSet;
        Bool        LongEntryCon(false);
        Bool        ShortEntryCon(false);
Begin
        AMAValue = AdaptiveMovAvg(close,terms,2,30);
        if(close == AMAValue)
                return;       //如果bar个数小于计算周期,直接返回
        AMAOffSet=AvgPrice()*AMAOffSetPercent/100;       //取当前均价的0.0055作为均线触发值
        filter = StandardDev(AMAValue,20,2)*FilterSet;        //计算过滤器的值
        if(AMAValue>AMAValue[1]and AMAValue[1]<AMAValue[2])
                ExtLow = AMAValue[1];        //计算前低
        if(AMAValue<AMAValue[1]and AMAValue[1]>AMAValue[2])
                ExtHigh = AMAValue[1];       //计算前高
        

        if(AMAValue>AMAValue[1])   //如果今天的均线值大于昨天
        {
                if(ExtLow!=0)    //如果前低不为零
                {
                               if((AMAValue - ExtLow)>filter)     //将均线值减去最低值,看是否大于过滤器
                                LongEntryCon = true;
                }Else
                {
                        if((AMAValue-AMAValue[1])>AMAOffSet )   //如果前低为零,即没有产生前低,则直接比较两日的均线值是否大于触发值
                                        LongEntryCon = true;
                }
        }
               
        if(AMAValue<AMAValue[1])
        {
                if(ExtHigh!=0)
                {
                        if((AMAValue - ExtHigh)>filter)
                                ShortEntryCon = true;
                }Else
                {
                        f((AMAValue[1]-AMAValue)>AMAOffSet )
                                ShortEntryCon = true;
                }
        }
        Commentary("AMA:"+TEXT(AMAValue));
        Commentary("filter:"+TEXT(filter));
        Commentary("ExtLow:"+TEXT(ExtLow));
        Commentary("ExtHigh:"+TEXT(ExtHigh));
        Commentary("LongCon:"+IIFString(LongEntryCon,"true","false"));
        Commentary("ShortCon:"+IIFString(ShortEntryCon,"true","false"));
        Commentary("AMAOffSet:"+text(AMAOffSet));

        if(MarketPosition !=1 and LongEntryCon)
                buy(lots,NextOpen);
        if(MarketPosition !=-1 and ShortEntryCon)
                SellShort(lots,NextOpen);
end

//------------------------------------------------------------------------
// 编译版本        GS2004.06.12
// 用户版本        2008/12/06 15:39
// 版权所有        cf_38607
// 更改声明        TradeBlazer Software保留对TradeBlazer平台
//                        每一版本的TrabeBlazer公式修改和重写的权利
//------------------------------------------------------------------------
公式中的if(AMAValue<AMAValue[1])
        {
                if(ExtHigh!=0)
                {
                        if((AMAValue - ExtHigh)>filter)
                                ShortEntryCon = true;
                }为什么要这么写?AMAValue - ExtHigh永远都小于零,filter都是大于等于零的,那这句话就永远不成立了!不甚明白

使用道具 举报

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

bottom

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

GMT+8, 2024-5-18 17:03

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部