Vấn đề cây tiền ma thuật


19

Tôi nghĩ về vấn đề này khi tắm, nó được truyền cảm hứng từ các chiến lược đầu tư.

Hãy nói rằng có một cây tiền ma thuật. Mỗi ngày, bạn có thể cung cấp một số tiền cho cây tiền và nó sẽ nhân ba số tiền đó, hoặc phá hủy nó với xác suất 50/50. Bạn ngay lập tức nhận thấy rằng trung bình bạn sẽ kiếm được tiền bằng cách làm điều này và mong muốn tận dụng cây tiền. Tuy nhiên, nếu bạn cung cấp tất cả tiền của mình cùng một lúc, bạn sẽ có 50% mất tất cả số tiền của mình. Không thể chấp nhận được! Bạn là một người khá sợ rủi ro, vì vậy bạn quyết định đưa ra một chiến lược. Bạn muốn giảm thiểu tỷ lệ mất tất cả, nhưng bạn cũng muốn kiếm được nhiều tiền nhất có thể! Bạn nghĩ ra những điều sau: mỗi ngày, bạn cung cấp 20% vốn hiện tại của mình cho cây tiền. Giả sử mức thấp nhất bạn có thể cung cấp là 1 xu, sẽ mất 31 giây để mất tất cả số tiền của bạn nếu bạn bắt đầu với 10 đô la. Hơn nữa bạn càng kiếm được nhiều tiền, chuỗi thua lỗ càng dài để bạn mất tất cả, thật tuyệt vời! Bạn nhanh chóng bắt đầu kiếm được nhiều tiền mặt. Nhưng sau đó, một ý tưởng nảy ra trong đầu bạn: bạn chỉ có thể cung cấp 30% mỗi ngày và kiếm được nhiều tiền hơn! Nhưng chờ đã, tại sao không cung cấp 35%? 50%? Một ngày nọ, với những ký hiệu đô la lớn trong mắt bạn, bạn chạy đến cây tiền với tất cả hàng triệu đồng của bạn và cung cấp 100% tiền mặt của bạn, cây tiền nhanh chóng bị đốt cháy. Ngày hôm sau bạn có được một công việc tại McDonalds. Mà cây tiền kịp thời cháy. Ngày hôm sau bạn có được một công việc tại McDonalds. Mà cây tiền kịp thời cháy. Ngày hôm sau bạn có được một công việc tại McDonalds.

Có một tỷ lệ tối ưu tiền mặt bạn có thể cung cấp mà không mất tất cả?

(Câu hỏi phụ:

Nếu có một tỷ lệ phần trăm tối ưu bạn nên cung cấp, đây có phải là mức tĩnh (tức là 20% mỗi ngày) hay tỷ lệ phần trăm tăng lên khi vốn của bạn tăng?

Bằng cách cung cấp 20% mỗi ngày, tỷ lệ mất tất cả tiền của bạn giảm hay tăng theo thời gian? Có một tỷ lệ tiền từ đó tỷ lệ mất tất cả tiền của bạn tăng theo thời gian?


7
Đây có vẻ như là một biến thể của sự hủy hoại của Gambler
Robert Long

2
Rất nhiều câu hỏi này phụ thuộc vào việc xu có thể có được hay không. Ngoài ra, có nhiều mục tiêu khả thi mà ai đó có thể có trong tình huống này. Các mục tiêu khác nhau sẽ có các chiến lược tối ưu khác nhau.
Buge

Câu trả lời:


19

Đây là một vấn đề nổi tiếng. Nó được gọi là đặt cược Kelly. Câu trả lời, bằng cách này, là 1/3. Nó tương đương với việc tối đa hóa tiện ích đăng nhập của cải.

Kelly bắt đầu với việc dành thời gian đến vô cùng và sau đó giải quyết lạc hậu. Vì bạn luôn có thể biểu thị lợi nhuận theo cách gộp liên tục, sau đó bạn cũng có thể đảo ngược quy trình và thể hiện nó trong nhật ký. Tôi sẽ sử dụng giải thích tiện ích đăng nhập, nhưng tiện ích đăng nhập là một tiện lợi. Nếu bạn đang tối đa hóa sự giàu có dưới dạng thì bạn sẽ kết thúc với một chức năng hoạt động giống như tiện ích nhật ký. Nếu là tỷ lệ cược xuất chi và là xác suất chiến thắng và là tỷ lệ phần trăm của tài sản đầu tư, thì công cụ phái sinh sau đây sẽ hoạt động.nbpX

Đối với đặt cược nhị phân, , trong một khoảng thời gian và đơn vị giàu có.E(log(X))=plog(1+bX)+(1p)log(1X)

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

Đặt đạo hàm về 0 để tìm cực trị,

pb1+bX1p1X=0

Nhân chéo, bạn kết thúc với

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

Trong trường hợp của bạn,

X= =3×12-(1-12)3= =13.

Bạn có thể dễ dàng mở rộng điều này thành nhiều kết quả hoặc liên tục bằng cách giải quyết tiện ích dự kiến ​​của cải trên phân phối xác suất chung, chọn phân bổ và chịu bất kỳ ràng buộc nào. Thật thú vị, nếu bạn thực hiện nó theo cách này, bằng cách bao gồm các ràng buộc, chẳng hạn như khả năng đáp ứng các khoản thanh toán thế chấp, v.v., thì bạn đã tính tổng số rủi ro của mình và do đó bạn có thể điều chỉnh rủi ro hoặc ít nhất là kiểm soát rủi ro giải pháp.

Desiderata Mục đích thực sự của nghiên cứu ban đầu liên quan đến việc đánh bạc bao nhiêu dựa trên tín hiệu ồn ào. Trong trường hợp cụ thể, bao nhiêu để đánh bạc với tín hiệu điện tử ồn ào trong đó chỉ ra việc phóng vũ khí hạt nhân của Liên Xô. Đã có một số lần ra mắt gần như của cả Hoa Kỳ và Nga, rõ ràng là có lỗi. Bao nhiêu bạn đánh bạc trên một tín hiệu?


Chiến lược này sẽ cho nguy cơ bị phá vỡ cao hơn tôi nghĩ so với các phân số thấp hơn
xác suất

@probabilityislogic Chỉ trong trường hợp đồng xu tồn tại. Trong trường hợp riêng biệt, nó sẽ trở thành sự thật vì bạn có thể đặt cược đồng xu cuối cùng của mình. Bạn không thể đặt cược một phần ba xu. Trong một thế giới riêng biệt, về bản chất, xác suất phá sản phải tăng lên trong quy mô phân bổ, không phụ thuộc vào trường hợp xuất chi. Phân bổ 2% có xác suất phá sản cao hơn 1% trong một thế giới riêng biệt.
Dave Harris

@probabilityislogic nếu bạn bắt đầu với 3 xu thì thật rủi ro. Nếu bạn bắt đầu với 550 đô la thì sẽ có ít hơn một cơ hội trong 1024 lần phá sản. Đối với kích thước nồi hợp lý, nguy cơ sụp đổ rời rạc trở nên nhỏ trừ khi bạn thực sự đi đến vô cùng, sau đó nó trở thành một điều chắc chắn trừ khi được phép vay.
Dave Harris

Tôi dự đoán đây sẽ là một vấn đề đã biết nhưng tôi không biết làm thế nào để tìm kiếm nó. Cảm ơn đã đề cập đến Kelly. Một câu hỏi mặc dù: wikipedia về tiêu chí kelly đề cập đến công thức sau đây để tính tỷ lệ phần trăm tối ưu: (bp-q) / b. Trong đó b là #dollars bạn nhận được khi đặt cược 1 đô la, p xác suất để thắng và q cơ hội thua. Nếu tôi điền vào đây cho kịch bản của mình, tôi nhận được: (2 * 0,5-0,5) /2=0.25. Có nghĩa là tỷ lệ tối ưu để đặt cược sẽ là 25%. Điều gì gây ra sự khác biệt này với câu trả lời của bạn là 1/3?
ElectronicToothpick

3
@ElectronicToothpick nếu bạn điền b = 3 bạn được 1/3. Sự khác biệt là ở cách bạn xem xét khoản thanh toán ba lần. Giả sử bạn bắt đầu với 1 đô la và bạn đặt cược 50 đô la, sau đó bạn xem xét khoản thanh toán ba lần kết thúc bằng năm mươi năm mươi 50 xu hoặc 2 đô la (b = 2, tức là trừ 50 xu hoặc cộng 2 lần 50 xu) so với năm mươi năm mươi 50 xu hoặc 2,50 đô la (b = 3, tức là trừ 50 xu hoặc cộng thêm 3 lần 50 xu).
Sextus Empiricus

5

Tôi thích câu trả lời được đưa ra bởi Dave harris. mặc dù tôi sẽ gặp vấn đề từ góc độ "rủi ro thấp", thay vì tối đa hóa lợi nhuận

Bước đi ngẫu nhiên bạn đang thực hiện, giả sử đặt cược phân số của bạn là q và xác suất thắng p=0.5 được đưa ra là

Yt|Yt1=(1q+3qXt)Yt1
trong đó XtBernoulli(p) . trung bình bạn có
E(Yt|Yt1)=(1q+3pq)Yt1
Bạn có thể lặp lại áp dụng điều này để có được
Yt|Y0=Y0j=1t(1q+3qXt)
với giá trị mong đợi
E(Yt|Y0)=(1q+3pq)tY0
bạn cũng có thể biểu thị số lượng tại thời điểmt là hàm của một biến ngẫu nhiên duy nhấtZt=j=1tXtBinomial(t,p) , nhưng lưu ý rằngZt không độc lập vớiZt1
Yt|Y0=Y0(1+2q)Zt(1q)tZt

chiến lược có thể

bạn có thể sử dụng công thức này để xác định giá trị "rủi ro thấp" cho q . Giả sử bạn muốn đảm bảo rằng sau k thua lỗ liên tiếp, bạn vẫn có một nửa tài sản ban đầu. Sau đó, bạn đặt q=12k1

Lấy ví dụ k=5 có nghĩa là chúng ta đặt q=0.129 hoặc với k=15 chúng ta đặt q=0.045 .

Ngoài ra, do tính chất đệ quy của chiến lược, rủi ro này là những gì bạn đang thực hiện ở mỗi lần đặt cược. Đó là, tại thời điểm s , bằng cách tiếp tục chơi, bạn đảm bảo rằng tại thời điểm k+s tài sản của bạn sẽ có ít nhất 0.5Ys

thảo luận

chiến lược trên không phụ thuộc vào tiền thắng từ chiến thắng, mà là về việc thiết lập ranh giới khi thua. Chúng tôi có thể nhận được tiền thắng dự kiến ​​bằng cách thay thế giá trị cho q chúng tôi đã tính và tại thời điểm k được sử dụng với rủi ro trong tâm trí.

Tuy nhiên, nó là thú vị để xem xét các trung bình chứ không phải là lương dự kiến ra vào thời điểm t , có thể được tìm thấy bằng cách giả median(Zt)tp .

Yk|Y0=Y0(1+2q)tp(1q)t(1p)
khi p=0.5 thì ta có tỷ lệ bằng (1+q2q2)0.5t . Điều này được tối đa hóa khiq=0.25 và lớn hơn1 khiq<0.5

cũng rất thú vị để tính toán cơ hội bạn sẽ đi trước tại thời điểm t . Để làm điều này, chúng ta cần xác định giá trị z sao cho

(1+2q)z(1q)tz>1
thực hiện sắp xếp lại chúng ta thấy rằng tỷ lệ thắng phải thỏa mãn
zt>log(1q)log(1q)log(1+2q)
Điều này có thể được cắm vào một xấp xỉ bình thường (lưu ý: trung bình0.5và sai số chuẩn là0.5t ) như
Pr(ahead at time t)Φ(tlog(1+2q)+log(1q)[log(1+2q)log(1q)])

Điều này cho thấy rõ ràng trò chơi có tỷ lệ cược rất tốt. các yếu tố nhân với t được giảm thiểu khiq=0(giá trị tối đa là13 ) và đang giảm đơn điệu như là một hàm củaq. Vì vậy, chiến lược "rủi ro thấp" là đặt cược một phần rất nhỏ của cải của bạn và chơi một số lần lớn.

giả sử chúng ta so sánh điều này với q=13q=1100 . hệ số cho mỗi trường hợp là0.110.32. Điều này có nghĩa là sau38trò chơi, bạn sẽ có khoảng 95% cơ hội để đi trước với đặt cược nhỏ, so với 75% cơ hội với đặt cược lớn hơn. Ngoài ra, bạn cũng có cơ hội phá vỡ với mức cược lớn hơn, giả sử bạn phải làm tròn số tiền cược của mình lên mức 5 xu hoặc đô la gần nhất. Bắt đầu với20này có thể đi13.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 . Đây là chuỗi14 trận thua trong tổng số38 và do đó, trò chơi sẽ có19 trận thua, nếu bạn không may mắn với vài lần đặt cược đầu tiên, thì ngay cả chiến thắng cũng không thể bù đắp cho một chuỗi tồi tệ (ví dụ: nếu hầu hết các chiến thắng của bạn xảy ra một khi phần lớn của cải đã biến mất). sẽ phá vỡ với tỷ lệ sở hữu 1% nhỏ hơn là không thể trong38 trò chơi. Mặt trái là cổ phần nhỏ hơn sẽ mang lại lợi nhuận trung bình nhỏ hơn nhiều, tương đươngvới mức tăng gấp350 lần với mức đặt cược lớn so với1.2 tăng với đặt cược nhỏ (tức là bạn dự kiến ​​sẽ có 24 đô la sau 38 vòng với đặt cược nhỏ và 7000 đô la với đặt cược lớn).


đó là nếu bạn xem xét rằng được chọn một cách rủi ro thấp và chúng tôi không tính toán nó cho t > > k , đây không phải là quá xấu xấp xỉ. Vì vậy, nó có thể vượt quá lợi nhuận từ chiến lược cá cược lớn. qt>>k
xác suất

Cách tiếp cận của bạn để tối đa hóa trung vị của thực sự giống như cách tiếp cận từ Dave Harris, đó là tối đa hóa giá trị trung bình của Z t (giống như trung vị của Z t ). Sẽ khác khi người ta tối đa hóa giá trị trung bình của Y t được phân phối logic và trong đó giá trị trung bình và trung bình không giống nhau. ZtZtZtYt
Sextus Empiricus

5

Tôi không nghĩ nó khác nhiều so với Martingale. Trong trường hợp của bạn, không có cược gấp đôi, nhưng tỷ lệ thắng là 3x.

Tôi đã mã hóa một "bản sao sống" của cây của bạn. Tôi chạy 10 mô phỏng. Trong mỗi mô phỏng (theo dõi), bạn bắt đầu với 200 xu và thử với cây, mỗi lần 1 xu cho 20.000 lần.

Các điều kiện duy nhất dừng mô phỏng là phá sản hoặc có 20 nghìn lần thử "sống sót"

nhập mô tả hình ảnh ở đây

Tôi nghĩ rằng bất kể tỷ lệ cược, sớm hay muộn sự phá sản đang chờ bạn.


Mã được javascript ngẫu nhiên nhưng không phụ thuộc: https://repl.it/@cilofrapez/MagicTree-Roulette

Nó cho bạn thấy kết quả ngay lập tức. Mã này rất đơn giản để điều chỉnh: để chạy tuy nhiên nhiều mô phỏng, số tiền đặt cược, tuy nhiên nhiều lần thử ... Hãy chơi thoải mái!

Ở dưới cùng của mã, mỗi kết quả của mô phỏng (theo mặc định 10) được lưu vào một tệp CSV có hai cột: số quay và tiền. Tôi đã làm điều đó để nó có thể được đưa nó vào một máy vẽ trực tuyến cho các biểu đồ.

Ví dụ, thật dễ dàng để có tất cả tự động cục bộ bằng thư viện Google Charts. Nếu bạn chỉ muốn xem kết quả trên màn hình, bạn có thể nhận xét phần cuối cùng như tôi đã đề cập trong tệp.

CHỈNH SỬA

Mã nguồn:

/**
 * 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
Bạn có thể gửi mã mà bạn đã viết cho điều này không?
baxx

1
Đây là đặt cược với cổ phần không đổi - nhưng đặt cược một tỷ lệ cố định trong tài sản của bạn, chẳng hạn như ở đây, mỗi lần sẽ tạo ra một kết quả khác nhau. Bạn có thể cần điều chỉnh điều này để tránh các đồng xu phân số (ví dụ: làm tròn xuống trừ khi điều này tạo ra giá trị nhỏ hơn1xu, trong trường hợp đó đặt cược1xu)1411
Henry

@baxx Chắc chắn, tôi vừa cập nhật bài viết. Henry, tôi không chắc là tôi hiểu bạn. Tôi có thể điều chỉnh mã để phù hợp với các nhu cầu khác nhau nếu bạn muốn.
Carles Alcolea

@CarlesAlcolea Tôi chỉ nói rằng sẽ rất tuyệt nếu mã bạn sử dụng cho bài viết được chứa trong chính bài đăng. Tôi không chắc chắn liệu liên kết để thay thế bạn đã đăng sẽ chết vào lúc nào đó hay không
baxx

1
@baxx Chắc chắn rồi! Sau khi viết chương trình ngẫu hứng này, tôi nghĩ rằng tôi nên tạo một ứng dụng trực tuyến nhỏ, để có thể khám phá hầu hết mọi tình huống thuộc loại này một cách dễ dàng. Tôi đã không tìm thấy bất kỳ. Bây giờ tôi đang chìm đắm trong công việc vì vậy hiện tại tôi để lại mã trong bài đăng và ứng dụng trong danh sách việc cần làm của tôi
Carles Alcolea

4

Báo cáo vấn đề

Đặt Yt=log10(Mt) là logarit của số tiền Mt con bạc có tại thời điểm t .

Đặt q là phần tiền mà con bạc đang đặt cược.

Đặt Y0=1 là số tiền mà con bạc bắt đầu bằng (mười đô la). Đặt YL=2 là số tiền mà con bạc phá sản (dưới 1 xu). Để đơn giản, chúng tôi thêm một quy tắc rằng con bạc ngừng đánh bạc khi ông đã qua một số tiền YW (chúng tôi sau này có thể nâng quy tắc này bằng cách lấy giới hạn YW ).

Đi bộ ngẫu nhiên

Bạn có thể thấy sự tăng trưởng và suy giảm của tiền như một bước đi ngẫu nhiên không đối xứng. Đó là bạn có thể mô tả Yt như:

Yt=Y0+i=1tXi

Ở đâu

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

Xác suất phá sản

Martingale

Cách diễn đạt

Zt=cYt

c

caw+cal=2
c<1q<0.5

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

Xác suất kết thúc phá sản

Yt<YLYt>YWYWYLaw

E[Zτ]τE[Z0]

Như vậy

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

}

"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" Im a bit surprised about this. So this means the probability to go bankrupt will be 1:1000 even if the payout is 10 times the offered money per round? How is this possible when the odds of going bankrupt decrease as your money grows?
ElectronicToothpick

1
@ElectronicToothpick If the payout is larger, and if you do not change the fraction that you gamble, then the probability to go bankrupt will be smaller. However, when you increase the fraction that you gamble, then this may not be true anymore. With the Kelly criterion, you will increase the fraction to gamble when the payout is higher. This will increase the expected value of the logarithm of the money, but as a consequence, the probability to go bankrupt will remain the same.
Sextus Empiricus

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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.