# You have been given a stop &amp; reverse based moving averages crossover strategy that needs to be optimized.
Practically everyone knows the standard moving average crossover signal. If the fast moving average crosses above the slower (longer period) moving average, it is time to buy. Vice versa for short trades.

This type of signal used to work pretty well with the default values for the fast and slow periods, but as new algorithmic traders entered the scene, practically everyone started trading it! This reduced the usefulness of the signal.

But all is not lost. The strategy stills works if the periods are adapted for that particular asset or market.


## This forms the crux of this challenge.
Given a MA crossover strategy, you're required to quantitatively find the optimal fast and slow MA periods for the given asset that works well over the years. You can use any optimization method, pure Algo or even Machine Learning based.

The optimization is multi-objective, meaning you'll have to find the optimal balance between 3 parameters, namely:

- Net Profit &amp; Loss
- Average Profit &amp; Loss
- Win Percentage
Your aim is to minimize your MAPE score in both the public and private leaderboards to as close to 0 as possible.
## Note:
1. Refer to the sample notebook for help understanding how to use the Backtest system, visualize important metrics, and generate submission files.
2. The train data provided is for you to run your optimization method on and see how varying MA periods affect the strategy. The test data is withheld and will only be used for out-of-sample evaluations. The GenerateSubmission module will automatically run the best parameters provided by you to it and give you the out-of-sample score.
3. Because of the above constraint, you're required to code in the Kaggle Notebook Environment only.