Attend PR comment.

This commit is contained in:
Pedro Povoleri
2023-01-08 11:06:17 +01:00
parent cb5a0f394e
commit f8e5ecc403
@@ -0,0 +1,57 @@
from freqtrade.strategy.interface import IStrategy
from pandas import DataFrame
import talib.abstract as ta
class VolatilitySystem(IStrategy):
INTERFACE_VERSION: int = 3
# ROI table:
minimal_roi = {"0": 0.15, "30": 0.1, "60": 0.05}
# minimal_roi = {"0": 1}
# Stoploss:
stoploss = -0.265
# Trailing stop:
trailing_stop = True
trailing_stop_positive = 0.05
trailing_stop_positive_offset = 0.1
trailing_only_offset_is_reached = False
timeframe = "5m"
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
# Calculate ATR
dataframe['atr'] = ta.ATR(dataframe, timeperiod=14) * 2.0
dataframe['close_change'] = dataframe['close'].pct_change()
return dataframe
def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
# Add long entry signals
dataframe.loc[
(dataframe['close_change'] > dataframe['atr']) &
(dataframe['close'].shift(1) <= dataframe['atr'].shift(1)),
'enter_long'] = 1
# Add short entry signals
dataframe.loc[
(dataframe['close_change'] < -dataframe['atr']) &
(dataframe['close'].shift(1) >= -dataframe['atr'].shift(1)),
'enter_short'] = 1
return dataframe
def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
# Add long exit signals
dataframe.loc[
(dataframe['close_change'] < dataframe['atr']) &
(dataframe['close'].shift(1) >= dataframe['atr'].shift(1)),
'exit_long'] = 1
# Add short exit signals
dataframe.loc[
(dataframe['close_change'] > -dataframe['atr']) &
(dataframe['close'].shift(1) <= -dataframe['atr'].shift(1)),
'exit_short'] = 1
return dataframe