Эта стратегия предназначена ТОЛЬКО для проверки, что индикатор swing_levels.py работает правильно. Она должна нарисовать две ступенчатые линии на графике.
Timeframe
5m
Direction
Long Only
Stoploss
-100.0%
Trailing Stop
No
ROI
0m: 10000.0%
Interface Version
3
Startup Candles
200
Indicators
0
freqtrade/freqtrade-strategies
author@: lenik
# user_data/strategies/SwingLevelsVisualization.py
from pandas import DataFrame
from freqtrade.strategy import IStrategy
# Импортируем наш новый индикатор. Это должно сработать, т.к. файлы лежат рядом.
from swing_levels import SwingLevels
class SwingLevelsVisualization(IStrategy):
"""
Эта стратегия предназначена ТОЛЬКО для проверки,
что индикатор swing_levels.py работает правильно.
Она должна нарисовать две ступенчатые линии на графике.
"""
INTERFACE_VERSION = 3
timeframe = '5m'
startup_candle_count = 200
# Отключаем торговлю
minimal_roi = {"0": 100}
stoploss = -1.0
# Явно указываем, что мы хотим нарисовать две колонки,
# которые будет создавать наш индикатор.
plot_config = {
'main_plot': {
'tp_long': {'color': 'blue', 'style': 'dash'},
'tp_short': {'color': 'red', 'style': 'dash'},
}
}
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
# 1. Создаем экземпляр нашего индикатора
# k=2 - это классический фрактал Вильямса (5 свечей)
swing = SwingLevels(k=2)
# 2. Вызываем метод расчета
tp_long_values, tp_short_values = swing.calculate_swing_levels(dataframe)
# 3. Добавляем полученные данные в dataframe, чтобы их можно было нарисовать
dataframe['tp_long'] = tp_long_values
dataframe['tp_short'] = tp_short_values
print("INFO: swing_levels.py - индикатор успешно отработал.")
return dataframe
# Пустые методы, чтобы стратегия была валидной
def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe['enter_long'] = 0
return dataframe
def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe['exit_long'] = 0
return dataframe