自适应均线
- 格式:doc
- 大小:151.50 KB
- 文档页数:6
一般均线设置方法
一般均线设置方法是根据投资者的需求和市场情况来确定的,以下是一般常用的均线设置方法:
1. 短期均线和长期均线:常见的设置是使用5日、10日、20日、50日和200日的均线。
短期均线可以捕捉短期市场的走势,长期均线则可以捕捉长期趋势。
2. 黄金交叉和死亡交叉:当短期均线从下方穿过长期均线时,称为“黄金交叉”,意味着市场可能出现上涨趋势;当短期均线从上方穿过长期均线时,称为“死亡交叉”,意味着市场可能出现下跌趋势。
3. 自适应均线:自适应均线是根据市场波动情况自动调整的均线。
常见的自适应均线有肯特纳通道和阿尔金指数。
4. 加权均线:加权均线将较大的权重放在最近的价格上,较小的权重放在较早的价格上,更能反映最近的市场走势。
需要注意的是,均线只是一种技术分析工具,不能作为单一的交易决策依据。
在使用均线进行分析时,需要结合其他技术指标和基本面分析,综合判断市场走势。
[转][程序化交易]自适应均线交易系统tb源码//------------------------------------------------------------------------// 简称: MRJS_YM_SingleAMA_00// 名称: MRJS_YM_SingleAMA_00// 类别: 公式应用// 类型: 用户应用// 输出://------------------------------------------------------------------------Params//AMA相关Numeric FastAvgLength(2);Numeric SlowAvgLength(30);Numeric EffRatioLength(10);//系统相关Numeric ConfirmPeriod(3); //确认均线趋势次数Numeric StdMultiplier(1); //过滤器百分比//交易相关Numeric Slipes(2); //滑点Vars//AMA相关Numeric NetChg(0);Numeric TotChg(0);Numeric EffRatio(0);Numeric SmoothRatio(1);NumericSeries AMAValue;Numeric STDLen(0); //标准差长度Numeric PriceSTD(0);Numeric STDRatio(1); //进入标准差的倍数Bool LongIndicator(True);Bool ShortIndicator(True);Numeric i;Beginif(CurrentBar == 0){AMAValue = Close;}Else{NetChg = Abs( Close - Close[EffRatioLength] );TotChg = Summation( Abs( Close - Close[1] ), EffRatioLength );EffRatio = IIF(TotChg > 0, NetChg / TotChg, 0);SmoothRatio = Power( ( EffRatio * ( 2 / ( FastAvgLength + 1 ) - 2 / ( SlowAvgLength + 1 ) ) + 2 / ( SlowAvgLength + 1 ) ), 2 );AMAValue = AMAValue[1] + SmoothRatio * ( Close - AMAValue[1] );}STDLen=SlowAvgLength;PriceSTD=StandardDev(Close[1],STDLen);//当不持多仓的情况下,如果做多条件满足,则做多If(MarketPosition <>1 && AMAValue[1]-Lowest(AMAValue[1],ConfirmPeriod) > PriceSTD*STDRatio*StdMultiplier/100 ){Buy(0,Open+Slipes);PlotString ("top","jdc",Portfolio_TotalProfit,Red);}//当不持空仓的情况下,如果做空条件满足,则做空If(MarketPosition <>-1 && Highest(AMAValue[1],ConfirmPeriod)-AMAValue[1] > PriceSTD*STDRatio*StdMultiplier/100 ){SellShort(0,Open-Slipes);PlotString ("top","jkc",Portfolio_T otalProfit,Red);}PlotNumeric("PL",Portfolio_T otalProfit);End//------------------------------------------------------------------------// 编译版本 GS2010.12.08// 用户版本 2013/03/14 13:43// 版权所有 ymingcn// 更改声明 TradeBlazer Software保留对TradeBlazer平台// 每一版本的TrabeBlazer公式修改和重写的权利//-----------------------------------------------------------------原文见:自适应均线交易系统tb源码。
{公称名称: AMA考夫曼自适用型均线}input:N(10,1,60),P1(2,1,60),Q1(30,1,60);DIRECTION:=(CLOSE - REF(CLOSE,N));XX:=ABS((CLOSE - REF(CLOSE,1)));VOLATILITY:=SUM(XX,N);ER:=ABS((DIRECTION / VOLATILITY));FASTC:=(2 / (P1 + 1));SLOWC:=(2 / (30 + 1));SSC:=((ER * (FASTC - SLOWC)) + SLOWC);CONSTANT:=(SSC * SSC);CC:=CLOSE;YY:=(REF(CLOSE,1) + (CONSTANT * (CLOSE - REF(CLOSE,1))));IF DA TACOUNT > N THENDD[N]:=CC[(N + 1)];FOR I=N + 1 to DA TACOUNT DODD[I]:=(DD[(I - 1)] + (CONSTANT[I] * (CC[I] - DD[(I - 1)])));AMA:DD,LINETHICK2,colorFFFF;DIR:=ABS(CLOSE-REF(CLOSE,10));VIR:=SUM(ABS(CLOSE-REF(CLOSE,1)),10);ER:=DIR/VIR;CS:=ER*(2/3-2/14)+2/14;CQ:=CS*CS;AMA1:EMA(DMA(CLOSE,CQ),2),COLORGREEN;FIL:=STD(AMA-REF(AMA,1),20);DRAWICON(FILTER(AMA-LLV(AMA,3)>FIL*0.1,10),AMA,1);自适应均线初步学习常见的计算均线的指标是ma(simple moving average) 和ema(exponential moving average),公式如下:SMA = SUM(CLOSE, N)/NEMA = (CLOSE(i)*P)+(EMA(i-1)*(1-P)) or(M*CLOSE(i)+(N-M)*EMA(i-1))/NMA有滞后的特点,因此在ema中对最近的价格给予较大的权重提高对趋势的跟踪效果。
自适应移动平均线(AMA)长期来说,价格会显示一种回归其本来价值的特性,在二维图形上显示一种收敛或者说回归均值的图形。
这似乎也反映了政府金融或利息政策改变所带来的影响。
一个超出市场平均波动周期的趋势则可能是一个好的趋势,一个波动周期如有特别变化的关键变量,则趋势有可能发生改变,在股市上通常表现为量能和价格区间的变化。
以下为Perry J.Kaufman的自适应移动平均系统,资料来源于其著作《Smarter Trading》。
关于移动平均由一个时间周期的价格平均值构成,并以单位时间的价格周期不断计算,加入新的一个单位时间的价格时去掉第一个单位时间的价格,并计算平均值。
一个过去几天的平均值,减少了人为的由消息引起的过激反应的影响。
平均较长的数据周期,给出了较平滑的趋势,其结果经常是长期市场方向的一个很好的代表,也反映了市场运行状况和人们对于利率和政策的预期。
趋势系统趋势计算把价格移动归纳为一个净方向,并假设价格将会继续沿着这个方向运动。
趋势跟踪系统则是对趋势作出反应,而不是对它们进行预期。
噪音一个持续横盘的期的波动水平,可以很方便的用来测量内在噪音。
如果一个趋势是由一个不大于市场内在噪音水平移动所引起的,那么这个趋势就是不可靠的。
自适应当市场沿着一个方向快速移动时,快得移动平均值是最好的。
当市场在横盘的市场中立拉锯时,慢的移动平均值是最好的。
三种价格波动性测量a. 简单地计算价格的净变化,从开始点到结束点。
这倾向于最保守的测量,因为它平滑了从开始到结尾之间发生的任何价格移动。
b. 高-低范围更好地描述了在周期内可能产生的任意极端值。
c. 所有变化总和,它是最概括的测量,因为能识别一个价格移动从高到低的次数。
自适应移动平均值步骤1:价格方向价格方向被表示为整个时间段中的净价格变化。
比如,使用n天的间隔(或n小时):步骤2:波动性波动性是市场噪音的总数量,计算了时间段内价格变化的总和volatility= @ sum( @ abs(price-price[1]),n)步骤3:效率系数(ER)方向移动对噪音之比,成为效率系数EREfficiency_Ratio = direction/volatility步骤4:变换上述系数为趋势速度为了应用于一个指数式移动平均值,比率将被变换为一个平滑系数c,依靠使用下面的公式,每天的均线速度可以简单地用改变平滑系数来改变,成为自适应性的。
自适应均线公式通达信
通达信中的自适应均线公式为:MA:=IF(BARS>1,MA*(N1-
1)/(N1+1)+CLOSE*2/(N1+1),CLOSE);其中N1为自适应参数,可以根据不
同的周期自适应调整。
MA是自适应均线的值,CLOSE是当前周期的收盘价。
具体解释如下:
1.当BARS>1时,表示目前已经有至少两个周期。
这时MA通过自适应
公式进行计算,新的MA值为“MA*(N1-1)/(N1+1)+CLOSE*2/(N1+1)”。
相
当于把当前周期的收盘价加权为2,之前的MA值以N1-1为权重,这样可
以平滑均线的变化,保证市场趋势变化的准确反映。
2.当BARS=1时,表示当前周期是第一根K线,这时MA等于第一根K
线的收盘价。
通过自适应均线公式,可以较好的反映当前市场趋势的变化,帮助投
资者更好的把握买卖时机。
考夫曼自适应均线最优参数考夫曼自适应均线(KAMA)是一种技术指标,用于确定股票或其他金融资产的趋势。
它的最优参数是指在给定的市场环境下,能够最好地捕捉到价格趋势的参数设置。
KAMA的计算方法是基于考夫曼自适应滤波器(KAMA Filter)。
该滤波器根据市场的波动性自动调整参数,以适应不同的市场条件。
这使得KAMA能够更好地跟踪价格趋势,并减少噪音的干扰。
KAMA的最优参数取决于市场的特征和投资者的交易策略。
一般来说,KAMA的参数包括快速期、慢速期和适应性期。
快速期用于捕捉短期趋势,慢速期用于捕捉长期趋势,适应性期用于调整参数以适应市场的变化。
确定KAMA的最优参数需要考虑以下几个因素:1. 市场的波动性:市场的波动性越大,KAMA的适应性期应该设置得越大,以便更好地适应价格的变化。
相反,如果市场的波动性较小,适应性期可以设置得较小。
2. 交易策略的时间框架:不同的交易策略有不同的时间框架。
如果交易策略是短期交易,快速期应该设置得较小;如果交易策略是长期投资,慢速期应该设置得较大。
3. 历史数据的分析:通过分析历史数据,可以找到KAMA在不同参数设置下的表现。
可以通过回测等方法,比较不同参数设置下的收益率、风险等指标,选择最优的参数。
4. 经验和直觉:经验和直觉在确定KAMA的最优参数时也起着重要的作用。
投资者可以根据自己的经验和直觉,结合市场的特征和交易策略的要求,选择最适合的参数设置。
总之,确定KAMA的最优参数是一个复杂的过程,需要考虑多个因素。
投资者可以通过分析市场的波动性、交易策略的时间框架、历史数据的分析以及经验和直觉,选择最适合自己的参数设置。
同时,投资者还应该注意,KAMA只是一种技术指标,不能单独作为投资决策的依据,应该结合其他指标和分析方法进行综合判断。
10日均线计算公式举例10日均线是一种技术分析工具,用于平滑股价的波动,以便更好地识别股票的趋势。
它是通过计算最近10个交易日的收盘价的平均值来得到的。
以下是10个关于10日均线计算公式的示例:1. 简单移动平均线(SMA):10日均线最简单的计算方法是简单移动平均线。
它只需要将最近10个交易日的收盘价相加,然后除以10即可得到10日均线的值。
2. 加权移动平均线(WMA):与简单移动平均线相比,加权移动平均线给予最近的交易日更大的权重。
计算方法是将最近10个交易日的收盘价分别与权重相乘,然后将结果相加,再除以权重的总和。
3. 指数移动平均线(EMA):指数移动平均线也给予最近的交易日更大的权重,但是权重的计算方法与加权移动平均线不同。
计算方法是将最近一天的收盘价乘以平滑因子,再加上前一天的EMA乘以(1-平滑因子),其中平滑因子是一个介于0和1之间的数。
4. 三重指数移动平均线(TEMA):三重指数移动平均线是对指数移动平均线的一种改进。
它通过对EMA进行多次平滑来减少噪音,并更好地反映股价的趋势。
计算方法是对EMA进行三次平滑,然后再将结果相加,再除以3。
5. 自适应移动平均线(AMA):自适应移动平均线是一种根据市场波动性自动调整权重的移动平均线。
它通过计算最近10个交易日的价格变动幅度来确定权重的大小,从而更好地适应不同的市场条件。
6. 累积移动平均线(CMA):累积移动平均线是一种将以前的移动平均线值与当前价格相加得到的新的移动平均线。
它可以更好地反映价格的长期趋势。
7. 加权累积移动平均线(WCMA):加权累积移动平均线是在累积移动平均线的基础上,给予最近的价格更大的权重。
计算方法是将最近一天的价格乘以权重,然后加上前一天的累积移动平均线值乘以(1-权重),其中权重是一个介于0和1之间的数。
8. 离散移动平均线(DMA):离散移动平均线是一种基于波动率的移动平均线。
它通过计算最近10个交易日的价格变动幅度来确定权重的大小,从而更好地反映价格的波动性。
{考夫曼自适应均线}input: n(9,1,60), p(2,1,60), Q(30,1,60);Direction:=CLOSE - REF( CLOSE , N ) ;XX:=ABS( CLOSE - REF( CLOSE , 1 ) ) ;V olatility:=SUM( XX , N ) ;ER:=ABS( Direction / V olatility ) ;FastC:= 2 / ( p + 1 ) ;SlowC:= 2 / ( q + 1 ) ;SSC:=ER * ( FastC - SlowC ) + SlowC ;Constant :SSC * SSC , Linethick0 ;YY:=REF( Close , 1 ) + Constant * ( CLOSE - REF( Close , 1 ) ) ;AA:=IF( SUM( 1 , 0 )= N + 1 , YY , 0 ) ;BB:=BarsLast( AA>0 ) ;DD:=REF( C , BB ) ;CC:CLOSE , Linethick0 ;for m=N + 2 to DA TACOUNT DODD[m]:=DD[m - 1] + Constant[m] * ( CC[m] - DD[m - 1] );AMA:DD;T1:=DD>REF(DD,1);T3:=NOT(T1) AND abs(DD-ref(DD,1))/DD*10000<n;T2:=NOT(T1 OR T3);PARTLINE(T1,DD),COLORRED,LINETHICK2;PARTLINE(T2,DD),COLORGREEN,LINETHICK2;PARTLINE(T3,DD),COLORBLUE,LINETHICK2;DRAWTEXT(ISLASTBAR AND T1,DD,'持\n股'),COLORRED,SHIFT1; DRAWTEXT(ISLASTBAR AND T2,DD,'持\n币'),COLORGREEN,SHIFT1; DRAWTEXT(ISLASTBAR AND T3,DD,'观\n望'),COLORBLUE,SHIFT1;考夫曼自适应变色均线系统N:1 100 10M:1 100 30通达信主图源码(日线及以上周期)DIR1:=ABS(CLOSE-REF(CLOSE,N));VIR1:=SUM(ABS(CLOSE-REF(CLOSE,1)),N);ER1:=DIR1/VIR1;CS1:=ER1*(0.8-2/8)+2/8;CQ1:=CS1*CS1;AMA1:EMA(DMA(CLOSE,CQ1),2) ,COLORWHITE;DIR2:=ABS(CLOSE-REF(CLOSE,M));VIR2:=SUM(ABS(CLOSE-REF(CLOSE,1)),M);ER2:=DIR2/VIR2;CS2:=ER2*(0.8-2/24)+2/24;CQ2:=CS2*CS2;AMA2:EMA(DMA(CLOSE,CQ2),2),COLORGREEN,LINETHICK2;AMA3:IF(AMA2/REF(AMA2,1)>0.997,AMA2,DRAWNULL),COLORBLUE,LINETHICK2; AMA4:IF(AMA2/REF(AMA2,1)>1.001,AMA2,DRAWNULL),COLORRED,LINETHICK2;博易大师主图源码(日线及以上周期)DIR1:=ABS(CLOSE-REF(CLOSE,N));VIR1:=SUM(ABS(CLOSE-REF(CLOSE,1)),N);ER1:=DIR1/VIR1;CS1:=ER1*(0.8-2/8)+2/8;CQ1:=CS1*CS1;AMA1:EMA(DMA(CLOSE,CQ1),2) ,COLORWHITE;DIR2:=ABS(CLOSE-REF(CLOSE,M));VIR2:=SUM(ABS(CLOSE-REF(CLOSE,1)),M);ER2:=DIR2/VIR2;CS2:=ER2*(0.8-2/24)+2/24;CQ2:=CS2*CS2;AMA2:EMA(DMA(CLOSE,CQ2),2),COLORGREEN,LINETHICK2;PARTLINE(AMA2/REF(AMA2,1)>0.997,AMA2),COLORBLUE,LINETHICK2; PARTLINE(AMA2/REF(AMA2,1)>1.001,AMA2),COLORRED,LINETHICK2;考夫曼自适应变色均线系统(续)通达信主图源码(日线及以上周期)DIR1:=ABS(CLOSE-REF(CLOSE,5));VIR1:=SUM(ABS(CLOSE-REF(CLOSE,1)),5);ER1:=DIR1/VIR1;CS1:=ER1*(0.8-2/8)+2/8;CQ1:=CS1*CS1;AMA1:EMA(DMA(CLOSE,CQ1),2) ,COLORWHITE;DIR2:=ABS(CLOSE-REF(CLOSE,10));VIR2:=SUM(ABS(CLOSE-REF(CLOSE,1)),10);ER2:=DIR2/VIR2;CS2:=ER2*(0.8-2/24)+2/24;CQ2:=CS2*CS2;AMA2:EMA(DMA(CLOSE,CQ2),2),COLORGREEN,LINETHICK2;AMA3:IF(AMA2/REF(AMA2,1)>0.997,AMA2,DRAWNULL),COLORBLUE,LINETHICK2;AMA4:IF(AMA2/REF(AMA2,1)>1.001,AMA2,DRAWNULL),COLORRED,LINETHICK2;考夫曼自适应变色均线系统(续1)我们跟踪股票的走势,必然离不开均线作为参考。
©1999J URIK R ESEARCH ; Why Use JMA ?TO VIEW THE GRAPHICS CORRECTLYSET ZOOM SCALE TO134%Why Lose Money using slow, lagging indicators?To filter out noise in market data, technicians use moving averages.JMA excels in all four benchmarks of a truly great, low lag filter.BENCHMARK#1:ACCURACYMoving Average (MA) filters have an adjustable parameter that controls its speed. Speed governs two opposing properties of a filter: smoothness (lack of random zigzagging) and accuracy (closeness to the original data). That is, the smoother a filter becomes, the less it accurately resembles the original time series. This makes sense, since we do not want to accurately track zigzagging noise within our data. The financial investor tries to apply just enough smoothness to filter out noise without removing important structure in price activity. For example, in the chart below, the popular Double Exponential Moving Average (DEMA) is just as smooth as JMA yet DEMA fails to track large scale structure ( the big cycles). On the other hand, JMA follows the cyclic action very well.DEMA LOSES LARGESCALE STRUCTUREJMA PRESERVES LARGE SCALE STRUCTUREBENCHMARK#2:TIMELINESSMost MA filters have another problem: they lag behind the original time series. This is a critical issue because excessive delay and late trades may reduce profits significantly.Ideally, you would like a filtered signal to be both smooth and lag free. For many types of moving average filters, including the three classics (simple, weighted, and exponential), greater smoothness produces greater lag. For example, in the chart to the right, price action is the dotted line. The exponential moving average, EMA, lags well behind JMA (thick solid line). As you can see, with EMA's excessive lag, you would have had to wait a long time before it returned to the price action. In contrast, JMA never left it!BOTH CURVES AREEQUALLY SMOOTHEMA’s LAGIS LARGE JMA’sLAGISSMALLAdaptive filters developed by others, such as the Kaufman and Chande AMA, will also lag well behind your time series. Kaufman’s Moving Average (KMA), is anexponential moving average whose speed is governed by the “efficiency” of price movement. For example, fast moving price with little retracement (a strong trend) is considered very efficient and the KMA will automatically speed up to prevent excessive lag. This interesting concept sometimes works well, sometimes not. Forexample, the chart below shows KMA lagging well behind JMA.JMAKMAKMA SERIOUSLY LAGS BEHIND DATAJMA runs through the data,rather than below it.JMA and KMA have similar smoothnessThe advantage in avoiding lag is readily apparent in the chart to the right. Here we see how JMA enhances the timing of a simple crossover oscillator. The top half of the chart shows crude oil closing prices tracked by two JMA filters of different speed. The bottom half uses two EMA (exponential moving average) filters.The oscillator becomes positive when the curve of the faster filter crosses over the slower one. This occurrence suggests a “buy” signal.Note that JMA’s crossovers are 15 and 18 days earlier! Can you afford to be 15 days late ?BENCHMARK #3: OVERSHOOTMany trading systems set triggers to buy or sell when price reaches a certain threshold level. Because there is an inherent amount of noise in price action, the typical approach is to trigger when a moving average crosses the threshold. The smoothed line has less noise and is less likely to produce false alarms.To do this right, you’ll need an exceptional moving average indicator. Common versions lag too much and many sophisticated designs, like the Kalman or Butterworth filter, tend to overshoot during price reversals. Overshoots create false impressions of prices having reached levels it never truly did.For example, in the chart to the right we see the famous Kalman filter overshoot price data, creating a false price level that the market never really achieved. DEMA filters also tend to overshoot. The overshoot crosses the shown threshold and triggers a false alarm. In contrast, JMA did not overshoot and thus avoided a false alarm with the user's set threshold. OVERSHOOTJMAKALMANThresholdMoving averages should have consistent behavior. Some do not. For example, Chande’s VIDYA is an exponential moving average whose speed is governed by the variance of price movement. Fast moving price has large variance which will eventually cause VIDYA to automatically speed up (in an attempt to prevent excessive lag). This concept sometimes works well, sometimes not.In the chart to the right, JMA is the thick solid line and VIDYA is the thin solid line. Both perform approx-imately the same for the first 1/3 of the series. But due to the high volatility during this downward trend, VIDYA becomes hyperactive and fast tracks the choppy waves during the congestion phase of this time series. Smoothing is lost. In contrast, JMA cuts right through with a smooth horizontal line. In addition, the decrease in signal volatility soon causes VIDYA to slow down, too much in fact, as it lags behind JMA during the next downward price trend.Comparing JMA to VIDYAHigh volatility during most recent downward trend caused VIDYA to be too fast here.Low volatility during congestion caused VIDYA to be too slow here.VIDYAJMAThe two charts below simulate a rising trend of equal-sized price bars, punctuated by a downward gap. Trend following systems using signals from the crossover of classical moving averages would fail miserably because the crossovers would arrive too late to take full advantage of the trend (LEFT CHART). In contrast, JMA creates crossover signals almostimmediately, riding a good portion of the trend for greater profit (RIGHT CHART).JMA can also track price gaps produced by INTRA-DAY data. The chart on the right shows how JMA jumps to the next day’s price levels while the classical exponential moving average lags behind.Create superior trading indicators with ...• better timing • less noise• greater accuracyVisit Jurik Research at …JMA tracks staircase structure of S&P ( 5 minute bars )JMA。
精明的交易者:利用考夫曼自适应均线构建盘整过滤器前言我们常用的移动均线有简单移动均线、加权移动平均线以及指数式移动均线。
我们知道长周期的均线系统是可靠的,但是它有严重的滞后性;短周期的均线系统虽然能快速反映市场的走势,但是难以抵抗市场“噪音”的干扰。
为了避免噪音产生的虚假信号,同时又想消除某些长线趋势中的滞后性,考夫曼提出了一种“自适应”的均线系统——考夫曼自适应移动均线系统(简称AMA)。
关于自适应均线的传统用法,建议大家可以去参考佩里·J·考夫曼的著作《精明交易者》!这里,我不会详述,接下来将分享其高级用法!亮点分析•考夫曼自适应均线具有自适应调节作用,能够分辨盘整和趋势行情,方向一目了然•搭建考夫曼自适应均线,在小级别自适应调节大级别周期•利用考夫曼自适应均线的自我特征,建立盘整过滤器计算方法关于AMA的计算方法,这里不过于详细讲解,想了解的朋友,可以百度百科查找,下图是跨期AMA的计算方法。
利用数据切分,可以实现单图表调用大周期的数据,而不需要开多个图表去调用数据,这样能提高数据的综合利用。
比如我们想在5分钟调取45分钟的数据,通过以下方法就能实现.AMAk_AdaptiveMovAvg在实际运用中,我们只需要调整TimeFrame这个值,就能取到任何一个我们想要的跨周期值,所以在跨期的运用,我们就可以设计真正的多周期共振,比如可以同时调取1小时,日线,周线的AMA,当三个周期的斜率共振为多头的时候,我们可以认定为多头趋势。
构建滤波器接下来,我们就要重点讲述如何通过自适应均线构建盘整滤波器,当然我们平常算取的滤波器都是在当前周期使用,通过跨期,我们就可以用小级别调取大级别的滤波器,这样可以更有效的过滤盘整行情。
逻辑思想•首先我们要调取跨期自适应均线的当前值AMA和前一个值AMA1,取当前值与前一个值的差dv•算取20根K线的dv的标准差,在这个基础上我们乘以一个系数RF,RF的目的主要用于不同品种系数的调整通过上述算法,我们得到一个FILTER.我们可以发现在行情急转,或者出现波动加大的时候,FILTER值会出现加大。
{公称名称: AMA考夫曼自适用型均线}
input:N(10,1,60),P1(2,1,60),Q1(30,1,60);
DIRECTION:=(CLOSE - REF(CLOSE,N));
XX:=ABS((CLOSE - REF(CLOSE,1)));
VOLATILITY:=SUM(XX,N);
ER:=ABS((DIRECTION / VOLATILITY));
FASTC:=(2 / (P1 + 1));
SLOWC:=(2 / (30 + 1));
SSC:=((ER * (FASTC - SLOWC)) + SLOWC);
CONSTANT:=(SSC * SSC);
CC:=CLOSE;
YY:=(REF(CLOSE,1) + (CONSTANT * (CLOSE - REF(CLOSE,1))));
IF DA TACOUNT > N THEN
DD[N]:=CC[(N + 1)];
FOR I=N + 1 to DA TACOUNT DO
DD[I]:=(DD[(I - 1)] + (CONSTANT[I] * (CC[I] - DD[(I - 1)])));
AMA:DD,LINETHICK2,colorFFFF;
DIR:=ABS(CLOSE-REF(CLOSE,10));
VIR:=SUM(ABS(CLOSE-REF(CLOSE,1)),10);
ER:=DIR/VIR;
CS:=ER*(2/3-2/14)+2/14;
CQ:=CS*CS;
AMA1:EMA(DMA(CLOSE,CQ),2),COLORGREEN;
FIL:=STD(AMA-REF(AMA,1),20);
DRAWICON(FILTER(AMA-LLV(AMA,3)>FIL*0.1,10),AMA,1);
自适应均线初步学习
常见的计算均线的指标是ma(simple moving average) 和ema(exponential moving average),公式如下:
SMA = SUM(CLOSE, N)/N
EMA = (CLOSE(i)*P)+(EMA(i-1)*(1-P)) or
(M*CLOSE(i)+(N-M)*EMA(i-1))/N
MA有滞后的特点,因此在ema中对最近的价格给予较大的权重提高对趋势的跟踪效果。
具体的ma指标有各种版本,ma ,ema,sm,wma等,不过原理都类似。
传统均线不考虑随时变化着的市场条件,采用固定的计算过程,在市场反复震荡时短期均线频繁地转向,而在市场快速上升或者下跌时长期均线反应迟钝。
而趋势跟踪的策略需要指标能够适应不同的市场特性,根据市场的方向和速度“聪明”地应对,在单边市场中应用快速的均线,震荡行情中应用较慢的均线。
针对上述情况,Perry Kaufman在《Smarter Trading》中,提出了自适应均线(Adaptive Moving Average,AMA)的概念,试图在复杂的市场环境下,使指标能够自动调整,尽量过滤掉噪音和不可预知的价格变动,更好地跟踪市场趋势的变动。
下面介绍一下自适应均线的计算过程:
一、价格有效性比率
1、问题提出
从下图看出,从a到c,市场模式从理想化地平滑到充满噪音,趋势的
速度必须降下来,避免遭受双重损失。
当价格在单方向上变化越快,噪
音越不明显,因此趋势速度的选择需要同时考虑方向和噪声:价格变动
越清晰,越快,就需要使用越快的趋势均线,所以需要一种机制来敏感
地捕捉市场模式的速度和连续性,并且把该信息反馈到移动均线,调整
移动均线的平滑速度
2、有效性比率公式(Efficiency Ratio ER)
有效性比率用全部的价格移动距离(价格轨迹)除价格的净变动,也可认为是价格位移对波动的比率。
公式如下:
假定在过去n 个收盘价格分别为p1,p2, …pn ,那么这个价格序列的效率
从公式可以看到, er值的范围是0(市场不明确,充满噪声)~~~1(高度趋势)
二、定义趋势速度范围
按照指数平滑的思路对er简单扩展一下,提高其稳定性
Scaled smoothing constand : sc = ER*(fast sc – slow sc) + slow sc
其中 sc = 2/(N+1)
Eg
假如从快到慢的范围是2到30天,则平滑常量为2/3, 2/31, 则
Sc = er * (2/3- 2/31) + 2/31
最后,即使在横向盘整的市场里,长期(30)均线仍然缓慢地上下波动,当市场趋向不明显时,自适应均线最好能够水平移动,为了实
现这个目的,再对sc平方一下。
Constant : C= sc * sc
三、 AMA
最终计算的AMA如下:
AMA[i] = AMA[i-1] + c * (p[i] – AMA[i-1] )
从公式看到, ama和ema计算思路是一样的,只是在权重的确定不一样。
AMA趋势均线有如下特点:
1)使用一定数目的天数,指定趋势范围的快慢
2)市场没有方向时, ama趋势线停止波动
3)当价格有明显变动时,ama能够快速跟踪,较小的延迟
4)改变一个参数,应用到不同市场
5) Ama基于预测分析,而不是简单验证
以上内容主要是描述或者翻译作者的原文,觉得这种对传统指标巧妙扩展的思路很值得借鉴,后续需要对自适应均线AMA的策略进行测试,看看在A股市场上实战的效果如何。
我们跟踪股票的走势,离不开均线作为参考.均线系统是我们观察股票走势的基础. 通常用的均线总是有一个给定的参数,比如10日均线,60 日均线,其中10日均线变化快一点,60 日均线变化慢一点.这个参数是人给定的, 一旦给定了,在整个画线的过程中就不会变化,不管行情怎么变化.
这种固定均线系统的缺点很明显,比如在市场反复震荡时短期均线频繁地转向,这时候我们趋向于使用长期均线,而在市场快速上升或者下跌时长期均线反应迟钝,使用长期均线效果就比较差. 当价格沿一个方向快速移动时,短期的移动平均线是最好的,当价格在横盘的过程中,长期移动平均线是最好的.
对于一个如此复杂变化着的市场, 均线系统存在的问题,让我们每一个股市的参与者感到左右为难.寻找最佳的移动平均值就成了大家乐此不疲的一种日常活动.我们期待一个自适应的系统,有自动调整的功能,这样会比一个固定的系统做得更好一点.
我们理想中的移动平均线是什么样子的呢?当价格无目标地移动时,它的反映会比较慢,像长期移动平均线;当价格有了快速变化的时候,它又能很快地跟上价格的走势
这样的移动平均线存在吗?当然存在!很多国外的股票技术分析书籍中都提到过这样的均线,而且,这样的自适应均线每一个股票的软件都可以做到,并且非常简单.
以下是对考夫曼变色系统公式的改编公式,更容易操作:
奉上主图指标源码:
{考夫曼自适应变色均线变通版}
DIR1:=ABS(CLOSE-REF(CLOSE,5));
VIR1:=SUM(ABS(CLOSE-REF(CLOSE,1)),5);
ER1:=DIR1/VIR1;
CS1:=ER1*(0.8-2/8)+2/8;
CQ1:=CS1*CS1;
AMA1:EMA(DMA(CLOSE,CQ1),2) ,COLORWHITE;
DIR2:=ABS(CLOSE-REF(CLOSE,10));
VIR2:=SUM(ABS(CLOSE-REF(CLOSE,1)),10);
ER2:=DIR2/VIR2;
CS2:=ER2*(0.8-2/24)+2/24;
CQ2:=CS2*CS2;
AMA2:EMA(DMA(CLOSE,CQ2),2),COLORGREEN,LINETHICK2;
Partline(ama2, AMA2/REF(AMA2,1)>0.997),COLORBLUE,LINETHICK2;
Partline(ama2, AMA2/REF(AMA2,1)>1.001),COLORRED,LINETHICK2;
操作方法提示:
1、长周期均线为绿色时,不可操作;
2、长周期为蓝色,股价穿越短周期均线时,可建50%的仓位;
3、股价穿越长期均线时,可再建50%仓位;
4、股价跌破短周期均线时,减掉50%仓位;
5、股价跌破长周期均线时,卖出全部股票;
6、长周期均线为红色时,代表持股.短过长,蜡烛线中阳或调空,可买;或短在长上,连续2-3日小阳,成交量短在长上,可买.
关键字:考夫,曼自,适应,变色,战法,详解,附图,大智,慧主,图源码。