用户交易数据分析 -持仓收益(盈亏)胜率等指标计算

数据模型

用户id股票代码数量交易方向发生资金
a0001100-1000
a0001200-1800
a00011001300
用户id
股票代码
股票数量
股票代码_昨日
股票数量_昨日
市值
市值_昨日
仓位变化
仓位变化标识开仓、增仓、减仓、清仓、持平
开仓时间
清仓时间
买入成本buycost
持仓成本profitcost
买入金额
卖出金额
买入数量
卖出数量

##相关指标

  • 买入均价

买 入 均 价 / 股 = 持 有 期 总 买 入 金 额 持 有 期 总 买 入 数 量 买入均价/股 =\frac{ 持有期总买入金额}{持有期总买入数量} /=

  • 当前买入成本(buycost)
    当 前 买 入 成 本 ( b u y c o s t ) = 买 入 均 价 × 当 前 数 量 当前买入成本(buycost)= 买入均价 \times 当前数量 (buycost)=×

  • 当前持仓成本(profitcost)
    当 前 持 仓 成 本 ( p r o f i t c o s t ) = 持 有 期 总 买 入 金 额 − 持 有 期 总 卖 出 金 额 当前持仓成本(profitcost) = 持有期总买入金额 -持有期总卖出金额 (profitcost)=

  • 当前持仓成本/每股
    当 前 持 仓 成 本 / 每 股 = 持 有 期 总 买 入 金 额 − 持 有 期 总 卖 出 金 额 当 前 数 量 当前持仓成本/每股 = \frac{持有期总买入金额 -持有期总卖出金额}{当前数量} /=

  • 当前持仓盈亏额
    当 前 持 仓 盈 亏 额 = ( 当 前 价 − 持 仓 成 本 价 ) × ( 当 前 数 量 ) 当前持仓盈亏额 = (当前价 - 持仓成本价) \times (当前数量) =()×()

  • 当前持仓盈亏率(盈亏比例)
    当 前 持 仓 盈 亏 率 ( 盈 亏 比 例 ) = 持 仓 盈 亏 额 / 持 仓 成 本 当前持仓盈亏率(盈亏比例) = 持仓盈亏额/ 持仓成本 ()=/

  • 胜率定义:清仓时,{持仓成本 < 0}的次数 / 清仓的总数
    胜 率 = [ 持 仓 成 本 &lt; 0 的 次 数 ] 总 次 数 胜率 =\frac {[持仓成本&lt;0的次数]}{总次数} =[<0]

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一个简单的示例代码来计算RSI指标并对历史数据进行回测。以下是代码: ```python import pandas as pd import numpy as np # 读取历史股票数据 df = pd.read_csv('stock_data.csv') # 计算RSI指标 n = 14 delta = df['Close'].diff() delta = delta[1:] gain = delta.copy() loss = delta.copy() gain[gain < 0] = 0 loss[loss > 0] = 0 avg_gain = gain.rolling(window=n).mean() avg_loss = abs(loss.rolling(window=n).mean()) rs = avg_gain / avg_loss rsi = 100.0 - (100.0 / (1.0 + rs)) # 回测策略 df['RSI'] = rsi df['Buy'] = np.where(df['RSI'] < 30, 1, 0) df['Sell'] = np.where(df['RSI'] > 70, -1, 0) df['Position'] = df['Buy'] + df['Sell'] df['Position'].fillna(method='ffill', inplace=True) df['Returns'] = df['Close'].pct_change() * df['Position'].shift(1) df['Cumulative_Returns'] = (1 + df['Returns']).cumprod() # 输出回测结果 print(df.tail(10)) ``` 注:这里的RSI指标采用的是传统的14日RSI计算方法。您也可以根据需要更改该指标计算方法和参数。 此代码假设您的历史股票数据以CSV格式存储在名为“stock_data.csv”的文件中,并且包含以下列:Open、High、Low、Close。您可以根据需要更改这些列名。回测策略简单地将RSI指标低于30的点视为买入信号,并将RSI指标高于70的点视为卖出信号。然后,它将根据这些信号计算每日的持仓仓位,并计算每日的收益率和累计收益率。最后,它输出最后10个数据点的结果,您可以根据需要更改此输出方式。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值