Packages
tai
0.0.38
0.0.75
0.0.74
0.0.73
0.0.72
0.0.71
0.0.70
0.0.69
0.0.68
0.0.67
0.0.66
0.0.65
0.0.64
0.0.63
0.0.62
0.0.61
0.0.60
0.0.59
0.0.58
0.0.57
0.0.56
0.0.55
0.0.54
0.0.53
0.0.52
0.0.51
0.0.50
0.0.49
0.0.48
0.0.47
0.0.46
0.0.45
0.0.44
0.0.43
0.0.42
0.0.41
0.0.40
0.0.39
0.0.38
0.0.37
0.0.36
0.0.35
0.0.34
0.0.33
0.0.32
0.0.31
0.0.30
0.0.29
0.0.28
0.0.27
0.0.26
0.0.25
0.0.24
0.0.23
0.0.22
0.0.21
0.0.20
0.0.19
0.0.18
0.0.17
0.0.16
0.0.15
0.0.14
0.0.13
0.0.12
0.0.11
0.0.10
0.0.9
0.0.8
0.0.7
0.0.6
0.0.5
0.0.4
0.0.3
0.0.2
0.0.1
A composable, real time, market data and trade execution toolkit
Current section
Files
Jump to
Current section
Files
lib/tai/commands/orders.ex
defmodule Tai.Commands.Orders do
@moduledoc """
Display the list of orders and their details
"""
import Tai.Commands.Table, only: [render!: 2]
@header [
"Venue",
"Account",
"Product Symbol",
"Product Type",
"Side",
"Type",
"Price",
"Qty",
"Leaves Qty",
"Cumulative Qty",
"Time in Force",
"Status",
"Client ID",
"Venue Order ID",
"Enqueued At",
"Last Received At",
"Last Venue Timestamp",
"Updated At",
"Error Reason"
]
@spec orders :: no_return
def orders do
Tai.Trading.OrderStore.all()
|> Enum.sort(&(DateTime.compare(&1.enqueued_at, &2.enqueued_at) == :lt))
|> Enum.map(fn order ->
[
order.venue_id,
order.account_id,
order.product_symbol,
order.product_type,
order.side,
order.type,
order.price,
order.qty,
order.leaves_qty,
order.cumulative_qty,
order.time_in_force,
order.status,
order.client_id |> trunc_id(),
order.venue_order_id && order.venue_order_id |> trunc_id(),
Timex.from_now(order.enqueued_at),
order.last_received_at && Timex.from_now(order.last_received_at),
order.last_venue_timestamp && Timex.from_now(order.last_venue_timestamp),
order.updated_at && Timex.from_now(order.updated_at),
order.error_reason && inspect(order.error_reason)
]
end)
|> render!(@header)
end
defp trunc_id(val), do: "#{val |> String.slice(0..5)}..."
end