您现在的位置: 比特财富网 >> 财经 >  >> 外匯
MT4指標編程入門(十一):MT4的報警
外_匯_邦 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
  風險提示:比特財富網的各種信息資料僅供參考,不構成任何投資建議,不對任何交易提供任何擔保,亦不構成任何邀約,不作為任何法律文件,投資人據此進行投資交易而產生的後果請自行承擔,本網站不承擔任何責任,理財有風險,投資需謹慎。
比特財富網 版權所有 © www.emoneybtc.com