Commit Graph

1119 Commits

Author SHA1 Message Date
Matthias
2523c12c71 Small enhancements and notes 2022-02-13 14:33:37 +01:00
Matthias
ad801e05f7 Filter loadable leverage tiers to stake-currency pairs 2022-02-13 13:05:57 +01:00
Matthias
7f0cedc769 Use "is_future" to check for futures markets 2022-02-13 12:54:49 +01:00
Matthias
eaf13f96f7 Use exchange_has to check for ccxt properties 2022-02-13 12:48:28 +01:00
Sam Germain
8fe3f0c933 fix breaking tests 2022-02-12 23:08:42 -06:00
Sam Germain
7a0f7da128 okex loads all leverage tiers at beginning, removed get tiers for pair 2022-02-12 23:02:16 -06:00
Sam Germain
8657e99c26 trimmed down get_maintenance_ratio_and_amt, now requires fetchLeverageTiers 2022-02-12 23:02:16 -06:00
Sam Germain
03b3756e4b strengthened and fixed leverage_tier tests 2022-02-12 23:02:16 -06:00
Sam Germain
4a1ed01708 get_maintenance_ratio_and_amt tests 2022-02-12 23:02:16 -06:00
Sam Germain
60a45ff394 exchange.get_max_leverage de-complex 2022-02-12 23:02:16 -06:00
Sam Germain
41ab20d949 get_max_leverage checks if the number of tiers is < 1 2022-02-12 23:02:15 -06:00
Sam Germain
fa2c9fc51f replaced mmr_key with unified maintenanceMarginRate 2022-02-12 23:02:15 -06:00
Sam Germain
e987e0e2a9 exchange minor fixes 2022-02-12 23:02:15 -06:00
Sam Germain
f3cb7e90e0 moved get_leverage_tiers_for_pair to be with other leverage_tier methods 2022-02-12 23:02:15 -06:00
Sam Germain
5f07546b86 moved leverage_tier caching to get_leverage_tiers_for_pair 2022-02-12 23:02:15 -06:00
Sam Germain
eb72e5cc42 Added some exchange leverage tier tests 2022-02-12 23:02:15 -06:00
Sam Germain
18b4d0be95 fixed error with exchange.fill_leverage_tiers 2022-02-12 23:02:14 -06:00
Sam Germain
41d8330fbc freqtrade.exchange edited load_leverage_tiers 2022-02-12 23:02:14 -06:00
Sam Germain
0b717fbace okex.load_leverage_tiers 2022-02-12 23:02:14 -06:00
Sam Germain
42e36f44f8 replaced "leverage" with "tiers" 2022-02-12 23:02:14 -06:00
Sam Germain
6b9915bc73 moved fill_leverage_brackets and get_max_leverage to base exchange class, wrote parse_leverage_tier and load_leverage_brackets 2022-02-12 23:02:14 -06:00
Sam Germain
a99cf2eeed redid get_max_leverage 2022-02-12 23:02:07 -06:00
Sam Germain
720a86778e okex.get_max_pair_stake_amount 2022-02-12 23:01:39 -06:00
Sam Germain
a5aba4813d moved get_maintenance_ratio_and_amt to base.exchange. Wrote get_leverage_tiers. Added mmr_key to exchange._ft_has 2022-02-12 23:01:30 -06:00
Sam Germain
fc2d3649a1 edited todos 2022-02-12 16:23:14 -06:00
Sam Germain
6ae85f9be1 fixed liq-buffer tests 2022-02-11 19:38:59 +01:00
Sam Germain
fb3a6e2ce8 added liquidation_buffer to constants.py 2022-02-11 19:38:59 +01:00
Sam Germain
3c3675ea1a moved liquidation_buffer to exchange class, add check for valid liquidation_buffer values 2022-02-11 19:38:59 +01:00
Matthias
0c6d92a7a6 Merge branch 'develop' into feat/short 2022-02-11 17:02:04 +01:00
Sam Germain
553da850ce binance futures stoploss 2022-02-10 09:43:32 -06:00
Matthias
1d10d2c87c Okex -> okx 2022-02-08 19:45:39 +01:00
Matthias
172e018d2d Add probit to list of non-working exchanges
closes #6379
2022-02-08 19:21:27 +01:00
Sam Germain
33b04b1992 deleted outdated todos 2022-02-07 02:47:18 -06:00
Sam Germain
8b57827676 exchange.get_max_pair_stake_amount hard set leverage to 0 2022-02-04 14:26:15 -06:00
Sam Germain
dc6cb445fd Merge branch 'feat/short' into max-amount 2022-02-04 04:42:38 -06:00
Sam Germain
a50f4d2c57 Exchange.createOrder added * as second param 2022-02-03 20:33:16 -06:00
Sam Germain
8c680d75b9 moved max_stake_amount check for None to exchange.get_max_pair_stake_amount 2022-02-03 20:33:16 -06:00
Sam Germain
55d91f018f exchange._get_stake_amount_limit (merged min_pair_stake_amount and get_max_tradeable amount) 2022-02-03 20:33:04 -06:00
Sam Germain
ff5fffefb4 exchange.get_max_amount_tradable looks at cost also 2022-02-03 20:33:03 -06:00
Sam Germain
6e8420914e removed unnecessary CCXT checks in exchange.get_min_pair_stake_amount 2022-02-03 20:33:03 -06:00
Sam Germain
64ad810445 Revert "moved get_max_leverage to get_min_pair_stake_amount"
This reverts commit 90e48d5b98bcfb1452aa818a3274745eac395712.
2022-02-03 20:33:03 -06:00
Sam Germain
73319a74d3 moved get_max_leverage to get_min_pair_stake_amount 2022-02-03 20:33:03 -06:00
Sam Germain
f3b42b0ef3 wrote exchange.get_max_amount_tradable 2022-02-03 20:33:03 -06:00
Sam Germain
f58b92bb86 exchange.create_order removed default for leverage 2022-02-03 17:48:08 -06:00
Sam Germain
179947fa72
New config (#6333)
* updated new-config to add trading_mode and margin_mode

* added trading_mode and margin_mode to config examples

* added okex config example

* new file:   config_examples/config_binance_futures.example.json

* removed trading_mode and margin_mode from base_config and binance and okex example

* deleted okex and futures config files

* updated full config file

* updated new-config command to add trading_mode and margin_mode to config

* new file:   config_examples/config_okex_futures.example.json

* removed config_okex_futures.example.json

* added trading_mode to test_start_new_config

* new-config asks exchange before asking futures

* Simplify trading_mode selection

* margin_mode is empty string for spot new configs

* build_config_commands sorted exchanges

* isort

Co-authored-by: Matthias <xmatthias@outlook.com>
2022-02-02 14:46:44 +01:00
Sam Germain
a741356d65 okex._lev_prep, removing rounding from default set_leverage 2022-02-02 00:28:57 -06:00
Sam Germain
8e51360f75 exchange._set_leverage rounds leverage 2022-02-02 00:09:58 -06:00
Sam Germain
8a64f6a27f exchange.set_margin_mode param swap 2022-02-02 00:09:53 -06:00
Sam Germain
386be2d889 set reduceOnly for futures exit orders 2022-02-02 00:08:50 -06:00
Sam Germain
b3477c4802 _api.fetch_funding_history argument pair->symbol 2022-02-02 00:08:50 -06:00
Sam Germain
30519aa3be Changed name Collateral -> MarginMode, collateral -> margin_mode, and _supported_trading_mode_margin_pairs -> _supported_trading_margin_pairs 2022-02-01 13:05:40 -06:00
Matthias
7dd50f78cf Small finetuning improving a comment 2022-02-01 06:37:13 +01:00
Sam Germain
fc15e14707 Merge branch 'feat/short' into isolated-liq 2022-01-31 14:22:01 -06:00
Sam Germain
ed320bb2ac exchange.get_liquidation_price check length of positions 2022-01-31 14:01:06 -06:00
Sam Germain
9de63412c1 exchange.get_liquidation_price arguments are not optional 2022-01-31 14:00:52 -06:00
Sam Germain
8190b0d83b binance.get_max_leverage adjustment 2022-01-31 12:49:18 -06:00
Sam Germain
a368f8b322 exchange.get_max_leverage changed variable names, made more effecient 2022-01-31 12:21:12 -06:00
Sam Germain
08e4a4a6dd binance.get_max_leverage_fix 2022-01-31 12:21:12 -06:00
Sam Germain
43db4c34d1 added okex back to unsupported exchanges 2022-01-31 12:18:30 -06:00
Sam Germain
2c1497b348 contracts_to_amount no longer in amount_to_precision 2022-01-31 12:18:30 -06:00
Sam Germain
b8f4cebce7 exchange.liquidation_price methods combined, dry_run check on exchange for liquidation price 2022-01-31 12:18:25 -06:00
Sam Germain
143c37d36f cleaned up liquidation price methods 2022-01-31 12:17:07 -06:00
Sam Germain
ede9012fcc removed TODO-levs about okex liquidation price 2022-01-31 12:17:07 -06:00
Sam Germain
d133a7c789 added isolated, futures to okex trading_mode_collateral_pairs 2022-01-31 12:17:07 -06:00
Sam Germain
88ce66650c Okex and Gateio liquidation_price formula are the same, moved liquidation_price to exchange.exchange class 2022-01-31 12:17:07 -06:00
Sam Germain
7f4894d68e okex.liquidation_price formula update 2022-01-31 12:17:07 -06:00
Sam Germain
fe037aa971 exchange.liquidation_price combined position and position_assets 2022-01-31 12:17:07 -06:00
Sam Germain
0b5c2e97b3 exchange._get_maintenance_ratio_and_amount 2022-01-31 12:17:07 -06:00
Sam Germain
0c13e387fe moved liquidation_price method to exchange classes 2022-01-31 12:16:43 -06:00
Sam Germain
5a97760bd1 binance.get_max_leverage divide by 0 warning 2022-01-31 12:16:43 -06:00
Sam Germain
1f8111d1c6 exchange.get_max_leverage pair is required 2022-01-31 12:16:43 -06:00
Sam Germain
caff7e227f binance.fill_leverage_brackets remove excess bracket 2022-01-31 12:16:43 -06:00
Sam Germain
1f1ac8ce9d test_get_liquidation_price/test_get_maintenance_ratio_and_amt_binance/fill_leverage_brackets/test_validate_trading_mode_and_collateral TODO comments 2022-01-31 12:16:43 -06:00
Sam Germain
c2f9201512 Added get_liquidation_price check 2022-01-31 12:16:43 -06:00
Sam Germain
bb2b2211d0 exchange.fill_leverage_brackets/get_maintenance_ratio_and_amt docstring and type specification 2022-01-31 12:16:43 -06:00
Sam Germain
b4a0611afc exchange.get_liquidation_price removed irrelevant comment 2022-01-31 12:16:43 -06:00
Sam Germain
0c8205ab3b replace single quote docstrings with double quote docstrings 2022-01-31 12:16:43 -06:00
Sam Germain
2d545a2def fixed breaking tests for liquidation price 2022-01-31 12:15:54 -06:00
Sam Germain
1eee5373b9 gateio.get_maintenance_ratio_and_amt 2022-01-31 12:15:54 -06:00
Sam Germain
bff53c52af rewrite fill_leverage_brackets 2022-01-31 12:15:54 -06:00
Sam Germain
69a6223ca0 implemented binance.get_maintenance_ratio_and_amt 2022-01-31 12:15:54 -06:00
Sam Germain
ba5fc21d84 added isolated futures to supported modes for binance,gateio 2022-01-31 12:15:54 -06:00
Sam Germain
e0df7ee72a Changed variable names in binance.get_max_leverage 2022-01-31 12:15:54 -06:00
Sam Germain
ba02605d77 Isolated liq branch passes all tests and has the general structure that it is supposed to, but is patchy, and doesnt get the correct maintenance amt and maintenance margin rate yet 2022-01-31 12:15:54 -06:00
Sam Germain
eee7271ab8 Added live isolated-liq get 2022-01-31 12:15:54 -06:00
Sam Germain
29c5dfd4ca Removed unnecessary CCXT market checks 2022-01-31 02:40:10 -06:00
Matthias
463714832d Merge branch 'develop' into feat/short 2022-01-29 14:19:30 +01:00
Matthias
fdea4fcb1b Remove some todo's 2022-01-28 15:52:12 +01:00
Matthias
138e867a68 Filter tickers on stake-currency for kraken 2022-01-28 07:20:47 +01:00
Matthias
108018b30b
Merge pull request #6231 from freqtrade/funding_rate_backtest
Funding rate backtest
2022-01-27 17:01:28 +01:00
Matthias
f7be93aaa6 leverage limits can be None, so we need to check for that 2022-01-25 06:30:03 +01:00
Matthias
ad28543d4d Update kraken calculation 2022-01-22 19:46:11 +01:00
Matthias
a0c0c4dcbe Update funding_fee formula to correctly calculate fees for long trades 2022-01-22 19:46:10 +01:00
Matthias
82c90c0049 Extract funding and mark mergin to separate method 2022-01-22 19:45:46 +01:00
Matthias
84c6d92d4c calculate_funding_fees is actually a public exchange interface (used in backtesting). 2022-01-22 19:45:46 +01:00
Matthias
c6c97efed3 Remove unused method _get_funding_fee 2022-01-22 19:44:20 +01:00
Matthias
ef3a1ea8f2 Split funding fee calculation from Download 2022-01-22 19:44:20 +01:00
Matthias
f090dcc597 Merge branch 'develop' into feat/short 2022-01-22 17:56:01 +01:00
Matthias
56daafd6b7 Use realistic date for dry-run orders 2022-01-22 16:31:59 +01:00
Matthias
6684bff963 Dry-run orders should have filled set correctly 2022-01-15 15:25:16 +01:00
Matthias
46809f08fe Merge branch 'develop' into feat/short 2022-01-07 10:13:16 +01:00
Matthias
b77943af0d
Merge pull request #6173 from freqtrade/volume_quote_workaround
Selectively convert quote to base volume in volumepairlist
2022-01-07 09:07:16 +01:00
Matthias
24ec78b11c Quote-volumelist fix for gateio 2022-01-06 19:07:47 +01:00
Matthias
326e3d1f8e Selectively convert quote to base volume in volumepairlist 2022-01-06 19:07:43 +01:00
Matthias
173524ea5b
Merge pull request #6170 from freqtrade/contract_workaround
contractSize is a string coming from ccxt
2022-01-06 16:25:19 +01:00
Carlo Revelli
7451b60501
increase okex candle limit 2022-01-06 05:31:23 -08:00
Matthias
431fcdd76f contractSize is a string comming from ccxt 2022-01-06 13:53:27 +01:00
Matthias
72b2d4ab5f Update FTX to support new standardized futures format 2022-01-06 11:16:26 +01:00
Matthias
33d95d245e Fix unbounderror
closes #6169
2022-01-06 08:48:30 +01:00
Sam Germain
b2a1124a26 Merge branch 'feat/short' of https://github.com/freqtrade/freqtrade into feat/short 2022-01-04 00:17:42 -06:00
Matthias
e57c2d64a5
Merge pull request #5888 from samgermain/contract-sizes
Convert contract size to underlying asset size
2022-01-03 21:55:19 +01:00
Matthias
d8cb61278f Simplify contract conversion code
by reusing "get_contract_size"
2022-01-03 18:12:45 +01:00
Sam Germain
707a6507b5 removed redundant todos 2022-01-02 21:46:06 -06:00
Matthias
7f88f9bf27 Revert unintended double-call of amount conversion 2022-01-02 13:11:29 +01:00
Sam Germain
33ab3c1bea Removed some todo-lev comments 2022-01-01 14:10:24 -06:00
Sam Germain
14ae327459 grouped contract methods 2022-01-01 14:08:10 -06:00
Sam Germain
3e4912979a exchange.py: removed get funding rate history 2022-01-01 14:03:26 -06:00
Sam Germain
fcded264e6 removed exchange._get_mark_price_history 2022-01-01 13:53:26 -06:00
Sam Germain
f92d47a16b exchange._contracts_to_amount and exchange._amount_to_contracts safe checks 2022-01-01 13:52:06 -06:00
Matthias
8da596f66d Implement PR feedback 2022-01-01 13:52:01 -06:00
Sam Germain
49a6ebb454 exchange class contract methods safe check for symbol 2022-01-01 13:50:50 -06:00
Sam Germain
78d1a267f0 contract-sizes tests 2022-01-01 13:50:50 -06:00
Sam Germain
d0a300a2e1 Added TODOs 2022-01-01 13:50:49 -06:00
Sam Germain
4f6203e45f Added conversions from contract size to amount for objects returned from api 2022-01-01 13:50:43 -06:00
Sam Germain
e10ceb2362 Amount to precision has _amount_to_contract_size in it 2022-01-01 13:49:09 -06:00
Sam Germain
ee63f12236 Revert "Removed leverage param from get_min_pair_stake_amount"
This reverts commit 096588550ca1de5e5edf63cf7214af037d7bc93b.
2022-01-01 13:49:09 -06:00
Sam Germain
2df5993812 _contract_size_to_amount only impacts limits.amount and not limits.cost, put _get_stake_amount_considering_leverage back in 2022-01-01 13:49:09 -06:00
Sam Germain
ef6ad0e6d7 Removed leverage param from get_min_pair_stake_amount 2022-01-01 13:49:09 -06:00
Sam Germain
3f75531105 added methods _contract_size_to_amount and _amount_to_contract_size, added _amount_to_contract_size to create_order, added contract_size_to_amount to get_min_leverage 2022-01-01 13:49:09 -06:00
Matthias
ddfbe55e7c Merge branch 'develop' into feat/short 2022-01-01 19:16:49 +01:00
Matthias
0277d93a64 don't use deprecated asyncio.get_event_loop() 2021-12-31 17:27:42 +01:00
Sam Germain
867483170a binance.funding_fee_cutoff removed TODO-lev 2021-12-31 06:11:43 -06:00
Matthias
39f8c5719b Fix exception on exchange shutdown 2021-12-31 11:24:56 +01:00
Matthias
77afb7b5e2
Merge pull request #6114 from cdimauro/reduce_kucoin_logs
Reduce kucoin logs
2021-12-29 17:33:21 +01:00
Matthias
2b94fbfa74 Avoid using singleton where not necessary 2021-12-29 17:05:53 +01:00
Wade Dyck
60dfadf446 Don't attempt to calculate funding fees when the initial timeframe hasn't been exceeded. 2021-12-27 16:51:47 -07:00
Matthias
05a488a7a0 Further reduce log verbosity for kucoin 429000 exception 2021-12-27 17:15:30 +01:00
Matthias
ef2b326262 Reduce retrier message repetition
by combining messages, we can provide the same information in fewer log messages
2021-12-27 16:47:34 +01:00
cdimauro
f77b8cbb7a Reduce KuCoin logs only for 429000 error
Only KuCoin messages for 429000 error code are logged once.

Logs functions are also simplified and optimized.

test_remove_logs_for_pairs_already_in_blacklist is simplified as well.
2021-12-26 21:09:25 +01:00
cdimauro
fbaf46901e Reduce more KuCoin logs on retrier decorator
More logs are reduced, for KuCoin, on the retrier_async decorator:

_async_get_candle_history() returned exception
retrying _async_get_candle_history() still for
Giving up retrying: _async_get_candle_history()
Applying DDosProtection backoff delay
2021-12-26 09:06:26 +01:00
cdimauro
96fbf63d0b Reduce KuCoin logs on DDosProtection error messages
KuCoin APIs generate A LOT of error messages.
Consequently, logs are flooded with lines like:
2021-12-25 22:30:23 freqtrade.exchange.common: WARNING -
_async_get_candle_history() returned exception:
"kucoin GET https://openapi-v2.kucoin.com/api/v1/market/candles?
symbol=PDEX-USDT&type=5min&startAt=1640317818&endAt=1640467818
429 Too Many Requests {"code":"429000","msg":"Too Many Requests"}"
2021-12-25 22:30:23 freqtrade.exchange.common: WARNING -
retrying _async_get_candle_history() still for 3 times
2021-12-25 22:30:23 freqtrade.exchange.common: WARNING -
Kucoin 429 error, avoid triggering DDosProtection backoff delay.
2 tries left before giving up
2021-12-25 22:30:24 freqtrade.exchange.common: WARNING -
_async_get_candle_history() returned exception:
"kucoin GET https://openapi-v2.kucoin.com/api/v1/market/candles?
symbol=UBX-USDT&type=5min&startAt=1640317821&endAt=1640467821
429 Too Many Requests {"code":"429000","msg":"Too Many Requests"}"

Messages like:
Kucoin 429 error, avoid triggering DDosProtection backoff delay.
are logged only once for a certain period of time (default is 3600 seconds).
2021-12-25 22:32:22 +01:00
Matthias
2917cc1f2e Bitpanda's "fetch_my_trades" requires "to" argument
closes #4938
2021-12-25 14:28:22 +01:00
Matthias
a557451eee Okex uses 4h mark candle timeframe 2021-12-19 16:47:44 +01:00
Matthias
ddce28c12d Update data downloading to include funding_fee downloads 2021-12-18 15:32:02 +01:00
Matthias
e729fad99c Add unknown_fee_rate parameter 2021-12-11 15:26:08 +01:00
Matthias
17bd990053 Update funding_fee freqtradebot test 2021-12-11 09:49:48 +01:00
Matthias
6948414e47 Remove no longer necessary method _get_mark_price_history 2021-12-10 19:54:49 +01:00
Matthias
a87d2d62bb Remove no longer needed method get_funding_rate_history 2021-12-10 19:52:02 +01:00
Matthias
aabca85a5f Update _calculate_funding_fees to reuse existing async infrastructure 2021-12-10 19:50:58 +01:00
Matthias
35f9549e98 Expose drop_incomplete from refresh_latest_ohlcv 2021-12-10 07:36:25 +01:00