事情是這樣的,前一陣子,小弟開始學如何使用amibroker,
那時候就在想,如果AB好用的話,一定要讓AB可以自動下單,
不要再用人工操作了,在用了一陣子的AB之後發現真的很好用,
而由於不太會寫程式,所以只有想到用AB輸出策略檔,
讓下單大師接收,就可以達成自動下單的功能,後來又想,
下單大師為什麼不支援AB,可能是因為AB在台的知名度不高,
而下單大師的作者本身也沒有在用,所以才不支援,
也許請下單大師的作者寫一下就可以有這個功能了,
於是和下單大師的作者聯絡,並依其要求找ADK給他,
結果他很有效率在一天內就完成了下單大師的部份,
再來就是AFL的部份,小弟想了好幾天,但因為才剛學寫程式,
所以也寫不太出來,因此想請站上的各位大大幫忙,
幫忙寫一下AFL的程式碼,讓AB可以用下單大師自動下單。
寫程式所需資料如下:
// 先看一下操作手冊中「萬用 API」的說明。
// 第一步,請先「註冊」萬用 API 元件
// 執行下單大師目錄下的「RegOMCOM.bat」註冊元件 (不是 RegOMCOM.exe 喔,小心不要弄錯)
// 若要取消註冊,請執行「UnRegOMCOM.bat」
// 然後回到 Amibroker 裡面,在 AFL 中加入下列的語法
// 1.建立萬用API物件
OMComAPI = CreateStaticObject("OMSignAPI.OMCOMAPI");
// 2.初始化倉位,下單前每天第一次呼叫,設定目前總倉位,如果沒有這種語法,就略過
// 以下是設定識別碼 "FTX" 的總倉位為 0 ,例如當沖每天開盤前會設倉位 = 0
OMComAPI.IniDllAndPosition("FTX", 0);
// 3.下單,放在要下單的地方,一呼叫到這一行,就馬上下單出去了喔
// "FTX" 自訂識別碼,要跟下單大師「策略管理」的設定相對應
// NowDateTime:下單 K 線時間,如「2010/10/22 09:25」
// NowPosition:下單倉位,如:-2
// NowClose:目前 K 線收盤價:如 8320
// 直接打數值會變成這樣
// OMComAPI.GoOrder("FTX","","2010/10/22 09:25:30", -2, 8320);
OMComAPI.GoOrder("FTX","", NowDateTime,NowPosition,NowClose);
還有,要下單大師的作者有提到下面這一段,
時間,最好用 K 線時間,若用現在時間要注意,
當重開 AB 的時後,若他重頭到尾 k 線會跑一遍,記得下單大師要停止下單,
否則「過去的歷史訊號,會全部一次在「現在」下單喔 ~」
所謂的k線時間不知道要怎麼寫,麻煩知道的人跟小弟說一聲,謝謝 |