Skip to content

Correlation reduction#

Overview#

Correlation reduction feature in CopyFactory allows you to avoid placing correlated trades on subscribers. This option works only for symbol which have asset names in them, such as EURUSD. It does not work for indices or CFDs.

It is best to explain how correlation reduction feature works in samples. Suppose you have long position of 0.1 EURUSD already open. This means that you entered already 0.1 lot long on EUR and 0.1 lot short on USD. Now, if you will try to enter another trade on the same side for one of these, the trade size will be reduced due to correlation. E.g. if you'll place ashort trade of 0.2 USDJPY, only 0.1 lot will be opened, because you have already 0.1 lot of USD opened on the short side. If instead of placing 0.2 lots you want to place a short trade of 0.05 USDJPY, no trade will be placed, because you have already entered 0.1 lot for USD on the short side.

By default CopyFactory will not apply correlation reduction risk filter. However, if you want to enable this feature then you can specify an optional correlationReduction setting.

The setting can take following values:

  • by-strategy means that correlation reduction will happen for a selected strategy only
  • by-account means that correlation reduction will happen accross entire subscriber

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

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

This setting is overridable. CopyFactory will apply the last setting from subscription chain. E.g. if you have by-strategy setting specified in strategy and by-symbol in subscription, then it will apply by-symbol setting as described above.

Example (strategy)#

{
  "name": "Strategy",
  ...
  "reduceCorrelations": "by-strategy",
  ...
}

Example (member of a portfolio strategy)#

{
  "name": "Portfolio strategy",
  ...
  "members": [
    {
      ...
      "reduceCorrelations": "by-strategy",
      ...
    },
    ...
  ],
  ...
}

Example (portfolio strategy)#

{
  "name": "Portfolio strategy",
  ...
  "reduceCorrelations": "by-strategy",
  ...
}

Example (subscription)#

{
  "name": "Subscriber",
  ...
  "subscriptions": [
    {
      ...
      "reduceCorrelations": "by-strategy",
      ...
    },
    ...
  ],
  ...
}