Strategy · Pine Script v6 · On the chart

PF IES Probe 08 - Equity Sizing

by pineforge-4pass· code credited to PineForge contributors 2026

PF IES Probe 08 is a strategy designed to evaluate equity-feedback dynamic position sizing logic.

View on GitHub

GitHub stars1on the repository
Pine versionv6current
Lines of code95
Settings7inputs
LicenceApache-2.0
Last update5 days ago23 Oct 2026

Add It to Your TradingView Chart

  1. 1Copy the scriptPress Copy script above, or the copy button on the code below.
  2. 2Open the Pine EditorOpen a TradingView chart and choose Pine Editor at the bottom of the screen.
  3. 3Paste over the templateCreate a new strategy, select all of the template text and paste. Press Save and give it a name.
  4. 4Add it to the chartPress Add to chart. The trades and results appear in the Strategy Tester tab; adjust the settings with the gear icon.

Source Code

95 lines of Pine Script v6 from validation/composite-ies-equity-feedback-sizing-01/strategy.pine, published under Apache-2.0. Keep the author's credit and licence lines when you reuse it.

strategy.pine
// This Pine Script® code is licensed under Apache-2.0
// SPDX-License-Identifier: Apache-2.0
// © PineForge contributors 2026
//
// IES probe 08 — equity-feedback dynamic position sizing (rev 2)
//
// Purpose: isolate the IES integration probe family's equity-feedback
// sizing loop, which is architecturally distinct from every other IES
// component because the `qty=` argument depends on `strategy.equity` —
// itself a function of every prior trade's PnL. Any single drift earlier
// in the trade tape permanently changes the sequence of qty values from
// that bar forward, even if the entry/exit boundary decisions agree:
//
//   account_risk = strategy.equity * (i_risk_pct/100) * regime_size_mult * quality_mult
//   long_risk    = atr_val * adaptive_stop_mult
//   qty          = account_risk / long_risk
//
// Design note (rev 2): the previous revision used
// ``ta.crossover(close, ema(close, 20))`` as the entry trigger, which made
// the trade list sensitive to TV's chart-history-driven EMA seed
// (TV's chart had bars before our OHLCV CSV starts, so its EMA was
// already-converged at bar 0 of our reference; the engine seeded fresh
// from OHLCV bar 0). That gave a 6-hour shift on the very first
// crossover and cascaded into wildly different qty/equity tapes —
// conflating warmup mismatch with the actual equity-feedback contract
// under test. This rev replaces the trigger with a TIME-OF-DAY gate
// (`hour == 0 and minute == 15`, fires once per UTC day) so engine and
// TV ALWAYS agree on which bars trigger entries. Any remaining
// engine↔TV drift is then attributable solely to the equity-feedback
// arithmetic.
//
// Trade shape: enter long at chart 00:15 each day; exit via static
// ATR-multiple stop+target. `pyramiding=1`, `default_qty_type=
// strategy.fixed`, and the `qty=` argument override the default
// per-entry. If TV and engine agree on entry timestamps but disagree
// on PnL or final equity, the equity-feedback compounding is the gap.
//
// TV setup: 15m chart, ETH-USDT-USDT, same window as
// data/ohlcv_ETH-USDT-USDT_15m.csv. Export "List of trades" → trades.csv.
//@version=6
strategy("PF IES probe 08 - equity sizing", shorttitle="IES_p08_SIZE", overlay=true,
     initial_capital=1000000,
     commission_type=strategy.commission.percent, commission_value=0, slippage=0,
     default_qty_type=strategy.fixed, default_qty_value=1, pyramiding=1,
     process_orders_on_close=false)

// ---- inputs (mirrored from IES sizing block) -----------------------
float i_risk_pct       = input.float(1.0, "Risk Per Trade %",     minval=0.1, maxval=5.0, step=0.1)
float i_atr_stop_mult  = input.float(2.0, "ATR Stop Multiplier",  minval=1.0, maxval=5.0, step=0.5)
float i_atr_tp_mult    = input.float(4.0, "ATR Target Multiplier",minval=1.0, maxval=10.0,step=0.5)
float i_adx_trend      = input.float(25,  "ADX Trend Threshold",  minval=15,  maxval=40)
float i_trend_mult     = input.float(1.2, "Trending Size Mult",   minval=0.5, maxval=2.0, step=0.1)
float i_neutral_mult   = input.float(1.0, "Neutral Size Mult",    minval=0.5, maxval=2.0, step=0.1)
float i_quality_mult   = input.float(1.15,"Quality Mult (fixed)", minval=1.0, maxval=1.5, step=0.05)

// ---- regime gate (single boundary; full ADX is in ies-probe-01) ----
[plus_di, minus_di, adx_val] = ta.dmi(14, 14)
bool trending_regime = adx_val >= i_adx_trend

// ---- adaptive multiplier (collapsed to two branches) ---------------
float regime_size_mult = trending_regime ? i_trend_mult : i_neutral_mult

// ---- ATR + stop/target distances -----------------------------------
float atr_val = ta.atr(14)
float long_risk = atr_val * i_atr_stop_mult

// ---- equity-feedback qty (THE thing under test) --------------------
float account_risk       = strategy.equity * (i_risk_pct / 100.0) * regime_size_mult * i_quality_mult
float long_position_size = long_risk > 0 ? account_risk / long_risk : 0.0

// ---- TIME-OF-DAY entry gate (deterministic across engines) ---------
// Once-per-UTC-day at 00:15. The same bar fires in TV and engine, so any
// trade-list drift is the equity-feedback arithmetic itself, not the
// triggering indicator's warmup-driven seed mismatch.
bool long_entry = hour == 0 and minute == 15
     and strategy.position_size == 0
     and not na(atr_val)
     and not na(adx_val)

var float entryStop = na
var float entryTP   = na

if long_entry
    entryStop := close - atr_val * i_atr_stop_mult
    entryTP   := close + atr_val * i_atr_tp_mult
    strategy.entry("L", strategy.long, qty=long_position_size, comment="dyn qty long")
    strategy.exit("LX", "L", stop=entryStop, limit=entryTP, comment="bracket")

// @pf-trace ies_equity=strategy.equity
// @pf-trace ies_accountRisk=account_risk
// @pf-trace ies_longRisk=long_risk
// @pf-trace ies_qty=long_position_size
// @pf-trace ies_longEntry=long_entry
// @pf-trace ies_atr=atr_val
// @pf-trace ies_adx=adx_val

Overview

PF IES Probe 08 - Equity Sizing determines market regimes using the Average Directional Index to scale position size dynamically based on current strategy equity, user-defined risk percentage, and regime multipliers. Entries trigger daily at a fixed time of day, while exits are managed via ATR-based stop loss and take profit levels. Key inputs allow customization of risk percentage, ATR multipliers, ADX trend threshold, and sizing multipliers. The strategy plots directly on the main price chart.

Details

Published by

pineforge-4pass on GitHub

Code credit

PineForge contributors 2026, as written in the script's header

Type

Strategy, Pine Script v6

Draws

On the price chart

Category

Trend, Volatility & bands

Markets

Crypto

Timeframes

M15-H1

Risk Notes

No repainting, lookahead or stacked entries were found in its code or README. That says nothing about how well it works: test it first.

Topics

algorithmic-tradingbacktestingparitypine-scriptpinescriptquantitative-financetest-corpustradingview

Settings

The inputs you can change from the gear icon on the chart. Defaults are the author's.

SettingTypeDefaultVariable
Risk Per Trade %float1.0i_risk_pct
ATR Stop Multiplierfloat2.0i_atr_stop_mult
ATR Target Multiplierfloat4.0i_atr_tp_mult
ADX Trend Thresholdfloat25i_adx_trend
Trending Size Multfloat1.2i_trend_mult
Neutral Size Multfloat1.0i_neutral_mult
Quality Mult (fixed)float1.15i_quality_mult
Third-party code. ForexR did not write, test or endorse this script, and the summary above was generated automatically from its code and README. Indicators describe the past, and a strategy's backtest can look better than live trading, especially when a script repaints. Check it in the Strategy Tester and on a demo account before you rely on it.

Similar Pine Scripts

330 stars

This strategy calculates Bollinger Bands and Aroon oscillator values to identify mean-reversion opportunities. It enters a long position using full equity when the closing price crosses below the lower Bollinger Band while Aroon Up remains above a user-specifi

Strategy v5 Mean reversionVolatility & bands
Updated 2 months ago · None stated GitHub repository of Bollinger bands + Aroon [Alorse]
257 stars

This overlay strategy targets one-minute ES futures and plots volume-weighted moving-average bands from the open, scaled by a standard-deviation multiple, plus a slower band from ten-minute opens. A higher-timeframe exponential moving average can filter trades

Strategy v6 Moving averagesVolatility & bands
Updated 6 weeks ago · None stated GitHub repository of ES - Futures 1M No Repaint

STRG-BBForce

by harryguiacorn
219 stars

STRG-BBForce is a Bollinger Bands trend-following strategy. It calculates standard Bollinger Bands and tracks directional alignment across the upper, lower, and basis lines. When all three lines slope upward, it opens a long position and closes short positions

Strategy v5 TrendVolatility & bands
Updated 1 year ago · None stated GitHub repository of STRG-BBForce

Nasdaq Prop Firm Strategy

by TradersPost
218 stars

This strategy uses multiple VWAP anchors and a custom Lull indicator to generate buy and sell signals on the Nasdaq price chart. It plots the VWAP trend line and three VWAP anchors with customizable colors and mitigation methods. The Lull indicator produces si

Strategy v6 TrendSupport & resistance Repaints
Updated 3 months ago · None stated GitHub repository of Nasdaq Prop Firm Strategy

This strategy implements a single-layer perceptron machine learning model built from scratch to generate trading signals directly on the price chart. It calculates predictions based on sample size, threshold settings, and optional volatility or volume filters.

Strategy v5 AI / machine learningTrend
Updated 1 year ago · None stated GitHub repository of Machine Learning: Perceptron-Based Strategy [5] (v.3)
106 stars

This overlay strategy plots a two-timeframe Ichimoku setup on the price chart, with Tenkan, Kijun, Chikou, and Kumo from a base higher timeframe and an optional highest-timeframe cloud. It allows two entries in the same direction and uses ATR-based trailing st

Strategy v4 TrendVolatility & bands
Updated 2 years ago · GPL-3.0 GitHub repository of 2Tier Ichimoku Pyramiding [Takazudo]

More strategys

Trade Your Charts With a Regulated Broker

Compare brokers that connect to TradingView, with spreads, minimum deposits and leverage side by side.

Compare brokers