Untitled

 avatar
unknown
python
2 years ago
690 B
2
Indexable
    for day in range(num_days - 1, -1, -1):
        V[day] = max(V[day + 1], (profit_matrix[day, day:] + gamma * V[day + 1: day + 1 + num_days - day]).max())

        if profit_matrix[day, day:].max() >= V[day + 1]:
            policy[day] = 1

    return V[:-1], policy

value_function, policy = optimal_stopping(profit_matrix)

optimal_buy_day = np.argmax(policy)
optimal_buy_price = stock_prices[optimal_buy_day]
optimal_cost = costs[optimal_buy_day]

print(f"Optimal day to buy the stock: {optimal_buy_day}")
print(f"Optimal buy price: {optimal_buy_price:.2f}")
print(f"Optimal cost: {optimal_cost:.2f}")
print(f"Net profit: {(optimal_buy_price - optimal_cost):.2f}")