From 1b7c9509d0897277f3a637ab55846e32dee40768 Mon Sep 17 00:00:00 2001 From: Yadong Zhang <43513009+ydup@users.noreply.github.com> Date: Fri, 11 Dec 2020 15:31:34 +0800 Subject: [PATCH 1/3] Update EnvMultipleStock_trade.py put the cost calculation before updating the stock shares --- env/EnvMultipleStock_trade.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/env/EnvMultipleStock_trade.py b/env/EnvMultipleStock_trade.py index 38abff51c..390160d32 100644 --- a/env/EnvMultipleStock_trade.py +++ b/env/EnvMultipleStock_trade.py @@ -73,10 +73,9 @@ def _sell_stock(self, index, action): self.state[0] += \ self.state[index+1]*min(abs(action),self.state[index+STOCK_DIM+1]) * \ (1- TRANSACTION_FEE_PERCENT) - - self.state[index+STOCK_DIM+1] -= min(abs(action), self.state[index+STOCK_DIM+1]) self.cost +=self.state[index+1]*min(abs(action),self.state[index+STOCK_DIM+1]) * \ TRANSACTION_FEE_PERCENT + self.state[index+STOCK_DIM+1] -= min(abs(action), self.state[index+STOCK_DIM+1]) self.trades+=1 else: pass @@ -86,9 +85,9 @@ def _sell_stock(self, index, action): #update balance self.state[0] += self.state[index+1]*self.state[index+STOCK_DIM+1]* \ (1- TRANSACTION_FEE_PERCENT) - self.state[index+STOCK_DIM+1] =0 self.cost += self.state[index+1]*self.state[index+STOCK_DIM+1]* \ - TRANSACTION_FEE_PERCENT + TRANSACTION_FEE_PERCENT + self.state[index+STOCK_DIM+1] =0 self.trades+=1 else: pass @@ -102,11 +101,10 @@ def _buy_stock(self, index, action): #update balance self.state[0] -= self.state[index+1]*min(available_amount, action)* \ (1+ TRANSACTION_FEE_PERCENT) - - self.state[index+STOCK_DIM+1] += min(available_amount, action) - self.cost+=self.state[index+1]*min(available_amount, action)* \ TRANSACTION_FEE_PERCENT + self.state[index+STOCK_DIM+1] += min(available_amount, action) + self.trades+=1 else: # if turbulence goes over threshold, just stop buying @@ -252,4 +250,4 @@ def render(self, mode='human',close=False): def _seed(self, seed=None): self.np_random, seed = seeding.np_random(seed) - return [seed] \ No newline at end of file + return [seed] From 214835a921283abbcb8836f5a473229437a80bc5 Mon Sep 17 00:00:00 2001 From: Yadong Zhang <43513009+ydup@users.noreply.github.com> Date: Fri, 11 Dec 2020 15:51:32 +0800 Subject: [PATCH 2/3] Update EnvMultipleStock_train.py update cost --- env/EnvMultipleStock_train.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/env/EnvMultipleStock_train.py b/env/EnvMultipleStock_train.py index c4096e0d5..32c816302 100644 --- a/env/EnvMultipleStock_train.py +++ b/env/EnvMultipleStock_train.py @@ -63,10 +63,12 @@ def _sell_stock(self, index, action): self.state[0] += \ self.state[index+1]*min(abs(action),self.state[index+STOCK_DIM+1]) * \ (1- TRANSACTION_FEE_PERCENT) - - self.state[index+STOCK_DIM+1] -= min(abs(action), self.state[index+STOCK_DIM+1]) + self.cost +=self.state[index+1]*min(abs(action),self.state[index+STOCK_DIM+1]) * \ TRANSACTION_FEE_PERCENT + + self.state[index+STOCK_DIM+1] -= min(abs(action), self.state[index+STOCK_DIM+1]) + self.trades+=1 else: pass @@ -80,11 +82,12 @@ def _buy_stock(self, index, action): #update balance self.state[0] -= self.state[index+1]*min(available_amount, action)* \ (1+ TRANSACTION_FEE_PERCENT) - - self.state[index+STOCK_DIM+1] += min(available_amount, action) - + self.cost+=self.state[index+1]*min(available_amount, action)* \ TRANSACTION_FEE_PERCENT + + self.state[index+STOCK_DIM+1] += min(available_amount, action) + self.trades+=1 def step(self, actions): @@ -194,4 +197,4 @@ def render(self, mode='human'): def _seed(self, seed=None): self.np_random, seed = seeding.np_random(seed) - return [seed] \ No newline at end of file + return [seed] From e6445ab702cfe3595ff2d5910e22c3eb3ab19216 Mon Sep 17 00:00:00 2001 From: Yadong Zhang <43513009+ydup@users.noreply.github.com> Date: Fri, 11 Dec 2020 15:54:00 +0800 Subject: [PATCH 3/3] Update EnvMultipleStock_validation.py update cost --- env/EnvMultipleStock_validation.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/env/EnvMultipleStock_validation.py b/env/EnvMultipleStock_validation.py index 390d46310..963d524e0 100644 --- a/env/EnvMultipleStock_validation.py +++ b/env/EnvMultipleStock_validation.py @@ -70,10 +70,10 @@ def _sell_stock(self, index, action): self.state[0] += \ self.state[index+1]*min(abs(action),self.state[index+STOCK_DIM+1]) * \ (1- TRANSACTION_FEE_PERCENT) - - self.state[index+STOCK_DIM+1] -= min(abs(action), self.state[index+STOCK_DIM+1]) self.cost +=self.state[index+1]*min(abs(action),self.state[index+STOCK_DIM+1]) * \ - TRANSACTION_FEE_PERCENT + TRANSACTION_FEE_PERCENT + self.state[index+STOCK_DIM+1] -= min(abs(action), self.state[index+STOCK_DIM+1]) + self.trades+=1 else: pass @@ -83,9 +83,10 @@ def _sell_stock(self, index, action): #update balance self.state[0] += self.state[index+1]*self.state[index+STOCK_DIM+1]* \ (1- TRANSACTION_FEE_PERCENT) - self.state[index+STOCK_DIM+1] =0 self.cost += self.state[index+1]*self.state[index+STOCK_DIM+1]* \ - TRANSACTION_FEE_PERCENT + TRANSACTION_FEE_PERCENT + self.state[index+STOCK_DIM+1] =0 + self.trades+=1 else: pass @@ -99,11 +100,10 @@ def _buy_stock(self, index, action): #update balance self.state[0] -= self.state[index+1]*min(available_amount, action)* \ (1+ TRANSACTION_FEE_PERCENT) - - self.state[index+STOCK_DIM+1] += min(available_amount, action) - self.cost+=self.state[index+1]*min(available_amount, action)* \ TRANSACTION_FEE_PERCENT + self.state[index+STOCK_DIM+1] += min(available_amount, action) + self.trades+=1 else: # if turbulence goes over threshold, just stop buying @@ -222,4 +222,4 @@ def render(self, mode='human',close=False): def _seed(self, seed=None): self.np_random, seed = seeding.np_random(seed) - return [seed] \ No newline at end of file + return [seed]