给出一系列股票报价Q [0],...,Q [n-1]按时间顺序排列,相应的交易量V [0],...,V [n-1]为股数,当您的交易量受到V [0],...,V [n-1]的限制时,如何找到买入或卖出的最佳时间和交易量?
答案 0 :(得分:1)
我假设您希望以每股股票的0股开头和结尾,并且您拥有无限的资本。
问题可以归结为以最低价格购买并以最高价出售,条件是购买股票必须在出售之前完成。
我会按时间顺序处理数据并添加购买,只要有可用的价格在未来有更高的价格(对于每次购买,您需要勾选与使用最高的未来价格销售的相同数量的股票)。
只要有利可图的时间在未来出售,继续及时向前推进添加购买。如果有可用量剩余量但未来没有可用的盈利销售点,您需要回头看看当前价格是否低于已经进行的任何购买。在这种情况下,交换过去最便宜的股票以换取更便宜的股票,但前提是有未来的卖点。同时检查报废的采购订单是否有任何可盈利的卖点。
示例:强>
Day Price Volume
1 100 1000
2 80 1000
3 110 1000
4 70 1000
5 120 2000
第1天: 以每股100美元的价格购买1000。在120出售1000天4。
第2天: 以每股80美元的价格购买1000。在120出售1000天4。
第3天: 没有可用的有利可图的销售机会,因为价格超过70的所有未来股票已经被预订! 回头看看你是否以110以上的价格购买。 你没有,所以没有购买。
第4天: 没有可用的盈利机会,因为价格超过70的所有未来数量已经预订! 回头看看你是否以70以上的价格购买。 在70天第4天购买1000股,取代购买1000股第1股。 重新检查第一天的股票,并检查是否有任何其他有利可图的销售(您只需要考虑截至第4天的时间表)。 因此,以每股100股第1天的价格购买1000,并以每股110股的价格出售3。
最终的订单是:
Day Price Volume Order type shares owned
1 100 1000 Buy 1000
2 80 1000 Buy 2000
3 110 1000 Sell 1000
4 70 1000 Buy 2000
5 120 2000 Sell 0
Total profit: 10000