编辑代码

# -*- coding: utf-8 -*-
import pandas as pd
import numpy as np
arr = np.zeros((3000,8))
zuidahualirun=pd.DataFrame(arr,columns = ['第一种总投入','第二种总投入','第一种收益','第二种收益','第一种收益率','第二种收益率','收益乘积','乘积和总收入'])
zuidahualirun['第一种总投入']=0
zuidahualirun['第二种总投入']=0
zuidahualirun['第一种收益']=0
zuidahualirun['第二种收益']=0
zuidahualirun['第一种收益率']=0
zuidahualirun['第二种收益率']=0
zuidahualirun['收益乘积']=0
zuidahualirun['乘积和总收入']=0


def kelly(p, q, rW, rL):
    """
    计算凯利公式
    Args:
        p (float): 获胜概率
        q (float): 失败概率
        rW (float): 净利润率
        rL (float): 净亏损率
    Returns:
        float: 最大化利润的投资本金占比(%)
    """
    return (p*rW - q*rL)/rW * rL

dataqiwangshouyilv=[]
datashouyi=[]
list1=['123','666','892']
total=int(input('总投入:'))
peilv1=float(input('赔率1: '))
peilv2=float(input('赔率2: '))
xiabiaodata=0

for i in range(0,total,5):
    for j in range (0,total,5):
        
        if i+j<=total and 1/peilv1 + 1/peilv2 < 1 and (peilv1*i)>i+j and (peilv2*j)>i+j:
            roeun1=((peilv1*i)/(i+j)-1)*100
            roeun2=((peilv2*j)/(i+j)-1)*100
            shouyichengjiun=roeun1*roeun2
            shouyichengji1='%.2f'%shouyichengjiun
            shouyi1=peilv1*i-i-j
            shouyi2=peilv2*j-i-j
            shouyi1='%.2f'%shouyi1
            shouyi2='%.2f'%shouyi2
            shouyichengjihezongshouru=shouyichengjiun*(i+j)
            shouyichengjihezongshouru='%.2f'%shouyichengjihezongshouru
            zuidahualirun['第一种总投入'].iloc[xiabiaodata]=float(i)
            zuidahualirun['第二种总投入'].iloc[xiabiaodata]=float(j)
            zuidahualirun['第一种收益'].iloc[xiabiaodata]=float(shouyi1)
            zuidahualirun['第二种收益'].iloc[xiabiaodata]=float(shouyi2)
            
            zuidahualirun['第一种收益率'].iloc[xiabiaodata]=float(roeun1)
            zuidahualirun['第二种收益率'].iloc[xiabiaodata]=float(roeun2)
            zuidahualirun['收益乘积'].iloc[xiabiaodata]=float(shouyichengji1)
            zuidahualirun['收益乘积'].iloc[xiabiaodata]=float(shouyichengji1)
            zuidahualirun['乘积和总收入'].iloc[xiabiaodata]=float(shouyichengjihezongshouru)
            xiabiaodata=xiabiaodata+1

print('\n\n\n\t最佳表现:')
print('__________________________\n')

zuidahualirun['第一种收益']=zuidahualirun['第一种收益'].astype('float')
zuidahualirun['第二种收益']=zuidahualirun['第二种收益'].astype('float')
zuidahualirun['第一种收益']=['%.2f' % x for x in zuidahualirun['第一种收益'].values]
zuidahualirun['第二种收益']=['%.2f' % x for x in zuidahualirun['第二种收益'].values]


zuidahualirun['第一种收益率']=zuidahualirun['第一种收益率'].astype('float')
zuidahualirun['第二种收益率']=zuidahualirun['第二种收益率'].astype('float')
zuidahualirun['第一种收益率']=['%.2f' % x for x in zuidahualirun['第一种收益率'].values]
zuidahualirun['第二种收益率']=['%.2f' % x for x in zuidahualirun['第二种收益率'].values]


zuidahualirun=zuidahualirun.sort_values(by='乘积和总收入',ascending=False,axis=0)
print('第一种投入:\t'+str(zuidahualirun['第一种总投入'].iloc[0]))
print('第二种投入:\t'+str(zuidahualirun['第二种总投入'].iloc[0]))
print('第一种收益:\t'+str(zuidahualirun['第一种收益'].iloc[0]))
print('第二种收益:\t'+str(zuidahualirun['第二种收益'].iloc[0]))
print('第一种收益率:\t'+str(zuidahualirun['第一种收益率'].iloc[0])+'%')
print('第二种收益率:\t'+str(zuidahualirun['第二种收益率'].iloc[0])+'%')
print('收益的乘积:\t'+str(zuidahualirun['收益乘积'].iloc[0]))
print('乘积和总收入:\t'+str(zuidahualirun['乘积和总收入'].iloc[0]))