Merge pull request #6397 from samgermain/todos

edited todo-lev comments
This commit is contained in:
Matthias 2022-02-16 13:36:17 +01:00 committed by GitHub
commit de26844578
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 9 additions and 9 deletions

View File

@ -85,7 +85,7 @@ def start_download_data(args: Dict[str, Any]) -> None:
new_pairs_days=config['new_pairs_days'], new_pairs_days=config['new_pairs_days'],
erase=bool(config.get('erase')), data_format=config['dataformat_ohlcv'], erase=bool(config.get('erase')), data_format=config['dataformat_ohlcv'],
trading_mode=config.get('trading_mode', 'spot'), trading_mode=config.get('trading_mode', 'spot'),
) )
except KeyboardInterrupt: except KeyboardInterrupt:
sys.exit("SIGINT received, aborting ...") sys.exit("SIGINT received, aborting ...")

View File

@ -8,8 +8,10 @@ class CandleType(str, Enum):
MARK = "mark" MARK = "mark"
INDEX = "index" INDEX = "index"
PREMIUMINDEX = "premiumIndex" PREMIUMINDEX = "premiumIndex"
# TODO-lev: not sure this belongs here, as the datatype is really different
# TODO: Could take up less memory if these weren't a CandleType
FUNDING_RATE = "funding_rate" FUNDING_RATE = "funding_rate"
# BORROW_RATE = "borrow_rate" # * unimplemented
@staticmethod @staticmethod
def from_string(value: str) -> 'CandleType': def from_string(value: str) -> 'CandleType':

View File

@ -1528,7 +1528,6 @@ class Exchange:
:return: Dict of [{(pair, timeframe): Dataframe}] :return: Dict of [{(pair, timeframe): Dataframe}]
""" """
logger.debug("Refreshing candle (OHLCV) data for %d pairs", len(pair_list)) logger.debug("Refreshing candle (OHLCV) data for %d pairs", len(pair_list))
# TODO-lev: maybe depend this on candle type?
drop_incomplete = self._ohlcv_partial_candle if drop_incomplete is None else drop_incomplete drop_incomplete = self._ohlcv_partial_candle if drop_incomplete is None else drop_incomplete
input_coroutines = [] input_coroutines = []
cached_pairs = [] cached_pairs = []

View File

@ -1740,7 +1740,7 @@ class FreqtradeBot(LoggingMixin):
trade.update_fee(fee_cost, fee_currency, fee_rate, order.get('side', '')) trade.update_fee(fee_cost, fee_currency, fee_rate, order.get('side', ''))
if not isclose(amount, order_amount, abs_tol=constants.MATH_CLOSE_PREC): if not isclose(amount, order_amount, abs_tol=constants.MATH_CLOSE_PREC):
# TODO-lev: leverage? # * Leverage could be a cause for this warning, leverage hasn't been thoroughly tested
logger.warning(f"Amount {amount} does not match amount {trade.amount}") logger.warning(f"Amount {amount} does not match amount {trade.amount}")
raise DependencyException("Half bought? Amounts don't match") raise DependencyException("Half bought? Amounts don't match")

View File

@ -538,7 +538,6 @@ class Backtesting:
sell_candle_time: datetime = sell_row[DATE_IDX].to_pydatetime() sell_candle_time: datetime = sell_row[DATE_IDX].to_pydatetime()
if self.trading_mode == TradingMode.FUTURES: if self.trading_mode == TradingMode.FUTURES:
# TODO-lev: liquidation price?
trade.funding_fees = self.exchange.calculate_funding_fees( trade.funding_fees = self.exchange.calculate_funding_fees(
self.futures_data[trade.pair], self.futures_data[trade.pair],
amount=trade.amount, amount=trade.amount,

View File

@ -15,7 +15,7 @@ import talib.abstract as ta
import freqtrade.vendor.qtpylib.indicators as qtpylib import freqtrade.vendor.qtpylib.indicators as qtpylib
# TODO-lev: Create a meaningfull short strategy (not just revresed signs). # TODO: Create a meaningfull short strategy (not just revresed signs).
# This class is a sample. Feel free to customize it. # This class is a sample. Feel free to customize it.
class SampleShortStrategy(IStrategy): class SampleShortStrategy(IStrategy):
""" """

View File

@ -558,7 +558,7 @@ tc35 = BTContainer(data=[
stop_loss=-0.01, roi={"0": 0.10}, profit_perc=-0.01, stop_loss=-0.01, roi={"0": 0.10}, profit_perc=-0.01,
custom_entry_price=7200, trades=[ custom_entry_price=7200, trades=[
BTrade(sell_reason=SellType.STOP_LOSS, open_tick=1, close_tick=1) BTrade(sell_reason=SellType.STOP_LOSS, open_tick=1, close_tick=1)
] ]
) )
# Test 36: Custom-entry-price around candle low # Test 36: Custom-entry-price around candle low
@ -697,7 +697,7 @@ def test_backtest_results(default_conf, fee, mocker, caplog, data) -> None:
backtesting._set_strategy(backtesting.strategylist[0]) backtesting._set_strategy(backtesting.strategylist[0])
backtesting.required_startup = 0 backtesting.required_startup = 0
if data.leverage > 1.0: if data.leverage > 1.0:
# TODO-lev: Should we initialize this properly?? # TODO: Should we initialize this properly??
backtesting._can_short = True backtesting._can_short = True
backtesting.strategy.advise_entry = lambda a, m: frame backtesting.strategy.advise_entry = lambda a, m: frame
backtesting.strategy.advise_exit = lambda a, m: frame backtesting.strategy.advise_exit = lambda a, m: frame

View File

@ -71,7 +71,7 @@ class StrategyTestV3(IStrategy):
protection_enabled = BooleanParameter(default=True) protection_enabled = BooleanParameter(default=True)
protection_cooldown_lookback = IntParameter([0, 50], default=30) protection_cooldown_lookback = IntParameter([0, 50], default=30)
# TODO-lev: Can this work with protection tests? (replace HyperoptableStrategy implicitly ... ) # TODO: Can this work with protection tests? (replace HyperoptableStrategy implicitly ... )
# @property # @property
# def protections(self): # def protections(self):
# prot = [] # prot = []