A estratégia de Kelly que não pode falhar
(win-vector.com)- No Next Card Bet, em que se acompanha continuamente a distribuição de cores de um baralho de 52 cartas, a estratégia de Kelly, ao contrário de sua natureza normalmente de alta variância, sempre termina o capital inicial de $1 em cerca de $9,08
- A regra de aposta é simples: se as cartas vermelhas restantes
re as pretas restantesbforem iguais, não aposte; caso contrário, aposte na cor que tiver mais cartas restantes uma fração do capital atual igual a|r - b| / (r + b) - Mesmo executando 10.000 baralhos embaralhados em Python, o capital final permanece no intervalo de
9.081329549427776a9.081329549427803, gerando um retorno maior do que a estratégia de dobrar que aposta só na última carta, sem variação - A prova distribui igualmente o capital inicial entre
(52 choose 26) = 495,918,532,948,104arranjos possíveis de vermelho/preto e constrói um portfólio em que apenas uma subestratégia compatível com o baralho real dobra 52 vezes seguidas - Como a variação total do capital desse portfólio coincide com o padrão conservador da estratégia de Kelly, uma estratégia de Kelly que normalmente pode perder dinheiro se torna, neste jogo, uma estratégia de variância zero
Regras e intuição do Next Card Bet
- A estratégia de alocação de apostas de Kelly é uma forma de definir a fração da aposta em situações de jogo usando informação ou viés a seu favor
- A estratégia de Kelly em geral é conhecida como uma estratégia agressiva de alta variância, e apostar acima da fração de Kelly pode aumentar o risco de ruína
- No “Next Card Bet” apresentado em Mathematical Puzzles, de Peter Winkler, essa estratégia funciona sem risco e com variância zero
- O jogo começa com um baralho padrão de 52 cartas
- Há 26 cartas vermelhas e 26 cartas pretas
- O baralho é embaralhado, as cartas são reveladas uma a uma e as cartas reveladas não voltam ao baralho
- O jogador pode apostar qualquer fração do capital atual em a próxima carta ser vermelha ou preta
- O pagamento é de 1:1, e o capital inicial é $1
- Ao contar as cartas que já saíram, é possível saber quantas de cada cor restam no baralho invisível
- Se você não apostar até a última carta, poderá saber com certeza a cor da carta restante
- Essa estratégia simples permite dobrar o capital com segurança, apostando tudo na última carta para chegar a 2x
Fração de aposta de Kelly
- A estratégia de Kelly escolhe a aposta que maximiza o valor esperado do logaritmo do capital final
- Se o número de cartas vermelhas restantes for
re o de pretas restantes forb, er > b, então a probabilidade de sair vermelha ér / (r + b) - O log esperado do capital é maximizado pela expressão
P[draw red] * log(1 + bet_fraction) + P[draw black] * log(1 - bet_fraction)
- No ponto em que a derivada dessa expressão é zero, a fração de aposta se torna
(r - b) / (r + b) - A estratégia inteira assume risco apenas na medida da diferença entre as duas cores restantes
- Se
r = b, não se aposta - Se
r > b, aposta-se uma fração do capital atual igual a|r - b| / (r + b)em “red” - Se
b > r, aposta-se uma fração do capital atual igual a|r - b| / (r + b)em “black”
- Se
Resultados da simulação em Python
- O exemplo em Python executa a estratégia de Kelly com a função
run_bets(is_red)stakecomeça em 1.0- A cada carta, o número de cartas vermelhas e pretas restantes é atualizado
- Aposta-se na cor mais numerosa uma fração igual a
abs(n_red_remaining - n_black_remaining) / (n_red_remaining + n_black_remaining) - Se a previsão estiver certa, o valor apostado volta em dobro; se estiver errada, ele é perdido
- O gerador de números aleatórios usado é
np.random.default_rng(2024) - Ao gerar 10.000 baralhos com 26 cartas vermelhas entre 52, os resultados convergem praticamente para o mesmo valor
- Mínimo:
9.081329549427776 - Máximo:
9.081329549427803
- Mínimo:
- A diferença entre os resultados foi menor que
1e-8, e em todas as execuções o retorno foi de cerca de 9,08x o capital inicial - Um retorno de 9,08x é muito maior que o da estratégia segura de 2x obtida apostando apenas na última carta
Prova do portfólio de variância zero
- O número de arranjos possíveis de cartas vermelhas e pretas é
(52 choose 26) = 495,918,532,948,104 - Usa-se o resultado padrão de que, em um baralho bem embaralhado, todos esses arranjos de vermelho/preto surgem com a mesma probabilidade
- A estratégia de portfólio trata cada arranjo possível de vermelho/preto como uma subestratégia separada
- A cada subestratégia é alocada uma fração de
1 / (52 choose 26)do capital inicial - As subestratégias administram apenas o próprio dinheiro, sem redistribuição entre si
- Cada subestratégia assume que o arranjo a ela atribuído é o baralho real e aposta todo o capital, a cada carta, na cor correspondente
- A cada subestratégia é alocada uma fração de
- Todas as subestratégias diferentes do baralho real acabam apostando tudo em uma carta errada em algum momento e quebram
- Apenas a única subestratégia que coincide exatamente com o baralho real acerta as 52 cartas e multiplica o capital por
2^52 - Por isso, o retorno final do portfólio inteiro é sempre o mesmo, independentemente da ordem das cartas
$1 / (52 choose 26) * 2^52- Cerca de $9,08
Equivalência entre o portfólio e a estratégia de Kelly
- No portfólio, as subestratégias que ainda não quebraram fazem previsões sobre a próxima carta: vermelha ou preta
- Quando restam
rcartas vermelhas ebpretas, a proporção de previsões das subestratégias segue a proporção das cores restantes - Quando a próxima carta é revelada, o grupo que errou quebra, e o grupo que acertou dobra o capital
- Nesse momento, a variação total do capital do portfólio coincide exatamente com o padrão conservador da estratégia de Kelly de apostar
|r - b| / (r + b)na cor que resta em maior quantidade - A razão de a estratégia de Kelly ter variância zero aqui é que ela se move exatamente como essa estratégia de portfólio, que já tem variância zero por construção
O que muda em relação à estratégia de Kelly usual
- A estratégia de Kelly normalmente busca maximizar a taxa esperada de crescimento do logaritmo do capital, evitando a ruína
- Mas, fora isso, a estratégia de Kelly usual não garante muita coisa: na prática, ela pode perder dinheiro e geralmente tem alta variância
- Neste jogo de cartas, mesmo que haja perda em uma aposta, a distribuição de cores do baralho fica mais desequilibrada, tornando as condições futuras mais favoráveis
- Se as apostas forem pequenas o suficiente, o capital perdido em apostas erradas é compensado pela vantagem maior que surge depois
- Essa estrutura lembra as fases de exploração e aproveitamento em problemas como testes A/B
Referências
- A prova se baseia na solução apresentada em Winkler Mathematical Puzzles
- Essa prova tem relação com o estilo de Thomas Cover, que depois criou a estratégia de investimento universal portfolio
- Demo e materiais-fonte
- Kelly_cant_fail.ipynb: notebook do exemplo do texto
- card_count_fns.py: funções de contagem de cartas e execução das apostas
- dyn_prog.ipynb: notebook de programação dinâmica para o caso de unidades de capital indivisíveis
- Demonstrating Kelly Betting with Chips: explicação da demonstração com fichas
1 comentários
Comentários do Hacker News
Para essa estratégia valer sempre, a aposta precisa poder ser dividida em partes infinitamente pequenas.
Por exemplo, se 26 cartas vermelhas estiverem concentradas no topo do baralho, a aposta inicial de $1.00 cai até 0.000000134 e depois volta a subir para 9.08.
O valor esperado fica aproximadamente no lugar certo, mas a variância cresce rapidamente. Então, além desse caso importante, ele é bem instável no geral.
Há uma estratégia de programação dinâmica conhecida que garante lucro de $8.08 em uma aposta de $1. Simplesmente arredondar a estratégia de Kelly não produz esse resultado.
Se você perder uma única vez, pode deixar passar uma sequência lucrativa ou uma jogada específica de grande lucro. Se desenhar um gráfico de preço versus tempo como um gráfico Renko, ele se parece com o gráfico de qualquer ativo.
Na negociação real de ações/cripto/forex, isso significa que você precisa fazer praticamente todas as operações; caso contrário, o desempenho da estratégia cai. Assim como, no experimento, você não troca a moeda, no trading você não pode trocar de ativo nem perder operações, e precisa manter isso por muito tempo.
Nem é preciso dizer que isso exige uma consistência enorme e, quando há dinheiro envolvido, o estresse também aumenta. Repetir isso todos os dias gera um desgaste mental e físico grande, então é difícil sustentar por muito tempo.
Uma ramificação interessante sobre Kelly é o paradoxo de Proebsting.
Na teoria das probabilidades, o paradoxo de Proebsting é um argumento que parece mostrar que o critério de Kelly pode levar à ruína. Matematicamente, ele pode ser resolvido, mas levanta questões interessantes na aplicação prática de Kelly, especialmente em investimentos. Foi discutido pela primeira vez por Edward O. Thorp em 2008 e recebeu o nome de seu criador, Todd Proebsting.
https://en.wikipedia.org/wiki/Proebsting%27s_paradox
Ou seja, Kelly funciona bem quando você conhece as probabilidades e elas não mudam.
Se você não conhece as probabilidades, ou se elas podem mudar, imagino que a abordagem correta precise ser mais complexa do que Kelly.
É um conteúdo bonito, mas o argumento de portfólio parece um desvio desnecessário. Dá para fazer uma prova de duas linhas por indução.
Da mesma forma, ao tirar preto e perder, o payoff é X * (1-(r-b)/(r+b)) * 2^(r+b-1) / (r+b-1 choose r) = X * 2^(r+b) * b / ((r+b) * (r+b-1 choose r)) = X * 2^(r+b) / (r+b choose r). QED
Como no problema nº 14 do livro de entrevistas de finanças quantitativas de Timothy Falcon, há um jogo de cartas muito parecido em que você vira cartas do baralho e decide quando parar. Vermelho conta como $1, preto como −$1.
Gwern explicou isso e também escreveu código para verificar a estratégia ótima de parada: https://gwern.net/problem-14
Quando eu era adolescente, descobri, contando cartas, que se tentasse adivinhar a cor que havia em maior quantidade restante no baralho, eu sempre acertaria mais da metade das vezes
https://en.wikipedia.org/wiki/TRS-80_Model_100
Escrevi uma simulação nele e ela nunca falhou. Recentemente lembrei disso de novo e rodei 30 milhões de vezes com um script em Python, e também não falhou
Ao pensar no que poderia fazer com isso, imaginei (i) apostas e (ii) mágica, mas nenhum dos dois pareceu muito promissor
Como aposta, eu poderia apostar US$ 1000 contra US$ 10 da outra pessoa, mas não é um caminho para ganhar muito dinheiro, e se eu errar ou for enganado posso perder uma boa quantia. Pensando melhor, talvez fosse melhor reformular isso como uma aposta acumulada (parlay)
Como mágica, é lento demais. Cheguei a criar uma fala do tipo: “Parapsicólogos não conseguiram demonstrar poderes de premonição de forma confiável com aquelas elegantes cartas de Zener, mas eu criei um protocolo que consegue provar isso todas as vezes!”, mas concluí que não era divertido o bastante. Leva tempo para passar por um baralho inteiro, não parece um milagre, e para rejeitar a hipótese nula com p=0,01 seria preciso fazer isso 7 vezes seguidas. Talvez alguém com melhor presença de palco conseguisse, mas eu desisti
Às vezes proponho como quebra-cabeça derivar esse algoritmo, mas ninguém conseguiu resolver. Eu também não consegui
https://en.m.wikipedia.org/wiki/Boyer%E2%80%93Moore_majority...
Mesmo com entropia suficiente, 30 milhões certamente não é o bastante
O critério de Kelly é um dos meus conceitos favoritos de teoria dos jogos, e é muito usado na gestão de banca de jogadores profissionais, especialmente jogadores de pôquer
É uma boa forma de entender como administrar finanças e tamanhos de aposta para seguir avançando de maneira consistente sem assumir risco grande demais nem quebrar, mas é frequentemente aplicado de forma errada nessa área. Kelly lida com resultados binários; quando aplicado a situações em que o resultado não é binário, dependendo de como se olha a matemática, o resultado pode parecer quase correto, mas ficar ligeiramente deslocado
Como no pôquer se joga contra outros jogadores, a utilidade de uma determinada distribuição de fichas parece ter de ser mais complexa do que simplesmente a quantidade de fichas possuídas
Não sou jogador de pôquer
O critério de Kelly se generaliza bem para alocações contínuas, simultâneas e complexas
O que é necessário é apenas uma lista de ações possíveis e a distribuição de probabilidade conjunta dos resultados de riqueza após cada ação. A ação pode ser uma ação composta com resultados contínuos
No pôquer, ganhar ou perder não é binário, pois o valor ganho ou perdido varia; por isso se usa o valor esperado. Depois de calcular um valor esperado aproximado, usa-se também uma calculadora de variância, por exemplo https://www.primedope.com/poker-variance-calculator/, para ver, no longo prazo, com que frequência e quanto é provável ganhar ao longo de um determinado número de mãos
Parece que se gastaria muito tempo sem ganhar nem perder
Teria sido uma demonstração melhor se tivesse reduzido para números mais fáceis de tratar, por exemplo um baralho com 2 cartas pretas e 2 cartas vermelhas
No turno 1, r = b, então não se aposta
No turno 2, aposta-se 1/3 na cor que não saiu no turno 1
No turno 3, se você errou no turno 2, restam apenas 2/3 da banca, mas como sabe as cores das próximas duas cartas, dobra a cada vez e termina o turno 3 com 4/3 da banca original. Se acertou, a banca está em 4/3, mas restam uma vermelha e uma preta, então não se aposta neste turno
No turno 4, como você sabe a cor da última carta, dobra o dinheiro e fica com 8/3 da banca original
E o exercício deixado ao leitor é provar a otimalidade; é bem straightforward, mas não acredito que haja uma prova curta
Por isso, começar com o exemplo de 4 cartas e depois mostrar diagramas de árvore para os casos de 5 e 6 cartas, ainda com números fáceis de lidar, ajuda a construir a intuição para induzir ao caso geral
Na prática, há muitos fatores que tornam o uso de Kelly mais difícil do que no exemplo de brinquedo
Qual é o tamanho da banca? É o dinheiro em caixa? O patrimônio líquido total? O patrimônio líquido líquido? A renda futura do trabalho?
Dependendo do tamanho da banca, vários fatores entram em jogo. Por exemplo, se a banca é de US$ 100, perder tudo normalmente não é um grande problema. Mas se a banca é de US$ 1 million, a pessoa fica muito mais relutante em expô-la ao risco
Qual é o valor esperado? Ele é conhecido? É estacionário? O jogo é honesto?
Dependendo das propriedades estatísticas do valor esperado, é preciso ajustar bastante a abordagem de dimensionamento das apostas. Em áreas onde o valor esperado só pode ser estimado e há muitos golpistas, como no pôquer, é preciso definir o tamanho das apostas sob grande incerteza
Quais valores de aposta estão disponíveis?
Na prática, não existe uma faixa contínua de valores de aposta. Em geral, só há valores discretos, como de US$ 5 a US$ 500 em incrementos de US$ 5 ou US$ 25. Se a banca cair demais, você é expulso do jogo; se subir demais, já não consegue maximizar o lucro
No fim, por causa dessas complexidades, jogadores profissionais muitas vezes apostam meio Kelly ou um quarto de Kelly
Em negociações há spread e comissões; nas mesas de cassino, há rake
O fato de o resultado não ter variância é muito interessante. Mas, por causa disso, pela estrutura especial deste problema, dá a impressão de que deveria existir uma estratégia com retorno esperado maior
Alguém sabe se a estratégia de Kelly é ótima aqui?
No começo achei que essas estratégias fossem muito diferentes, mas não é exatamente assim. A estratégia de Kelly também faz a mesma coisa quando resta apenas uma cor. A diferença é que essa estratégia não faz nada antes disso
Mesmo assim, as duas parecem casos extremos. Apostar tudo quando resta apenas uma cor é a única jogada correta, e no fim a questão é o que fazer antes disso. Não fazer nada e Kelly parecem ser as únicas estratégias boas
Só que esse argumento não flui tão naturalmente quanto a prova que mostra variância 0, então não o incluí. O texto original também chamava as subestratégias dentro do portfólio de “estratégias puras”, sugerindo uma prova de teoria dos jogos
Este problema e a solução parecem ter vindo de Thomas Cover
Não me lembro deste exemplo específico, mas aprendi o critério de Kelly em uma aula dada por Thomas Cover. Ele foi um dos meus professores favoritos, e qualquer discussão com ele era interessante e valiosa. Descanse em paz