PineForge unreleased
Deterministic PineScript v6 backtest runtime — C ABI reference
Loading...
Searching...
No Matches
engine.hpp File Reference
#include <atomic>
#include <deque>
#include <vector>
#include <string>
#include <cstddef>
#include <cstdint>
#include <cmath>
#include <ctime>
#include <iterator>
#include <limits>
#include <memory>
#include <utility>
#include <set>
#include <algorithm>
#include <unordered_map>
#include <unordered_set>
#include <stdexcept>
#include <optional>
#include <functional>
#include <pineforge/execution_consumer.hpp>
#include "na.hpp"
#include "bar.hpp"
#include "broker_events.hpp"
#include "quantity_intent.hpp"
#include "execution.hpp"
#include "execution_close_scope.hpp"
#include "execution_close_selection.hpp"
#include "execution_projection.hpp"
#include "execution_reverse_to.hpp"
#include "position_close_obligation.hpp"
#include "order_cancellation.hpp"
#include "leg_activation.hpp"
#include "exit_leg_lifecycle.hpp"
#include "order_birth.hpp"
#include "series.hpp"
#include "timeframe.hpp"
#include "magnifier.hpp"
#include "session_time.hpp"
#include <pineforge/trade_ledger.hpp>
#include <pineforge/report_sequence.hpp>
#include <pineforge/pineforge.h>
#include <pineforge/report_mode.h>
#include <pineforge/report_pages.hpp>
#include <pineforge/metrics_fold.hpp>
#include <pineforge/report_sink_writer.hpp>
#include <pineforge/detail/scratch_slab.hpp>
Include dependency graph for engine.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  pineforge::StreamOrderAction
 
struct  pineforge::ClosedLotExcursionFacts
 
struct  pineforge::ClosedLotExcursion
 
struct  pineforge::PyramidEntry
 
struct  pineforge::Trade
 
struct  pineforge::TradeC
 
struct  pineforge::SecurityDiagC
 
struct  pineforge::TraceEntryC
 
struct  pineforge::ReportC
 
struct  pineforge::ReportEnvelopeV1
 
struct  pineforge::MetricsPlainDeclarationV1
 
struct  pineforge::MetricsPlainInputsV1
 
class  pineforge::engine_script_run_v19::OpenReportRowSource
 
class  pineforge::engine_script_run_v19::OpenReportRowSource::const_iterator
 
struct  pineforge::SymInfo
 
class  pineforge::engine_script_run_v19::BrokerStateHashSink
 
class  pineforge::engine_script_run_v19::BrokerStateHashProvider
 
class  pineforge::engine_script_run_v19::BacktestEngine
 
struct  pineforge::engine_script_run_v19::BacktestEngine::NativeConsumerBindTag
 
struct  pineforge::engine_script_run_v19::BacktestEngine::MetricsStreamingStateV1
 
class  pineforge::engine_script_run_v19::BacktestEngine::MetricsStreamingAttemptV1
 
struct  pineforge::engine_script_run_v19::BacktestEngine::BarTime
 
struct  pineforge::engine_script_run_v19::BacktestEngine::SecurityEvalState
 
struct  pineforge::engine_script_run_v19::BacktestEngine::NativeSecurityFeed
 
struct  pineforge::engine_script_run_v19::BacktestEngine::AbortFlag
 
struct  pineforge::engine_script_run_v19::BacktestEngine::AbortRequested
 
struct  pineforge::engine_script_run_v19::BacktestEngine::ExecutionConsumerSlot
 
struct  pineforge::engine_script_run_v19::BacktestEngine::OutputEvent
 
struct  pineforge::engine_script_run_v19::BacktestEngine::TradePercentPrefix
 

Namespaces

namespace  pineforge
 
namespace  pineforge::metrics
 
namespace  pineforge::report_sink
 
namespace  pineforge::report
 
namespace  pineforge::internal
 
namespace  pineforge::engine_script_run_v19
 

Macros

#define PINEFORGE_NO_STRATEGY_DECLS
 
#define PINEFORGE_HAS_TRADE_HISTORY_POLICY_V1   1
 
#define PINEFORGE_HAS_SCRIPT_RUN_PREPARE_V1   1
 
#define PINEFORGE_HAS_NATIVE_LIVE_V1   1
 
#define PINEFORGE_HAS_EQUITY_METRICS_FOLD_V1   1
 

Typedefs

using pineforge::LotExcursionHook = std::function<ClosedLotExcursion(const ClosedLotExcursionFacts&)>
 
using pineforge::ExitLegLifecycle = exit_legs::Lifecycle
 
using pineforge::InputsMap = std::unordered_map<std::string, std::string>
 

Enumerations

enum class  pineforge::PositionSide {
  pineforge::FLAT ,
  pineforge::LONG ,
  pineforge::SHORT
}
 
enum class  pineforge::OpenedLotFillPoint : std::uint8_t {
  pineforge::OnPath = 0 ,
  pineforge::AfterPath = 1
}
 
enum class  pineforge::ReportMode : std::uint32_t {
  pineforge::FULL = PF_REPORT_MODE_FULL ,
  pineforge::SUMMARY_ONLY = PF_REPORT_MODE_SUMMARY_ONLY ,
  pineforge::STREAMED = PF_REPORT_MODE_STREAMED
}
 
enum class  pineforge::QtyType {
  pineforge::FIXED = 0 ,
  pineforge::PERCENT_OF_EQUITY = 1 ,
  pineforge::CASH = 2
}
 
enum class  pineforge::CommissionType {
  pineforge::PERCENT = 0 ,
  pineforge::CASH_PER_ORDER = 1 ,
  pineforge::CASH_PER_CONTRACT = 2
}
 

Functions

std::int32_t strategy_set_metrics_streaming_v1 (void *strategy, std::uint32_t streaming_sharpe, std::uint64_t metrics_needed) noexcept
 
std::int32_t strategy_metrics_extent_receipt_v1 (const void *strategy, pineforge::metrics::MetricsExtentReceiptV1 *out) noexcept
 

Variables

constexpr std::size_t pineforge::engine_script_run_v19::kReportSinkHeldEquityPoints = 1
 

Macro Definition Documentation

◆ PINEFORGE_NO_STRATEGY_DECLS

#define PINEFORGE_NO_STRATEGY_DECLS

Definition at line 47 of file engine.hpp.

◆ PINEFORGE_HAS_TRADE_HISTORY_POLICY_V1

#define PINEFORGE_HAS_TRADE_HISTORY_POLICY_V1   1

Definition at line 57 of file engine.hpp.

◆ PINEFORGE_HAS_SCRIPT_RUN_PREPARE_V1

#define PINEFORGE_HAS_SCRIPT_RUN_PREPARE_V1   1

Definition at line 58 of file engine.hpp.

◆ PINEFORGE_HAS_NATIVE_LIVE_V1

#define PINEFORGE_HAS_NATIVE_LIVE_V1   1

Definition at line 59 of file engine.hpp.

◆ PINEFORGE_HAS_EQUITY_METRICS_FOLD_V1

#define PINEFORGE_HAS_EQUITY_METRICS_FOLD_V1   1

Definition at line 60 of file engine.hpp.

Function Documentation

◆ strategy_set_metrics_streaming_v1()

std::int32_t strategy_set_metrics_streaming_v1 ( void * strategy,
std::uint32_t streaming_sharpe,
std::uint64_t metrics_needed )
noexcept

◆ strategy_metrics_extent_receipt_v1()

std::int32_t strategy_metrics_extent_receipt_v1 ( const void * strategy,
pineforge::metrics::MetricsExtentReceiptV1 * out )
noexcept