Il problema dell'albero magico dei soldi


19

Ho pensato a questo problema sotto la doccia, è stato ispirato da strategie di investimento.

Diciamo che c'era un albero di soldi magici. Ogni giorno, puoi offrire una somma di denaro all'albero dei soldi e lo triplicherà o lo distruggerà con probabilità 50/50. Noterai immediatamente che in media guadagnerai facendo questo e sei desideroso di sfruttare l'albero dei soldi. Tuttavia, se offri tutti i tuoi soldi in una volta, avrai il 50% di perdere tutti i tuoi soldi. Inaccettabile! Sei una persona piuttosto avversa al rischio, quindi decidi di elaborare una strategia. Vuoi ridurre al minimo le probabilità di perdere tutto, ma vuoi anche fare più soldi che puoi! Ti viene in mente quanto segue: ogni giorno offri il 20% del tuo capitale attuale all'albero dei soldi. Supponendo che il più basso che puoi offrire sia di 1 centesimo, ci vorrebbe una serie di 31 perdite per perdere tutti i tuoi soldi se avessi iniziato con 10 dollari. Cosa c'è di più, più soldi guadagni, più lunga sarà la serie perdente per farti perdere tutto, incredibile! Inizi rapidamente a guadagnare un sacco di soldi. Ma poi ti viene in mente un'idea: puoi offrire il 30% ogni giorno e guadagnare molto di più! Ma aspetta, perché non offrire il 35%? 50%? Un giorno, con grandi segni del dollaro negli occhi, corri verso l'albero dei soldi con tutti i tuoi milioni e offri il 100% del tuo denaro, che l'albero dei soldi brucia prontamente. Il giorno dopo hai un lavoro alla McDonalds. che l'albero dei soldi brucia prontamente. Il giorno dopo hai un lavoro alla McDonalds. che l'albero dei soldi brucia prontamente. Il giorno dopo hai un lavoro alla McDonalds.

Esiste una percentuale ottimale del tuo denaro che puoi offrire senza perdere tutto?

(sotto) domande:

Se esiste una percentuale ottimale che dovresti offrire, questa è statica (cioè il 20% ogni giorno) o dovrebbe aumentare la percentuale all'aumentare del tuo capitale?

Offrendo il 20% ogni giorno, le probabilità di perdere tutti i tuoi soldi diminuiscono o aumentano nel tempo? Esiste una percentuale di denaro da cui aumentano le probabilità di perdere tutti i tuoi soldi nel tempo?


7
Sembra una variazione sulla rovina di Gambler
Robert Long,

2
Gran parte di questa domanda dipende dal fatto che siano possibili centesimi frazionari. Inoltre, ci sono molti possibili obiettivi che qualcuno potrebbe avere in questa situazione. Obiettivi diversi avrebbero diverse strategie ottimali.
Buge

Risposte:


19

Questo è un problema ben noto. Si chiama una scommessa di Kelly. La risposta, a proposito, è 1/3. È equivalente a massimizzare l'utilità di registro della ricchezza.

Kelly iniziò prendendo tempo all'infinito e poi risolvendosi all'indietro. Dato che puoi sempre esprimere rendimenti in termini di composizione continua, puoi anche invertire il processo ed esprimerlo nei log. Userò la spiegazione dell'utilità di registro, ma l'utilità di registro è una comodità. Se stai massimizzando la ricchezza come n con una funzione che risulta essere la stessa dell'utilità di registro. Se b è la probabilità di pagamento e p è la probabilità di vincita e X è la percentuale di ricchezza investita, la seguente derivazione funzionerà.

Per una scommessa binaria, E(log(X))=plog(1+bX)+(1p)log(1X) , per un singolo periodo e ricchezza unitaria.

ddXE[log(x)]=ddX[plog(1+bX)+(1p)log(1X)]
=pb1+bX1p1X

Impostando la derivata su zero per trovare extrema,

pb1+bX1p1X=0

Moltiplicando la croce, si finisce con

pb(1X)(1p)(1+bX)=0
pbpbX1bX+p+pbX=0
bX=pb1+p
X=bp(1p)b

Nel tuo caso,

X=3×12(112)3=13.

Puoi prontamente espanderlo a risultati multipli o continui risolvendo l'utilità attesa della ricchezza su una distribuzione di probabilità congiunta, scegliendo le allocazioni e soggetta a eventuali vincoli. È interessante notare che, se lo esegui in questo modo, includendo vincoli, come la capacità di soddisfare i pagamenti dei mutui e così via, allora hai tenuto conto della tua serie totale di rischi e quindi hai un aggiustamento del rischio o almeno controllato dal rischio soluzione.

Desiderata Lo scopo reale della ricerca originale aveva a che fare con quanto scommettere sulla base di un segnale rumoroso. Nel caso specifico, quanto scommettere su un segnale elettronico rumoroso dove indicava il lancio di armi nucleari da parte dell'Unione Sovietica. Ci sono stati molti lanci vicini da parte sia degli Stati Uniti che della Russia, ovviamente in errore. Quanto scommetti su un segnale?


Questa strategia darebbe un rischio maggiore di andare in rovina, penso rispetto alle frazioni inferiori
probabilityislogic

@probabilityislogic Solo nel caso in cui esistano centesimi. Nel caso discreto, diventerebbe vero perché potevi scommettere il tuo ultimo centesimo. Non puoi scommettere un terzo di centesimo. In un mondo discreto, è intrinsecamente vero che la probabilità di fallimento deve aumentare nella dimensione dell'allocazione, indipendentemente dal caso di payoff. Un'allocazione del 2% ha una maggiore probabilità di fallimento rispetto all'1% in un mondo discreto.
Dave Harris,

@probabilityislogic se inizi con 3 centesimi allora è rischioso. Se inizi con $ 550, allora c'è meno di una possibilità su 1024 di fallire. Per dimensioni di vaso ragionevoli, il rischio di un collasso discreto diventa piccolo a meno che non si passi davvero all'infinito, quindi diventa una certezza a meno che non sia consentito il prestito.
Dave Harris,

Mi aspettavo che questo sarebbe stato un problema noto, ma non avevo idea di come cercarlo. Grazie per la menzione di Kelly. Una domanda però: Wikipedia sul criterio kelly menziona la seguente formula per calcolare la percentuale ottimale: (bp-q) / b. Dove b sono i #dollari che ottieni scommettendo 1 $, p la probabilità di vincere e q la possibilità di perdere. Se lo compilo per il mio scenario ottengo: (2 * 0,5-0,5) /2=0,25. Significa che la percentuale ottimale da scommettere sarebbe del 25%. Cosa causa questa discrepanza con la tua risposta di 1/3?
ElectronicToothpick

3
@ElectronicToothpick se inserisci b = 3 ottieni 1/3. La differenza sta nel modo in cui consideri il pagamento tre volte. Supponi di iniziare con 1 dollaro e scommetti 50 centesimi, quindi consideri la tripla vincita che termina con cinquanta e cinquanta 50 centesimi o 2 dollari (b = 2, cioè meno 50 centesimi o più 2 volte 50 centesimi) contro cinquanta e cinquanta cinquanta 50 centesimi o 2,50 dollari (b = 3, ovvero meno 50 centesimi o più 3 volte 50 centesimi).
Sesto Empirico

5

Mi è piaciuta la risposta data da Dave Harris. solo se arriverei al problema da una prospettiva "a basso rischio", piuttosto che massimizzare i profitti

La camminata casuale che stai facendo, supponendo che la tua scommessa sulla frazione sia q e la probabilità di vincita p=0.5 è data come

Yt|Yt1=(1q+3qXt)Yt1
dove XtBernoulli(p) . in media hai
E(Yt|Yt1)=(1q+3pq)Yt1
Puoi applicare iterativamente questo per ottenere
Yt|Y0=Y0j=1t(1q+3qXt)
con valore atteso
E(Yt|Y0)=(1q+3pq)tY0
puoi anche esprimere la quantità al momentot in funzione di una singola variabile casuale Zt=j=1tXtBinomial(t,p) , ma rilevando che Zt non è indipendente da Zt1
Yt|Y0=Y0(1+2q)Zt(1q)tZt

possibile strategia

potresti usare questa formula per determinare un valore "a basso rischio" per q . Supponiamo che tu abbia voluto assicurarti che dopo k perdite consecutive avessi ancora metà della tua ricchezza originale. Quindi si imposta q=12k1

Prendendo l'esempio k=5 significa che impostiamo q=0.129 , oppure con k=15 impostiamo q=0.045 .

Inoltre, a causa della natura ricorsiva della strategia, questo rischio è quello che stai prendendo ogni singola scommessa. Cioè, al momento s , continuando a giocare ti stai assicurando che al momento k+s tua ricchezza sarà almeno 0.5Ys

discussione

la strategia di cui sopra non dipende dal guadagno derivante dalla vincita, ma piuttosto dall'impostare un limite alla perdita. Possiamo ottenere le vincite attese sostituendo il valore per q abbiamo calcolato e al momento k che è stato utilizzato tenendo presente il rischio.

tuttavia, è interessante osservare la mediana piuttosto che il rendimento atteso al momento t , che può essere trovato assumendo median(Zt)tp .

Yk|Y0=Y0(1+2q)tp(1q)t(1p)
quando p=0.5 abbiamo il rapporto uguale a (1+q2q2)0.5t . Questo è massimizzato quandoq=0.25 e maggiore di1 quandoq<0.5

è anche interessante calcolare la possibilità che sarai in vantaggio al momento t . per fare ciò dobbiamo determinare il valore z tale che

(1+2q)z(1q)tz>1
facendo un po 'di riarrangiamento troviamo che la percentuale di vincite dovrebbe soddisfare
zt>log(1q)log(1q)log(1+2q)
Questo può essere inserito in un'approssimazione normale (nota: media di0.5ed errore standard di0.5t ) come
Pr(ahead at time t)Φ(tlog(1+2q)+log(1q)[log(1+2q)log(1q)])

che mostra chiaramente che il gioco ha ottime probabilità. il fattore che si moltiplica t è ridotto a icona quandoq=0(valore massimo di13 ) e sta diminuendo monotonicamente in funzione diq. quindi la strategia "a basso rischio" è quella di scommettere una frazione molto piccola della tua ricchezza e giocare un gran numero di volte.

supponiamo di confrontarlo con q=13 eq=1100 . il fattore per ciascun caso è0.11e0.32. Ciò significa che dopo38partite avresti una probabilità del 95% di essere in vantaggio con la scommessa piccola, rispetto a una probabilità del 75% con la scommessa più grande. Inoltre, hai anche la possibilità di andare in rovina con la scommessa più grande, supponendo che tu debba arrotondare la tua puntata ai 5 centesimi o al dollaro più vicini. A partire da20questo potrebbe andare13.35,8.90,5.95,3.95,2.65,1.75,1.15,0.75,0.50,0.35,0.25,0.15,0.1,0.05,0 . Questa è una sequenza di14 perdite su38 , e dato che il gioco si aspetta19 perdite, se si è sfortunati con le prime scommesse, allora anche vincere potrebbe non compensare una brutta serie (ad esempio, se la maggior parte delle vittorie si verificano una volta che la maggior parte della ricchezza è andata). fallire con una quota dell'1% minore non è possibile in38 partite. Il rovescio della medaglia è che la puntata più piccola comporterà in media un profitto molto più piccolo, qualcosa come unaumento di350 volte con la scommessa grande rispetto a1.2 aumentare con la scommessa piccola (cioè ti aspetti di avere 24 dollari dopo 38 round con la scommessa piccola e 7000 dollari con la scommessa grande).


è se si considera che è scelto in modo basso rischio e non sta calcolando per t > > k , non è male un'approssimazione. Quindi probabilmente sta sopravvalutando il profitto derivante dalla grande strategia di scommesse. qt>>k
probabilityislogic

Il tuo approccio per massimizzare la mediana di è in realtà lo stesso dell'approccio di Dave Harris che sta massimizzando la media di Z t (che è la stessa mediana di Z t ). Sarebbe diverso quando si massimizza la media di Y t che è distribuita lognormale e per la quale la media e la mediana non sono le stesse. ZtZtZtYt
Sesto Empirico

5

Non penso che questo sia molto diverso dalla Martingala. Nel tuo caso, non ci sono scommesse doppie, ma il pagamento vincente è 3x.

Ho codificato una "replica vivente" del tuo albero. Corro 10 simulazioni. In ogni simulazione (traccia), inizi con 200 monete e provi con l'albero, 1 moneta ogni volta per 20.000 volte.

Le uniche condizioni che fermano la simulazione sono il fallimento o il tentativo di "sopravvivere" a 20k tentativi

enter image description here

Penso che qualunque sia la probabilità, prima o poi il fallimento ti aspetta.


Il codice è javascript improvvisato ma privo di dipendenze: https://repl.it/@cilofrapez/MagicTree-Roulette

Ti mostra subito i risultati. Il codice è semplice da modificare: eseguire comunque molte simulazioni, importo della scommessa, comunque molti tentativi ... Sentiti libero di giocare!

Nella parte inferiore del codice, i risultati di ciascuna simulazione (per impostazione predefinita 10) vengono salvati in un file CSV con due colonne: numero di spin e denaro. L'ho fatto in modo che potesse essere inviato a un plotter online per i grafici.

Sarebbe facile avere tutto automatizzato localmente utilizzando ad esempio la libreria Google Charts. Se vuoi solo vedere i risultati sullo schermo, puoi commentare l'ultima parte come ho menzionato nel file.

MODIFICARE

Codice sorgente:

/**
 * License: MIT
 * Author: Carles Alcolea, 2019
 * Usage: I recommend using an online solution like repl.it to run this code.
 * Nonetheless, having node installed, it's as easy as running `node magicTree.js`.
 *
 * The code will run `simulations` number of scenarios, each scenario is equal in settings
 * which are self-descriptive: `betAmount`,`timesWinPayout`, `spinsPerSimulation`, `startingBankRoll`
 * and `winningOdds`.
 *
 * At the end of the code there's a part that will generate a *.csv file for each simulation run.
 * This is useful for ploting the resulting data using any such service or graphing library. If you
 * wish the code to generate the files for you, just set `saveResultsCSV` to true. All files will
 * have two columns: number of spin and current bankroll.
 */

const fs = require('fs'); // Only necessary if `saveResultsCSV` is true

/**
 * ==================================
 * You can play with the numbers of the following variables all you want:
 */
const betAmount          = 0.4,   // Percentage of bankroll that is offered to the tree
      winningOdds        = 0.5,
      startingBankRoll   = 200,
      timesWinPayout     = 2,
      simulations        = 5,
      spinsPerSimulation = 20000,
      saveResultsCSV     = false;
/**
 * ==================================
 */

const simWins = [];
let currentSim = 1;

//* Each simulation:
while (currentSim <= simulations) {
  let currentBankRoll = startingBankRoll,
      spin            = 0;
  const resultsArr  = [],
        progressArr = [];

  //* Each spin/bet:
  while (currentBankRoll > 0 && spin < spinsPerSimulation) {
    if (currentBankRoll === Infinity) break; // Can't hold more cash!
    let currentBet = Math.ceil(betAmount * currentBankRoll);
    if (currentBet > currentBankRoll) break;  // Can't afford more bets... bankrupt!

    const treeDecision = Math.random() < winningOdds;
    resultsArr.push(treeDecision);
    if (treeDecision) currentBankRoll += currentBet * timesWinPayout; else currentBankRoll -= currentBet;
    progressArr.push(currentBankRoll);
    spin++;
  }

  const wins = resultsArr.filter(el => el === true).length;
  const losses = resultsArr.filter(el => el === false).length;
  const didTheBankRollHold = (resultsArr.length === spinsPerSimulation) || currentBankRoll === Infinity;

  const progressPercent = didTheBankRollHold ? `(100%)` : `(Bankrupt at aprox ${((resultsArr.length / parseFloat(spinsPerSimulation)) * 100).toPrecision(4)}% progress)`;

  // Current simulation summary
  console.log(`
  - Simulation ${currentSim}: ${progressPercent === '(100%)' ? '✔' : '✘︎'}
    Total:      ${spin} spins out of ${spinsPerSimulation} ${progressPercent}
    Wins:       ${wins} (aprox ${((wins / parseFloat(resultsArr.length)) * 100).toPrecision(4)}%)
    Losses:     ${losses} (aprox ${((losses / parseFloat(resultsArr.length)) * 100).toPrecision(4)}%)
    Bankroll:   ${currentBankRoll}
  `);

  if (didTheBankRollHold) simWins.push(1);

  /**
   * ==================================
   * Saving data?
   */
  if (saveResultsCSV) {
    let data = `spinNumber, bankRoll`;
    if (!fs.existsSync('CSVresults')) fs.mkdirSync('CSVresults');
    progressArr.forEach((el, i) => {
      data += `\n${i + 1}, ${el}`;
    });
    fs.writeFileSync(`./CSVresults/results${currentSim}.csv`, data);
  }
  /**
   * ==================================
   */

  currentSim++;
}

// Total summary
console.log(`We ran ${simulations} simulations, with the goal of ${spinsPerSimulation} spins in each one.
Our bankroll (${startingBankRoll}) has survived ${simWins.length} out of ${simulations} simulations, with ${(1 - winningOdds) * 100}% chance of winning.`);
```

1
Sei in grado di pubblicare anche il codice che hai scritto per questo?
baxx

1
This is betting with a constant stake - but betting a fixed proportion of your wealth, such as 14 here, each time would produce a different result. You may need to adapt this to avoid fractional coins (e.g. round down unless this produces a value less than 1 coin, in which cases bet 1 moneta)
Henry

@baxx Sure, I just updated the post. Henry, I'm not sure I understood you. I can adapt the code to fit different needs if you want.
Carles Alcolea

@CarlesAlcolea I was just saying that it would be nice if the code you used for the post was contained within the post itself. I'm not sure if the link to repl you've posted will die at some point or not
baxx

1
@baxx Certo! Dopo aver scritto questo programma improvvisato, ho pensato che avrei dovuto creare una piccola app online, per poter esplorare facilmente qualsiasi situazione di questo tipo. Non ne ho trovato nessuno. Ora sono annegato nel lavoro, quindi per il momento lascio il codice nel post e l'app nella mia lista di cose da fare
Carles Alcolea

4

Dichiarazione problema

Permettere Yt=log10(Mt) be the logarithm of the amount of money Mt the gambler has at time t.

Let q be the fraction of money that the gambler is betting.

Let Y0=1 be the amount of money that the gambler starts with (ten dollars). Let YL=2 be the amount of money where the gambler goes bankrupt (below 1 cent). For simplicity we add a rule that the gambler stops gambling when he has passed some amount of money YW (we can later lift this rule by taking the limit YW).

Random walk

You can see the growth and decline of the money as an asymmetric random walk. That is you can describe Yt as:

Yt=Y0+i=1tXi

where

P[Xi=aw=log(1+2q)]=P[Xi=al=log(1q)]=12

Probability of bankruptcy

Martingale

The expression

Zt=cYt

is a martingale when we choose c such that.

caw+cal=2
(where c<1 if q<0.5). Since in that case

E[Zt+1]=E[Zt]12caw+E[Zt]12cal=E[Zt]

Probability to end up bankrupt

The stopping time (losing/bankruptcy Yt<YL or winning Yt>YW) is almost surely finite since it requires in the worst case a winning streak (or losing streak) of a certain finite length, YWYLaw, which is almost surely gonna happen.

Then, we can use the optional stopping theorem to say E[Zτ] at the stopping time τ equals the expected value E[Z0] at time zero.

Thus

cY0=E[Z0]=E[Zτ]P[Yτ<L]cYL+(1P[Yτ<L])cYW

and

P[Yτ<YL]cY0cYWcYLcYW

and the limit YW

P[Yτ<YL]cY0YL

Conclusions

Is there an optimal percentage of your cash you can offer without losing it all?

Whichever is the optimal percentage will depend on how you value different profits. However, we can say something about the probability to lose it all.

Only when the gambler is betting zero fraction of his money then he will certainly not go bankrupt.

With increasing q the probability to go bankrupt will increase up to some point where the gambler will almost surely go bankrupt within a finite time (the gambler's ruin mentioned by Robert Long in the comments). This point, qgambler's ruin, is at

qgambler's ruin=11/b
This is the point where there is no solution for c below one. This is also the point where the increasing steps aw are smaller than the decreasing steps al.

Thus, for b=2, as long as the gambler bets less than half the money then the gambler will not certainly go bankrupt.

do the odds of losing all your money decrease or increase over time?

The probability to go bankrupt is dependent on the distance from the amount of money where the gambler goes bankrupt. When q<qgambler's ruin the gambler's money will, on average increase, and the probability to go bankrupt will, on average, decrease.

Bankruptcy probability when using the Kelly criterion.

When you use the Kelly criterion mentioned in Dave Harris answer, q=0.5(11/b), for b being the ratio between loss and profit in a single bet, then independent from b the value of c will be equal to 0.1 and the probability to go bankrupt will be 0.1SL.

That is, independent from the assymetry parameter b of the magic tree, the probability to go bankrupt, when using the Kelly criterion, is equal to the ratio of the amount of money where the gambler goes bankrupt and the amount of money that the gambler starts with. For ten dollars and 1 cent this is a 1:1000 probability to go bankrupt, when using the Kelly criterion.

Simulations

The simulations below show different simulated trajectories for different gambling strategies. The red trajectories are ones that ended up bankrupt (hit the line Yt=2).

simulations

Distribution of profits after time 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)=ec(xx0)2Dc2t4D2πDt[e(xx0)24Dte(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.

illustration as diffusion in force field

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))

}

"Cioè, indipendentemente dal parametro di assimetria b dell'albero magico, la probabilità di fallire, quando si utilizza il criterio Kelly, è uguale al rapporto tra la quantità di denaro in cui il giocatore fallisce e la quantità di denaro che il giocatore d'azzardo inizia con. Per dieci dollari e 1 centesimo questa è una probabilità 1: 1000 di andare in bancarotta "Sono un po 'sorpreso. Quindi questo significa che la probabilità di fallire sarà 1: 1000 anche se il pagamento è 10 volte il denaro offerto per round? Come è possibile quando le probabilità di fallire diminuiscono man mano che il tuo denaro cresce?
ElectronicToothpick

1
@ElectronicToothpick Se il pagamento è maggiore e se non cambi la frazione di gioco , la probabilità di fallire sarà minore. Tuttavia, quando aumenti la frazione di gioco, questo potrebbe non essere più vero. Con il criterio Kelly, aumenterai la frazione per giocare quando il pagamento è più alto. Ciò aumenterà il valore atteso del logaritmo del denaro, ma di conseguenza, la probabilità di fallire rimarrà la stessa.
Sesto Empirico,

1
Actually, when the gambler is not using the Kelly criterion, which optimizes E[logMt], but instead chooses to optimize E[Mt], then the consequence is that a higher fraction of the amount of money is being gambled. Possibly this might lead to an increase in the risk of bankruptcy when the payout is made larger. I could add an analysis of this, but I am afraid that my answer is already too long and/or complex.
Sextus Empiricus
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.