balance 發表於 11-12-9 00:27

Amibroker 學習過程分享

這些是我在‘共筆’中比較沒有看到的。從共筆中受益許多,在這裡慢慢回饋大家。希望有用。

1. Loop Vs array
大家都知道AFL最強大的地方就是array 語言。這對公式形態的trading 系統很好寫,但是對pattern 的就。。。
現在在寫wolfe wave的系統,簡單看一下附圖 有點像在找double top, 但是很多細節的規矩,反正就是要把這些點都找到。。這個就無法簡潔的pure array 來寫。 在yahoo forum上問了,看來也沒有好方法,只好自己全部bar loop 一遍。 現在問題來了,如果要做backtest,   那到底 AB 是怎麼做的呢,是每個bar 我的AFL code 都跑一遍。如果是這樣,每年假設200天,一天8小時,一年就是 1600 bars. 跑個5年就是 8000 bars, 每個bar 都 loop 一遍, 便是要跑 8000 * 8000. .. 小時就這樣,那就別想5min了。。。

官方文件對於backtest結構都沒有說。找了很久,總算找到。發現這是AB非常獨特的地方,希望設計的人都要知道。 那就是,AB backtest 是先對你的code, 對所有的bars, 全部算一次。 yes, 就一次。然後所有的data都算好了,在從第一個bar 開始往‘後’走,只算buy/sell/short/cover。 算到最後你的profit/loss 就是 backtest 結果。 這就是AB backtest 比其他的快很多的原因。 其他的系統(wealth lab等)都是,在模擬往後走的時候是碰到每個bar就你的code跑一遍,當然包括buy/sell.

這個基本architecture的差別對你在設計系統時,最大的差別就是,在AB系統,千萬別用到’look into the future'的function.
這也是為什麼在AFL 手冊上,每個有look into the future的function都會特別提到。

拿 zigzag 來說,wealth lab 也有,但是因為譬如在第 i個bar的時候正好是peak,wealth lab是一個一個跑,所以要再等2個bar才能確定是peak, 但是 AB 在跑zigzag的時候,‘未來’的兩個bar都在,所以在i 的時候就知道是peak,結果跑出來的哇賺好多錢,但是在實際trading的時候就沒這麼好了。。。

結論,

1. 寫code是一定要用 formula editor/tools/code check and profile 確認沒有 look into the future, 或是,如果check回報會多看兩個bar,就要看看你的系統是否可以接受。譬如,我的系統用到 ref(x, -1) (就是偷看一個bar), 我覺得可以接受,那就ok.

2. 如果非得要用到譬如是zigzag的function, 可以從參考這裡
http://www.mail-archive.com/amibroker@yahoogroups.com/msg50271.html
讓你的backtest很‘實際’。



另外google可以有15天 1-min backfill, 而且應該有台灣的股票。半自動化請參考

http://finance.groups.yahoo.com/group/amibroker/message/165871

kilroy 發表於 11-12-9 00:36

感謝大大的分享

小弟也受益良多,非常讚啦

---
{:4_113:}

GnuHomot 發表於 11-12-9 06:35

我的系統用到 ref(x, -1) (就是偷看一個bar)

是我誤會嗎?
Help上寫

EXAMPLE
The formula "ref( CLOSE, -14 )" returns the closing price 14 periods ago. Thus, you could write the 14-day price rate-of-change (expressed in points) as "C - ref( C, -14 )." The formula "ref( C, 12 )" returns the closing price 12 periods ahead (this means looking up the future)

參數為正數時才是Look up the future吧

kilroy 發表於 11-12-9 08:48

是我誤會嗎?
Help上寫


參數為正數時才是Look up the future吧
GnuHomot 發表於 11-12-9 06:35 AM http://www.coco-in.net/images/common/back.gif


   GnuHomot 大大對 AB 也是非常熱衷的 {:4_113:}

kingjerry 發表於 11-12-9 09:15

感恩 謝分享{:4_113:}

像我們這種老灰仔LKK只會手動的 只能望程式興嘆{:4_172:}

每天多空都要天人交戰賺但博所費{:4_186:}

zoolander 發表於 11-12-9 09:42

官方文件對於backtest結構都沒有說。找了很久,總算找到。
balance 發表於 11-12-9 12:27 AM http://www.coco-in.net/images/common/back.gif
請問你是在哪裡找到的?

balance 發表於 11-12-9 11:54

回復 3# GnuHomot


   沒錯,筆誤,(ref,1)

balance 發表於 11-12-9 11:57

請問你是在哪裡找到的?
zoolander 發表於 11-12-9 09:42 AM http://www.coco-in.net/images/common/back.gif請參見, http://www.mail-archive.com/amibroker@yahoogroups.com/msg50281.html

balance 發表於 11-12-9 12:28

感恩 謝分享

像我們這種老灰仔LKK只會手動的 只能望程式興嘆

每天多空都要天人交戰賺 ...
kingjerry 發表於 11-12-9 09:15 AM http://www.coco-in.net/images/common/back.gif

大大客氣了。 在我寫的過程中真正體會,人腦(如果沒有情緒,恐懼和貪婪)比任何電腦/程式都厲害。

kilroy 發表於 11-12-9 12:32

大大客氣了。 在我寫的過程中真正體會,人腦(如果沒有情緒,恐懼和貪婪)比任何電腦/程式都厲害。 ...
balance 發表於 11-12-9 12:28 PM http://www.coco-in.net/images/common/back.gif


    但是如果可以全部都丟給程式來做也很不賴啦 XD

zoolander 發表於 11-12-9 14:45

請參見,
balance 發表於 11-12-9 11:57 AM http://www.coco-in.net/images/common/back.gif
真是辛苦了. 我一直覺得Tomasz在說明上有點亂糟糟.

剛看到Amibroker現在升級有兩年free upgrade耶.

balance 發表於 11-12-9 15:48

真是辛苦了. 我一直覺得Tomasz在說明上有點亂糟糟.

剛看到Amibroker現在升級有兩年free upgrade耶. ...
zoolander 發表於 11-12-9 02:45 PM http://www.coco-in.net/images/common/back.gif
沒錯,沒來要在這裡拉個團購,但是等不及就買了。24個月的升級不賴。

tomasz的確文件寫的就是給已經懂的人看的。。。
更經典的是,常在forum上和客戶打筆戰,成熟度有待加強。是個典型的programmer.

kilroy 發表於 11-12-9 17:45

沒錯,沒來要在這裡拉個團購,但是等不及就買了。24個月的升級不賴。

tomasz的確文件寫的就是給已經懂的 ...
balance 發表於 11-12-9 03:48 PM http://www.coco-in.net/images/common/back.gif


   Balance 大大 跟 GnuHomot 大大可以成為好朋友
因為都研究AB非常透徹 {:4_113:}

GnuHomot 發表於 11-12-9 17:48

我倒覺得還好,官方文件可以寫到這麼多頁已經很有誠意了。
升級方面AB也蠻有誠意的,現在推出的5.50BETA版2009年9月後買的人都還可以升級,揪感心~~

kilroy 發表於 11-12-9 17:48

我倒覺得還好,官方文件可以寫到這麼多頁已經很有誠意了。
升級方面AB也蠻有誠意的,現在推出的5.50BETA版2 ...
GnuHomot 發表於 11-12-9 05:48 PM http://www.coco-in.net/images/common/back.gif

期待大大的分享~
頁: [1] 2
查看完整版本: Amibroker 學習過程分享