Rus*_*ssH 5 python python-2.7 pandas
以下代码对硬币翻转结果进行投注。您从 \xc2\xa3100 开始,每次翻转的风险为 5%,但由于我的代码根据您的起始余额计算赌注大小,因此赌注始终为 \xc2\xa35。
\n\nimport pandas\nimport matplotlib.pyplot as plt\n\nstart_bal = 100.0 #start off with \xc2\xa3100\nrisk = 0.05 # risk 5% on each bet\n\n#create an empty data frame.\na = pandas.DataFrame()\n\n#create a list of coin toss results, 1 is win, -1 is lose\na['Result'] = [1,1,1,1,-1,-1,1,1,1,-1,-1,1,1,-1,-1,-1,1,1]\n\n#your bet size is a % of your starting balance\na['bet'] = start_bal*risk\n#record profit or loss based on coin toss\na['pnl'] = a.Result * a.bet\n#increase/decrease balance\na['bal'] = start_bal + a.pnl.cumsum()\n\n#plot balance\nplt.plot(a.bal)\nRun Code Online (Sandbox Code Playgroud)\n\n我想做的是在每次下注后根据您当时的余额重新计算下注大小,这样当您的余额增加时您下注更多,当余额减少时您下注更少。这意味着“bal”取决于“bet”,而“bet”又取决于“bal”,所以我最终得到了循环关系。
\n\n这可以吗?我是否需要一次一行地迭代数据帧,重新计算该特定索引处的“bal”和“bet”?
\n\n谢谢。
\n一个简单的单衬:
results = start_bal * (1 + risk * a.Result).cumprod()
>>> results
0 105.000000
1 110.250000
2 115.762500
3 121.550625
4 115.473094
5 109.699439
6 115.184411
7 120.943632
8 126.990813
9 120.641272
10 114.609209
11 120.339669
12 126.356653
13 120.038820
14 114.036879
15 108.335035
16 113.751787
17 119.439376
Name: Result, dtype: float64
results.plot()
Run Code Online (Sandbox Code Playgroud)

| 归档时间: |
|
| 查看次数: |
286 次 |
| 最近记录: |