高邮教育局网:考夫曼自適應均線系統
[Z]《考夫曼自適應均線系統》(源碼)
我們跟蹤股票的走勢,必然離不開均線作為參考。均線系統是我們觀察股票走勢的基礎。
短期均線不能很好地遮罩市場的雜訊,往往產生虛假的進場信號;長期均線在判斷趨勢上一般比較準確,但是長期均線有著嚴重滯後的問題。一個股票的10日內的突發性的上漲,如果用200日均線去觀察,幾乎看不出變化。
均線系統存在的問題,讓我們每一個股市的參與者感到左右為難。尋找最佳的移動平均值就成了大家樂此不疲的一種日常活動。由於每次市場的波動,趨勢的速度都是不同的,所以在每一波的波動中,採用多少週期的移動平均值才能最好地反映趨勢的方向呢?
有一個流行的解決方法,就是針對某一隻股票測試其歷史資料的最佳移動平均值。並且根據最近的、最符合其趨勢的移動平均值去進行操作。但是歷史資料只代表已經走過的趨勢,我們不可能回到過去進行交易。
通過分析我們使用的移動平均線,可以得出如下的結論:
1。當價格沿一個方向快速移動時,短期的移動平均線是最好的。
2。當價格在橫盤的過程中,長期移動平均線是最好的。
我們理想中的移動平均線是什麼樣子的呢?
1。當價格無目標地移動時,它的反映會比較慢,像長期移動平均線;
2。當價格有了快速變化的時候,它又能很快地跟上價格的走勢,像短期移動平均線。
這樣的移動平均線存在嗎?
當然存在!
很多國外的股票技術分析書籍中都提到過這樣的均線,把這種自適應的均線系統作為電腦自動交易系統中趨勢判斷最主要的手段。最近在和訊的“黃金股道”的軟體中,也見到過類似的均線,但是做了公式的加密。
其實這樣的自適應均線每一個股票的軟體都可以做到,並且非常簡單。
==========================================================
技術分析僅僅是一種工具,錯把工具當真理,這顯現出的是一種哲學上的無知和靈性上的幼稚。
{考夫曼自適應均線}
input: n(9,1,60), p(2,1,60), Q(30,1,60);
Direction:=CLOSE - REF( CLOSE , N ) ;
XX:=ABS( CLOSE - REF( CLOSE , 1 ) ) ;
Volatility:=SUM( XX , N ) ;
ER:=ABS( Direction / Volatility ) ;
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 DATACOUNT DO
DD[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
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;
根据考夫曼的自适应均线原理,利用文华财经编了一下,还是不错的,现把源代码公布出来给大家参考。
交易指标即自适应均线的源代码,我根据指标改良了一下交易系统,考夫曼原来是采用均线值的变化率发出买卖信号,我觉得不是很好,就用最高最低价构建了一个智能均线带,采用最低最高价突破来发出信号,大家一起探讨阿。
交易指标:DIRECTION:=CLOSE-REF(CLOSE,N);VOLATILITY:=SUM(ABS((CLOSE-REF(CLOSE,1))),N);
ER:=ABS(DIRECTION/VOLATILITY);
FASTSC:=2/(2 + 1);
SLOWSC:=2/(30 + 1);
SSC:=ER*(FASTSC-SLOWSC)+SLOWSC;
CONSTANT:=SSC*SSC;
AMAHIGH:REF(EMA(HIGH,N),1)+CONSTANT*(HIGH- REF(EMA(HIGH,N),1));
AMALOW:REF(EMA(LOW,N),1)+CONSTANT*(LOW- REF(EMA(LOW,N),1));交易模型:DIRECTION:=CLOSE-REF(CLOSE,N);
VOLATILITY:=SUM(ABS((CLOSE-REF(CLOSE,1))),N);
ER:=ABS(DIRECTION/VOLATILITY);
FASTSC:=2/(2 + 1);
SLOWSC:=2/(30 + 1);
SSC:=ER*(FASTSC-SLOWSC)+SLOWSC;
CONSTANT:=SSC*SSC;
AMAHIGH:=REF(EMA(HIGH,N),1)+CONSTANT*(HIGH- REF(EMA(HIGH,N),1));
AMACLOSE:=REF(EMA(CLOSE,N),1)+CONSTANT*(CLOSE- REF(EMA(CLOSE,N),1));
AMALOW:=REF(EMA(LOW,N),1)+CONSTANT*(LOW- REF(EMA(LOW,N),1));
LOW>AMAHIGH,BK;
CLOSEHIGHCLOSE>AMACLOSE,BP;
AMACLOSE:=REF(EMA(CLOSE,N),1)+CONSTANT*(CLOSE- REF(EMA(CLOSE,N),1));
这还不是原书中定义的自适应均线。按原书中定义,应该是:
AMA:=CONST*CLOSE+(1-CONST)*REF(AMA,1);
显然原书中的定义排除了人为的N,因此更加自然。可惜对AMA的定义需要向前引用ref(AMA,1),在文化中无法得到支持,这是文化平台需要改进的一个重大缺陷。目前还想不出如何在文化中完整实现原书中的定义。
尝试用 AMA:=DMA(CLOSE, CONST); 得到的结果竟成了一直线
自适应均线系统-最好的均线系统如果自适应均线系统的周期n=10,那么:
《Smarter Trading》中Kaufman的AMA系统
{N:5
DIRECTION:=CLOSE-REF(CLOSE,N);
VOLATILITY:=SUM(ABS(CLOSE-REF(CLOSE,1)),N);
ER:=ABS(DIRECTION/VOLATILITY); {EFFICIENCY RATIO是AMA系统中最重要的指标,比值越大,趋势越明显}
FSC:=2/(2+1);
SSC:=2/(30+1);
SC:=ER*(FSC-SSC)+SSC; {等价于SC=ER*FSC+(1-ER)*SSC,指数平滑序列}
SCSQ:=SC*SC;
AMA:DMA(CLOSE,SCSQ),COLORBLACK,LINETHICK1;
THRESHOLD:=STD(AMA-REF(AMA,1),20)*0.75;
BUY:=AMA-LLV(AMA,5)>=THRESHOLD;
SELL:=HHV(AMA,5)-AMA>=THRESHOLD;
全仓:IF(BUY=1 AND SELL=0,AMA,DRAWNULL),COLORRED,LINETHICK4;
减仓:IF(BUY=0 AND SELL=0,AMA,DRAWNULL),COLORMAGENTA,LINETHICK5; {在买入后发出BUY=0的信号,则建议减仓至一半}
加仓:IF(BUY=1 AND SELL=1,AMA,DRAWNULL),COLORCYAN,LINETHICK5;
空仓:IF(BUY=0 AND SELL=1,AMA,DRAWNULL),COLORGREEN,LINETHICK4;