-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathQ1.py
39 lines (34 loc) · 1.41 KB
/
Q1.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import datetime
import queue
from core.portfolio_handler import PortfolioHandler
from constant_position_sizer import ConstantPositionSizer
from strategy.constant_mix_strategy import ConstantMixStrategy
from core.price_handler import PriceHandler
from data.data_factory import StockData
from core.excution_handler import SimulationExecutionHandler
def run_q1():
initial_equity = 10000.0
start_date = datetime.datetime(2000, 1, 1)
end_date = datetime.datetime(2014, 1, 1)
strategy = ConstantMixStrategy({'AAPL': 0.4, 'C': 0.6})
events_queue = queue.Queue()
position_sizer = ConstantPositionSizer()
s1 = StockData('quandl', ['AAPL', 'C'])
data_symbols = [s1]
init_tickers = ['AAPL', 'C']
ph = PriceHandler(data_symbols, init_tickers, start_date, end_date)
execution_handler = SimulationExecutionHandler()
port_handler = PortfolioHandler(init_tickers, initial_equity,
events_queue,
price_handler=ph,
position_sizer=position_sizer,
risk_manager=None,
execution_handler = execution_handler,
strategy= strategy,
statistics= None
)
port_handler.initialize_parameters()
port_handler.run_session()
print('finished')
if __name__ == "__main__":
run_q1()