Investments Connector

The HighchartsConnectors.MorningstarDWS.InvestmentsConnector is a connector that allows access to the newer Morningstar API, which provides the Investment Details API.

How to use Investments Connector

The InvestmentsConnector allows you to select multiple converters simultaneously.

new HighchartsConnectors.MorningstarDWS.InvestmentsConnector({
api: {
access: {
token: 'your_access_token'
}
},
security: {
id: '0P00000FIA'
},
converters: {
// Chosen converters
}
});

Below, you will find the currently implemented data converters, with more planned for the future.

Available data converters

Here is a list of available converters along with their corresponding data table names:

  • AssetAllocationBreakdown:

    • AssetAlloc
    • CanadianAssetAlloc
    • UnderlyingAssetAlloc
  • CountryAndRegionExposure:

    • RegionEquity
    • RegionFixedIncome
    • RegionFixedIncomeGeo
    • RegionRevenueExposure
    • CountryEquity
    • CountryBreakdown
    • CountryRevenueExposure
  • EquitySectorsBreakdown:

    • EqSuperSectors
    • EqSectors
    • EqIndustries
  • FixedIncomeSectorsBreakdown:

    • IncSuperSectors
    • IncPrimarySectors
    • IncSecondarySectors
    • IncBrkSuperSectors
    • IncBrkPrimarySectors
    • IncBrkSecondarySectors
  • EquityStyleBox:

    • StockStyle
    • TimeSeries
  • ProspectusFees:

    • ProspectusFees

Investments Connector Examples

const connector = new HighchartsConnectors.MorningstarDWS.InvestmentsConnector({
api: {
access: {
token: 'your_access_token'
}
},
security: {
id: '0P00006W6Q'
},
converters: {
CountryAndRegionExposure: {},
EquitySectorsBreakdown: {},
FixedIncomeSectorsBreakdown: {},
EquityStyleBox: {
startDate: '2025-01-01',
endDate: '2025-12-01'
},
ProspectusFees: {}
}
});
await connector.load();

The EquitySectorsBreakdown converter example:

const dataTable = connector.getTable('EqSuperSectors');
Highcharts.chart('container', {
title: {
text: 'Equity Super Sectors Breakdown'
},
subtitle: {
text: dataTable.metadata.performanceId
},
series: [{
name: 'Equity Super Sectors Long Rescaled',
data: dataTable.getRows(
void 0,
void 0,
['Type', 'PercLongRescaled']
)
}, {
name: 'Equity Super Sectors Long',
data: dataTable.getRows(
void 0,
void 0,
['Type', 'PercLong']
)
}, {
name: 'Equity Super Sectors Net',
data: dataTable.getRows(
void 0,
void 0,
['Type', 'Net']
)
}]
});

The FixedIncomeSectorsBreakdown converter example:

const dataTable = connector.getTable('IncBrkSuperSectors');
Highcharts.chart('container-brk-super-sectors', {
title: {
text: 'Fixed Income Super Sectors Breakdown'
},
subtitle: {
text: dataTable.metadata.performanceId
},
series: [{
name: 'Fixed Income Breakdown Super Sectors Long',
data: dataTable.getRows(
void 0,
void 0,
['Fixed_Income_Breakdown_Type', 'Fixed_Income_Breakdown_CalcLongFiperc']
)
}, {
name: 'Fixed Income Breakdown Super Sectors Short',
data: dataTable.getRows(
void 0,
void 0,
['Fixed_Income_Breakdown_Type', 'Fixed_Income_Breakdown_CalcShortFiperc']
)
}, {
name: 'Fixed Income Breakdown Super Sectors Net',
data: dataTable.getRows(
void 0,
void 0,
['Fixed_Income_Breakdown_Type', 'Fixed_Income_Breakdown_CalcNetFiperc']
)
}]
});

The EquityStyleBox converter example:

const dataTable = connector.getTable('StockStyle');
Highcharts.chart('container', {
chart: {
type: 'heatmap'
},
title: {
text: 'Equity Style Box'
},
subtitle: {
text: 'Stock Style',
align: 'left'
},
xAxis: {
categories: ['Value', 'Blend', 'Growth'],
lineWidth: 0,
gridLineWidth: 0,
opposite: true,
labels: {
style: {
fontSize: '1rem',
color: '#6e7481'
}
}
},
yAxis: {
categories: ['Small', 'Medium', 'Large'],
gridLineWidth: 0,
title: {
text: ''
},
labels: {
rotation: -90,
style: {
fontSize: '1rem',
color: '#6e7481'
}
}
},
legend: {
layout: 'vertical',
verticalAlign: 'top',
align: 'right',
y: 75,
symbolRadius: 0,
itemMarginTop: 9,
itemMarginBottom: 9
},
colorAxis: {
dataClasses: [{
from: 49,
color: '#014ce5',
name: '50+'
}, {
from: 24,
to: 49,
color: '#487cea',
name: '25-49'
}, {
from: 9,
to: 24,
color: '#acc2f3',
name: '10-24'
}, {
from: 0,
to: 9,
color: '#fafafa',
name: '0-9'
}]
},
series: [{
name: 'Equity Style Box',
borderWidth: 1,
borderColor: '#e5e7e9',
keys: ['x', 'y', 'value'],
data: dataTable.getRows(0, 9),
dataLabels: {
enabled: true,
format: '{value:.0f}%',
style: {
fontSize: '1rem',
textOutline: 'none'
}
}
}]
});

The CountryAndRegionExposure converter example:

const regionEquityTable = connector.getTable('RegionEquity'),
data = regionEquityTable.getRows(void 0, void 0, ['Region', 'PercNet']);
Highcharts.chart('container', {
chart: {
type: 'column'
},
title: {
text: 'Region Equity (Net)'
},
series: [{
name: 'Region Equity (Net)',
data
}]
});

The AssetAllocationBreakdown converter example:

const generalTable = connector.getTable('AssetAlloc'),
// Example only uses the first data table. This is how to get
// the other tables.
canadaTable = connector.getTable('CanadianAssetAlloc'),
underlyingTable = connector.getTable('UnderlyingAssetAlloc');
Highcharts.chart('container', {
title: {
text: 'General Asset Allocation Breakdown Data'
},
chart: {
type: 'column'
},
xAxis: {
categories: generalTable.getColumn('Type')
},
series: [{
name: 'Long',
data: generalTable.getColumn('Long')
}, {
name: 'Long Rescaled',
data: generalTable.getColumn('LongRescaled')
}, {
name: 'Net',
data: generalTable.getColumn('Net')
}, {
name: 'Short',
data: generalTable.getColumn('Short')
}]
});

Relevant demos

Examples of using the InvestmentsConnector are available in our demos:

  • Highcharts Core + Morningstar Asset Allocation Breakdown
  • Highcharts Core + Morningstar Equity Sectors Breakdown
  • Highcharts Core + Morningstar Fixed Income Sectors Breakdown
  • Highcharts Core + Morningstar Equity Style Box
  • Highcharts Core + Morningstar Equity Style Box Time Series