Grouping entries by a custom date conditional
You could fetch your entries then split them in three arrays which would give you the ability to then add headings manually and display as you need to.

{# Define today and three arrays to hold your grouped entries #}
{% set today = now|atom %}
{% set futureBids = [] %}
{% set currentBids = [] %}
{% set pastBids = [] %}

{# Fetch your entries #}
{% set entries = craft.entries().section('bids').all() %}

{# Populate your groups #}
{% for entry in entries %}
    {% set starts = entry.biddingStartDate | atom %}
    {% set ends = entry.biddingEndDate | atom %}

    {# future #}
    {% if starts &gt; today %}
        {% set futureBids = futureBids | merge([entry]) %}

    {# current #}
    {% elseif starts &lt;= today and ends &gt; today %}
        {% set currentBids = currentBids | merge([entry]) %}

    {# past #}
    {% elseif ends &lt; today %}
        {% set pastBids = pastBids | merge([entry]) %}
    {% endif %}
{% endfor %}

{# Display as you need... #}

&lt;h2&gt;Current Bids&lt;/h2&gt;
&lt;hr&gt;
{% for entry in currentBids %}
    {{ entry.title }}&lt;br&gt;
{% endfor %}

&lt;h2&gt;Future Bids&lt;/h2&gt;
&lt;hr&gt;
{% for entry in futureBids %}
    {{ entry.title }}&lt;br&gt;
{% endfor %}


&lt;h2&gt;Past Bids&lt;/h2&gt;
&lt;hr&gt;
{% for entry in pastBids %}
    {{ entry.title }}&lt;br&gt;
{% endfor %}