cleanup: remove unused constants MAX_CURRENCIES and _D1
This commit is contained in:
parent
2c8cfc74b5
commit
17aac4b4ef
|
|
@ -10,7 +10,6 @@
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
|
||||||
#define _D1 1.0
|
|
||||||
#define FILL_TIMEOUT_MS 5000
|
#define FILL_TIMEOUT_MS 5000
|
||||||
|
|
||||||
struct executor_thread_s {
|
struct executor_thread_s {
|
||||||
|
|
@ -34,21 +33,21 @@ void executor_write_report(const char *fmt, ...) {
|
||||||
|
|
||||||
/* ── Timestamp helpers ── */
|
/* ── Timestamp helpers ── */
|
||||||
|
|
||||||
static int64_t now_mono_ms(void) {
|
static double now_mono_ms(void) {
|
||||||
struct timespec ts;
|
struct timespec ts;
|
||||||
clock_gettime(CLOCK_MONOTONIC, &ts);
|
clock_gettime(CLOCK_MONOTONIC, &ts);
|
||||||
return (int64_t)ts.tv_sec * 1000 + (int64_t)ts.tv_nsec / 1000000;
|
return (double)ts.tv_sec * 1000.0 + (double)ts.tv_nsec / 1000000.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int64_t now_realtime_ms(void) {
|
static double now_realtime_ms(void) {
|
||||||
struct timespec ts;
|
struct timespec ts;
|
||||||
clock_gettime(CLOCK_REALTIME, &ts);
|
clock_gettime(CLOCK_REALTIME, &ts);
|
||||||
return (int64_t)ts.tv_sec * 1000 + (int64_t)ts.tv_nsec / 1000000;
|
return (double)ts.tv_sec * 1000.0 + (double)ts.tv_nsec / 1000000.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void format_ts(char *buf, size_t sz) {
|
static void format_ts(char *buf, size_t sz) {
|
||||||
time_t s = time(NULL);
|
time_t s = time(NULL);
|
||||||
int ms = (int)(now_realtime_ms() % 1000);
|
int ms = (int)fmod(now_realtime_ms(), 1000.0);
|
||||||
struct tm gm;
|
struct tm gm;
|
||||||
gmtime_r(&s, &gm);
|
gmtime_r(&s, &gm);
|
||||||
strftime(buf, sz, "%Y-%m-%dT%H:%M:%S.", &gm);
|
strftime(buf, sz, "%Y-%m-%dT%H:%M:%S.", &gm);
|
||||||
|
|
@ -175,8 +174,8 @@ void executor_execute_triangle(executor_thread_t *et,
|
||||||
|
|
||||||
char ts_buf[32];
|
char ts_buf[32];
|
||||||
char corr_id[64];
|
char corr_id[64];
|
||||||
int64_t exec_start_rt = now_realtime_ms();
|
double exec_start_rt = now_realtime_ms();
|
||||||
int64_t exec_start_mono = now_mono_ms();
|
double exec_start_mono = now_mono_ms();
|
||||||
double leg_timings[6] = {0}; /* leg0_order, leg0_fill, leg1_order, leg1_fill, leg2_order, leg2_fill */
|
double leg_timings[6] = {0}; /* leg0_order, leg0_fill, leg1_order, leg1_fill, leg2_order, leg2_fill */
|
||||||
snprintf(corr_id, sizeof(corr_id), "%08x%08x%08x%08x",
|
snprintf(corr_id, sizeof(corr_id), "%08x%08x%08x%08x",
|
||||||
(unsigned)(uintptr_t)&sig->legs.legs[0] ^ (unsigned)sig->ts_ms,
|
(unsigned)(uintptr_t)&sig->legs.legs[0] ^ (unsigned)sig->ts_ms,
|
||||||
|
|
@ -208,20 +207,20 @@ void executor_execute_triangle(executor_thread_t *et,
|
||||||
/* Build a client OID */
|
/* Build a client OID */
|
||||||
char client_oid[64];
|
char client_oid[64];
|
||||||
snprintf(client_oid, sizeof(client_oid), "c%08x%04x",
|
snprintf(client_oid, sizeof(client_oid), "c%08x%04x",
|
||||||
(unsigned)(now_realtime_ms() & 0xFFFFFFFF),
|
(unsigned)((uint64_t)now_realtime_ms() & 0xFFFFFFFF),
|
||||||
(unsigned)leg);
|
(unsigned)leg);
|
||||||
|
|
||||||
fills[leg][4] = input_vol;
|
fills[leg][4] = input_vol;
|
||||||
|
|
||||||
/* ── Capture order fire timing BEFORE sending (realtime) ── */
|
/* ── Capture order fire timing BEFORE sending (realtime) ── */
|
||||||
int64_t t0 = now_mono_ms();
|
double t0 = now_mono_ms();
|
||||||
if (leg < 6) leg_timings[leg * 2] = (double)(now_realtime_ms() - exec_start_rt);
|
if (leg < 6) leg_timings[leg * 2] = (double)(now_realtime_ms() - exec_start_rt);
|
||||||
|
|
||||||
/* ── Place order ── */
|
/* ── Place order ── */
|
||||||
char order_id[32] = {0};
|
char order_id[32] = {0};
|
||||||
char err_msg[128] = {0};
|
char err_msg[128] = {0};
|
||||||
bool ok = false;
|
bool ok = false;
|
||||||
int64_t order_fire_ms_tracking = t0;
|
double order_fire_ms_tracking = t0;
|
||||||
|
|
||||||
if (sig->live) {
|
if (sig->live) {
|
||||||
ok = rest_order_place(et->rest, sl->symbol, sl->side,
|
ok = rest_order_place(et->rest, sl->symbol, sl->side,
|
||||||
|
|
@ -248,7 +247,7 @@ void executor_execute_triangle(executor_thread_t *et,
|
||||||
format_ts(ts_buf, sizeof(ts_buf));
|
format_ts(ts_buf, sizeof(ts_buf));
|
||||||
executor_write_report(
|
executor_write_report(
|
||||||
"%s ORDER | corr=%s | leg%d | %s | %s | vol=%.10g | "
|
"%s ORDER | corr=%s | leg%d | %s | %s | vol=%.10g | "
|
||||||
"order_id=%s | lat=%.1fms\n",
|
"order_id=%s | lat=%.3fms\n",
|
||||||
ts_buf, corr_id, leg, sl->symbol, sl->side,
|
ts_buf, corr_id, leg, sl->symbol, sl->side,
|
||||||
input_vol, ok ? order_id : "NONE", fills[leg][5]);
|
input_vol, ok ? order_id : "NONE", fills[leg][5]);
|
||||||
}
|
}
|
||||||
|
|
@ -258,7 +257,7 @@ void executor_execute_triangle(executor_thread_t *et,
|
||||||
format_ts(ts_buf, sizeof(ts_buf));
|
format_ts(ts_buf, sizeof(ts_buf));
|
||||||
executor_write_report(
|
executor_write_report(
|
||||||
"%s REJECTED | corr=%s | leg%d | %s | %s | vol=%.10g | "
|
"%s REJECTED | corr=%s | leg%d | %s | %s | vol=%.10g | "
|
||||||
"error=%s | lat=%.1fms\n",
|
"error=%s | lat=%.3fms\n",
|
||||||
ts_buf, corr_id, leg, sl->symbol, sl->side,
|
ts_buf, corr_id, leg, sl->symbol, sl->side,
|
||||||
input_vol, err_msg, fills[leg][5]);
|
input_vol, err_msg, fills[leg][5]);
|
||||||
success = false;
|
success = false;
|
||||||
|
|
@ -330,7 +329,7 @@ void executor_execute_triangle(executor_thread_t *et,
|
||||||
format_ts(ts_buf, sizeof(ts_buf));
|
format_ts(ts_buf, sizeof(ts_buf));
|
||||||
executor_write_report(
|
executor_write_report(
|
||||||
"%s FILL | corr=%s | leg%d | %s | %s | "
|
"%s FILL | corr=%s | leg%d | %s | %s | "
|
||||||
"out=%.10g@%.6g | fee=%.6g %s | lat=%.1fms\n",
|
"out=%.10g@%.6g | fee=%.6g %s | lat=%.3fms\n",
|
||||||
ts_buf, corr_id, leg, sl->symbol, sl->side,
|
ts_buf, corr_id, leg, sl->symbol, sl->side,
|
||||||
is_buy ? total_size : total_funds, avg_price,
|
is_buy ? total_size : total_funds, avg_price,
|
||||||
total_fee, sl->fee_currency,
|
total_fee, sl->fee_currency,
|
||||||
|
|
@ -406,7 +405,7 @@ void executor_execute_triangle(executor_thread_t *et,
|
||||||
effective_bps = (profit / leg0_in) * 10000.0;
|
effective_bps = (profit / leg0_in) * 10000.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int64_t total_ms = now_mono_ms() - exec_start_mono;
|
double total_ms = now_mono_ms() - exec_start_mono;
|
||||||
|
|
||||||
/* ── Build timing string (t0 = book_update_arrived = 0.0ms) ── */
|
/* ── Build timing string (t0 = book_update_arrived = 0.0ms) ── */
|
||||||
char timings_str[512] = "";
|
char timings_str[512] = "";
|
||||||
|
|
@ -416,7 +415,7 @@ void executor_execute_triangle(executor_thread_t *et,
|
||||||
if (book_base > 0) {
|
if (book_base > 0) {
|
||||||
if (sig->book_ts_ms > 0)
|
if (sig->book_ts_ms > 0)
|
||||||
tp += snprintf(timings_str + tp, sizeof(timings_str) - tp,
|
tp += snprintf(timings_str + tp, sizeof(timings_str) - tp,
|
||||||
"t-1_snapshot=%.1fms ",
|
"t-1_snapshot=%.3fms ",
|
||||||
(double)((int64_t)sig->book_ts_ms - book_base));
|
(double)((int64_t)sig->book_ts_ms - book_base));
|
||||||
|
|
||||||
tp += snprintf(timings_str + tp, sizeof(timings_str) - tp,
|
tp += snprintf(timings_str + tp, sizeof(timings_str) - tp,
|
||||||
|
|
@ -424,7 +423,7 @@ void executor_execute_triangle(executor_thread_t *et,
|
||||||
|
|
||||||
if (sig->ts_ms > 0)
|
if (sig->ts_ms > 0)
|
||||||
tp += snprintf(timings_str + tp, sizeof(timings_str) - tp,
|
tp += snprintf(timings_str + tp, sizeof(timings_str) - tp,
|
||||||
"t1_signal=%.1fms ",
|
"t1_signal=%.3fms ",
|
||||||
(double)((int64_t)sig->ts_ms - book_base));
|
(double)((int64_t)sig->ts_ms - book_base));
|
||||||
|
|
||||||
double sig_recv = (double)(exec_start_rt - book_base);
|
double sig_recv = (double)(exec_start_rt - book_base);
|
||||||
|
|
@ -433,9 +432,9 @@ void executor_execute_triangle(executor_thread_t *et,
|
||||||
double f = leg_timings[l * 2 + 1];
|
double f = leg_timings[l * 2 + 1];
|
||||||
if (fills[l][0] > 0) {
|
if (fills[l][0] > 0) {
|
||||||
tp += snprintf(timings_str + tp, sizeof(timings_str) - tp,
|
tp += snprintf(timings_str + tp, sizeof(timings_str) - tp,
|
||||||
"t%d_leg%d_order=%.1fms ", 2 + l * 2, l, sig_recv + o);
|
"t%d_leg%d_order=%.3fms ", 2 + l * 2, l, sig_recv + o);
|
||||||
tp += snprintf(timings_str + tp, sizeof(timings_str) - tp,
|
tp += snprintf(timings_str + tp, sizeof(timings_str) - tp,
|
||||||
"t%d_leg%d_fill=%.1fms ", 3 + l * 2, l, sig_recv + f);
|
"t%d_leg%d_fill=%.3fms ", 3 + l * 2, l, sig_recv + f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -462,7 +461,7 @@ void executor_execute_triangle(executor_thread_t *et,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
int n = snprintf(fills_str + fills_pos, sizeof(fills_str) - fills_pos,
|
int n = snprintf(fills_str + fills_pos, sizeof(fills_str) - fills_pos,
|
||||||
"%sL%d:%s %s %s->%s %.10g@%.6g(fee=%.6g %s lat=%.1fms)",
|
"%sL%d:%s %s %s->%s %.10g@%.6g(fee=%.6g %s lat=%.3fms)",
|
||||||
leg > 0 ? ", " : "",
|
leg > 0 ? ", " : "",
|
||||||
leg, side, pair, in_ccy, out_ccy,
|
leg, side, pair, in_ccy, out_ccy,
|
||||||
fills[leg][0], fills[leg][1], fills[leg][2],
|
fills[leg][0], fills[leg][1], fills[leg][2],
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
#define MAX_TRIANGLES 16384
|
#define MAX_TRIANGLES 16384
|
||||||
#define MAX_CURRENCIES 512
|
|
||||||
|
|
||||||
/* Describes one triangular arbitrage path of three trading pairs */
|
/* Describes one triangular arbitrage path of three trading pairs */
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue