PINE LIBRARY

equity_curve

427
Library "equity_curve"

f_remove_exchange_name(name)
  Remove exchange prefix from ticker string (e.g., "BINANCE:BTCUSD" → "BTCUSD")
  Parameters:
    name (simple string): Ticker string potentially containing exchange prefix
  Returns: Ticker without exchange prefix

f_roc()
  Calculate bar-over-bar return as decimal (close-to-close, for buy-and-hold)
  Returns: Return as decimal (e.g., 0.02 for +2%)

f_roc_entry()
  Calculate open-to-close return (realistic strategy entry assumption at bar open)
  Returns: Intrabar return as decimal

f_equity(ticker1, ticker2, ticker3, ticker4, ticker5, ticker6, best_asset, r1, r2, r3, r4, r5, r6, backtest, prev_equity, prev_peak, prev_dd)
  Calculate strategy equity for a rotation system (stateless — caller must maintain var state).
Uses best_asset[2] so signal is visible 1 bar before equity acts on it.
  Parameters:
    ticker1 (simple string): Asset 1 ticker string
    ticker2 (simple string): Asset 2 ticker string
    ticker3 (simple string): Asset 3 ticker string
    ticker4 (simple string): Asset 4 ticker string
    ticker5 (simple string): Asset 5 ticker string
    ticker6 (simple string): Asset 6 ticker string
    best_asset (string): The currently selected best-performing asset ticker
    r1 (float): Per-bar return for asset 1 (open-to-close)
    r2 (float): Per-bar return for asset 2
    r3 (float): Per-bar return for asset 3
    r4 (float): Per-bar return for asset 4
    r5 (float): Per-bar return for asset 5
    r6 (float): Per-bar return for asset 6
    backtest (bool): Whether backtesting is active this bar
    prev_equity (float): Previous bar's equity value (caller initializes var as na)
    prev_peak (float): Previous bar's peak equity value (caller initializes var as na)
    prev_dd (float): Previous bar's max drawdown value (caller initializes var as 0.0)
  Returns: [equity, peak_equity, max_drawdown]

f_buy_and_hold(r, backtest, prev_equity, prev_peak, prev_dd)
  Calculate buy-and-hold equity for a single asset (stateless — caller must maintain var state)
  Parameters:
    r (float): Per-bar return (close-to-close)
    backtest (bool): Whether backtesting is active this bar
    prev_equity (float): Previous bar's equity value (caller initializes var as na)
    prev_peak (float): Previous bar's peak equity value (caller initializes var as na)
    prev_dd (float): Previous bar's max drawdown value (caller initializes var as 0.0)
  Returns: [equity, peak_equity, max_drawdown]

f_since(active, prev_count)
  Calculate lookback period as bar count since condition became true (stateless — caller must maintain var state)
  Parameters:
    active (bool): Whether the counting condition is active this bar
    prev_count (int): Previous bar's raw count (caller initializes var as 0)
  Returns: [output, count] — output is the adjusted lookback for metrics; count is the raw counter to feed back next bar

f_best_asset_col(ticker1, ticker2, ticker3, ticker4, ticker5, ticker6, best_asset, backtest, colors)
  Return color for equity curve based on currently held asset.
Uses best_asset[1] so signal is visible 1 bar before equity execution.
  Parameters:
    ticker1 (simple string): Asset 1 ticker string
    ticker2 (simple string): Asset 2 ticker string
    ticker3 (simple string): Asset 3 ticker string
    ticker4 (simple string): Asset 4 ticker string
    ticker5 (simple string): Asset 5 ticker string
    ticker6 (simple string): Asset 6 ticker string
    best_asset (string): The confirmed best-performing asset ticker
    backtest (bool): Whether backtesting is active
    colors (array<color>): Array of 8 colors: [asset1, asset2, asset3, asset4, asset5, asset6, usd, text]
  Returns: Color corresponding to the currently held asset

f_PerformanceMetrics(base, Lookback, backtest, max_drawdown)
  Calculate performance metrics from an equity curve
  Parameters:
    base (float): The equity curve series
    Lookback (int): Number of bars to analyze (capped at 4998)
    backtest (bool): Whether backtesting is active
    max_drawdown (float): Maximum drawdown value (pre-calculated, as decimal e.g. 0.25 = 25%)
  Returns: Array of 10 floats: [mean_all%, mean_pos%, mean_neg%, stdev_all%, stdev_pos%, stdev_neg%, sharpe, sortino, omega, max_dd%]

f_PerfMetricTable(p, ticker1, ticker2, ticker3, ticker4, ticker5, ticker6, strategy, a1, a2, a3, a4, a5, a6, colors)
  Populate a performance metrics comparison table. Caller must create the table with `var` and pass it in.
Should only be called on barstate.islast.
  Parameters:
    p (table): Pre-created table (caller uses: var table p = table.new(position.top_left, 8, 15, ...))
    ticker1 (simple string): Asset 1 ticker string
    ticker2 (simple string): Asset 2 ticker string
    ticker3 (simple string): Asset 3 ticker string
    ticker4 (simple string): Asset 4 ticker string
    ticker5 (simple string): Asset 5 ticker string
    ticker6 (simple string): Asset 6 ticker string
    strategy (array<float>): Strategy metrics array (from f_PerformanceMetrics)
    a1 (array<float>): Buy-and-hold metrics for asset 1
    a2 (array<float>): Buy-and-hold metrics for asset 2
    a3 (array<float>): Buy-and-hold metrics for asset 3
    a4 (array<float>): Buy-and-hold metrics for asset 4
    a5 (array<float>): Buy-and-hold metrics for asset 5
    a6 (array<float>): Buy-and-hold metrics for asset 6
    colors (array<color>): Array of 8 colors
  Returns: The table object

면책사항

해당 정보와 게시물은 금융, 투자, 트레이딩 또는 기타 유형의 조언이나 권장 사항으로 간주되지 않으며, 트레이딩뷰에서 제공하거나 보증하는 것이 아닙니다. 자세한 내용은 이용 약관을 참조하세요.