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"])
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'])
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()