jmwzdb 发表于 2024-2-16 19:47:34

算一个股票收益问题

1、一个人,有10000元资金,可以买从1元到100元股票。

2、这些股票按着1元到100元价格100天内服从线性规律涨幅从500%到100%。并且同一初始价格股票100天内每天涨幅相等。

3、假设交易费是每股每次0.1元,每天买入额按照前一天涨幅扣成本计算。

4、每天以前一交易日涨幅为开盘价买入,初始日以初始价买入,以计算出的当天涨幅为收盘价卖出,买卖各一次。

问:哪个价格股票收益率最高。

Jack315 发表于 2024-2-17 19:41:06

应该是涨幅最大的那个价格,即(初始)价格为 1 元的收益率最高。

对题目的文字描述有可能理解错误。
如果答案不是 1 元,则题目最好用数学语言、或用具体数字举例说明。

jmwzdb 发表于 2024-2-17 20:31:08

因为1元的股票交易手续费是0.1元,相当于交易额的10%,
100元的股票交易手续费也是0.1元,相当于交易额的0.1%,
所以,1元股票交易手续费费用太高,盈利比率低,上涨500%也不一定比100元股票高。

Jack315 发表于 2024-2-18 10:35:57

本帖最后由 Jack315 于 2024-2-18 10:47 编辑

虽然交易费用相差很大,但对涨幅而言都可忽略不计。
所以对收益率的影响也不大。

这个题在 Excel 里就可以计算。
按我的理解得到的结果:收益率与初始价格的关系是单调下降的。
也就是在 区间内,没有局部极值。
最大值在 1 处取得,最小值在 100 处取得。

不确定的是对题目的理解是否正确。

在金融领域,确实有很多数学方面的问题。
见的多的不是科学,更多的是负面的东东。

Jack315 发表于 2024-2-18 11:49:57

现在把题目重新描述一遍:
1. 初始资金 ¥10 000 。
2. 可交易的股票有无穷多种,初始价格范围为 \(\),即初始价格不以 ¥0.01 为变化单位。
3. 对于不同初始价格 \(x \in\),100 天的总涨幅为 \(R=\frac{500\%-100\%}{1-100}\times (x-100)+100\%\),且 100 天内每天有相同的涨幅 \(r\)。
4. 每天的开盘价为前一交易日的收盘价。第一天的开盘价为初始价格 \(x\) 。
5. 每天进行两次操作,买入和卖出各一次,买入价为每日的开盘价,卖出价为每日的收盘价。
6. 交易费用为每股 ¥0.10,买卖双向收费。
问:\(x\) 取何值时,100 天的总收益率取得最大值。

LZ 看看这个描述有没有问题?有没有更正和补充?

按照这个理解,应该有局部极大值。
初始价格如果按 ¥0.01 为变化单位或许会使问题变得稍微复杂一点,但也更接近“实际情况”。

jmwzdb 发表于 2024-2-19 22:17:42

Jack315 发表于 2024-2-18 11:49
现在把题目重新描述一遍:
1. 初始资金 ¥10 000 。
2. 可交易的股票有无穷多种,初始价格范围为 \( ...

你描述的好!比我说的清楚,谢谢。
关于股票的价格,我的想法是总计100个股,初始价格从1-100,都是整数。

jmwzdb 发表于 2024-2-19 22:27:30

Jack315 发表于 2024-2-18 10:35
虽然交易费用相差很大,但对涨幅而言都可忽略不计。
所以对收益率的影响也不大。



我和你想到一起了,用excel算了一下,由于1元股票,0.1的交易费成本过高,不是最大值。

Jack315 发表于 2024-2-19 22:59:38

本帖最后由 Jack315 于 2024-2-19 23:09 编辑

用 Excel 计算的结果:

1. 初始价格最小变动单位无限制:
这种情况,收益率曲线不光滑,求解不容易,
但“规划求解”还是给出了一个比较好的结果。
初始价格为 32.9011132119275 时,收益率取得最大值 245.13199330229%

2. 初始价格最小变动单位为 0.01:
初始价格为 32.18 时,收益率取得最大值 245.14%

股价总收益率曲线图:


3. 初始价格最小变动单位为 1:
初始价格为 33 时,收益率取得最大值 245%

Jack315 发表于 2024-2-19 23:08:09

本帖最后由 Jack315 于 2024-2-19 23:09 编辑

根据初始价格计算收益率的 VBA 函数:
Option Explicit

Const CAP As Double = 10000        ' 初始资金。

Public Function Profit(x)
    Dim totalRate As Double
    Dim dailyRate As Double
   
    Dim i As Integer
    Dim capital As Double
    Dim openPrice As Double
    Dim closePrice As Double
    Dim volume As Double
   
    ' 计算总收益率。
    totalRate = (5 - 1) / (1 - 100) * (x - 100) + 1
    ' 计算日均收益率。
    dailyRate = Exp((Log(totalRate + 1)) / 100) - 1
   
    ' 计算 100 天交易。
    capital = CAP
    closePrice = x
    For i = 1 To 100
      openPrice = closePrice
      closePrice = (1 + dailyRate) * openPrice
      volume = Int(capital / (openPrice + 0.1))
      capital = capital + (closePrice - openPrice - 0.2) * volume
    Next i
   
    Profit = capital / CAP - 1
End Function
【参考】
由总收益率 \(R\) 计算日均收益率 \(r\) 公式:
\((1+r)^{100}=1+R\)

jmwzdb 发表于 2024-2-20 22:26:24

Jack315 发表于 2024-2-19 23:08
根据初始价格计算收益率的 VBA 函数:

【参考】


算的太好了!我用excle算的结果和你一样,谢谢。
页: [1] 2
查看完整版本: 算一个股票收益问题