最近又有點空閒,開始自修MT4的程式寫法

之前都想直接看別人寫好的EA,然後一行一行看

不過後來發現這樣效果有點差

因為根據這段時間的挫敗經驗,即使是最簡單的交易EA,對初學者來說架構都太大了 Orz

所以這禮拜改從比較簡單的腳本(Script)開始寫

果然一下就寫出好幾個可以用的腳本,比寫EA有成就感多了

所以我也推薦初學者先從腳本開始寫起

腳本的好處是程式碼比較少,執行後馬上可以看到輸出結果,所以對於各種函數的熟練也很方便

譬如最開始,想測試 printf() 跟Print() 的差別

就可以像下面的打法

 

上圖東西很多,但其實只在OnStart() 中輸入了:

   printf("Point = %.6f",Point);
   Print("Point = ",Point);

其他都是MetaEditor自行產生的,其中Point 是MT4內建的函數,可以取得當前貨幣的最小報價點數(詳細內容可以參考內建的說明檔)

compile後執行,就可以在MT4的EA交易頁面看到輸出結果,如下圖,第3、4行就是輸出結果,第3行是printf的結果,第4行是Print的結果:

順帶一提,printf是原本C語言就有的輸出函式,可以控制的項目比較多,但也比較複雜

譬如這裡我打了%.6f,就代表輸出到小數點後第6位,所以會顯示0.000010,其他用法請參C語言

而Print我猜應該是MT4自己寫的輸出函式,用法相對比較容易

用Print想把多個字串串起來的話,就用","或"+"把不同字串隔開就好了

像下面這樣:

輸出結果就會像下面(3、4行),可以看到輸出結果是一樣的

不過用"+"就會出現型別不清的警告,看來還是用","分開比較好

===

不過使用腳本也有一些限制

譬如假日的時候,經紀商的伺服器沒開機,你要測一些函數就不能測

譬如下單、刪單等要跟對方主機請求的動作,這時候就沒戲唱了....ZZZZ

只能去做別的事,例如:看別人寫的程式碼(好宅?)

 

arrow
arrow

    迷途工程師 發表在 痞客邦 留言(1) 人氣()