Cancel Pending Orders by pip distance from current price?

Created at 26 Jul 2017, 21:54
How’s your experience with the cTrader Platform?
Your feedback is crucial to cTrader's development. Please take a few seconds to share your opinion and help us improve your trading experience. Thanks!
TH

theonlinemick

Joined 23.07.2017

Cancel Pending Orders by pip distance from current price?
26 Jul 2017, 21:54


How to adjust this to cancel pending stop orders when they reach a certain pip distance from the current price on tick?

 

protected override void OnTick()

    {

        foreach (var order in PendingOrders)

        {

            if (order.Label == "myLabel")

            {

                CancelPendingOrder(order);

            }

        }

    }

 

 


@theonlinemick
Replies

Spotware
27 Jul 2017, 10:28

Dear theonlinemick,

Thanks for your post. You can try something like the following

 protected override void OnTick()
        {

            foreach (var order in PendingOrders)
            {
                var pipDistance = Math.Abs((order.TargetPrice - Symbol.Ask) / Symbol.PipValue);
                if (pipDistance > MaxPipDistance)
                {
                    CancelPendingOrder(order);
                }
            }
        }

You can ajdust the price you will consider (Symbol.Ask or Symbol.Bid) based on your order's direction.

Best Regards,

cTrader Team


@Spotware

theonlinemick
27 Jul 2017, 11:24

Great, thank you, works perfectly.

added the parameter and label for anyone who wants to save time.

[Parameter("Cancel Pending Orders", DefaultValue = 30, MinValue = 0)]
        public int MaxPipDistance { get; set; }

 

protected override void OnTick()
        {
            foreach (var order in PendingOrders)
            {
                var pipDistance = Math.Abs((order.TargetPrice - Symbol.Ask) / Symbol.PipValue);
                if (pipDistance > MaxPipDistance)
                {
                    CancelPendingOrder(order);
                    Print("Order Has Reached Max Distance, Order Cancelled");
                }
            }
        }


@theonlinemick

kartheek99923
14 Jun 2024, 04:28 ( Updated at: 14 Jun 2024, 05:11 )

RE: Cancel Pending Orders by pip distance from current price?

theonlinemick said: 

Great, thank you, works perfectly.

added the parameter and label for anyone who wants to save time.

[Parameter("Cancel Pending Orders", DefaultValue = 30, MinValue = 0)]
        public int MaxPipDistance { get; set; }

 

protected override void OnTick()
        {
            foreach (var order in PendingOrders)
            {
                var pipDistance = Math.Abs((order.TargetPrice - Symbol.Ask) / Symbol.PipValue);
                if (pipDistance > MaxPipDistance)
                {
                    CancelPendingOrder(order);
                    Print("Order Has Reached Max Distance, Order Cancelled");
                }
            }
        }

This code is showing errors while building. Can you help me with the code?


@kartheek99923