WU Trading Library 0.2.0
A backtesting and trading strategy library
Loading...
Searching...
No Matches
init.c
Go to the documentation of this file.
1/**
2 * Implementation of data type initialization functions.
3 *
4 * (C) 2026 Jaime Lopez
5 */
6
7#include "wu.h"
8
9inline WU_Candle wu_candle_init(WU_TimeStamp timestamp, double open, double high, double low, double close, double volume) {
10 WU_Candle c;
11 c.timestamp = timestamp;
12 c.open = open;
13 c.high = high;
14 c.low = low;
15 c.close = close;
16 c.volume = volume;
18 return c;
19}
20
21inline WU_Trade wu_trade_init(WU_TimeStamp timestamp, double price, double volume, WU_Side side) {
22 WU_Trade t;
23 t.timestamp = timestamp;
24 t.price = price;
25 t.volume = volume;
26 t.side = side;
28 return t;
29}
30
31inline WU_Single wu_single_init(WU_TimeStamp timestamp, double value) {
32 WU_Single sv;
33 sv.timestamp = timestamp;
34 sv.value = value;
36 return sv;
37}
38
39inline WU_Signal wu_signal_init(WU_TimeStamp timestamp, WU_Side side, double price, double quantity) {
40 WU_Signal s;
41 s.timestamp = timestamp;
42 s.side = side;
43 s.price = price;
44 s.quantity = quantity;
45 return s;
46}
47
48bool wu_signal_validate(const WU_Signal* signal) {
49 if (!signal) return false;
50 if (signal->price <= 0.0) {
51 return false;
52 }
53 if (signal->quantity < 0.0) {
54 return false;
55 }
56 if (signal->side != WU_SIDE_HOLD &&
57 signal->side != WU_SIDE_BUY &&
58 signal->side != WU_SIDE_SELL) {
59 return false;
60 }
61 return true;
62}
bool wu_signal_validate(const WU_Signal *signal)
Definition init.c:48
WU_Single wu_single_init(WU_TimeStamp timestamp, double value)
Definition init.c:31
WU_Signal wu_signal_init(WU_TimeStamp timestamp, WU_Side side, double price, double quantity)
Definition init.c:39
WU_Candle wu_candle_init(WU_TimeStamp timestamp, double open, double high, double low, double close, double volume)
Implementation of data type initialization functions.
Definition init.c:9
WU_Trade wu_trade_init(WU_TimeStamp timestamp, double price, double volume, WU_Side side)
Definition init.c:21
WU_Candle represents an aggregated data point to represent how prices moved within a specific time pe...
Definition data.h:15
double high
Definition data.h:18
double close
Definition data.h:20
WU_TimeStamp timestamp
Definition data.h:16
double low
Definition data.h:19
double volume
Definition data.h:21
WU_DataType data_type
Definition data.h:22
double open
Definition data.h:17
WU_Signal represents a trading signal generated by a strategy.
Definition types.h:38
double price
Definition types.h:42
double quantity
Definition types.h:43
WU_TimeStamp timestamp
Definition types.h:40
WU_Side side
Definition types.h:41
WU_Single represents a single value with a timestamp, which can be a price, an indicator value,...
Definition data.h:47
WU_DataType data_type
Definition data.h:50
WU_TimeStamp timestamp
Definition data.h:48
double value
Definition data.h:49
A timestamp represent a mark in time given relative to unix epoch.
Definition timeutils.h:21
WU_Trade represents a single trade in the market, including the timestamp, price, volume,...
Definition data.h:32
WU_Side side
Definition data.h:36
WU_TimeStamp timestamp
Definition data.h:33
WU_DataType data_type
Definition data.h:37
double volume
Definition data.h:35
double price
Definition data.h:34
WU_Side
WU_Side represents the direction of a signal or a trade.
Definition types.h:11
@ WU_SIDE_HOLD
Definition types.h:12
@ WU_SIDE_SELL
Definition types.h:14
@ WU_SIDE_BUY
Definition types.h:13
@ WU_DATA_TYPE_TRADE
Definition types.h:26
@ WU_DATA_TYPE_SINGLE_VALUE
Definition types.h:27
@ WU_DATA_TYPE_CANDLE
Definition types.h:25