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

Vasily Pip Sniper

vasily_pip_sniper_v3.3__1 (arrows).mq5
Вы автор или правообладатель?

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

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

О программе

Индикатор «Vasily Pip Sniper» рассчитывает два значения на основе скользящих средних с разными периодами и отображает их в отдельном окне. Разница между быстрой и медленной скользящей средней формирует два буфера (up и dn), которые визуально отображаются линиями зелёного и красного цвета.

Индикатор поддерживает отрисовку стрелок на графике при смене направления, а также межбарровую интерполяцию для более плавного отображения. Дополнительно реализована система уведомлений с поддержкой всплывающих сообщений, звуковых сигналов, push-уведомлений и email-рассылки.

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

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

НастройкаОписание
TimeFrame Таймфрейм, на котором выполняется расчёт индикатора.
Price Тип цены, используемой для расчёта скользящих средних (например, Close, Open, High, Low и др.).
Method Метод расчёта скользящей средней (например, простая, экспоненциальная, взвешенная или по Линейной регрессии).
estr Пояснительный текст. Если UseUserVariables установлен в false, периоды выбираются автоматически.
UseUserVariables При включении используются пользовательские периоды FastPeriod и SlowPeriod. При отключении периоды выбираются автоматически в зависимости от текущего таймфрейма.
FastPeriod Быстрый период скользящей средней, используемый для расчёта короткосрочного компонента индикатора.
SlowPeriod Медленный период скользящей средней, используемый для расчёта долгосрочного компонента индикатора.
Arrows visible? (arrowsVisible) Включает или отключает отрисовку стрелок на графике при смене направления.
Unique ID for arrows (arrowsIdentifier) Уникальный идентификатор, используемый для именования объектов-стрелок на графике.
Upper arrow gap (arrowsUpperGap) Отступ верхней стрелки от цены High в единицах ATR(20).
Lower arrow gap (arrowsLowerGap) Отступ нижней стрелки от цены Low в единицах ATR(20).
Up arrow color (arrowsUpColor) Цвет восходящей стрелки на графике.
Down arrow color (arrowsDnColor) Цвет нисходящей стрелки на графике.
Up arrow code (arrowsUpCode) Код стрелки для отрисовки восходящего направления.
Down arrow code (arrowsDnCode) Код стрелки для отрисовки нисходящего направления.
Arrows size (arrowsSize) Толщина линии стрелок на графике.
Turn alerts on? (alertsOn) Включает или отключает всю систему уведомлений индикатора.
Alerts on current (still opened) bar? (alertsOnCurrent) Определяет, генерировать ли уведомления на текущей (ещё не закрытой) свече или только на закрытых.
Alerts should show pop-up message? (alertsMessage) Включает или отключает всплывающие сообщения на графике при смене направления индикатора.
Alerts should play alert sound? (alertsSound) Включает или отключает воспроизведение звукового сигнала при смене направления индикатора.
Alerts should send push notification? (alertsPushNotif) Включает или отключает отправку push-уведомлений на мобильные устройства при смене направления индикатора.
Alerts should send email? (alertsEmail) Включает или отключает отправку email-уведомлений при смене направления индикатора.
Interpolate Включает или отключает интерполяцию значений индикатора между барами при кросс-таймфреймовом расчёте.
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red
#property indicator_width1 1
#property indicator_width2 1

extern ENUM_TIMEFRAMES     TimeFrame = 0;
extern ENUM_APPLIED_PRICE  Price     = 0;
extern ENUM_MA_METHOD      Method    = 1;
extern string estr      = "If UseUserVariables set to false, variables are automatically chosen";
extern bool   UseUserVariables = True;
extern int    FastPeriod = 1;
extern int    SlowPeriod = 6;
extern bool   arrowsVisible    = false;             // Arrows visible?
extern string arrowsIdentifier = "vasily1";         // Unique ID for arrows
extern double arrowsUpperGap   = 0.5;               // Upper arrow gap
extern double arrowsLowerGap   = 0.5;               // Lower arrow gap
extern color  arrowsUpColor    = clrDodgerBlue;     // Up arrow color
extern color  arrowsDnColor    = clrRed;            // Down arrow color
extern int    arrowsUpCode     = 225;               // Up arrow code
extern int    arrowsDnCode     = 226;               // Down arrow code
extern int    arrowsSize       = 0;                 // Arrows size
extern bool   alertsOn         = false;             // Turn alerts on?
extern bool   alertsOnCurrent  = false;             // Alerts on current (still opened) bar?
extern bool   alertsMessage    = true;              // Alerts should show pop-up message?
extern bool   alertsSound      = false;             // Alerts should play alert sound?
extern bool   alertsPushNotif  = false;             // Alerts should send push notification?
extern bool   alertsEmail      = false;             // Alerts should send email?
extern bool   Interpolate = true;

int per1, per2;

double up[];
double dn[];
double WorkBuffer[];
double WorkBuffer2[],arrows[];
string indicatorFileName;
bool   returnBars;

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

int deinit()
{
   string lookFor       = arrowsIdentifier+":";
   int    lookForLength = StringLen(lookFor);
   for (int i=ObjectsTotal()-1; i>=0; i--)
   {
      string objectName = ObjectName(i);
         if (StringSubstr(objectName,0,lookForLength) == lookFor) ObjectDelete(objectName);
   }
   return(0);
}

int start()
{
      // код доступен только после оплаты
   }
   int counted_bars=IndicatorCounted();
      if(counted_bars < 0) return(-1);
      if(counted_bars>0) counted_bars--;
         int limit = MathMin(Bars-counted_bars,Bars-1);
         if (returnBars) { up[0] = limit+1; return(0); }
         if (TimeFrame!=_Period)
         {
            limit = (int)MathMax(limit,MathMin(Bars-1,iCustom(NULL,TimeFrame,indicatorFileName,-99,0,0)*TimeFrame/Period()));
            for (int i

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

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
608,70₽ ≈ $7.44