{"id":3191,"date":"2025-10-29T01:14:54","date_gmt":"2025-10-29T00:14:54","guid":{"rendered":"https:\/\/market-trader.de\/shop\/?page_id=3191"},"modified":"2025-10-29T01:14:56","modified_gmt":"2025-10-29T00:14:56","slug":"tradejourney-trading-tagebuch-als-php-webapp","status":"publish","type":"page","link":"https:\/\/ea-marketplace.com\/en\/tradejourney-trading-diary-as-php-webapp\/","title":{"rendered":"TradeJourney - Trading diary as a PHP web app"},"content":{"rendered":"<div class=\"products content-wrapper\">\n<div class=\"mycenter\">\n<div class=\"wrap\"> <!-- CTA \/ Demo \/ Download --> <\/p>\n<style> .card{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:16px;max-width:1200px;margin:16px auto;box-shadow:0 8px 20px rgba(0,0,0,.05)} .tj-cta-card{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:16px;max-width:1200px;margin:16px auto;box-shadow:0 8px 20px rgba(0,0,0,.05)} .tj-cred{background:#f8fafc;border:1px dashed #e5e7eb;border-radius:10px;padding:10px;margin:12px 0} .tj-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px} .tj-btn{ --btn-h:36px; \/* 32\u201340px depending on taste *\/ display:inline-flex; align-items:center; justify-content:center; gap:8px; height:var(--btn-h); \/* fixed height *\/ padding:0 12px; \/* vertical 0 because height is fixed *\/ border-radius:12px; border:1px solid #e5e7eb; text-decoration:none; font-weight:700; line-height:1; \/* prevents extra height caused by fonts *\/ font-size:14px; } .tj-btn-primary{background:#2563eb;color:#fff;border-color:#2563eb} .tj-btn-secondary{background:#fff;color:#0f172a} @media (max-width:520px){ .tj-actions{flex-direction:column} } code { background: #f3f4f6; \/* CHANGE BACKGROUND COLOR *\/ color: #0f172a; border: 1px solid #e5e7eb; padding: 0 .35em; border-radius: 6px; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, \"Liberation Mono\", monospace; font-size: 0.95em; } \/* Code blocks *\/ pre { background: #9ba1ab; \/* darker background for blocks *\/ color: #e5e7eb; border: 1px solid #1f2937; border-radius: 12px; padding: 12px 14px; overflow: auto; line-height: 1.5; } \/* prevents double styling inside the block *\/ pre code { background: transparent; color: inherit; border: 0; padding: 0; } <\/style>\n<div class=\"tj-cta-card\">\n<h2>TradeJourney Login<\/h2>\n<div class=\"tj-cred\">\n<div><strong>Username:<\/strong> <code>admin<\/code><\/div>\n<div><strong>Password:<\/strong> <code>TradeJourney!2025<\/code><\/div>\n<\/p><\/div>\n<div class=\"tj-actions\"> <a class=\"tj-btn tj-btn-primary\" href=\"https:\/\/ea-marketplace.com\/tradejournal\/trade_journey.php\" target=\"_blank\" rel=\"noopener\"> Open TradeJourney DE <\/a> <a class=\"tj-btn tj-btn-secondary\" href=\"\/tradejournal\/download.php?lang=de\" target=\"_blank\" rel=\"noopener\"> Download TradeJourney DE <\/a> <a class=\"tj-btn tj-btn-primary\" href=\"https:\/\/ea-marketplace.com\/tradejournal\/trade_journey_en.php\" target=\"_blank\" rel=\"noopener\"> Open TradeJourney EN <\/a> <a class=\"tj-btn tj-btn-secondary\" href=\"\/tradejournal\/download.php?lang=en\" target=\"_blank\" rel=\"noopener\"> Download TradeJourney EN <\/a> <\/p>\n<p>\u00a9 TradeJourney \u2013 Quickly noted. Clearly evaluated.<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<p>&nbsp;<\/p>\n<p> <!-- Overview --> <\/p>\n<div class=\"card\">\n<p><strong>TradeJourney<\/strong> 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.<\/p>\n<ul>\n<li><strong>Input<\/strong>: fast manual entry (open\/close time without seconds, symbol, direction, entry\/exit, SL\/TP, setup, comment, volume, profit \u20ac).<br \/> \u2013 Clicking a row opens a centered pop-up editor to edit, save &#038; close. <\/li>\n<li><strong>Statistics<\/strong>:\n<ul>\n<li>Equity curve (full width)<\/li>\n<li>KPIs: trades, win\/loss, hit rate, gross profit\/loss, profit factor, net PnL, avg\/trade<\/li>\n<li>Wins\/Losses per symbol (stacked bars)<\/li>\n<li>Long vs. Short PnL (donut)<\/li>\n<\/ul>\n<\/li>\n<li><strong>Calculations<\/strong>: the same metrics in compact tiles (stylish, multi-line path display).<\/li>\n<\/ul><\/div>\n<p> <!-- Security --> <\/p>\n<div class=\"card\">\n<h2>Security<\/h2>\n<ul>\n<li>Login\/Logout with session, credentials from external PHP config (journey_config.php).<\/li>\n<li>Optional password hash (BCrypt) via password_hash(&#8230;).<\/li>\n<\/ul><\/div>\n<p> <!-- Files --> <\/p>\n<div class=\"card\">\n<h2>Files (3)<\/h2>\n<ul>\n<li><strong>trade_journal.php<\/strong> \u2013 the application (UI, login, CSV logic).<\/li>\n<li><strong>journey_config.php<\/strong> \u2013 PHP config, returns an array with user, pass or pass_hash, csv.<\/li>\n<li><strong>tradejourney.csv<\/strong> \u2013 data store (created with sample data on first run if not present).<\/li>\n<\/ul><\/div>\n<p> <!-- CSV --> <\/p>\n<div class=\"card\">\n<h2>CSV Columns<\/h2>\n<div class=\"list-box\">\n<div><code>ts_open;ts_close;symbol;direction;entry;sl;tp;exit;rr;setup;comment;volume;profit_eur<\/code><\/div>\n<div class=\"muted\" style=\"margin-top:6px\"> <code>YYYY-MM-DD HH:MM;YYYY-MM-DD HH:MM;DE40|XAUUSD;Long|Short;\u2026;\u2026;\u2026;\u2026;R;\u2026;\u2026;\u2026;123.45<\/code> <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<p> <!-- Installation --> <\/p>\n<div class=\"card grid two\">\n<h2>Installation<\/h2>\n<div>\n<h3>Requirements<\/h3>\n<ul>\n<li>Web server with PHP 7.4+ (rec. 8.x), Apache or Nginx<\/li>\n<li>Write permissions on the folder where the CSV resides<\/li>\n<\/ul><\/div>\n<div>\n<h3>Deploy files<\/h3>\n<pre> trade_journal.php journey_config.php tradejourney.csv (optional, otherwise it will be created) <\/pre>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"card\">\n<h3>Example <code>journey_config.php<\/code><\/h3>\n<p class=\"muted\">Place this file outside the web root (e.g., \/etc\/tradejourney\/journey_config.php) and adjust the require path in trade_journal.php.<\/p>\n<pre><code>&lt;?php return [ 'user' =&gt; 'admin', \/\/ 'pass_hash' =&gt; password_hash('YourSecret', PASSWORD_DEFAULT), 'pass' =&gt; 'TradeJourney!2025', 'csv' =&gt; __DIR__.'\/tradejourney.csv', ];<\/code><\/pre>\n<p><strong>Tip:<\/strong> Generate your hash once in a separate PHP console:<\/p>\n<pre><code>echo password_hash('YourSecret', PASSWORD_DEFAULT);<\/code><\/pre>\n<\/p><\/div>\n<div class=\"card\">\n<h3>File permissions<\/h3>\n<ul>\n<li>journey_config.php: 640 (readable only by web server user\/group).<\/li>\n<li>CSV directory: web server needs write access (for append\/save).<\/li>\n<\/ul><\/div>\n<div class=\"card\">\n<h3>Web server (optional)<\/h3>\n<ul>\n<li>Apache: Make sure PHP is executed; otherwise the code won\u2019t be interpreted.<\/li>\n<li>Nginx: Route PHP-FPM correctly to trade_journal.php.<\/li>\n<\/ul><\/div>\n<p> <!-- First run --> <\/p>\n<div class=\"card\">\n<h2>First Run<\/h2>\n<ol>\n<li>Open the page (e.g., https:\/\/yourhost\/trade_journal.php).<\/li>\n<li>Log in with the credentials from journey_config.php.<\/li>\n<li>Check CSV: path in the \u201cCalculations\u201d tab (CSV file); on first run, sample data is created.<\/li>\n<li>Record your first trade: \u201cInput\u201d tab \u2192 save \u2192 appears in the table below \u2192 click to edit.<\/li>\n<li>View statistics: \u201cStatistics\u201d tab (equity on top, 3 cards below).<\/li>\n<li>Logout: button at the top right.<\/li>\n<\/ol><\/div>\n<p> <!-- Operations --> <\/p>\n<div class=\"card\">\n<h2>Operations &#038; Maintenance<\/h2>\n<ul>\n<li>Backup: regularly back up tradejourney.csv (daily) as well as journey_config.php.<\/li>\n<li>Update: upload the new trade_journal.php; config\/CSV remain unchanged.<\/li>\n<li>Security: enable HTTPS, use only pass_hash, keep config outside the web root.<\/li>\n<\/ul><\/div>\n<p> <!-- Roadmap --> <\/p>\n<div class=\"card\">\n<h2>Roadmap \/ Next Features<\/h2>\n<p>1. CSV upload (import existing journals) => upload CSVs (same column schema) and append.<\/p>\n<p>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 \u2192 CSV; cron\/importer appends).<\/p>\n<p><p>&nbsp;<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- \/.wrap --> <\/div>\n<p><!-- \/.mycenter --> <\/div>\n<p><!-- \/.content-wrapper --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>TradeJourney Login Username: admin Password: TradeJourney!2025 Open TradeJourney DE Download TradeJourney DE Open TradeJourney EN Download TradeJourney EN \u00a9 TradeJourney [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-3191","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ea-marketplace.com\/en\/wp-json\/wp\/v2\/pages\/3191","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ea-marketplace.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ea-marketplace.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ea-marketplace.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ea-marketplace.com\/en\/wp-json\/wp\/v2\/comments?post=3191"}],"version-history":[{"count":2,"href":"https:\/\/ea-marketplace.com\/en\/wp-json\/wp\/v2\/pages\/3191\/revisions"}],"predecessor-version":[{"id":3193,"href":"https:\/\/ea-marketplace.com\/en\/wp-json\/wp\/v2\/pages\/3191\/revisions\/3193"}],"wp:attachment":[{"href":"https:\/\/ea-marketplace.com\/en\/wp-json\/wp\/v2\/media?parent=3191"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}