IAccount
interface cAlgo.API.Internals
DesktopCLICloud
Contains the current account information.
Definition
public interface IAccount
Namespace: cAlgo.API.Internals · Group: Account
Examples
Example 1
Print("Balance: {0} {1}", Account.Balance, Account.Asset.Name);
Print("Equity: {0}, Margin: {1}, Free margin: {2}", Account.Equity, Account.Margin, Account.FreeMargin);
// Margin Level = Equity / Margin * 100, null when no margin is used
if (Account.MarginLevel.HasValue)
Print("Margin level: {0}%", Account.MarginLevel.Value);
api.Print(f"Balance: {api.Account.Balance} {api.Account.Asset.Name}")
api.Print(f"Equity: {api.Account.Equity}, Margin: {api.Account.Margin}, Free margin: {api.Account.FreeMargin}")
# Margin Level = Equity / Margin * 100, None when no margin is used
if api.Account.MarginLevel is not None:
api.Print(f"Margin level: {api.Account.MarginLevel}%")
{
"AccessRights": "None",
"TimeZone": "UTC",
"IsOverlay": true
}
Example 2
using cAlgo.API;
namespace cAlgo
{
// This sample indicator shows how to use Account object properties to get your trading account data
public partial 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.Asset.Name, 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)
{
}
}
}
import clr
clr.AddReference("cAlgo.API")
from cAlgo.API import *
class AccountSample():
def initialize(self):
grid = Grid(16, 2)
grid.BackgroundColor = Color.Gold
grid.Opacity = 0.6
grid.HorizontalAlignment = HorizontalAlignment.Center
grid.VerticalAlignment = VerticalAlignment.Center
self.style = Style()
self.style.Set(ControlProperty.Padding, 5)
self.style.Set(ControlProperty.Margin, 5)
self.style.Set(ControlProperty.FontWeight, FontWeight.ExtraBold)
self.style.Set(ControlProperty.BackgroundColor, Color.Black)
headerTextBox = self.getTextBlock("Account Info")
headerTextBox.HorizontalAlignment = HorizontalAlignment.Center
grid.AddChild(headerTextBox, 0, 0, 1, 2)
grid.AddChild(self.getTextBlock("Type"), 1, 0)
grid.AddChild(self.getTextBlock(str(api.Account.AccountType)), 1, 1)
grid.AddChild(self.getTextBlock("Is Live"), 2, 0)
grid.AddChild(self.getTextBlock(str(api.Account.IsLive)), 2, 1)
grid.AddChild(self.getTextBlock("Balance"), 3, 0)
grid.AddChild(self.getTextBlock(str(api.Account.Balance)), 3, 1)
grid.AddChild(self.getTextBlock("Broker Name"), 4, 0)
grid.AddChild(self.getTextBlock(api.Account.BrokerName), 4, 1)
grid.AddChild(self.getTextBlock("Currency"), 5, 0)
grid.AddChild(self.getTextBlock(api.Account.Asset.Name), 5, 1)
grid.AddChild(self.getTextBlock("Number"), 6, 0)
grid.AddChild(self.getTextBlock(str(api.Account.Number)), 6, 1)
grid.AddChild(self.getTextBlock("Equity"), 7, 0)
grid.AddChild(self.getTextBlock(str(api.Account.Equity)), 7, 1)
grid.AddChild(self.getTextBlock("Free Margin"), 8, 0)
grid.AddChild(self.getTextBlock(str(api.Account.FreeMargin)), 8, 1)
grid.AddChild(self.getTextBlock("Margin"), 9, 0)
grid.AddChild(self.getTextBlock(str(api.Account.Margin)), 9, 1)
grid.AddChild(self.getTextBlock("Margin Level"), 10, 0)
grid.AddChild(self.getTextBlock(str(api.Account.MarginLevel)), 10, 1)
grid.AddChild(self.getTextBlock("Precise Leverage"), 11, 0)
grid.AddChild(self.getTextBlock(str(api.Account.PreciseLeverage)), 11, 1)
grid.AddChild(self.getTextBlock("Stop Out Level"), 12, 0)
grid.AddChild(self.getTextBlock(str(api.Account.StopOutLevel)), 12, 1)
grid.AddChild(self.getTextBlock("Unrealized Gross Profit"), 13, 0)
grid.AddChild(self.getTextBlock(str(api.Account.UnrealizedGrossProfit)), 13, 1)
grid.AddChild(self.getTextBlock("Unrealized Net Profit"), 14, 0)
grid.AddChild(self.getTextBlock(str(api.Account.UnrealizedNetProfit)), 14, 1)
grid.AddChild(self.getTextBlock("User Id"), 15, 0)
grid.AddChild(self.getTextBlock(str(api.Account.UserId)), 15, 1)
api.Chart.AddControl(grid)
def getTextBlock(self, text):
textBlock = TextBlock()
textBlock.Text = text
textBlock.Style = self.style
return textBlock
Properties
| Name | Description |
|---|---|
AccountTypeDesktopCLICloudAccountType | Returns the current account type. |
AssetDesktopCLICloudAsset | Gets the account deposit asset/currency |
BalanceDesktopCLIClouddouble | Returns the balance of the current account. |
BrokerNameDesktopCLICloudstring | Returns the broker name of the current account. |
CreationTimeDesktopCLICloudDateTime | Gets the account creation time. |
CreditDesktopCLIClouddouble | Gets the credit of the current account. |
EquityDesktopCLIClouddouble | Represents the equity of the current account (balance minus Unrealized Net Loss plus Unrealized Net Profit plus Bonus). |
FreeMarginDesktopCLIClouddouble | Represents the free margin of the current account. |
IsLiveDesktopCLICloudbool | Defines if the account is Live or Demo. True if the Account is Live, False if it is a Demo. |
MarginDesktopCLIClouddouble | Represents the margin of the current account. |
MarginLevelDesktopCLIClouddouble? | Represents the margin level of the current account. Margin Level (in %) is calculated using this formula: Equity / Margin * 100 |
NumberDesktopCLICloudint | Returns the number of the current account, e.g. 123456. |
PreciseLeverageDesktopCLIClouddouble | Gets the precise account leverage value. |
StopOutLevelDesktopCLIClouddouble | 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. |
TotalMarginCalculationTypeDesktopCLICloudTotalMarginCalculationType | Type of total margin requirements per Symbol. |
UnrealizedGrossProfitDesktopCLIClouddouble | Gets the Unrealized Gross profit value. |
UnrealizedNetProfitDesktopCLIClouddouble | Gets the Unrealized Net profit value. |
UserIdDesktopCLICloudlong | Gets the user ID. |
UserNickNameDesktopCLICloudstring | Gets the user nick name. |
Events
| Name | Description |
|---|---|
SwitchedDesktopCLICloudAction<AccountSwitchedEventArgs> | Occurs when user switch his account. |
Deprecated members (4)
string Currency {get;}— Use Account.Asset.Name insteadint Leverage {get;}— Use PreciseLeverage insteadIReadonlyList<Position> Positions {get;}— Use Positions insteadIReadonlyList<PendingOrder> PendingOrders {get;}— Use PendingOrders instead