#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""created on fri jun 22 15:15:13 2018
author: yunjinqi
email:[email protected]
sigature:it takes significant discipline,research,diligence and patience
to be successful at algorithmic trading.it takes months,if not years,
to generate consistent profitability.
"""'''
聖彼得堡悖論是數學家丹尼爾·伯努利(daniel bernoulli)的
表兄尼古拉·伯努利(nicola bernoulli)在1738提出的乙個概率期望值悖論,
它來自於一種擲幣遊戲,即聖彼得堡遊戲(表1)。
設定擲出正面或者反面為成功,遊戲者如果第一次投擲成功,得獎金2元,遊戲結束;
第一次若不成功,繼續投擲,第二次成功得獎金4元,遊戲結束;
這樣,遊戲者如果投擲不成功就反覆繼續投擲,直到成功,遊戲結束。
如果第n次投擲成功,得獎金2n元,遊戲結束。
按照概率期望值的計算方法,將每乙個可能結果的得獎值乘以該結果發生的概率
即可得到該結果獎值的期望值。遊戲的期望值即為所有可能結果的期望值之和。
隨著n的增大,以後的結果雖然概率很小,但是其獎值越來越大,每乙個結果的期望值均為l,
所有可能結果的得獎期望值之和,即遊戲的期望值,將為「無窮大」。
按照概率的理論,多次試驗的結果將會接近於其數學期望。
但是實際的投擲結果和計算都表明,多次投擲的結果,
其平均值最多也就是幾十元。正如hacking(1980)所說:「沒有人願意花25元去參加一次這樣的遊戲。」
這就出現了計算的期望值與實際情況的「矛盾」,問題在**?
實際在遊戲過程中,遊戲的收費應該是多少?
決策理論的期望值準則在這裡還成立嗎?這是不是給「期望值準則」提出了嚴峻的挑戰?
正確認識和解決這一矛盾對於人們認識隨機現象、發展決策理論和指導實際決策無疑具有重大意義。、
'''# simulate the paradox
import pandas as pd
import numpy as np
import random
def bet_one_win_money():
tows=[1,-1]
times=0
result=0
while result!=1:
result=random.choice(tows)
times+=1
return 2**times
def get_mean_money_for_many_times(n=1000):
money=
for i in range(n):
return sum(money)/len(money)
mean_money=get_mean_money_for_many_times(10000000)
print(mean_money)
聖彼得堡悖論之破解
import numpy as np import pandas as pd 聖彼得堡悖論 1,2,4,8,16,class stpetresburg object def init self,beitou 2,peilv 1.97 self.peilv peilv 賠率 self.beitou b...