Level 3 — ProductionEntry, Exit & Trade Management

Entry, Exit & Trade Management

45 minutes60 marksprintable — key stays hidden on paper

Level: 3 — Production (from-scratch derivations, code-from-memory, explain-out-loud) Time limit: 45 minutes Total marks: 60

Instructions: Show all working. Where code is requested, pseudocode/Python is acceptable but logic must be complete. Round money to 2 decimals, R-multiples to 2 decimals unless stated.


Question 1 — Derive expectancy from scratch (10 marks)

A trader has the following stats over 50 trades: win rate 40%, average winning trade = +2.5R, average losing trade = −1.0R.

(a) Derive the expectancy formula in R-multiples from first principles, explaining each term. (3) (b) Compute the expectancy per trade in R. (3) (c) If each 1R risk = ₹2,000 and the trader takes 200 trades over a quarter, estimate expected profit. State one assumption. (3) (d) State, in one sentence, why a system with 40% win rate can still be highly profitable. (1)


Question 2 — Stop placement methods & sizing (12 marks)

A long setup: entry at ₹500. The recent swing low (structure) is ₹488. The 14-period ATR = ₹6.

(a) Compute the stop price for: (i) a fixed 2% stop, (ii) a 1.5× ATR stop, (iii) a structure stop placed ₹1 below the swing low. (6) (b) For each stop in (a), compute the risk-per-share (₹). (3) (c) Account size ₹5,00,000, risk budget 1% per trade. Using the structure stop, compute position size (shares) and the notional exposure. (3)


Question 3 — Risk-reward & target setting (10 marks)

Same trade as Q2: entry ₹500, structure stop at ₹487.

(a) Derive the minimum target price required to satisfy a 1:2 risk-reward ratio. Show the derivation. (4) (b) The nearest resistance is at ₹520. State whether the trade meets the 1:2 rule against this resistance and justify numerically. (3) (c) Explain out loud (write it) why taking trades below 1:2 RR degrades long-run expectancy even with a good win rate. (3)


Question 4 — Trailing stop / break-even logic from memory (12 marks)

Write pseudocode for a trade-management engine that:

  • enters long at entry, sets initial stop at entry - R (R = risk per share);
  • moves the stop to break-even once price reaches entry + 1R;
  • thereafter trails the stop at high_since_entry - 1.5*ATR, but never lowers the stop;
  • exits if price <= stop.

(a) Write the function manage_trade(entry, R, atr, price_series) returning exit price and R-multiple achieved. (8) (b) Explain in 2–3 sentences the trade-off between a tight trail (1×ATR) and a loose trail (3×ATR). (4)


Question 5 — Scaling out on a winning trade (10 marks)

Long 300 shares at ₹500, initial stop ₹487 (risk ₹13/share). The plan:

  • sell 1/3 at +1R, move stop to break-even;
  • sell 1/3 at +2R;
  • trail the final 1/3, which finally exits at +3R.

(a) Compute the exit price at each scale-out level. (3) (b) Compute total profit (₹) across the three exits. (4) (c) Compute the blended R-multiple for the whole position. (3)


Question 6 — Explain-out-loud: cutting losers & setup rules (6 marks)

(a) A trading setup must have "clear rules". List four distinct rule components a complete setup definition must specify. (3) (b) Explain why "cutting losers quickly" and honouring the initial stop protect expectancy — reference R-multiples in your answer. (3)

Answer keyMark scheme & solutions

Question 1 (10)

(a) Derivation (3) Expected value per trade = sum over outcomes of (probability × payoff). Two outcomes: win (prob WW) pays RwR_w; loss (prob 1W1-W) pays RlR_l (negative). E=WRw+(1W)RlE = W\cdot R_w + (1-W)\cdot R_l

  • WW = win rate (probability of a winner) — 1 mark
  • RwR_w = average win in R, RlR_l = average loss in R (signed) — 1 mark
  • Sum weighted by probabilities gives expectancy per trade — 1 mark

(b) Compute (3) E=0.40(2.5)+0.60(1.0)=1.00.6=0.40 RE = 0.40(2.5) + 0.60(-1.0) = 1.0 - 0.6 = \mathbf{0.40\ R} per trade. (setup 1, arithmetic 2)

(c) Profit estimate (3) Expected R per trade = 0.40; total R over 200 trades = 0.40×200=800.40\times200 = 80R. ₹ per R = ₹2,000 → profit =80×2000=1,60,000= 80\times2000 = \mathbf{₹1,60,000}. Assumption: R (risk) held constant and stats stable/independent across trades. (1 for R total, 1 for ₹, 1 for assumption)

(d) One sentence (1) Because the average winner (2.5R) is much larger than the average loser (1R), the positive payoff asymmetry more than compensates for winning less than half the time.


Question 2 (12)

(a) Stops (6, 2 each)

  • (i) Fixed 2%: 500×0.98=490.00500\times0.98 = \mathbf{₹490.00}
  • (ii) 1.5×ATR: 5001.5×6=5009=491.00500 - 1.5\times6 = 500-9 = \mathbf{₹491.00}
  • (iii) Structure: 4881=487.00488 - 1 = \mathbf{₹487.00}

(b) Risk per share (3, 1 each)

  • Fixed: 500490=10500-490 = ₹10
  • ATR: 500491=9500-491 = ₹9
  • Structure: 500487=13500-487 = ₹13

(c) Position size, structure stop (3) Risk budget =1%×5,00,000=5,000= 1\%\times5,00,000 = ₹5,000. Shares =5000/13=384.6384= 5000/13 = 384.6 \to \mathbf{384} shares (round down). (2) Notional =384×500=1,92,000= 384\times500 = \mathbf{₹1,92,000}. (1)


Question 3 (10)

(a) 1:2 target (4) Risk per share =500487=13= 500-487 = ₹13. Reward required =2×= 2\times risk =2×13=26= 2\times13 = ₹26. (2) Target =500+26=526= 500 + 26 = \mathbf{₹526}. (2)

(b) Against resistance (3) Available reward to ₹520 =520500=20= 520-500 = ₹20. RR =20/13=1.54= 20/13 = 1.54, which is < 2. (2) Trade does not meet the 1:2 rule against this resistance; reject or find a lower-risk entry. (1)

(c) Explain (3) Expectancy =WRw+(1W)Rl= W\cdot R_w+(1-W)\cdot R_l. Below 1:2 the average winner shrinks toward the average loser, so even a decent win rate produces low or negative expectancy; costs/slippage further erode it, and drawdowns deepen because winners no longer cover the accumulated losses. (3 for expectancy reasoning + magnitude point)


Question 4 (12)

(a) Pseudocode (8)

def manage_trade(entry, R, atr, price_series):
    stop = entry - R              # initial stop (1)
    be_done = False               # break-even flag
    high = entry
    for price in price_series:
        high = max(high, price)                    # track high (1)
        if not be_done and price >= entry + R:     # reached +1R
            stop = max(stop, entry)                 # move to break-even (2)
            be_done = True
        if be_done:                                # trail after BE
            trail = high - 1.5 * atr
            stop = max(stop, trail)                 # never lower (2)
        if price <= stop:                          # exit condition (1)
            exit_price = stop
            r_multiple = (exit_price - entry) / R  # (1)
            return exit_price, r_multiple
    # series ended without hit: mark to last price
    exit_price = price_series[-1]
    return exit_price, (exit_price - entry) / R

Marks: init stop 1, BE move 2, trail w/ never-lower 2, high tracking 1, exit 1, R-calc 1.

(b) Trade-off (4) A tight 1×ATR trail locks profits fast and cuts giveback but gets shaken out on normal noise, capping many trades near break-even/small wins. A loose 3×ATR trail lets winners run into large R-multiples but returns more open profit on reversals and produces choppier results. Choice depends on whether the edge is in frequent small wins or occasional large trends. (2 for each side)


Question 5 (10)

(a) Exit prices (3) R = ₹13. +1R = 513, +2R = 526, +3R = 539.

  • +1R: ₹513 — +2R: ₹526 — +3R: ₹539 (1 each)

(b) Total profit (4) 100 shares each tranche.

  • Tranche 1: 100×13=1,300100\times13 = ₹1,300
  • Tranche 2: 100×26=2,600100\times26 = ₹2,600
  • Tranche 3: 100×39=3,900100\times39 = ₹3,900 Total =1300+2600+3900=7,800= 1300+2600+3900 = \mathbf{₹7,800}. (1 each tranche + 1 sum)

(c) Blended R (3) Total R risked initially =300×13=3,900= 300\times13 = ₹3,900 = 1R for full position. Blended R =7800/3900=2.0R= 7800/3900 = \mathbf{2.0R}. (Equivalently 13(1+2+3)=2.0R\tfrac{1}{3}(1+2+3)=2.0R.) (2 method, 1 answer)


Question 6 (6)

(a) Four rule components (3, ¾ each) Any four of: entry trigger/signal, confirmation criteria, stop-loss placement rule, target/exit rule, position-sizing/risk rule, market/time filter (which instruments/sessions).

(b) Cutting losers (3) The initial stop defines 1R; honouring it caps every loss at −1R (or less). Letting losers run turns −1R into −2R/−3R losses, which distorts the loss term in expectancy (1W)Rl(1-W)R_l and can flip a positive edge negative. Quick exits preserve the assumed R-distribution the whole system was built on.

[
{"claim":"Q1b expectancy = 0.40R","code":"E=Rational(40,100)*Rational(5,2)+Rational(60,100)*(-1); result=(E==Rational(2,5))"},
{"claim":"Q1c profit = 160000","code":"result=(0.40*200*2000==160000)"},
{"claim":"Q3a 1:2 target = 526","code":"risk=500-487; result=(500+2*risk==526)"},
{"claim":"Q3b RR to 520 < 2","code":"rr=Rational(520-500,500-487); result=(rr<2)"},
{"claim":"Q5b total profit = 7800","code":"result=(100*13+100*26+100*39==7800)"},
{"claim":"Q5c blended R = 2","code":"result=(Rational(7800,300*13)==2)"}
]