Skip to content

IAccount

Summary

Contains the current account information.

Signature

1
public abstract interface IAccount

Namespace

cAlgo.API.Internals

Properties

Name Description
AccountType { get; } Returns the current account type.
Balance { get; } Returns the balance of the current account.
Equity { get; } Represents the equity of the current account (balance minus Unrealized Net Loss plus Unrealized Net Profit plus Bonus).
Margin { get; } Represents the margin of the current account.
FreeMargin { get; } Represents the free margin of the current account.
MarginLevel { get; } Represents the margin level of the current account.Margin Level (in %) is calculated using this formula:Equity / Margin * 100
IsLive { get; } Defines if the account is Live or Demo. True if the Account is Live, False if it is a Demo.
Number { get; } Returns the number of the current account, e.g. 123456.
BrokerName { get; } Returns the broker name of the current account.
UnrealizedGrossProfit { get; } Gets the Unrealized Gross profit value.
UnrealizedNetProfit { get; } Gets the Unrealized Net profit value.
PreciseLeverage { get; } Gets the precise account leverage value.
StopOutLevel { get; } Stop Out level is a lowest allowed Margin Level for account. If Margin Level is less than Stop Out, position will be closed sequentially until Margin Level is greater than Stop Out.
UserId { get; } Gets the user ID.
Asset { get; } Gets the account deposit asset/currency
TotalMarginCalculationType { get; } Type of total margin requirements per Symbol.
Currency { get; }
Leverage { get; }
Positions { get; }
PendingOrders { get; }

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
 // Account Properties
 // Current Account Balance
 double balance = Account.Balance;
 // Current Account Currency e.g. EUR
 string currency = Account.Currency;
 // Current Account Equity
    double equity = Account.Equity;
    // Current Account Free Margin
 double freemargin = Account.FreeMargin;
 // Current Account Margin
    double margin = Account.Margin;
 //Margin Level = Equity / Margin * 100
    double? marginlevel = Account.MarginLevel;
 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
 using cAlgo.API;
 namespace cAlgo
 {
     // This sample indicator shows how to use Account object properties to get your trading account data
     [Indicator(IsOverlay = true, TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
     public class AccountSample : Indicator
     {
         protected override void Initialize()
         {
             var grid = new Grid(16, 2)
             {
                 BackgroundColor = Color.Gold,
                 Opacity = 0.6,
                 HorizontalAlignment = HorizontalAlignment.Center,
                 VerticalAlignment = VerticalAlignment.Center,
             };
             var style = new Style();
             style.Set(ControlProperty.Padding, 5);
             style.Set(ControlProperty.Margin, 5);
             style.Set(ControlProperty.FontWeight, FontWeight.ExtraBold);
             style.Set(ControlProperty.BackgroundColor, Color.Black);
             grid.AddChild(new TextBlock { Text = "Account Info", Style = style, HorizontalAlignment = HorizontalAlignment.Center }, 0, 0, 1, 2);
             grid.AddChild(new TextBlock { Text = "Type", Style = style }, 1, 0);
             grid.AddChild(new TextBlock { Text = Account.AccountType.ToString(), Style = style }, 1, 1);
             grid.AddChild(new TextBlock { Text = "Is Live", Style = style }, 2, 0);
             grid.AddChild(new TextBlock { Text = Account.IsLive.ToString(), Style = style }, 2, 1);
             grid.AddChild(new TextBlock { Text = "Balance", Style = style }, 3, 0);
             grid.AddChild(new TextBlock { Text = Account.Balance.ToString(), Style = style }, 3, 1);
             grid.AddChild(new TextBlock { Text = "Broker Name", Style = style }, 4, 0);
             grid.AddChild(new TextBlock { Text = Account.BrokerName, Style = style }, 4, 1);
             grid.AddChild(new TextBlock { Text = "Currency", Style = style }, 5, 0);
             grid.AddChild(new TextBlock { Text = Account.Currency, Style = style }, 5, 1);
             grid.AddChild(new TextBlock { Text = "Number", Style = style }, 6, 0);
             grid.AddChild(new TextBlock { Text = Account.Number.ToString(), Style = style }, 6, 1);
             grid.AddChild(new TextBlock { Text = "Equity", Style = style }, 7, 0);
             grid.AddChild(new TextBlock { Text = Account.Equity.ToString(), Style = style }, 7, 1);
             grid.AddChild(new TextBlock { Text = "Free Margin", Style = style }, 8, 0);
             grid.AddChild(new TextBlock { Text = Account.FreeMargin.ToString(), Style = style }, 8, 1);
             grid.AddChild(new TextBlock { Text = "Margin", Style = style }, 9, 0);
             grid.AddChild(new TextBlock { Text = Account.Margin.ToString(), Style = style }, 9, 1);
             grid.AddChild(new TextBlock { Text = "Margin Level", Style = style }, 10, 0);
             grid.AddChild(new TextBlock { Text = Account.MarginLevel.ToString(), Style = style }, 10, 1);
             grid.AddChild(new TextBlock { Text = "Precise Leverage", Style = style }, 11, 0);
             grid.AddChild(new TextBlock { Text = Account.PreciseLeverage.ToString(), Style = style }, 11, 1);
             grid.AddChild(new TextBlock { Text = "Stop Out Level", Style = style }, 12, 0);
             grid.AddChild(new TextBlock { Text = Account.StopOutLevel.ToString(), Style = style }, 12, 1);
             grid.AddChild(new TextBlock { Text = "Unrealized Gross Profit", Style = style }, 13, 0);
             grid.AddChild(new TextBlock { Text = Account.UnrealizedGrossProfit.ToString(), Style = style }, 13, 1);
             grid.AddChild(new TextBlock { Text = "Unrealized Net Profit", Style = style }, 14, 0);
             grid.AddChild(new TextBlock { Text = Account.UnrealizedNetProfit.ToString(), Style = style }, 14, 1);
             grid.AddChild(new TextBlock { Text = "User Id", Style = style }, 15, 0);
             grid.AddChild(new TextBlock { Text = Account.UserId.ToString(), Style = style }, 15, 1);
             Chart.AddControl(grid);
         }
         public override void Calculate(int index)
         {
         }
     }
 }

Last update: March 30, 2023