Постановка задачи
Пусть Yt=log10(Mt) - логарифм суммы денег Mt игрок имеет в момент времени t .
Пусть q будет доля денег, на которую игрок делает ставку.
Пусть Y0=1 - сумма денег, с которой игрок начинает (десять долларов). Пусть YL=−2 будет сумма денег, на которой игрок обанкротится (ниже 1 цента). Для простоты мы добавляем правило, согласно которому игрок прекращает играть, когда он пропустил некоторую сумму денег YW (позже мы можем отменить это правило, приняв предел YW→∞ ).
Случайная прогулка
Вы можете увидеть рост и падение денег как асимметричную случайную прогулку. То есть вы можете описать Yt как:
Yt=Y0+∑i=1tXi
где
P[Xi=aw=log(1+2q)]=P[Xi=al=log(1−q)]=12
Вероятность банкротства
мартингал
Выражение
Zt=cYt
это мартингейл, когда мы выбираем c таким, что.
caw+cal=2
c<1q<0.5
E[Zt+1]=E[Zt]12caw+E[Zt]12cal=E[Zt]
Вероятность обанкротиться
Yt<YLYt>YWYW−YLaw
E[Zτ]τE[Z0]
таким образом
cY0=E[Z0]=E[Zτ]≈P[Yτ<L]cYL+(1−P[Yτ<L])cYW
и
P[Yτ<YL]≈cY0−cYWcYL−cYW
YW→∞
P[Yτ<YL]≈cY0−YL
Выводы
Есть ли оптимальный процент вашей наличности, который вы можете предложить, не теряя всего этого?
Какой бы оптимальный процент не зависел от того, как вы оцениваете различные прибыли. Тем не менее, мы можем сказать что-то о вероятности потерять все это.
Только когда игрок ставит нулевую долю своих денег, он, безусловно, не обанкротится.
qqgambler's ruinqgambler's ruin=1−1/b
cawal
b=2
шансы потерять все ваши деньги уменьшаются или увеличиваются с течением времени?
q<qgambler's ruin
Вероятность банкротства при использовании критерия Келли.
q=0.5(1−1/b)bbc0.10.1S−L
b
Симуляторы
Yt=−2
t
To further illustrate the possible outcomes of gambling with the money tree, you can model the distribution of Yt as a one dimensional diffusion process in a homogeneous force field and with an absorbing boundary (where the gambler get's bankrupt). The solution for this situation has been given by Smoluchowski
Smoluchowski, Marian V. "Über Brownsche Molekularbewegung unter Einwirkung äußerer Kräfte und deren Zusammenhang mit der verallgemeinerten Diffusionsgleichung." Annalen der Physik 353.24 (1916): 1103-1112. (online available via: https://www.physik.uni-augsburg.de/theo1/hanggi/History/BM-History.html)
Equation 8:
W(x0,x,t)=e−c(x−x0)2D−c2t4D2πDt−−−−√[e−(x−x0)24Dt−e−(x+x0)24Dt]
This diffusion equation relates to the tree problem when we set the speed c equal to the expected increase E[Yt], we set D equal to the variance of the change in a single steps Var(Xt), x0 is the initial amount of money, and t is the number of steps.
The image and code below demonstrate the equation:
The histogram shows the result from a simulation.
The dotted line shows a model when we use a naive normal distribution to approximate the distribution (this corresponds to the absence of the absorbing 'bankruptcy' barrier). This is wrong because some of the results above the bankruptcy level involve trajectories that have passed the bankruptcy level at an earlier time.
The continuous line is the approximation using the formula by Smoluchowski.
Codes
#
## Simulations of random walks and bankruptcy:
#
# functions to compute c
cx = function(c,x) {
c^log(1-x,10)+c^log(1+2*x,10) - 2
}
findc = function(x) {
r <- uniroot(cx, c(0,1-0.1^10),x=x,tol=10^-130)
r$root
}
# settings
set.seed(1)
n <- 100000
n2 <- 1000
q <- 0.45
# repeating different betting strategies
for (q in c(0.35,0.4,0.45)) {
# plot empty canvas
plot(1,-1000,
xlim=c(0,n2),ylim=c(-2,50),
type="l",
xlab = "time step", ylab = expression(log[10](M[t])) )
# steps in the logarithm of the money
steps <- c(log(1+2*q,10),log(1-q,10))
# counter for number of bankrupts
bank <- 0
# computing 1000 times
for (i in 1:1000) {
# sampling wins or looses
X_t <- sample(steps, n, replace = TRUE)
# compute log of money
Y_t <- 1+cumsum(X_t)
# compute money
M_t <- 10^Y_t
# optional stopping (bankruptcy)
tau <- min(c(n,which(-2 > Y_t)))
if (tau<n) {
bank <- bank+1
}
# plot only 100 to prevent clutter
if (i<=100) {
col=rgb(tau<n,0,0,0.5)
lines(1:tau,Y_t[1:tau],col=col)
}
}
text(0,45,paste0(bank, " bankruptcies out of 1000 \n", "theoretic bankruptcy rate is ", round(findc(q)^3,4)),cex=1,pos=4)
title(paste0("betting a fraction ", round(q,2)))
}
#
## Simulation of histogram of profits/results
#
# settings
set.seed(1)
rep <- 10000 # repetitions for histogram
n <- 5000 # time steps
q <- 0.45 # betting fraction
b <- 2 # betting ratio loss/profit
x0 <- 3 # starting money
# steps in the logarithm of the money
steps <- c(log(1+b*q,10),log(1-q,10))
# to prevent Moiré pattern in
# set binsize to discrete differences in results
binsize <- 2*(steps[1]-steps[2])
for (n in c(200,500,1000)) {
# computing several trials
pays <- rep(0,rep)
for (i in 1:rep) {
# sampling wins or looses
X_t <- sample(steps, n, replace = TRUE)
# you could also make steps according to a normal distribution
# this will give a smoother histogram
# to do this uncomment the line below
# X_t <- rnorm(n,mean(steps),sqrt(0.25*(steps[1]-steps[2])^2))
# compute log of money
Y_t <- x0+cumsum(X_t)
# compute money
M_t <- 10^Y_t
# optional stopping (bankruptcy)
tau <- min(c(n,which(Y_t < 0)))
if (tau<n) {
Y_t[n] <- 0
M_t[n] <- 0
}
pays[i] <- Y_t[n]
}
# histogram
h <- hist(pays[pays>0],
breaks = seq(0,round(2+max(pays)),binsize),
col=rgb(0,0,0,0.5),
ylim=c(0,1200),
xlab = "log(result)", ylab = "counts",
main = "")
title(paste0("after ", n ," steps"),line = 0)
# regular diffusion in a force field (shifted normal distribution)
x <- h$mids
mu <- x0+n*mean(steps)
sig <- sqrt(n*0.25*(steps[1]-steps[2])^2)
lines(x,rep*binsize*(dnorm(x,mu,sig)), lty=2)
# diffusion using the solution by Smoluchowski
# which accounts for absorption
lines(x,rep*binsize*Smoluchowski(x,x0,0.25*(steps[1]-steps[2])^2,mean(steps),n))
}