🤖 EAs & automation

How to Automate Trading at a Futures Prop Firm: 3 Routes — NinjaTrader, TradingView, and APIs — and the Steps to Get a Bot Running on FTMO Futures (September 2026)

Published: 9/25/2026

Note: Each firm's rules were confirmed against official help articles between September 21-25, 2026 (for detail, see Futures prop firms: a full review of automated-trading rules across 28 firms). The step-by-step section describes work the site owner actually did on an FTMO Futures evaluation account in September 2026. Account numbers and strategy details are not included.

📢 Advertising / affiliate disclosure: This site does not hold affiliate links for any futures prop firms. The links in this article are ordinary links to official sites.

TL;DR

  • Futures props don't have MT4/MT5. An EA won't run as-is, so you need to rebuild it in one of three ways: NinjaTrader (NinjaScript), TradingView + a relay service, or an API.
  • NinjaTrader is the most straightforward. It connects directly to the account and can run continuously on a PC or a VPS. The language is C#.
  • Choose a firm based on whether it explicitly allows automated trading AND explicitly allows a VPS. FTMO Futures and FundedNext Futures are the only two that check both boxes.
  • Topstep allows bots, but only via its API, only from a home PC, and not on live accounts. Apex banned automated trading starting March 2026.
  • The four things that trip up the code are bar timing, time zones, the forced-liquidation time, and rolling contract months.

How it works: what a futures prop account actually connects to

With FX props, you log into "an MT5 server the firm provides." Futures props work differently — the firm creates the account on a connection such as Tradovate or Rithmic, and the trader places orders from whatever platform supports that connection.

ConnectionMain firmsPlatforms usable for automation
Tradovate / CQGFTMO Futures, FundedNext Futures, MFFU, Tradeify, E8 Futures, Lucid Trading (CQG accounts)NinjaTrader, TradingView (automation via a relay service)
RithmicBulenox, Lucid Trading (Rithmic accounts)NinjaTrader (Bulenox), Quantower, Sierra Chart, MultiCharts, and others
TopstepX (ProjectX)TopstepTopstepX API

Whether you can automate depends on both "the firm's rules" and "what the platform supports" — this is the big difference from FX.

The three ways to automate

MethodWhere it runsLanguageBest forWatch out for
① NinjaTrader's NinjaScriptYour own PC or a VPS (NinjaTrader kept running)C#Traders porting an MT5 EA. Bots that trade on time/price conditionsIf the PC/VPS stops, the bot stops too
② TradingView alerts + a relay serviceTradingView's servers → a relay service (PickMyTrade, TradersPost, etc.) → the accountPine ScriptTraders who already have a strategy written in PineTradingView only fires the alert — the relay service handles the actual order. You end up paying two subscriptions, and some firms charge extra (Bulenox charges $100/month for a third-party API connection). Whether you're even allowed to use a relay service needs to be checked firm by firm
③ APIA program you write yourselfWhatever you like — Python, etc.Traders who want to own the entire pipelineTradovate's API can't be used on prop accounts (details below). In practice this means Topstep's TopstepX API ($29/month, sim accounts only) or Bulenox's Rithmic connection ($100/month)

Tradovate's API cannot be used on prop firm accounts. Tradovate's official help article "Tradovate API Access" (updated September 16, 2026) explicitly states: "Prop firm and evaluation accounts are not eligible for API access." Using the API requires your own funded account with a balance of $1,000+ and a $25/month add-on. On Tradovate-based firms like FTMO Futures or MFFU, "writing your own program to place orders" is simply not possible through this route.

If you already have an MT5 EA, route ① is the closest match. If your EA is the kind that says "open at this time, close at that time" and "stop-loss is $X," the logic can be rewritten in C# almost as-is.

Which firms support which method

FirmAutomated tradingNinjaTraderTradingViewAPIVPS
FTMO Futures⭕ Explicitly allowed (self-built assumed)⭕⭕—⭕ Explicitly allowed
FundedNext Futures⭕ Explicitly allowed⭕⭕—⭕ Allowed per the help center (the terms say IP changes need prior approval, so a fixed IP is the safe route)
MyFundedFutures⭕ OK if it's your own configured strategy⭕⭕—Not stated
Lucid Trading⭕ Allowed⭕ (CQG accounts)⭕ (CQG accounts)—Not stated
Bulenox⭕ Self-built only (commercial/shared not allowed)⭕ (Rithmic)$100/month via a relaySame as leftNot stated
Topstep⭕ API only——⭕ $29/month, not on live✕ Home PC only
Apex✕ Banned starting March 2026————

If you're running this 24 hours a day, putting it on a VPS is the normal move, so FTMO Futures and FundedNext Futures — the two that explicitly allow a VPS — are the top candidates. For a comparison of pricing and expected value, see FTMO Futures expected value and FundedNext Futures expected value.

Step by step: getting a NinjaTrader bot running on FTMO Futures

These are the steps the site owner followed to port a gold time-window EA that had been running on MT5 over to NinjaTrader, and run it on an FTMO Futures Pro $50K evaluation account.

#StepNotes
1Buy an FTMO Futures challengeNinjaTrader / Tradovate / TradingView all become usable automatically as platforms
2Install NinjaTrader 8 and log in with the NinjaTrader credentials shown in the client areaNo separate license needed to be purchased
3Answer the market data agreementIndividuals should select Non-Professional. Being classified as a professional raises market data fees
4Check that the FTMO account appears on the Accounts tab of the Control CenterMake sure the connection (Tradovate) shows green, as Connected
5Put the strategy's .cs file in Documents\NinjaTrader 8\bin\Custom\Strategies\ and press F5 (compile) in the NinjaScript EditorOK if the error list is empty
6Backtest with the Strategy Analyzer and cross-check it trade-by-trade against the MT5 resultsIn the site owner's case, all 207 trades over a year lined up, with a 98% match on win/loss
7Add the strategy to a 1-minute chart of the contract-month symbol (e.g., MGC 12-26)Set the Account to the evaluation account (don't leave it on Sim101 or Playback)
8Enable it with Start behavior set to Wait until flatThis setting keeps it from holding a position the instant it's enabled
9Run at minimum lot size for two weeks, logging fills, slippage, and close times dailyAdd more accounts once there are no issues

What porting it revealed was that handling "time" and "the symbol" is more work than the logic itself. The next section covers this.

Four things that trip up the code

1. Bar timestamps mark "when the bar ended"

NinjaTrader's 1-minute bars are timestamped with when the bar ended. A bar displayed as 10:00 covers 9:59-10:00. On top of that, with the default Calculate = On bar close, the decision is made after the bar closes, and the order fills on the next bar. An MT5 EA that "opens exactly at 10:00" will, unmodified, open at 10:01 instead.

If you want to open exactly on time, set Calculate to On each tick, and only make the decision on the first tick of each bar (see the sample code below).

2. Convert to ET before doing time-based checks

A futures trading day starts at 18:00 and ends at 17:00, US Eastern Time (ET). Since a VPS might be set to Japan time or US time, doing time-based checks by converting the platform's time to ET first means it doesn't matter where the VPS is located. It also automatically adjusts for US daylight saving/standard time.

EventETJST (US summer time)JST (US winter time)
CME daily maintenance17:00-18:006:00-7:007:00-8:00
FTMO Futures forced liquidation16:105:10 the next morning6:10 the next morning

In 2026, the US switches back to standard time on November 1, so any time written in JST will shift by an hour.

3. Close positions yourself before forced liquidation

FTMO Futures force-closes all positions at 16:10 ET. Rather than relying on that forced liquidation, set the bot up to close everything itself a few minutes earlier (e.g., 16:05 ET). If you rely on the forced close, you lose control over exactly when and at what price your position gets closed.

4. You have to roll the contract month yourself

NinjaTrader runs on a specific contract month, like "MGC 12-26." Before the contract enters its delivery period, you need to roll the chart's symbol to the next contract month. Micro gold (MGC) only has contract months in even-numbered months, and the first delivery notice date for the December contract is November 30, 2026.

Sample code (NinjaScript)

This is a minimal example: "buy 1 contract at a given ET time, close it at another given ET time, stop-loss in ticks." It incorporates fixes 1 through 4 above. The symbol and times are just examples with no trading rationale behind them.

CSHARP
using System;
using System.ComponentModel.DataAnnotations;
using NinjaTrader.Cbi;
using NinjaTrader.NinjaScript;
namespace NinjaTrader.NinjaScript.Strategies
{
public class TimeWindowSample : Strategy
{
private TimeZoneInfo tzEt;
private DateTime lastEntryDay = DateTime.MinValue;
[NinjaScriptProperty, Display(Name = "EntryEt(HHmm)", Order = 1)]
public int EntryEt { get; set; }
[NinjaScriptProperty, Display(Name = "ExitEt(HHmm)", Order = 2)]
public int ExitEt { get; set; }
[NinjaScriptProperty, Display(Name = "FlattenEt(HHmm)", Order = 3)]
public int FlattenEt { get; set; }
[NinjaScriptProperty, Display(Name = "StopTicks", Order = 4)]
public int StopTicks { get; set; }
protected override void OnStateChange()
{
if (State == State.SetDefaults)
{
Name = "TimeWindowSample";
Calculate = Calculate.OnEachTick; // 各足の最初のティックで判定する
EntriesPerDirection = 1;
StartBehavior = StartBehavior.WaitUntilFlat;
IsExitOnSessionCloseStrategy = false; // 手仕舞いは FlattenEt で自前管理
BarsRequiredToTrade = 1;
EntryEt = 1000; ExitEt = 1130; FlattenEt = 1605; StopTicks = 40;
}
else if (State == State.Configure)
{
SetStopLoss(CalculationMode.Ticks, StopTicks);
}
else if (State == State.DataLoaded)
{
tzEt = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
}
}
protected override void OnBarUpdate()
{
if (CurrentBar < BarsRequiredToTrade) return;
if (Calculate != Calculate.OnBarClose && !IsFirstTickOfBar) return;
// 実運用では「今始まった足」の開始時刻、バックテストでは足の終了時刻で判定する
DateTime barTime = State == State.Realtime ? Time[0].AddMinutes(-BarsPeriod.Value) : Time[0];
DateTime et = TimeZoneInfo.ConvertTime(barTime, NinjaTrader.Core.Globals.GeneralOptions.TimeZoneInfo, tzEt);
int hhmm = et.Hour * 100 + et.Minute;
// 時間帯の終わり・強制決済前は閉じる
if (Position.MarketPosition == MarketPosition.Long && (hhmm >= ExitEt || hhmm >= FlattenEt))
{
ExitLong("TIME-EXIT", "L");
return;
}
// 1日1回だけ、時間帯の中で建てる
if (Position.MarketPosition == MarketPosition.Flat
&& hhmm >= EntryEt && hhmm < ExitEt && hhmm < FlattenEt
&& lastEntryDay != et.Date)
{
lastEntryDay = et.Date;
EnterLong(1, "L");
}
}
}
}

For real use, add a daily loss cap on top of this (stop before the day's cumulative losses reach the firm's daily loss limit). On FTMO Futures Pro $50K, the daily loss limit is a hard rule at $1,000 — touch it and you're disqualified instantly.

Terms-of-service traps

FirmTrap
FTMO FuturesA commercial EA risks having the funded account rejected (a unique strategy is required). Using a different lot size between evaluation and funded may count as an "Evaluation vs. Sim-Funded Mismatch." There's also an API limit on order count
Lucid TradingThere are reports of closures citing "coordinated trading among multiple users." Don't share the same bot with someone else
BulenoxCommercial, shared, rented, or publicly distributed automation tools are banned
TradeifyAs proof of ownership, you may be asked for a live video of yourself launching the code
TopstepPlacing orders from a VPS, VPN, or remote server is banned. The API can't be used on live accounts, so the bot stops working
Common to all firmsHFT, tick scalping, and hedging across accounts are usually banned. Most firms allow copying across your own accounts, but copying with someone else is banned at nearly every firm

FAQ

Q. Can I use an MT5 EA as-is on a futures prop firm?

No. Futures props don't have MT5, so you need to rewrite it in something like NinjaScript. If your EA trades on time and price conditions, the rewrite isn't that large.

Q. Do I have to leave my PC running all the time?

With the NinjaTrader route, the bot won't run unless NinjaTrader is running. You either leave your home PC on, or put it on a VPS. If you use a VPS, choose a firm that explicitly allows a VPS (FTMO Futures, FundedNext Futures).

Q. Can I hold positions overnight?

Most futures props require you to close everything by the end of the day. On FTMO Futures, the deadline is 5:10 JST the next morning (6:10 JST in winter). An EA built around holding overnight needs to be rebuilt so it never crosses a day boundary.

Q. How many contracts should I start with?

Run it at the minimum contract size for two weeks, confirm that it's opening and closing at the intended times and check how much slippage there is, then scale up. The site owner also started with 1 micro gold contract.

Written by

Hosono P | the prop firm strategist

I buy challenges with my own money and record everything through to the payout. Recorded payouts: ¥6.1M in total from Fintokei, Fundora and Funded7, plus $4,776 from The5ers (as of September 2026). Author of the semi-discretionary EA "ELDRA".

Profile and payout recordX @hosono_p

📚Related articles

🤖

The5ers Futures vs FTMO Futures: Comparing Two FX Giants' Futures Launch by Automated Trading Policy [September 2026]

The5ers and FTMO have both launched futures products. On September 22, 2026 we measured prices and rules for every size on both official sites. The decisive difference is automated trading: The5ers' FAQ states outright, "algorithmic trading is strictly forbidden, and users will be banned from our programs," while FTMO states, "there is no reason to restrict discretionary trading, algorithmic trading, or EAs." FTMO also explicitly allows VPS and VPN, which puts it ahead of the dedicated futures firms if you plan to run an EA around the clock. We line both up against the same 26 US futures props on cost per unit of loss buffer, EOD drawdown, the scope of the consistency rule, and payout caps.

EAs & automation9/22/2026
🤖

[September 2026 Edition] A Full Review of Automated-Trading Rules Across 28 Futures Prop Firms - Where Can You Actually Run a Bot, EA, or Copy Trade?

We reread the official help centers and terms of 28 US futures prop firms on September 21-22, 2026, and sorted their automated-trading policies into five tiers: fully automated OK / self-built only with conditions / semi-automated only / banned / not addressed. Bulenox has switched to banning commercial and shared bots, Lucid allows them, Apex now explicitly bans automated trading on all accounts, and Tradeify requires a live video of you activating the code yourself. Covers firms that ban VPS, how each firm defines HFT (100-300 trades/day, 10-second holds), and firms that have shut down or stopped selling accounts. We've also added the two big FX firms that entered futures - FTMO Futures (allows algos) and The5ers Futures (bans algos).

EAs & automation9/21/2026
🔍

FTMO Futures vs Topstep: FTMO Wins on Expected Value, Topstep Wins on Monthly Cost. If You're Running a Bot, VPS Access Is the Deciding Factor [September 2026]

We re-confirmed the rules on both the futures prop leader Topstep and FTMO Futures, which entered the market in September 2026, on September 23, 2026, and compared them. The monthly fee is less than half at Topstep, but running the same lot size through evaluation to payout for a year gives FTMO Futures Pro the higher expected value ($50K, zero edge: +$4,836 vs. +$2,519). Covers activation fees, the fact that you can only withdraw 50% of the balance, an optional daily loss limit, resets that shift your billing date, VPS eligibility, and running a bot on a live account.

Firm comparisons9/22/2026
🤖

[2026 Update] Futures Prop Automated Trading Policy Comparison | EA/Bot OK or NG at 9 Firms

A full breakdown of the EA/bot/algo trading policies at Bulenox, MyFundedFutures, Topstep, Apex, Tradeify, Lucid, TPT, Top One, and YRM Prop. Covers whether a 'set-and-forget EA' is allowed on a funded account, the 10-second rule, and copy-trading support, explained from a Japanese trader's perspective.

EAs & automation5/2/2026
⚙️

How to connect multiple prop firm accounts at once in NinjaTrader: running FTMO Futures and FundedNext Futures on a single NinjaTrader [September 2026]

Tradovate-based futures props like FTMO Futures and FundedNext Futures each issue a separate NinjaTrader login per firm. This walks through the exact steps used to connect accounts from multiple firms at once on a single NinjaTrader 8 (turning on Multi-provider in Settings and adding a 'NinjaTrader' connection for each firm).

Tools & automation9/27/2026
🧪

[September 2026] Expected Value Summary: 5 Futures Prop Firms Where Self-Built Bots Are Allowed — TradeDay and Topstep Win at Zero Edge, Bulenox/Topstep/Tradeify Win With Edge

A summary comparing $50K accounts at 5 futures prop firms where automated trading is allowed 'self-built only, with conditions' (Bulenox, Tradeify, TradeDay, The Trading Pit, Topstep), run through identical Monte Carlo simulations. At 0.30 lots, one micro gold trade per day, over 1 year: at zero edge, TradeDay Quick Pay Intraday (+$2,522) and Topstep (+$2,519) are tied for the top. At 'medium' edge, Bulenox Qualification (+$25,529), Topstep (+$24,982), and Tradeify Select Daily (+$24,218) lead. None of them reach Category A's (fully automated OK) leader, FTMO Futures Pro (+$4,836 at zero edge). The Trading Pit is the only one that explicitly allows VPS; TradeDay and Topstep ban it.

Research9/25/2026