Function Prototype
/* Crossany */
/* Type: math */
/* Input arrays: 2 Options: 0 Output arrays: 1 */
/* Inputs: real, real */
/* Options: none */
/* Outputs: crossany */
int ti_crossany_start(TI_REAL const *options);
int ti_crossany(int size,
TI_REAL const *const *inputs,
TI_REAL const *options,
TI_REAL *const *outputs);
Description
This documentation is still a work in progress. It has omissions, and it probably has errors too. If you see any issues, or have any general feedback, please get in touch.
Crossany is a simple function that indicates when two input arrays cross each other.
When given two inputs, A and B, cross returns 1 for the periods that A crosses above B.
$$crossany_{t} =
\begin{cases}
1 & \mathrm{if} \; a_{t} > b_{t} \; \mathrm{and} \; a_{t-1} \leq b_{t-1} \\
1 & \mathrm{if} \; a_{t} \lt b_{t} \; \mathrm{and} \; a_{t-1} \geq b_{t-1} \\
0 & \mathrm{else}
\end{cases}
$$
See Also
Example Usage
Calling From C
/* Example usage of Crossany */
/* Assuming that 'input1' and 'input2' are pre-loaded arrays of size 'in_size'. */
TI_REAL *inputs[] = {input1, input2};
TI_REAL options[] = {}; /* No options */
TI_REAL *outputs[1]; /* crossany */
/* Determine how large the output size is for our options. */
const int out_size = in_size - ti_crossany_start(options);
/* Allocate memory for output. */
outputs[0] = malloc(sizeof(TI_REAL) * out_size); assert(outputs[0] != 0); /* crossany */
/* Run the actual calculation. */
const int ret = ti_crossany(in_size, inputs, options, outputs);
assert(ret == TI_OKAY);
Calling From Lua (with Tulip Chart bindings)
-- Example usage of Crossany
crossany = ti.crossany(input1, input2)
Example Calculation
date | input | input2 | crossany |
---|---|---|---|
2005-11-01 | 81.59 | 81.85 | |
2005-11-02 | 81.06 | 81.20 | 0.00 |
2005-11-03 | 82.87 | 81.55 | 1.00 |
2005-11-04 | 83.00 | 82.91 | 0.00 |
2005-11-07 | 83.61 | 83.10 | 0.00 |
2005-11-08 | 83.15 | 83.41 | 1.00 |
2005-11-09 | 82.84 | 82.71 | 1.00 |
2005-11-10 | 83.99 | 82.70 | 0.00 |
2005-11-11 | 84.55 | 84.20 | 0.00 |
2005-11-14 | 84.36 | 84.25 | 0.00 |
2005-11-15 | 85.53 | 84.03 | 0.00 |
2005-11-16 | 86.54 | 85.45 | 0.00 |
2005-11-17 | 86.89 | 86.18 | 0.00 |
2005-11-18 | 87.77 | 88.00 | 1.00 |
2005-11-21 | 87.29 | 87.60 | 0.00 |
Chart
Other Indicators
Previous indicator: Vector Hyperbolic Cosine
Next indicator: Crossover
Random indicator: Average Directional Movement Index
Copyright © 2016-2024 Tulip Charts LLC. All Rights Reserved.