【方法一】在指標語法內寫「Alert」,再到MC圖表那邊進行指標警示設定: 我們直接以一個長短均線交叉為例,程式碼如下: =============================================== Inputs:Len1(5),Len2(20); Vars:MA1(0),MA2(0); MA1=XAverage(close,Len1); MA2=XAverage(close,Len2); plot1(MA1); plot2(MA2); if MA1 cross over MA2 then Alert; =============================================== 設定產生「Alert」的條件,接著把上面指標放到MultiCharts圖表上,設定該指標「警示」功能,如下圖所示,至於音效檔為WAV格式,有需要其他不同音效也可以自行上網搜尋下載:
【方法二】使用PlaySound語法: 承上例,我們把alert改成PlaySound: if MA1 cross over MA2 then PlaySound("C:\ding.wav"); "C:\ding.wav"為音訊檔存放位置,這個寫法適用指標類及訊號類,也不用另外去設定警示功能。
二、Gmail警示通知
延續上例,我們希望當均線交叉時發Mail通知,程式語法同上,我們希望通知內容可以完整詳細一點,可以在Alert後面使用Text函式補充,例如: if MA1 cross over MA2 then Alert(Text("Cross over", GetSymbolname); 其中Text函式可以放補充資訊,會在通知郵件中顯示。 完成程式碼後,把指標放到圖表中,一樣到設定指標去設定警示(Alert),如下圖所示:
短評: 書原名是:「The Universal Principles of Successful Trading: Essential Knowledge for All Traders in All Market」,寫作精神如其名,是一本設計給有心從事交易事業的教科書,從交易系統設計、交易實務、資金管理到交易心理的議題都有觸及,但講通則為主,新手適合。
Random(N)函式會隨機回傳0~N間任一值,如果有天異想天開想寫一個隨機進場的策略,可以派上用場,簡單舉例如下: ========================================= Inputs: Bias(0.5); Var:Trigger(0),Signal(0); trigger =random(1); if trigger < bias then signal=-1; if trigger >1 - bias then signal=1; { Random Entry} If signal =1 then Buy next bar at open; If signal =-1 then Sellshort next bar at open; ========================================= Random(1)會隨機回傳0~1間任一值,我們用messagelog看看實際回傳的亂數值會呈現如下: 0.74 0.14 0.35 0.66 0.82 0.73 0.28 0.94 0.05 0.78 0.95 0.37 0.82 0.15 0.09 0.22 0.39 接著在程式碼中我們設定一個參數Bias並預設為0.5,當回傳值>0.5就做多,反之做空,換言之就是多或空是很公平(各50%)的隨機決定出,如果你認為行情比較偏多,Bias可以設為0.3,等同於隨機前提下做多機率70%來決定多空。 如果是想取得0~100任一隨機整數,則可以加上Round()函式,如下: Round(Random(100),0) 當然Random函式還有很多用法,特別是想驗證一些想法或是a跑模擬統計(例如蒙地卡羅模擬)時都可以派上用場。
短評: 這是一本介紹如何建構計量交易事業的書,從基礎觀念、歷史資料、策略開發創意來源、回測以及實務問題綱要式介紹(副標是How to build your own algorithmic trading business,正如其名),也提供一些策略的程式碼,可說是務實地且提綱挈領地介紹計量交易的一本書。