bitmex-backtest is a python library for backtest with bitmex fx trade rest api on Python 3.7 and above.
Project description
bitmex-backtest
bitmex-backtest is a python library for backtest with bitmex fx trade rest api on Python 3.7 and above.
Installation
$ pip install bitmex-backtest
Usage
basic
from bitmex_backtest import Backtest
bt = Backtest()
bt.candles("XBTUSD")
fast_ma = bt.sma(period=5)
slow_ma = bt.sma(period=25)
bt.sell_exit = bt.buy_entry = (fast_ma > slow_ma) & (fast_ma.shift() <= slow_ma.shift())
bt.buy_exit = bt.sell_entry = (fast_ma < slow_ma) & (fast_ma.shift() >= slow_ma.shift())
bt.run()
bt.plot()
advanced
from bitmex_backtest import Backtest
bt = Backtest(test=True)
filepath = "xbtusd-60.csv"
if bt.exists(filepath):
bt.read_csv(filepath)
else:
params = {
"resolution": "60", # 1 hour candlesticks (default=1) 1,3,5,15,30,60,120,180,240,360,720,1D,3D,1W,2W,1M
"count": "5000" # 5000 candlesticks (default=500)
}
bt.candles("XBTUSD", params)
bt.to_csv(filepath)
fast_ma = bt.sma(period=10)
slow_ma = bt.sma(period=30)
exit_ma = bt.sma(period=5)
bt.buy_entry = (fast_ma > slow_ma) & (fast_ma.shift() <= slow_ma.shift())
bt.sell_entry = (fast_ma < slow_ma) & (fast_ma.shift() >= slow_ma.shift())
bt.buy_exit = (bt.C < exit_ma) & (bt.C.shift() >= exit_ma.shift())
bt.sell_exit = (bt.C > exit_ma) & (bt.C.shift() <= exit_ma.shift())
bt.quantity = 100 # default=1
bt.stop_loss = 200 # stop loss (default=0)
bt.take_profit = 1000 # take profit (default=0)
print(bt.run())
bt.plot("backtest.png")
total profit -342200.000
total trades 162.000
win rate 32.716
profit factor 0.592
maximum drawdown 470950.000
recovery factor -0.727
riskreward ratio 1.295
sharpe ratio -0.127
average return -20.325
stop loss 23.000
take profit 1.000
Supported indicators
- Simple Moving Average 'sma'
- Exponential Moving Average 'ema'
- Moving Average Convergence Divergence 'macd'
- Relative Strenght Index 'rsi'
- Bollinger Bands 'bband'
- Stochastic Oscillator 'stoch'
- Market Momentum 'mom'
Getting started
For help getting started with bitmex REST API, view our online documentation.
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create new Pull Request
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
bitmex-backtest-0.1.3.tar.gz
(6.5 kB
view details)
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 bitmex-backtest-0.1.3.tar.gz.
File metadata
- Download URL: bitmex-backtest-0.1.3.tar.gz
- Upload date:
- Size: 6.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b27bcf7e24f9e353466bff7c3a0672583178beac8a67baffe7c74d166d3e7c0
|
|
| MD5 |
97a554e501fdfe78f7a7ad08b3785048
|
|
| BLAKE2b-256 |
670aae26b1bc8409c7519fe7f3ea0d5391dfee449eb53d34ee21e18767c5b26d
|
File details
Details for the file bitmex_backtest-0.1.3-py3-none-any.whl.
File metadata
- Download URL: bitmex_backtest-0.1.3-py3-none-any.whl
- Upload date:
- Size: 6.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a000d353cbfd78df831c8b4d585b43f0fa0e3006136f5fe0b0fdc18edd9aaf01
|
|
| MD5 |
a4736e4331d316370cb2995e278c8f2c
|
|
| BLAKE2b-256 |
d3beff6ff644f4e1ea2f3fba8ee127e2b3e52bd7101b0e5d7a0468a0e9085c67
|