如題。
MultiCharts如何與"下單大師"結合?
variables:nowposition(0),signDTStr(""); DefineDLLFunc: "C:\Program Files\OrderMaster\OMSignAPI.dll",bool,"IniDllAndPosition",LPSTR,int; DefineDLLFunc: "C:\Program Files\OrderMaster\OMSignAPI.dll",bool,"GoOrder",LPSTR,LPSTR,LPSTR,int,double; {取得倉位:若沒有初始化倉位,會回傳 99999} DefineDLLFunc: "C:\Program Files\OrderMaster\OMSignAPI.dll",int,"GetNowPosition",LPSTR;
if date<>date[1] then begin IniDllAndPosition("TXF", 0); end;
buy{買策略} buy..... nowposition = 1; sellshort{賣策略} sellshort ...... nowposition = -1; exit{出場策略} sell...... or buytocover .... nowposition = 0; {call api} if nowPosition = 1 then begin signDTStr = numtostr(year(date)+1900,0) +"/" + numtostr(month(date),0) + "/" + numtostr(dayofmonth(date),0) + " " + numtostr(time,0) + "00"; GoOrder("TXF", "", signDTStr , nowPosition, Close); end;
if nowPosition = 0 then begin signDTStr = numtostr(year(date)+1900,0) +"/" + numtostr(month(date),0) + "/" + numtostr(dayofmonth(date),0) + " " + numtostr(time,0) + "00"; GoOrder("TXF", "", signDTStr , nowPosition, Close); end;
if nowPosition = -1 then begin signDTStr = numtostr(year(date)+1900,0) +"/" + numtostr(month(date),0) + "/" + numtostr(dayofmonth(date),0) + " " + numtostr(time,0) + "00"; GoOrder("TXF", "", signDTStr , nowPosition, Close); end;
以上是從下單大師網站上找來的,還蠻清楚的~
你可以嘗試看看喔~不過畢竟不是原廠的東西~穩定性要自行評估喔...^^
下單大師官網的用法,會有慢根的問題,請參考以下方案吧
http://www.multicharts.com.tw/dis/dis_Content.aspx?rd=1&D_ID=2&SN=1785
這是我的方案,我想這可能會是最簡單且模組化的了
http://www.yctseng.net/2011/12/multicharts.html
不需要更動你的交易策略,不必特意去設IOG模式,都不用。
阿政果然是個好人~(發卡..)..XD
嗯,我那篇分享算是早期丟出來的,寫了訊號及指標二種用法
後來發現,大多數人搞不太清楚訊號要用模組化的模式使用
所以,還是指標模式比較簡單,大家比較不會搞錯
但訊號模式的好處是可用資源比較多,只是產生訊號文字檔用不到那麼多資源
除非是要使用限價功能或是自製特殊下單機,可能才會需要那些資源
感恩!
謝謝大家!
感謝阿政大的分享,模組化的指標真的很受用呢!
個人也是被萬用API搞的七葷八素的,在淩波微步大的指導下,才改用文字檔 + 下單大師。
有些問題想請教大大們:
1) 文字檔輸出 (於Ramdisk讀取,每秒100次) 和萬用API,在下單速度上真的有差這麼多嗎?
2) 使用阿政大的方式,若於MC圖表中有一個以上的策略,且要在下單大師內分開下單,那 i_marketposition * i_currentcontracts (總倉位方式)就行不通了。不知高手們有什麼其它的建議方式嗎?
再請教一個問題,同一指標內,在DefineDLLFunc後,可以使用多個GoOrder嗎? 例如:
GoOrder("Strategy1",.....)
GoOrder("Strategy2",.....)
GoOrder("Strategy3",.....)
感恩~
<==沒真正實測,不過個人認為會有差,但差異不會大到驚人..(也就是不會差到一秒這種程度..)
<==就算今天不是用下單大師!在MC原本的下單機也是這種控制法呀!一個圖表只有一個下單權限...
再請教一個問題,同一指標內,在DefineDLLFunc後,可以使用多個GoOrder嗎?
<==這問題要去問寫dll的人喔!XD
不過個人不負責任猜想是不行的...沒真正使用過不能給很肯定答案..XD
我已建立一個新指標,編譯也沒有出現錯誤訊息,但要把該指標打開時,卻出現找不到OMsignapi.DLL的錯誤訊息,拜託高手出手相救了
程式碼如下:(下單大師的安裝路徑似乎已經改了,我在硬碟中找半天,似乎只有C:\ordermaster\autoorder底下有這些檔案,指向它還是一樣找不到哩)
如果我沒有猜錯,您是使用MC8 x64的版本吧?使用x64的版本,所有外掛的.dll也要是x64的版本。
不過下單大師似乎沒有把萬用API的.dll檔更新成x64的,所以呼叫萬用API dll時變會出現此訊息。
我也是因為此問題,在使用MC8 x64時,不得已改用文字檔輸出至下單大師下單。
在電腦規格大幅演進下,使用RAMDISK讀取文字檔,跟使用萬用API,感覺似乎沒有差很多。
您可以試試看。
我做過下單大師萬用API與用文字檔on ramdisk的測試,同一個策略訊號,分別用萬用API與文字檔,分別下單到不同的期貨商。
因為訊號發生到成交會有不少環節影響,直接比較下單大師檢測到訊號變化的時間即可:當文字檔在 RAMDISK 上運作時,萬用API沒有特別的優勢,我常常看到文字檔的還快一些,本來我以為萬用API應該要比較快的,其實...沒有。只能說是一半一半吧。
原來如此,真是一語驚醒夢中人阿