Ejemplo n.º 1
0
 def test_comission(self):
     s = environ.State(bars_count=1,
                       commission_perc=1.0,
                       reset_on_close=False)
     s.reset(self.prices['TST'], offset=0)
     self.assertFalse(s.have_position)
     self.assertAlmostEqual(s._cur_close(), 2.0)
     r, done = s.step(environ.Actions.Buy)
     self.assertTrue(s.have_position)
     self.assertFalse(done)
     # execution price is the cur bar close, comission 1%, reward in percent
     self.assertAlmostEqual(r, 100.0 * (3.0 - 2.0) / 2.0 - 1.0)
     self.assertAlmostEqual(s._cur_close(), 3.0)
Ejemplo n.º 2
0
 def test_reset(self):
     s = environ.State(bars_count=1,
                       commission_perc=0.0,
                       reset_on_close=False)
     s.reset(self.prices['TST'], offset=0)
     self.assertFalse(s.have_position)
     self.assertAlmostEqual(s._cur_close(), 2.0)
     r, done = s.step(environ.Actions.Skip)
     self.assertAlmostEqual(s._cur_close(), 3.0)
     self.assertAlmostEqual(r, 0.0)
     self.assertFalse(done)
     r, done = s.step(environ.Actions.Skip)
     self.assertAlmostEqual(s._cur_close(), 1.0)
     self.assertAlmostEqual(r, 0.0)
     self.assertFalse(done)
     r, done = s.step(environ.Actions.Skip)
     self.assertAlmostEqual(s._cur_close(), 2.0)
     self.assertAlmostEqual(r, 0.0)
     self.assertTrue(done)
Ejemplo n.º 3
0
 def test_final_reward(self):
     s = environ.State(bars_count=1,
                       commission_perc=0.0,
                       reset_on_close=False,
                       reward_on_close=True)
     s.reset(self.prices["TST"], offset=0)
     self.assertFalse(s.have_position)
     self.assertAlmostEqual(s._cur_close(), 2.0)
     r, done = s.step(environ.Actions.Buy)
     self.assertTrue(s.have_position)
     self.assertFalse(done)
     self.assertAlmostEqual(r, 50.0)
     self.assertAlmostEqual(s._cur_close(), 3.0)
     r, done = s.step(environ.Actions.Skip)
     self.assertFalse(done)
     self.assertAlmostEqual(r, -2 / 3 * 100.0)
     self.assertAlmostEqual(s._cur_close(), 1.0)
     r, done = s.step(environ.Actions.Close)
     self.assertTrue(done)
     self.assertAlmostEqual(r, -50.0)
     self.assertAlmostEqual(s._cur_close(), 2.0)
Ejemplo n.º 4
0
 def test_basic(self):
     s = environ.State(bars_count=4,
                       commission_perc=0.0,
                       reset_on_close=False,
                       volumes=False)
     self.assertEqual(s.shape, (4 * 3 + 2, ))