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, notOrderDelete. - 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.