Let the random (stock market) vector

be drawn according to a known distribution function

. A log-optimal portfolio

is any portfolio

achieving maximal expected

return

, where the supremum is over the simplex

. An algorithm is presented for finding

. The algorithm consists of replacing the portfolio

by the expected portfolio

, corresponding to the expected proportion of holdings in each stock after one market period. The improvement in

after each iteration is lower-bounded by the Kullback-Leibler information number

between the current and updated portfolios. Thus the algorithm monotonically improves the return

. An upper bound on

is given in terms of the current portfolio and the gradient, and the convergence of the algorithm is established.