Quant trading strategies which float

Quant analytics spreads it wings out of finance

**NOTE**I now post my

**into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!**

*TRADING ALERTS*Quant trading strategies which float

Quant analytics spreads it wings out of finance

Why I choose double over float in C++

I am sure there is a better answer but I am basing on it this:

The default choice for a floating-point type should be

`double`

. This is also the type that you get with floating-point literals without a suffix or (in C) standard functions that operate on floating point numbers (e.g.`exp`

,`sin`

, etc.).

`float`

should only be used if you need to operate on a lot of floating-point numbers (think in the order of thousands or more) and analysis of the algorithm has shown that the reduced range and accuracy don’t pose a problem.

`long double`

can be used if you need more range or accuracy than`double`

, and if it provides this on your target platform.In summary,

`float`

and`long double`

should be reserved for use by the specialists, with`double`

for “every-day” use.http://programmers.stackexchange.com/questions/188721/when-do-you-use-float-and-when-do-you-use-double

Join my FREE newsletter to learn more about c++ in automated trading

Is the rounding gap resulting from using float in C++ considered immaterial/acceptable? Is it a normal practice? What about using a customized fixed-point class to do such math? What are your opinions? Thanks a lot in advance.

—

Be aware that the single / double issue is not from C++ but the machine architecture itself, you usually get exactly the same results from Excel VBA which in most other things has a very different view of the world.

—

A lot depends upon what you’re doing with it, errors accumulate, so you have to be careful when doing things where the i+1th result depends upon the i’th

Is the rounding gap resulting from using float in C++ considered immaterial/acceptable? Is it a normal practice? What about using a customized fixed-point class to do such math? What are your opinions? Thanks a lot in advance

—

Yes the rounding gap using float can and will have a impact, and for any financial application I would personally suggest NOT using float/double for money storage/calculations. You will regret it in the end.

Depending on the number of decimal points you wish to use, would depend on your solution.

Lets say you are only interested in 2 decimal points, in this case a long (or int) would work.

ie the number $100.10 would be stored as 10010.

Giving a:

Int range: -21,474,836.48 to 21,474,836.47

Long range: –92,233,720,368,547,758.08 to 92,233,720,368,547,758.07

If you want more than 2 decimal points then make sure you use atleast long.

If the number of decimal points would not leave enough for your upper limit, then separate the whole and decimal into 2 int (or long).

Note:

No matter which of the above I use, I always design 1 Money class that handles all the maths, string to display etc. This allows much easier to change the structure if you find you choose incorrectly at the beginning

—

It depends on what type of finance you are doing. But be ready to familiarize yourself with terms like tick size, tick value, tick size denominator and various numerators.

E.g.

* http://www.nyxdata.com/nysedata/default.aspx?tabid=993&id=739

* http://www.nyxdata.com/nysedata/default.aspx?tabid=993&id=29

In addition, there are techniques like http://en.wikipedia.org/wiki/Guard_digit