用AMIBROKER自制RENKO指標

為什麼要使用Renko圖?

因為Renko圖可以過濾股票/期貨走勢中的雜訊,讓投資者更能清楚地分析到股票/期貨的走勢。

如何在AmiBroker自制Renko指標?

1) Analysis -> Formula Editor

amibroker_make_ppo_2

 

2) 在AmiBroker輸入下面的languages (sources from Amibroker.com)

// Brick size is dependant on what you want, if too small will not produce a chart due to insufficient x-axis bars
//Brick = LastValue( ATR(100) );
//Brick = LastValue( Max(0.02*C, 0.05) );
Brick = Param( “Brick Size”, 5, 5, 20, 1);
reverse = 2;

// Convert the closing price to rising and falling rounded bricks
CF = ceil(C/Brick);
CR = floor(C/Brick);

// initialize first element
j = 0;
RKC[j] = CF[0];
RKO[j] = CF[0] + 1;

down[j] = 1; // By default the first bar is a down bar.
up[j] = 0;

// Loop to produce the Renko values in number of bricks

for( i=1; i<BarCount-1; i++ )
{
if( CF[i] <= RKC[j] – 1 && down[j] ) // Continue down
{
num = RKC[j] – CF[i];
for( x=1; x<=num; x++ )
{
j++;
up[j] = 0;
down[j] = 1;
RKC[j] = RKC[j-1] – 1;
RKO[j] = RKC[j] + 1;
}
}
else
{
if( CR[i] >= RKC[j] + Reverse && down[j] ) // Change down to up
{
num = CR[i] – RKC[j];
j++;
up[j] = 1;
down[j] = 0;
RKC[j] = RKC[j-1] + 2;
RKO[j] = RKC[j] – 1;
for( x=2; x<=num; x++ )
{
j++;
up[j] = 1;
down[j] = 0;
RKC[j] = RKC[j-1] + 1;
RKO[j] = RKC[j] – 1;
}
}
else
{
if( CR[i] >= RKC[j] + 1 && up[j] ) // Continue Up
{
num = CR[i] – RKC[j];
for( x=1; x<=num; x++ )
{
j++;
Up[j] = 1;
Down[j] = 0;
RKC[j] = RKC[j-1] + 1;
RKO[j] = RKC[j] – 1;
}
}
else
{
if( CF[i] <= RKC[j] – Reverse && up[j] ) // Change up to down
{
num = RKC[j] – CF[i];
j++;
Up[j] = 0;
Down[j] = 1;
RKC[j] = RKC[j-1] – 2;
RKO[j] = RKC[j] + 1;
for( x=2; x<=num; x++ )
{
j++;
up[j] = 0;
down[j] = 1;
RKC[j] = RKC[j-1] – 1;
RKO[j] = RKC[j] + 1;
}
}
}
}
}
}
// move the chart to right end of chart space, ie last brick on last bar position
delta = BarCount-1 – j;

RKC = Ref( RKC, -delta );
RKO = Ref( RKO, -delta );

Up = Ref( Up, -delta );
Down = Ref( Down, -delta );

/*
rC = RKC * Brick;// + (Up-down)*Brick/2;
rO = RC – (Up-down)*Brick;
rH = Max(rC,rO);
rL = Min(rC,rO);
*/
C = RKC * Brick;// + (Up-down)*Brick/2;
O = C – (Up-down)*Brick;
H = Max(C,O);
L = Min(C,O);

Plot( C, “”, colorGrey50,styleCandle);
// plot chart
//plotOHLC( rO, rH, rL, rC, “Renko Price ” , colorBlack, styleCandle);
GraphXSpace=5;

Title = Name() + ” – {{INTERVAL}} {{DATE}} – Renko Chart : Last Value = ” + RKC * Brick + “, Brick Size = ” + Brick;

 

3)  File -> Save As -> 輸入檔案名稱(例如renko_indicator)-> 存檔 -> 關閉Formula Editor 視窗

amibroker_renko_1

 

4)  打開Chart 視窗-> Custom Indicator -> 右點擊renko_indicator(剛剛儲存的檔案名稱)-> Insert-> OK

amibroker_make_ppo_5a

amibroker_renko_2

 

5) Renko 圖便出功出現在圖表上。

amibroker_renko_3

如果想知道更多關於使用Rendo的原理及要注意的地方,請報讀我們最新的Quants Training課程。

用AMIBROKER為MACD做OPTIMIZATION

《全職操盤──輕鬆學懂全自動程式交易工具 Program Trading》這本書出了一陣子,收到很多讀者的疑問,例如:

用AMIBROKER為MACD做OPTIMIZATION,最簡單的MACD突破訊號,究竟(12,26,9)好,還是(5,35,5)好?

 

以書中所介紹的00005.HK(1/7/2012-31/12/2012) 作例子:

 

1)       先開啟AMIBROKER 並準備相關的股票歷史數據(書中有簡單介紹如何取得數據,在Quants Training課堂上會有更進一步的講解),可在Symbol 視窗內看到有那些股票、期貨數據。

amibroker_macd_optimize_1

 

2)       Analysis -> Formula Editor

amibroker_macd_optimize_2

 

3)       先使用MACD(12, 26, 9) 作測試

FastPeriod 設為12, SlowPeriod 設為26, SignalPeriod 設為9, PositionSize 設為400(因為HSBC一手為400股)

amibroker_macd_optimize_3

 

4)       File -> Save As -> 打檔案名稱,(如book_example_6) -> 存檔 -> 關閉Formula Editor 視窗

 

5)       點擊Pick a file,並揀選剛剛儲存檔案的位置,按開啟舊檔。

amibroker_macd_optimize_5

 

6)       返回Analysis 視窗 -> 按士巴拿圖案 -> 點擊Settings

amibroker_macd_optimize_6

 

7)       請作出以下設定,Initial equity(原有資金)設為你的本金, 例如1,000,000, Positions設為Long(暫假定不做沽空),Periodicity 設為Daily, 現階段暫不把交易佣金計算在內,然後按確定。

amibroker_macd_optimize_7

 

8)       請揀選要做backtesting 的股票(如0005.HK),Period請揀選D(Daily)。

amibroker_macd_optimize_8

 

9)       Apply to請揀選*Current, Range 揀選From-To dates,日期範圍揀選1/7/2012-31/12/2012或自己所選的日期範圍,再按Backtest。

amibroker_macd_optimize_9

 

10)   結果顯示Cum.Profit 為$3212。

amibroker_macd_optimize_10

 

11)   現在我們會再修改MACD 參數由12, 26, 9改為5, 35, 5再做Backtest。先點擊在Pick a file右邊的Edit制。

amibroker_macd_optimize_11

 

12)   把FastPeriod 改為5, SlowPeriod 改為35, SignalPeriod 改為5,並把檔案儲存及關閉Formula Editor 視窗。

amibroker_macd_optimize_12

 

13)   返回Analysis視窗,並再次按Backtest制。你便會看到新的Backtest 結果。Cum.Profit 為$3556。

amibroker_macd_optimize_13

 

總結:使用AmiBroker能快速地知道用那個MACD參數較好,在Quants Training的課程裏,我們將有更進一步的講解,如何能更優化地揀選參數。

AmiBroker 簡單介紹與安裝

amibroker 1

Amibroker是什麼?

 

要怎樣進入程式交易的世界?要怎樣編寫出會賺錢的策略?其實要進入程式交易的世界很簡單,而要寫出會賺錢的程式也不難,困難的是,你只是在那邊到處問人家要怎麼寫,到處想找可以快速入門的捷徑,卻不真正的開始動手撰寫屬於你自己的第一個交易程式。 當然在編寫交易策略時需要工具,不然你的交易策略又如何通知電腦替你自動執行? Amibroker便是協助你做到自動交易的工具,同時也可以運用它來測試你的交易策略,以歷史數據作模擬交易,統計出你的策略在過去的交易成績。目前全球能提供程式交易的軟件或平台有不少,如tradestation, Metastock, ninjatrader,TradersStudio, MultiCharts, Wealth-LAB, RightEdge, openquant,而Amibroker便屬其一。不過Amibroker 在使用介面、執行速度、數據匯入、價錢等也是當中最佳。

不少讀者也曾問過一個問題,若他有正職在身的人根本不適合即市交易?

 

    事實上,這也是不少人的問題,他們可能具備很好的交易知識,也有一套具優勢的交易策略,但就是沒有時間! 即市交易很可能需要整天坐在電腦前,用肉眼看圖表捕捉每個入市機會,入市後也會持續留意,掌握最佳的平倉離場時間。但若然大家的職業根本未能讓你整天坐在電腦前,那又如何有機會去交易? 而且即使能坐在電腦前,也有可能同事及老闆時常經過你的位置,根本不能專心交易。有很多人便因而決定,只做期指過夜倉,但期指過夜倉需要面對翌日「裂口」高開或低開的風險,相隔一晚很可能在開市便虧損數百點。又或有些人選擇只交易牛熊證或窩輪,而且也會持倉過夜,但很可能買入牛證後,當晚美股急跌,在翌日開市,持有的牛證便板打靶。其實只要懂得程式交易便能協助你解決這個問題,而且只是定時確保家中的電腦沒有出現「Hang機」的情況便可以。運用程式交易根本無需要長時間睇市,要的只是留意電腦是否有突發性問題,但即使不在家中,也能透過IPHONE或IPAD遙距操作你家中的電腦,這樣避免了電腦「Hang機」等問題出現時的風險。其實不少人也有遙距控制電腦的經驗,如你的電腦系統出現問題時,部份電腦維修員會利用軟件的桌面分享功能,透過遙距控制的方式來替你的電腦進行修復工作。

 

 

AmiBroker的下載和安裝

AmiBroker是設有30日免費試用的,有興趣的可自行下載安裝,以下是有關AmiBroker的下載指引:

 

1.先到http://www.amibroker.com/,並點擊download標籤。

 

p16

 

 

 

2. 右點擊最新版本的AmiBroker,並點選另存連結為。

 

p17

 

 

 

3. 把檔案儲存在特定位置,如桌面,便後按存檔。

 

p18

 

 

 

4.雙點擊剛剛下載的exe檔案,按指示進行安裝,並把AmiBroker安裝在特定的位置,如C:\Program Files (x86)\AmiBroker,完成後你便會看到AmiBroker的開啟捷徑。

p19