Support compounding key
This commit is contained in:
parent
f96d7dfe6d
commit
06b6726029
@ -320,8 +320,9 @@ class BacktestRequest(BaseModel):
|
|||||||
timeframe: Optional[str]
|
timeframe: Optional[str]
|
||||||
timerange: Optional[str]
|
timerange: Optional[str]
|
||||||
max_open_trades: Optional[int]
|
max_open_trades: Optional[int]
|
||||||
stake_amount: Optional[int]
|
stake_amount: Optional[Union[float, str]]
|
||||||
enable_protections: bool
|
enable_protections: bool
|
||||||
|
dry_run_wallet: Optional[float]
|
||||||
|
|
||||||
|
|
||||||
class BacktestResponse(BaseModel):
|
class BacktestResponse(BaseModel):
|
||||||
|
@ -285,12 +285,15 @@ async def api_start_backtest(bt_settings: BacktestRequest, background_tasks: Bac
|
|||||||
asyncio.set_event_loop(asyncio.new_event_loop())
|
asyncio.set_event_loop(asyncio.new_event_loop())
|
||||||
try:
|
try:
|
||||||
# Reload strategy
|
# Reload strategy
|
||||||
|
lastconfig = ApiServer._lastbacktestconfig
|
||||||
strat = StrategyResolver.load_strategy(btconfig)
|
strat = StrategyResolver.load_strategy(btconfig)
|
||||||
|
|
||||||
if (not ApiServer._bt
|
if (not ApiServer._bt
|
||||||
or ApiServer._lastbacktestconfig.get('timeframe') != strat.timeframe
|
or lastconfig.get('timeframe') != strat.timeframe
|
||||||
or ApiServer._lastbacktestconfig.get('enable_protections') != btconfig.get('enable_protections')
|
or lastconfig.get('enable_protections') != btconfig.get('enable_protections')
|
||||||
or ApiServer._lastbacktestconfig.get('protections') != btconfig.get('protections', [])):
|
or lastconfig.get('protections') != btconfig.get('protections', [])
|
||||||
|
or lastconfig.get('dry_run_wallet') != btconfig.get('dry_run_wallet', 0)
|
||||||
|
):
|
||||||
# TODO: Investigate if enabling protections can be dynamically ingested from here...
|
# TODO: Investigate if enabling protections can be dynamically ingested from here...
|
||||||
from freqtrade.optimize.backtesting import Backtesting
|
from freqtrade.optimize.backtesting import Backtesting
|
||||||
ApiServer._bt = Backtesting(btconfig)
|
ApiServer._bt = Backtesting(btconfig)
|
||||||
@ -299,11 +302,12 @@ async def api_start_backtest(bt_settings: BacktestRequest, background_tasks: Bac
|
|||||||
ApiServer._backtestdata = None
|
ApiServer._backtestdata = None
|
||||||
|
|
||||||
if (not ApiServer._backtestdata or not ApiServer._bt_timerange
|
if (not ApiServer._backtestdata or not ApiServer._bt_timerange
|
||||||
or ApiServer._lastbacktestconfig.get('timerange') != btconfig['timerange']):
|
or lastconfig.get('timerange') != btconfig['timerange']):
|
||||||
ApiServer._lastbacktestconfig['timerange'] = btconfig['timerange']
|
lastconfig['timerange'] = btconfig['timerange']
|
||||||
ApiServer._lastbacktestconfig['protections'] = btconfig.get('protections', [])
|
lastconfig['protections'] = btconfig.get('protections', [])
|
||||||
ApiServer._lastbacktestconfig['enable_protections'] = btconfig.get('enable_protections')
|
lastconfig['enable_protections'] = btconfig.get('enable_protections')
|
||||||
ApiServer._lastbacktestconfig['timeframe'] = strat.timeframe
|
lastconfig['dry_run_wallet'] = btconfig.get('dry_run_wallet')
|
||||||
|
lastconfig['timeframe'] = strat.timeframe
|
||||||
ApiServer._backtestdata, ApiServer._bt_timerange = ApiServer._bt.load_bt_data()
|
ApiServer._backtestdata, ApiServer._bt_timerange = ApiServer._bt.load_bt_data()
|
||||||
|
|
||||||
min_date, max_date = ApiServer._bt.backtest_one_strategy(
|
min_date, max_date = ApiServer._bt.backtest_one_strategy(
|
||||||
|
Loading…
Reference in New Issue
Block a user