Implement DecimalParameter and rename FloatParameter to RealParameter.
This commit is contained in:
@@ -4,7 +4,7 @@ import talib.abstract as ta
|
||||
from pandas import DataFrame
|
||||
|
||||
import freqtrade.vendor.qtpylib.indicators as qtpylib
|
||||
from freqtrade.strategy import FloatParameter, IntParameter, IStrategy
|
||||
from freqtrade.strategy import DecimalParameter, IntParameter, IStrategy, RealParameter
|
||||
|
||||
|
||||
class HyperoptableStrategy(IStrategy):
|
||||
@@ -60,9 +60,10 @@ class HyperoptableStrategy(IStrategy):
|
||||
}
|
||||
|
||||
buy_rsi = IntParameter([0, 50], default=30, space='buy')
|
||||
buy_plusdi = FloatParameter(low=0, high=1, default=0.5, space='buy')
|
||||
buy_plusdi = RealParameter(low=0, high=1, default=0.5, space='buy')
|
||||
sell_rsi = IntParameter(low=50, high=100, default=70, space='sell')
|
||||
sell_minusdi = FloatParameter(low=0, high=1, default=0.5, space='sell', load=False)
|
||||
sell_minusdi = DecimalParameter(low=0, high=1, default=0.5001, decimals=3, space='sell',
|
||||
load=False)
|
||||
|
||||
def informative_pairs(self):
|
||||
"""
|
||||
|
@@ -13,8 +13,8 @@ from freqtrade.data.history import load_data
|
||||
from freqtrade.exceptions import OperationalException, StrategyError
|
||||
from freqtrade.persistence import PairLocks, Trade
|
||||
from freqtrade.resolvers import StrategyResolver
|
||||
from freqtrade.strategy.hyper import (BaseParameter, CategoricalParameter, FloatParameter,
|
||||
IntParameter)
|
||||
from freqtrade.strategy.hyper import (BaseParameter, CategoricalParameter, DecimalParameter,
|
||||
IntParameter, RealParameter)
|
||||
from freqtrade.strategy.interface import SellCheckTuple, SellType
|
||||
from freqtrade.strategy.strategy_wrapper import strategy_safe_wrapper
|
||||
from tests.conftest import log_has, log_has_re
|
||||
@@ -564,14 +564,20 @@ def test_hyperopt_parameters():
|
||||
with pytest.raises(OperationalException, match=r"IntParameter space must be.*"):
|
||||
IntParameter(low=0, default=5, space='buy')
|
||||
|
||||
with pytest.raises(OperationalException, match=r"FloatParameter space must be.*"):
|
||||
FloatParameter(low=0, default=5, space='buy')
|
||||
with pytest.raises(OperationalException, match=r"RealParameter space must be.*"):
|
||||
RealParameter(low=0, default=5, space='buy')
|
||||
|
||||
with pytest.raises(OperationalException, match=r"DecimalParameter space must be.*"):
|
||||
DecimalParameter(low=0, default=5, space='buy')
|
||||
|
||||
with pytest.raises(OperationalException, match=r"IntParameter space invalid\."):
|
||||
IntParameter([0, 10], high=7, default=5, space='buy')
|
||||
|
||||
with pytest.raises(OperationalException, match=r"FloatParameter space invalid\."):
|
||||
FloatParameter([0, 10], high=7, default=5, space='buy')
|
||||
with pytest.raises(OperationalException, match=r"RealParameter space invalid\."):
|
||||
RealParameter([0, 10], high=7, default=5, space='buy')
|
||||
|
||||
with pytest.raises(OperationalException, match=r"DecimalParameter space invalid\."):
|
||||
DecimalParameter([0, 10], high=7, default=5, space='buy')
|
||||
|
||||
with pytest.raises(OperationalException, match=r"CategoricalParameter space must.*"):
|
||||
CategoricalParameter(['aa'], default='aa', space='buy')
|
||||
@@ -583,10 +589,16 @@ def test_hyperopt_parameters():
|
||||
assert intpar.value == 1
|
||||
assert isinstance(intpar.get_space(''), Integer)
|
||||
|
||||
fltpar = FloatParameter(low=0.0, high=5.5, default=1.0, space='buy')
|
||||
fltpar = RealParameter(low=0.0, high=5.5, default=1.0, space='buy')
|
||||
assert isinstance(fltpar.get_space(''), Real)
|
||||
assert fltpar.value == 1
|
||||
|
||||
fltpar = DecimalParameter(low=0.0, high=5.5, default=1.0004, decimals=3, space='buy')
|
||||
assert isinstance(fltpar.get_space(''), Integer)
|
||||
assert fltpar.value == 1
|
||||
fltpar._set_value(2222)
|
||||
assert fltpar.value == 2.222
|
||||
|
||||
catpar = CategoricalParameter(['buy_rsi', 'buy_macd', 'buy_none'],
|
||||
default='buy_macd', space='buy')
|
||||
assert isinstance(catpar.get_space(''), Categorical)
|
||||
|
Reference in New Issue
Block a user