Friday, May 25, 2018

A quiet, 100% profitable week! Also: short-term monte carlo simulation and "the paycheck effect"

The trading plan I'm using depends on the market staying within about an 80 point range for 4-5 days, and this week the range was about 1/2 that:

So the 3 trades I had on that expired Monday, Wednesday and Friday all expired worthless and returned full profit (about 6% average per trade.) Accounts I'm trading were up about 3% for the week (down from 4% earlier, when volatility was higher).

I've been doing monte carlo simulations for a while now and have published a few results to this blog. But all have been at least several months long ... Here's a result for 6 weeks (18 trades of SPX + 1 NDX) running the plan like this:


  • risking 20% on every trade, so totalling 60% for the few hours Monday, Wednesday and Friday when 3 trades are active simultaneously
  • Assuming 5.8% won on every winning trade
  • Assuming a 97.5% win rate ... achievable by rolling, I think
Results are like this (starting with $50000):

    min: 32435.031 
    mean:  59566.426 
    max: 61535.93 
    stddev: 3665.9998 

So not much different from the "3% per week compounded value":  $59702.61 ...

We'll check the results in 6 weeks!

Finally, I've been listening to this podcast:


I just finished #137 with Dr. William Ziemba on betting horse races and exploiting anomalies in financial markets. The discussion was wide-ranging, but one part of the discussion struck me. Ziemba says that his research indicates that volatility (although he doesn't use that word) is skewed toward the beginning of the month because some people put part of their paycheck into the stock market!

June 1 will be coming up shortly so I'll be watching for this ... Ziemba also writes on crashes:



He points out that crashes are rare; there have only been 3 10%+ moves in the modern era ... which is one of the reasons I feel confident risking 20% on every trade starting June 1.

More next week ...

Saturday, May 19, 2018

Back on track and considering the value of rolling

I lost my 3rd trade in a row on Monday's expiration (details below), but since then:


  • 2 SPX expirations, both winners
  • the Fabulous NDX a.m. settlement trade was also available this week, winning again
About that third loss in a row: the short SPX strike for Monday the 14th was at 2720 ... the futures market was up all night and the market came back during the day, but not enough. It closed at 2730.13, a 30% or so loser (since the wings were $30 wide; I was long the 2750 call).

But the next day the market was down into the right range, closing at 2711, and only up to 2722 on Wednesday the 16th. So if I had rolled the call wing out and up to short 2730 and long 2760 for Wednesday expiration (for an extra small credit), that would have worked. Alternatively, I could have rolled laterally (sticking with 2720/2750 strikes) out to Wednesday (larger credit) and rolled again to Friday when that showed problems for Wednesday. Friday close was back to 2712, so that also would have worked for full profit.

I hope not to have to put this into practice for the rest of the month ... there are only 5 more expirations in may and I'd just as soon have them all expire worthless without rolling.

But I'm comfortable taking more risk with the rolling strategy on the call side; if the "meteor strike" comes while this extra trade is on, all it does is reduce the overall loss. The "put wing" will already have expired worthless, so an extra one of these rolling for profitability is OK.

Another change I'm considering for next month: substituting certain relatively volatile underlyings (AMZN, TSLA, etc.) for the Monday->Friday trade. This should make a bit more money than doing the trade on SPX at its currently depressed volatility.

The rolling ability for this kind of back-and-forth market is metaphorically a protection for our new growth:


More next week!

Friday, May 11, 2018

Winning streak comes to an end, but changes to plan show their worth

Here's what happened to the winning streak this week:
Once again, the idea is that the trade pays off if it stays within a wide range for 4 or 5 days. But not this past week:

However, the last 2 changes I made to the plan paid off handsomely. First, "widening the strikes" ...

The short strike for Wednesday was at 2685, but the close was at 2697.79. That would have been a total loss for a 5-wide wing, but since the wings in this case were 30 wide, it was only a 37% loss.

Friday was similarly illustrative. I was short the 2725 call and was watching toward 1pm PDT for the closing price as it was just dancing around 2725. There was one final blip to 2724.whatever, where the whole trade would have finished worthless as desired (thereby letting us keep the full credit). But in the final few minutes is blipped up to close at 2727.72.

Since we got $2.35 for this one were only $2.72 inside the short strike, that's only 37 cents ... of a possible $27.65 loss: 1.34% of what it could have been.

And the other change, moving to the .08 delta: whew. If I'd stayed with the .10 delta for the call side, I've been clobbered on both of these.

All that being said: the Monday expiration is in danger of losing also, its short strike being at 2720. So I need a down day on Monday to get that back in the black.

I'm going to stick with this setup through May despite this episode, but two adjustments that I may want to do in June:

  • Go even further out on the call side: .06 delta?
  • Watch for the same short strike stacking up (like 2725 today and 2720 Monday) and adjust the later one out 20 points just in that case?
I hope that this week will prove wildly anomalous and we'll go back to 10 or 20 winners in a row ...

We'll see! More next week ...


Saturday, May 5, 2018

A little too exciting in spots, but still 100% wins ... Also Kelly Criterion vs Monte Carlo

On Thursday a.m. early I thought the winning streak might come to an end:


But as you can see, the early morning a.m. plummet created a bounce up into the profitable zone ... I was short the 2610 strikes for Friday and it never got close again.

I am keeping track of the return I'm getting on this page, but I've been thinking about the limitations of the Kelly Criterion to use in evaluating trades.

The Kelly Criterion assumes that when you lose, you lose 100%. This is OK for some trades where this is in fact the case, or nearly so. But my widen the strikes revelation from 2 weeks ago made me realize that with this kind of trading there will be a spread of losses as wide as the wing width. Until I have a loss with this system (no hurry!) I don't even have a dot to put on that map.

But with a Monte Carlo simulation one can write a computer program to use the data that one has for this kind of loss, or just to program various kinds of reasonably expected loss instances.

I have been maintaining such a program for a while now; it runs 20000 simulations of a trade with various parameters (win rate & amount one up until recently) ... and now with a function I added failcalc() to estimate the spread of losses. Source code:

def failcalc():
    # 80% chance of getting the "notsobaddest" 20% of the spread
    spreadone = random.random()
    spreadtwo = random.random()
    if spreadone >= 0.8:
        loss = (1.0 - spreadone) * spreadtwo
    else:
        loss = spreadtwo

    return loss

That is, I assume that losses will be clustered 80% in the 20% smallest loss end of the spread's wing.

Other assumptions: 95% win rate, making 9.31% on every win, risking 15% of the account on every trade, 3 trades per week. Run is from now to the end of 2020.

The simulation using these assumptions gives this result, starting with $50000 today:

Minimum: $405740.16
Mean (average): $3,565,303.20
Maximum: $13,469,500.00
Standard Deviation: $1,584,992.10

Standard deviation is based on this curve:

The Standard Deviation symbol is the greek letter sigma ... basically the standard deviation shows the 68.2% chance of being that amount above or below the mean. So the most likely result (assuming the simulation parameters are correct!) is (roughly) between $2.0M and $5.0M ... 

Let's change the parameters back to a 5-wide wing. This would give a higher return (let's assume 13.5%) but much more likely to give a 100% loss (assume 80% of the time you have a 100% loss, with the rest randomly spread along the [tiny] width of the wing).

Results of this run:

Minimum: $144644.16
Mean (average): $9165858.0
Maximum: $109293100.0
Standard Deviation: $7361821.0

Clearly this one is much more volatile ... and subject to being much more likely to lose 2 in a row (which is not captured in the assumptions, I don't think.)

One think the Kelly Criterion can do is point us to the amount of risk we should be taking on every trade. Currently the Kelly is suggesting we risk 41.2% for the trades we have on our page ... 

Going back to the original run (wide wings, spread of losses wide again), but risking 20% on each trade, gives us:

Minimum: $897,867.06
Mean (average): $14,407,274.00
Maximum: $66,243,100.00
Standard Deviation: $8,207,564.00

So with this one I'm most likely to wind up with $6M to ... $22M ... anything in that range would be OK, really!

I'll be sorely tempted to start this in June, but I am going to stick with 15% risk per trade in May as previously I said ...

What will I do if there's no flaw in my analysis and I do wind up with $10M or so by the end of 2020? This, for sure:


... build a zero-energy house that my Lovely Wife will find acceptable ...