Skip to content

TradeWatch

Summary

Represents the trade watch panel.

Signature

1
public abstract interface TradeWatch

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
 using cAlgo.API;
 using System;
 namespace cAlgo.Plugins;
 [Plugin(AccessRights = AccessRights.None)]
 public class Test : Plugin
 {
     protected override void OnStart()
     {
         webView = new WebView
         {
             DefaultBackgroundColor = Color.Red,
             Width = 1000
         };
         webView.Loaded += _ => webView.NavigateAsync("https://ctrader.com/");
         TradeWatch.IsVisibleChanged += _ => Print("OnTradeWatchIsVisibleChanged");
         TradeWatch.SizeChanged += _ => Print("OnTradeWatchSizeChanged");
         tab = TradeWatch.AddTab("Test");
         detachButton = new Button
         {
             Text = "Detach",
         };
         detachButton.Click += _ => tab.Detach();
         attachButton = new Button
         {
             Text = "Attach",
         };
         attachButton.Click += _ => tab.Attach();
         changeHeightButton = new Button
         {
             Text = "Change Height",
         };
         changeHeightButton.Click += _ => TradeWatch.Height = Random.Shared.NextInt64(100, 600);
         changeVisibilityButton = new Button
         {
             Text = "Change Visibility",
         };
         changeVisibilityButton.Click += _ => TradeWatch.IsVisible = !TradeWatch.IsVisible;
         changeBalanceBarVisibilityButton = new Button
         {
             Text = "Change Balance Bar Visibility",
         };
         changeBalanceBarVisibilityButton.Click += _ => tab.IsBalanceBarVisible = !tab.IsBalanceBarVisible;
         var panel = new StackPanel
         {
             Orientation = Orientation.Horizontal
         };
         panel.AddChild(detachButton);
         panel.AddChild(attachButton);
         panel.AddChild(changeHeightButton);
         panel.AddChild(changeVisibilityButton);
         panel.AddChild(changeBalanceBarVisibilityButton);
         panel.AddChild(webView);
         tab.Child = panel;
         tab.IsSelected = true;
         tab.Index = 0;
         tab.Attached += args => Print("Attached. ID=", args.TradeWatchTab.Index);
         tab.Detached += args => Print("Detached. ID=", args.TradeWatchTab.Index);
         tab.SizeChanged += args => Print("TabSizeChanged. Height={0} Width={1}", args.TradeWatchTab.Height, args.TradeWatchTab.Width);
         tab.IsSelectedChanged += OnTabIsSelectedChanged;
         tab1 = TradeWatch.AddTab("Test");
         tab1.Index = 1;
         tab2 = TradeWatch.AddTab("Test3");
         tab2.Index = 2;
         tab1.IsSelectedChanged += OnTabIsSelectedChanged;
         tab2.IsSelectedChanged += OnTabIsSelectedChanged;
     }
     private void OnTabIsSelectedChanged(TradeWatchTabIsSelectedChangedEventArgs args)
     {
         var tab = args.TradeWatchTab;
         Print("OnIsSelectedChanged. Index={0} ID={2} title={1}", tab.Index, tab.Title, tab.Id);
     }
 }
 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
 import clr
 clr.AddReference("cAlgo.API")
 from cAlgo.API import *
 from System import Action, Func
 import random
 class Test():
     def on_start(self):
         webView = WebView()
         webView.DefaultBackgroundColor = Color.Red
         webView.Width = 1000
         webView.Loaded += lambda _: webView.NavigateAsync("https://ctrader.com/")
         api.TradeWatch.IsVisibleChanged += lambda _: print("OnTradeWatchIsVisibleChanged")
         api.TradeWatch.SizeChanged += lambda _: print("OnTradeWatchSizeChanged")
         tab = api.TradeWatch.AddTab("Test")
         detachButton = Button()
         detachButton.Text = "Detach"
         detachButton.Click += lambda _: tab.Detach()
         attachButton = Button()
         attachButton.Text = "Attach"
         attachButton.Click += lambda _: tab.Attach()
         changeHeightButton = Button()
         changeHeightButton.Text = "Change Height"
         changeHeightButton.Click += self.on_change_height_button_click
         changeVisibilityButton = Button()
         changeVisibilityButton.Text = "Change Visibility"
         changeVisibilityButton.Click += self.on_change_visibility_button_click
         changeBalanceBarVisibilityButton = Button()
         changeBalanceBarVisibilityButton.Text = "Change Balance Bar Visibility"
         changeBalanceBarVisibilityButton.Click += lambda _: self.on_change_balance_bar_visibility(tab)
         panel = StackPanel()
         panel.Orientation = Orientation.Horizontal
         panel.AddChild(detachButton)
         panel.AddChild(attachButton)
         panel.AddChild(changeHeightButton)
         panel.AddChild(changeVisibilityButton)
         panel.AddChild(changeBalanceBarVisibilityButton)
         panel.AddChild(webView)
         tab.Child = panel
         tab.IsSelected = True
         tab.Index = 0
         tab.Attached += lambda args: print(f"Attached. ID={args.TradeWatchTab.Index}")
         tab.Detached += lambda args: print(f"Detached. ID={args.TradeWatchTab.Index}")
         tab.SizeChanged += lambda args: print(f"TabSizeChanged. Height={args.TradeWatchTab.Height} Width={args.TradeWatchTab.Width}")
         tab.IsSelectedChanged += self.on_tab_is_selected_changed
         tab1 = api.TradeWatch.AddTab("Test")
         tab1.Index = 1
         tab2 = api.TradeWatch.AddTab("Test3")
         tab2.Index = 2
         tab1.IsSelectedChanged += self.on_tab_is_selected_changed
         tab2.IsSelectedChanged += self.on_tab_is_selected_changed
     def on_tab_is_selected_changed(self, args):
         print(f"OnIsSelectedChanged. Index={args.TradeWatchTab.Index} ID={args.TradeWatchTab.Title} title={args.TradeWatchTab.Id}")
     def on_change_height_button_click(self, args):
         api.TradeWatch.Height = random.randint(100, 600)
     def on_change_visibility_button_click(self, args):
         api.TradeWatch.IsVisible = not api.TradeWatch.IsVisible
     def on_change_balance_bar_visibility(self, tab):
         tab.IsBalanceBarVisible = not tab.IsBalanceBarVisible

Methods

AddTab

Summary

Adds a new tab.

Signature

1
public abstract TradeWatchTab AddTab(string title)

Parameters

Name Type Description
title string Tab title

Return Value

TradeWatchTab

RemoveTab (2)

RemoveTab (1 of 2)

Summary

Removes a tab by ID.

Signature

1
public abstract bool RemoveTab(string id)

Parameters

Name Type Description
id string Tab ID

Return Value

bool

RemoveTab (2 of 2)

Summary

Removes a tab.

Signature

1
public abstract bool RemoveTab(TradeWatchTab tab)

Parameters

Name Type Description
tab TradeWatchTab Tab

Return Value

bool

Properties

Height

Summary

Get / set height of trade watch.

Signature

1
public abstract double Height {get; set;}

Return Value

double

Width

Summary

Get / set width of trade watch.

Signature

1
public abstract double Width {get;}

Return Value

double

IsVisible

Summary

Get / set visibility of trade watch.

Signature

1
public abstract bool IsVisible {get; set;}

Return Value

bool

Events

SizeChanged

Summary

Occurs after trade watch size (height / width) changed.

Signature

1
public abstract event Action<TradeWatchSizeChangedEventArgs> SizeChanged;

IsVisibleChanged

Summary

Occurs after trade watch visibility (IsVisible) changed.

Signature

1
public abstract event Action<TradeWatchIsVisibleChangedEventArgs> IsVisibleChanged;