Ephemeris Trade Calendar
- Утилиты
-
Syarief Azman Bin Rosli
Здравствуйте и добро пожаловать в мой официальный профиль MQL5!
Меня зовут Шариф Азман Бин Росли (Syarief Azman Bin Rosli). Я разработчик алгоритмических торговых систем и количественный инженер с более чем десятилетним опытом создания надежных решений для MetaTrader 5 и MetaTrader 4. - Версия: 1.0
- Активации: 5
Ephemeris Trade Calendar - история счета в виде месячного календаря прибыли (MT4)
Ephemeris Trade Calendar превращает историю MetaTrader 4 в месячный календарь прибыли прямо на графике. Каждая закрытая сделка попадает в свой день: ячейки окрашены по результату, показывают число прибыльных и убыточных сделок и суммируются в недельные итоги. Нижняя панель переключается между статистикой, картой преимуществ (P/L по дню недели и часу входа плюс кривая закрытых сделок) и журналом дня, а индикатор TODAY следит за дневной целью и лимитом убытка. На реальных и демо-графиках утилита только читает историю: она никогда не открывает, не изменяет и не закрывает сделки.
Быстрый старт
- Прикрепите ее к любому графику (любой символ и таймфрейм). Algo Trading не нужен.
- В окне Терминал откройте вкладку История счета, щелкните правой кнопкой и выберите All History. MT4 отдает программам только историю, загруженную в этой вкладке; более короткий период оставит старые месяцы пустыми и сделает проценты приблизительными.
- По желанию: задайте Symbol Filter и Magic Filter, чтобы следить за одним символом или одним советником, и Daily Target / Daily Loss Limit для индикатора TODAY.
- Проверка: бейдж показывает TRACKING n TRADES, и месяц заполняется. Щелкните день, чтобы открыть его журнал.
Панель
Заголовок
- Индикатор: фиолетовый норма, зеленый цель достигнута, красный лимит убытка достигнут, янтарный в пределах 80% лимита, серый нет закрытых сделок.
- `<>` переносит панель в следующий угол. `[-]` сворачивает ее в капсулу EPHEMERIS с P/L за сегодня (закрытые + плавающие); `[+]` разворачивает.
- Подстрока: #счет, валюта и фильтры: ALL SYM, символ графика или LIST(n); ALL MAGIC, MANUAL или MAGIC(n); NET (своп и комиссия включены) или GROSS.
- Бейдж: TRACKING n TRADES, NO CLOSED TRADES, CHECK FILTER LIST (выбран фильтр по списку, но список пуст), TARGET REACHED, LOSS LIMIT HIT, NEAR LOSS LIMIT. На несколько секунд после действия: EXPORTED n TRADES, m DAYS, EXPORT FAILED (код ошибки), HISTORY RELOADED, AUTOSCROLL OFF, DAY NOT ON CHART.
Навигация по месяцам
`<<` предыдущий месяц, `>>` следующий (до текущего), TODAY возвращает к текущему месяцу и выбирает сегодня. На текущем месяце календарь в полночь переходит на новую дату.
Календарь
- Столбцы MO - SU (или SU - SA) плюс WEEK.
- Ячейка дня: число, значение в текущей единице и прибыльные/убыточные, например 2W 1L (сделки с нулевым итогом не входят ни туда, ни туда). Зеленый = чистая прибыль, красный = чистый убыток, насыщенность = величина относительно лучшего дня месяца; серый = сделки с нулевым итогом; темный = сделок нет; бледные числа = соседние месяцы.
- Голубая рамка = сегодня, янтарная рамка = выбранный день.
- WEEK: итог строки в текущей единице и число сделок (n tr); в режиме процентов это сумма дневных процентов.
- Щелчок по ячейке выбирает день и открывает журнал DAY; бледный день соседнего месяца переключает на этот месяц.
Полоса месяца
NET (деньги), RETURN (итог месяца / баланс на начало месяца), GREEN DAYS (прибыльные / торговые дни), TRADES, WIN RATE.
Вкладки и переключатели
- STATS, EDGE и DAY переключают нижнюю панель.
- UNIT: MONEY, UNIT: % и UNIT: PTS меняют значения календаря: валюта счета; процент от баланса на начало дня; пункты (ценовое расстояние / пункт символа, суммируются по символам).
- SCOPE: MONTH или SCOPE: ALL применяет STATS и EDGE к просматриваемому месяцу или ко всей загруженной истории.
Панель STATS (деньги)
Net P/L, Return (итог / баланс на начало периода), Trades, Win rate, Profit factor (валовая прибыль / валовый убыток; -- если нет убыточных), Expectancy (итог на сделку), Avg win, Avg loss, Payoff ratio (средняя прибыль / средний убыток), Largest win, Largest loss, Max drawdown (наибольшее падение накопленного P/L закрытых сделок от пика, в деньгах и % баланса на пике), Win streak, Loss streak, Best day и Worst day (с датой), Green days (прибыльные / торговые, %), Swap + comm. Нижняя строка: SCOPE, LOTS и HISTORY FROM (самая ранняя загруженная запись).
Панель EDGE (деньги)
- ENTRY WEEKDAY: столбик на каждый день недели с P/L сделок, открытых в этот день (зеленый вверх, красный вниз, плоский серый = нет сделок). ENTRY HOUR: 24 столбика для часов входа 0-23. Оба учитывают Day Shift; подписи называют лучший и худший день и час.
- EQUITY CURVE: накопленный P/L закрытых сделок периода в порядке закрытия (до 82 столбцов), бирюзовый выше нуля, красный ниже, со значениями end и low.
Панель DAY (журнал)
Заголовок: день недели, дата, число сделок, итог, W/L. Столбцы TICKET, SYMBOL, SIDE, LOTS, OPEN >CLOSE (сдвинутое время; * = открыта или закрыта в другой день), NET. Семь строк на страницу; `<` и `>` листают. GO TO DAY прокручивает график к этому дню и выключает автопрокрутку (End возвращает). Пустой день показывает "No closed trades on this day."
Модуль TODAY
closed (закрытый итог за сегодня), open (плавающий P/L открытых сделок по фильтрам), total. Шкала идет от LIMIT (слева) до TARGET (справа) с отметкой нуля; заливка показывает значение цели (закрытые + плавающие или только закрытые). Если оба равны 0, видно "no target or limit set".
Кнопки действий
- PLOT: ON / PLOT: OFF рисует сделки просматриваемого месяца по символу графика: стрелка открытия (синяя buy, оранжевая sell), отметка закрытия и пунктир цвета прибыли или убытка, подпись итога; при наведении виден тикет. Рисуются 400 последних; тогда строка состояния показывает PLOT n/m.
- EXPORT CSV пишет файлы ниже. REFRESH сразу перечитывает историю. SYNC hh:mm:ss = последнее обновление.
Автоматическое поведение
- История проверяется каждые History Check Interval секунд и на каждом тике; пересчет только при изменении числа записей, счета или дня.
- Учитываются только сделки buy и sell. Удаленные отложенные ордера, записи баланса и кредита пропускаются (балансовые операции идут в проценты, но не в P/L). Частичное закрытие видно как отдельные сделки, потому что MT4 хранит каждую закрытую часть под своим тикетом.
- Дни определяются по Assign Trades to Days by и Day Shift from Server Time; модуль TODAY использует то же правило. Проценты считаются от баланса, восстановленного назад от текущего.
- Оповещения о цели и лимите срабатывают раз в день каждое (снова после повторного прикрепления). Они только информируют: ничего не закрывается.
- Месяц, панель, единица, период, график, угол и свернутость сохраняются при смене таймфрейма и символа и сбрасываются при повторном прикреплении или смене входных параметров.
- Тестер стратегий: на графике утилита никогда не торгует. В тестере, где работает демо-версия Маркета, Sample Trades in the Strategy Tester открывает одну пробную сделку 0.10 лота (или минимум брокера) в 08, 11, 14 и 17 по серверу (направление по H1 20-SMA, стоп-лосс 1.2 ATR, тейк-профит 1.6 ATR, маржа проверяется) и закрывает ее в 21, magic 20261105, чтобы календарю было что показать. Кнопки работают в визуальном тестере; ячейки дней там не нажимаются.
Оповещения
"daily target reached", когда значение цели достигает цели; "daily loss limit reached", когда оно падает до минус лимита. Popup Alert on Target or Limit показывает окно; Push Notification on Target or Limit отправляет push (укажите MetaQuotes ID в Сервис > Настройки > Уведомления).
Файлы и глобальные переменные
- EXPORT CSV пишет MQL4\Files\Ephemeris\<account>_trades.csv (ticket, symbol, type, lots, время и цена открытия/закрытия, profit, swap, commission, net, points, magic, day) и <account>_days.csv (day, trades, wins, losses, net, gross profit, gross loss, lots, points, pct_of_balance). Каждый экспорт перезаписывает их (Файл > Открыть каталог данных).
- С Publish Global Variables: EPH_<account>_TODAY_NET (закрытый итог сегодня), EPH_<account>_TODAY_TOTAL (закрытые + плавающие), EPH_<account>_GOAL_STATE (1 цель достигнута, -1 лимит достигнут, 0 ничего). Обновляются каждую секунду, удаляются при снятии утилиты.
string a = IntegerToString(AccountNumber());
double goal = GlobalVariableGet("EPH_" + a + "_GOAL_STATE");
if(goal < 0) return; // лимит убытка сегодня достигнут: новых входов нет - Объекты графика используют префиксы EPH_C_ (панель) и EPH_T_ (нарисованные сделки); все удаляются при выходе. Без DLL.
Входные параметры
- Symbol Filter (All symbols): All symbols / Chart symbol only / Symbol list.
- Symbol List: через запятую, без учета регистра; элемент подходит ко всем символам, начинающимся с него (EURUSD охватывает EURUSDm).
- Magic Filter (All trades): All trades / Manual trades only (magic 0) / Magic number list.
- Magic Number List: номера через запятую.
- Include Swap and Commission (true): false = только валовая прибыль (GROSS).
- Assign Trades to Days by (Close time): Close time / Open time.
- Day Shift from Server Time (0, от -12 до 12 часов): сдвигает границы дней, часы входа и время в журнале.
- Week Starts on (Monday): Monday / Sunday.
- Cell Value at Start (Money): Money / Percent of balance / Points.
- Stats Scope at Start (Viewed month): Viewed month / All loaded history.
- Lower Deck at Start (Stats): Stats / Edge map / Day ledger.
- Daily Target (0 = off), Daily Loss Limit (0 = off): положительные значения.
- Target and Limit Unit (Money): Money / Percent of day-start balance.
- Include Floating P/L in the Daily Goal (true).
- Popup Alert on Target or Limit (true), Push Notification on Target or Limit (false).
- Publish Global Variables (false). Plot Trades on Chart at Start (true).
- Profit Color, Loss Color: ячейки, подписи и рисунки.
- Panel Corner (Top left): Top left / Top right / Bottom right / Bottom left. Panel X Offset (12), Panel Y Offset (24): пиксели от этого угла.
- Panel Scale (1.0, 0.6-2.0). Start Collapsed (false).
- History Check Interval (2, 1-60 секунд).
- Sample Trades in the Strategy Tester (true): только тестер, см. выше.
Типовые настройки
- Журнал всего счета: значения по умолчанию, История счета на All History.
- Один советник: Magic Filter = Magic number list, Magic Number List = его magic, PLOT: ON на его графике.
- Дневная защита: Daily Target 1.0, Daily Loss Limit 2.0, Target and Limit Unit = Percent of day-start balance, Push Notification on Target or Limit и Publish Global Variables = true, чтобы ваши советники читали GOAL_STATE.
- Дни по местному времени: Day Shift from Server Time = ваш сдвиг UTC минус сдвиг сервера (сервер UTC+2, вы UTC+8: 6).
Примечания
- Видна только история, загруженная во вкладке История счета. Пункты складываются по символам с разным размером пункта. STATS и EDGE всегда в деньгах.
- Статистика описывает только прошлые результаты; она не предсказывает будущее, а торговля связана с риском убытков.
