Skip to content

ChartDraggable

Summary

Represents a draggable box that can host a control and shown over a chart.

Signature

1
public abstract interface ChartDraggable

Namespace

cAlgo.API

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
 [Robot(AccessRights = AccessRights.None)]
 public class TestExample : Robot
 {
    private const string Label = "Draggable";
    protected override void OnStart()
    {
        var openPositionButton = new Button {Text = "Open Position"};
        openPositionButton.Click += _ => ExecuteMarketOrder(TradeType.Buy, SymbolName, Symbol.VolumeInUnitsMin, Label);
        var closePositionsButton = new Button {Text = "Close Position"};
        closePositionsButton.Click += _ => Positions.Find(Label)?.Close();
        var panel = new StackPanel {Orientation = Orientation.Vertical, BackgroundColor = Color.Red};
        panel.AddChild(openPositionButton);
        panel.AddChild(closePositionsButton);
        var draggable = Chart.Draggables.Add();
        draggable.ShowGrip = true;
        draggable.Child = panel;
        draggable.LocationChanged += args => Print($"Draggable Location Changed: {args.Draggable.X}, {args.Draggable.Y}");
    }
 }
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 import clr
 clr.AddReference("cAlgo.API")
 # Import cAlgo API types
 from cAlgo.API import *
 # Import trading wrapper functions
 from robot_wrapper import *
 class Test():
     Label = "Test"
     def on_start(self):
         openPositionButton = Button()
         openPositionButton.Text = "Open Position"
         openPositionButton.Click += lambda _ : api.ExecuteMarketOrder(TradeType.Buy, api.SymbolName, api.Symbol.VolumeInUnitsMin, self.Label)
         closePositionsButton = Button()
         closePositionsButton.Text = "Close Position"
         closePositionsButton.Click += lambda _ : api.Positions.Find(self.Label).Close()
         panel = StackPanel()
         panel.Orientation = Orientation.Vertical
         panel.BackgroundColor = Color.Red
         panel.AddChild(openPositionButton)
         panel.AddChild(closePositionsButton)
         draggable = api.Chart.Draggables.Add()
         draggable.ShowGrip = True
         draggable.Child = panel
         draggable.LocationChanged += lambda args : print(f"Draggable Location Changed: {args.Draggable.X}, {args.Draggable.Y}")

See Also

Properties

Id

Summary

Get unique ID of the Draggable.

Signature

1
public abstract string Id {get;}

Return Value

string

Child

Summary

Get / set the content control inside the draggable.

Signature

1
public abstract ControlBase Child {get; set;}

Return Value

ControlBase

X

Summary

Get / set X coordinate (default: 0).

Signature

1
public abstract double X {get; set;}

Return Value

double

Y

Summary

Get / set Y coordinate (default: 0).

Signature

1
public abstract double Y {get; set;}

Return Value

double

ShowGrip

Summary

Get / set move grip visibility (default: true).

Signature

1
public abstract bool ShowGrip {get; set;}

Return Value

bool

IsVisible

Summary

Get / set visibility of draggable.

Signature

1
public abstract bool IsVisible {get; set;}

Return Value

bool

Events

LocationChanged

Summary

Occurs when the draggable's location is changed.

Signature

1
public abstract event Action<ChartDraggableLocationChangedEventArgs> LocationChanged;