PineForge
v0.13.1-379-g9b50973
Deterministic PineScript v6 backtest runtime — C ABI reference
Loading...
Searching...
No Matches
leg_activation.hpp
Go to the documentation of this file.
1
#pragma once
2
#include <cstdint>
3
#include <optional>
4
#include <stdexcept>
5
6
namespace
pineforge
{
7
8
// Concrete lower bounds resolved when an exit binds an exposure cycle. Other
9
// path/price/lifetime constraints remain independent of this lower bound.
10
struct
ExitLegActivationBounds
{
11
int64_t
position_cycle
;
12
int64_t
stop_first_bar
;
13
int64_t
limit_first_bar
;
14
};
15
16
class
ExitLegActivation
{
17
public
:
18
void
bind
(
ExitLegActivationBounds
bounds
) {
19
if
(
bounds
.position_cycle <= 0 ||
bounds
.stop_first_bar < 0 ||
bounds
.limit_first_bar < 0)
20
throw
std::invalid_argument(
"invalid exit-leg activation bounds"
);
21
bounds_ =
bounds
;
22
}
23
void
unbind
() { bounds_.reset(); }
24
const
std::optional<ExitLegActivationBounds>&
bounds
()
const
{
return
bounds_; }
25
// An unbound value imposes no lower-bound constraint. Production EXIT
26
// producers bind on live exposure; exposure creation binds retained exits.
27
bool
stop_ready
(int64_t cycle, int64_t bar)
const
{
28
return
!bounds_ || (bounds_->position_cycle == cycle && bar >= bounds_->stop_first_bar);
29
}
30
bool
limit_ready
(int64_t cycle, int64_t bar)
const
{
31
return
!bounds_ || (bounds_->position_cycle == cycle && bar >= bounds_->limit_first_bar);
32
}
33
private
:
34
std::optional<ExitLegActivationBounds> bounds_;
35
};
36
37
}
// namespace pineforge
pineforge::ExitLegActivation
Definition
leg_activation.hpp:16
pineforge::ExitLegActivation::limit_ready
bool limit_ready(int64_t cycle, int64_t bar) const
Definition
leg_activation.hpp:30
pineforge::ExitLegActivation::bind
void bind(ExitLegActivationBounds bounds)
Definition
leg_activation.hpp:18
pineforge::ExitLegActivation::bounds
const std::optional< ExitLegActivationBounds > & bounds() const
Definition
leg_activation.hpp:24
pineforge::ExitLegActivation::unbind
void unbind()
Definition
leg_activation.hpp:23
pineforge::ExitLegActivation::stop_ready
bool stop_ready(int64_t cycle, int64_t bar) const
Definition
leg_activation.hpp:27
pineforge
Definition
bar.hpp:4
pineforge::ExitLegActivationBounds
Definition
leg_activation.hpp:10
pineforge::ExitLegActivationBounds::limit_first_bar
int64_t limit_first_bar
Definition
leg_activation.hpp:13
pineforge::ExitLegActivationBounds::position_cycle
int64_t position_cycle
Definition
leg_activation.hpp:11
pineforge::ExitLegActivationBounds::stop_first_bar
int64_t stop_first_bar
Definition
leg_activation.hpp:12
include
pineforge
leg_activation.hpp
PineForge v0.13.1-379-g9b50973 — Apache-2.0 —
github.com/pineforge-4pass/pineforge-engine