Skip to content

News filter#

Overview#

Note: breaking news filter currently does not work correctly. Please help us to fix it by suggesting a high-quality breaking news provider to integrate with.

CopyFactory allows you to filter trade signals based on calendar or breaking news events.

By default CopyFactory will not apply news filter. If you want to enable this feature then you can specify an optional newsFilter setting.

The setting can be specified on any of the following entities:

  • strategy
  • member of a portfolio strategy
  • portfolio strategy
  • subscription

The schema for this setting is described in StrategyNewsFilter document.

This setting is additive. CopyFactory will apply each setting from subscription at the same time.

Examples#

Do not open positions during 1 hour before and 2 hours after a high priority calendar news:

"newsFilter": {
  "calendarNewsFilter": {
    "priorities": ["high"],
    "openPositionFollowingTimeGapInMinutes": 120,
    "openPositionPrecedingTimeGapInMinutes": 60
  }
}

Same as above, but also close related open positions 30 minutes before high priority calendar news.

"newsFilter": {
  "calendarNewsFilter": {
    "priorities": ["high"],
    "openPositionFollowingTimeGapInMinutes": 120,
    "openPositionPrecedingTimeGapInMinutes": 60,
    "closePositionTimeGapInMinutes": 30
  }
}

Do not allow opening new positions 2 hours after high priority breaking news:

"newsFilter": {
  "brekaingNewsFilter": {
    "priorities": ["high"],
    "openPositionFollowingTimeGapInMinutes": 120,
    "closePositionTimeGapInMinutes": 0
  }
}

Same as above, but also close positions after a breaking news event (close signal will stay active for 10 minutes):

"newsFilter": {
  "brekaingNewsFilter": {
    "priorities": ["high"],
    "closePositionTimeGapInMinutes": 10,
    "openPositionFollowingTimeGapInMinutes": 120
  }
}

Example (strategy)#

{
  "name": "Strategy",
  ...
  "newsFilter": {
    "calendarNewsFilter": {
      "priorities": ["high"],
      "openPositionFollowingTimeGapInMinutes": 120,
      "openPositionPrecedingTimeGapInMinutes": 60
    }
  },
  ...
}

Example (member of a portfolio strategy)#

{
  "name": "Portfolio strategy",
  ...
  "members": [
    {
      ...
      "newsFilter": {
        "calendarNewsFilter": {
          "priorities": ["high"],
          "openPositionFollowingTimeGapInMinutes": 120,
          "openPositionPrecedingTimeGapInMinutes": 60
        }
      },
      ...
    },
    ...
  ],
  ...
}

Example (portfolio strategy)#

{
  "name": "Portfolio strategy",
  ...
  "newsFilter": {
    "calendarNewsFilter": {
      "priorities": ["high"],
      "openPositionFollowingTimeGapInMinutes": 120,
      "openPositionPrecedingTimeGapInMinutes": 60
    }
  },
  ...
}

Example (subscription)#

{
  "name": "Account",
  ...
  "subscriptions": [
    {
      ...
      "newsFilter": {
        "calendarNewsFilter": {
          "priorities": ["high"],
          "openPositionFollowingTimeGapInMinutes": 120,
          "openPositionPrecedingTimeGapInMinutes": 60
        }
      },
      ...
    },
    ...
  ],
  ...
}