These conversations were asked of the sample journal in advance. In your own journal, Ask answers anything, with an AI key you save once.
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
| verdict | trades | net | avg_r |
|---|---|---|---|
| broke | 65 | -2230.22 | -0.14 |
| followed | 68 | 6606.44 | 0.53 |
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
| rule | trades | net | avg_r |
|---|---|---|---|
| Waited for the retest | 15 | 233.67 | 0.00 |
| Never add to a losing trade | 15 | -525.32 | -0.20 |
| Level was untouched since it formed | 12 | 14.56 | -0.08 |
| No new trade within 30 minutes of closing a loser | 10 | -1352.48 | -0.24 |
| Never move the stop further away | 8 | -1515.31 | -0.93 |
| No more than 4 trades in a day | 8 | -425.52 | -0.04 |
| Risk no more than 1% of equity | 7 | 537.37 | 0.27 |