金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 4437|回复: 5

请教 考夫曼均线的算法 确认

[复制链接]

79

主题

190

帖子

200

积分

Rank: 2

等级: 标准版

注册:
2022-1-10
曾用名:
发表于 2022-3-31 16:12 | 显示全部楼层 |阅读模式
DIRECTION:=ABS(CLOSE-REF(CLOSE,AMAN)); //1 计算价格方向
VOLATILITY1:=SUM(ABS((CLOSE-REF(CLOSE,1))),AMAN); //2 计算波动性
ER:=DIRECTION/VOLATILITY1;//3 计算效率系数 方向移动与噪音之比
//4 变换上述系数为趋势速度 ER 将被 变换为一个平滑系数 C 系数(coefficient)SMOOTHING COEFFICIENT  SC
// 每天的EMA 均线速度 可以用简单的用改变平滑系数 SC 来改变,成为自自适应的
FASTSC:=2/(2+1);// 0.6667 在高度趋势化的周期中加速到非常快的趋势,但不是100%,在横盘的的市场中选择了非常慢的趋势。
SLOWSC:=2/(30+1); // 0.0645
SSC:=ER*(FASTSC-SLOWSC)+SLOWSC;
CONSTANT:=SSC*SSC; // SMOOTH*SMOOTH
AMA1:EMA(DMA(CLOSE,CONSTANT),2),COLORWHITE; //DMA 求动态移动平均


请帮我确认一下以上 AMA Kaufman 的算法有没有问题?尤其时最后那行的公式,

AMA 算法.jpg
回复

使用道具 举报

38

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2022-3-31 16:46 | 显示全部楼层
ama:=ref(ama,1)+constant*(close+ref(ama,1))

最后一个ama是这个意思吧
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-3-31 16:49 | 显示全部楼层
旧论坛 有关于这个的讨论,就是利用一个自适应均线函数。

http://www.weistock.com/bbs/disp ... ID=52736&skin=0
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

79

主题

190

帖子

200

积分

Rank: 2

等级: 标准版

注册:
2022-1-10
曾用名:
 楼主| 发表于 2022-3-31 17:09 | 显示全部楼层
我抄的文华码,请帮我转化成金字塔代码
为了达成以上目的,我们来看看Kaufman的自适应均线系统,下面是算法:

步骤1:价格方向
价格方向被表示为整个时间段中的净价格变化。比如,使用n天的间隔(或n小时):
direction = price – price[n];
其中,direction是当前价格差或方向数值,price是当前价格(当日收盘价或小时收盘价),price[n]是n日前的收盘价(或n个周期前)。

步骤2:波动性
波动性是市场噪音的总数量,它可以用许多不同的方法定义,但是这个计算使用了所有“日到日”或“小时到小时”的价格变化的总和(每一个都作为一个正数),在同样的n个周期上。
如下表达:
volatility = @sum(@abs(price – price[1]), n);
其中,volatility是指波动性数值,@abs是绝对值函数,@sum(value, n)是n个周期中的数值之和函数。

步骤3:效率系数(ER)
以上两个成分被组合起来,以表达方向移动对噪音之比,称之为效率系数,ER:
Efficiency_Ratio = direction/volativity;
用“方向性”除以“噪音”,该系数的值就从0到1 变化。当市场在全部n日以同一方向移动时,则方向=波动性,效率系数=1。如果波动对于同样的价格移动是增加了,“波动性”就变得较大并且ER往小于1的方向移动。如果价格不变化,则方向=0,ER=0。
这个结果作为一个指数式平滑系数是方便的,它每天改变趋势线的一个百分比,ER=1就等效于100%,对应最快的移动平均线,它应当能有效工作,因为价格在一个方向上移动而没有回撤。当ER=0时,一个非常慢的移动平均值是最好的,可以在市场趋势不明时避免贸然止损离场。

步骤4:变换上述系数为趋势速度
为了应用于一个指数式移动平均值,比率将被变换为一个平滑系数c,依靠下面的公式,每天的均线速度可以简单地用改变平滑系数来改变,成为自适应性的。该公式如下:
EXPMA = EXPMA[1] + c*(price – EXPMA[1]);
测试表明,平方平滑系数的数值大大地改进了结果,这是依靠在一个横盘的市场中阻止了趋势线的移动。在横盘的市场中这个过程选择了非常慢的趋势,而在高度趋势化的周期中加速至非常快的趋势(但不是100%)。这个平滑系数是:
fastest = 2/(N+1) = 2/(2+1) = 0.6667;
slowest = 2/(N+1) = 2/(30+1) = 0.0645;
smooth = ER*(fastest - slowest) + slowest;
c = smooth*smooth;
平方平滑系数迫使c的数值趋向于零。这意味着较慢的移动平均线将比快速移动平均值用得更多。这和在出现不确定状况时你就更加保守是一样的道理。
AMA = AMA[1] + c*(price – AMA[1]);

自调节式过滤器设计
为了与系统的自适应特性相一致,当价格波动变得更多或更少时,过滤器也要相应取较大或较小值。为了完成这点,过滤器被定义为AMA变化的一个小的百分数:
过滤器 = percentage*@std(AMA-AMA[1], n);
其中,@std(series, n)是价格系列n个周期的标准差。
最小的过滤器百分数0.1可被用于较快的交易,而较大的百分数1.0将可以选择出更有意义的价格移动的交易。典型例证是:外汇和期货市场交易较快,股票和利率市场交易较慢。通常,过滤器大小是依据20天周期的数据来计算。

向交易规则中添加过滤器
当AMA - @lowest(AMA, n) > 过滤器,买入;
当@highest(AMA, n) – AMA > 过滤器,卖出。

根据以上规则,构建文华策略:
DIRECTION:=CLOSE-REF(CLOSE,10);
VOLATILITY:=SUM(ABS((CLOSE-REF(CLOSE,1))),10);
ER:=ABS(DIRECTION/VOLATILITY);
FASTSC:=2/(2+1);
SLOWSC:=2/(30+1);
SSC:=ER*(FASTSC-SLOWSC)+SLOWSC;
CONSTANT:=SSC*SSC;
AMA:EMA(DMA(CLOSE,CONSTANT),2),COLORGREEN;
FIL:=STD(AMA-REF(AMA,1),20);
PARTLINE(AMA-LLV(AMA,3)>FIL*0.1,AMA,COLORMAGENTA);
回复

使用道具 举报

37

主题

9943

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2022-3-31 17:18 | 显示全部楼层
N:=9;
DIRECTION:=ABS((CLOSE-REF(CLOSE,N)));
VOLATILITY1:=SUM(ABS((CLOSE-REF(CLOSE,1))),N);
ER:=DIRECTION/VOLATILITY1;
FASTSC:=2/(2+1);// 0.6667 在高度趋势化的周期中加速到非常快的趋势,但不是100%,在横盘的的市场中选择了非常慢的趋势。
SLOWSC:=2/(30+1);
SSC:=ER*(FASTSC-SLOWSC)+SLOWSC;
CONSTANT:=SSC*SSC;
AMACLOSE:REF(EMA(C,9),1)+CONSTANT*(C-REF(EMA(C,9),1));
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-3-31 17:22 | 显示全部楼层
基本不用改啥。除了一个变量名和函数名冲突。改下就行了。

DIRECTION:=CLOSE-REF(CLOSE,10);
VOLATILITYX:=SUM(ABS((CLOSE-REF(CLOSE,1))),10);
ER:=ABS(DIRECTION/VOLATILITYX);
FASTSC:=2/(2+1);
SLOWSC:=2/(30+1);
SSC:=ER*(FASTSC-SLOWSC)+SLOWSC;
CONSTANT:=SSC*SSC;
AMA:EMA(DMA(CLOSE,CONSTANT),2),COLORGREEN;
FIL:=STD(AMA-REF(AMA,1),20);
PARTLINE(AMA-LLV(AMA,3)>FIL*0.1,AMA,COLORMAGENTA);
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-5-28 05:28 , Processed in 0.152448 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表