A backtesting library for MetaTrader5
Project description
tradetestlib: A MetaTrader5 backtesting tool
tradetestlib is a backtesting library built to integrate with MetaTrader5, with the purpose being able to provide a broad overview of a trading strategy/idea, more specifically, an evaluation of a strategy. Some of the main evaluation metrics used in this project are the sharpe ratio, and profit factor.
tradetestlib also provides the option to optimize a strategy by using a Grid Search algorithm for hyperparameter tuning.
Currently, hyperparameters are limited to position sizing, and exposure.
A demonstration can be found here
Installation
tradetestlib can be installed with pip
pip install tradetestlib
Usage
A simulation instances can be created by calling the Simulation class.
symbol and timeframe are only used for naming conventions, for comparing a basket of assets.
train_raw and test_raw are dataframes that contain Open, High, Low, Close, signal, and true_signal columns.
lot is the lot size used to trade
starting_balance is the initial deposit of the simulation in USD.
from tradetestlib import Simulation
sim = Simulation(
symbol = symbol,
timeframe = tf,
train_raw = train,
test_raw = test,
lot = 1,
starting_balance = 100000
)
Optimization can be used by creating a params dictionary with the required hyperparameters.
run_grid_search returns the optimal configuration, and overall testing set.
Optimized hyperparameters may also be accessed as attributes, which can then be used to create a final simulation instance, to verify result with the test set.
from tradetestlib import Optimize
params = {
'lot' : [1,2],
'hold_time': [5, 10],
'max_loss': [0.005, 0.01]
}
o = Optimize(symbol = symbol,
timeframe = tf,
train = train,
test = test,
metric = 'sharpe_ratio',
how = 'maximize')
best, df = o.run_grid_search(params)
o.optimized_lot # best lot
o.optimized_holdtime # best holdtime
o.optimized_max_loss # best exposure
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tradetestlib-1.2.0.tar.gz.
File metadata
- Download URL: tradetestlib-1.2.0.tar.gz
- Upload date:
- Size: 22.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
804ba02895f27ecedb27084c256304bf604c5db19f29bc6b90ea57525cb198fa
|
|
| MD5 |
1e8267a3a750d69932013d57e7485c53
|
|
| BLAKE2b-256 |
685dc5c202b460b9441ed5b93369836c2b14ef9f1ab8e3e50b8bb399ee0b6f34
|
File details
Details for the file tradetestlib-1.2.0-py3-none-any.whl.
File metadata
- Download URL: tradetestlib-1.2.0-py3-none-any.whl
- Upload date:
- Size: 22.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d890dee68f996fbfc02a4a5f4ad1811a1694e4ff128a3237bd4cf8ea426efe62
|
|
| MD5 |
29c32447abf8c45544ffbafb2481e07b
|
|
| BLAKE2b-256 |
43cac390c8546f2545c0f3ca3897f1f9a0db5b505209bdba6697f91bd3017874
|