報警功能是MT4的一大特色。它可以在預定的條件達到時,發出警報。 與指標畫線相比,報警語句顯得非常簡單, 隻要在判斷語句中加一個報警語句即可 報警模式有:跳出視窗報警、音樂報警、信件報警等。 若果信箱開通了手機短信知會,則信件報警的內容會即時轉信到手機上。 1、跳出視窗報警: 當(條件達到)執行此語句時,以跳出視窗警示。 格式:Alert(內容1,內容2,內容3,內容4); 報警內容為字元串型,內容之間加逗號 例如: Alert( Symbol(),'4小時圖MACD上穿零軸'); 2、音樂報警: 當(條件達到)執行此語句時,播放一段音樂。 格式:PlaySound('音樂檔案名.wav'); 檔案類型為wav格式,並且儲存在C:\Program Files\MetaTrader4\sounds目錄中 檔案名加引號 3、信件報警: 當(條件達到)執行此語句時,傳送一個信件。 (收發件人位址在MT4係統中設定詳見《MT4寫程式案例1:一個簡單的小程式,讓你的手機搖身變成外匯行情接收機》) 格式:SendMail(標題1 標題2, 內容1 內容2); 標題之間以加號連線,內容之間也以加號連線 信件標題和信件內容以逗號間隔 下面是《價格穿越某均線報警》舉例 --------------------------------- #property indicator_chart_window extern int 警戒均線=20; int mark=0; int start() { if( iHigh(0,0,0) >= iMA(0,0,警戒均線,0,MODE_SMA,PRICE_CLOSE,0) && iHigh(0,0,1) < iMA(0,0,警戒均線,0,MODE_SMA,PRICE_CLOSE,1) && mark != 1 ) { Alert(Symbol(),'向上觸及30均線'); mark = 1; } if( iLow(0,0,0) <= iMA(0,0,警戒均線,0,MODE_SMA,PRICE_CLOSE,0) && iLow(0,0,1) > iMA(0,0,警戒均線,0,MODE_SMA,PRICE_CLOSE,1) && mark != 2 ) { Alert(Symbol(),'向下觸及',警戒均線,'均線'); mark = 2; } return(0); } --------------------------------- 部分語句說明: #property indicator_chart_window 此句是把程式放在主圖,當然這此例中放在副圖也一樣 extern int 定義一個外部參數變量,整數型,容許外部值修改 int 定義一個整數型變量 int start() 定義觸發函數 if() 判斷 iHigh() 最高價值函數 iLow() 最低價值函數 iMA() 搬移平均線值函數 Alert() 報警函數 Symbol() 商品名稱函數 && 邏輯運算符“並且” != 邏輯運算符“不等於” MODE_SMA 簡單搬移平均模式 PRICE_CLOSE 以收碟價計算 再說一下訂做變量mark的作用: mark的初值是0,當上穿報警時給mark賦值1,當下穿報警時給mark賦值2。 這樣當mark的值為1時,說明已經對上穿報過警了,就不能再次對上穿報警; 當mark的值為2時,說明已經對下穿報過警了,就不能再次對下穿報警。 這樣就起到了消除重複報警的作用。 |
|
来自: rogerliu57 > 《待分类》