Timeframe
1h
Direction
Long Only
Stoploss
-10.0%
Trailing Stop
No
ROI
0m: 10.0%
Interface Version
N/A
Startup Candles
210
Indicators
1
# Importar librerías de Freqtrade
from freqtrade.strategy.interface import IStrategy
from pandas import DataFrame
import talib.abstract as ta
class PriceAction4Candles(IStrategy):
# Parámetros básicos
minimal_roi = {"0": 0.1} # Ajusta según quieras
stoploss = -0.1 # Ajusta según riesgo
timeframe = '1h' # Temporalidad recomendada: 1h, 4h o 1d
startup_candle_count = 210 # SMA200 + 10 para lookback
# Parámetros configurables
ema_long_period = 200
ema_short_period = 100
lookback_candles = 4
only_long = True
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe['ema_short'] = ta.EMA(dataframe, timeperiod=self.ema_short_period)
dataframe['ema_long'] = ta.EMA(dataframe, timeperiod=self.ema_long_period)
return dataframe
def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe['long_condition'] = (
(dataframe['ema_short'] > dataframe['ema_long']) | (not self.only_long)
) & (
dataframe['close'] > dataframe['high'].shift(1).rolling(self.lookback_candles).max()
)
dataframe.loc[dataframe['long_condition'], 'buy'] = 1
return dataframe
def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
# Salida cuando cierra por debajo del mínimo de las últimas 4 velas
dataframe['sell_condition'] = (
dataframe['close'] < dataframe['low'].shift(1).rolling(self.lookback_candles).min()
)
dataframe.loc[dataframe['sell_condition'], 'sell'] = 1
return dataframe