Free ยท Copy-ready ยท Updated for MCP

NinjaTrader AI Prompt Library

A curated library of safe, useful AI prompts for NinjaTrader 8 traders using CrossTrade MCP. Each card lists the use case, required scope, risk level, what the agent may call, what it must not call, expected output, and the failure modes worth knowing about.

Start here

Start with read-only prompts

Every workflow on this page is designed for mcp:read unless it explicitly says otherwise. Read-only is where to start every account, every session, and every prompt iteration.

Read-only ยท Account inspection

Pre-session brief

Use case: Confirm account state before trading.

Required scope: mcp:read

Risk level: none

Prompt On <account>, give me a pre-session brief. Call ListAccounts, GetConnections, ListPositions, ListOrders, GetAccountSummary, and GetWatermarks. Report what is open, what is working, and today's realized P&L. Do not call any write tools.

Agent may call: ListAccounts, GetConnections, ListPositions, ListOrders, GetAccountSummary, GetWatermarks.

Agent must not call: any write tool.

Expected output: short paragraph plus tabular summary.

Failure modes: add-on disconnected; account not connected.

Read-only ยท Journal analysis

Last 20 trades

Use case: End-of-session review.

Required scope: mcp:read

Prompt Pull the last 20 closed trades on <account>. Group by instrument and side. Report win rate, average win, average loss, biggest win, biggest loser, and any trades within 60 seconds of a prior loser. Do not expose the account number.

Weekly review

Use case: Catch setup decay.

Required scope: mcp:read

Prompt Pull the last seven trading days of matched trades on <account>. Group by setup if tagged, otherwise by instrument. Report expectancy, win rate, average win, average loss, biggest losers. Flag any setup with negative expectancy and at least 10 trades.
Read-only ยท Webhook diagnostics

Single signal diagnosis

Required scope: mcp:read

Prompt For the TradingView signal at <time> on <account>, pull GetSignalHistory, the matching GetActivityLog entries, ListOrders, and ListExecutions. Build a chronological timeline. Tell me the step where the chain broke. Redact account identifiers.

Daily audit

Required scope: mcp:read

Prompt Pull TradingView webhook signals for the last 24 hours on <account>. Group by outcome: filled, rejected, no order created, no fill. For each non-filled group, list signals and the likely cause based on activity log entries.
Read-only ยท Copier diagnostics

Single incident

Required scope: mcp:read

Prompt For leader <leader> and follower <follower> between <start> and <end>, pull GetActivityLog for both. Pull ListOrders and ListExecutions for both in the same window. Build a single chronological timeline. State the verbatim rejection reason if any.
Read-only ยท Prop firm guardrails

Funded daily-loss guard

Required scope: mcp:read

Prompt On <account> (firm: <firm>, drawdown model: <model>, limit: $<dollars>), give me a pre-trade brief: GetAccountSummary, GetWatermarks, ListPositions, ListOrders. Compute remaining drawdown room. Tell me whether I can trade today. Do not place anything.
Trade-enabled ยท Order preparation

Confirmed limit order

Required scope: mcp:trade

Risk level: medium. Confirmation gated.

Prompt On <account>, I want to place a buy limit for 1 MES 06-26 at <price>, day order. Before submitting: 1. Read state (accounts, connections, positions, orders, summary, watermarks). 2. Restate the action with account, instrument, side, type, quantity, price, tif. 3. Wait for me to type "go". After submission, call GetOrder and confirm status.

Failure modes: max contracts, daily loss lockout, instrument not subscribed.

Trade-enabled ยท Cancel and flatten

Confirmed stale-order cleanup

Required scope: mcp:trade

Prompt On <account>, list working orders. Identify orders that look orphaned relative to current positions. Propose a cancel list. Wait for me to confirm. After cancelling, list orders again and tell me whether any open position is now unprotected.
Trade-enabled ยท NinjaScript authoring

Compile loop

Required scope: mcp:trade

Prompt Write a NinjaScript strategy called <name> for <instrument>. <Behavior description>. 1. Before writing, GetNinjaScriptHelp on every NT8 type you intend to use. 2. CompileNinjaScript(in_memory: true). On failure, LookupNinjaScriptSymbol and repair. 3. WriteNinjaScriptFile only after I confirm. 4. Do not run a backtest or deploy unless I explicitly say so.
Vibe coding and prompt-to-NinjaScript

From plain-English idea to verified NT8 strategy

The vibe coding workflow is the trader version of natural-language software development. The agent translates a strategy idea into NinjaScript, compiles it inside NT8, repairs errors, runs a Strategy Analyzer backtest, and stops at the doors that matter until you confirm. See the vibe coding page for the full pattern.

1. Turn an idea into a NinjaScript implementation plan

Required scope: mcp:read

Risk level: none

Recommended account: any. Plan only; no code yet.

Confirmation required: no

Expected MCP tools: GetNinjaScriptHelp, SearchNinjaScriptSymbols, LookupNinjaScriptSymbol

Expected output: a plan with the NT8 types and methods the agent intends to use, plus the chosen overloads.

Plan prompt Turn my plain-English strategy idea into a NinjaScript implementation plan for NT8: <idea>. List every NinjaScript type and method you intend to use. Call GetNinjaScriptHelp on each one. Restate the plan and the overloads before writing any code.

2. Write the first NinjaScript draft, but do not deploy it

Required scope: mcp:trade

Risk level: low. In-memory compile; no disk write yet.

Recommended account: Sim101

Confirmation required: yes, before WriteNinjaScriptFile

Expected MCP tools: CompileNinjaScript(in_memory: true)

Expected output: the source plus the compile result.

Draft prompt Draft the NinjaScript strategy from the plan. CompileNinjaScript(in_memory: true). Do not WriteNinjaScriptFile. Do not RunStrategyBacktest. Do not DeployStrategy. Wait for me to review.

3. Compile this NinjaScript strategy and explain every error

Required scope: mcp:trade

Risk level: low

Recommended account: Sim101

Confirmation required: no

Expected MCP tools: CompileNinjaScript, LookupNinjaScriptSymbol

Expected output: compile diagnostics with each error explained in plain English.

Compile prompt CompileNinjaScript(in_memory: true). For each error, explain it in plain English. For every unresolved identifier, call LookupNinjaScriptSymbol and tell me the correct shape. Do not rewrite yet.

4. Repair the compile errors and summarize what changed

Required scope: mcp:trade

Risk level: low

Recommended account: Sim101

Confirmation required: no

Expected MCP tools: CompileNinjaScript, LookupNinjaScriptSymbol

Expected output: a diff summary of the repairs and a green compile.

Repair prompt Repair the compile errors. After recompile, summarize every change in one paragraph per file. Recompile until green. Stop after the green compile; do not write the file yet.

5. Run a Strategy Analyzer backtest on Sim101

Required scope: mcp:trade

Risk level: low. No live orders.

Recommended account: Sim101

Confirmation required: no

Expected MCP tools: RunStrategyBacktest, GetMcpJob

Expected output: the metrics block with NetProfit, ProfitFactor, MaxDrawdown, TradeCount, plus pass/fail against your gates.

Backtest prompt RunStrategyBacktest on Sim101, <range>, <bars>, commission $<x>, slippage <ticks>. Return the metrics block. Apply my gates: profit factor > 1.25, max drawdown < $500, trade count > 40. If any fail, stop and tell me.

6. Run a parameter sweep and identify overfitting risks

Required scope: mcp:trade

Risk level: low. Backtest only.

Recommended account: Sim101

Confirmation required: no

Expected MCP tools: RunStrategyBacktest, GetMcpJob

Expected output: top three parameter sets plus an overfitting commentary.

Sweep prompt Sweep <param1 range> and <param2 range> with fitness NetProfit. Show top three. Flag any winner that looks like a noise fit (very narrow profitability cluster, tiny trade count, or extreme parameter values). Re-run a full single backtest on the winner.

7. Review this strategy for prop firm rule risk

Required scope: mcp:read

Risk level: none. Review only.

Recommended account: the funded account, read-only

Confirmation required: no

Expected MCP tools: GetAccountSummary, GetWatermarks, ListPositions, ListOrders

Expected output: a list of rule risks the strategy could trigger on the given firm.

Risk review prompt Review this strategy for prop firm rule risk. Firm: <firm>. Drawdown model: <model> $<amount>. Max contracts: <n>. News windows: <list>. Tell me where the strategy could violate firm rules. Do not place or modify anything.

8. Prepare a Sim101 deployment checklist

Required scope: mcp:trade

Risk level: medium. Pre-deploy gating only.

Recommended account: Sim101

Confirmation required: yes, before DeployStrategy

Expected MCP tools: ListAccounts, GetConnections, ListPositions, ListOrders, GetAccountSummary, GetWatermarks, GetDeployedStrategyState

Expected output: a checklist with each state read and the proposed DeployStrategy parameters.

Sim101 deploy checklist Prepare a Sim101 deployment checklist for this strategy. List every state read. Restate the proposed DeployStrategy with account, instrument, quantity, parameters. Wait for "go" before calling. After deploy, GetDeployedStrategyState; if is_trading is false, stop and report errors.

9. Explain why this generated strategy should not go live yet

Required scope: mcp:read

Risk level: none

Recommended account: any

Confirmation required: no

Expected MCP tools: none required; analysis on the existing backtest results.

Expected output: a candid list of reasons not to deploy.

Devil's advocate prompt Treat this strategy as if you were a senior risk reviewer. List five concrete reasons this generated strategy should not go to a live or funded account. Be specific. Do not soften the language.

10. Compare generated strategy behavior to TradingView webhook history

Required scope: mcp:read

Risk level: none

Recommended account: any with prior webhook history

Confirmation required: no

Expected MCP tools: GetSignalHistory, GetJournalTrades, GetActivityLog

Expected output: a comparison of the new strategy's intended behavior vs. the historical webhook strategy's outcomes.

Compare to webhook history Pull TradingView webhook signal history for <account> over the last 30 days for <instrument>. Compare the new generated strategy's logic to the historical webhook fills. Where would the new strategy have behaved differently?
Trade-enabled ยท Strategy Analyzer backtest

Single backtest plus sweep

Required scope: mcp:trade

Prompt RunStrategyBacktest of <strategy> on <instrument>, <from> to <to>, <bars>, Sim101, no commission, 0 slippage. Show the metrics block. If profit factor > 1.25 and trade count > 40, sweep <param1 range> and <param2 range> with fitness NetProfit. Show the top three. Re-run a full single backtest on the winner.
Trade-enabled ยท Deployment

Confirmed deployment with gates

Required scope: mcp:trade

Risk level: high. Strict gates and explicit confirmation required.

Prompt On <account>, deploy <strategy> with parameters <params>, quantity <qty>, <instrument>. Gates: - profit factor > 1.25 on the in-sample window - profit factor > 1.10 on the prior 30 days as out-of-sample - max drawdown < $500 - trade count > 60 If any gate fails, show me which one and stop. If all gates pass, restate the deployment and wait for "go". After deploy, GetDeployedStrategyState and confirm is_trading. EmitMcpAlert with subtype deployment_started.
Customize

How to customize for a funded account

  • Specify the firm and the drawdown model in the system prompt.
  • Provide the dollar amount of the trailing or EOD drawdown.
  • Provide the firm's news-window schedule for the day if relevant.
  • Set a buffer below the limit at which the agent refuses new trades.
  • Forbid automation entirely on firms that prohibit it (Apex).
FAQ

Frequently asked questions

Are these prompts safe?

Read-only prompts are safe by scope. Trade-enabled prompts depend on the confirmation gates inside them. Read each prompt and edit before granting mcp:trade.

Can I share prompts with my trading group?

Yes. The prompts themselves carry no account-specific data. Replace placeholders before running.

Will more prompts be added?

Yes, on a rolling basis as new tools land in the MCP surface.

Run your first prompt

Read-only journal review is the place to start.