def test_1(self):
        """
        Loads solution from csv file and test the values
        Tests
        -----
            1. Name of the solution Series: cash, equities, portfolio
            2. Values of the solution Series: cash, equities, portfolio
        """
        # Set up
        self.setUpDataAccess()

        self_dir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
        tests = ["Test_1.csv"]
        tests = [os.path.join(self_dir, "docs", test) for test in tests]

        orders = ["orders_1.csv"]
        orders = [os.path.join(self_dir, "docs", order) for order in orders]

        for test_file, order in zip(tests, orders):
            solution = pd.read_csv(test_file)
            solution = solution.set_index(pd.to_datetime(solution["Date"]))

            simulator = MarketSimulator()
            simulator.initial_cash = 1000000
            simulator.load_trades(order)
            simulator.simulate()

            # Test 1
            self.assertEqual(simulator.cash.name, "Cash")
            self.assertEqual(simulator.equities.name, "Equities value")
            self.assertEqual(simulator.portfolio.name, "Portfolio value")
            # Test 2
            self.assertEqual(simulator.cash, solution["Cash"])
            self.assertEqual(simulator.equities, solution["Equities value"])
            self.assertEqual(simulator.portfolio, solution["Portfolio value"])
Esempio n. 2
0
    def test_1(self):
        '''
        Loads solution from csv file and test the values
        Tests
        -----
            1. Name of the solution Series: cash, equities, portfolio
            2. Values of the solution Series: cash, equities, portfolio
        '''
        # Set up
        self.setUpDataAccess()

        self_dir = os.path.dirname(
            os.path.abspath(inspect.getfile(inspect.currentframe())))
        tests = ['Test_1.csv']
        tests = [os.path.join(self_dir, 'docs', test) for test in tests]

        orders = ['orders_1.csv']
        orders = [os.path.join(self_dir, 'docs', order) for order in orders]

        for test_file, order in zip(tests, orders):
            solution = pd.read_csv(test_file)
            solution = solution.set_index(pd.to_datetime(solution['Date']))

            simulator = MarketSimulator()
            simulator.initial_cash = 1000000
            simulator.load_trades(order)
            simulator.simulate()

            # Test 1
            self.assertEqual(simulator.cash.name, 'Cash')
            self.assertEqual(simulator.equities.name, 'Equities value')
            self.assertEqual(simulator.portfolio.name, 'Portfolio value')
            # Test 2
            self.assertEqual(simulator.cash, solution['Cash'])
            self.assertEqual(simulator.equities, solution['Equities value'])
            self.assertEqual(simulator.portfolio, solution['Portfolio value'])
Esempio n. 3
0
from datetime import datetime
import matplotlib.pyplot as plt
from finance.utils import Calculator
from finance.sim import MarketSimulator

# from finance.utils import DataAccess
# DataAccess.path = 'data'

sim = MarketSimulator()
sim.initial_cash = 1000000
sim.load_trades("MarketSimulator_orders.csv")
sim.simulate()

print(sim.portfolio[0:10])

print('Total Return:', Calculator.ret(sim.portfolio))
print(Calculator.sharpe_ratio(sim.portfolio))

sim.portfolio.plot()
# plt.grid(True)
plt.show()