AI4Finance-Foundation / AI4Finance-Foundation/FinRL_Podracer

delta_stock comparing scaled action to unscaled available_amount

Ouverte
#2 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Python
Étoiles
507
Forks
121
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

This doesn't look right to me when I stepped through it. My code includes Interactive Brokers commissions but othewise the same

```
if action > 0: # buy_stock
available_amount = self.account // adj
delta_stock = min(available_amount, action)
self.stocks[index] += delta_stock
if USE_IB_COST:
comm = max(delta_stock * TRANSACTION_FEE_PER_SHARE, 1.0)

else:
comm = (adj * delta_stock) * self.transaction_fee_percent

self.account -= adj * delta_stock + comm

elif self.stocks[index] > 0: # sell_stock
delta_stock = min(-action, self.stocks[index])
if USE_IB_COST:
comm = max(delta_stock * TRANSACTION_FEE_PER_SHARE, 1.0)

else:
comm = (adj * delta_stock) * self.transaction_fee_percent

self.account += adj * delta_stock - comm

```

A typical `action` value on the 3rd line above is 0.295 while the `available_amount` is unscaled at say 47778. So action will always be the minimum.

I assume this is your scaling

```
state = np.hstack((
self.account * 2 ** -16,
self.day_npy * 2 ** -8,
self.stocks * 2 ** -12,
), ).astype(np.float32)

```

Looks like a bug to me. Why not use MinMaxScaler?

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.