Timeframe
5m
Direction
Long Only
Stoploss
-5.0%
Trailing Stop
No
ROI
0m: 1.0%
Interface Version
N/A
Startup Candles
N/A
Indicators
0
freqtrade/freqtrade-strategies
author@: lenik
from freqtrade.strategy.interface import IStrategy
from pandas import DataFrame
from freqtrade.strategy import (BooleanParameter, CategoricalParameter, stoploss_from_open, DecimalParameter,
IntParameter, IStrategy, informative, merge_informative_pair)
class TwoMovingAveragesStrategy(IStrategy):
# Define strategy parameters
minimal_roi = {"0": 0.01}
stoploss = -0.05
timeframe = "5m"
fastma = IntParameter(11, 15, default=10, space="buy")
slowma = IntParameter(45, 55, default=50, space="buy")
# # Buy hyperspace params:
# buy_params = {
# "adx_long": 39,
# "adx_short": 20,
# "close_market_shift_long": 6,
# "close_market_shift_short": 9,
# "entryMA_tp": 8,
# "fastMA_tp": 16,
# "marketMA_tp": 97,
# "rsi_tp": 10,
# "slowMA_tp": 57,
# "leverage_num": 2, # value loaded from strategy
# }
# # Sell hyperspace params:
# sell_params = {
# "last_lowest_rolling_long": 9,
# "last_lowest_rolling_short": 9,
# }
protection_params = {
"max_allowed_drawdown": 0.45,
"max_drawdown_lookback": 102,
"max_drawdown_stop_duration": 53,
"max_drawdown_trade_limit": 14,
"stoploss_guard_lookback": 157,
"stoploss_guard_stop_duration": 191,
"stoploss_guard_trade_limit": 18,
}
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe["ma_fast"] = dataframe["close"].rolling(window=self.fastma.value).mean()
dataframe["ma_slow"] = dataframe["close"].rolling(window=self.slowma.value).mean()
return dataframe
def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe.loc[
(dataframe["ma_fast"] > dataframe["ma_slow"])
& (dataframe["ma_fast"].shift(1) <= dataframe["ma_slow"].shift(1)),
"enter_long",
] = 1
return dataframe
def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe.loc[
(dataframe["ma_fast"] < dataframe["ma_slow"])
& (dataframe["ma_fast"].shift(1) >= dataframe["ma_slow"].shift(1)),
"enter_short",
] = 1
return dataframe