Pine Script Strategy for Goat Funded Trader

Goat Funded Trader runs a simpler rule set than most futures prop firms — no consistency rule, a 5-day minimum, and a trailing drawdown that rewards steady sizing. Here's how to configure a Pine Script strategy around it.

Goat Funded Trader (GFT) has built a reputation as one of the more straightforward futures prop firms to evaluate against — a modest day count, no consistency check, and a rule set that fits on one page. Here's how to configure an automated Pine Script strategy so it respects GFT's actual mechanics rather than a firm's marketing copy.

Goat Funded Trader evaluation rules

Account SizeProfit TargetMax DrawdownDrawdown Type
$25,000$1,500*$1,500*Trailing (resets on highest balance)
$50,000$3,000$2,500Trailing (resets on highest balance)
$100,000$6,000*$4,000*Trailing (resets on highest balance)
$150,000$9,000*$5,000*Trailing (resets on highest balance)
Only the $50k tier (*-free row above) is reconciled against Target Filled's firm data. The 25k/100k/150k figures follow GFT's stated linear scaling but haven't been independently verified — confirm current numbers at goatfundedtrader.com before sizing an evaluation. GFT does not publish a confirmed per-trade or per-day loss cap at any size — size positions against the trailing drawdown, not a daily limit.

Understanding GFT's trailing drawdown

GFT's own materials describe the mechanic plainly: as the account's equity grows, the drawdown floor grows with it. That's a peak-equity trailing threshold, not a fixed floor set at account open — every new high-water mark the account reaches becomes the new base the drawdown is measured from.

That matters for how a script should behave. Compare it against a genuinely static floor, like MyFundedFutures':

  • GFT (trailing): Start at $50,000, floor at $47,500. Equity runs up to $52,000 — the floor rises to $49,500. Give back $1,500 of that unrealized gain and the account is now $500 from the (raised) floor, not $4,000.
  • Static floor (MyFundedFutures-style): Start at $50,000, floor locked at $47,500 for the life of the evaluation. The same run-up to $52,000 leaves a full $4,500 of cushion regardless of what happens next.

A trailing floor doesn't punish a script the way a tight intraday trail can — GFT's own framing suggests the mechanic tracks equity highs rather than every tick — but it still means unrealized profit shouldn't be treated as banked. The practical rule for an automated strategy is the same one that applies on any trailing-drawdown firm: exit at your target, don't let a winning trade's paper gains sit open waiting to give the floor room to rise further before a pullback erases the edge.

Recommended contracts and sizing for GFT evals

AccountContractStarting CountSuggested Max Stop
$25kMES1–210 points MES
$50kMES or MNQ2–312 points MES / 40 ticks MNQ
$100kMES or MNQ4–612 points MES / 40 ticks MNQ

These are risk-management suggestions, not firm-mandated limits — GFT doesn't publish a maximum contract count in its published rules, so sizing is a self-imposed discipline against the trailing floor above.

Pine Script configuration checklist for GFT

Internal daily risk cap

With no confirmed daily loss limit published, a script still needs a self-imposed ceiling — otherwise a single bad session can eat straight into the trailing floor with nothing to stop it. A reasonable default is capping daily realized-plus-unrealized loss at roughly 20–25% of the account's max drawdown: $500–$625 on a 50k account. Once that threshold is crossed, halt new entries for the rest of the session.

No overnight positions

GFT requires flat positions ahead of the weekly close and before major holidays on most plans. Build a session-close flattener into the script: force-close any open position at a fixed time on Friday afternoon and ahead of a holiday closure, independent of whether the position is currently winning or losing.

Session filter

GFT doesn't publish explicit session restrictions, but restricting entries to RTH keeps signal quality high. Reasonable windows:

  • 9:30 AM – 11:30 AM ET (primary session)
  • 1:30 PM – 3:15 PM ET (afternoon session — works well for MES/ES)

ATR-based stop sizing

Because the floor only rises with new highs rather than tightening on every tick the way an intraday trail does, a GFT strategy can typically run a slightly wider stop than an equivalent Apex intraday-trailing setup — a 0.9× to 1.0× ATR multiple is a reasonable starting point, tightened if the account is trading close to its floor.

Sample strategy — Pine Script v5

EMA crossover filtered by VWAP direction, sized for a 50k GFT account ($2,500 trailing floor, no confirmed daily cap). The internal risk cap below defaults to 20% of the max drawdown.

Pine Script
// ── GFT 50k — EMA/VWAP with trailing-floor-aware risk cap ─────────
strategy("GFT — EMA + VWAP Filter", overlay = true,
     default_qty_type = strategy.fixed, default_qty_value = 1)

fastLen     = input.int(9,    "Fast EMA Length")
slowLen     = input.int(21,   "Slow EMA Length")
atrMult     = input.float(1.0,"ATR Stop Multiplier")
rrRatio     = input.float(1.5,"Reward:Risk Ratio")
riskCapPct  = input.float(0.20, "Internal Daily Risk Cap (% of max DD)")
maxDrawdown = input.float(2500.0, "Account Max Drawdown ($)")

inSession = not na(time("1", "0930-1130:23456", "America/New_York")) or
            not na(time("1", "1330-1515:23456", "America/New_York"))

newSession   = ta.change(time("D")) != 0
var float sessionStart = na
sessionStart := newSession ? strategy.equity : sessionStart
todayPnl     = strategy.equity - nz(sessionStart, strategy.equity)
riskCapDollars = maxDrawdown * riskCapPct
haltedForDay = todayPnl <= -riskCapDollars

fastEMA = ta.ema(close, fastLen)
slowEMA = ta.ema(close, slowLen)
vwapVal = ta.vwap(hlc3)
atrVal  = ta.atr(14)

longSignal  = ta.crossover(fastEMA, slowEMA)  and close > vwapVal and barstate.isconfirmed
shortSignal = ta.crossunder(fastEMA, slowEMA) and close < vwapVal and barstate.isconfirmed
flat        = strategy.position_size == 0
canTrade    = inSession and not haltedForDay and flat

if longSignal and canTrade
    stopPts = atrMult * atrVal
    strategy.entry("L", strategy.long)
    strategy.exit("L-x", "L", profit = stopPts * rrRatio / syminfo.mintick,
                               loss   = stopPts / syminfo.mintick)

if shortSignal and canTrade
    stopPts = atrMult * atrVal
    strategy.entry("S", strategy.short)
    strategy.exit("S-x", "S", profit = stopPts * rrRatio / syminfo.mintick,
                               loss   = stopPts / syminfo.mintick)

// ── weekly / holiday flatten ───────────────────────────────────────
weeklyFlatten = dayofweek == dayofweek.friday and
                not na(time("1", "1559-1601:6", "America/New_York"))
if weeklyFlatten and strategy.position_size != 0
    strategy.close_all("Weekly flatten")

Hitting the profit target on GFT's timeline

GFT requires 5 trading days minimum to complete an evaluation — comfortably fast if the strategy is producing consistent daily results, and not a rule that rewards rushing. A trailing floor still ratchets up on winning sessions, so there's no advantage to compressing the pass into as few sessions as possible: a steady, 5-plus-day approach with consistent small gains carries less risk than trying to hit the target in the minimum window with oversized positions.

GFT vs other prop firms for Pine Script traders

FeatureGoat Funded TraderApex Trader FundingTopstep
Drawdown typeTrailing (resets on highest balance)Intraday trailingEOD trailing
Min trading days5110
Consistency ruleNoneNone during eval; 30–50% at payoutNone on the Combine
Eval fee (50k, typical)~$150–$250*~$150*~$165*

* Pricing figures are typical/approximate and not part of Target Filled's reconciled firm data — verify current pricing directly with each firm.

GFT's absence of a consistency rule, combined with a trailing (not intraday-tick-sensitive) floor, makes it one of the more forgiving evaluation structures for a strategy that occasionally produces an outsized winning day. See our static vs. trailing drawdown guide for the mechanics behind each drawdown style referenced above.

FAQ

Does Goat Funded Trader allow automated trading?
Yes. GFT permits automated strategies on both the evaluation and funded stages — TradingView Pine Script connected through TradersPost is described as a common, accepted setup. As with any prop firm, keep the strategy individually run rather than a mass-distributed signal shared across many accounts at once, which can draw account review.
What futures can I trade on Goat Funded Trader?
GFT supports the usual CME/COMEX roster: equity index futures (MES, ES, MNQ, NQ), energy (CL), and metals (GC). Micro contracts — MES and MNQ — are the default choice on evaluation accounts because their lower tick value gives a strategy more trades of room inside the trailing drawdown before a stop-out becomes structurally risky.
How does GFT compare to Apex for evaluation rules?
Both use a trailing drawdown, so the sizing discipline is similar. Apex requires only a single trading day to complete its evaluation and adds a 30–50% consistency check at payout time on funded accounts; GFT requires a 5-day minimum but carries no consistency rule at all, which suits a strategy with an occasional outsized winning day. Apex's larger account menu and heavier trading-community presence are the main trade-offs against GFT's simpler rule set.

Pine Script strategies ready for Goat Funded Trader evaluations.

Trailing-drawdown-aware sizing, daily risk caps, and session filters included — invite-only on TradingView, monthly subscription.