mirror of
https://github.com/freqtrade/freqtrade.git
synced 2024-11-10 10:21:59 +00:00
Switched scheduler to get funding fees every hour for any exchange
This commit is contained in:
parent
39be675f1f
commit
795d51b68c
|
@ -4,7 +4,7 @@ Freqtrade is the main module of this bot. It contains the class Freqtrade()
|
|||
import copy
|
||||
import logging
|
||||
import traceback
|
||||
from datetime import datetime, time, timedelta, timezone
|
||||
from datetime import datetime, time, timezone, timedelta
|
||||
from math import isclose
|
||||
from threading import Lock
|
||||
from typing import Any, Dict, List, Optional
|
||||
|
@ -116,21 +116,10 @@ class FreqtradeBot(LoggingMixin):
|
|||
self.update_funding_fees()
|
||||
self.wallets.update()
|
||||
|
||||
for time_slot in self.exchange.funding_fee_times:
|
||||
t = str(time(self.utc_hour_to_local(time_slot)))
|
||||
for time_slot in range(0, 24):
|
||||
t = str(time(time_slot))
|
||||
schedule.every().day.at(t).do(update)
|
||||
|
||||
def utc_hour_to_local(self, hour):
|
||||
local_timezone = datetime.now(
|
||||
timezone.utc).astimezone().tzinfo
|
||||
local_time = datetime.now(local_timezone)
|
||||
offset = local_time.utcoffset().total_seconds()
|
||||
td = timedelta(seconds=offset)
|
||||
t = datetime.strptime(f'26 Sep 2021 {hour}:00:00', '%d %b %Y %H:%M:%S')
|
||||
utc = t + td
|
||||
print(hour, utc)
|
||||
return int(utc.strftime("%H").lstrip("0") or 0)
|
||||
|
||||
def notify_status(self, msg: str) -> None:
|
||||
"""
|
||||
Public method for users of this class (worker, etc.) to send notifications
|
||||
|
|
|
@ -4281,26 +4281,21 @@ def test_get_valid_price(mocker, default_conf_usdt) -> None:
|
|||
assert valid_price_at_min_alwd < proposed_price
|
||||
|
||||
|
||||
@pytest.mark.parametrize('exchange,trading_mode,calls,t1,t2', [
|
||||
("ftx", TradingMode.SPOT, 0, "2021-09-01 00:00:00", "2021-09-01 08:00:00"),
|
||||
("ftx", TradingMode.MARGIN, 0, "2021-09-01 00:00:00", "2021-09-01 08:00:00"),
|
||||
("binance", TradingMode.FUTURES, 1, "2021-09-01 00:00:01", "2021-09-01 08:00:00"),
|
||||
("kraken", TradingMode.FUTURES, 2, "2021-09-01 00:00:01", "2021-09-01 08:00:00"),
|
||||
("ftx", TradingMode.FUTURES, 8, "2021-09-01 00:00:01", "2021-09-01 08:00:00"),
|
||||
("binance", TradingMode.FUTURES, 2, "2021-08-31 23:59:59", "2021-09-01 08:00:01"),
|
||||
("kraken", TradingMode.FUTURES, 3, "2021-08-31 23:59:59", "2021-09-01 08:00:01"),
|
||||
("ftx", TradingMode.FUTURES, 9, "2021-08-31 23:59:59", "2021-09-01 08:00:01"),
|
||||
@pytest.mark.parametrize('trading_mode,calls,t1,t2', [
|
||||
(TradingMode.SPOT, 0, "2021-09-01 00:00:00", "2021-09-01 08:00:00"),
|
||||
(TradingMode.MARGIN, 0, "2021-09-01 00:00:00", "2021-09-01 08:00:00"),
|
||||
(TradingMode.FUTURES, 8, "2021-09-01 00:00:01", "2021-09-01 08:00:00"),
|
||||
(TradingMode.FUTURES, 9, "2021-08-31 23:59:59", "2021-09-01 08:00:01"),
|
||||
])
|
||||
def test_update_funding_fees(mocker, default_conf, exchange, trading_mode, calls, time_machine,
|
||||
def test_update_funding_fees(mocker, default_conf, trading_mode, calls, time_machine,
|
||||
t1, t2):
|
||||
time_machine.move_to(f"{t1} +00:00")
|
||||
|
||||
patch_RPCManager(mocker)
|
||||
patch_exchange(mocker, id=exchange)
|
||||
patch_exchange(mocker)
|
||||
mocker.patch('freqtrade.freqtradebot.FreqtradeBot.update_funding_fees', return_value=True)
|
||||
default_conf['trading_mode'] = trading_mode
|
||||
default_conf['collateral'] = 'isolated'
|
||||
default_conf['exchange']['name'] = exchange
|
||||
freqtrade = get_patched_freqtradebot(mocker, default_conf)
|
||||
|
||||
time_machine.move_to(f"{t2} +00:00")
|
||||
|
|
Loading…
Reference in New Issue
Block a user