相關標簽:
?
我們跟蹤股票的走勢,必然離不開均線作為參考。均線系統是我們觀察股票走勢的基礎。
短期均線不能很好地遮罩市場的雜訊,往往產生虛假的進場信號;長期均線在判斷趨勢上一般比較準確,但是長期均線有著嚴重滯後的問題。一個股票的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<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;
{程序化交易 www.tumamayizhan.com }

根據考夫曼的自適應均線原理,利用文華財經編了一下,還是不錯的,現把源代碼公布出來給大家參考。
交易指標即自適應均線的源代碼,我根據指標改良了一下交易系統,考夫曼原來是采用均線值的變化率發出買賣信號,我覺得不是很好,就用最高最低價構建了一個智能均線帶,采用最低最高價突破來發出信號,大家一起探討阿。
交易指標:
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;
CLOSE<AMACLOSE,SP;
HIGH<AMALOW,SK;
CLOSE>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}
DIR:=ABS(CLOSE-REF(CLOSE,n));
VIR:=SUM(ABS(CLOSE-REF(CLOSE,1)),n);
ER:=DIR/VIR;
CS:=ER*(2/3-2/31)+2/31;
CQ:=CS*CS;
AMA:DMA(CLOSE,CQ),COLORGREEN;{http://www.tumamayizhan.com}
AMA1:IF(AMA>REF(AMA,1),AMA,DRAWNULL),COLORRED;
如果自適應均線系統的周期n=10,那么:
1。自適應均線系統橫向移動時,系統告訴你:最近的10個周期中,價咯上漲的幅度和下跌的幅度基本相當,(是幅度,而不是周期數);
2。自適應均線系統向上翹起時,系統告訴你:最近10個周期中,價咯上漲的幅度要大于下跌的幅度,價咯逐漸進入強勢的狀態。
3。自適應均線系統向下垂時,系統告訴你的情形和2的情形正好相反。
《Smarter Trading》中Kaufman的AMA系統 最新的成果便是閱讀了《Smarter Trading》,根據里面的AMA構建方法自己編制了一套系統。通達信源碼如下,貌似也可以運行在大智慧上,不過得改一下色彩函數。
{N:5 30 20}
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; {不知道KAUFMAN為什么要平方??}
AMA:DMA(CLOSE,SCSQ),COLORBLACK,LINETHICK1; {DMA指標,AMAt=SCSQt-1*CLOSEt-1+(1-SCSQt-1)*AMAt-1}
THRESHOLD:=STD(AMA-REF(AMA,1),20)*0.75;{信號觸發閾值,用0.75倍20天的AMA的標準差}
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; {在賣出后發出BUY=1的信號,則建議加倉至一半}
空倉:IF(BUY=0 AND SELL=1,AMA,DRAWNULL),COLORGREEN,LINETHICK4;
經過我測試,發現這個系統的成功率并不高,測試數據為滬深A股,2000~2004、2003~2005、2004~2008、2006~2009年的日線數據,成功率38.97%~53.21%,屬于中等水平,個人并不建議用于個股的操作,因為所有的Trends Following系統的共同的缺點就是,當價咯波動恰好在系統信號發出的閾值空間內時,噪音信號劇增,失敗率極高,對于那種波動劇烈的個股,趨勢系統始終會發出很多假信號,不過AMA本身已經過濾了大部分虛假信號,這也就是為什么稱之為Adaptive Moving Average,自適應均線系統。對于這套系統,還可以加入filter過濾假信號,不過沒試過,個人覺得本身就已經有一個filter了,再加會適得其反。
最后的建議:AMA系統用于“慢牛”型股票和指數基金是最合適的,這些目標波動小,趨勢性明顯,尤其推薦ETF場內交易指數基金,連巴菲特都說:沒有幾個基金經理能戰勝指數基金的。
?
公式導入教程: 【通達信公式源碼導入方法教程】 【同花順公式源碼導入方法教程】 【大智慧新一代公式源碼導入方法教程】
?