Skip to content

IServer

Summary

Server related information.

Signature

1
public abstract interface IServer

Namespace

cAlgo.API.Internals

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
 using cAlgo.API;
 namespace cAlgo
 {
     // This sample indicator shows how to use Server object to get data related to server and connection
     [Indicator(IsOverlay = true, TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
     public class ServerSample : Indicator
     {
         private TextBlock _isConnectedTextBlock;
         protected override void Initialize()
         {
             var grid = new Grid(4, 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 = "Server Info", Style = style, HorizontalAlignment = HorizontalAlignment.Center }, 0, 0, 1, 2);
             grid.AddChild(new TextBlock { Text = "Time", Style = style }, 1, 0);
             grid.AddChild(new TextBlock { Text = Server.Time.ToString("o"), Style = style }, 1, 1);
             grid.AddChild(new TextBlock { Text = "Time (UTC)", Style = style }, 2, 0);
             grid.AddChild(new TextBlock { Text = Server.TimeInUtc.ToString("o"), Style = style }, 2, 1);
             grid.AddChild(new TextBlock { Text = "Is Connected", Style = style }, 3, 0);
             _isConnectedTextBlock = new TextBlock
             {
                 Text = Server.IsConnected ? "Yes" : "No",
                 Style = style,
             };
             Server.Connected += () => _isConnectedTextBlock.Text = "Yes";
             Server.Disconnected += () => _isConnectedTextBlock.Text = "No";
             grid.AddChild(_isConnectedTextBlock, 3, 1);
             Chart.AddControl(grid);
         }
         public override void Calculate(int 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 *
 class ServerSample():
     def initialize(self):
         grid = Grid(4, 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)
         titleTextBlock = self.get_text_block("Server Info")
         titleTextBlock.HorizontalAlignment = HorizontalAlignment.Center
         grid.AddChild(titleTextBlock, 0, 0, 1, 2)
         grid.AddChild(self.get_text_block("Time"), 1, 0)
         grid.AddChild(self.get_text_block(str(api.Server.Time)), 1, 1)
         grid.AddChild(self.get_text_block("Time (UTC)"), 2, 0)
         grid.AddChild(self.get_text_block(str(api.Server.TimeInUtc)), 2, 1)
         grid.AddChild(self.get_text_block("Is Connected"), 3, 0)
         self.isConnectedTextBlock = self.get_text_block("Yes" if api.Server.IsConnected else "No")
         api.Server.Connected += self.on_server_connected
         api.Server.Disconnected += self.on_server_disconnected
         grid.AddChild(self.isConnectedTextBlock, 3, 1)
         api.Chart.AddControl(grid)
     def on_server_connected(self):
         self.isConnectedTextBlock = "Yes"
     def on_server_disconnected(self):
         self.isConnectedTextBlock = "No"
     def get_text_block(self, text):
         textBlock = TextBlock()
         textBlock.Text = text
         textBlock.Style = self.style
         return textBlock

Properties

Time

Summary

Returns the server time.

Signature

1
public abstract DateTime Time {get;}

Return Value

DateTime

Examples

1
2
3
4
 protected override void OnTick()
 {
     Print("The Server Time is: {0}", Server.Time);
 }
1
2
 def on_tick(self):
     print(f"The Server Time is: {api.Server.Time}")

TimeInUtc

Summary

Returns the server time in UTC.

Signature

1
public abstract DateTime TimeInUtc {get;}

Return Value

DateTime

Examples

1
2
3
4
 protected override void OnTick()
 {
     Print("The Server Time in UTC is: {0}", Server.TimeInUtc);
 }
1
2
 def on_tick(self):
     print(f"The Server Time in UTC is: {api.Server.TimeInUtc}")

IsConnected

Summary

Indicates current connection status with the server

Signature

1
public abstract bool IsConnected {get;}

Return Value

bool

Events

Connected

Summary

Event raised when successfully connected with the server

Signature

1
public abstract event Action Connected;

Disconnected

Summary

Disconnected - Event raised when connection with the server is lost

Signature

1
public abstract event Action Disconnected;