TradeJourney - Trading diary as a PHP web app

TradeJourney Login

Username: admin
Password: TradeJourney!2025

 

TradeJourney is a lightweight, password-protected trading journal as a PHP web app. It stores trades in CSV (readable with Excel/Numbers/Google Sheets) and displays them in a clean tabbed interface.

  • Input: fast manual entry (open/close time without seconds, symbol, direction, entry/exit, SL/TP, setup, comment, volume, profit €).
    – Clicking a row opens a centered pop-up editor to edit, save & close.
  • Statistics:
    • Equity curve (full width)
    • KPIs: trades, win/loss, hit rate, gross profit/loss, profit factor, net PnL, avg/trade
    • Wins/Losses per symbol (stacked bars)
    • Long vs. Short PnL (donut)
  • Calculations: the same metrics in compact tiles (stylish, multi-line path display).

Security

  • Login/Logout with session, credentials from external PHP config (journey_config.php).
  • Optional password hash (BCrypt) via password_hash(…).

Files (3)

  • trade_journal.php – the application (UI, login, CSV logic).
  • journey_config.php – PHP config, returns an array with user, pass or pass_hash, csv.
  • tradejourney.csv – data store (created with sample data on first run if not present).

CSV Columns

ts_open;ts_close;symbol;direction;entry;sl;tp;exit;rr;setup;comment;volume;profit_eur
YYYY-MM-DD HH:MM;YYYY-MM-DD HH:MM;DE40|XAUUSD;Long|Short;…;…;…;…;R;…;…;…;123.45

Installation

Requirements

  • Web server with PHP 7.4+ (rec. 8.x), Apache or Nginx
  • Write permissions on the folder where the CSV resides

Deploy files

 trade_journal.php journey_config.php tradejourney.csv (optional, otherwise it will be created) 

Example journey_config.php

Place this file outside the web root (e.g., /etc/tradejourney/journey_config.php) and adjust the require path in trade_journal.php.

<?php return [ 'user' => 'admin', // 'pass_hash' => password_hash('YourSecret', PASSWORD_DEFAULT), 'pass' => 'TradeJourney!2025', 'csv' => __DIR__.'/tradejourney.csv', ];

Tip: Generate your hash once in a separate PHP console:

echo password_hash('YourSecret', PASSWORD_DEFAULT);

File permissions

  • journey_config.php: 640 (readable only by web server user/group).
  • CSV directory: web server needs write access (for append/save).

Web server (optional)

  • Apache: Make sure PHP is executed; otherwise the code won’t be interpreted.
  • Nginx: Route PHP-FPM correctly to trade_journal.php.

First Run

  1. Open the page (e.g., https://yourhost/trade_journal.php).
  2. Log in with the credentials from journey_config.php.
  3. Check CSV: path in the “Calculations” tab (CSV file); on first run, sample data is created.
  4. Record your first trade: “Input” tab → save → appears in the table below → click to edit.
  5. View statistics: “Statistics” tab (equity on top, 3 cards below).
  6. Logout: button at the top right.

Operations & Maintenance

  • Backup: regularly back up tradejourney.csv (daily) as well as journey_config.php.
  • Update: upload the new trade_journal.php; config/CSV remain unchanged.
  • Security: enable HTTPS, use only pass_hash, keep config outside the web root.

Roadmap / Next Features

1. CSV upload (import existing journals) => upload CSVs (same column schema) and append.

2. Automatic input from MT4/MT5 (Expert Advisor) => on close/entry, send trades via HTTP POST to a small PHP API (WebRequest) or via file drop (EA → CSV; cron/importer appends).

 

Scroll to Top