股票买卖最佳时机leetcode金融科技:用交易费买卖股票的最佳时机使用动态编程(Python实现)找到以交易费买卖股票的最佳时间。算法使用动态规划沿着给定的价格向量计算最佳动作序列。

DP在每个时间t记录以下内容:最佳货币价值,以及股票的最佳价值,和导致此最优值的先前操作。

DP初始化

  • 货币=原始资本

  • 股票=用原始资本购买股票

DP递归

  • 计算最佳货币:钱=持有昨天的钱,或钱=今天卖掉你所有的股票

  • 计算最优库存:股票=持有昨天的股票,或股票=今天用你所有的钱买股票

DP追溯:您必须在最后一天卖出以最大化利润。

动作平滑:如果前一个动作与当前动作相同,则选择的动作是“保持”。

结果测试,返回率为:212.88675299365727。

用法

  • 默认情况下使用:python3 optimal_stock_action.py

  • 使用自定义数据集和交易费用值运行:python3 optimal_stock_action.py ./data.csv 0.01