教你量化投资赚钱 python 常用 投资 策略 函数 公式 策略收益率 基准收益率 超额收益率及列表

前提是你 提交于 2020-10-08 02:26:13

import math
from decimal import Decimal

def profit(prevNum,nextNum):
    if prevNum==0:return 0
    return Decimal((nextNum-prevNum)/prevNum).quantize(Decimal('0.00'))

#参数:策略起始日收益、策略终止日收益     
def strategyProfit(strategyList):
    #策略收益率
    start = strategyList[0]
    end = strategyList[-1]
    return (end-start)/start

#参数:基准起始日收益、基准终止日收益     
def benchmarkProfit(benchmarkList):
    #基准收益率
    start = benchmarkList[0]
    end = benchmarkList[-1]
    return (end-start)/start
#参数:策略收益率、基准收益率
def excessProfit(strategyList,benchmarkList):
    #超额收益:策略和基准取终止日收益率
    if(len(strategyList)==0 or len(benchmarkList)==0):
        
        return 0
    return (strategyProfit(strategyList)+1)/(benchmarkProfit(benchmarkList)+1)-1

#参数:策略收益率、基准收益率
def excessIncome(strategyList,benchmarkList):
    #超额收益列表
    if(len(strategyList)==0 or len(benchmarkList)==0):
        
        return 0
    
    _min = min(len(strategyList),len(benchmarkList))
    
    EIList=[]
    
    for i in range(_min-1):
        start = strategyList[i]
        end = strategyList[i+1]
        
        benchmarkstart = benchmarkList[i]
        benchmarkend = benchmarkList[i+1]
        EIList.append((profit(start,end)+1)/(profit(benchmarkstart,benchmarkend)+1)-1)
    return EIList

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!