getOutcomeProbabilityAfterBet

This commit is contained in:
mantikoros 2022-03-03 12:06:24 -05:00
parent f40a65cc88
commit a7e7fc0c90
4 changed files with 11 additions and 10 deletions

View File

@ -8,13 +8,14 @@ export function getCpmmProbability(pool: { [outcome: string]: number }) {
return NO / (YES + NO) return NO / (YES + NO)
} }
export function getCpmmProbabilityAfterBet( export function getCpmmOutcomeProbabilityAfterBet(
contract: FullContract<CPMM, Binary>, contract: FullContract<CPMM, Binary>,
outcome: string, outcome: string,
bet: number bet: number
) { ) {
const { newPool } = calculateCpmmPurchase(contract, bet, outcome) const { newPool } = calculateCpmmPurchase(contract, bet, outcome)
return getCpmmProbability(newPool) const p = getCpmmProbability(newPool)
return outcome === 'NO' ? 1 - p : p
} }
export function calculateCpmmShares( export function calculateCpmmShares(

View File

@ -19,7 +19,7 @@ export function getDpmOutcomeProbability(
return shares ** 2 / squareSum return shares ** 2 / squareSum
} }
export function getDpmProbabilityAfterBet( export function getDpmOutcomeProbabilityAfterBet(
totalShares: { totalShares: {
[outcome: string]: number [outcome: string]: number
}, },

View File

@ -3,7 +3,7 @@ import {
calculateCpmmShares, calculateCpmmShares,
calculateCpmmShareValue, calculateCpmmShareValue,
getCpmmProbability, getCpmmProbability,
getCpmmProbabilityAfterBet, getCpmmOutcomeProbabilityAfterBet,
getCpmmProbabilityAfterSale, getCpmmProbabilityAfterSale,
} from './calculate-cpmm' } from './calculate-cpmm'
import { import {
@ -13,7 +13,7 @@ import {
calculateDpmShares, calculateDpmShares,
getDpmOutcomeProbability, getDpmOutcomeProbability,
getDpmProbability, getDpmProbability,
getDpmProbabilityAfterBet, getDpmOutcomeProbabilityAfterBet,
getDpmProbabilityAfterSale, getDpmProbabilityAfterSale,
} from './calculate-dpm' } from './calculate-dpm'
import { import {
@ -42,18 +42,18 @@ export function getOutcomeProbability(contract: Contract, outcome: string) {
: getDpmOutcomeProbability(contract.totalShares, outcome) : getDpmOutcomeProbability(contract.totalShares, outcome)
} }
export function getProbabilityAfterBet( export function getOutcomeProbabilityAfterBet(
contract: Contract, contract: Contract,
outcome: string, outcome: string,
bet: number bet: number
) { ) {
return contract.mechanism === 'cpmm-1' return contract.mechanism === 'cpmm-1'
? getCpmmProbabilityAfterBet( ? getCpmmOutcomeProbabilityAfterBet(
contract as FullContract<CPMM, Binary>, contract as FullContract<CPMM, Binary>,
outcome, outcome,
bet bet
) )
: getDpmProbabilityAfterBet(contract.totalShares, outcome, bet) : getDpmOutcomeProbabilityAfterBet(contract.totalShares, outcome, bet)
} }
export function calculateShares( export function calculateShares(

View File

@ -23,7 +23,7 @@ import {
calculatePayoutAfterCorrectBet, calculatePayoutAfterCorrectBet,
calculateShares, calculateShares,
getProbability, getProbability,
getProbabilityAfterBet, getOutcomeProbabilityAfterBet,
} from '../../common/calculate' } from '../../common/calculate'
import { useFocus } from '../hooks/use-focus' import { useFocus } from '../hooks/use-focus'
@ -99,7 +99,7 @@ export function BetPanel(props: {
const initialProb = getProbability(contract) const initialProb = getProbability(contract)
const outcomeProb = getProbabilityAfterBet( const outcomeProb = getOutcomeProbabilityAfterBet(
contract, contract,
betChoice || 'YES', betChoice || 'YES',
betAmount ?? 0 betAmount ?? 0