Bars
Summary
Represents the Bars interface - the collection of Bar objects.
Signature
| public abstract interface Bars
|
Namespace
cAlgo.API
Examples
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 | using cAlgo.API;
using System;
namespace cAlgo
{
// A sample indicator that shows how to use Bars
[Indicator(IsOverlay = false, TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
public class BarsSample : Indicator
{
private TextBlock _barTicksNumberTextBlock, _barsStateTextBlock;
[Output("Range", LineColor = "RoyalBlue")]
public IndicatorDataSeries Range { get; set; }
[Output("Body", LineColor = "Yellow")]
public IndicatorDataSeries Body { get; set; }
protected override void Initialize()
{
// Bars events
Bars.BarOpened += Bars_BarOpened;
Bars.Tick += Bars_Tick;
Bars.HistoryLoaded += Bars_HistoryLoaded;
Bars.Reloaded += Bars_Reloaded;
var grid = new Grid(2, 2)
{
BackgroundColor = Color.DarkGoldenrod,
HorizontalAlignment = HorizontalAlignment.Right,
VerticalAlignment = VerticalAlignment.Top,
Opacity = 0.5
};
grid.AddChild(new TextBlock
{
Text = "Bar Ticks #",
Margin = 5
}, 0, 0);
_barTicksNumberTextBlock = new TextBlock
{
Text = "0",
Margin = 5
};
grid.AddChild(_barTicksNumberTextBlock, 0, 1);
grid.AddChild(new TextBlock
{
Text = "Bars State",
Margin = 5
}, 1, 0);
_barsStateTextBlock = new TextBlock
{
Margin = 5
};
grid.AddChild(_barsStateTextBlock, 1, 1);
IndicatorArea.AddControl(grid);
}
private void Bars_Reloaded(BarsHistoryLoadedEventArgs obj)
{
_barsStateTextBlock.Text = "Reloaded";
}
private void Bars_HistoryLoaded(BarsHistoryLoadedEventArgs obj)
{
_barsStateTextBlock.Text = "History Loaded";
}
private void Bars_Tick(BarsTickEventArgs obj)
{
_barTicksNumberTextBlock.Text = Bars.TickVolumes.LastValue.ToString();
}
private void Bars_BarOpened(BarOpenedEventArgs obj)
{
_barsStateTextBlock.Text = "New Bar Opened";
}
public override void Calculate(int index)
{
Range[index] = Bars.HighPrices[index] - Bars.LowPrices[index];
Body[index] = Math.Abs(Bars.ClosePrices[index] - Bars.OpenPrices[index]);
}
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 | import clr
clr.AddReference("cAlgo.API")
from cAlgo.API import *
def getTextBlock(text):
textBlock = TextBlock()
textBlock.Text = text
textBlock.Margin = Thickness(5)
return textBlock
class BarsSample():
def initialize(self):
api.Bars.BarOpened += self.barOpened
api.Bars.Tick += self.barsTick
api.Bars.HistoryLoaded += self.barsHistoryLoaded
api.Bars.Reloaded += self.barsReloaded
grid = Grid(2, 2)
grid.BackgroundColor = Color.DarkGoldenrod
grid.HorizontalAlignment = HorizontalAlignment.Right
grid.VerticalAlignment = VerticalAlignment.Top
grid.Opacity = 0.5
grid.AddChild(getTextBlock("Bar Ticks #"), 0, 0)
self.barTicksNumberTextBlock = getTextBlock("0")
grid.AddChild(self.barTicksNumberTextBlock, 0, 1)
grid.AddChild(getTextBlock("Bars State"), 1, 0)
self.barsStateTextBlock = getTextBlock("")
grid.AddChild(self.barsStateTextBlock, 1, 1)
api.IndicatorArea.AddControl(grid)
def calculate(self, index):
api.Range[index] = api.Bars.HighPrices[index] - api.Bars.LowPrices[index]
api.Body[index] = abs(api.Bars.ClosePrices[index] - api.Bars.OpenPrices[index])
def barOpened(self, args):
self.barsStateTextBlock.Text = "New Bar Opened"
def barsTick(self, args):
self.barTicksNumberTextBlock.Text = str(api.Bars.TickVolumes.LastValue)
def barsHistoryLoaded(self, args):
self.barsStateTextBlock.Text = "History Loaded"
def barsReloaded(self, args):
self.barsStateTextBlock.Text = "Reloaded"
|
Methods
Last
Summary
Gets the last bar in the chart.
Signature
| public abstract Bar Last(int index)
|
Parameters
| Name | Type | Description |
| index | int | |
Return Value
Bar
LoadMoreHistory
Summary
Loads more historical bars. Method returns the number of loaded bars that were added to the beginning of the collection.
Remarks
If used in indicator it will restart indicator as it adds more bars to Chart.
Signature
| public abstract int LoadMoreHistory()
|
Return Value
int
LoadMoreHistoryAsync (2)
LoadMoreHistoryAsync (1 of 2)
Summary
Loads more historical bars asynchronously.
Remarks
If used in indicator it will restart indicator as it adds more bars to Chart.
Signature
| public abstract void LoadMoreHistoryAsync()
|
Return Value
void
LoadMoreHistoryAsync (2 of 2)
Summary
Loads more historical bars asynchronously.
Remarks
If used in indicator it will restart indicator as it adds more bars to Chart.
Signature
| public abstract void LoadMoreHistoryAsync(Action<BarsHistoryLoadedEventArgs> callback)
|
Parameters
| Name | Type | Description |
| callback | Action | The callback that will be called after history loaded |
Return Value
void
GetPrices
Summary
Returns a data series from current Bars based on passed PriceType.
Signature
| public abstract DataSeries GetPrices(PriceType priceType)
|
Parameters
| Name | Type | Description |
| priceType | PriceType | Price Type |
Return Value
DataSeries
Examples
See Also
GetServerFirstBarOpenTime
Summary
Returns the first available server bar open time.
Signature
| public abstract DateTime GetServerFirstBarOpenTime()
|
Return Value
DateTime
Properties
Item
Signature
| public abstract Bar Item {get;}
|
Return Value
Bar
LastBar
Summary
Gets the last bar in the chart.
Signature
| public abstract Bar LastBar {get;}
|
Return Value
Bar
Count
Summary
Gets the number of bars.
Signature
| public abstract int Count {get;}
|
Return Value
int
TimeFrame
Summary
Get the timeframe.
Signature
| public abstract TimeFrame TimeFrame {get;}
|
Return Value
TimeFrame
SymbolName
Summary
Gets the symbol name.
Signature
| public abstract string SymbolName {get;}
|
Return Value
string
OpenPrices
Summary
Gets the Open price bars data.
Signature
| public abstract DataSeries OpenPrices {get;}
|
Return Value
DataSeries
HighPrices
Summary
Gets the High price bars data.
Signature
| public abstract DataSeries HighPrices {get;}
|
Return Value
DataSeries
LowPrices
Summary
Gets the Low price bars data.
Signature
| public abstract DataSeries LowPrices {get;}
|
Return Value
DataSeries
ClosePrices
Summary
Gets the Close price bars data.
Signature
| public abstract DataSeries ClosePrices {get;}
|
Return Value
DataSeries
TickVolumes
Summary
Gets the Tick volumes data.
Signature
| public abstract DataSeries TickVolumes {get;}
|
Return Value
DataSeries
AveragePrices
Summary
Gets the average prices data (Open + High + Low + Close) / 4.
Signature
| public abstract DataSeries AveragePrices {get;}
|
Return Value
DataSeries
Summary
Gets the Median prices data (High + Low) / 2.
Signature
| public abstract DataSeries MedianPrices {get;}
|
Return Value
DataSeries
TypicalPrices
Summary
Gets the Typical prices data (High + Low + Close) / 3.
Signature
| public abstract DataSeries TypicalPrices {get;}
|
Return Value
DataSeries
WeightedPrices
Summary
Gets the Weighted prices data (High + Low + 2 * Close) / 4.
Signature
| public abstract DataSeries WeightedPrices {get;}
|
Return Value
DataSeries
OpenTimes
Summary
Gets the open bar time data.
Signature
| public abstract TimeSeries OpenTimes {get;}
|
Return Value
TimeSeries
Events
HistoryLoaded
Summary
Occurs when more history is loaded due to chart scroll on the left or due to API call.
Signature
| public abstract event Action<BarsHistoryLoadedEventArgs> HistoryLoaded;
|
Reloaded
Summary
Occurs when bars are refreshed due to reconnect.
Signature
| public abstract event Action<BarsHistoryLoadedEventArgs> Reloaded;
|
Tick
Summary
Occurs when a new Tick arrives.
Signature
| public abstract event Action<BarsTickEventArgs> Tick;
|
BarOpened
Summary
Occurs when the last bar is closed and a new bar is opened.
Signature
| public abstract event Action<BarOpenedEventArgs> BarOpened;
|
BarClosed
Summary
Occurs when a new bar is opened; the event is called for the previous (closed) bar.
Signature
| public abstract event Action<BarClosedEventArgs> BarClosed;
|