可能是我不會使用,覺得MC 的 print 與 filedelete 與 fileappend 常常有檔案沒關閉導致無法被下個指令使用的問題,
因此乾脆自己寫個開了就關,檔案隨開隨關的dll,這樣能即時讀寫
下載地址:
http://sino-tibet.com/software/MCIO.dll
調用的函數:
http://sino-tibet.com/software/MCIO.pla
函數有兩個,
讀取是:AnSimpleRead ( 檔案名稱 , 開始字元 , 長度 , 回傳值 ) ;
寫入是:AnSimpleWrite ( 檔案名稱 , 寫入字串 ) ;
範例:
variables: var0("c:\test.txt"), var1(""); var: nnn(0);
once AnSimpleWrite(var0,"i love you!"); once nnn=AnSimpleRead(var0,0,999,var1); print(var1);
增加一個用於64位元的dll
http://sino-tibet.com/software/MCIOx64/MCIO.dll
使用時必須 注意讀寫文件所在資料夾的存取權限,否則會造成mc的崩潰。
請問一下
你的 DLL 是用C++ 還是 .NET 寫的?
感謝分享!
我是用C++寫的。
阿政兄,
我有買你的書「期貨程式交易sop」,是你的讀者,裡面有幾個內容我很受用。
謝謝分享~ 這應該是目前第一個分享x64的讀寫dll 讚
有x64版的...讚喔!
謝謝前輩們的支持與鼓勵,還有客服一號的支持!
使得我獲得了加入精華區的「聖杯」。
調用函數已經做了更正,因為用到了once導致沒有即時更新資料,現在把once消除了。已下載的請重新下載。
//以下為一個調用外部檔案字串的範例指標
var: myint(0); var:myword("");
value1=AnSimpleRead("J:\IO.txt",0,99,myword); //讀取字串(必須先有檔案存在,不然會崩潰) if myword = "" then begin myword = "-1000"; //如果字串為空,預設為-1000 value1=AnSimpleWrite("J:\IO.txt",myword); //把預設字串寫入檔案中 end; myint = StrToNum(myword); //字串轉為數值 myint = myint + 1; //將數值加1,方便觀察變化 print(date:7:0," ",time:5:0," ",myint); //印出結果 myword = NumToStr(myint,0); //數值轉為字串,消除小數點 value1=AnSimpleWrite("J:\IO.txt",myword); //儲存字串
Bug 回報。
我使用的是 x64 版本。
當要讀取的文字檔僅有整數時會出現這樣的狀況。
如果要被讀取的文字檔內,含有小數點就OK了。
這大概是小數以下太多位被MC給做掉了。
使用 bodrigs 大提供的範例指標,也有相同的狀況。
是否,如果我只想單獨用來"讀取"的話,才會出現 Bug ?
我再次測試了在64位元下的使用情況,
可是無論是有無小數點,回報都是正常的,
對照了一下你的程式碼與我的程式碼,
也沒有什麼不同,除了dll的位置有差別以外,
所以,我想是不是你下載的mcio.dll是舊的?
請比較一下版本,如果不一樣,請再重新下載看看:http://sino-tibet.com/software/MCIOx64/MCIO.dll
除了 MCIO.dll 的存放路徑不同外,我還改了檔案名稱,不知這是否會造成問題?
我再重新下載一次您剛剛提供的連結,似乎還是一樣的狀況。
事實上,當這個mcio.dll做好之後,我也將他用在MetaTrader 4中,
用了很久在讀寫上都沒問題,
所以我覺得這個dll應該沒問題。
知道問題了
在調用函數中,
DEFINEDLLFUNC:"MCIO.dll",lpstr,"ANREAD",lpstr,int; var0="";//這個不加就會變成你的結果,你試試看 for value1 = Start to Length -1 begin var1=ANREAD(FileName,Value1); if var1 = "" then break else var0 = var0 + var1; end;
我想不是小數點的關係,而是在我的電腦上就只有純粹正整數才匯出狀況。
我已經用您這個 MCIO.dll 做了個實驗用的模組出來,讓我可不必採用 ADE 的方式,讓不同策略間互取資料,也能看到回測,實在很棒。感謝!
哈哈,真的!
把那一行加回去就行了,感謝,感謝!!
請問可以用在回測嗎? 大概的架構是怎麼實現的?
可以
請問bodrigs大是否願意提供新的分享連結
(因原本的連結已失效)
感謝!!
不知道阿政兄有沒有這個 Dll 的檔案可以分享出來,我也想試試看,感謝。
當時留下的存檔:點我。
您好,請問還有DLL檔案可以下載嗎? 我剛開始使用MC 想要每天讀取外部資料來畫水平線
正在研究當中