Gambling simulation

This is a simulation study of gambling…..

Gambling 1

Definition of function

Gambling1 <- function(p, Bet, Capital, Maxit=101, Fig=F)
{
  X <- numeric(Maxit)
  X[1] <- Capital

  for(j in 2:Maxit)
  {
   if(X[j-1]>0) X[j] <- X[j-1] + sample(Bet*c(-1,1),1,prob=c(1-p,p)) 
  }
  
  if(Fig==T)
  {  
   plot(X, type="l", ylim=c(0, max(X)*1.2), xlab="Trial", ylab="State")
   abline(Capital, 0, lty=2, col="red")
  }
}

Run the simulation

par(mfrow=c(2,2), mar=c(3,3,3,3))
Gambling1(p=0.5, Bet=1, Capital=20, Fig=T)
Gambling1(p=0.5, Bet=1, Capital=20, Fig=T)
Gambling1(p=0.5, Bet=1, Capital=10, Fig=T)
Gambling1(p=0.5, Bet=1, Capital=10, Fig=T)

Gambling 2

Definition of function

Gambling2 <- function(p, Bet, Capital, Maxit=101, Nsim=100)
{
  X <- array(0, c(Nsim, Maxit))

  for(i in 1:Nsim)
  {
    X[i,1] <- Capital
    for(j in 2:Maxit)
    {
     Tmp <- X[i,(j-1)] + sample(Bet*c(-1,1),1,prob=c(1-p,p))
     if(Tmp >0) X[i,j] <- Tmp 
     if(Tmp<=0) X[i,j] <- -10     
    }
  }
  plot(X[1,], type="l", ylim=c(0, max(X)*1.2), 
       xlab="Trial", ylab="State", col="grey")
  for(i in 1:Nsim) points(X[i,], type="l", col="grey")
  abline(Capital, 0, lty=2, col="red")
  hist(X[,Maxit], col="orange", xlab="Final state", main="")
  return(X)
}

Run the simulation

par(mfrow=c(2,2), mar=c(3,3,3,3))
Res <- Gambling2(p=0.5, Bet=1, Capital=20, Maxit=100, Nsim=100)
Res <- Gambling2(p=0.5, Bet=1, Capital=20, Maxit=1000, Nsim=100)