PineForge v0.13.1-379-g9b50973
Deterministic PineScript v6 backtest runtime — C ABI reference
Loading...
Searching...
No Matches
reservation_expansion.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <cstdint>
4#include <optional>
5
6namespace pineforge {
7
8enum class PositionSide;
9
10inline namespace reservation_expansion_v1 {
11
13 std::int64_t position_cycle = 0;
15 std::optional<std::uint64_t> first_later_admission;
16};
17
18// Adapter-owned reservation evidence. It has no matching authority: the
19// native cohort owner remains the one executable representation of growth.
21public:
22 void capture(std::uint64_t receiver, std::int64_t cycle, PositionSide side,
23 double capacity);
24 void close_population(std::uint64_t admitted_incarnation);
25 const std::optional<ReservationExpansionCapture>& capture() const noexcept {
26 return capture_;
27 }
28 bool population_open() const noexcept {
29 return capture_ && !capture_->first_later_admission;
30 }
31 bool owns_exposure(std::int64_t cycle, PositionSide side) const noexcept;
32 bool live_all(std::int64_t cycle, PositionSide side) const noexcept {
33 return population_open() && owns_exposure(cycle, side);
34 }
35 void grow(double& qty, std::int64_t before_cycle, PositionSide before_side,
36 double before_qty, std::int64_t after_cycle, PositionSide after_side,
37 double after_qty, double epsilon) const;
38private:
39 std::optional<ReservationExpansionCapture> capture_;
40};
41
43public:
44 void assign_capture(std::uint64_t source, std::uint64_t receiver);
45 const std::optional<std::uint64_t>& reservation_owner() const noexcept {
46 return reservation_owner_;
47 }
48private:
49 std::optional<std::uint64_t> reservation_owner_;
50};
51
52} // inline namespace reservation_expansion_v1
53} // namespace pineforge
void close_population(std::uint64_t admitted_incarnation)
bool owns_exposure(std::int64_t cycle, PositionSide side) const noexcept
void grow(double &qty, std::int64_t before_cycle, PositionSide before_side, double before_qty, std::int64_t after_cycle, PositionSide after_side, double after_qty, double epsilon) const
bool live_all(std::int64_t cycle, PositionSide side) const noexcept
void capture(std::uint64_t receiver, std::int64_t cycle, PositionSide side, double capacity)
const std::optional< ReservationExpansionCapture > & capture() const noexcept
void assign_capture(std::uint64_t source, std::uint64_t receiver)
const std::optional< std::uint64_t > & reservation_owner() const noexcept