2. Modules
Each section of this document provides the source code documentation of each
component of TradingMate.
2.1. TradingMate
-
class
TradingMate.
TradingMate
(config_filepath='/opt/TradingMate/config/config.json', log_filepath='/opt/TradingMate/log/trading_mate_{timestamp}.log')[source]
Main class that handles the interaction between the User Interface and the
underlying business logic of the whole application
-
close_view_event
()[source]
Callback function to handle close event of the user interface
-
delete_trade_event
(portfolio_id, trade_id)[source]
Callback function to handle delete of a trade
-
get_app_log_filepath
()[source]
Return the full filepath of the log file of application current session
-
get_portfolios
()[source]
Return the list of active portfolios
-
get_settings_event
()[source]
Callback to handle request to show the settings panel
-
manual_refresh_event
(portfolio_id)[source]
Callback function to handle refresh data request
-
new_trade_event
(new_trade, portfolio_id)[source]
Callback function to handle new trade event
-
open_portfolio_event
(filepath)[source]
Callback function to handle request to open a new portfolio file
-
save_portfolio_event
(portfolio_id, filepath)[source]
Callback function to handle request to save/export the portfolio
-
save_settings_event
(config)[source]
Callback to save edited settings
-
set_auto_refresh
(enabled, portfolio_id)[source]
Callback function to handle set/unset of auto refresh data
2.2. Model
The Model
module contains the business logic and the data management of
TradingMate.
2.2.1. Holding
-
class
Model.Holding.
Holding
(symbol, quantity, open_price=None)[source]
-
add_quantity
(value)[source]
Add or subtract (if value is negative) the value to the holding quantity
2.2.2. Portfolio
-
class
Model.Portfolio.
Portfolio
(config, trading_log_path)[source]
-
add_trade
(new_trade)[source]
Add a new trade into the Portfolio
-
delete_trade
(trade_id)[source]
Remove a trade from the Portfolio
-
get_cash_available
()[source]
Return the available cash quantity in the portfolio [int]
-
get_cash_deposited
()[source]
Return the amount of cash deposited in the portfolio [int]
-
get_holding_last_price
(symbol)[source]
Return the last price for the given symbol
-
get_holding_list
()[source]
Return a list of Holding instances held in the portfolio sorted alphabetically
-
get_holding_open_price
(symbol)[source]
Return the last price for the given symbol
-
get_holding_quantity
(symbol)[source]
Return the quantity held for the given symbol
-
get_holding_symbols
()[source]
Return a list containing the holding symbols as [string] sorted alphabetically
-
get_holdings_value
()[source]
Return the value of the holdings held in the portfolio
-
get_id
()[source]
Return the portfolio unique id [string]
-
get_name
()[source]
Return the portfolio name [string]
-
get_open_positions_pl
()[source]
Return the sum profit/loss in £ of the current open positions
-
get_open_positions_pl_perc
()[source]
Return the sum profit/loss in % of the current open positions
-
get_portfolio_path
()[source]
Return the complete filepath of the portfolio
-
get_portfolio_pl
()[source]
Return the profit/loss in £ of the portfolio over the deposited cash
-
get_portfolio_pl_perc
()[source]
Return the profit/loss in % of the portfolio over deposited cash
-
get_total_value
()[source]
Return the value of the whole portfolio as cash + holdings
-
get_trade_history
()[source]
Return the trade history as a list
-
has_unsaved_changes
()[source]
Return True if the portfolio has unsaved changes, False othersise
-
save_portfolio
(filepath)[source]
Save the portfolio at the given filepath
2.2.3. DatabaseHandler
-
class
Model.DatabaseHandler.
DatabaseHandler
(config, trading_log_path)[source]
Handles the IO operation with the database to handle persistent data
-
add_trade
(trade)[source]
Add a trade to the database
-
delete_trade
(trade_id)[source]
Remove the trade from the trade history
-
get_db_filepath
()[source]
Return the database filepath
-
get_trades_list
()[source]
Return the list of trades stored in the db
-
get_trading_log_name
()[source]
Return the trading log database name
-
read_data
(filepath=None)[source]
Read the trade history from the json database and return the list of trades
- filepath: optional, if not set the configured path will be used
-
write_data
(filepath=None)[source]
Write the trade history to the database
2.2.4. StockPriceGetter
-
class
Model.StockPriceGetter.
StockPriceGetter
(config, update_callback)[source]
-
task
()[source]
The task done by this thread - override in subclasses
2.3. UI
The UI
module contains the components that compose the User Interface
of TradingMate.
2.3.1. DataInterface
-
class
UI.DataInterface.
DataInterface
(client, data_callback)[source]
Thread that periodically requests the most recent data from TradingMate
server notify the parent object through a callback function
-
task
()[source]
The task done by this thread - override in subclasses
2.3.2. TradingMateClient
-
class
UI.TradingMateClient.
TradingMateClient
(server)[source]
Client interface to the TradingMate business logic
-
get_portfolios
()[source]
Get the loaded portfolios
-
get_settings_event
()[source]
Request server to fetch TradingMate settings
-
is_portfolio_auto_refreshing
(portfolio_id)[source]
Return True if portfolio has data auto refresh enabled, False otherwise
-
manual_refresh_event
(portfolio_id)[source]
Request server to refresh portfolio data
-
new_trade_event
(new_trade, portfolio_id)[source]
Push new trade notification to the server
-
open_portfolio_event
(filepath)[source]
Request server to open a portfolio
-
save_portfolio_event
(portfolio_id, filepath)[source]
Request server to save a portfolio
-
save_settings_event
(settings)[source]
Request server to save the settings
-
set_auto_refresh_event
(value, portfolio_id)[source]
Set server to automatically update data for the portfolio
-
stop
()[source]
Handle stop event
-
unsaved_changes
()[source]
Request if open portfolios have unsaved changes and return True
2.3.3. GTK
The gtk
module contains the gtk components and widgets of the
graphical interface. They are not documented due to a Sphinx issue when
importing the gi
Python module
2.4. Utils
The Utils
module contains all the utlity components.
2.4.1. ConfigurationManager
-
class
Utils.ConfigurationManager.
ConfigurationManager
(config_path)[source]
Class that loads the configuration and credentials json files exposing
static methods to provide the configurable parameters
-
get_alpha_vantage_api_key
()[source]
Get the alphavantage api key
-
get_alpha_vantage_base_url
()[source]
Get the alphavantage API base URI
-
get_alpha_vantage_polling_period
()[source]
Get the alphavantage configured polling period
-
get_configured_stocks_interface
()[source]
Get the active configured stock interface
-
get_credentials_path
()[source]
Get the filepath of the credentials file
-
get_editable_config
()[source]
Get a dictionary containing the editable configuration parameters
-
get_polling_period
()[source]
Get the application polling period
-
get_trading_database_path
()[source]
Get the filepath of the trading log file
-
get_yfinance_polling_period
()[source]
Get the yfinance configured polling period
-
save_settings
(config)[source]
Save the edited configuration settings
2.4.2. TaskThread
-
class
Utils.TaskThread.
TaskThread
[source]
Thread that executes a task every N seconds
-
cancel_timeout
()[source]
Cancel the timeout and run the task
-
enable
(enabled)[source]
Disable/enable this thread
-
run
()[source]
Method representing the thread’s activity.
You may override this method in a subclass. The standard run() method
invokes the callable object passed to the object’s constructor as the
target argument, if any, with sequential and keyword arguments taken
from the args and kwargs arguments, respectively.
-
setInterval
(interval)[source]
Set the number of seconds we sleep between executing our task
-
shutdown
()[source]
Stop this thread
-
task
()[source]
The task done by this thread - override in subclasses
2.4.3. Trade
-
class
Utils.Trade.
Trade
(date, action, quantity, symbol, price, fee, sdr, notes, id=None)[source]
2.4.4. Utils
-
class
Utils.Utils.
Actions
[source]
An enumeration.
-
class
Utils.Utils.
Messages
[source]
An enumeration.
-
class
Utils.Utils.
Markets
[source]
An enumeration.