外_匯_邦 WaiHuiBang.com
MT4指標編程入門:MT4的報警
報警功能是MT4的一大特色。www.emoneybtc.com它可以在預定的條件達到時,發出警報。
與指標畫線相比,報警語句顯得非常簡單,
只要在判斷語句中加一個報警語句即可
報警方式有:彈出窗口報警、音樂報警、郵件報警等。
如果郵箱開通了手機短信通知,則郵件報警的內容會即時轉發到手機上。
彈出窗口報警:
當(條件達到)執行此語句時,以彈出窗口警告。
格式:Alert(內容1,內容2,內容3,內容4);
報警內容為字符串型,內容之間加逗號
例如:
Alert(Symbol(),"4小時圖MACD上穿零軸");
音樂報警:
當(條件達到)執行此語句時,播放一段音樂。
格式:PlaySound("音樂文件名.wav");
文件類型為wav格式,並且保存在C:/ProgramFiles/MetaTrader4/sounds目錄中
文件名加引號
郵件報警:
當(條件達到)執行此語句時,發送一個郵件。
(收發件人地址在MT4系統中設置詳見《MT4編程實例1:一個簡單的小程序,讓你的手機搖身變成外匯行情接收機》)
格式:SendMail(標題1+標題2,內容1+內容2);
標題之間以加號連接,內容之間也以加號連接
郵件標題和郵件內容以逗號間隔
下面是《價格穿越某均線報警》舉例
+---------------------------------
#propertyindicator_chart_window
externint警戒均線=20;
intmark=0;
intstart()
{
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);
}
+---------------------------------
部分語句說明:
#propertyindicator_chart_window
此句是把程序放在主圖,當然這此例中放在副圖也一樣
externint定義一個外部參數變量,整數型,允許外部值修改
int定義一個整數型變量
intstart()定義觸發函數
if()判斷
iHigh()最高價值函數
iLow()最低價值函數
iMA()移動平均線值函數
Alert()報警函數
Symbol()商品名稱函數
&&邏輯運算符“並且”
!=邏輯運算符“不等於”
MODE_SMA簡單移動平均模式
PRICE_CLOSE以收盤價計算
再說一下自定義變量mark的作用:
mark的初值是0,當上穿報警時給mark賦值1,當下穿報警時給mark賦值2。
這樣當mark的值為1時,說明已經對上穿報過警了,就不能再次對上穿報警;
當mark的值為2時,說明已經對下穿報過警了,就不能再次對下穿報警。
這樣就起到了消除重復報警的作用。
外_匯_邦 WaiHuiBang.com