Started added timezone offset stuff
This commit is contained in:
parent
795d51b68c
commit
057b048f31
@ -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, timezone, timedelta
|
||||
from datetime import datetime, time, timezone, timedelta, tzinfo
|
||||
from math import isclose
|
||||
from threading import Lock
|
||||
from typing import Any, Dict, List, Optional
|
||||
@ -116,10 +116,29 @@ class FreqtradeBot(LoggingMixin):
|
||||
self.update_funding_fees()
|
||||
self.wallets.update()
|
||||
|
||||
local_timezone = datetime.now(
|
||||
timezone.utc).astimezone().tzinfo
|
||||
minutes = self.time_zone_minutes(local_timezone)
|
||||
for time_slot in range(0, 24):
|
||||
t = str(time(time_slot))
|
||||
t = str(time(time_slot, minutes))
|
||||
schedule.every().day.at(t).do(update)
|
||||
|
||||
def time_zone_minutes(self, local_timezone):
|
||||
"""
|
||||
Returns the minute offset of a timezone
|
||||
:param local_timezone: The operating systems timezone
|
||||
"""
|
||||
local_time = datetime.now(local_timezone)
|
||||
offset = local_time.utcoffset().total_seconds()
|
||||
half_hour_tz = (offset * 2) % 2 != 0.0
|
||||
quart_hour_tz = (offset * 4) % 4 != 0.0
|
||||
if quart_hour_tz:
|
||||
return 45
|
||||
elif half_hour_tz:
|
||||
return 30
|
||||
else:
|
||||
return 0
|
||||
|
||||
def notify_status(self, msg: str) -> None:
|
||||
"""
|
||||
Public method for users of this class (worker, etc.) to send notifications
|
||||
|
@ -4,6 +4,7 @@
|
||||
import logging
|
||||
import time
|
||||
from copy import deepcopy
|
||||
# from datetime import tzinfo
|
||||
from math import isclose
|
||||
from unittest.mock import ANY, MagicMock, PropertyMock
|
||||
|
||||
@ -4302,3 +4303,28 @@ def test_update_funding_fees(mocker, default_conf, trading_mode, calls, time_mac
|
||||
schedule.run_pending()
|
||||
|
||||
assert freqtrade.update_funding_fees.call_count == calls
|
||||
|
||||
|
||||
@pytest.mark.parametrize('tz,minute_offset', [
|
||||
('IST', 30),
|
||||
('ACST', 30),
|
||||
('ACWST', 45),
|
||||
('ACST', 30),
|
||||
('ACDT', 30),
|
||||
('CCT', 30),
|
||||
('CHAST', 45),
|
||||
('NST', 30),
|
||||
('IST', 30),
|
||||
('AFT', 30),
|
||||
('IRST', 30),
|
||||
('IRDT', 30),
|
||||
('MMT', 30),
|
||||
('NPT', 45),
|
||||
('MART', 30),
|
||||
])
|
||||
def test_time_zone_minutes(mocker, default_conf, tz, minute_offset):
|
||||
patch_RPCManager(mocker)
|
||||
patch_exchange(mocker)
|
||||
freqtrade = get_patched_freqtradebot(mocker, default_conf)
|
||||
return freqtrade
|
||||
# freqtrade.time_zone_minutes(tzinfo('IST'))
|
||||
|
Loading…
Reference in New Issue
Block a user