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

show pips.mq4

Вы автор или правообладатель?

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

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

О программе

Show Pips — это пользовательский индикатор для MetaTrader 4, который отображает аналитическую информацию прямо на графике или в углу экрана. Он показывает текущую прибыль открытых позиций в пунктах, а при необходимости — в валюте счёта и в процентах, текущий спред и время до закрытия текущего бара.

Индикатор предлагает три режима отображения: текст, привязанный к цене (следует за графиком), вывод через функцию Comment или метка в выбранном углу экрана. Цвета текста, прибыли и убытка настраиваются отдельно, что позволяет визуально различать положительные и отрицательные значения.

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

Вспомогательные функции индикатора создают и обновляют графические объекты OBJ_TEXT и OBJ_LABEL на графике, а также определяют цвет по знаку числового значения. Функции подсчёта прибыли учитывают только открытые позиции текущего символа.

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

НастройкаОписание
Show profit? (show_profit) Показывать прибыль — Включает или отключает отображение прибыли открытых позиций в валюте счёта.
Show profit in percents? (show_perc) Показывать прибыль в процентах — Включает или отключает отображение прибыли в процентах от баланса счёта.
Show spread? (show_spread) Показывать спред — Включает или отключает отображение текущего спреда по символу.
Show time to bar closure? (show_time) Показывать время до закрытия бара — Включает или отключает отображение оставшегося времени до закрытия текущего бара.
Text color (colortext) Цвет текста — Задаёт цвет отображаемого текста индикатора на графике или в метке.
Profit color (ecProfit) Цвет прибыли — Задаёт цвет отображения положительного значения (прибыли) в тексте индикатора.
Loss color (ecLoss) Цвет убытка — Задаёт цвет отображения отрицательного значения (убытка) в тексте индикатора.
Y coordinate (coord_y) Y-координата — Указывает вертикальную координату Y для размещения метки в углу экрана при режиме отображения в углу.
Indent in bars (indent) Отступ в барах — Задаёт горизонтальный отступ в барах для текстового объекта, привязанного к графику.
Font size (text_size) Размер шрифта — Задаёт размер шрифта отображаемого текста индикатора.
Font (text_font) Шрифт текста — Задаёт шрифт, используемый для отображения текста индикатора на графике.
Получить полный код

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

#property version   "2.2"
#property strict
#property indicator_chart_window

enum ENUM_SHOW_TYPE
  {
   a = 0,   // Follow the price
   b = 1,   // As comment
   c = 2,   // In selected corner of the screen
  };
extern ENUM_SHOW_TYPE 
               show_type   =  0;                   // Type of appearance
extern ENUM_BASE_CORNER 
               corner      =  CORNER_RIGHT_LOWER;  // Graph corner for attachment
extern bool    show_profit =  false;               // Show profit?
extern bool    show_perc   =  false;               // Show profit in percents?
extern bool    show_spread =  true;                // Show spread?
extern bool    show_time   =  true;                // Show time to bar closure?
extern color   colortext   =  clrBlack;            // Text color
extern color   ecProfit    =  clrBlue;             // Profit color
extern color   ecLoss      =  clrRed;              // Loss color

enum ENUM_SEPARATOR
  {
   d = 124,    // |
   e =  47,    // /
   f =  46,    // .
   g =  92,    // \
   h =  35,    // #
  };
extern ENUM_SEPARATOR 
               separator   =  124;                 // Separator
extern int     coord_y     =  12;                  // Y coordinate
extern int     indent      =  5;                   // Indent in bars
extern int     text_size   =  8;                   // Font size
extern string  text_font   =  "Calibry";           // Font

string         name_1      =  "TPSpro_SMT";
string         text_1      =  "";
double         n           =  1.0;

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

void OnDeinit(const int reason)
  {
   Comment("");
   ObjectDelete(name_1);
  }

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[])
  {
      // код доступен только после оплаты
   }

   double   tu =  0.0, tp = 0.0, tr = 0.0, 
            sp =  MarketInfo(Symbol(), MODE_SPREAD);
   string   _sp = "", _m = "", _s = "";
   string   sep = StringConcatenate(" ", CharToString(char(separator)), " ");

   if(AccountBalance() == 0.0)
   {
      text_1 = "";
   }
   else
   {
      tu =  GetProfitOpenPosInPoint();
      tp =  GetProfitOpenPos();
      tr =  tp * 100.0 / AccountBalance();

      text_1 =  StringConcatenate(DoubleToStr(tu,1) ," pips");

      if (show_profit) text_1 = StringConcatenate(text_1, sep, DoubleToStr(tp,2), " ", AccountCurrency());
      if (show_perc)   text_1 = StringConcatenate(text_1, sep, DoubleToStr(tr,1), "%");
   }

   int   m  =  int(Time[0] + Period()*60 - TimeCurrent());
   int   s  =  m%60;
   m  =  (m - s) / 60;
   if (m < 10)          _m    =  "0";
   if (s < 10)          _s    =  "0";
   if (sp < 10)         _sp   =  "..";
   else if (sp < 100)   _sp   =  ".";

   if (show_spread)
   {
      if (AccountBalance() == 0.0) 
         text_1 = StringConcatenate(text_1, DoubleToStr(sp,0), _sp);
      else
         text_1 = StringConcatenate(text_1, sep, DoubleToStr(sp,0), _sp);
   }
   if (show_time)
   {
      if (AccountBalance() == 0.0 && !show_spread) 
         text_1 = StringConca

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

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

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

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

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

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

Стоимость полного кода
448₽ ≈ $5.48