Timeframe
5m
Direction
Long Only
Stoploss
-10.0%
Trailing Stop
No
ROI
N/A
Interface Version
N/A
Startup Candles
N/A
Indicators
2
freqtrade/freqtrade-strategies
# -------------------------------
from freqtrade.strategy import IStrategy
from pandas import DataFrame
# --------------------------------
import talib.abstract as ta
class BasicMACDSTOCH(IStrategy):
timeframe = '5m'
stoploss = -0.10
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
# MACD settings
macd = ta.MACD(dataframe, fastperiod=12, slowperiod=26, signalperiod=9)
dataframe['macd'] = macd['macd']
dataframe['macdsignal'] = macd['macdsignal']
dataframe['macdhist'] = macd['macdhist']
# Stochastic settings
stoch = ta.STOCH(dataframe, fastk_period=5, slowk_period=3, slowk_matype=0, slowd_period=3,
slowd_matype=0)
dataframe['slowk'] = stoch['slowk']
dataframe['slowd'] = stoch['slowd']
return dataframe
def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
# TODO: Improve logic on this strategy so it enters only on crossovers and also add macd part of strat
dataframe.loc[
(
(dataframe['slowk'] < 20) &
(dataframe['slowd'] < 20) &
(dataframe['slowk'].shift(1) < dataframe['slowd'].shift(1)) &
(dataframe['slowk'] > dataframe['slowd']) &
(dataframe['macdhist'] > 0)
# (dataframe['macd'] > dataframe['macdsignal']),
),
'enter_long'] = 1
return dataframe
def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
# TODO: Improve logic on this strategy so it exits only on crossovers and also add macd part of strat
dataframe.loc[
(
(dataframe['slowk'] > 80) &
(dataframe['slowd'] > 80) &
(dataframe['slowk'] < dataframe['slowd']) &
(dataframe['slowk'].shift(1) > dataframe['slowd'].shift(1))
),
'exit_long'] = 1
return dataframe