ProfitInfo
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «profitinfo@lifeindreamsworld_6255515370069694576.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
ProfitInfo — индикатор для MetaTrader 4, отображающий на графике статистику прибыли закрытых ордеров. Он показывает лоты, пипсы, прибыль в деньгах и процент доходности за сегодня, вчера, несколько прошедших дней, неделю, месяц и год. Информация обновляется каждые 10 секунд и размещается в выбранном углу графика.
Индикатор фильтрует ордера по магическому номеру, комментарию, символу и дате закрытия, что позволяет анализировать результаты конкретных стратегий. Положительные значения отображаются одним цветом, отрицательные — другим.
Все элементы отрисовки создаются как графические объекты OBJ_LABEL и удаляются при деинициализации индикатора. Поддерживается настройка размера, цвета шрифта и фона информационной панели.
Настройки программы
| Настройка | Описание |
|---|---|
| MagicNumber | MagicNumber — Магический номер ордера для фильтрации. Учитываются только ордера с указанным magic number. Значение по умолчанию: -1 (без фильтра). |
| CommentFilter | CommentFilter — Текстовый фильтр по комментарию ордера. Отображаются только ордера, содержащие указанную подстроку в комментарии. Пустая строка — без фильтрации. |
| OnlyAttachedSymbol | OnlyAttachedSymbol — Переключатель: при включении учитываются только ордера по текущему символу графика. |
| StartDateFilter | StartDateFilter — Дата начала фильтрации в виде строки. Ордера, закрытые до этой даты, не учитываются. |
| Corner | Corner — Угол графика для размещения информационной панели (левый верхний, правый верхний, левый нижний, правый нижний). |
| XOffset | XOffset — Горизонтальный сдвиг информационной панели в пикселях от выбранного угла. |
| YOffset | YOffset — Вертикальный сдвиг информационной панели в пикселях от выбранного угла. |
| BGColor | BGColor — Цвет фона информационной панели. |
| FontSize | FontSize — Размер шрифта текста в панели. |
| FontColor | FontColor — Основной цвет шрифта текста в панели. |
| FontColorPlus | FontColorPlus — Цвет шрифта для положительных значений. |
| FontColorMinus | FontColorMinus — Цвет шрифта для отрицательных значений. |
Поиск по коду файла
#property version "1.52"
#property strict
#property indicator_chart_window
#property indicator_buffers 0
extern int MagicNumber = -1;
extern string CommentFilter = "";
extern bool OnlyAttachedSymbol = TRUE;
extern string StartDateFilter = "";
extern ENUM_BASE_CORNER Corner = CORNER_RIGHT_LOWER;
extern int XOffset = 0;
extern int YOffset = 0;
extern color BGColor = Black;
extern int FontSize = 8;
extern color FontColor = Gray;
extern color FontColorPlus = Green;
extern color FontColorMinus = FireBrick;
int windowIndex = 0;
double pip_multiplier = 1.0;
int daySeconds = 86400;
string Symb = "";
datetime startDateFilter = 0;
datetime LastDrawProfitInfo = 0;
string IndiName = "ProfitInfo v1.5.2";
/******************* Version history ********************************
v1.5.2 - 2016.03.13
--------------------
- fixed 2-digits XAU
v1.5.1 - 2016.03.07
--------------------
- support 2-digits CFDs
v1.5.0 - 2015.12.30
--------------------
- add lot column
v1.4.3 - 2014.01.28
--------------------
- Background draw problem with offset
v1.4.2 - 2013.11.13
--------------------
- Some percentage bug fixed
v1.4.1 - 2013.11.04
--------------------
- Some bug fixed
v1.4.0 - 2013.10.17
--------------------
- StartDateFilter: be?ll?that? a profitsz?m?t?s kezd? id?pontja
- Show daily and monthly average gain
- Refresh only every 10 seconds
- Helyes sorrend? megjelen?t?s bal sarkok eset?n
v1.3.2 - 2013.07.09
--------------------
- Fixed some bug in pip calculation logic
- Comment filter
- Background
v1.3.1 - 2013.07.03
--------------------
- MagicNumber filter
***********************************************************************/
int init()
{
// код доступен только после оплаты
}
int start()
{
// код доступен только после оплаты
}
int deinit()
{
DeleteAllObject();
return(0);
}
void DrawProfitHistory() {
if (LastDrawProfitInfo > TimeCurrent() - 10) return;
LastDrawProfitInfo = TimeCurrent();
datetime day, today, now, prevDay;
int row = 0;
int step = 1;
if (Corner > 1)
{
row = 13;
step = -1;
}
DrawBackground("ProfitInfo_00_BG1", Corner, 1 , 30, BGColor, 133, "gg");
DrawBackground("ProfitInfo_00_BG2", Corner, 1 , 5, BGColor, 133, "gg");
if (Corner % 2 == 0)
{
DrawText(Corner, row, 0, "LOT", FontColor, FontSize);
DrawText(Corner, row, 60, "DATE", FontColor, FontSize);
DrawText(Corner, row, 130, "PIPS", FontColor, FontSize);
DrawText(Corner, row, 210, "PROFIT", FontColor, FontSize);
DrawText(Corner, row, 280, "GAIN %", FontColor, FontSize);
} else {
DrawText(Corner, row, 280, "DATE", FontColor, FontSize);
DrawText(Corner, row, 210, "PIPS", FontColor, FontSize);
DrawText(Corner, row, 130, "PROFIT", FontColor, FontSize);
DrawText(Corner, row, 60, "GAIN %", FontColor, FontSize);
DrawText(Corner, row, 0, "LOT", FontColor, FontSize);
}
row += step;
DrawText(Corner, row, 0, "====================================", FontColor, FontSize);
row += step;
now = TimeCurrent();
today = StrToTime(TimeToStr(now, TIME_DATE));
DrawDayHistoryLine(today, now, row, "Today");
row += step;
day = today; prevDay = GetPreviousDay(day - daySeconds);
DrawDayHistoryLine(prevDay, day, row, "Yesterday");
row += step;
day = prevDay; prevDay = GetPreviousDay(day - daySeconds);
DrawDayHistoryLine(prevDay, day, row);
row += step;
day = prevDay; prevDay = GetPreviousDay(day - daySeconds);
DrawDayHistoryLine(prevDay, day, row);
row += step;
day = prevDay; prevDay = GetPreviousDay(day - daySeconds);
DrawDayHistoryLine(prevDay, day, row);
row += step;
day = DateOfMonday();
DrawDayHistoryLine(day, now, row, "Week");
row += step;
day = StrToTime(Year()+"."+Month()+".01");
DrawDayHistoryLine(day, now, row, "Month");
row += step;
day = StrToTime(Year()+".01.01");
DrawDayHistoryLine(day, now, row, "Year");
row += step;
DrawText(1, row, 0, "------------------------------------------------------------", Gray, FontSize);
row += step;
if (AccountBalance() != 0.0)
{
double pips, profit, lots = 0;
datetime firstOrderTime = GetHistoryInfoFromDate(day, now, pips, profit, lots);
int oneDay = 86400; //int oneMonth = oneDay * 30.4;
double daily = MathDiv(MathDiv(profit, MathDiv(now - firstOrderTime, oneDay)), (AccountBalance() - profit)) * 100.0;
double monthly = daily * 30.4;
DrawText(Corner, row, 0, StringConcatenate("Monthly: ", DTS(monthly, 2), "%"), ColorOnSign(monthly), FontSize);
DrawText(Corner, row, 150, StringConcatenate("Daily: ", DTS(daily, 2), "%"), ColorOnSign(daily), FontSize);
}
row += step;
DrawText(Corner, row, 0, "====================================", FontColor, FontSize);
row += step;
if (Corner < 2) // if it's above, then it needs to be placed one lower for some reason
row += step;
string text = StringConcatenate(IndiName, " - Created by Ice FX - www.icefx.eu");
DrawText(Corner, row, 0, text, DimGray, 7);
}
void DrawDayHistoryLine(datetime prevDay, datetime day, int row, string header = "") {
if (header == "") header = TimeToStr(prevDay, TIME_DATE);
double pips, profit, percent, lots = 0.0;
string text;
GetHistoryInfoFromDate(prevDay, day, pips, profit, lots);
double profitp = 0;
if (AccountBalance() > 0) profitp = profit / (AccountBalance() - profit) * 100.0;
if (Corner % 2 == 0)
Показано первые 50% кода (символов: 9024)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.