Showing posts with label Kelly criterion. Show all posts
Showing posts with label Kelly criterion. Show all posts

Saturday, October 24, 2009

Progress on Kelly materials

Not done is nothing taught me a lesson. Publicly saying "I didn't complete this because I lost interest" doesn't feel good and provides motivation to finish. So I've returned to the Kelly Criterion explanation I was working on, added a little bit, and provided return calculator that optimizes.

That may not sound like much, but under the hood it is doing calculus in JavaScript. The generic parts of the implementation are in advanced-math.js. If you like the idea of doing math with closures, feel free to take a look.

Next I need to add some linear algebra, some multi-variable calculus, then implement something that finds maxima using Newton's method on a convex polytope defined in any number of dimensions using a set of linear inequalities. You can think of this as a non-linear version of the problem solved by the Simplex Algorithm. The fun part is that I need it to good enough to find the optimum point in an n-dimensional polytope sitting in n+1-dimensional space. (The actual polytope I will need is defined by 0 ≤ xi &le 1 for i=0..n, and x0 + ... + xn = 1.) That means I have to deal with issues like finding my way back to the region after round-off error takes me away from it.

Oh. And of course I'll do all of this in JavaScript.

Perhaps that can be useful for others? Possibly. However JavaScript has no real equivalent to, say, CPAN, so the effort of putting it somewhere that someone in need can easily find it is beyond my motivation. That's why I did nothing with my port of Statistics::Distributions. But that is a thought for another day.

Monday, October 5, 2009

Not done is nothing

I have a problem. I'll start personal projects, get to the point where I am satisfied that I could finish it, then don't. Sometimes it takes quite a bit of work to get there. For instance consider this explanation of the Kelly criterion for optimal betting patterns. I did quite a bit of work on it, created a calculator that could be useful. In addition I began a library to let me do basic differential calculus and linear algebra in JavaScript, and worked out exactly how to build numerical approximations of optimal betting patterns. Then I got distracted.

I began this blog. Then I got distracted. OK, it is the nature of blogs to never be done, and I certainly couldn't keep up the pace I started with, but I still could have done more.

The side project I now spend time thinking about is a design for a web development platform that I think would be really powerful. It could be a revolutionary way to work..if it ever gets completed.

I have no shortage of excuses. I have very little time for any side project once you subtract working full time, helping my ex-employer on the side, and taking care of my young children. I am interested in a large variety of things, and so have no shortage of distractions. Furthermore I really do constantly learn new stuff.

None of this is to say that I can't finish things. I am great at finishing things when I have an external reason to. I finish things for my employer all the time. I put a lot of work into my Effective A/B Testing tutorial, and a lot of people have been happy with the result.

However when I am doing something out of personal interest, I lose interest once I've completely learned how to do it. And as a result nobody else benefits from my efforts.

In short, I'm pretty much the opposite of being a member of The Cult of Done. :-(