Update sample strategy with hyperoptable Parameters
This commit is contained in:
parent
093d6ce8af
commit
771fc05749
@ -1,4 +1,5 @@
|
|||||||
# pragma pylint: disable=missing-docstring, invalid-name, pointless-string-statement
|
# pragma pylint: disable=missing-docstring, invalid-name, pointless-string-statement
|
||||||
|
# flake8: noqa: F401
|
||||||
|
|
||||||
# --- Do not remove these libs ---
|
# --- Do not remove these libs ---
|
||||||
import numpy as np # noqa
|
import numpy as np # noqa
|
||||||
@ -6,6 +7,7 @@ import pandas as pd # noqa
|
|||||||
from pandas import DataFrame
|
from pandas import DataFrame
|
||||||
|
|
||||||
from freqtrade.strategy import IStrategy
|
from freqtrade.strategy import IStrategy
|
||||||
|
from freqtrade.strategy import CategoricalParameter, DecimalParameter, IntParameter
|
||||||
|
|
||||||
# --------------------------------
|
# --------------------------------
|
||||||
# Add your lib to import here
|
# Add your lib to import here
|
||||||
@ -16,7 +18,7 @@ import freqtrade.vendor.qtpylib.indicators as qtpylib
|
|||||||
class {{ strategy }}(IStrategy):
|
class {{ strategy }}(IStrategy):
|
||||||
"""
|
"""
|
||||||
This is a strategy template to get you started.
|
This is a strategy template to get you started.
|
||||||
More information in https://github.com/freqtrade/freqtrade/blob/develop/docs/bot-optimization.md
|
More information in https://www.freqtrade.io/en/latest/strategy-customization/
|
||||||
|
|
||||||
You can:
|
You can:
|
||||||
:return: a Dataframe with all mandatory indicators for the strategies
|
:return: a Dataframe with all mandatory indicators for the strategies
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
# pragma pylint: disable=missing-docstring, invalid-name, pointless-string-statement
|
# pragma pylint: disable=missing-docstring, invalid-name, pointless-string-statement
|
||||||
|
# flake8: noqa: F401
|
||||||
# isort: skip_file
|
# isort: skip_file
|
||||||
# --- Do not remove these libs ---
|
# --- Do not remove these libs ---
|
||||||
import numpy as np # noqa
|
import numpy as np # noqa
|
||||||
import pandas as pd # noqa
|
import pandas as pd # noqa
|
||||||
from pandas import DataFrame
|
from pandas import DataFrame
|
||||||
|
|
||||||
from freqtrade.strategy.interface import IStrategy
|
from freqtrade.strategy import IStrategy
|
||||||
|
from freqtrade.strategy import CategoricalParameter, DecimalParameter, IntParameter
|
||||||
|
|
||||||
# --------------------------------
|
# --------------------------------
|
||||||
# Add your lib to import here
|
# Add your lib to import here
|
||||||
@ -52,7 +54,11 @@ class SampleStrategy(IStrategy):
|
|||||||
# trailing_stop_positive = 0.01
|
# trailing_stop_positive = 0.01
|
||||||
# trailing_stop_positive_offset = 0.0 # Disabled / not configured
|
# trailing_stop_positive_offset = 0.0 # Disabled / not configured
|
||||||
|
|
||||||
# Optimal ticker interval for the strategy.
|
# Hyperoptable parameters
|
||||||
|
buy_rsi = IntParameter(low=1, high=50, default=30, space='buy', optimize=True, load=True)
|
||||||
|
sell_rsi = IntParameter(low=50, high=100, defualt=70, space='buy', optimize=True, load=True)
|
||||||
|
|
||||||
|
# Optimal timeframe for the strategy.
|
||||||
timeframe = '5m'
|
timeframe = '5m'
|
||||||
|
|
||||||
# Run "populate_indicators()" only for new candle.
|
# Run "populate_indicators()" only for new candle.
|
||||||
@ -339,7 +345,8 @@ class SampleStrategy(IStrategy):
|
|||||||
"""
|
"""
|
||||||
dataframe.loc[
|
dataframe.loc[
|
||||||
(
|
(
|
||||||
(qtpylib.crossed_above(dataframe['rsi'], 30)) & # Signal: RSI crosses above 30
|
# Signal: RSI crosses above 30
|
||||||
|
(qtpylib.crossed_above(dataframe['rsi'], self.buy_rsi.value)) &
|
||||||
(dataframe['tema'] <= dataframe['bb_middleband']) & # Guard: tema below BB middle
|
(dataframe['tema'] <= dataframe['bb_middleband']) & # Guard: tema below BB middle
|
||||||
(dataframe['tema'] > dataframe['tema'].shift(1)) & # Guard: tema is raising
|
(dataframe['tema'] > dataframe['tema'].shift(1)) & # Guard: tema is raising
|
||||||
(dataframe['volume'] > 0) # Make sure Volume is not 0
|
(dataframe['volume'] > 0) # Make sure Volume is not 0
|
||||||
@ -357,7 +364,8 @@ class SampleStrategy(IStrategy):
|
|||||||
"""
|
"""
|
||||||
dataframe.loc[
|
dataframe.loc[
|
||||||
(
|
(
|
||||||
(qtpylib.crossed_above(dataframe['rsi'], 70)) & # Signal: RSI crosses above 70
|
# Signal: RSI crosses above 70
|
||||||
|
(qtpylib.crossed_above(dataframe['rsi'], self.sell_rsi.value)) &
|
||||||
(dataframe['tema'] > dataframe['bb_middleband']) & # Guard: tema above BB middle
|
(dataframe['tema'] > dataframe['bb_middleband']) & # Guard: tema above BB middle
|
||||||
(dataframe['tema'] < dataframe['tema'].shift(1)) & # Guard: tema is falling
|
(dataframe['tema'] < dataframe['tema'].shift(1)) & # Guard: tema is falling
|
||||||
(dataframe['volume'] > 0) # Make sure Volume is not 0
|
(dataframe['volume'] > 0) # Make sure Volume is not 0
|
||||||
|
Loading…
Reference in New Issue
Block a user