jquants-algo is a python library for algorithmic trading with japanese stock trade using J-Quants on Python 3.8 and above.
Project description
jquants-algo
jquants-algo is a python library for algorithmic trading with japanese stock trade using J-Quants on Python 3.8 and above.
Installation
$ pip install jquants-algo
Usage
backtest
from jquants_algo import Algo
import pprint
class MyAlgo(Algo):
def strategy(self):
fast_ma = self.sma(period=3)
slow_ma = self.sma(period=5)
# golden cross
self.sell_exit = self.buy_entry = (fast_ma > slow_ma) & (
fast_ma.shift() <= slow_ma.shift()
)
# dead cross
self.buy_exit = self.sell_entry = (fast_ma < slow_ma) & (
fast_ma.shift() >= slow_ma.shift()
)
algo = MyAlgo(
mail_address="<your J-Quants mail address>",
password="<your J-Quants password>",
ticker="7203", # TOYOTA
size=100, # 100 shares
)
pprint.pprint(algo.backtest())
{'long': {'average return': '0.156',
'maximum drawdown': '49350.000',
'profit': '11450.000',
'profit factor': '1.080',
'riskreward ratio': '1.455',
'sharpe ratio': '0.038',
'trades': '54.000',
'win rate': '0.426'},
'short': {'average return': '-0.207',
'maximum drawdown': '39950.000',
'profit': '-26420.000',
'profit factor': '0.782',
'riskreward ratio': '1.330',
'sharpe ratio': '-0.079',
'trades': '54.000',
'win rate': '0.370'},
'total': {'average return': '-0.026',
'maximum drawdown': '79950.000',
'profit': '-14970.000',
'profit factor': '0.943',
'riskreward ratio': '1.426',
'sharpe ratio': '-0.008',
'trades': '108.000',
'win rate': '0.398'}}
predict
from jquants_algo import Algo
import pprint
class MyAlgo(Algo):
def strategy(self):
fast_ma = self.sma(period=3)
slow_ma = self.sma(period=5)
# golden cross
self.sell_exit = self.buy_entry = (fast_ma > slow_ma) & (
fast_ma.shift() <= slow_ma.shift()
)
# dead cross
self.buy_exit = self.sell_entry = (fast_ma < slow_ma) & (
fast_ma.shift() >= slow_ma.shift()
)
algo = MyAlgo(
mail_address="<your J-Quants mail address>",
password="<your J-Quants password>",
ticker="7203", # TOYOTA
size=100, # 100 shares
)
pprint.pprint(algo.predict())
{'buy entry': False,
'buy exit': False,
'close': 2356.5,
'date': '2023-08-21',
'sell entry': False,
'sell exit': False}
advanced
from jquants_algo import Algo
import pprint
class MyAlgo(Algo):
def strategy(self):
rsi = self.rsi(period=10)
ema = self.ema(period=20)
lower = ema - (ema * 0.001)
upper = ema + (ema * 0.001)
self.buy_entry = (rsi < 30) & (self.df.Close < lower)
self.sell_entry = (rsi > 70) & (self.df.Close > upper)
self.sell_exit = ema > self.df.Close
self.buy_exit = ema < self.df.Close
algo = MyAlgo(
mail_address="<your J-Quants mail address>",
password="<your J-Quants password>",
ticker="7203", # TOYOTA
size=100, # 100 shares
outputs_dir_path="outputs",
data_dir_path="data",
)
pprint.pprint(algo.backtest())
pprint.pprint(algo.predict())
Supported indicators
- Simple Moving Average 'sma'
- Exponential Moving Average 'ema'
- Moving Average Convergence Divergence 'macd'
- Relative Strenght Index 'rsi'
- Bollinger Bands 'bbands'
- Market Momentum 'mom'
- Stochastic Oscillator 'stoch'
- Average True Range 'atr'
Getting started
For help getting started with J-Quants, view our online documentation.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
jquants-algo-0.1.0.tar.gz
(7.3 kB
view hashes)
Built Distribution
Close
Hashes for jquants_algo-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0920e801418120fba444be164b1f9a3f79054c08935751f698cd2c7c3cb389dd |
|
MD5 | 9fc243014dcd6b66f038df9718109671 |
|
BLAKE2b-256 | 6ca0d523189e73d3a123748d87f430198af2b1cc8b5702d6aefd77047585a196 |