Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
300 commits
Select commit Hold shift + click to select a range
310343b
Refactor stiffness indicator function
saleh-mir Oct 7, 2024
e865073
Refactor bollinger_bands_width.py: remove unnecessary lines
saleh-mir Oct 7, 2024
b145d7f
update dashboard
saleh-mir Oct 7, 2024
0dfd07c
Update Binance API endpoints
morteza-koohgard Oct 9, 2024
d37fb02
Merge branch 'master' of https://github.com/jesse-ai/jesse
morteza-koohgard Oct 9, 2024
a554d9b
Make app host configurable
edwinabot Oct 9, 2024
051e57a
update dashboard
saleh-mir Oct 10, 2024
0d20558
Refactor Strategy.py: add value type validation to chart functions
saleh-mir Oct 10, 2024
fa375cf
Refactor Strategy.py: add position type to executed order for chart
saleh-mir Oct 10, 2024
fd22141
don't round prices
saleh-mir Oct 11, 2024
252e1c9
Refactor get_general_info function to exclude hidden directories in s…
saleh-mir Oct 13, 2024
b85c0fa
Refactor config.py: remove unused imports and update config options
saleh-mir Oct 13, 2024
04f37a6
update dashboard
saleh-mir Oct 13, 2024
df06f09
Refactor websocket_endpoint function to handle WebSocketDisconnect an…
saleh-mir Oct 14, 2024
2379835
Refactor static files and add new components
morteza-koohgard Oct 15, 2024
16fd689
Refactor config.py: enable exchange WebSocket reconnection
saleh-mir Oct 15, 2024
5cdc285
deactiven gate spot import candle
morteza-koohgard Oct 15, 2024
0bab8df
merge gate
saleh-mir Oct 15, 2024
9a9de7b
update dashboard
saleh-mir Oct 15, 2024
d0e160c
Merge branch '1.2.3'
saleh-mir Oct 15, 2024
0c5d47c
1.2.4
saleh-mir Oct 15, 2024
e3a011e
fix binance 401
saleh-mir Oct 15, 2024
0c58fe8
Update live trading mode in exchange_info
saleh-mir Oct 15, 2024
a61f921
1.2.5
saleh-mir Oct 15, 2024
765109e
Add support for FDUSD and TUSD stablecoins for Binance spot
saleh-mir Oct 16, 2024
6ae63de
Merge pull request #481 from edwinabot/configurable-host
saleh-mir Oct 17, 2024
a0b29ab
Update exchange_info for GATE_SPOT in jesse/info.py
saleh-mir Oct 17, 2024
f187b43
Refactor is_debuggable function to handle KeyError
saleh-mir Oct 17, 2024
33f76de
1.3.0
saleh-mir Oct 17, 2024
b8e4612
update dashboard
saleh-mir Oct 17, 2024
9354bb7
Refactor import_candles_mode drivers
saleh-mir Oct 17, 2024
a3133d2
1.3.1
saleh-mir Oct 17, 2024
b36d3ea
bump version
saleh-mir Oct 17, 2024
fb86bdb
Introducing Jesse Guru on Gurubase.io
kursataktas Oct 21, 2024
7602bac
Merge pull request #483 from kursataktas/jesse-guru
saleh-mir Oct 21, 2024
448c678
add apex omni
morteza-koohgard Oct 22, 2024
6738ab8
Refactor exchange name in enums
morteza-koohgard Oct 22, 2024
7a6c56a
add apex omni testnet import candles
morteza-koohgard Oct 22, 2024
fbd3d00
sort BullishEmaStrategy.csv
yakir4123 Oct 23, 2024
8c44673
Refactor live trading mode in exchange_info
morteza-koohgard Oct 26, 2024
a94c094
Refactor exchange_info to enable backtesting and live trading
saleh-mir Oct 26, 2024
7c35ffd
Merge remote-tracking branch 'origin/apex-omni'
saleh-mir Oct 26, 2024
d3daec7
fix version
saleh-mir Oct 26, 2024
0a9499f
1.3.4
saleh-mir Oct 26, 2024
f4cfb76
Update version.py
saleh-mir Oct 26, 2024
4a6daac
update dashboard for omni
saleh-mir Oct 26, 2024
29e6c1f
add apex build files
saleh-mir Oct 26, 2024
e116d8b
fix missing files
saleh-mir Oct 26, 2024
ce88a98
Merge branch 'refs/heads/master' into yakir/fix/sort-multiple-orders-…
yakir4123 Oct 27, 2024
47559ed
refactor alligator indicator to use SMMA instead of EWMA for smoother…
saleh-mir Nov 1, 2024
ca25bc5
update dashboard
saleh-mir Nov 1, 2024
8f55016
bump version to 1.3.8
saleh-mir Nov 1, 2024
457ed24
fix: update alligator indicator test to reflect correct lips value
saleh-mir Nov 1, 2024
51847d6
Merge branch 'refs/heads/master' into yakir/fix/sort-multiple-orders-…
yakir4123 Nov 2, 2024
5b7fa63
feat: expand APEX_PRO_TIMEFRAMES to include additional hourly intervals
saleh-mir Nov 3, 2024
107279f
fix apex omni issue
saleh-mir Nov 3, 2024
8806d1f
bump version to 1.3.9
saleh-mir Nov 3, 2024
4149ecf
fix: correct warmup candles configuration path in optimization settings
saleh-mir Nov 3, 2024
418feb7
bump version to 1.3.10
saleh-mir Nov 3, 2024
90b5d57
update dashboard
saleh-mir Nov 4, 2024
49923bd
bump version to 1.3.11
saleh-mir Nov 4, 2024
c054612
Fix the issue with paper trading for new lifetime accounts.
saleh-mir Nov 4, 2024
0ae5f76
feat(backtest): fix orders on gaps
yakir4123 Nov 7, 2024
1e935a8
make should_cancel_entry optional
saleh-mir Nov 7, 2024
d752f31
feat(helpers): fix is_near_price to fit the tests
yakir4123 Nov 7, 2024
d3b0554
Merge pull request #484 from yakir4123/yakir/fix/sort-multiple-orders…
saleh-mir Nov 7, 2024
7b62aa5
1.3.14
saleh-mir Nov 11, 2024
1b53e7f
1.3.15
saleh-mir Nov 21, 2024
42b9841
fix
saleh-mir Nov 21, 2024
21b9b6f
fix(backtest): improve error message for invalid strategy structure
saleh-mir Nov 26, 2024
f5a93af
fix(strategy): enhance strategy class retrieval and auto-correct clas…
saleh-mir Nov 26, 2024
25a1ca4
refactor(info.py): standardize exchange configuration formatting to u…
saleh-mir Dec 2, 2024
699c469
chore(version): update version to 1.3.17 in setup.py and version.py
saleh-mir Dec 2, 2024
d212ef3
fix(OrdersState): add validation to ensure client_id is not an empty …
saleh-mir Dec 6, 2024
80908a2
fix(ApexProMain): enhance symbol filtering for legacy and new API res…
saleh-mir Dec 6, 2024
a5783c2
fix(helpers): ensure current time is returned as an integer and add d…
saleh-mir Dec 6, 2024
09a9cb6
fix(cache): improve error handling for cache file operations and ensu…
saleh-mir Dec 8, 2024
f36d183
refactor: remove FTX and Bitget exchange drivers and related utilitie…
saleh-mir Dec 8, 2024
d446ee9
fix(multiprocessing): improve error handling for APP_PORT retrieval i…
saleh-mir Dec 10, 2024
2689411
fix(multiprocessing): enhance process termination and cleanup with im…
saleh-mir Dec 10, 2024
0101b70
refactor(redis): remove debugging print statements from is_process_ac…
saleh-mir Dec 12, 2024
fd3df9e
1.3.18
saleh-mir Dec 14, 2024
82daa55
update dashboard
saleh-mir Dec 14, 2024
eb42677
Improve error message for when a duplicate strategy already exists.
saleh-mir Dec 14, 2024
def1c0d
1.3.19
saleh-mir Dec 14, 2024
604bbd8
Update version to 1.3.20 and add new dependencies: sympy and ecdsa. U…
saleh-mir Dec 14, 2024
cb70258
refactor(candle): streamline caching logic and ensure immediate mater…
saleh-mir Dec 15, 2024
b197f7c
chore: bump version to 1.3.21 in setup.py and version.py
saleh-mir Dec 15, 2024
d5b33a0
fix(info): disable backtesting mode across testnet exchanges
saleh-mir Dec 15, 2024
f68384a
feat(requests): implement retry logic with exponential backoff for AP…
saleh-mir Dec 16, 2024
1a8a187
fix(BitfinexSpot): simplify error message for missing candles in Bitf…
saleh-mir Dec 16, 2024
28db6ed
Enhance candle import process: track skipped and imported minutes, th…
saleh-mir Dec 16, 2024
49f13a2
Remove commented-out download optimization log function and update su…
saleh-mir Dec 17, 2024
665c123
feat(candle): add endpoints to retrieve and delete existing candles; …
saleh-mir Dec 17, 2024
52e7fd3
feat(Binance): implement session-based HTTP requests with retry logic…
saleh-mir Dec 18, 2024
f2ec682
feat(exceptions): add CandlesNotFound exception and enhance backtest …
saleh-mir Dec 18, 2024
e7692b3
1.3.22
saleh-mir Dec 18, 2024
93791c9
fix(config): handle missing futures leverage and mode in exchange con…
saleh-mir Dec 19, 2024
85d77cf
fix(Strategy): simplify boolean checks for execution and short condit…
saleh-mir Dec 19, 2024
e203383
refactor(portfolio): improve daily balance calculation for futures an…
saleh-mir Dec 19, 2024
64f6b13
fix(dynamic-numpy-array): extend array only when it less the shape
yakir4123 Dec 20, 2024
73b12a5
feat(requirements.txt): extend array only when it less the shape
yakir4123 Dec 20, 2024
349d2b9
improve order quantity handling in spot mode
saleh-mir Dec 20, 2024
313e424
chore(version): bump version to 1.3.23
saleh-mir Dec 20, 2024
9819fbf
refactor(logging): enhance logging for live mode and streamline logge…
saleh-mir Dec 22, 2024
615e355
Bring back some values for FTX and Bitget exchanges with correspondin…
saleh-mir Dec 23, 2024
7a406e4
feat(Strategy): implement price caching during execution for consistency
saleh-mir Dec 23, 2024
ea17a0d
chore(version): bump version to 1.4.0
saleh-mir Dec 23, 2024
32d5a97
feat(indicators): add volume indicator with moving average
saleh-mir Dec 25, 2024
c3ddf42
fix(import_candles_mode): change alert type from 'success' to 'info' …
saleh-mir Dec 27, 2024
4cdd28d
feat(exchange_info): implement caching for supported symbols retrieval
saleh-mir Dec 27, 2024
06b119f
fix(portfolio_value): correct portfolio value calculation and assertions
saleh-mir Dec 27, 2024
3b053ee
fix(state_candles): adjust candle generation logic for live mode
saleh-mir Dec 27, 2024
76816a5
fix(Strategy): update stop-loss validation logic to check for non-emp…
saleh-mir Dec 27, 2024
a610e77
1.4.1
saleh-mir Dec 27, 2024
7d08d8d
Merge pull request #488 from yakir4123/fix/memory-leak-on-deleting-or…
saleh-mir Dec 27, 2024
026600d
Merge pull request #489 from yakir4123/feat/unrestricitive-requirements
saleh-mir Dec 27, 2024
54ee3f2
Revert "Merge pull request #489 from yakir4123/feat/unrestricitive-re…
saleh-mir Dec 27, 2024
551e424
feat(BybitMain): implement session with retry strategy for API requests
saleh-mir Dec 28, 2024
2044268
refactor(timeframe): move timeframe_to_one_minutes function to utils
saleh-mir Dec 28, 2024
ff13489
handle UnicodeDecodeError
movy Dec 29, 2024
922f039
feat(helpers): add timeframe_to_one_minutes function to convert timef…
saleh-mir Dec 29, 2024
120f9ed
1.4.2
saleh-mir Dec 31, 2024
9079f34
Update python-package.yml
saleh-mir Jan 3, 2025
3f80a6b
Reapply "Merge pull request #489 from yakir4123/feat/unrestricitive-r…
saleh-mir Jan 3, 2025
b0cc63a
chore(requirements): remove numpy_groupies from requirements.txt
saleh-mir Jan 3, 2025
b8cc41f
feat(vwap): optimize VWAP calculation with Numba
saleh-mir Jan 3, 2025
f61f588
increase limit size of the bybit request
morteza-koohgard Jan 1, 2025
0edc3fa
update dashboard
saleh-mir Jan 3, 2025
8727aa7
1.4.3
saleh-mir Jan 3, 2025
20c61e7
chore(setup): update python version requirement from 3.8 to 3.9
saleh-mir Jan 3, 2025
f39e062
chore(ci): update Python package workflow to install setuptools and f…
saleh-mir Jan 3, 2025
a926363
pass?
saleh-mir Jan 3, 2025
ed39cff
pass?
saleh-mir Jan 3, 2025
5ab1f28
fix build?
saleh-mir Jan 3, 2025
d7e4911
try without 3.9, 3.10
saleh-mir Jan 3, 2025
91fe851
Refactor backtest mode report generation and clean up unused imports
saleh-mir Jan 3, 2025
1c3e19f
Enhance metrics calculations and improve data handling in metrics.py
saleh-mir Jan 3, 2025
49b2e18
try with ensurepip
saleh-mir Jan 4, 2025
d83c59e
Remove quantstats integration and clean up related code
saleh-mir Jan 4, 2025
b172839
update dashboard
saleh-mir Jan 4, 2025
8af2dda
Update requirements and CI workflow for Python version compatibility
saleh-mir Jan 4, 2025
a00dc84
Remove wavelet denoising function and related tests; update requirements
saleh-mir Jan 4, 2025
eeb901e
Update pandas version in requirements.txt from 2.0.3 to 2.1.3 for imp…
saleh-mir Jan 4, 2025
b897605
Update pandas version in requirements.txt from 2.1.3 to 2.2.3 for imp…
saleh-mir Jan 4, 2025
6c33c9a
Update GitHub Actions workflow to support multiple OS environments an…
saleh-mir Jan 4, 2025
679d432
just ubuntu for now
saleh-mir Jan 4, 2025
f3b3a8c
Enhance README.md with detailed features and improved structure
saleh-mir Jan 4, 2025
5cd7f0d
Update README.md to include video overview and remove unused method
saleh-mir Jan 4, 2025
91e0db3
Update version to 1.4.4 and require Python 3.10 in setup.py; synchron…
saleh-mir Jan 4, 2025
00d6c24
Remove full_reports parameter from backtest_mode.py function signatur…
saleh-mir Jan 6, 2025
aedba8f
Update version to 1.4.5 in setup.py and version.py to reflect the lat…
saleh-mir Jan 6, 2025
7d6b12a
1.4.6
saleh-mir Jan 7, 2025
989cb80
1.4.7
saleh-mir Jan 8, 2025
bc970f0
Implement Extended Euclidean Algorithm with igcdex function and add c…
saleh-mir Jan 9, 2025
41a4bf6
1.4.8
saleh-mir Jan 9, 2025
21f8935
Update version to 1.4.9 in setup.py and version.py to reflect the lat…
saleh-mir Jan 9, 2025
4d1b1ba
Fix comment clarity in close_trade method of ClosedTrades class in st…
saleh-mir Jan 14, 2025
46d3006
Update dashboard code.
saleh-mir Jan 14, 2025
431648c
1.4.10
saleh-mir Jan 14, 2025
3ded648
Update version to 1.4.11 and modify TA-Lib dependency in requirements…
saleh-mir Jan 14, 2025
5ecc58f
Merge pull request #491 from movy/patch-5
saleh-mir Jan 15, 2025
f1bd413
1.4.12
saleh-mir Jan 19, 2025
244f664
Add endpoint to retrieve backtest logs by session ID
morteza-koohgard Jan 22, 2025
d72e275
1.4.13
saleh-mir Jan 23, 2025
6a488a9
Add endpoint to retrieve backtest logs by session ID
morteza-koohgard Jan 22, 2025
dc451d3
Refactor get_logs function to retrieve backtest logs directly from da…
saleh-mir Jan 23, 2025
c23ba50
Update dashboard files
saleh-mir Jan 23, 2025
34933b4
Add chart_to_dict property to ClosedTrade model and update backtest o…
morteza-koohgard Jan 23, 2025
4918563
Enhance order display in Strategy class by adding order ID to the ord…
morteza-koohgard Jan 23, 2025
ee97879
eliminate Tulipy dependency and optimize performance with Numba
morteza-koohgard Jan 15, 2025
3a2845b
remove newtulipy
saleh-mir Jan 25, 2025
4ca6dea
Merge branch 'tulipy'
saleh-mir Jan 25, 2025
a2f665a
1.5.0
saleh-mir Jan 25, 2025
f377c85
Bump version to 1.5.1 and update TA-Lib requirement
saleh-mir Jan 28, 2025
ecf0c66
Update TA-Lib version to 0.6.0 in GitHub Actions workflow
saleh-mir Jan 28, 2025
1a8138f
Update TA-Lib version to 0.6.1 in GitHub Actions workflow
saleh-mir Jan 28, 2025
76352c3
Fix TA-Lib Linux installation in GitHub Actions workflow
saleh-mir Jan 28, 2025
6bd098d
Optimize TA-Lib Linux installation in GitHub Actions workflow
saleh-mir Jan 28, 2025
1942104
Bump version to 1.6.0
saleh-mir Jan 28, 2025
935bed6
Update TA-Lib installation script to version 0.6.1
saleh-mir Jan 28, 2025
203d16c
Revert "Update TA-Lib installation script to version 0.6.1"
saleh-mir Jan 28, 2025
a38ac9d
Restore TA-Lib installation script to version 0.6.1
saleh-mir Jan 28, 2025
44bd7a0
Update test assertions to use rounded floating-point comparisons
saleh-mir Jan 29, 2025
bf3bd67
Bump version to 1.6.1
saleh-mir Jan 29, 2025
2658889
Fix TA-Lib installation script floating-point precision sed command
saleh-mir Jan 29, 2025
3cb3560
Remove sed modification for TA-Lib floating-point precision
saleh-mir Jan 29, 2025
b1ce508
Update dashboard files
saleh-mir Jan 29, 2025
7e95704
Bump version to 1.6.2
saleh-mir Jan 29, 2025
bbdbb91
Revert "Update dashboard files"
saleh-mir Jan 29, 2025
179edcc
Bump version to 1.6.3
saleh-mir Jan 29, 2025
6ca59d3
Update dashboard files
saleh-mir Jan 30, 2025
50c7b6d
Update exit order test assertions in strategy test
saleh-mir Feb 5, 2025
241577f
Refactor take-profit and stop-loss order handling logic
saleh-mir Feb 5, 2025
caa8aef
Update frontend files
saleh-mir Feb 5, 2025
14e23b3
Add error handling for watch_list() method in report service
saleh-mir Feb 5, 2025
00797fa
Fix typo in ExchangeOrderNotFind exception name
saleh-mir Feb 6, 2025
e6254d0
Bump version to 1.6.4
saleh-mir Feb 6, 2025
53b7b9b
Fix relative import in setup.py
saleh-mir Feb 6, 2025
096dd57
Remove version import in setup.py
saleh-mir Feb 6, 2025
0e06b2f
Merge branch 'master' into candle-chart
saleh-mir Feb 6, 2025
8ff7568
Refactor ClosedTrade model and report service trade export
saleh-mir Feb 7, 2025
1e4d6b3
Add compression utility for large response content
saleh-mir Feb 7, 2025
8eae6ec
Add endpoint for downloading backtest log files
saleh-mir Feb 7, 2025
2941700
Add download_backtest_log function to data provider
saleh-mir Feb 7, 2025
3c15cc9
Update dashboard files
saleh-mir Feb 7, 2025
6d31e5a
Remove TA-Lib dependency
morteza-koohgard Feb 3, 2025
76c73bd
Add endpoint to retrieve backtest logs by session ID
morteza-koohgard Jan 22, 2025
47c2e8d
Update dashboard files
saleh-mir Jan 29, 2025
86e646c
Revert "Update dashboard files"
saleh-mir Jan 29, 2025
a83670d
Update dashboard files
saleh-mir Jan 30, 2025
f093047
Update frontend files
saleh-mir Feb 5, 2025
cfc0692
Update dashboard files
saleh-mir Feb 7, 2025
ca9c563
Fix division by zero errors in multiple indicators
saleh-mir Feb 11, 2025
85f3024
Update GitHub Actions workflow to support multi-platform testing
saleh-mir Feb 11, 2025
5e47e63
Update static HTML files with new build configuration
saleh-mir Feb 11, 2025
7b716aa
Update GitHub Actions workflow to use bash shell for dependency insta…
saleh-mir Feb 11, 2025
5aa96f7
Remove Windows platform from GitHub Actions workflow
saleh-mir Feb 11, 2025
c1e087f
Bump version to 1.7.0
saleh-mir Feb 11, 2025
1ce8450
Remove TA-Lib installation and configuration files
saleh-mir Feb 12, 2025
ae5a296
Upgrade pytest to version 6.2.6
saleh-mir Feb 12, 2025
519e1b4
Downgrade pytest to version 6.2.5
saleh-mir Feb 12, 2025
7a01f99
Optimize indicators with Numba for improved performance
saleh-mir Feb 13, 2025
f1e9191
Optimize EMA indicator with Numba JIT compilation
saleh-mir Feb 13, 2025
6285398
Optimize RSI indicator with Numba JIT compilation
saleh-mir Feb 13, 2025
19b5306
Optimize Keltner Channel indicator with Numba JIT compilation
saleh-mir Feb 13, 2025
6d44f2d
Optimize KAMA indicator with Numba JIT compilation
saleh-mir Feb 13, 2025
1a67d0c
Optimize Bollinger Bands indicator with Numba JIT compilation
saleh-mir Feb 13, 2025
5c332a7
Optimize TRIX indicator with Numba JIT compilation
saleh-mir Feb 13, 2025
c4f5d49
Update alligator.py
saleh-mir Feb 13, 2025
591eaf3
Bump version to 1.7.1
saleh-mir Feb 13, 2025
8d46275
Optimize multiple indicators with Numba JIT compilation
morteza-koohgard Feb 14, 2025
274f955
Bump version to 1.7.2
saleh-mir Feb 14, 2025
ccf3051
directly call `timeframe_to_one_minute` dictionary instead of calling…
yakiraid Feb 14, 2025
6d7fbef
move all imports to module level
yakiraid Feb 14, 2025
f8dce89
Merge branch 'refs/heads/master' into feat/timeframe-dict-call
yakir4123 Feb 15, 2025
8b01d21
Add support for VWMA and VWAP in various indicators
morteza-koohgard Feb 17, 2025
86aa923
Add error handling for VWMA and VWAP in test cases
morteza-koohgard Feb 17, 2025
ff0ea3a
Optimize EFI and Wavetrend indicators with Numba JIT compilation
morteza-koohgard Feb 15, 2025
b1776de
Optimize multiple indicators with Numba JIT compilation and caching
morteza-koohgard Feb 15, 2025
5b628f6
Refactor and optimize ADXR and DX indicators with improved Numba impl…
morteza-koohgard Feb 15, 2025
b3a4db6
Bump version to 1.7.3
saleh-mir Feb 20, 2025
9fff079
Merge pull request #502 from yakir4123/feat/timeframe-dict-call
saleh-mir Feb 24, 2025
b5c91b5
Improve insufficient margin error message for futures trading
saleh-mir Feb 24, 2025
a6c04b7
Refine insufficient margin error message for futures trading
saleh-mir Feb 24, 2025
d91585c
1.7.4
saleh-mir Feb 28, 2025
5461304
Refactor selectors module to use lazy imports
saleh-mir Feb 28, 2025
b7e982e
Update dashboard files.
saleh-mir Mar 10, 2025
1c6e7ec
make implementation RL algorithm into jesse trade framework
xsa-dev Mar 31, 2025
3187a6f
Merge branch 'master' into lazy_rl
xsa-dev Apr 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
16 changes: 0 additions & 16 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,22 +46,6 @@ jobs:
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install ta-lib
run: |
if ([ "$RUNNER_OS" = "macOS" ]); then
brew install ta-lib
fi
if ([ "$RUNNER_OS" = "Linux" ]); then
if [ ! -f "$GITHUB_WORKSPACE/ta-lib/src" ]; then wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz -q && tar -xzf ta-lib-0.4.0-src.tar.gz; fi
cd ta-lib/
./configure --prefix=/usr
if [ ! -f "$HOME/ta-lib/src" ]; then make; fi
sudo make install
cd
fi
if ([ "$RUNNER_OS" = "Windows" ]); then
curl -sL http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-msvc.zip -o $GITHUB_WORKSPACE/ta-lib.zip --create-dirs && 7z x $GITHUB_WORKSPACE/ta-lib.zip -o/c/ta-lib && mv /c/ta-lib/ta-lib/* /c/ta-lib/ && rm -rf /c/ta-lib/ta-lib && cd /c/ta-lib/c/make/cdr/win32/msvc && nmake
fi
- name: Install dependencies
run: |
python -m pip install --upgrade pip
Expand Down
51 changes: 6 additions & 45 deletions .github/workflows/python-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,9 @@ concurrency:

jobs:
build:

runs-on: ${{matrix.os}}
strategy:
matrix:
os: [ubuntu-latest]
include:
- os: ubuntu-latest
path: ~/.cache/pip
Expand All @@ -28,8 +26,6 @@ jobs:
#- os: windows-latest
# path: ~\AppData\Local\pip\Cache

python-version: ['3.10'] # , '3.11', '3.12']


steps:
- name: Checkout
Expand All @@ -39,59 +35,24 @@ jobs:
with:
python-version: ${{ matrix.python-version }}
- name: Cache pip
uses: actions/cache@v2
uses: actions/cache@v3
id: cache
with:
path: ${{ matrix.path }}
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Set up ta-lib dir
if: ${{ runner.os == 'Linux' }}
run: |
mkdir -p $HOME/.local/ta-lib
echo "LD_LIBRARY_PATH=$HOME/.local/ta-lib/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV
echo "TA_INCLUDE_PATH=$HOME/.local/ta-lib/include" >> $GITHUB_ENV
echo "TA_LIBRARY_PATH=$HOME/.local/ta-lib/lib" >> $GITHUB_ENV
- name: Set up ta-lib cache
if: ${{ runner.os == 'Linux' }}
uses: actions/cache@v2
id: talib-cache
with:
path: |
~/.local/ta-lib/lib
~/.local/ta-lib/include
key: talib-cache-v0.4.0
- name: Install ta-lib mac / windows
run: |
if ([ "$RUNNER_OS" = "macOS" ]); then
brew install ta-lib
fi
if ([ "$RUNNER_OS" = "Windows" ]); then
curl -sL http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-msvc.zip -o $GITHUB_WORKSPACE/ta-lib.zip --create-dirs && 7z x $GITHUB_WORKSPACE/ta-lib.zip -o/c/ta-lib && mv /c/ta-lib/ta-lib/* /c/ta-lib/ && rm -rf /c/ta-lib/ta-lib && cd /c/ta-lib/c/make/cdr/win32/msvc && nmake
fi
- name: Install ta-lib Linux
if: steps.talib-cache.outputs.cache-hit != 'true'
run: |
wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz -q && tar -xzf ta-lib-0.4.0-src.tar.gz
cd ta-lib/
./configure --prefix=$HOME/.local/ta-lib
make
sudo make install
cd
- name: Install dependencies
shell: bash
run: |
python -m ensurepip --upgrade
python -m pip install --upgrade pip
python -m pip install setuptools wheel
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
if [ ! ${{ matrix.python-version }} = "3.10"]; then pip install numba; fi
if [ ! ${{ matrix.python-version }} = "3.10" ]; then pip install numba; fi
pip install -e . -U
# - name: Lint with flake8
# run: |
# stop the build if there are Python syntax errors or undefined names
# flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
# flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- name: Test with pytest
shell: bash
run: |
pip install pytest
pytest
3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@ __pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
Expand Down
1 change: 1 addition & 0 deletions .python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.11
33 changes: 0 additions & 33 deletions .travis.yml

This file was deleted.

5 changes: 0 additions & 5 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,6 @@ RUN pip3 install Cython numpy
RUN mkdir /jesse-docker
WORKDIR /jesse-docker

# Install TA-lib
COPY docker_build_helpers/* /tmp/
RUN cd /tmp && /tmp/install_ta-lib.sh && rm -r /tmp/*ta-lib*
ENV LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

# Install dependencies
COPY requirements.txt /jesse-docker
RUN pip3 install -r requirements.txt
Expand Down
5 changes: 5 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
rl-dev:


rl:
uv run python -m pytest tests/test_rl_strategy.py::TestRLStrategy::test_rl_strategy
118 changes: 66 additions & 52 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,75 @@ Algo-trading was 😵‍💫, we made it 🤩

---

Jesse is an advanced crypto trading framework that aims to **simplify** **researching** and defining **YOUR OWN trading strategies**.
Jesse is an advanced crypto trading framework that aims to **simplify** **researching** and defining **YOUR OWN trading strategies** for backtesting, optimizing, and live trading.

## What is Jesse?
Watch this video to get a quick overview of Jesse:

[![Jesse Overview](https://img.youtube.com/vi/0EqN3OOqeJM/0.jpg)](https://www.youtube.com/watch?v=0EqN3OOqeJM)

## Why Jesse?
In short, Jesse is more **accurate** than other solutions, and way more **simple**.
In fact, it is so simple that in case you already know Python, you can get started today, in **matter of minutes**, instead of **weeks and months**.

**[Here](https://docs.jesse.trade)** you can read more about Jesse's features and why you should use it.
## Key Features

- 📝 **Simple Syntax**: Define both simple and advanced trading strategies with the simplest syntax in the fastest time.
- 📊 **Comprehensive Indicator Library**: Access a complete library of technical indicators with easy-to-use syntax.
- 📈 **Smart Ordering**: Supports market, limit, and stop orders, automatically choosing the best one for you.
- ⏰ **Multiple Timeframes and Symbols**: Backtest and livetrade multiple timeframes and symbols simultaneously without look-ahead bias.
- 🔒 **Self-Hosted and Privacy-First**: Designed with your privacy in mind, fully self-hosted to ensure your trading strategies and data remain secure.
- 🛡️ **Risk Management**: Built-in helper functions for robust risk management.
- 📋 **Metrics System**: A comprehensive metrics system to evaluate your trading strategy's performance.
- 🔍 **Debug Mode**: Observe your strategy in action with a detailed debug mode.
- 🔧 **Optimize Mode**: Fine-tune your strategies using AI, without needing a technical background.
- 📈 **Leveraged and Short-Selling**: First-class support for leveraged trading and short-selling.
- 🔀 **Partial Fills**: Supports entering and exiting positions in multiple orders, allowing for greater flexibility.
- 🔔 **Advanced Alerts**: Create real-time alerts within your strategies for effective monitoring.
- 🤖 **JesseGPT**: Jesse has its own GPT, JesseGPT, that can help you write strategies, optimize them, debug them, and much more.
- 🔧 **Built-in Code Editor**: Write, edit, and debug your strategies with a built-in code editor.
- 📺 **Youtube Channel**: Jesse has a Youtube channel with screencast tutorials that go through example strategies step by step.

## Example Strategy

```py
class SMACrossover(Strategy):
@property
def slow_sma(self):
return ta.sma(self.candles, 200)

@property
def fast_sma(self):
return ta.sma(self.candles, 50)

def should_long(self) -> bool:
# Fast SMA above Slow SMA
return self.fast_sma > self.slow_sma

def should_short(self) -> bool:
# Fast SMA below Slow SMA
return self.fast_sma < self.slow_sma

def go_long(self):
# Open long position and use entire balance to buy
qty = utils.size_to_qty(self.balance, self.price, fee_rate=self.fee_rate)

self.buy = qty, self.price

def go_short(self):
# Open short position and use entire balance to sell
qty = utils.size_to_qty(self.balance, self.price, fee_rate=self.fee_rate)

self.sell = qty, self.price

def update_position(self):
# If there exist long position, but the signal shows Death Cross, then close the position, and vice versa.
if self.is_long and self.fast_sma < self.slow_sma:
self.liquidate()

if self.is_short and self.fast_sma > self.slow_sma:
self.liquidate()
```

## Getting Started
Head over to the "getting started" section of the [documentation](https://docs.jesse.trade/docs/getting-started). The
Expand All @@ -34,62 +96,14 @@ documentation is **short yet very informative**.

- [⚡️ Website](https://jesse.trade)
- [🎓 Documentation](https://docs.jesse.trade)
- [🛟 Help center](https://jesse.trade/help)
- [🎥 Youtube channel (screencast tutorials)](https://jesse.trade/youtube)
- [🛟 Help center](https://jesse.trade/help)
- [💬 Discord community](https://jesse.trade/discord)

## Screenshots

Check out Jesse's [Youtube channel](https://jesse.trade/youtube) for tutorials that go through example strategies step by step.

Here are a few screenshots just to get you excited:

**Backtest results:**

![image](assets/screenshots/quantstats.png)

**Example strategy code:**

![image](assets/screenshots/strategy.jpg)

**Live trading (requires [live plugin](https://docs.jesse.trade/docs/livetrade.html)):**

![image](assets/screenshots/live-mode.jpg)

- [🤖 JesseGPT](https://jesse.trade/gpt) (Requires a free account)

## What's next?

You can see the project's **[roadmap here](https://docs.jesse.trade/docs/roadmap.html)**. **Subscribe** to our mailing list at [jesse.trade](https://jesse.trade) to get the good stuff as soon they're released. Don't worry, We won't send you spam—Pinky promise.

## How to contribute

Thank you for your interest in contributing to the project. The best way to contribute is by **participating in the community** and **helping other users**.

You can also contribute by submitting **bug reports** and **feature requests** or writing code (submitting PRs) which can be incorporated into Jesse itself.

In that case, here's what you need to know:

- Before starting to work on a PR, please **reach out** to make sure it **aligns** with the **project's roadmap** and **vision**.
- If your PR makes changes to the source code, please make sure to **add unit tests**. If you're not sure how to do that, just check out some of the already existing [tests](https://github.com/jesse-ai/jesse/tree/master/tests).

First, you need to install Jesse from the repository instead of PyPi:

```sh
# first, make sure that the PyPi version is not installed
pip uninstall jesse

# now install Jesse from the repository
git clone https://github.com/jesse-ai/jesse.git
cd jesse
pip install -e .
```

Now every change you make to the code will be affected immediately.

After every change, **make sure** your changes did not **break** any functionality by **running tests**:
```
pytest
```

## Disclaimer
This software is for educational purposes only. USE THE SOFTWARE AT **YOUR OWN RISK**. THE AUTHORS AND ALL AFFILIATES ASSUME **NO RESPONSIBILITY FOR YOUR TRADING RESULTS**. **Do not risk money that you are afraid to lose**. There might be **bugs** in the code - this software DOES NOT come with **ANY warranty**.
17 changes: 0 additions & 17 deletions docker_build_helpers/install_ta-lib.sh

This file was deleted.

Binary file removed docker_build_helpers/ta-lib-0.4.0-src.tar.gz
Binary file not shown.
Loading
Loading