The Strategy004 class is a trading strategy that performs backtesting. It involves the following steps:
populate_indicators: This method adds several technical analysis (TA) indicators to the given DataFrame. The indicators used in this strategy include ADX (Average Directional Index), Bollinger Bands, CCI (Commodity Channel Index), MACD (Moving Average Convergence Divergence), MFI (Money Flow Index), MINUS_DI (Minus Directional Indicator), RSI (Relative Strength Index), SAR (Stop and Reverse), STOCHF (Stochastic Oscillator Fast), and EMA (Exponential Moving Average).
populate_buy_trend: This method populates the buy signal based on the TA indicators and predefined conditions.
The buy signal is triggered when specific conditions are met, such as ADX values exceeding a threshold, CCI values below a threshold, previous fastk and fastd values being below a threshold, previous slowfastk and slowfastd values being below a threshold, fastk being greater than fastd, and mean volume exceeding a threshold.
populate_sell_trend: This method populates the sell signal based on the TA indicators and predefined conditions. The sell signal is triggered when specific conditions are met, such as slowadx values falling below a threshold, fastk or fastd values exceeding a threshold, previous fastk being below previous fastd, and the closing price being higher than the EMA5 (5-period Exponential Moving Average). The strategy uses technical indicators to identify potential buy and sell signals in the market, allowing for the evaluation of its effectiveness through backtesting.
Traceback (most recent call last):
File "/home/ftuser/.local/lib/python3.11/site-packages/pandas/core/indexes/base.py", line 3791, in get_loc
return self._engine.get_loc(casted_key)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "index.pyx", line 152, in pandas._libs.index.IndexEngine.get_loc
File "index.pyx", line 181, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/hashtable_class_helper.pxi", line 7080, in pandas._libs.hashtable.PyObjectHashTable.get_item
File "pandas/_libs/hashtable_class_helper.pxi", line 7088, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 'mean-volume'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/freqtrade/freqtrade/main.py", line 42, in main
return_code = args['func'](args)
^^^^^^^^^^^^^^^^^^
File "/freqtrade/freqtrade/commands/optimize_commands.py", line 58, in start_backtesting
backtesting.start()
File "/freqtrade/freqtrade/optimize/backtesting.py", line 1401, in start
min_date, max_date = self.backtest_one_strategy(strat, data, timerange)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/freqtrade/freqtrade/optimize/backtesting.py", line 1335, in backtest_one_strategy
results = self.backtest(
^^^^^^^^^^^^^^
File "/freqtrade/freqtrade/optimize/backtesting.py", line 1213, in backtest
data: Dict = self._get_ohlcv_as_lists(processed)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/freqtrade/freqtrade/optimize/backtesting.py", line 381, in _get_ohlcv_as_lists
df_analyzed = self.strategy.ft_advise_signals(pair_data, {'pair': pair})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/freqtrade/freqtrade/strategy/interface.py", line 1391, in ft_advise_signals
dataframe = self.advise_entry(dataframe, metadata)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/freqtrade/freqtrade/strategy/interface.py", line 1425, in advise_entry
df = self.populate_entry_trend(dataframe, metadata)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/freqtrade/freqtrade/strategy/interface.py", line 225, in populate_entry_trend
return self.populate_buy_trend(dataframe, metadata)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/freqtrade/user_data/strategies/Strategy004_395.py", line 174, in populate_buy_trend
conditions.append((dataframe['mean-volume'] > self.buy_mean_volume.value))
~~~~~~~~~^^^^^^^^^^^^^^^
File "/home/ftuser/.local/lib/python3.11/site-packages/pandas/core/frame.py", line 3893, in __getitem__
indexer = self.columns.get_loc(key)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ftuser/.local/lib/python3.11/site-packages/pandas/core/indexes/base.py", line 3798, in get_loc
raise KeyError(key) from err
KeyError: 'mean-volume'