Updated exchange._get_funding_fee_dates to use new method funding_fee_cutoff
This commit is contained in:
parent
77d247e179
commit
edfc3377c5
@ -1,6 +1,7 @@
|
|||||||
""" Binance exchange subclass """
|
""" Binance exchange subclass """
|
||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
|
from datetime import datetime
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Dict, List, Optional, Tuple
|
from typing import Dict, List, Optional, Tuple
|
||||||
|
|
||||||
@ -227,3 +228,11 @@ class Binance(Exchange):
|
|||||||
f"{arrow.get(since_ms // 1000).isoformat()}.")
|
f"{arrow.get(since_ms // 1000).isoformat()}.")
|
||||||
return await super()._async_get_historic_ohlcv(
|
return await super()._async_get_historic_ohlcv(
|
||||||
pair=pair, timeframe=timeframe, since_ms=since_ms, is_new_pair=is_new_pair)
|
pair=pair, timeframe=timeframe, since_ms=since_ms, is_new_pair=is_new_pair)
|
||||||
|
|
||||||
|
def funding_fee_cutoff(self, d: datetime):
|
||||||
|
'''
|
||||||
|
# TODO-lev: Double check that gateio, ftx, and kraken don't also have this
|
||||||
|
:param d: The open date for a trade
|
||||||
|
:return: The cutoff open time for when a funding fee is charged
|
||||||
|
'''
|
||||||
|
return d.minute > 0 or (d.minute == 0 and d.second > 15)
|
||||||
|
@ -1702,17 +1702,24 @@ class Exchange:
|
|||||||
except ccxt.BaseError as e:
|
except ccxt.BaseError as e:
|
||||||
raise OperationalException(e) from e
|
raise OperationalException(e) from e
|
||||||
|
|
||||||
def _get_funding_fee_dates(self, d1, d2):
|
def funding_fee_cutoff(self, d: datetime):
|
||||||
d1_hours = d1.hour + 1 if d1.minute > 0 or (d1.minute == 0 and d1.second > 15) else d1.hour
|
'''
|
||||||
|
:param d: The open date for a trade
|
||||||
|
:return: The cutoff open time for when a funding fee is charged
|
||||||
|
'''
|
||||||
|
return d.minute > 0 or d.second > 0
|
||||||
|
|
||||||
|
def _get_funding_fee_dates(self, d1: datetime, d2: datetime):
|
||||||
|
d1_hours = d1.hour + 1 if self.funding_fee_cutoff(d1) else d1.hour
|
||||||
d1 = datetime(d1.year, d1.month, d1.day, d1_hours)
|
d1 = datetime(d1.year, d1.month, d1.day, d1_hours)
|
||||||
d2 = datetime(d2.year, d2.month, d2.day, d2.hour)
|
d2 = datetime(d2.year, d2.month, d2.day, d2.hour)
|
||||||
|
|
||||||
results = []
|
results = []
|
||||||
d3 = d1
|
d3 = d1
|
||||||
while d3 < d2:
|
while d3 <= d2:
|
||||||
d3 += timedelta(hours=1)
|
|
||||||
if d3.hour in self.funding_fee_times:
|
if d3.hour in self.funding_fee_times:
|
||||||
results.append(d3)
|
results.append(d3)
|
||||||
|
d3 += timedelta(hours=1)
|
||||||
|
|
||||||
return results
|
return results
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user