Here's some C++ code that returns the valid
min and max premiums for the specified parameters.
Works both for Call and Put options.
If you see quotes outside these limits, then be alerted about fraudulent quotes...
Code:
struct MinMax_t
{
double Min, Max;
MinMax_t(const double AMin, const double AMax)
: Min(AMin), Max(AMax) {}
};
MinMax_t get_min_max_premium(const bool fCall, const double UnderlyingSpot, const double Strike)
{
return MinMax_t(max(0.0, fCall ? UnderlyingSpot - Strike : Strike - UnderlyingSpot),
fCall ? UnderlyingSpot : Strike);
}
Ie. calling the above function like this:
...
MinMax_t MM = get_min_max_premium(fCall, UnderlyingSpot, Strike);
...
Ie. the result is in the structure MM...