Skip to content

Deleting a Pending Order

Request: delete a pending order by its ticket Sends a request to remove a pending order from the trading terminal.


Code Example

// --- Quick use (service wrapper) ---
// Deletes a pending order by ticket.
// ⚠️ Works only for pending orders (BuyLimit, SellLimit, etc.).
svc.ShowOrderDeleteExample(ctx, 123456)

// --- Low-level (direct account call) ---
// Preconditions: account is already connected.
// ⚠️ Use only with pending orders. For active Buy/Sell use OrderClose.

ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()

data, err := account.OrderDelete(ctx, 123456)
if err != nil {
    log.Fatalf("❌ OrderDelete error: %v", err)
}

fmt.Printf("Order deleted. Mode: %s, Comment: %s\n",
    data.GetMode(),
    data.GetHistoryOrderComment(),
)

Method Signature

func (s *MT4Service) ShowOrderDeleteExample(ctx context.Context, ticket int32)

🔽 Input

Required:

Field Type Description
ctx context.Context Timeout or cancellation management.
ticket int32 Ticket number of the pending order.

The ticket must reference a pending order.


⬆️ Output

Returns *pb.OrderCloseDeleteData:

Field Type Description
Mode string Operation result (e.g., "Deleted").
HistoryOrderComment string Server comment about the deleted order.

🎯 Purpose

Remove limit/stop orders that are no longer needed:

  • Cancel pending orders before execution
  • Manage pending order queues
  • Clean up unused test/training orders

🧩 Notes & Tips

  • Pending only: For open market positions use OrderClose, not OrderDelete.
  • Idempotency: If the order is already filled/expired/cancelled, the API may return an error with a broker comment.
  • No price/slippage: Delete uses only the ticket; price and slippage parameters are not applicable.