-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtulip.c
76 lines (60 loc) · 2.19 KB
/
tulip.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#define WM_TULIPC
#include "tulip.h"
double
tulip_adx(const int size, const int interval, const double *high, const double *low, const double *close, double *output)
{
const double options[] = { interval };
const double *inputs[] = { high, low, close };
double *outputs[] = { output };
if(ti_adx(size, inputs, options, outputs) != TI_OKAY)
exit_program("tulip_adx", FAIL);
return(output[size - (((interval - 1) * 2) + 1)]);
}
double
tulip_ema(const int size, const int interval, const double *input, double *output)
{
const double options[] = { interval };
const double *inputs[] = { input };
double *outputs[] = { output };
if(ti_ema(size, inputs, options, outputs) != TI_OKAY)
exit_program("tulip_ema", FAIL);
return(output[size - 1]);
}
void
tulip_fisher(const int size, const int interval, const double *high, const double *low, double *out_fish, double *out_sig)
{
const double options[] = { interval };
const double *inputs[] = { high, low };
double *outputs[] = { out_fish, out_sig };
if(ti_fisher(size, inputs, options, outputs) != TI_OKAY)
exit_program("tulip_fisher", FAIL);
}
void
tulip_macd(const int size, const int fast, const int slow, const int signal, const double *input, double *out_macd, double *out_sig, double *out_hist)
{
const double options[] = { fast, slow, signal };
const double *inputs[] = { input };
double *outputs[] = { out_macd, out_sig, out_hist };
if(ti_macd(size, inputs, options, outputs) != TI_OKAY)
exit_program("tulip_macd", FAIL);
}
double
tulip_rsi(const int size, const int interval, const double *input, double *output)
{
const double options[] = { interval };
const double *inputs[] = { input };
double *outputs[] = { output };
if(ti_rsi(size, inputs, options, outputs) != TI_OKAY)
exit_program("tulip_rsi", FAIL);
return(output[size - interval - 1]);
}
double
tulip_vwma(const int size, const int interval, const double *close, double *volume, double *output)
{
const double options[] = { interval };
const double *inputs[] = { close, volume };
double *outputs[] = { output };
if(ti_vwma(size, inputs, options, outputs) != TI_OKAY)
exit_program("tulip_vwma", FAIL);
return(output[size - interval]);
}