pricealert_v2

Author: EarnForex.com
Miscellaneous
It issuies visual alerts to the screenIt plays sound alertsIt sends emails
0 Views
0 Downloads
0 Favorites
pricealert_v2
//+------------------------------------------------------------------+
//|                                                   PriceAlert.mq4 |
//|                         Copyright © 2009-2011, www.earnforex.com |
//|           Issues sound alerts when price reaches certain levels. |
//|             			modded by Mn ------------------------    |
//+------------------------------------------------------------------+
#property copyright "EarnForex.com"
#property link      "http://www.earnforex.com"

#property indicator_chart_window

extern double SoundWhenPriceGoesAbove = 0;
extern double SoundWhenPriceGoesBelow = 0;
extern double SoundWhenPriceIsExactly = 0;
extern bool SendEmail=false; //If true e-mail is sent to the e-mail address set in your MT4. E-mail SMTP Server settings should also be configured in your MT4
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   if(SoundWhenPriceIsExactly>0)
     {
      ObjectCreate("SoundWhenPriceIsExactly",OBJ_HLINE,0,Time[0],SoundWhenPriceIsExactly);
      ObjectSet("SoundWhenPriceIsExactly",OBJPROP_STYLE,STYLE_SOLID);
      ObjectSet("SoundWhenPriceIsExactly",OBJPROP_COLOR,Yellow);
      ObjectSet("SoundWhenPriceIsExactly",OBJPROP_WIDTH,1);
     }
   if(SoundWhenPriceGoesAbove>0)
     {
      ObjectCreate("SoundWhenPriceGoesAbove",OBJ_HLINE,0,Time[0],SoundWhenPriceGoesAbove);
      ObjectSet("SoundWhenPriceGoesAbove",OBJPROP_STYLE,STYLE_SOLID);
      ObjectSet("SoundWhenPriceGoesAbove",OBJPROP_COLOR,Green);
      ObjectSet("SoundWhenPriceGoesAbove",OBJPROP_WIDTH,1);
     }
   if(SoundWhenPriceGoesBelow>0)
     {
      ObjectCreate("SoundWhenPriceGoesBelow",OBJ_HLINE,0,Time[0],SoundWhenPriceGoesBelow);
      ObjectSet("SoundWhenPriceGoesBelow",OBJPROP_STYLE,STYLE_SOLID);
      ObjectSet("SoundWhenPriceGoesBelow",OBJPROP_COLOR,Red);
      ObjectSet("SoundWhenPriceGoesBelow",OBJPROP_WIDTH,1);
     }
   return(0);
  }
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   ObjectDelete("SoundWhenPriceIsExactly");
   ObjectDelete("SoundWhenPriceGoesAbove");
   ObjectDelete("SoundWhenPriceGoesBelow");
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
// added by Mn -----------------------------------------------------------
   if(ObjectGet("SoundWhenPriceGoesAbove",1)!=SoundWhenPriceGoesAbove)
      SoundWhenPriceGoesAbove=ObjectGet("SoundWhenPriceGoesAbove",1);
   if(ObjectGet("SoundWhenPriceGoesBelow",1)!=SoundWhenPriceGoesBelow)
      SoundWhenPriceGoesBelow=ObjectGet("SoundWhenPriceGoesBelow",1);
   if(ObjectGet("SoundWhenPriceIsExactly",1)!=SoundWhenPriceIsExactly)
      SoundWhenPriceIsExactly=ObjectGet("SoundWhenPriceIsExactly",1);
// added by Mn -----------------------------------------------------------

   if((Ask>SoundWhenPriceGoesAbove) && (SoundWhenPriceGoesAbove>0))
     {
      Alert("Price above the alert level.");
      PlaySound("alert.wav");
      SendMail("Price for "+Symbol()+" above the alert level "+Ask,"Price for "+Symbol()+" reached "+Ask+" level, which is above your alert level of "+SoundWhenPriceGoesAbove);
      ObjectDelete("SoundWhenPriceGoesAbove");
      SoundWhenPriceGoesAbove=0;
     }
   if((Bid<SoundWhenPriceGoesBelow) && (SoundWhenPriceGoesBelow>0))
     {
      Alert("Price below the alert level.");
      PlaySound("alert.wav");
      SendMail("Price for "+Symbol()+" below the alert level "+Bid,"Price for "+Symbol()+" reached "+Bid+" level, which is below your alert level of "+SoundWhenPriceGoesBelow);
      ObjectDelete("SoundWhenPriceGoesBelow");
      SoundWhenPriceGoesBelow=0;
     }
   if((Bid==SoundWhenPriceIsExactly) || (Ask==SoundWhenPriceIsExactly))
     {
      Alert("Price is exactly at the alert level.");
      PlaySound("alert.wav");
      SendMail("Price for "+Symbol()+" exactly at the alert level "+Ask,"Price for "+Symbol()+" reached "+Ask+"/"+Bid+" level, which is exactly your alert level of "+SoundWhenPriceIsExactly);
      ObjectDelete("SoundWhenPriceIsExactly");
      SoundWhenPriceIsExactly=0;
     }
   return(0);
  }
//+------------------------------------------------------------------+

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---