Reinforcement learning Trading envoriments.
Project description
Table of contents
Install
pip install ejtraderRL -U
Install from source
git clone https://github.com/ejtraderLabs/ejtraderRL.git
cd trade-rl
pip install .
Technologies
Technologies | version |
---|---|
python | >= 3.7 |
tensorflow | >= 2.7.0 |
numpy | >= 1.21.4 |
pandas | >= 1.3.4 |
ta | >= 0.7.0 |
how to run from Web app visual training
from ejtraderRL import app
app.web()
How to run from python script
from ejtraderRL import data, agent
# forex data
df = data.get_forex_data("EURUSD", "h1")
# stoch data
#df = data.get_stock_data("AAPL")
agent = agent.DQN(df=df, model_name="efficientnet_b0", lr=1e-4, pip_scale=25, n=3, use_device="cpu",
gamma=0.99, train_spread=0.2, balance=1000, spread=7, risk=0.01)
"""
:param df: pandas dataframe or csv file. Must contain open, low, high, close
:param lr: learning rate
:param model_name: None or model name, If None -> model is not created.
:param pip_scale: Controls the degree of overfitting
:param n: int
:param use_device: tpu or gpu or cpu
:param gamma: float
:param train_spread: Determine the degree of long-term training. The smaller the value, the more short-term the trade.
:param balance: Account size
:param spread: Cost of Trade
:param risk: What percentage of the balance is at risk
"""
agent.train()
Use custom model
from tensorflow.keras import layers, optimizers
from ejtraderRL import nn, agent, data
# forex data
df = data.get_forex_data("EURUSD", "h1")
# stoch data
df = data.get_stock_data("AAPL")
agent = agent.DQN(df=df, model_name=None, lr=1e-4, pip_scale=25, n=3, use_device="cpu",
gamma=0.99, train_spread=0.2, spread=7, balance=1000 risk=0.1)
def custom_model():
dim = 32
noise = layers.Dropout
noise_r = 0.1
inputs, x = nn.layers.inputs_f(agent.x.shape[1:], dim, 5, 1, False, "same", noise, noise_r)
x = nn.block.ConvBlock(dim, "conv1d", "resnet", 1, True, None, noise, noise_r)(x)
out = nn.layers.DQNOutput(2, None, noise, noise_r)(x)
model = nn.model.Model(inputs, x)
model.compile(optimizers.Adam(agent.lr, clipnorm=1.), nn.losses.DQNLoss)
return model
agent._build_model = custom_model
agent.build_model()
first release of the project is from komo135 thanks to @komo135
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
ejtraderRL-1.0.8.tar.gz
(23.9 kB
view details)
Built Distribution
File details
Details for the file ejtraderRL-1.0.8.tar.gz
.
File metadata
- Download URL: ejtraderRL-1.0.8.tar.gz
- Upload date:
- Size: 23.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef1ae65735f70825356b3fa7913e759f287fa2358badfb8bd7c2826fe3c94c86 |
|
MD5 | f6c7c9d6719c6fdac853fd028868598b |
|
BLAKE2b-256 | db27f539b950b2a14c34d00183fbb730fe531e5871fe391f7f611e094d27c802 |
File details
Details for the file ejtraderRL-1.0.8-py3-none-any.whl
.
File metadata
- Download URL: ejtraderRL-1.0.8-py3-none-any.whl
- Upload date:
- Size: 32.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89b07dc2a534a5397d5c0e82d403fdf08b976a3f1042224b8fc398d6f1880b8a |
|
MD5 | 3a39f06f91a065288c5e2ac5afdc7bc6 |
|
BLAKE2b-256 | d066ee75a4e06dad03e17bd4273c57fec2c1b0fd6cdfa6829e3ed798b4009cba |