bigbarsound

Author: Alexey Volchanskiy
Price Data Components
Miscellaneous
It plays sound alerts
1 Views
0 Downloads
0 Favorites
bigbarsound
//+------------------------------------------------------------------+
//|                                                  BigBarSound.mq5 |
//|                                               Alexey Volchanskiy |
//|                                         http://www.robo-forex.ru |
//+------------------------------------------------------------------+
#property copyright "Alexey Volchanskiy"
#property link      "http://www.robo-forex.ru"
#property version   "1.00"
#property strict
#property description "Indicator plays WavFile when bar size is lager of BarPoint value"
//---- îòðèñîâêà èíäèêàòîðà â ãëàâíîì îêíå
#property indicator_chart_window
//---- êîëè÷åñòâî èíäèêàòîðíûõ áóôåðîâ 0
#property indicator_buffers 0
//---- èñïîëüçîâàíî íîëü ãðàôè÷åñêèõ ïîñòðîåíèé
#property indicator_plots   0
//+------------------------------------------------+
//| Îáúÿâëåíèå êîíñòàíò                            |
//+------------------------------------------------+
#define RESET 0                            // êîíñòàíòà äëÿ âîçâðàòà òåðìèíàëó êîìàíäû íà ïåðåñ÷åò èíäèêàòîðà
#define INDICATOR_NAME "BigBarSound"       // êîíñòàíòà äëÿ èìåíè èíäèêàòîðà
//+------------------------------------------------+ 
//| Ïåðå÷èñëåíèå äëÿ èíäèêàöèè ñðàáàòûâàíèÿ        |
//+------------------------------------------------+ 
enum START_POINT //Òèï êîíñòàíòû
  {
   OPEN_CLOSE,   //õîä öåíû îò îòêðûòèÿ open äî close
   HIGH_LOW      //ðàçìåð ñâå÷è îò low äî high
  };
//+------------------------------------------------+
//| Âõîäíûå ïàðàìåòðû èíäèêàòîðà                   |
//+------------------------------------------------+ 
input ENUM_TIMEFRAMES TimeFrame   = PERIOD_H4;      // Ïåðèîä ãðàôèêà èíäèêàòîðà
input uint            BarPoint    = 200;            // Ìèíèìàëüíûé ðàçìåð ñâå÷íîãî õîäà äëÿ ñèãíàëà
input START_POINT     SP          = HIGH_LOW;       // Âàðèàíò äâèæåíèÿ
input string          WavFile     = "alert.wav";    // Èìÿ çâóêîâîãî ôàéëà
input uint            TimeDeley   = 10;             // Ìèíèìàëüíàÿ çàäåðæêà ìåæäó äâóìÿ ñèãíàëàìè
//+------------------------------------------------------------------+    
//| Custom indicator initialization function                         | 
//+------------------------------------------------------------------+  
int OnInit()
  {
//--- ñîçäàíèå èìåíè äëÿ îòîáðàæåíèÿ â îòäåëüíîì ïîäîêíå è âî âñïëûâàþùåé ïîäñêàçêå
   string shortname;
   StringConcatenate(shortname,INDICATOR_NAME,"(",EnumToString(TimeFrame),")");
   IndicatorSetString(INDICATOR_SHORTNAME,shortname);
//--- îïðåäåëåíèå òî÷íîñòè îòîáðàæåíèÿ çíà÷åíèé èíäèêàòîðà
   IndicatorSetInteger(INDICATOR_DIGITS,_Digits);
//--- çàâåðøåíèå èíèöèàëèçàöèè
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+  
//| Custom iteration function                                        | 
//+------------------------------------------------------------------+  
int OnCalculate(const int rates_total,    // êîëè÷åñòâî èñòîðèè â áàðàõ íà òåêóùåì òèêå
                const int prev_calculated,// êîëè÷åñòâî èñòîðèè â áàðàõ íà ïðåäûäóùåì òèêå
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//--- ïðîâåðêà êîëè÷åñòâà áàðîâ íà äîñòàòî÷íîñòü äëÿ ðàñ÷åòà
   if(Bars(Symbol(),TimeFrame)<1) return(RESET);
//--- èíäåêñàöèÿ ýëåìåíòîâ â ìàññèâàõ êàê â òàéìñåðèÿõ  
   ArraySetAsSeries(time,true);
   int range;
   static datetime lasttime,itime;
   datetime iTime[1];
//--- êîïèðóåì âíîâü ïîÿâèâøèåñÿ äàííûå â ìàññèâû
   if(SP==HIGH_LOW)
     {
      double iLow[1],iHigh[1];
      if(CopyLow(Symbol(),TimeFrame,time[0],1,iLow)<=0) return(RESET);
      if(CopyHigh(Symbol(),TimeFrame,time[0],1,iHigh)<=0) return(RESET);
      range=int((iHigh[0]-iLow[0])/_Point);
     }
   else
     {
      double iOpen[1],iClose[1];
      if(CopyOpen(Symbol(),TimeFrame,time[0],1,iOpen)<=0) return(RESET);
      if(CopyClose(Symbol(),TimeFrame,time[0],1,iClose)<=0) return(RESET);
      range=int((MathAbs(iClose[0]-iOpen[0]))/_Point);
     }
   if(CopyTime(Symbol(),TimeFrame,time[0],1,iTime)<=0) return(RESET);
   if(iTime[0]!=itime)
     {
      lasttime=NULL;
      itime=iTime[0];
     }
//---
   if(TimeCurrent()-lasttime>=TimeDeley && range>int(BarPoint))
     {
      PlaySound(WavFile);
      lasttime=TimeCurrent();
     }
//---     
   return(rates_total);
  }
//+------------------------------------------------------------------+

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 ---