Commit Graph

391 Commits

Author SHA1 Message Date
incrementby1
02e69e1667 Changes to unlock_reason:
- introducing filter
	- replaced get_all_locks with a query for speed
	. removed logging in backtesting mode for speed
	. replaced for-loop with map-function for speed

Changes to models.py:
	- changed string representation of Pairlock to also contain reason and active-state
2021-10-28 15:16:07 +02:00
incrementby1
c3f3bdaa2a Add "allow_position_stacking" value to config, which allows rebuys of a pair
Add function unlock_reason(str: pair) which removes all PairLocks with reason
Provide demo strategy that allows buying the same pair multiple times
2021-10-26 00:04:40 +02:00
theluxaz
b51f946ee0 Fixed models and rpc performance functions, added skeletons for tests. 2021-10-25 23:43:22 +03:00
Matthias
22dd2ca003 Fix mypy type errors 2021-10-24 15:18:29 +02:00
Matthias
1267374c8a Small fixes to tests 2021-10-20 19:21:38 +02:00
theluxaz
905f3a1a50 Removed exit_tag from Trade objects. 2021-10-20 17:58:50 +03:00
theluxaz
1fdc4425dd Changed exit_tag to be represented as sell_reason 2021-10-20 01:26:15 +03:00
theluxaz
69a59cdf37 Fixed flake 8, changed sell_tag to exit_tag and fixed telegram functions 2021-10-18 23:56:41 +03:00
Sam Germain
bcbe8f229c Merge branch 'feat/short' into lev-freqtradebot 2021-10-13 19:02:57 -06:00
Sam Germain
0dbad19b40 trading_mode default null in models.Trade 2021-10-12 20:34:19 -06:00
theluxaz
b151cf032b Merge branch 'develop' of https://github.com/theluxaz/freqtrade into main
# Conflicts:
#	freqtrade/freqtradebot.py
#	freqtrade/optimize/backtesting.py
2021-10-13 02:01:26 +03:00
theluxaz
80b71790bc Added some bigfixes for sell_tag 2021-10-13 01:22:53 +03:00
theluxaz
b898f86364 Added sell_tag and buy/sell telegram performance functions 2021-10-13 00:02:28 +03:00
Matthias
532a9341d2 Fix migration issue 2021-10-12 20:41:48 +02:00
Sam Germain
bdad604fab Added persistence futures tests 2021-10-11 07:48:31 -06:00
Sam Germain
ae3688a18a Updated LocalTrade.calc_close_trade_value formula for shorting futures 2021-10-11 05:56:27 -06:00
Sam Germain
70db228f24 Merge branch 'feat/short' into funding-fee 2021-10-03 02:15:54 -06:00
Sam Germain
b3656ddfc9 Merge branch 'feat/short' into lev-freqtradebot 2021-10-02 03:36:32 -06:00
Sam Germain
e8b4cf6eaa Merge branch 'develop' into feat/short 2021-10-02 03:15:12 -06:00
Sam Germain
d7c7448632 merged lev-freqtradebot with lev-strat 2021-09-19 19:06:43 -06:00
Sam Germain
778f0d9d0a Merged feat/short into lev-strat 2021-09-19 17:44:12 -06:00
Sam Germain
60a678fea7 merged with feat/short 2021-09-19 17:02:09 -06:00
Sam Germain
ee0ebdf0f2 merged with develop 2021-09-19 15:35:54 -06:00
Matthias
1da091dea3 ProtectionManager should return the lock just created 2021-09-19 19:41:19 +02:00
Matthias
564e0b9a1a Switch performanceFilter to use Minutes lookback resolution
closes #5060
2021-09-18 09:10:25 +02:00
Matthias
12c12d42df Add documentation for days parameter in PerformanceFilter 2021-09-18 08:30:44 +02:00
sergeykhliustin
982deeedf0
Update freqtrade/persistence/models.py
Co-authored-by: Matthias <xmatthias@outlook.com>
2021-09-17 18:23:13 +03:00
Sergey Khliustin
54ef36a497 Updates after review to PerformanceFilter days param 2021-09-17 13:45:44 +03:00
Sam Germain
0628790da9 merged lev-freqtradebot with feat/short 2021-09-16 23:49:43 -06:00
Sam Germain
e78f38c7b6 Merge branch 'feat/short' into funding-fee 2021-09-16 23:32:44 -06:00
Sergey Khliustin
457e738b4a Added days parameter to PerformanceFilter 2021-09-16 14:48:02 +03:00
Sam Germain
a8657bb1ce Removed backtesting funding-fee code 2021-09-16 03:50:01 -06:00
Sam Germain
98b00e8daf merged with feat/short 2021-09-15 22:28:10 -06:00
Sam Germain
5fcb69a0b5 Parametrized test_persistence 2021-09-15 18:29:17 -06:00
Sam Germain
d559b6d6c6 changed add_funding_fees template 2021-09-08 19:34:54 -06:00
Sam Germain
695a8fc73b comment updates, formatting, TODOs 2021-09-08 03:09:39 -06:00
Sam Germain
f8248f3771 comments, formatting 2021-09-08 00:19:21 -06:00
Sam Germain
f5248be043 Changed funding fee tracking method, need to get funding_rate and open prices at multiple candles 2021-09-06 15:47:24 -06:00
Sam Germain
7eab855476 Merge branch 'feat/short' into lev-exchange 2021-09-04 20:15:36 -06:00
Sam Germain
d6d5bae2a1 New funding fee methods 2021-09-04 16:33:06 -06:00
Sam Germain
b7891485b3 Created FundingFee class and added funding_fee to LocalTrade and freqtradebot 2021-09-04 16:20:07 -06:00
Matthias
5184cc7749 Merge branch 'develop' into feat/short 2021-09-02 07:03:14 +02:00
Matthias
ef9c1addcf Add expired to list of canceled statuses 2021-08-27 19:54:53 +02:00
Matthias
957551ea97 Merge branch 'develop' into feat/short 2021-08-24 06:25:06 +02:00
Sam Germain
6ac0ab0233 Added short functionality to exchange stoplss methods 2021-08-21 21:10:03 -06:00
Matthias
e03784d98d Fix filled exception
closes #5404
2021-08-12 05:02:56 +00:00
Matthias
cf27968b97 Properly preserve trade's low during backtesting 2021-08-09 19:38:56 +02:00
Sam Germain
de4b0d1f7c Merged with feat/short 2021-08-09 00:24:25 -06:00
Sam Germain
8e941e6836 Changed interest implementation 2021-08-08 17:09:17 -06:00
Sam Germain
0545a0ed3c Replaced the term margin with leverage when it should say leverage 2021-08-08 17:04:24 -06:00
Matthias
07673ef47f
Update Migrations to use the latest added columns 2021-08-03 10:25:59 +02:00
Sam Germain
5b6dbbd750 Changed order of buy_tag in migrations 2021-08-03 00:23:21 -06:00
Sam Germain
d88e2ae603 Merge branch 'develop' into margin-db 2021-08-02 23:58:44 -06:00
Matthias
c5e3348b89 Migrations for indexes should run in a seperate session
closes #5349
2021-07-31 16:36:28 +02:00
Sam Germain
ef429afb6f Removed is_oeing_trade is_closing_trade 2021-07-31 01:22:48 -06:00
Sam Germain
d6ffd23865 Merged with remote 2021-07-31 01:19:11 -06:00
Sam Germain
26be620f71 Removed LocalTrade.set_is_short 2021-07-31 00:20:25 -06:00
Sam Germain
fadb0de7c7 Removed excess modes stop_loss method, removed models.is_opening_side models.is_closing_side 2021-07-31 00:12:53 -06:00
Matthias
aa34889c04 Don't run migrations twice 2021-07-30 07:14:35 +02:00
Sam Germain
3fb7f983f8 Added is_short and leverage to __repr__ 2021-07-28 12:25:56 -06:00
Sam Germain
195badeb80 Changed liquidation_price to isolated_liq 2021-07-28 12:25:56 -06:00
Sam Germain
6ad9b535a9 persistence all to one test file, use more regular values like 2.0 for persistence tests 2021-07-28 12:25:56 -06:00
Sam Germain
a900570f1a Added enter_side and exit_side computed variables to persistence 2021-07-28 12:25:56 -06:00
Matthias
317f4ebce0 Boolean sqlite fix for orders table 2021-07-28 12:25:56 -06:00
Matthias
071f6309cc Try fix migration tests 2021-07-28 12:25:56 -06:00
Sam Germain
af8875574c updated mkdocs and leverage docs
Added tests for set_liquidation_price and set_stop_loss
updated params in interestmode enum
2021-07-28 12:25:56 -06:00
Sam Germain
256160740e Updated interest and ratio calculations to correct functions 2021-07-28 12:25:56 -06:00
Sam Germain
8e52a3a29c updated ratio_calc_profit function 2021-07-28 12:25:55 -06:00
Sam Germain
006a60e5a4 Added docstrings to methods 2021-07-28 12:25:55 -06:00
Sam Germain
b0476ebd3e All persistence margin tests pass
Flake8 compliant, passed mypy, ran isort .
2021-07-28 12:25:55 -06:00
Sam Germain
52def4e826 Changed InterestMode enum implementation 2021-07-28 12:25:55 -06:00
Sam Germain
60572c9e0d Took liquidation price out of order completely 2021-07-28 12:25:55 -06:00
Sam Germain
737a62be52 set initial_stop_loss in stoploss helper 2021-07-28 12:25:55 -06:00
Sam Germain
f566d83839 Tried to add liquidation price to order object, caused a test to fail 2021-07-28 12:25:55 -06:00
Sam Germain
31fa6f9c25 updated timezone.utc time 2021-07-28 12:25:55 -06:00
Sam Germain
811cea288d Added checks for making sure stop_loss doesn't go below liquidation_price 2021-07-28 12:25:55 -06:00
Sam Germain
286427c04a Moved interest calculation to an enum 2021-07-28 12:25:55 -06:00
Sam Germain
be3a9390fe Switched migrations.py check for stake_currency back to open_rate, because stake_currency is no longer a variable 2021-07-28 12:25:55 -06:00
Sam Germain
0ffc85fed9 Set default leverage to 1.0 2021-07-28 12:25:55 -06:00
Sam Germain
78708b27f2 Updated tests to new persistence 2021-07-28 12:25:55 -06:00
Matthias
e0d42d2eb7 Fix migrations, revert some parts related to amount properties 2021-07-28 12:25:55 -06:00
Sam Germain
e4d4d1d1f1 Wrote all tests for shorting 2021-07-28 12:25:55 -06:00
Sam Germain
f194673001 Updated ratio calculation, updated short tests 2021-07-28 12:25:55 -06:00
Sam Germain
5ac03762f0 Kraken interest test comes really close to passing
Added more trades to conftest_trades
2021-07-28 12:25:55 -06:00
Sam Germain
df360fb281 Made borrowed a computed property 2021-07-28 12:25:55 -06:00
Sam Germain
68d3699c19 Turned amount into a computed property 2021-07-28 12:25:55 -06:00
Sam Germain
efcc2adacf About 15 margin tests pass 2021-07-28 12:25:55 -06:00
Sam Germain
f5d7deedf4 added exception checks to LocalTrade.leverage and LocalTrade.borrowed 2021-07-28 12:25:55 -06:00
Sam Germain
34073135b7 Added types to setters 2021-07-28 12:25:55 -06:00
Sam Germain
d07fe1586c Set leverage and borowed to computed properties 2021-07-28 12:25:55 -06:00
Sam Germain
c24ec89dc4 Started some pytests for short and leverage
1 short test passes
2021-07-28 12:25:55 -06:00
Sam Germain
b80f8ca0af Created interest function 2021-07-28 12:25:55 -06:00
Sam Germain
000932eed0 Adding templates for leverage/short tests
All previous pytests pass
2021-07-28 12:25:55 -06:00
Sam Germain
10979361c1 Added changes suggested in pull request, fixed breaking changes,
can run the bot again
2021-07-28 12:25:55 -06:00
Sam Germain
741ca0e58c Added changed to persistance/migrations 2021-07-28 12:25:55 -06:00
Sam Germain
7823a33cbb Updated Trade class 2021-07-28 12:25:55 -06:00
Sam Germain
c7e8439c76 Updated LocalTrade and Order classes 2021-07-28 12:25:55 -06:00
Sam Germain
10d214ccad Added is_short and leverage to __repr__ 2021-07-26 23:09:47 -06:00
Sam Germain
4fcae0d927 Changed liquidation_price to isolated_liq 2021-07-26 23:09:47 -06:00
Sam Germain
1918304c5b persistence all to one test file, use more regular values like 2.0 for persistence tests 2021-07-26 23:09:47 -06:00
Sam Germain
35fd8d6a02 Added enter_side and exit_side computed variables to persistence 2021-07-26 23:09:47 -06:00
Matthias
3d7a74551f Boolean sqlite fix for orders table 2021-07-26 23:09:47 -06:00
Matthias
9a03cae920 Try fix migration tests 2021-07-26 23:09:47 -06:00
Sam Germain
0d06d7e108 updated mkdocs and leverage docs
Added tests for set_liquidation_price and set_stop_loss
updated params in interestmode enum
2021-07-26 23:09:47 -06:00
Sam Germain
f1dc6b54ad Updated interest and ratio calculations to correct functions 2021-07-26 23:09:47 -06:00
Sam Germain
358f0303b9 updated ratio_calc_profit function 2021-07-26 23:09:47 -06:00
Sam Germain
546a7353df Added docstrings to methods 2021-07-26 23:09:47 -06:00
Sam Germain
7f75c978a0 All persistence margin tests pass
Flake8 compliant, passed mypy, ran isort .
2021-07-26 23:09:47 -06:00
Sam Germain
a368dfa7b5 Changed InterestMode enum implementation 2021-07-26 23:09:47 -06:00
Sam Germain
86888dbbf0 Took liquidation price out of order completely 2021-07-26 23:09:47 -06:00
Sam Germain
98acb0f4ff set initial_stop_loss in stoploss helper 2021-07-26 23:09:46 -06:00
Sam Germain
dd6cc1153b Tried to add liquidation price to order object, caused a test to fail 2021-07-26 23:09:46 -06:00
Sam Germain
1414df5e27 updated timezone.utc time 2021-07-26 23:09:46 -06:00
Sam Germain
2aa2b5bcff Added checks for making sure stop_loss doesn't go below liquidation_price 2021-07-26 23:09:46 -06:00
Sam Germain
1b202ca22e Moved interest calculation to an enum 2021-07-26 23:09:46 -06:00
Sam Germain
b6c8b60e65 Switched migrations.py check for stake_currency back to open_rate, because stake_currency is no longer a variable 2021-07-26 23:09:46 -06:00
Sam Germain
0d5749c508 Set default leverage to 1.0 2021-07-26 23:09:46 -06:00
Sam Germain
9ddb6981dd Updated tests to new persistence 2021-07-26 23:09:46 -06:00
Matthias
75b2c9ca1b Fix migrations, revert some parts related to amount properties 2021-07-26 23:09:46 -06:00
Sam Germain
25ff726921 Wrote all tests for shorting 2021-07-26 23:09:46 -06:00
Sam Germain
4d057b8047 Updated ratio calculation, updated short tests 2021-07-26 23:09:46 -06:00
Sam Germain
3a8a9eb255 Kraken interest test comes really close to passing
Added more trades to conftest_trades
2021-07-26 23:09:46 -06:00
Sam Germain
876386d2db Made borrowed a computed property 2021-07-26 23:09:46 -06:00
Sam Germain
2a50f4ff7b Turned amount into a computed property 2021-07-26 23:09:46 -06:00
Sam Germain
da81be9050 About 15 margin tests pass 2021-07-26 23:09:46 -06:00
Sam Germain
6f6deae376 added exception checks to LocalTrade.leverage and LocalTrade.borrowed 2021-07-26 23:09:46 -06:00
Sam Germain
c68a0f05d8 Added types to setters 2021-07-26 23:09:46 -06:00
Sam Germain
691a042e29 Set leverage and borowed to computed properties 2021-07-26 23:09:46 -06:00
Sam Germain
692c55088a Started some pytests for short and leverage
1 short test passes
2021-07-26 23:09:46 -06:00
Sam Germain
b6cc3f02bf Created interest function 2021-07-26 23:09:46 -06:00
Sam Germain
613eecf16a Adding templates for leverage/short tests
All previous pytests pass
2021-07-26 23:09:46 -06:00
Sam Germain
67341aa4f2 Added changes suggested in pull request, fixed breaking changes,
can run the bot again
2021-07-26 23:09:46 -06:00
Sam Germain
20dcd9a1a2 Added changed to persistance/migrations 2021-07-26 23:09:46 -06:00
Sam Germain
69e81100e4 Updated Trade class 2021-07-26 23:09:46 -06:00
Sam Germain
a27171b371 Updated LocalTrade and Order classes 2021-07-26 23:09:46 -06:00
kevinjulian
dd809f756b run mypy 2021-07-22 02:34:20 +07:00
kevinjulian
49886874aa rename to buy_tag 2021-07-21 20:05:35 +07:00
kevinjulian
c558fc0b17 fix feedback 2021-07-20 20:40:32 +07:00
Kevin Julian
edf9c08f06
Merge branch 'develop' into feat/kevinjulian/add-buy-signal-name 2021-07-20 19:19:46 +07:00
kevinjulian
7d04005218 add test and migration 2021-07-20 16:14:48 +07:00
kevinjulian
9e63bdbac9 feat: add buy signal name 2021-07-20 04:58:20 +07:00
Matthias
b41c234440 Extract Closed profit calculation to trade object 2021-07-12 06:54:06 +02:00
Eugene Schava
d54de72471 "/profit N" command should print best pair for the same period of time, not for all trades 2021-06-28 23:42:09 +03:00
Matthias
c65b4e5d3b Small fix to models 2021-06-13 11:20:22 +02:00
Matthias
756904f985 Set sell_reason to stoploss when closing the trade as stoploss
closes #5101
2021-06-08 21:21:29 +02:00
Matthias
66de5df1d1 Update sqlite init method 2021-05-27 11:38:28 +02:00
Matthias
b82f7a2dfd Update orders-migrations to work with new sqlalchemy syntax 2021-05-27 11:38:28 +02:00
Matthias
a01d05997e Add Trade.commit method for easy use 2021-05-27 11:38:28 +02:00
Matthias
6fb32c3594 Use commit instead of .flush() 2021-05-27 11:38:28 +02:00
Matthias
eaa47ff335 Don't use autocommit 2021-05-27 11:38:28 +02:00
Matthias
c31cb67118 Further changes for sqlalchemy 1.4 2021-05-27 11:38:28 +02:00
Matthias
2f79958acb Move declarative_base import to import from .orm 2021-05-27 11:38:28 +02:00
Matthias
cc064f1574 String columns should have a max-length defined
otherwise MySql will not work.
2021-05-22 10:12:23 +02:00
Matthias
6acb2eb2b6 Add average column to orders table 2021-05-21 20:35:39 +02:00
Matthias
6b2a38ccfb Add absolute Profit to apiserver 2021-05-15 19:39:46 +02:00
Matthias
6eb947ae09 Move static Trade functions to right class 2021-04-28 06:37:40 +02:00
Matthias
9f6f3e0862 Address ZeroDivisionExceptiond
closes #4764 closes #4617
2021-04-20 21:41:49 +02:00
Matthias
37c8fd6ad7 Remove arrow from models.py 2021-04-13 11:55:03 +02:00
Matthias
9a58a85347 Don't export "hum" date versions for trade objects.
They are not used and have a rather high performance penalty due to
using arrow.get
2021-04-13 06:17:11 +02:00
Matthias
7132aefd60 Rename Trade.session to Trade._session 2021-04-05 08:46:12 +02:00
Matthias
0407bf755f Use .query.session to make sure the scoped session is used properly 2021-04-05 07:28:51 +02:00
shubhendra
537ad059bc
Remove unnecessary use of comprehension
Signed-off-by: shubhendra <withshubh@gmail.com>
2021-03-21 17:14:46 +05:30
Matthias
3b99f04a78
Merge pull request #4535 from freqtrade/fix/backtestperformance
Improve backtest performance after enabling compounding
2021-03-13 16:51:00 +01:00
Matthias
0320c8dc92 Improve tests for trades_proxy 2021-03-13 15:51:27 +01:00
Matthias
d1acc8092c Improve backtest performance 2021-03-13 10:17:14 +01:00
Matthias
441d3fad39
Merge pull request #4513 from freqtrade/fix/4511
Fix stoploss order problem with FTX
2021-03-11 19:39:44 +01:00
Matthias
0db5c9746f
Merge pull request #4454 from freqtrade/backtest_compound_speed
Backtest compound, wallet, ...
2021-03-10 10:07:40 +01:00
Matthias
99583bbd0c Fix problem with FTX
where cancelled orders are "cancelled", not "canceled"
2021-03-09 20:21:08 +01:00
Matthias
3d65ba2dcb Add rpc method to delete locks 2021-03-01 07:51:33 +01:00
Matthias
b2e9295d7f Small stylistic fixes 2021-02-27 19:57:42 +01:00
Matthias
60db6ccf45 Add test for subclassing 2021-02-27 09:33:00 +01:00
Matthias
03eb23a4ce 2 levels of Trade models, one with and one without sqlalchemy
Fixes a performance issue when backtesting with sqlalchemy, as that
uses descriptors for all properties.
2021-02-27 09:33:00 +01:00
Matthias
0754a7a78f total_open_trades_stake should support no-db mode 2021-02-27 09:32:59 +01:00
Matthias
20455de2a9 Small enhancements to docs 2021-02-27 09:32:59 +01:00
Matthias
081b9be45c use get_all_locks to get locks for backtest result 2021-02-27 09:32:59 +01:00
Matthias
712d503e6c Use sell-reason value in backtesting, not the enum object 2021-02-27 09:32:59 +01:00
Matthias
c5ab3a80a5 Check if order is a dict before parsing
closes #4331
2021-02-08 19:35:22 +01:00
Matthias
c659150d9f Also print trade_duration in seconds to json 2021-01-25 19:42:34 +01:00
Matthias
3b51545d23 Add trade_duration to to_json 2021-01-24 08:58:41 +01:00
Matthias
8f6aefb591 Extract stoploss assignment 2020-12-18 06:56:56 +01:00
Matthias
7eab33de08 Merge branch 'develop' into plugins/protections_backtest 2020-12-13 10:31:33 +01:00
Matthias
95fd3824da Finish renamal of open_trade_price to open_value 2020-12-10 19:36:52 +01:00
Matthias
201cc67e05 Rename open_trade_price to "open_trade_value" 2020-12-10 19:21:20 +01:00
Matthias
c37bc307e2 Small finetunings to documentation 2020-12-07 16:12:03 +01:00
Matthias
75a5161650 Support multis-strategy backtests with protections 2020-12-07 11:39:01 +01:00
Matthias
9f34aebdaa Allow closing trades without message 2020-12-07 11:39:01 +01:00
Matthias
98c88fa58e Prepare protections for backtesting 2020-12-07 11:39:01 +01:00
Matthias
768d7fa196 Readd optional for get_pair_locks - it's necessary 2020-12-07 08:23:10 +01:00
Matthias
6d0f16920f Get Longest lock logic 2020-12-07 08:23:10 +01:00
Matthias
fc97266dd4 Add "now" to lock_pair method 2020-12-07 08:23:10 +01:00
Matthias
05be33ccd4 Simplify is_pair_locked 2020-12-07 08:23:10 +01:00
Matthias
1d56c87a34 Fully support kraken limit stoploss 2020-11-25 21:40:39 +01:00
Matthias
d1dab23283 Remove deprecated api fields 2020-11-03 08:59:11 +01:00
Matthias
cf89a773da Standardize trade api outputs
there should be no difference between current_profit and close_profit
 it's always profit, and the information if it's a closed trade is available elsewhere
2020-11-03 08:58:57 +01:00
Matthias
72f61f4682 Remove optional, now is not optional 2020-10-27 10:08:24 +01:00
Matthias
5c8779b155 Sort imports 2020-10-27 08:11:57 +01:00
Matthias
6c913fa617 Fix locking - should round before storing to have a consistent picture 2020-10-27 08:01:31 +01:00
Matthias
e602ac3406 Introduce Pairlocks middleware 2020-10-27 07:06:06 +01:00
Matthias
9999017953 Fix small bug in case of duplicate locks 2020-10-22 08:04:48 +02:00
Matthias
cf1a726198 Rename table to be inline with other table naming 2020-10-22 07:35:59 +02:00