Package to backtest trading strategies (dataframe with positions) with execution costs modeling
Project description
Short Overview.
positions_backtester is a python package (py>=3.7) to backtest trading strategies (dataframe with positions) with execution costs modeling
Installation via pip:
pip install positions_backtester
How to backtest your dataframe with positions
from positions_backtester import run_backtest
df_backtest_res = run_backtest(
df_positions,
df_real_exec_prices,
is_to_neutralize=True,
const_trading_fees_percent=0.01,
)
!!! df_real_exec_prices should have the same indices as df_positions
Arguments:
- df_positions:
- pd.DataFramePositions we want to take with the frequency with which we want to change our positions
- df_real_exec_prices:
- pd.DataFramePrices by which we can buy assets at the given moment
- is_to_neutralize=True,:
- boolFlag if to have long-short equal positions
- td_trading_delay=None:
- datetime.timedeltaDelay needed to calculate the wanted positions
- td_execution_duration:
- datetime.timedeltaHow long should the execution takeExecution price will be the mean price over execution time period
- const_trading_fees_percent:
- floatBroker trading fees
Input example: df_positions_short
Output: df_backtest_res
How to create execution prices
from positions_backtester import create_df_simple_execution_prices
df_real_exec_prices = create_df_simple_execution_prices(
df_prices_full,
data_frequency="30min", # 30min, 1h, 3h, 6h, 1d
offset="-3min", # "-3min"
td_trading_delay=datetime.timedelta(minutes=3),
td_execution_duration=datetime.timedelta(minutes=2),
)
Arguments:
- df_prices_full:
- pd.DataFramePrices of assets in higher resolutionHigher resolution needed for more pricise execution evaluation
- td_trading_delay=None:
- datetime.timedeltaDelay (Time) needed to calculate the wanted positions
- td_execution_duration:
- datetime.timedeltaHow long should the execution takeExecution price will be the mean price over execution time period
Inputs:
df_prices_full
Formulas
Links
Project local Links
Contacts
License
This project is licensed under the MIT License.
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 positions_backtester-0.1.5.tar.gz.
File metadata
- Download URL: positions_backtester-0.1.5.tar.gz
- Upload date:
- Size: 10.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.9.7 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6bbc8de0a6a70c36f58f0c081d4db21da3eaffb6c57ec004168f36a38d288a22
|
|
| MD5 |
5992f80c8ecd5ec8fc8f6a8294d22138
|
|
| BLAKE2b-256 |
c208ed2d2751dc5f457615f232f3d2292eb41fc9d0160e719b90b2fc12c7057b
|
File details
Details for the file positions_backtester-0.1.5-py3-none-any.whl.
File metadata
- Download URL: positions_backtester-0.1.5-py3-none-any.whl
- Upload date:
- Size: 10.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.9.7 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d371fd65ea26e6df90c428979b957464266e2c9fd4fe98da7b686494945ac4b
|
|
| MD5 |
d218b2c161c4cc63a280dd0478a49b91
|
|
| BLAKE2b-256 |
7b8a6f91e77ea8d9cb38dcfcb2f103c4d31fbe86bf142a10256d8d2e2c622af0
|