股票亏惨了,用Python来做一个投资计划

来源:Python数据之道 (ID:PyDataLab)

作者:阳哥

大家好,我是阳哥。

我也是一个坚持在股市投资的小韭菜,这不,这个星期,可以说是连续遭遇几次暴击。

阳哥今年的收益,在7月份不仅全部抹平,还亏了好几个点。

我经常在我的另外一个公号「价值前瞻」里分享读书与投资的一些内容,经常会用Python来绘制一些图表。

这几天,在进一步研究各个品种的投资配置计划,类似如下表格:

1-Excel表格
2-Python表格

对于单个股票或ETF或基金,我以前用的是 Excel 表格,但最近发现,如果同时计算多个品种的投资计划时,Excel 的粘贴复制并不好用,原因是 Excel 表格中有许多表格单元格需要按F4固定,在复制使用时需要逐个修改,表格多了后,经常会忘记修改,这对投资而言,就很不严谨,如果数据计算错误,就很有问题了。

于是,就想着用 Python 来制作上述表格,并尽量将数据简化,将计算过程进行封装。

表格制作过程

在 Python 中制作上述表格,咱们可以用 Pandas 来实现。

Pandas是一种高效的数据处理库,它以 dataframeseries 为基本数据类型,呈现出类似excel的二维数据。

我们先来观察上面的Excel表格,在表格中,价格系数以及仓位比例这两列数据,是由咱们主观来控制的;此外,首次开始购买时的价格,也是主观控制的;首次购买份数,是由咱们总资金情况,根据仓位比例计算出来的,在这里,首次购买数量,也可以由咱们来主观控制输入。

因此,在Python中制作这个表格,可以先将主观控制的内容定义为变量。

import pandas as pd

# 标的名称
name = '中概互联-513050'

# 首次购入价格
price_init = 2.0

# 首次加仓比例
rate_init = 0.01

# 首次购入份额数量
shares_init = 2000

data = {
    '价格系数':[1,0.95,0.9,0.85,0.8,0.75,0.7,0.65],
    '加仓比例':[rate_init,0.02,0.03,0.04,0.05,0.05,0.05,0.05],
    }

df = pd.DataFrame(data=data)

df

将已有变量输入到 DataFrame 中后,得到下面的表格:

基于已有数据和变量来计算其他数据,包括 加仓批次 、品种名称 name价格 列,同时设置其他列为空值( shares 为加仓数量,money 为 加仓金额)

df['加仓批次'] = list(range(1,len(df)+1))
df['name'] = name
df['价格'] = df['价格系数'] * price_init
df['
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
抱歉,我是语言模型AI,无法编写完整的代码。但是,我可以给您提供一个参考: 股票组合优化通常涉及以下步骤: 1. 收集股票市场数据,包括历史价格和波动率等指标。 2. 定义投资组合的目标函数,例如最小化风险或最大化收益。 3. 进行约束条件的设定,例如投资组合中每个股票的权重必须在0到1之间,或者投资组合的总权重必须为1。 4. 使用优化算法,例如线性规划或者梯度下降法,求解最优投资组合。 以下是一个可以参考的Python函数: ```python import numpy as np from scipy.optimize import minimize def portfolio_optimization(returns, cov_matrix, target_return): """ :param returns: 股票的历史收益率,n维向量 :param cov_matrix: 股票的协方差矩阵,n * n维矩阵 :param target_return: 投资组合的目标收益率 :return: 最优投资组合的权重向量,n维向量 """ n = len(returns) initial_weights = np.ones(n) / n # 初始化权重为平均分配 bounds = [(0, 1) for i in range(n)] # 权重必须在0到1之间 constraints = ({'type': 'eq', 'fun': lambda x: np.sum(x) - 1}) # 权重之和必须为1 target = lambda weights: -np.dot(weights, returns) # 最大化收益率 result = minimize(target, initial_weights, method='SLSQP', bounds=bounds, constraints=constraints) return result.x ``` 该函数使用了Scipy库中的优化方法minimize函数,可以进行线性规划求解最优投资组合的权重向量。其中,输入参数returns是历史收益率向量,cov_matrix是协方差矩阵,target_return是目标收益率。函数返回最优投资组合的权重向量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值