AI4Finance-Foundation / FinRL

FinRL: Financial Reinforcement Learning. 🔥
https://ai4finance.org
MIT License
9.37k stars 2.28k forks source link

Incorrect initialization in env_stocktrading for single asset #1175

Open ExtEEd opened 4 months ago

ExtEEd commented 4 months ago

In finrl/meta/env_stock_trading/env_stocktrading.py in function _initiate_state when the environment initializated for single stock - it always initialize as zero.

From line 419 else:

for single stock

            state = (
                [self.initial_amount]
                + [self.data.close]
                + [0] * self.stock_dim
                + sum(([self.data[tech]] for tech in self.tech_indicator_list), [])
            )

I think it should be something like that: else:

for single stock

            state = (
                [self.initial_amount]
                + [self.data.close]
                + [self.num_stock_shares[0]] * self.stock_dim
                + sum(([self.data[tech]] for tech in self.tech_indicator_list), [])
            )