Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wiseplat
GitHub Repository: wiseplat/python-code
Path: blob/master/ invest-robot-contest_TradingCompetition2022-main/mainer.py
5925 views
1
import configparser
2
import keyTool
3
from account.AccountBuilder import AccountBuilder
4
from stock.StockStorage import StockStorage
5
from session.Session import Session
6
from tinkoff.invest import Client
7
from report.Report import ReportBuilder
8
9
10
def main():
11
""" Start Trading (MAIN point)"""
12
# Load config and keys
13
config = configparser.ConfigParser()
14
config.read('config.ini')
15
api_token = keyTool.readKeys(config)
16
app_name = config.get(section='main', option='app_name')
17
18
# Market Session
19
with Client(api_token, app_name=app_name) as client:
20
# account for trading
21
account = AccountBuilder.build_account(client, config)
22
# Create and storage all stock instance for trading """
23
stock_storage = StockStorage.collect_stock(client, config, StockStorage())
24
# Session for trading
25
session = Session.get_session(account, stock_storage)
26
# Subscribe to market data
27
session.subscribe_last_price()
28
# Trading loop (receive market data and do trading)
29
session.trading_loop()
30
# Get result of session
31
32
session_result = session.get_session_result()
33
report = ReportBuilder.buildSessionResultReport(report_name=session.session_id,
34
report_source=session_result)
35
report.save_to_pdf(file_name=session.session_id)
36
37
38
if __name__ == '__main__':
39
main()
40
41