{
  "fetched_at": "2026-10-24T10:32:45Z",
  "source_url": "https://www.kaggle.com/competitions/beat-the-system-snu21/data",
  "pages": [
    {
      "name": "data-description",
      "content": "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.\n\n### File descriptions\n1. train_data.csv - the training set\n2. sample_submission.csv - a sample submission file in the correct format\n### Data fields\n- Timestamp - Date and time corresponding to the OHLC candle formed\n- Open - Candle body open\n- High - Candle wick high\n- Low - Candle wick low\n- Close - Candle body close",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Description",
      "content": "# You have been given a stop &amp; reverse based moving averages crossover strategy that needs to be optimized.\nPractically 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.\n\nThis 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.\n\nBut all is not lost. The strategy stills works if the periods are adapted for that particular asset or market.\n\n\n## This forms the crux of this challenge.\nGiven 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.\n\nThe optimization is multi-objective, meaning you'll have to find the optimal balance between 3 parameters, namely:\n\n- Net Profit &amp; Loss\n- Average Profit &amp; Loss\n- Win Percentage\nYour aim is to minimize your MAPE score in both the public and private leaderboards to as close to 0 as possible.\n## Note:\n1. Refer to the sample notebook for help understanding how to use the Backtest system, visualize important metrics, and generate submission files.\n2. 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.\n3. Because of the above constraint, you're required to code in the Kaggle Notebook Environment only.",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Evaluation",
      "content": "Refer to the sample submission file provided to see how the format needs to be. Additionally, using the GenerateSubmission class provided in the sample notebook should help you instantly create a submission file.\n\nWe have the best available parameters and we use the Mean Absolute Percentage Error (MAPE) of your strategy metrics and the best possible metrics to generate a Public and a Private Score.\n\n# Your aim is to minimize your MAPE score to as close to 0 as possible",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "rules",
      "content": "### Rules\n- Don't cheat (duhh)!\n- Use only the Kaggle platform to write, run and analyze the code.\n- Submit your notebook even if you are unable to submit the final csv file.\n- Don't share the competition link with anyone.\n",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    }
  ]
}