---
id: "T:cAlgo.API.ChartContainer"
kind: "interface"
namespace: "cAlgo.API"
url: "https://help.ctrader.com/ctrader-algo/references/Plugin/Chart/ChartContainer/"
---

> Documentation index for agents: https://help.ctrader.com/ctrader-algo/llms.txt · machine index: https://help.ctrader.com/ctrader-algo/api.json

# ChartContainer (interface)

Represents a chart frames container.

Environments: Desktop supported · CLI not supported · Cloud not supported.

- CLI: Available to plugins only, and plugins cannot run in the CLI.
- Cloud: Available to plugins only, and plugins cannot run in the cloud.

## Definition

```csharp
public interface ChartContainer
```

## Examples

C#:

```csharp
using cAlgo.API;
using System.Linq;

namespace cAlgo.Plugins;

public partial class Test : Plugin
{
    protected override void OnStart()
    {
        // Adding new chart frame to main chart container
        var chartFrame = ChartManager.AddChartFrame(Symbols.First(), TimeFrame.Daily);

        // Detaching chart frame from main container to
        // create a new detached chart container
        chartFrame.Detach();

        // Getting detached chart container
        var detachedChartContainer = chartFrame.ChartContainer;

        // Setting container window width and height
        detachedChartContainer.DetachedWindow.Width = 500;
        detachedChartContainer.DetachedWindow.Height = 300;

        // Adding another chart frame to detached container
        ChartManager.AddChartFrame(Symbols.Last(), TimeFrame.Hour, detachedChartContainer);
    }
}
```

Python:

```python
import clr
clr.AddReference("cAlgo.API")

from cAlgo.API import *

class Test():
    def on_start(self):
        # Adding new chart frame to main chart container
        chartFrame = api.ChartManager.AddChartFrame(api.Symbols[0], TimeFrame.Daily)

        # Detaching chart frame from main container to
        # create a new detached chart container
        chartFrame.Detach()

        # Getting detached chart container
        detachedChartContainer = chartFrame.ChartContainer

        # Setting container window width and height
        detachedChartContainer.DetachedWindow.Width = 500
        detachedChartContainer.DetachedWindow.Height = 300

        # Adding another chart frame to detached container
        api.ChartManager.AddChartFrame(api.Symbols[1], TimeFrame.Hour, detachedChartContainer)
```

config.json:

```json
{
  "AccessRights": "None"
}
```

## Methods

- `bool Close()` — Closes current chart container window. [details](https://help.ctrader.com/ctrader-algo/references/Plugin/Chart/ChartContainer/Close/index.md)

## Properties

- `int Count {get;}` — Returns number of frames existing in chart container. [details](https://help.ctrader.com/ctrader-algo/references/Plugin/Chart/ChartContainer/Count/index.md)
- `DetachedWindow DetachedWindow {get;}` — Returns detached window properties of chart container. [details](https://help.ctrader.com/ctrader-algo/references/Plugin/Chart/ChartContainer/DetachedWindow/index.md)
- `string Id {get;}` — Returns container Id. [details](https://help.ctrader.com/ctrader-algo/references/Plugin/Chart/ChartContainer/Id/index.md)
- `Frame Item {get;}` — Returns a frame by it is index inside chart container. [details](https://help.ctrader.com/ctrader-algo/references/Plugin/Chart/ChartContainer/Item/index.md)
- `ChartMode Mode {get; set;}` — Get / set chart mode of chart container. [details](https://help.ctrader.com/ctrader-algo/references/Plugin/Chart/ChartContainer/Mode/index.md)
- `Frame SelectedFrame {get; set;}` — Gets or sets the selected frame in the chart container. [details](https://help.ctrader.com/ctrader-algo/references/Plugin/Chart/ChartContainer/SelectedFrame/index.md)

