#include <common/xroad_string.h>
#include <cache/xroad_objects.h>
#include <mdata/engine/mdata_engine.h>
#include <algo/curr_engine/curr_engine.h>
Go to the source code of this file.
|
typedef struct algo_order_s | algo_order_t |
|
|
algo_order_t * | algo_order_create (mdata_engine_t *mdata, algo_order_callback_t callback, xroad_order_t *parent, curr_engine_t *ce, void *ctx, int64_t level_interval) |
|
void | algo_order_destroy (algo_order_t *o) |
|
void | algo_order_stop (algo_order_t *o) |
|
xroad_errno_t | algo_order_cancel (algo_order_t *o) |
|
xroad_errno_t | algo_order_send (algo_order_t *o, xroad_qty_t qty, xroad_qty_t display_qty, int64_t mid_shift, int64_t liq_shift, int64_t agression_level, int32_t pool_size) |
|
xroad_errno_t | algo_order_send_ex (algo_order_t *o, xroad_qty_t qty, xroad_qty_t display_qty, int64_t mid_shift, int64_t liq_shift, int64_t agression_level, int32_t sensitivity, int32_t deviation, xroad_qty_t threshold_qty, int32_t pool_size) |
|
void | algo_order_on_node_object (algo_order_t *order, void *obj) |
|
void * | algo_order_get_ctx (algo_order_t *order) |
|
xroad_qty_t | algo_order_get_qty (algo_order_t *) |
|
algo_order_state_t | algo_order_get_state (algo_order_t *) |
|
void | algo_order_set_state (algo_order_t *o, algo_order_state_t s) |
|
xroad_str_t | algo_order_stat (algo_order_t *o) |
|
xroad_order_t * | algo_order_get_parent (algo_order_t *order) |
|
int32_t | algo_order_exceed_limit (algo_order_t *, xroad_price_t) |
|
xroad_errno_t | algo_order_get_limit (algo_order_t *ao, xroad_price_t *p) |
|
xroad_price_t | algo_order_get_rate (algo_order_t *ao) |
|
◆ algo_order_state_t
order state
Enumerator |
---|
algo_order_state_initial | order is in initial state
|
algo_order_state_active | order is in active state
|
algo_order_state_middle | order is in midle state
|
algo_order_state_liquidate | order is in liquidation state
|
algo_order_state_completed | order is in completed state
|
algo_order_state_awaiting_cancel | order is in awaiting cancel state
|
algo_order_state_canceled | order is in canceled state
|
algo_order_state_awaiting_replace | order is in awaiting replace state
|
◆ algo_order_cancel()
xroad_errno_t algo_order_cancel |
( |
algo_order_t * |
o | ) |
|
cancel order. order will be cancelled
- Parameters
-
- Returns
- XROAD_OK - cancel operation applied, else failed
◆ algo_order_create()
algo_order_t* algo_order_create |
( |
mdata_engine_t * |
mdata, |
|
|
algo_order_callback_t |
callback, |
|
|
xroad_order_t * |
parent, |
|
|
curr_engine_t * |
ce, |
|
|
void * |
ctx, |
|
|
int64_t |
level_interval |
|
) |
| |
create new order
- Parameters
-
[in] | mdata | - order name. Must be unique |
[in] | callback | - order callback |
[in] | parent | - parent xroad order |
[in] | ctx | - order context |
[in] | deep_of_book | - book depth (in levels) |
[in] | level_interval | - interval between levels (in price levels) |
- Returns
- pointer to order, in case of error - NULL (see errno)
◆ algo_order_destroy()
void algo_order_destroy |
( |
algo_order_t * |
o | ) |
|
destroy order
- Parameters
-
[in] | o | - order to destory |
[in] | force | - force order destruction (don't wait for exchange ack, if any) |
- Returns
- XROAD_OK - destroy operation applied, else failed
◆ algo_order_exceed_limit()
int32_t algo_order_exceed_limit |
( |
algo_order_t * |
, |
|
|
xroad_price_t |
|
|
) |
| |
check order limit TODO consider move it to callback
- Parameters
-
◆ algo_order_get_ctx()
void* algo_order_get_ctx |
( |
algo_order_t * |
order | ) |
|
gets context for algo order
- Parameters
-
◆ algo_order_get_parent()
xroad_order_t* algo_order_get_parent |
( |
algo_order_t * |
order | ) |
|
gets order parent
- Parameters
-
◆ algo_order_get_qty()
gets order qty
- Parameters
-
◆ algo_order_get_state()
gets order state
- Parameters
-
◆ algo_order_on_node_object()
void algo_order_on_node_object |
( |
algo_order_t * |
order, |
|
|
void * |
obj |
|
) |
| |
process node events
- Parameters
-
[in] | obj | - object to process |
[in] | from | - object source |
◆ algo_order_send()
xroad_errno_t algo_order_send |
( |
algo_order_t * |
o, |
|
|
xroad_qty_t |
qty, |
|
|
xroad_qty_t |
display_qty, |
|
|
int64_t |
mid_shift, |
|
|
int64_t |
liq_shift, |
|
|
int64_t |
agression_level, |
|
|
int32_t |
pool_size |
|
) |
| |
send order
- Parameters
-
[in] | o | - order to replace |
[in] | qty | - order new qty |
[in] | price | - order new price |
[in] | mask | - replace mask (see algo_order_replace_mask_t) |
- Returns
- XROAD_OK - replace operation applied, else failed
◆ algo_order_send_ex()
xroad_errno_t algo_order_send_ex |
( |
algo_order_t * |
o, |
|
|
xroad_qty_t |
qty, |
|
|
xroad_qty_t |
display_qty, |
|
|
int64_t |
mid_shift, |
|
|
int64_t |
liq_shift, |
|
|
int64_t |
agression_level, |
|
|
int32_t |
sensitivity, |
|
|
int32_t |
deviation, |
|
|
xroad_qty_t |
threshold_qty, |
|
|
int32_t |
pool_size |
|
) |
| |
send order
- Parameters
-
[in] | o | - order to replace |
[in] | qty | - order new qty |
[in] | price | - order new price |
[in] | sensitivity | - number of trades with aggression side == order side after which it would execute over spread |
[in] | deviation | - max percent of random deviation from display_qty |
- Returns
- XROAD_OK - replace operation applied, else failed
◆ algo_order_set_state()
sets order state
- Parameters
-
[in] | o | - algo order |
[in] | s | - algo order state |
◆ algo_order_stat()
gets order statistice
- Parameters
-