← К каталогу
Исходный код · ID 4755

MA-Crossover_Alert

0 - ma-crossover_alert.mq5
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

MA-Crossover_Alert — это пользовательский индикатор для MetaTrader 5, который рассчитывает два скользящих средних с настраиваемыми периодами и методами сглаживания, а также отображает точки их пересечения на графике цен в виде стрелок. Сигналы покупки показываются зелёными стрелками, продажи — красными.

Индикатор поддерживает пять методов сглаживания: SMA, EMA, SMMA, LWMA и LSMA, а также позволяет выбирать тип цены для расчёта (Close, Open, High, Low и другие). Два буфера данных отрисовываются в основном окне графика с использованием символов-стрелок.

Помимо визуального отображения, индикатор предоставляет возможность отправки звуковых уведомлений и электронных писем при появлении сигналов о пересечении. Количество отправляемых оповещений ограничивается соответствующей настройкой.

Настройки программы

НастройкаОписание
FastMA_Mode Метод сглаживания для быстрой скользящей средней (SMA, EMA, SMMA, LWMA или LSMA).
FastMA_Period Период усреднения для быстрой скользящей средней.
FastPriceMode Тип цены, используемый для расчёта быстрой скользящей средней (Close, Open, High, Low и др.).
SlowMA_Mode Метод сглаживания для медленной скользящей средней (SMA, EMA, SMMA, LWMA или LSMA).
SlowMA_Period Период усреднения для медленной скользящей средней.
SlowPriceMode Тип цены, используемый для расчёта медленной скользящей средней (Close, Open, High, Low и др.).
SoundON Включает или отключает звуковые уведомления о сигналах пересечения скользящих средних.
EmailON Включает или отключает отправку электронных писем с уведомлениями о сигналах пересечения скользящих средних.
NumberofAlerts Максимальное количество отправляемых оповещений (звуковых и по электронной почте) о сигналах пересечения.

Поиск по коду файла

/*+------------------------------------------------------------------+
  | MA-Crossover_Alert.mq5                                           |
  | Copyright © 2005, Jason Robinson (jnrtrading)                    |
  |                                        |
  | Modified by Robert Hill to add LSMA and alert or send email      |
  | Added Global LastAlert to try to have alert only on new cross    |
  | but does not seem to work. So indicator does alert every bar     |
  +------------------------------------------------------------------+
  +------------------------------------------------------------------+
  | Allows you to enter two ma periods and it will then show you at  |
  | Which point they crossed over. It is more usful on the shorter   |
  | periods that get obscured by the bars / candlesticks and when    |
  | the zoom level is out. Also allows you then to remove the  mas   |
  | from the chart. (emas are initially set at 5 and 20)             |
  +------------------------------------------------------------------+*/

#property version   "1.00"

#property indicator_chart_window 

#property indicator_buffers 2

#property indicator_plots   2

#property indicator_type1   DRAW_ARROW

#property indicator_color1  Red

#property indicator_width1  4

#property indicator_label1  "MA-Crossover_Alert Sell"

#property indicator_type2   DRAW_ARROW

#property indicator_color2  Lime

#property indicator_width2  4

#property indicator_label2 "MA-Crossover_Alert Buy"

enum Smooth_Method
  {
   MODE_SMA_,  //SMA
   MODE_EMA_,  //EMA
   MODE_SMMA_, //SMMA
   MODE_LWMA_, //LWMA
   MODE_LSMA_  //LSMA
  };

#define RESET 0 // the constant for getting the command for the indicator recalculation back to the terminal

input Smooth_Method FastMA_Mode=MODE_SMA_; //Smoothing method for fast moving
input uint FastMA_Period=1; //Period of averaging for fast moving
input ENUM_APPLIED_PRICE FastPriceMode=PRICE_CLOSE;//Price for fast moving
input Smooth_Method SlowMA_Mode=MODE_EMA_; //Smoothing method for slow moving
input uint SlowMA_Period=100; //Period of averaging for slow moving
input ENUM_APPLIED_PRICE SlowPriceMode=PRICE_CLOSE;//Price for slow moving
extern bool SoundON=true; //Alert
extern bool EmailON=false; //Email
input uint NumberofAlerts=2;

double SellBuffer[];
double BuyBuffer[];

uint counter=0;
bool flagval1 = false;
bool flagval2 = false;

int FaMA_Handle,SlMA_Handle;

int StartBars;

void OnInit()
{
      // код доступен только после оплаты
   }

void OnDeinit(const int reason)
{
}

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(rates_total<StartBars) return(RESET);
   if(FastMA_Mode!=MODE_LSMA_&&BarsCalculated(FaMA_Handle)<rates_total) return(RESET);
   if(SlowMA_Mode!=MODE_LSMA_&&BarsCalculated(SlMA_Handle)<rates_total) return(RESET);

   int limit,count;
   double fastMAnow,slowMAnow,fastMAprevious,slowMAprevious,Range,AvgRange,MA[],Ask,Bid;
   string text,sAsk,sBid,sPeriod;

   if(prev_calculated>rates_total || prev_calculated<=0)// checking for th

Показано первые 50% кода (символов: 6916)