Suppose you want to predict the price of some stock. Let's say you use the following features.
OpenPrice
HighPrice
LowPrice
ClosePrice
Is it useful to create new features like the following ones?
BodySize = ClosePrice - OpenPrice
or the size of the tail
TailUp = HighPrice - Max(OpenPrice, ClosePrice)
Or we don't need to do that because we are adding noise and the neural network is going to calculate those values inside?
The case of the body size maybe is a bit different from the tail, because for the tail we need to use a non-linear function (the max operation). So maybe is it important to add the input when it is not a linear relationship between the other inputs not if it's linear?
Another example. Consider a box, with height $X$, width $Y$ and length $Z$.
And suppose the real important input is the volume, will the neural network discover that the correlation is $X * Y * Z$? Or we need to put the volume as input too?
Sorry if it's a dumb question but I'm trying to understand what is doing internally the neural network with the inputs, if it's finding (somehow) all the mathematically possible relations between all the inputs or we need to specify the relations between the inputs that we consider important (heuristically) for the problem to solve?