Home › Templates › Swing trading journal

Swing Trading Journal Template

A free swing trading journal for Excel and Google Sheets that tracks each multi-day trade from entry to final exit: initial risk, up to two partial exits, net P/L after fees, R-multiple, holding days, earnings dates, optional MAE/MFE and the total risk still open across your positions (heat). A summary tab adds expectancy, win/loss stats, results by setup and by month, and an equity curve.

Download Excel template (.xlsx) 450 KB · no macros · Excel 2016+ and Google Sheets · v1.0, 29 Oct 2026

Use it in Google Sheets: choose File → Import → Upload in Sheets and pick the .xlsx, or upload it to Google Drive and open it with Google Sheets. No sign-up, no add-on, no broker connection.

Preview: the Example tab with 26 fictional swing trades (tickers TKR-A to TKR-H, July to October 2026; all prices made up). Account $20,000, max open heat 6%. Open trades are valued as of 29 Oct 2026.
#TradeSetupEntryExitDays heldSharesScale-outsRisk $Net P/LROpen risk
1TKR-A LongBreakout06 Jul14 Jul61001$200.00$358.00+1.79R
2TKR-B LongPullback08 Jul10 Jul2200$200.00−$212.00−1.06R
3TKR-C ShortFailed breakout13 Jul17 Jul41501$195.00$358.00+1.84R
4TKR-D LongBase breakout15 Jul24 Jul7120$192.00−$590.00−3.07R
5TKR-E LongTrend continuation20 Jul31 Jul9802$200.00$381.50+1.91R
6TKR-F LongPullback22 Jul22 Jul0 (same day)300$195.00−$212.00−1.09R
… 17 more closed trades (rows 7–23 in the file) …
24TKR-H LongBreakout19 Oct–1001$200.00open–$50.00
25TKR-A LongPullback22 Oct–100$200.00open–$200.00
26TKR-C ShortFailed breakout26 Oct–150$195.00open–$0.00
Open heat: $250.00 of $22,057.50 current equity1.13%
Example Summary tab: equity after each of 23 fictional closed swing trades, from $20,000.00 to $22,057.50; deepest drop from a peak −$802.00, after closed trade #5 on 24 Jul, the earnings gap$19,500$20,500$21,500$22,500Start48121620Closed trade # in exit-date order (Jul–Oct 2026, fictional)lowest point below a peak (max drawdown −$802.00)

Chart: equity after each closed trade, from the Example Summary tab. The workbook draws the same curve as a native chart, plus a bar chart of net P/L by month.

Swing or day trading? This template is for positions held overnight, for days or weeks: dates instead of times, holding days, scale-outs, earnings dates and open heat. For intraday trades with sessions and a daily loss limit, use the day trading journal template. For a general log with plan adherence and emotions, see the trading journal template.

What's inside the spreadsheet

TabWhat you typeWhat it calculates
Start hereNothingSteps, definitions, gap-risk note, colour key, limits, disclaimer
JournalAccount size and max open heat % once, then one row per trade (500 rows)Status, holding days, earnings flag, initial risk, planned reward:risk, average exit price, net P/L, R-multiple, MAE/MFE in R, open risk; current equity and heat check at the top
SummaryNothing35 metrics (expectancy, win rate, payoff ratio, profit factor, holding days, drawdown, heat), results by setup and by exit month, closed-trade equity table, equity-curve and monthly P/L charts
Example / Example SummaryAlready filled26 fictional trades (23 closed, 3 open) so every formula can be seen working
ListsOptional editsSetup and catalyst names for the dropdowns; a holiday list that holding days skip

The swing-specific fields

FieldWhy it is there
Entry date, final exit date → holding daysWeekdays between entry and exit (NETWORKDAYS − 1). 0 means a same-day round trip, labelled "Same day".
Scale-out 1 and 2 (shares, price)Partial exits. The rest of the position closes at the final exit price; P/L adds all three.
Initial stop, current stopInitial stop sets risk and R. Current stop (optional) sets the open risk once you trail the stop.
Catalyst, earnings dateTag the reason for the trade. If the earnings date falls inside the holding period, the row is flagged "Earnings inside trade? Yes".
MAE / MFE price (optional)Worst and best price while you held the trade, turned into R. Shows how far trades went against you before working, and how much open profit was given back.
Open risk (heat)For open trades: shares still held × distance from entry to current stop, zero once the stop is at or past entry. Added up and compared with your max heat %.

How to use it

  1. On Journal, type your account size in C3 and the most you are willing to have at risk across open trades in C4 (as a % of equity).
  2. When you enter a trade, add a row: ticker, Long or Short, setup, catalyst, next earnings date if one falls in the next weeks, entry date, shares, entry price, initial stop and target. A position size calculator gives the shares for a set dollar risk.
  3. Sell part of the position? Type the shares and price under Scale-out 1 (then 2). Trail the stop? Type the new level under Current stop.
  4. When the rest is sold, type the final exit date and price and the total fees. If you track them, add the lowest and highest price reached while you held the trade (MAE/MFE prices).
  5. Leave the grey columns alone. Before adding a new trade, check Open heat % and the heat check in J3:J4.
  6. Once a week, read Summary: expectancy, which setups and months made or lost money, and how the equity curve moved.

Overnight and gap risk

A swing trade stays open while the market is closed. News, earnings or a market-wide move can make a stock open far away from the previous close, past your stop. Investor.gov explains that a stop order becomes a market order once the stop price is reached, and that "the price at which your trade is executed may differ from the stop price, especially in a fast-moving market where stock prices can change rapidly."

That is why the journal keeps the planned stop (for R) separate from the actual exit price, and why a loss can be bigger than −1R. In the example, trade 4 bought 120 TKR-D at $60.00 with a stop at $58.40 ($192.00 risk), held through an earnings report on 23 Jul and was sold the next day at $55.10: −$590.00, or −3.07R. It is the only closed example trade held through earnings, and the Summary counts such trades and their P/L separately.

Swing trades and the 2026 pattern day trader change

Investor.gov's glossary defines a day trade as "the purchase and sale, or the sale and purchase, of the same security on the same day in a margin account". It lists as an exception "a long security position held overnight and sold the next day prior to any new purchase of the same security". A swing trade held overnight is therefore not a day trade. The journal's "Overnight?" column marks any same-day round trip, so those stand out.

Rule change in 2026. FINRA Regulatory Notice 26-10 (April 20, 2026) says FINRA "has adopted new intraday margin standards to replace in their entirety the outdated day trading margin requirements, including the day trade count requirements for designating a customer as a “pattern day trader” and the $25,000 pattern day trader minimum equity requirement." The effective date was June 4, 2026, and firms may phase in the change until October 20, 2027. FINRA's investor article "Frequent Intraday Trading: Understanding the Basics" adds that to trade on margin "you must maintain a minimum of $2,000 in equity in your margin account", and brokers may require more. Check your own broker's terms.

The formulas, explained

Exact formulas from row 7 of Journal. Inputs: B side, E earnings date, F entry date, G shares, H entry, I initial stop, J target, K current stop, L/M scale-out 1 shares/price, N/O scale-out 2, P exit date, Q exit price, R fees, S MAE price, T MFE price.

FieldFormula
Status (U)=IF(A7="","",IF(N(G7)-N(L7)-N(N7)<0,"Check shares",IF(AND(P7<>"",Q7<>""),"Closed","Open")))
Holding days (V)=IF(OR(F7="",P7=""),"",NETWORKDAYS(F7,P7,Lists!$F$5:$F$40)-1)
Earnings inside trade? (X)=IF(OR(E7="",F7=""),"",IF(AND(E7>=F7,OR(P7="",E7<=P7)),"Yes","No"))
Shares left for final exit (Y)=IF(A7="","",N(G7)-N(L7)-N(N7))
Initial risk $ (Z)=IF(OR(G7="",H7="",I7=""),"",ABS(H7-I7)*G7)
Net P/L $ (AC)=IF(U7<>"Closed","",IF($B7="Short",-1,1)*((N(M7)-H7)*N(L7)+(N(O7)-H7)*N(N7)+(Q7-H7)*Y7)-N(R7))
R-multiple (AD)=IF(OR(AC7="",N(Z7)=0),"",AC7/Z7)
MAE in R (AE)=IF(OR(S7="",N(Z7)=0),"",IF($B7="Short",-1,1)*(S7-H7)*G7/Z7)
Open risk $ (AG)=IF(U7<>"Open","",Y7*MAX(0,IF($B7="Short",-1,1)*(H7-IF(K7="",I7,K7))))
Open heat % (J3)=IF(N(G3)<=0,"",G4/G3) with G3 = =N(C3)+SUM(AC7:AC506) and G4 = =SUM(AG7:AG506)
Summary: expectancy in R (B18)=IF(B17=0,"",SUMIFS(Journal!$AD$7:$AD$506,Journal!$U$7:$U$506,"Closed",Journal!$Z$7:$Z$506,">0")/B17)
Summary: average holding days (B23)=IF(B6=0,"",AVERAGEIFS(Journal!$V$7:$V$506,Journal!$U$7:$U$506,"Closed"))
Summary: equity after trade k (Q)=IF(L6>$B$6,Q5,Q5+O6), with the trade found by =IF(L6>$B$6,"",INDEX(Journal!$AC$7:$AC$506,MATCH(L6,Journal!$AI$7:$AI$506,0)))

Expectancy here is the average R of closed trades. The Summary also shows it in dollars and checks it the long way: win rate × average win + loss rate × average loss. Both give $89.46 per trade in the example. For background, see Understanding expectancy. The equity table uses an "exit order" helper column on Journal, so trades closed in a different order than they were opened still plot in date order.

Worked example from the sample data

A trade with two partial exits

Trade 5: 80 TKR-E bought at $75.00, initial stop $72.50, so the risk is ($75.00 − $72.50) × 80 = $200.00. The trader sold 40 at $79.00, 20 at $81.00 and the last 20 at $80.20, paying $2.50 in fees:

40 × 4.00 + 20 × 6.00 + 20 × 5.20 − 2.50 = $381.50 → $381.50 / $200.00 = +1.91R, held 9 days. MAE −0.44R, MFE +2.80R: the price went 0.44R against the trade before reaching 2.8R of open profit.

Open heat on 29 Oct

Open tradeShares leftEntryStop usedOpen risk
TKR-H Long (50 sold at $38.00)50$36.00$35.00 (trailed)$50.00
TKR-A Long100$60.00$58.00 (initial)$200.00
TKR-C Short150$47.00$47.00 (breakeven)$0.00
Total heat / current equity $22,057.50$250.00 = 1.13%

The TKR-H position also has an earnings date (5 Nov) after entry, so it is flagged "Earnings inside trade? Yes" while it stays open: a reminder that a gap could exit it below its stop.

The 23 closed trades together

23closed trades, 3 still open
65.2%win rate (15 of 23)
+0.44Rexpectancy: average R per trade
$2,057.50net P/L after $47.00 fees
5.5average holding days (winners 6.7, losers 3.1)
−$802.00max drawdown (closed-trade equity)

Average win +1.38R, average loss −1.32R, profit factor 1.99. The average loss is worse than −1R because of the earnings gap in trade 4 and fees.

SetupClosedWin rateNet P/LAvg RAvg days
Breakout475%$642.00+0.80R4.5
Pullback633%−$265.00−0.23R4.2
Base breakout475%$376.50+0.44R7.8
Trend continuation3100%$582.50+0.97R8.7
Earnings gap1100%$382.50+1.91R10.0
Mean reversion250%$11.00+0.03R3.0
Failed breakout367%$328.00+0.55R3.3
Exit monthClosedWin rateNet P/LSum of RAvg R
Jul 2026650%$83.50+0.31R+0.05R
Aug 2026771%$852.50+4.24R+0.61R
Sep 2026560%$190.00+0.92R+0.18R
Oct 2026580%$931.50+4.66R+0.93R

The data is made up and 23 trades are far too few to judge a setup. Read tables like these as questions to test over months of your own trades, not as findings. Winners were held longer than losers here (6.7 vs 3.1 days): your own numbers may differ.

Common mistakes

FAQ

What should a swing trading journal include?

For each trade: ticker, long or short, setup, catalyst, entry date and price, shares, initial stop, target, any partial exits, final exit date and price, and fees. From those a journal can work out initial risk, net P/L, R-multiple and holding days. For open trades it adds the risk still on the table (heat). A summary then shows expectancy, win rate, average win and loss, and results by setup and by month.

How do you calculate the R-multiple when you scale out of a trade?

Add up the P/L of every exit (each partial and the final exit), subtract fees, then divide by the initial risk: |entry − initial stop| × total shares. In the example, 80 TKR-E shares bought at $75.00 with a $72.50 stop risk $200.00. Selling 40 at $79.00, 20 at $81.00 and the last 20 at $80.20, minus $2.50 fees, nets $381.50, so the trade is +1.91R.

What is portfolio heat in swing trading?

Heat is the total amount you would lose if every open position hit its current stop at once, usually shown as a percentage of the account. The template works it out for each open trade (shares still held × distance from entry to current stop, or zero once the stop is at or past entry) and compares the total with the maximum you set.

How long is a swing trade held?

There is no official definition. Swing trades are held overnight, often for several days or weeks, while day trades open and close in the same session. The journal measures your own holding days with NETWORKDAYS, so you can compare winners and losers instead of relying on a rule of thumb.

Does the pattern day trader rule apply to swing trades?

A position held overnight and closed on a later day is not a day trade under the definition Investor.gov gives. In addition, FINRA Regulatory Notice 26-10 says FINRA replaced the day trading margin requirements, including the pattern day trader day trade count and the $25,000 minimum equity, effective June 4, 2026, with firms allowed to phase in until October 20, 2027. Margin accounts still need at least $2,000 in equity, and brokers can set stricter rules, so check your broker.

Can I use this swing trading journal in Google Sheets?

Yes. In Google Sheets choose File → Import → Upload and pick the .xlsx, or upload it to Drive and open it with Google Sheets. The formulas use functions found in Excel 2016+, Google Sheets and LibreOffice (NETWORKDAYS, COUNTIFS, SUMIFS, AVERAGEIFS, INDEX/MATCH, EDATE).

Related tools and templates

Educational template only, not financial, tax or investment advice. Trading involves risk of loss, and holding positions overnight exposes them to price gaps; trading on margin can lose more than you deposit. Example data is fictional: tickers TKR-A to TKR-H and all prices, fees and results are made up. FINRA and Investor.gov material was retrieved on 29 October 2026.