Access rights Download PDF


cBots and Custom Indicators access rights

Our several products allow users to run cBots and install Custom Indicators. In order to protect our users from malware code we run every cBot or Custom Indicator in a sandboxed AppDomain.

cBots and Custom Indicators must declare desired access rights by specifying the AccessRights property of Robot or Indicator attribute.

Examples:

[Robot(AccessRights = AccessRights.Internet)]
public class SampleSARTrailingStop : Robot
[Indicator(AccessRights = AccessRights.None)]
public class SampleEMA : Indicator

The declared access rights could be a combination of the following access rights:

NoneAlgorithm doesn’t require any access rights. When such cBot or Custom Indicator will be added to the chart the access rights dialog will not be shown.
FileSystemAccess to file system.
InternetAccess to Internet or other networks.
RegistryAccess to windows registry.
FullAccessThe unlimited access rights. Algorithms which declare FullAccess as access rights can use all the power of .NET framework including import WinApi functions, use the .NET Reflection, creating windows, etc.
 

 Example of several access rights declaration in one indicator:

[Indicator(TimeZone = TimeZones.UTC, AccessRights = AccessRights.Internet | AccessRights.Registry)]
public class MyIndicator : Indicator

In this case the following dialog will be prompted when indicator is added to the chart:

In case AccessRights.FullAccess is declared, the following dialog will be prompted:

Security Exception

If algorithm tries to perform restricted action the Security exception will be thrown. For example, if cBot tries to read from a text file while neither AccessRights.FileSystem nor AccessRights.FullAccess are chosen, cBot will be stopped and the following message will appear in the log: 

Crashed in OnStart with SecurityException: Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

Default Behavior

If cBot or Custom Indicator doesn’t specify the desired access rights, AccessRights.FullAccess is considered to be chosen.

Best Practices

If you are not going to distribute your algorithms it is recommended to specify  AccessRights.FullAccess for all your algorithms. In such case you will avoid Security Exceptions during the development of your algorithms.

If you are going to distribute your cBots or Custom Indicators over cTDN or other networks it is recommended to specify AccessRights.None.