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

Account Equity Analyzer

accountequityanalyzer@lifeindreamsworld.mq4

Похожие материалы по тегам

one shoot ai v4.mq5MQL5 / MetaTrader 5 · 1 общих теговindicatorgoldy.pineTradingView · 1 общих теговeatelemetry.mqhMQL4 / MetaTrader 4 · 1 общих теговdrawdownmeter.mq4MQL4 / MetaTrader 4 · 1 общих теговaccountequityanalyzer v1.1.mq4MQL4 / MetaTrader 4 · 1 общих теговgeniusv101-ecn.mq4MQL4 / MetaTrader 4 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

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

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

Индикатор поддерживает периодический снимок экрана графика с заданным интервалом в минутах. Начальный депозит задаётся пользователем и используется как база для расчёта процентных соотношений и прогноза роста счёта.

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

НастройкаОписание
StartingDeposit Начальная сумма депозита, используемая как базовое значение для расчёта доходности, процентной просадки и годовой доходности (ROI) счёта.
MinutesScreenshootInterval Интервал в минутах между автоматическими снимками экрана графика индикатора. По истечении указанного времени вызывается функция захвата экрана с именем EquityGraph.gif.
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 Yellow
#property indicator_width1 2
#property indicator_color2 Blue
#property indicator_width2 1
#property indicator_color3 LightBlue
#property indicator_width3 2

extern double StartingDeposit           =50000;
extern int    MinutesScreenshootInterval=60;

int ImageTime=0;
double dBuf0[], dBuf1[], dBuf2[];
double InitialDeposit=0,PercentDD,MaxPercentDD,PercentDD2;
double MaxDrawdown,Balance,Equity,DW,StartingTime;
double Drawdown,WorstDrawdown,GDrawdownTime;
string MaxDD,MaxBL,MaxEQ,GMaxDrawdown,DrawDownAnalizer,DrawdownTime,GMaxPercentDD;
string TextDrawDownTime,PercentDDT,ROIText,growtext;

int    oob[];      // 
int    oty[];      // 
double olo[];      // 
string osy[];      // 
double oop[];      // 
int    ocb[];      // 
double ocp[];      // 
double osw[];      // 
double opr[];      // 

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

void deinit()
{
 ObjectDelete("B_object");
 ObjectDelete("E_object");
 ObjectDelete("PL_object");
 ObjectDelete("Time_object");
 ObjectDelete("Time_DD");
 ObjectDelete("note");
 ObjectDelete("DDPercent");
 ObjectDelete("DDPercent2");
 ObjectDelete("ROI");
 ObjectDelete("ROI2");
 ObjectDelete("ROI3");
 ObjectDelete("ROI4");
 ObjectDelete("ROI5");
 ObjectDelete("ROI6");
 return(0);
}

void start()
  {
      // код доступен только после оплаты
   }
   double b, e, p, t;
   int    i, j, k;

   ReadDeals();
 	 if(oob[0] < 0) 
 	     return;
 	 k = ArraySize(oob);

   for(i = Bars; i >= oob[0]; i--)
     {
       dBuf0[i] = EMPTY_VALUE;
       dBuf1[i] = EMPTY_VALUE;
     }
   for(i = oob[0]; i >= 0; i--)
     {
       b = StartingDeposit; 
       e = 0;
       for(j = 0; j < k; j++)
         {
           if(i <= oob[j] && i >= ocb[j])
             {
               p = MarketInfo(osy[j], MODE_POINT);
               t = MarketInfo(osy[j], MODE_TICKVALUE);
               if(t == 0) 
                   t = 10;
               if(p == 0) 
                   if(StringFind(osy[j], "JPY") < 0) 
                       p = 0.0001; 
                   else 
                       p=0.01;
               if(oty[j] == OP_BUY) 
                   e += (iClose(osy[j], 0, i) - oop[j]) / p*olo[j]*t;
               else 
                   e += (oop[j] - iClose(osy[j], 0, i)) / p*olo[j]*t;
             } 
           else 
               if(i <= ocb[j]) 
                   b += osw[j] + opr[j];
         }
       dBuf2[i] = StartingDeposit;
       dBuf0[i] = b;
       dBuf1[i] = b + e;
   

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

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

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

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

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

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

Стоимость полного кода
846,90₽ ≈ $10.35