I Built an Open Source Trading Journal in 11 Days
By Vigil Research Team
Source review:
On March 14, 2025, at 9:17 a.m., I watched a $612 NQ winner turn flat because my notes were a mess. I kept reaching for the chart history, then the broker history, then my memory, and every version told a different story. That was the day I stopped trusting a plain spreadsheet and started building an open source trading journal.
I keep a prop firm performance audit open when I test a new setup, because memory is biased and the trade log is not.
Why I wanted an open source trading journal
The first version lived in a Google Sheet. It looked clean for about two days.
Then I started skipping fields. Then I started copying and pasting the same note into three rows. Then I started writing things like “felt good” and pretending that meant something. The sheet had numbers, but it did not have truth. A bad journal can make a trader feel organized while the account bleeds slowly.
I wanted an open source trading journal because I wanted the file to break in the same places I break. If the structure is visible, the mistakes are visible too. If the notes live in plain text, I can search them, version them, and inspect them without begging some polished app to show me what I already know. That matters on days when I am moving between TradingView, NinjaTrader, and a prop firm dashboard at the same time.
The real reason was uglier than productivity. I was tired of lying to myself in private.
When I was on FTMO evals and later on Apex, the failure pattern was never mysterious. I would enter too fast after a clean first move, then tell myself I was “staying aggressive.” That line sounds smart until you read it three times in a row and realize it is just fear with better branding. An open source trading journal made that pattern impossible to hide for long.
That was the point.
The free trade journaling software trap
Most free trade journaling software is built to feel helpful before it is built to tell the truth.
It gives you colorful charts, a dashboard, maybe a win rate badge. It makes the first week feel productive. Then the data gets thin. The trade tags are vague. The notes field becomes a junk drawer. You end up with a system that looks like a business and behaves like a souvenir.
Why do so many traders keep a log that tells them nothing?
Because the pretty version is easier to open after a loss. Because a clean interface can soothe the ego. Because it is easier to export screenshots than to face the part where the setup was late, the size was wrong, and the exit came from panic. A trading diary that feels nice is not the same thing as a trading diary that changes behavior.
On TradingView, I used to mark entries on MES and NQ with colored labels and call that journaling. It was not journaling. It was decoration. The first time I copied those same trades into a plain open source trading journal, the difference was brutal. I could see that I was overtrading the first ten minutes after the open, especially on Tuesday mornings, especially after one clean winner.
The numbers did not flatter me. That helped.
The part I had to write in plain text
I built the first version around the simplest fields I could survive. Entry time. Exit time. Instrument. Platform. Reason for trade. Reason for exit. Screenshot path. Emotion. Result.
That sounds boring. Good. Boring is useful.
A 5-sentence paragraph is where the real work starts, because this part of the system has to survive the days when I do not want to do the work at all. When I was testing on NinjaTrader with Rithmic data, the journal had to be fast enough that I could log a CL trade in under a minute, or I would skip it. When I was checking a Topstep sim on Tradovate, the field names had to be obvious enough that I did not need a manual to remember what I meant. When I looked at a bad EUR/USD scalp from a quiet London session, the notes had to force one honest sentence, not five clever ones. If I could not explain the trade in one line, the trade probably should not have existed. The journal only worked when I started writing the part I wanted to hide.
The journal only worked when I started writing the part I wanted to hide.
> The journal only worked when I started writing the part I wanted to hide.
That sentence hurt because it was true.
I lost $418 on a late NQ short on April 9, 2025. I felt embarrassed and angry at my screen.
The bad trade is the one you must log first.
After that loss, the notes got better. Not prettier. Better.
Why a trading journal website free still fails me
A trading journal website free can be fine for collecting data. It usually fails at context.
The problem is not the upload button. The problem is the missing story around the trade. A chart image shows the entry candle. It does not show that I was annoyed from the prior loss. It does not show that I had already missed one clean setup and chased the second. It does not show that I was trading from boredom at 11:26 a.m. after the clean window was gone.
That is why the open source trading journal mattered more than the hosted ones. I could add the exact field I needed. I could make “why I took it” mandatory and “how I felt” short. I could keep the file in Markdown and still open it in Obsidian, VS Code, or a terminal. I could grep for “bored” and see every stupid trade I had made in a month.
That was the contrarian part of this build. Most traders think the answer is better discipline at the chart. I think most traders need uglier records first. Not fancier records. Uglier records. If the log is honest enough, the discipline shows up later because the pattern becomes too obvious to ignore.
On a slow week in May, I compared ten NQ trades from a clean setup block against ten trades I took after 11:00 a.m. The first group had better hold times and cleaner exits. The second group was full of scratches and small revenge entries. The market did not change. My state did.
That is the evidence.
How I used a free day trading journal on Apex
Apex taught me how fast a small mistake can become a habit.
On one sim block, I was trading MES on a quiet afternoon and kept the journal open beside the chart. Every time I entered, I wrote the reason before I wrote the result. That tiny delay slowed me down in a useful way. It made me ask whether I was taking a setup or taking a feeling. The answer changed more often than I wanted.
The best part of a free day trading journal is not the cost. It is the friction. A little friction can save an account. If a note takes ten seconds, I am more likely to write the truth. If it takes three clicks and a login and a category picker and a sync wait, I will tell myself I can do it later. Later is where bad habits breed.
I started tagging by instrument, time of day, and reason. Not because the tags were fancy, but because they gave me one clean way to compare the same mistake across different markets. An NQ impulse trade at the open and a GC impulse trade after lunch were different animals, but the journal showed the same trigger. I wanted motion. I got boredom. I wanted conviction. I got speed.
That was the filter.
The that setup gave me one more thing I did not expect. It made review feel personal again. When I opened a file from three weeks earlier, I saw my own bad decisions with no app trying to soften them. No badge. No confetti. No fake coaching tone. Just the trade, the note, the number, the result.
The note that changed the next trade
After enough entries, the pattern got simple.
My worst trades came after I skipped one clean rule, then invented a story to defend it. That happened on FTMO evals. It happened on a Topstep sim. It happened on real days when I thought a small loss meant I should “get it back” before lunch. The market never asked for that. I volunteered.
An that setup can expose that if it is built to ask one hard thing: what did you know before you clicked? Not after. Before.
That question changed the way I reviewed entries on TradingView and the way I checked fills on NinjaTrader. It changed how I looked at MES scalps, how I sized NQ, and how I treated the first red trade of the day. I stopped asking whether I had made money in the last hour. I started asking whether the process survived the last hour.
The process mattered more than the line.
That is the cleanest answer I found, and it did not come from a dashboard.
The that setup worked because it refused to flatter me. The free tools did not fail because they were free. They failed because they made honesty optional, and optional honesty is where traders go to disappear.
More: futures calculator · best prop firms ranked · trailing drawdown simulator
Check Your Trade Compliance
Paste a trade. Pick your firm. See exactly which rules you broke -- drawdown, daily loss, holding, news, consistency. 3 free audits per month.
Reviewed current rules dataset | Rules verified against official firm websites