BLT Journal
demo
⚙
Demo This is the real journal with sample trades. Look around: nothing you do here is saved. Get the journal → Leave the demo
Ask

These conversations were asked of the sample journal in advance. In your own journal, Ask answers anything, with an AI key you save once.

Is my problem the strategy or how I execute it?
Mon 12 Oct, 17:17
Is my problem the strategy or how I execute it?

When you followed your rules, 68 trades averaged 0.53R and netted 6606.44. When you broke at least one, 65 trades averaged -0.14R and netted -2230.22.

The trades inside your rules do clearly better than the ones outside them, so the first place to work is execution, not the strategy itself.

Figures from your journal, not advice. A few trades say little; the pattern over many is what counts.

What it ran · 1 query
1 2 rows
SELECT plan_adherence AS verdict, COUNT(*) AS trades, ROUND(SUM(net_pnl), 2) AS net, ROUND(AVG(r_actual), 2) AS avg_r FROM journal_trades WHERE status = 'closed' AND plan_adherence IS NOT NULL GROUP BY plan_adherence ORDER BY plan_adherence
verdicttradesnetavg_r
broke65-2230.22-0.14
followed686606.440.53
Mon 12 Oct, 17:17
Which rule do I break most, and what does it cost me?

The rule you break most is “Waited for the retest”: 15 trades, averaging 0.00R, netting 233.67.

The one that costs you most is “Never move the stop further away”: 8 trades, netting -1515.31.

A trade can break more than one rule, so these groups overlap and should not be added up. Figures from your journal, not advice.

What it ran · 1 query
1 7 rows
SELECT 'No new trade within 30 minutes of closing a loser' AS rule, COUNT(*) AS trades, ROUND(SUM(net_pnl), 2) AS net, ROUND(AVG(r_actual), 2) AS avg_r FROM journal_trades WHERE status = 'closed' AND broken_rules_json LIKE '%30 minutes%' UNION ALL SELECT 'Waited for the retest' AS rule, COUNT(*) AS trades, ROUND(SUM(net_pnl), 2) AS net, ROUND(AVG(r_actual), 2) AS avg_r FROM journal_trades WHERE status = 'closed' AND broken_rules_json LIKE '%Waited for the retest%' UNION ALL SELECT 'Level was untouched since it formed' AS rule, COUNT(*) AS trades, ROUND(SUM(net_pnl), 2) AS net, ROUND(AVG(r_actual), 2) AS avg_r FROM journal_trades WHERE status = 'closed' AND broken_rules_json LIKE '%untouched since it formed%' UNION ALL SELECT 'Never add to a losing trade' AS rule, COUNT(*) AS trades, ROUND(SUM(net_pnl), 2) AS net, ROUND(AVG(r_actual), 2) AS avg_r FROM journal_trades WHERE status = 'closed' AND broken_rules_json LIKE '%add to a losing trade%' UNION ALL SELECT 'No more than 4 trades in a day' AS rule, COUNT(*) AS trades, ROUND(SUM(net_pnl), 2) AS net, ROUND(AVG(r_actual), 2) AS avg_r FROM journal_trades WHERE status = 'closed' AND broken_rules_json LIKE '%4 trades in a day%' UNION ALL SELECT 'Never move the stop further away' AS rule, COUNT(*) AS trades, ROUND(SUM(net_pnl), 2) AS net, ROUND(AVG(r_actual), 2) AS avg_r FROM journal_trades WHERE status = 'closed' AND broken_rules_json LIKE '%move the stop further%' UNION ALL SELECT 'Risk no more than 1% of equity' AS rule, COUNT(*) AS trades, ROUND(SUM(net_pnl), 2) AS net, ROUND(AVG(r_actual), 2) AS avg_r FROM journal_trades WHERE status = 'closed' AND broken_rules_json LIKE '%1% of equity%' ORDER BY trades DESC
ruletradesnetavg_r
Waited for the retest15233.670.00
Never add to a losing trade15-525.32-0.20
Level was untouched since it formed1214.56-0.08
No new trade within 30 minutes of closing a loser10-1352.48-0.24
Never move the stop further away8-1515.31-0.93
No more than 4 trades in a day8-425.52-0.04
Risk no more than 1% of equity7537.370.27