Code0ut commited on
Commit
2faec4b
·
verified ·
1 Parent(s): 524b580

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. server/finenv_environment.py +12 -6
server/finenv_environment.py CHANGED
@@ -73,7 +73,7 @@ class FinenvEnvironment(Environment):
73
 
74
  return FinenvObservation(
75
  stock=self.stock,
76
- market=self.market.value,
77
  price=self.stock_price,
78
  shares=self.shares,
79
  cash=self.cash,
@@ -96,12 +96,17 @@ class FinenvEnvironment(Environment):
96
 
97
 
98
  if action.type == "init":
 
 
 
99
  self.stock = action.stock
100
- self.market = StockExchangeMarket(action.market.value.lower())
 
 
101
 
102
  self.initial_cash = action.initial_cash or 10000.0
103
  self.max_steps = action.max_steps or 100
104
- self.task = action.task_type.value if action.task_type else "easy"
105
 
106
  self.cash = self.initial_cash
107
  self.shares = 0
@@ -162,7 +167,7 @@ class FinenvEnvironment(Environment):
162
  new_value = self.cash + self.shares * self.stock_price
163
  reward = (new_value - old_value) / self.initial_cash
164
  reward = max(min(reward, 1.0), -1.0)
165
-
166
 
167
  done = self._state.step_count >= self.max_steps
168
  if done:
@@ -170,15 +175,16 @@ class FinenvEnvironment(Environment):
170
  profit = final_value - self.initial_cash
171
 
172
  if self.task == "easy":
173
- score = min(max(profit / 0.01*self.initial_cash, 0), 1)
174
 
175
  elif self.task == "medium":
176
- score = min(max(profit / 0.05*self.initial_cash, 0), 1)
177
 
178
  elif self.task == "hard":
179
  score = min(max((profit / self.initial_cash) / 0.1, 0), 1)
180
 
181
  reward = score
 
182
 
183
  return FinenvObservation(
184
  stock=self.stock,
 
73
 
74
  return FinenvObservation(
75
  stock=self.stock,
76
+ market=self.market.value if self.market else None,
77
  price=self.stock_price,
78
  shares=self.shares,
79
  cash=self.cash,
 
96
 
97
 
98
  if action.type == "init":
99
+ if not action.stock or not action.market:
100
+ raise ValueError("Stock and market required for init")
101
+
102
  self.stock = action.stock
103
+ self.market = StockExchangeMarket(action.market.lower())
104
+
105
+
106
 
107
  self.initial_cash = action.initial_cash or 10000.0
108
  self.max_steps = action.max_steps or 100
109
+ self.task = action.task_type.lower() if action.task_type else "easy"
110
 
111
  self.cash = self.initial_cash
112
  self.shares = 0
 
167
  new_value = self.cash + self.shares * self.stock_price
168
  reward = (new_value - old_value) / self.initial_cash
169
  reward = max(min(reward, 1.0), -1.0)
170
+ reward=float(reward)
171
 
172
  done = self._state.step_count >= self.max_steps
173
  if done:
 
175
  profit = final_value - self.initial_cash
176
 
177
  if self.task == "easy":
178
+ score = min(max(profit / (0.01 * self.initial_cash), 0), 1)
179
 
180
  elif self.task == "medium":
181
+ score = min(max(profit / (0.05 * self.initial_cash), 0), 1)
182
 
183
  elif self.task == "hard":
184
  score = min(max((profit / self.initial_cash) / 0.1, 0), 1)
185
 
186
  reward = score
187
+ reward=float(reward)
188
 
189
  return FinenvObservation(
190
  stock=self.stock,