Put in simple terms, a Random Walk basically involves taking successive random steps and tracing the trajectory. I adapted the example from part one of Wilmott on Quantitative Finance and wrote a quick MATLAB script to simulate a simple random walk. Basically flip a coin if it is heads multiply the equity seed by 1.01 and if its tails multiply by 0.99.

# Results

The graphs below show successive runs of the script. I simulated 10,000 coin tosses in each test.

**Simulated Random Walk – Sim One:** You flipped 5000 heads & 5000 tails

**Simulated Random Walk – Sim Two:** You flipped 5077 heads & 4923 tails

**Simulated Random Walk – Sim Three:** You flipped 4890 heads & 5110 tails

# MATLAB Code

Writing the code in MATLAB is very straightforward I wrote the code in less then five minutes so it is a bit rough around the edges. I probably could refactor it but it does the job.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
% Simple Simulated Random Walk Adapted % from part 1 Paul Wilmott on Quant Fin % create matrix with random int either 1 or 2 randMat = randi(2,10000,1); randEquity = [1:10000]; headCount = 0; tailCount = 0; equitySeed = 100.00; for i=1:10000 if randMat(i)==1 % we flipped a heads headCount = headCount + 1; equitySeed = 1.01 * equitySeed; randEquity(i) = equitySeed; else % must have flipped tails tailCount = tailCount + 1; equitySeed = 0.99 * equitySeed; randEquity(i) = equitySeed; end end fprintf('You flipped %i heads & %i tails\n', headCount, tailCount); plot(randEquity); title('\bf \fontname{Arial} \fontsize{16}Simulated Random Walk'); xlabel('\bf \fontname{Arial} \fontsize{12}Number of Coin Tosses'); ylabel('\bf \fontname{Arial} \fontsize{12}Price in ($)'); % clean-up clear equitySeed headCount tailCount randMat i; |