51int simple_ta_length(
double value,
const char* function,
const char* argument);
53int simple_ta_length(std::int64_t value,
const char* function,
const char* argument);
57inline double ta_number(
double value) {
return value; }
72 std::optional<T> object_;
77 if (!object_) object_.emplace(std::forward<Make>(make)());
80 bool bound()
const {
return object_.has_value(); }
82 template <
class Make,
class... Args>
83 decltype(
auto)
compute(Make&& make, Args&&... args) {
84 return bind(std::forward<Make>(make)).compute(std::forward<Args>(args)...);
86 template <
class Make,
class... Args>
87 decltype(
auto)
recompute(Make&& make, Args&&... args) {
88 return bind(std::forward<Make>(make)).recompute(std::forward<Args>(args)...);
100 static constexpr std::size_t
kChunk = 1024;
102 bool empty()
const {
return count_ == 0; }
104 long long last_bar()
const {
return first_bar_ + count_ - 1; }
107 void write(
long long bar,
double value, std::size_t keep);
110 double at(
long long bar)
const;
113 void push(
double value);
114 void drop_front_chunks(std::size_t keep);
116 std::vector<std::shared_ptr<const std::vector<double>>> frozen_;
117 std::vector<double> tail_;
118 long long first_bar_ = 0;
119 long long count_ = 0;
159 Result update(
double src,
long long length,
bool advance,
bool want_max,
160 const char* function);
170 long long prev_length = 0;
171 long long max_length = 0;
172 bool started =
false;
177 BarState saved_state_;
178 long long current_bar_ = 0;
179 bool has_bar_ =
false;
180 long long first_exec_bar_ = 0;
181 long long own_bar_ = -1;
188 double compute(
double src,
double length);
189 double recompute(
double src,
double length);
196 double compute(
double src,
double length);
197 double recompute(
double src,
double length);
204 double compute(
double src,
double length);
205 double recompute(
double src,
double length);
212 double compute(
double src,
double length);
213 double recompute(
double src,
double length);
247 bool latched_ =
false;
249 std::optional<ta::ATR> atr_;
258#define PINEFORGE_HAS_TA_SERIES_LENGTH 1
decltype(auto) recompute(Make &&make, Args &&... args)
decltype(auto) compute(Make &&make, Args &&... args)
long long last_bar() const
double at(long long bar) const
void write(long long bar, double value, std::size_t keep)
long long first_bar() const
static constexpr std::size_t kChunk
ta::SupertrendResult recompute(double factor, double atr_period, double high, double low, double close)
ta::SupertrendResult compute(double factor, double atr_period, double high, double low, double close)
double recompute(double src, double length)
double compute(double src, double length)
double compute(double src, double length)
double recompute(double src, double length)
double recompute(double src, double length)
double compute(double src, double length)
double compute(double src, double length)
double recompute(double src, double length)
Result update(double src, long long length, bool advance, bool want_max, const char *function)
static constexpr long long kMaxBarsBack
double ta_number(double value)
int simple_ta_length(double value, const char *function, const char *argument)
bool is_na(const Line &h)