您现在的位置: 比特财富网 >> 财经 >  >> 外匯
通過快速理解MQL5的變量來深度理解MT5 EA的編寫和使用
外_匯_邦 WaiHuiBang.com

  這段時間總會有人問我,外匯EA到底怎麼運用,特別是外匯EA的外部參數到底代表什麼意思。www.emoneybtc.com說實話,僅僅去看變量的名字,你還真沒有辦法確認外匯EA的外部參數到底是什麼意思,因為不同的策略開發人員有相同的定義習慣,假如僅僅從變量名去確認變量的用法,那麼很多時候就會出問題。

  那麼怎麼去確定變量的運用?最直接的方式就是需要找到變量名在函數中的調用的位置,這個才是真正的理解與確定。

  當然,我們這裡講解變量,那就不得不說變量的定義,這裡先引用官方的定義吧。

  可變量必須在聲明之前使用。可變量必須擁有特殊的辨認名。相關可變量的定義描述會顯示。

  基本類型如下:

  ● 字符型,短整型,整型,長整型,無符號字符型,無符號短整型,無字符整型,無符號長整型-整數;

  ● 顏色-代表RGB-顏色的整數;

  ● 日期時間-日期和時間,自1970年1月1日起無符號整數包括秒數;

  ● 布爾數據-布爾值的true和 false;

  ● 雙精度數字-帶有浮點的雙精度數字;

  ● 浮點型-帶有浮點的單精度數字;

  ● 字串符數據-特殊字符串。

  其實看了這官方的解釋,好像意義不大,除非你有一定的基礎,那麼我們就舉個例子來說明吧。我們這裡以MT5自帶的一個交易策略MQL5\Experts\Examples\Moving Average 為例來進行講解。

  我們首先加載Moving Averages.mq5這個交易策略,我們打開導航器,在EA交易裡面找到Moving Averages交易策略。

  雙擊該交易策略,就會出現下面的對話框:

怎麼通過快速理解變量 來深度理解EA和運用EA

  我們如果通過編譯器打開 Moving Averages.mq5文件,我們可以看到一行一行的源代碼,首先我們可以看到下面的變量如下:

  input double MaximumRisk= 0.02; // Maximum Risk in percentage

  input double DecreaseFactor = 3; // Descrease factor

  input int MovingPeriod = 12; // Moving Average period

  input int MovingShift = 6; // Moving Average shift

  如果我們用這幾行代碼與對話框輸入變量來比較,我們很快發現對話框的輸入變量卻是我們代碼定義的變量的就是,也就是“//”後面的解釋,這與老版MQL4是完全不一樣的。所以,我們如果僅僅通過對話框輸入變量來推導外部變量的具體運用,那就會變得極其不可理解。

  那麼再回歸到源代碼,我們發下,凡是在對話框輸入的變量前,都會有一個input ,在這裡我們可以確認input 代表的外部輸入變量,也就是可以通過外部輸入來改變的。那麼這個外部輸入變量,如果我們在調用的過程當中,原始的賦值會不會改變呢?比如說我們MaximumRisk= 0.02;這個值能不能進行在主文件裡面進行重新賦值呢?那麼我們這裡可以通過打印來進行檢驗。比如:我們可以在主題函數

  void OnTick(void)

  {

  //---

  if(SelectPosition())

  CheckForClose();

  else

  CheckForOpen();

  //---

  }

  裡面對MaximumRisk重新賦值看看,賦值如下

 

怎麼通過快速理解變量 來深度理解EA和運用EA

  而我們在編譯的時候,很快就會發現出現錯誤,說明這個外部變量已經不能重新賦值了。這個也檢驗了我們的初始推斷,外部輸入變量是不能在運行過程當中來再次修改其值的。

  當然,MQL5裡面不僅僅有外部輸入變量,還會有局部變量,局部變量又會有函數內部的局部變量,而函數內部的局部變量其他函數是不能調用的。

  因次,學習變量,也是你在使用EA之前最基本的內容,無論你會不會編寫EA,只要你運用EA,就需要真正的懂得變量的基礎知識,你才不會那麼盲目。

  在這裡我還是要強調一下,EA只是工具,絕不是我們說的聖杯。真正的聖杯,則是EA+正確的運用。

       作者:王廣利。

外_匯_邦 WaiHuiBang.com
  • 5G+雲游戲+區塊鏈,未來游戲不可或缺的基礎設施

    “我們假設5G+區塊鏈+雲游戲的模式下,一個游戲能運行10年,因為它不斷的提供內容,游戲道具在長達10年的時間內有效,它就具備了交易的可能

  • 車聯網+區塊鏈的價值想象

    據公安部統計數據顯示,截至2017年底,全國機動車保有量達3.10億輛,繼續保持快速增長態勢。汽車加上大數據,就有了車聯網的概念。車聯網概

  • 區塊鏈市場最新觀點、政策動態【5月20日】

    巴菲特辦公室外驚現廣告牌 被提醒不要錯判比特幣近日,巴菲特辦公室門外出現了一個大型廣告牌,上面寫道:你說過自己曾錯判了谷歌和亞馬遜,或許你

  • 什麼是去中心化身份?

    通過運用區塊鏈技術的不可篡改、哈希加密的特性,去中心化身份可以定義為用於證明信息來源和有效性的一組密鑰。借助共識機制,這個基於區塊鏈建立的

  • 什麼是狀態通道?

    狀態通道指的是“鏈下”處理交易和其他操作的一種技術,其本質是通過在不同用戶之間或用戶和服務之間建立一個雙向通道,為不同實體之間提供狀態維

  風險提示:比特財富網的各種信息資料僅供參考,不構成任何投資建議,不對任何交易提供任何擔保,亦不構成任何邀約,不作為任何法律文件,投資人據此進行投資交易而產生的後果請自行承擔,本網站不承擔任何責任,理財有風險,投資需謹慎。
比特財富網 版權所有 © www.emoneybtc.com