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

2020-12-16 和訊外匯

  本文首發於微信公眾號:MQL5策略編程技術服務,文/王廣利。文章內容屬作者個人觀點,不代表和訊網立場。投資者據此操作,風險請自擔。

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

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

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

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

  基本類型如下:

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

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

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

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

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

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

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

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

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


  然後雙擊,就會出現下面的對話框:


  我們如果通過編譯器打開 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重新賦值看看,賦值如下


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

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

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

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

(責任編輯:何美鈴 HF117)

相關焦點

  • 自然拼讀元音詞組ea多種發音,怎麼判讀?有什麼方法改善
    有朋友問,dead 和 beat中的ea發音不同,自然拼讀怎麼判別呢?其實呢這是很多同學在學習自然拼讀過程遇到的一個常見問題。自然拼讀規律理解差不多了,但是呢看到元音詞組還是容易讀錯,覺得很丟臉,從而覺得自然拼讀不是那麼的實用。
  • Judy朗讀ea的發音
    拼讀法規則:ea的常規發音為 [iː] ,有時候發[e] ,極少數情況下發[eɪ]。
  • 字母組合ea居然有這麼多種發音
    ea發/ɪə/的音:1. idea /aɪ'dɪə/ n.想法,主意 2. ideal /aɪ'dɪəl/ adj.理想的;完美的3. hearing /'hɪərɪŋ/ n.聽力4. theater /'θɪətə/ n.戲院,劇場5. really /'rɪəlɪ/ adv.實際上,事實上6. realize
  • 源野:元音詞組ea發音不同,自然拼讀怎麼判別呢?
    今天朋友問,dead 和 beat中的ea發音不同,自然拼讀怎麼判別呢?其實呢這是很多同學在學習自然拼讀過程遇到的一個常見問題。自然拼讀規律理解差不多了,但是呢看到元音詞組還是容易讀錯,覺得很丟臉,從而覺得自然拼讀不是那麼的實用。
  • 字母組合ea的發音及單詞拼讀
    畢竟字母是磚,要想砌牆建房子,首先我們就需要大量的磚來牆固。廢話不多說,我們開始進入正題。大家都知道我們學英語的時候老師都有講過元音和輔音對吧,那么元音有五個,a, e , i, o, u.在英語自然拼讀中,我們學習單詞拼讀都是從元音的組合發音開始,有長元音和短元音,今天我們就來學習長元音E的字母組合ea的發音及單詞拼讀。上面這個視頻就是字母組合ea的發音及單詞拼讀的教學視頻,我們是不是覺得其實很簡單呢?
  • 順口溜記單詞——《音聯速記小學英語單詞》ea發/i:/
    hello,大家好,我是易圖記-聲力英語的loridic,今天分享《音聯速記小學英語單詞》ea發/i:/的一組單詞。首先看看啥是音聯速記法:圖片來自《音聯速記小學英語單詞》用單詞的發音,去聯想記憶單詞的拼寫和意思的方法,就是音聯速記法。
  • ee ea字母組合的發音講解
    那麼在ee,ea裡面,都是元音字母,這樣的情況下,我們有一條規則叫做:兩個元音字母走在一起,我們發第一個元音字母的字母音,第二個字母不發音。當然自然拼讀的規則不是100%那麼絕對的,總有一些特殊的情況,特殊的情況我們特殊記憶就可以了。ee,ea的字母發音就很符合我們上面講到的這條規則:所以我們讀e的字母音。
  • 元音字母發音總結(ea組合篇)
    前面的兩回,我們談到了oa組合以及ou組合的發音規律,今天我們來看看ea組合的發音總結。treasure   [treʒə]   v.珍惜  n.財富,財寶I shall always treasure the memory of our meetings.我將會永遠記住相聚的情景。
  • 用思維導圖音聯速記ea發/i:/的初中單詞 - 聲力英語講單詞
    音聯速記法方法回顧:音聯速記法,就是通過音去聯想記憶單詞的型和意的一種背單詞方法。為了背單詞的效果更好,我們一般先對單詞用思維導圖進行整理,以便串記,比如《音聯速記初中單詞》課程中的ea發/i:/的單詞組:這些單詞當中,ea都是發/i:/的,用思維導圖歸納在一起,很容易進行聯想記憶,比如:1、呼吸(breathe)使我們平靜
  • EA Desktop App正式公布 橘子玩家都可註冊
    註冊地址:https://www.ea.com/zh-tw/ea-desktop-beta?isLocalized=true&setLocale="zh"-tw官方介紹:我們希望您獲得最好的 PC 遊戲體驗,包括更快的下載和更新、更輕鬆存取遊戲,以及能跨平臺與好友互動。
  • 怎麼理解php中的變量?php變量命名注意什麼?
    怎麼理解php中的變量?程序中的變量源於數學,在程序語言中能夠儲存結果或者表示抽象概念。簡單理解變量是臨時存儲值的容器,它可以儲存數字、文本、和一些複雜的數據(比如說字符串、複雜的排列組合等),變量在php語言中居於核心地位,是使用php的關鍵所在,變量的值在程序運行中會隨時發生變化,能夠把程序中準備使用的一段數據起一個簡短容易記得名字,另外它還可以保存用戶輸入數據和特點運算的結果,總結變量是變量是用於跟蹤幾乎所有類型信息的簡單工具。
  • 自然拼讀發音規則 ea組合發單元音詞彙表
    最常見的ea字母組合會髮長元音,類似teacher這樣的單詞,不過在英語中,還有相當數量的詞彙,其中的ea字母組合是發短元音的,例如head bread等等。下面的詞彙列舉了常見的ea字母組合發短元音的例子。
  • 運用深度學習教機器人理解自然語言
    他主要研究機器學習和人工智慧如何使用在文本和知識中讓計算機變得更智能。他在德克薩斯農工大學獲得心理學學士學位和工商管理碩士,在德克薩斯大學獲得計算機博士學位。譯者/趙屹華 審校/劉帝偉、朱正貴 責編/周建丁。在深度學習出現之前,文字所包含的意思是通過人為設計的符號和結構傳達給計算機的。
  • 深度| 理解深度學習中的卷積
    網絡上已經有不少博客講解卷積和深度學習中的卷積,但我發現它們都一上來就加入了太多不必要的數學細節,艱深晦澀,不利於理解主旨。這篇博客雖然也有很多數學細節,但我會以可視化的方式一步步展示它們,確保每個人都可以理解。文章第一部分旨在幫助讀者理解卷積的概念和深度學習中的卷積網絡。第二部分引入了一些高級的概念,旨在幫助深度學習方向的研究者和高級玩家進一步加深對卷積的理解。
  • 什麼是深度學習? - 45分鐘理解深度神經網絡和深度學習
    在筆者所從事的計算機圖形學領域,也出現了越來越多的使用深度學習方法來解決各種問題的研究工作。2018年7月初,筆者首次在第七屆中國科學技術大學《計算機圖形學前沿》暑期課程上講授和分享了筆者從數學(函數逼近論)的角度來對基於深度神經網絡(Deep Neural Network, DNN)的深度學習的進行理解。之後,不斷有學生來向筆者進一步詢問和交流有關資料和問題。
  • 如何理解mantel檢驗-就知道矩陣和單列變量數據的相關
    > 寫在前面在微生物生態學領域,經常用的mantel檢驗,原理來講,很是簡單,就是一個距離矩陣的相關分析而已,但是這層窗戶紙似乎存在很長時間,大家都對這個分析的原理有些忌憚,所以今天就之前的文檔,來告訴大家如何理解
  • EA「Pogo快樂星期五」大四喜紙牌奪寶
    結合了玩家熟悉的接龍遊戲和冒險遊戲的特質,你的冒險將從金字塔展開。為了掃除冒險途中的障礙,你需要點擊金字塔形的牌中與下方基準牌大小相連的牌(大「1」或者小「1」都行),立即清除一張牌。當你掃清完界面中所有的紙牌,你所扮演的冒險家湯魯·克姆斯就會順利地通過一關,得到寶箱中的遊戲幣或是萬能牌!萬能牌將幫助你在之後的冒險中順利掃除一次障礙。
  • 看完立刻理解GAN!初學者也沒關係
    本篇文章主要是讓初學者通過代碼了解 GAN 的結構和運作機制,對理論細節不做過多介紹。我們還是採用 MNIST 手寫數據集(不得不說這個數據集對於新手來說非常好用)來作為我們的訓練數據,我們將構建一個簡單的 GAN 來進行手寫數字圖像的生成。
  • 一文理解 Python 中的變量
    通過本文,你將了解到:1,Python 中的所有數據元素都可通過抽象的對象(object)來描述2,你將學會如何通過符號名稱(變量)來操作這些對象。【變量的賦值】我們可將變量視作附著在一個特定對象上的名稱。在 Python 中,變量不必提前聲明或定義。
  • 統計學中離散變量與連續變量 - CSDN
    接上一期的分享,今天繼續學習統計學的相關知識,今天涉及到的五個知識點主要包括離散型概率分布、連續型概率分布、假設檢驗、假設檢驗的運用(一類錯誤與二類錯誤)以及相關、因果以及回歸關係。樓主整理了網友們分享的知識並加上自己的一些理解,匯集成這篇文章,歡迎大家批評指正,所有的引用在文中已經標出並附上了作者和連結,也歡迎大家查閱原文。