# mstl

- Model
- Chart

Performs MSTL forecasting

Source Code: [link]

`openbb.forecast.mstl(data: Union[pd.Series, pd.DataFrame], target_column: str = "close", seasonal_periods: int = 7, n_predict: int = 5, start_window: float = 0.85, forecast_horizon: int = 5)`

## Parameters

Name | Type | Description | Default | Optional |
---|---|---|---|---|

data | Union[pd.Series, np.ndarray] | Input data. | None | False |

target_column | Optional[str]: | Target column to forecast. Defaults to "close". | close | True |

seasonal_periods | int | Number of seasonal periods in a year (7 for daily data) If not set, inferred from frequency of the series. | 7 | True |

n_predict | int | Number of days to forecast | 5 | True |

start_window | float | Size of sliding window from start of timeseries and onwards | 0.85 | True |

forecast_horizon | int | Number of days to forecast when backtesting and retraining historical | 5 | True |

## Returns

Type | Description |
---|---|

Adjusted Data series, List of historical fcast values, List of predicted fcast values, Optional[float] - precision, Fit MSTL model object. |

Display MSTL Model

Source Code: [link]

`openbb.forecast.mstl_chart(data: Union[pd.DataFrame, pd.Series], target_column: str = "close", dataset_name: str = "", seasonal_periods: int = 7, n_predict: int = 5, start_window: float = 0.85, forecast_horizon: int = 5, export: str = "", sheet_name: Optional[str] = None, residuals: bool = False, forecast_only: bool = False, start_date: Optional[datetime.datetime] = None, end_date: Optional[datetime.datetime] = None, naive: bool = False, export_pred_raw: bool = False, external_axes: bool = False)`

## Parameters

Name | Type | Description | Default | Optional |
---|---|---|---|---|

data | Union[pd.Series, np.array] | Data to forecast | None | False |

dataset_name str | None | The name of the ticker to be predicted | None | True |

target_column | Optional[str]: | Target column to forecast. Defaults to "close". | close | True |

seasonal_periods | int | Number of seasonal periods in a year If not set, inferred from frequency of the series. | 7 | True |

n_predict | int | Number of days to forecast | 5 | True |

start_window | float | Size of sliding window from start of timeseries and onwards | 0.85 | True |

forecast_horizon | int | Number of days to forecast when backtesting and retraining historical | 5 | True |

sheet_name | str | Optionally specify the name of the sheet the data is exported to. | None | True |

export | str | Format to export data | True | |

residuals | bool | Whether to show residuals for the model. Defaults to False. | False | True |

forecast_only | bool | Whether to only show dates in the forecasting range. Defaults to False. | False | True |

start_date | Optional[datetime] | The starting date to perform analysis, data before this is trimmed. Defaults to None. | None | True |

end_date | Optional[datetime] | The ending date to perform analysis, data after this is trimmed. Defaults to None. | None | True |

naive | bool | Whether to show the naive baseline. This just assumes the closing price will be the same as the previous day's closing price. Defaults to False. | False | True |

external_axes | bool | Whether to return the figure object or not, by default False | False | True |

## Returns

This function does not return anything