|
1 | 1 | # Required json-schema for user specified config |
2 | 2 |
|
| 3 | + |
3 | 4 | from freqtrade.constants import ( |
4 | 5 | AVAILABLE_DATAHANDLERS, |
5 | 6 | AVAILABLE_PAIRLISTS, |
6 | 7 | BACKTEST_BREAKDOWNS, |
| 8 | + BACKTEST_CACHE_AGE, |
7 | 9 | DRY_RUN_WALLET, |
8 | 10 | EXPORT_OPTIONS, |
| 11 | + HYPEROPT_BUILTIN_SPACES, |
| 12 | + HYPEROPT_LOSS_BUILTIN, |
9 | 13 | MARGIN_MODES, |
10 | 14 | ORDERTIF_POSSIBILITIES, |
11 | 15 | ORDERTYPE_POSSIBILITIES, |
|
228 | 232 | "type": "array", |
229 | 233 | "items": {"type": "string", "enum": BACKTEST_BREAKDOWNS}, |
230 | 234 | }, |
| 235 | + "backtest_cache": { |
| 236 | + "description": "Load a cached backtest result no older than specified age.", |
| 237 | + "type": "string", |
| 238 | + "enum": BACKTEST_CACHE_AGE, |
| 239 | + }, |
| 240 | + # Hyperopt |
| 241 | + "hyperopt_path": { |
| 242 | + "description": "Specify additional lookup path for Hyperopt Loss functions.", |
| 243 | + "type": "string", |
| 244 | + }, |
| 245 | + "epochs": { |
| 246 | + "description": "Number of training epochs for Hyperopt.", |
| 247 | + "type": "integer", |
| 248 | + "minimum": 1, |
| 249 | + }, |
| 250 | + "early_stop": { |
| 251 | + "description": ( |
| 252 | + "Early stop hyperopt if no improvement after <epochs>. Set to 0 to disable." |
| 253 | + ), |
| 254 | + "type": "integer", |
| 255 | + "minimum": 0, |
| 256 | + }, |
| 257 | + "spaces": { |
| 258 | + "description": ( |
| 259 | + "Hyperopt parameter spaces to optimize. Default is the default set and" |
| 260 | + "includes all spaces except for 'trailing', 'protection', and 'trades'." |
| 261 | + ), |
| 262 | + "type": "array", |
| 263 | + "items": {"type": "string", "enum": HYPEROPT_BUILTIN_SPACES}, |
| 264 | + "default": ["default"], |
| 265 | + }, |
| 266 | + "analyze_per_epoch": { |
| 267 | + "description": "Perform analysis after each epoch in Hyperopt.", |
| 268 | + "type": "boolean", |
| 269 | + }, |
| 270 | + "print_all": { |
| 271 | + "description": "Print all hyperopt trials, not just the best ones.", |
| 272 | + "type": "boolean", |
| 273 | + "default": False, |
| 274 | + }, |
| 275 | + "hyperopt_jobs": { |
| 276 | + "description": ( |
| 277 | + "The number of concurrently running jobs for hyperoptimization " |
| 278 | + "(hyperopt worker processes). " |
| 279 | + "If -1 (default), all CPUs are used, for -2, all CPUs but one are used, etc. " |
| 280 | + "If 1 is given, no parallel computing is used." |
| 281 | + ), |
| 282 | + "type": "integer", |
| 283 | + "default": -1, |
| 284 | + }, |
| 285 | + "hyperopt_random_state": { |
| 286 | + "description": "Random state for hyperopt trials.", |
| 287 | + "type": "integer", |
| 288 | + "minimum": 0, |
| 289 | + }, |
| 290 | + "hyperopt_min_trades": { |
| 291 | + "description": "Minimum number of trades per epoch for hyperopt.", |
| 292 | + "type": "integer", |
| 293 | + "minimum": 0, |
| 294 | + }, |
| 295 | + "hyperopt_loss": { |
| 296 | + "description": ( |
| 297 | + "The class name of the hyperopt loss function class (IHyperOptLoss). " |
| 298 | + "Different functions can generate completely different results, " |
| 299 | + "since the target for optimization is different. Built-in Hyperopt-loss-functions are: " |
| 300 | + f"{', '.join(HYPEROPT_LOSS_BUILTIN)}" |
| 301 | + ), |
| 302 | + "type": "string", |
| 303 | + }, |
| 304 | + # end hyperopt |
231 | 305 | "bot_name": { |
232 | 306 | "description": "Name of the trading bot. Passed via API to a client.", |
233 | 307 | "type": "string", |
|
0 commit comments