Эта стратегия сравнивает ДВА подхода к поиску уровней: 1. Старый (Фракталы) - swing_... 2. Новый (Скользящие Экстремумы) - rolling_...
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/CompareLevelsVisualization.py
from pandas import DataFrame
from freqtrade.strategy import IStrategy
# Импортируем ОБА наших индикатора
from swing_levels import SwingLevels
from rolling_extremes import RollingExtremes
class CompareLevelsVisualization(IStrategy):
"""
Эта стратегия сравнивает ДВА подхода к поиску уровней:
1. Старый (Фракталы) - swing_...
2. Новый (Скользящие Экстремумы) - rolling_...
"""
INTERFACE_VERSION = 3
timeframe = '5m'
startup_candle_count = 200
minimal_roi = {"0": 100}
stoploss = -1.0
plot_config = {
'main_plot': {
# --- Старый индикатор (Фракталы) ---
'swing_high': {'color': 'gray', 'style': 'dot'},
'swing_low': {'color': 'gray', 'style': 'dot'},
# --- НОВЫЙ ИНДИКАТОР (Скользящие Экстремумы) ---
'rolling_high': {'color': 'blue', 'width': 2},
'rolling_low': {'color': 'red', 'width': 2},
}
}
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
# --- Вызываем старый индикатор ---
swing = SwingLevels(k=2)
swing_high_values, swing_low_values = swing.calculate_swing_levels(dataframe)
dataframe['swing_high'] = swing_high_values
dataframe['swing_low'] = swing_low_values
# --- Вызываем НОВЫЙ индикатор ---
# Попробуем с окном в 10 свечей. Этот параметр можно будет менять.
rolling = RollingExtremes(window=10)
rolling_high_values, rolling_low_values = rolling.calculate_rolling_extremes(dataframe)
dataframe['rolling_high'] = rolling_high_values
dataframe['rolling_low'] = rolling_low_values
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