Back to Import & Auto-Sync

NinjaTrader robot: setup, settings and support

Install the TradeLog robot in NinjaTrader 8, set it up correctly, and understand every setting and message it shows.

The TradeLog robot for NinjaTrader is a trading panel and a risk guard that sits on your chart. It works out the position size for the risk you chose, places the trade with its stop and target, keeps watching after the fill, and syncs everything to your TradeLog journal.

What it will never do

These are limits the robot enforces on itself, not features that are missing. They are worth knowing before you start.

  • It never moves a stop on a trade you have already opened. The line that follows price is a planning line only.
  • It never decides when to buy or sell. There is no signal and no automated entry: you click, it sizes and protects.
  • It never touches an order larger than the position it belongs to, because that is not protection and the robot cannot tell what you meant by it.
  • It cannot read trades you made before you installed it. NinjaScript does not expose them.

What you need

  • NinjaTrader 8, version 8.1 or newer.
  • A NinjaTrader account you can trade on. Sim is the right place to start.
  • A TradeLog plan that includes automatic sync — Basic or Premium.
  • Your TradeLog API key, from Settings then API Keys.

Installing it

  1. 1In TradeLog, go to Settings then API Keys and create a key for NinjaTrader. It is shown once, so copy it now.
  2. 2Download the robot file from your Connections page. It is a single zip — do not unzip it.
  3. 3Only if you ever installed the robot as a source file — a .cs pasted into the NinjaScript Editor, which testers before September 2026 did: remove it first, or the import fails with "duplicate method names". In the NinjaScript Editor open Indicators, right-click TradeLogSyncV3, choose Remove, and let NinjaTrader recompile.
  4. 4In NinjaTrader, open Control Center and choose Tools, then Import, then NinjaScript Add-On…
  5. 5NinjaTrader shows a standard warning about third-party add-ons. It appears as soon as you choose the menu item, before you pick the file, and for every add-on that did not come from NinjaTrader — ours included. Press OK.
  6. 6Pick the zip file and confirm. NinjaTrader compiles it and tells you it succeeded. If it asks to restart, restart.
  7. 7Open a chart of the instrument you want to trade.
  8. 8Right-click the chart, choose Indicators…, find TradeLogSyncV3 in the list on the left and double-click it. That is the name NinjaTrader lists it under; on the chart it then reads TradeLog Sync with its version.
  9. 9Fill in the settings on the right — the next section says which ones and in what order — then press OK.
The TradeLog robot running on a NinjaTrader chart

Your first setup, in order

  1. 1Setting 1.1 API Key: paste the key you copied from TradeLog. Paste it exactly, with no spaces before or after. Nothing works without this one.
  2. 2Setting 2.1 Risk per trade - manual override ($): leave it empty unless you want to run without TradeLog driving your risk. Normally your risk comes from Strict Risk Management in the app and this box is ignored.
  3. 3Setting 2.2 Default reward:risk: how far the Take-Profit line is first drawn compared with the stop. You can drag it on every trade.
  4. 4Setting 3.2 Guardian: watch every symbol on the account: leave it ON so the whole account is protected, not only this chart.
  5. 5Setting 6.1 Write diagnostics to the Output window: leave it OFF. Turn it on only when support asks.

Every setting, explained

This is the complete Parameters list, in the order NinjaTrader shows it, generated from the robot itself so it cannot drift from what is on your screen. The numbers are the ones you can quote to support.

The settings below are shown exactly as they appear in the NinjaTrader Parameters dialog, in English. NinjaTrader does not translate them, so the words here match the words on your screen.

1. TradeLog Account

1.1API KeyDefault: (empty)
START HERE. Your TradeLog API key, so the robot can reach your account. Where to find it: sign in at tradelog.cot-reports.com, then Settings -> API Keys. Paste it exactly as shown. Without a key the robot cannot size a trade or send anything to your journal.

2. Risk

2.1Risk per trade - manual override ($)Default: 0
OPTIONAL. Normally your Risk comes from TradeLog: whatever you set under Strict Risk Management in the app is what the robot uses, and this box is ignored. Fill it in only to run WITHOUT that - then also switch on 'Use the manual Risk above' below. Example: 500 means a stop-out costs about 500. 0 = nothing is trimmed (fail-safe).
Accepted range: 0 or more
2.2Default reward:riskDefault: 2
How far the Take-Profit line is first drawn compared with the Stop-Loss distance. 2 means the target sits twice as far from entry as the stop. You can always drag the line afterwards.
Accepted range: 0.1 to 100.0
2.3Maximum contracts per orderDefault: 100
A fat-finger ceiling: the panel never sends more than this many contracts in one order, whatever the Risk works out to. 0 = no ceiling.
Accepted range: 0 or more
2.4Size up to the full RiskDefault: OFF
OFF by default. ON = when a plan would risk LESS than your Risk, the robot adds contracts until it reaches it, and your Stop-Loss stays exactly where you put it. Only if the contract count hits your 'Maximum contracts per order' cap first does the Stop-Loss move AWAY from entry instead - and the panel says so when it happens. Example: Risk 150, one contract risks 1.50 - it takes 100 contracts, so with a 100 cap nothing moves; with a 20 cap the stop moves out until 20 contracts risk the full 150. One of the two settings that can INCREASE position size, which is why it is off unless you turn it on.
2.5Allow 1 contract even if it exceeds the RiskDefault: OFF
OFF by default. When your Stop-Loss is so far from Entry that even ONE contract would risk more than your Risk, the panel refuses and shows Contracts: 0. ON = it places that one contract anyway and says in red, on the panel, that you are over your Risk. It NEVER places more than one, so the overshoot is only ever what a single contract costs at the stop you drew. Example: Risk 500 on ES with a 55-tick stop - one contract risks 687.50. The second of the two settings that can INCREASE what you lose, which is why it is off unless you turn it on.

3. Protection

3.1Use the manual Risk above instead of TradeLogDefault: OFF
OFF (default, recommended) = your Risk comes from TradeLog and the box above is ignored. ON = run without TradeLog driving the Risk: the Guardian trims to the manual amount above instead. Switch this on only if you want the robot to ignore the app.
3.2Guardian: watch every symbol on the accountDefault: ON
ON (default) = the whole account is protected, not only the instrument on this chart - including trades you opened outside the TradeLog panel. OFF = only this chart's instrument is protected and every other instrument is left alone. This is SCOPE only - it never switches trimming on by itself. With the robot on several charts of one account, only ONE of them trims; the others say so on their panel.

4. Sync

4.1Sync interval (seconds)Default: 30
How often open positions are sent to your TradeLog journal. Lower = fresher, and more requests. 30 suits almost everyone.
Accepted range: 10 to 300

5. Display

5.1Show the trading panelDefault: ON
ON (default) = the Buy/Sell panel is drawn on the chart. OFF = no panel; the robot still watches and protects, it just gives you nothing to click.
5.2Panel coloursDefault: Dark
Auto = follow the chart background. Or force Light / Dark.
AutoLightDark
5.3Panel positionDefault: TopLeft
Which corner of the chart the panel starts in. You can also drag it by its header.
TopLeftTopRightBottomLeftBottomRight
5.4Messages on the chartDefault: Expanded
Where the message card starts: Expanded (default) or Collapsed (only its header chip, for a clean chart). The arrow opens and closes it either way, and an ALARM is never missed - while one is standing the folded chip turns red and carries the warning mark.
ExpandedCollapsed
5.5Show shortcut keys on the buttonsDefault: ON
ON (default) = each button shows the key that triggers it - BUY (B), SELL (S), LONG (L), SHORT (K), MARKET/PENDING (O), REFRESH (R). The keys keep working either way; this changes the LABEL only.
5.6Show tooltips on active buttonsDefault: OFF
OFF (default) = hovering a button that is READY to be pressed shows nothing, so the panel never covers the chart while you wait for your moment. ON = every button explains what the press will do. A button that is GREYED OUT always explains why it cannot be pressed, whatever this is set to - that reason exists nowhere else. The 'i' in the panel header is exempt for the same reason.
5.7Labels on the plan linesDefault: ON
ON (default) = each Entry / Stop-Loss / Take-Profit line carries a small label with its price.
5.8Label text colourDefault: White
The colour of the words inside the Entry / Stop-Loss / Take-Profit label. The label itself is a filled marker in the LINE'S own colour (blue / red / green), the way NinjaTrader draws its own order labels, so White (default) reads on all three. Choose Black if you prefer dark text on the coloured marker.
BlackWhite
5.9Label positionDefault: Left
Where each label sits on its line. Left (default) = in a box at the left end of the line, set back from the right-hand price scale, the way NinjaTrader keeps its own order labels clear. Center = over the middle of the line.
CenterLeft
5.10How long the plan lines areDefault: To last candle
To last candle (default) = the lines stop at the newest candle, like a NinjaTrader order line. To right edge = they carry on past it, so you can read the level against price. Full width = right across the visible chart.
To last candleTo right edgeFull width
5.11Prices on the price scaleDefault: ON
ON (default) = the Entry / Stop-Loss / Take-Profit prices also appear on the price scale at the right. OFF = the lines and their labels stay exactly as they are, with no price on the scale.
5.12Stop-Loss line follows priceDefault: ON
ON (default) = while you are setting a trade up, the Stop-Loss line is pushed along so it stays on the correct side of Entry - never back towards Entry. PLANNING LINES ONLY: it can never move a stop on a trade you have already opened.
5.13Take-Profit line follows priceDefault: ON
ON (default) = the same for the Take-Profit line, so the market cannot end up past your target before you have even entered. PLANNING LINES ONLY: it can never move a target on a trade you have already opened.
5.14First Stop-Loss distance (ticks)Default: 0
How far from Entry the Stop-Loss line is drawn the FIRST time, in ticks. 0 = automatic, from recent volatility. Set a value if the lines seed too close together to grab with the mouse. DISPLAY ONLY - you still drag the lines to your real levels, and position size is always calculated from where you drag them.
Accepted range: 0 to 1000000
5.15First Take-Profit distance (ticks)Default: 0
How far from Entry the Take-Profit line is drawn the FIRST time, in ticks. 0 = automatic, from the reward:risk above. DISPLAY ONLY - you still drag the lines to your real levels.
Accepted range: 0 to 1000000

6. Advanced

6.1Write diagnostics to the Output windowDefault: OFF
OFF (default). ON = the robot prints what it is doing, for support. It does not change how it trades.

The panel, and what it tells you

The panel tells you what it is doing in words rather than leaving you to guess. A grey button always explains why it cannot be pressed, and the message card under the panel carries anything that needs your attention. The important ones are below.

How to read the R numbers

Two figures on the panel carry a letter, and the letter says which question was asked. F is Financial R and it is about money: the amount divided by the Risk you set for one trade, so "-0.92R F" means you are down 92% of one trade's risk. It divides by the risk you planned, not by the risk your rounded contract count actually takes — which is why the same plan can show 1.67R F on the reward line while the ratio above it reads 1 : 2.0. NinjaTrader has no commission setting for the robot to read, so F is the raw money from price, before what your broker charges. T is Technical R and it is about distance: "Risk to Reward (T) 1 : 2.0" means the target sits twice as far from entry as the stop. T is a ratio, never a multiple — that is why it is written 1 : 2.0 and not 2.00R.

These are the same two letters your journal uses. On a plan the journal measures them exactly as the panel does; once a trade is closed it recomputes both on the money that actually landed, so a closed trade's F is net of the fees you really paid. The letters keep their meaning — the money they divide is what moves on.

Messages are shown in the robot's own words, in English, so you can match what is on your chart letter for letter. The explanation under each one is translated.

(+{count} more instrument over-protected)

Chart — the message card under the panel

A tail added to the STOP/TARGET over-protection alarm when a second instrument is also over-protected. It never appears on its own.

What to do. Check that instrument as well.

(+{count} more instrument)

Chart — the message card under the panel

A tail added to an orphan- or resting-order alarm when a SECOND instrument has the same problem. It never appears on its own — look for it at the end of one of those lines.

What to do. Check your other instruments too — the message names only the first.

(+{count} more instruments over-protected)

Chart — the message card under the panel

The same tail when several more instruments are over-protected. It never appears on its own.

What to do. Check every open instrument as well.

(+{count} more instruments)

Chart — the message card under the panel

The same tail when several more instruments are affected. It never appears on its own — look for it at the end of an orphan- or resting-order alarm.

What to do. Check every open instrument — the message names only the first.

An ATM strategy manages {instrument} — TradeLog will NOT resize its stop/target (NinjaTrader forbids it) and has STOPPED auto-trimming this instrument. Reduce it from the ATM, or close it.

Chart — the message card under the panel

An ATM strategy owns the protection on that instrument. NinjaTrader forbids anything outside the ATM from resizing it, so the robot has stopped trimming that instrument.

What to do. Reduce the position from the ATM itself, or close it.

an older TradeLog robot is still installed — remove it

Chart — the message card under the panel

An older version of this robot is still installed on this machine. If both are on charts, two copies are watching the same account and both may act.

What to do. Remove the old one from every chart, delete its file from Documents\NinjaTrader 8\bin\Custom, and press F5 in the NinjaScript Editor. Keep only the current one.

AUTO (not connected)

Panel — the licence row, and the sentence on the chart

The Risk value should come from TradeLog, but the connection is not confirmed.

What to do. Check the API key first — that is the usual cause. If the key is right and your own connection is fine, ours is down; the robot keeps retrying and your broker link is unaffected.

AUTO (refreshing)

Panel — the licence row, and the sentence on the chart

A refresh of the Risk value from TradeLog is in flight.

What to do. Wait a moment.

AUTO (syncing)

Panel — the licence row, and the sentence on the chart

The Risk value is being read from your TradeLog account right now.

What to do. Wait a moment. Sizing arms as soon as it arrives.

cannot read the Chart Trader account ({ex})

Chart — the message card under the panel

NinjaTrader raised an error when the robot asked which account is selected.

What to do. Re-pick the account in Chart Trader. If it keeps happening, send us the Output window.

Chart Trader is not open on this chart — open it and pick your account

Chart — the message card under the panel

The robot reads which account to protect from Chart Trader, and Chart Trader is not open.

What to do. Open Chart Trader on this chart and select your account.

CLOSE {cw} after SL/TP were cancelled — position UNPROTECTED, act now

Panel — the red alarm banner

The same state, when the close was cancelled or rejected rather than failing outright.

What to do. Close it in NinjaTrader, or place a stop by hand, right now.

CLOSE failed after SL/TP were cancelled — position UNPROTECTED, act now

Panel — the red alarm banner

The robot cancelled your stop and target in order to close, and then the close itself failed. You are holding a position with nothing behind it.

What to do. Close it in NinjaTrader, or place a stop by hand, right now. Then send us the Output window.

EXIT ORDER with NO POSITION on {instrument} ({quantity}) — if it fills it will OPEN a position. Cancel it.

Chart — the message card under the panel

A stop or target order is still working on an instrument where you have no position. If it fills, it opens a new trade.

What to do. Cancel it — CANCEL PENDING on the panel, or in NinjaTrader.

EXIT ORDER, NO POSITION

Panel — the red alarm banner

The banner form of the orphan-exit-order alarm.

What to do. Cancel that order — CANCEL PENDING, or in NinjaTrader.

GUARDIAN INACTIVE — {the reason}

Chart — the message card under the panel

The robot has no account to protect, so it is not trimming anything. The rest of the sentence says exactly why.

What to do. Follow the reason given. In almost every case it is Chart Trader: open it and pick your account.

no account is selected in Chart Trader

Chart — the message card under the panel

Chart Trader is open but no account is chosen, so there is nothing to protect.

What to do. Pick your account in the Chart Trader account dropdown.

No account: {the reason}

Chart — the message card under the panel

The reason the robot could not bind to an account, in plain words.

What to do. Open Chart Trader on this chart and select your account. If the chart is still loading, wait a few seconds.

PROTECTION ALARM

Panel — the red alarm banner

A protection alarm is standing but the specific wording could not be resolved. The message card under the panel carries the detail.

What to do. Read the message card. If it is empty too, send us a screenshot and the Output window.

PROTECTION SHORT — set SL manually ({totalSL}/{livePosQty})

Panel — the red alarm banner

Your resting stop covers fewer contracts than you hold — the numbers in brackets are stop size against position size. The uncovered part has no floor under its loss.

What to do. Increase the stop order to cover the whole position, or reduce the position to match the stop.

REVERSED — FLATTEN NOW

Panel — the red alarm banner

The worst outcome the panel can report. A close over-filled and you are now in a position the OTHER WAY round, with nothing protecting it.

What to do. Flatten it by hand in NinjaTrader, immediately. Do not wait for the robot to fix it — it will not.

REVERSED after the close — opposite position UNPROTECTED, flatten it manually NOW

Panel — the red alarm banner

The full sentence for the line above: the close reversed you and the new position is naked.

What to do. Flatten manually in NinjaTrader now.

starting up

Chart — the message card under the panel

The robot has not finished binding to an account yet.

What to do. Wait a few seconds.

STOP/TARGET {protected size} > POSITION {position size} on {instrument} — it REVERSES you if touched. Resize or cancel it by hand.

Chart — the message card under the panel

The protective orders cover MORE contracts than you actually hold. If they trigger, they will close your position and open the opposite one.

What to do. Resize or cancel the excess order by hand. This is the one case the robot will not fix for you.

STOP/TARGET > POSITION

Panel — the red alarm banner

The banner form of the over-protection alarm.

What to do. See that message: resize or cancel the excess order by hand.

stuck TradeLog order on {instrument} — never sent, so a cancel is accepted but never completes and a CLOSE waits on them and TIMES OUT. If it does, press Close again — that has worked. A NinjaTrader restart should clear them, but that is not confirmed.

Chart — the message card under the panel

An order this robot created never reached the broker. A cancel on it is accepted but never completes, and a CLOSE will wait on it and time out.

What to do. Press Close again — that has cleared it before. If it does not, restart NinjaTrader and send us the Output window.

STUCK TRADELOG ORDERS

Panel — the red alarm banner

The banner form of the stuck-order alarm.

What to do. Press Close again; if it does not clear, restart NinjaTrader and send us the Output window.

stuck TradeLog orders on {instrument} — never sent, so a cancel is accepted but never completes and a CLOSE waits on them and TIMES OUT. If it does, press Close again — that has worked. A NinjaTrader restart should clear them, but that is not confirmed.

Chart — the message card under the panel

The same as the line above, with more than one stuck order.

What to do. Press Close again; if that does not clear it, restart NinjaTrader and send us the Output window.

the account selected in Chart Trader is no longer available

Chart — the message card under the panel

The account that was selected has gone — usually a disconnected connection.

What to do. Reconnect in NinjaTrader, then re-pick the account in Chart Trader.

the chart window is still loading

Chart — the message card under the panel

The chart is not finished opening yet.

What to do. Wait a few seconds.

this is not a chart — add TradeLog Sync to a CHART

Chart — the message card under the panel

The robot was added somewhere that is not a chart — a Market Analyzer column or a SuperDOM. There is no Chart Trader there, so it has no account and stays inert.

What to do. Remove it from there and add it to a CHART instead.

TradeLog has STOPPED auto-trimming {instrument} until it is flat — {the reason}.

Chart — the message card under the panel

The robot tried to trim that instrument and could not, so it has stood down until you are flat again. The end of the sentence names the exact cause.

What to do. Act on the named cause — usually resizing or cancelling an order by hand. Trimming resumes on the next position.

Trading BLOCKED — {the reason} (see your TradeLog Journal)

Chart — the message card under the panel

Your TradeLog account has hit a limit you set, and trading is blocked until it resets.

What to do. Open your TradeLog journal to see which limit and when it resets.

Trading BLOCKED — Daily/weekly limit reached (see your TradeLog Journal)

Chart — the message card under the panel

The same block, when the server did not say which limit was hit.

What to do. Open your TradeLog journal to see which limit and when it resets.

Trading PAUSED — TradeLog cannot check your limits right now

Chart — the message card under the panel

TradeLog could not be reached to check your limits, so trading is paused rather than allowed past a limit that might already be hit.

What to do. Nothing — it resumes on its own once the check succeeds, and your broker connection is not involved. If it lasts and your own connection is fine, the problem is ours.

GUARDIAN INACTIVE — this chart cannot identify its account, so it does NOT trim

Chart — the message card under the panel

An account is selected, but the robot cannot work out which one it is, so it refuses to trim rather than trim the wrong account.

What to do. Re-pick the account in Chart Trader on this chart. If it persists, send us the Output window.

Guardian: OFF here — protected by {the other chart}

Chart — the message card under the panel

Not a problem. You have the robot on more than one chart of this account, and another chart is the one doing the trimming. Only ever one does, on purpose.

What to do. Nothing. The named chart is protecting the account. Everything else on this chart works normally.

NO STOP-LOSS on {instrument} — the Guardian cannot size a risk it cannot see

Chart — the message card under the panel

You have an open position with no stop-loss order behind it. The robot cannot measure a risk that does not exist, so it cannot protect you on this one.

What to do. Place a Stop Market order for that position now, or close it.

RESTING ORDER on {instrument} ({quantity}) with no position — if it fills it OPENS one

Chart — the message card under the panel

A working order is sitting on an instrument you are flat on. It can fill at any time.

What to do. Leave it if you meant it. Cancel it if you did not.

Risk Source: {the value}

Chart — the message card under the panel

Not a warning — this is the panel repeating its Risk Source line on the chart because the row was too narrow to show it whole.

What to do. Nothing. Widen the panel if you would rather read it there.

SL extended — size reached your {your contract cap}-contract cap first, so the Stop-Loss moved out far enough to reach the active Risk.

Chart — the message card under the panel

While sizing up to your full Risk, the contract cap was reached first, so the Stop-Loss was moved further out instead. Your risk in money is unchanged; the stop is not where you drew it.

What to do. Nothing, if that is what you wanted. Raise 2.3 Maximum contracts per order, or turn off 2.4 Size up to the full Risk, to keep the stop exactly where you put it.

STOP on the WRONG SIDE on {instrument} ({quantity}) — it does not protect this position, it ADDS to it.

Chart — the message card under the panel

There is a stop order on the same side as your position. If it triggers it will ADD to the position instead of closing it.

What to do. Cancel that order. CLOSE POSITION cancels it along with the position; CANCEL PENDING removes it once you are flat.

STOP-LIMIT ONLY on {instrument} ({quantity}) — a stop-limit can trigger and NEVER FILL, so it does not bound your loss and the Guardian will not size against it. Replace it with a Stop Market.

Chart — the message card under the panel

The only protection on that position is a stop-LIMIT. A stop-limit can trigger and never fill, so it does not put a floor under the loss.

What to do. Replace it with a Stop Market order.

Target and stop on {instrument} are not linked (no OCO) — when one fills, cancel the other.

Chart — the message card under the panel

The stop and the target are not tied together, so filling one will not cancel the other. You could be left with a live order after the trade is over.

What to do. When one of them fills, cancel the other by hand.

{leftToStrategy} owned by a strategy left alone.

Panel — the status row

Appended to a cancel: some orders belong to a strategy or ATM, so the robot did not touch them.

What to do. Cancel those where they were placed.

1 contract exceeds the active Risk

Panel — the status row

Even one contract would risk more than your limit at this stop distance, so the panel refuses to place it.

What to do. Move the Stop-Loss closer to the entry, raise 2.1 Risk per trade, or switch on 2.5 to allow the single contract deliberately.

1 contract requires a tighter Stop-Loss, or a higher Risk setting.

Panel — the status row

The full sentence behind the line above.

What to do. Tighten the stop or raise the Risk.

A close is still settling. The panel arms when it completes.

Panel — the status row

The full sentence behind "Close in progress".

What to do. Wait a second.

A Guardian trim is still settling on this instrument. The panel arms when it completes.

Panel — the status row

The full sentence behind "Risk trim settling".

What to do. Wait a second.

a hand-placed order cannot go below 1

Inside another message, where it names the reason

Why the Guardian stood down: it may shrink a hand-placed order but never cancel it, so it cannot go below one contract.

What to do. Cancel that order by hand if you want the position trimmed further.

A pending entry order placed from this panel is still live at the broker, but this robot has stopped tracking it (the account or the chart changed). If it fills it will have NO Stop-Loss and NO Take-Profit. Cancel it in NinjaTrader, or set its protection by hand.

Panel — the status row

The full sentence behind "Resting order — no SL/TP will attach". If it fills it will be naked.

What to do. Cancel it in NinjaTrader, or be ready to set its protection by hand.

a stand-alone order bigger than the position

Inside another message, where it names the reason

Why the Guardian stood down: an order larger than the position is not protection, so it will not act on it.

What to do. Resize or cancel that order by hand.

A strategy or ATM owns the order resting on this instrument, so TradeLog will not touch it — cancelling one leg of a bracket can leave a position unprotected. Cancel it where you placed it.

Panel — the status row

The full sentence behind "Resting order — owned by a strategy".

What to do. Cancel it where you placed it, not from this panel.

A TradeLog subscription is required. Renew it at tradelog.cot-reports.com to use this robot.

Inside another message, where it names the reason

Your TradeLog plan does not currently allow the robot.

What to do. Renew your plan, then press REFRESH.

Account not linked to TradeLog

Panel — the status row

This NinjaTrader account has not been linked to TradeLog, so no Risk can be read for it.

What to do. Link the account in TradeLog, then press REFRESH.

Alerts

Panel — the status row

The folded message card, red, because at least one of the lines behind it is an ALARM.

What to do. Click it — an alarm is never hidden without saying so.

An ATM strategy manages the {instrAtClick} position — use CLOSE POSITION, or scale out from the ATM

Panel — the status row

HALF and QUARTER cannot act on a position an ATM owns.

What to do. Use CLOSE POSITION, or scale out from the ATM itself.

an ATM/strategy owns it

Inside another message, where it names the reason

Why the Guardian stood down: an ATM strategy owns the protection and NinjaTrader forbids resizing it from outside.

What to do. Reduce the position from the ATM, or close it.

An order is still being placed. The panel arms when it completes.

Panel — the status row

The full sentence behind "Order in progress".

What to do. Wait a second.

API KEY INVALID

Inside another message, where it names the reason

TradeLog answered and rejected the key. Nothing is wrong with your subscription.

What to do. Copy the key again from your TradeLog account and paste it into the robot inputs.

API KEY REQUIRED

Inside another message, where it names the reason

No TradeLog API key has been entered at all.

What to do. Paste your key into the robot inputs. It is on your TradeLog account page.

Bracket attach failed

Panel — the status row

The Stop-Loss and Take-Profit could not be attached to a fill. The position is open and UNPROTECTED.

What to do. Set a stop by hand right now, or close the position. Then send us the Output window.

Cancel requested for {sent} resting orders on {instrument}.{left}

Panel — the status row

The cancel was sent for several resting orders.

What to do. Nothing — confirm they disappear from your Orders tab.

Cancel requested for the resting order on {instrument}.{left}

Panel — the status row

The cancel was sent for one resting order.

What to do. Nothing — confirm it disappears from your Orders tab.

Cannot reach TradeLog. Your broker connection is not affected - charts, orders and your positions are unaffected. Sizing stays off until the connection is restored. You can still close an open position.

Inside another message, where it names the reason

The connection to TradeLog was confirmed once and has since aged out — we cannot reach our own server. Nothing is wrong with your subscription or your key, and your BROKER connection is untouched: charts, orders and open positions carry on normally.

What to do. Check your own connection, then press REFRESH. If yours is fine, the problem is ours and the robot keeps retrying. You can still CLOSE an open position from the panel meanwhile.

cause not recorded

Inside another message, where it names the reason

The Guardian stood down and the reason was not recorded — this one should not happen.

What to do. Send us the Output window; we want to see this.

Close error: {ex}

Panel — the status row

An error was raised while closing. The text after the colon is NinjaTrader’s own.

What to do. Check the position in NinjaTrader and close it there if it is still open.

Close in progress

Panel — the status row

A close is still settling.

What to do. Wait a second.

Close order create failed

Panel — the status row

NinjaTrader refused to create the closing order.

What to do. Close the position in NinjaTrader directly, then send us the Output window.

Connected

Inside another message, where it names the reason

The link word: TradeLog is reachable and your account is confirmed.

What to do. Nothing.

Connecting

Inside another message, where it names the reason

The link word: the first check is in flight.

What to do. Wait a moment.

Connecting to TradeLog

Panel — the status row

The robot is establishing its connection to TradeLog.

What to do. Wait. If it stays here, check the API key and the connection.

Connecting to TradeLog. Sizing arms as soon as the connection is confirmed.

Inside another message, where it names the reason

The full sentence behind "Connecting to TradeLog".

What to do. Wait. If it stays here, check the API key.

Currency mismatch — can't size

Panel — the status row

The instrument is not priced in your account currency. The robot will not guess an exchange rate, so it refuses to size rather than give you a wrong number.

What to do. Trade this instrument from an account in its own currency.

Download it from your Connections page on tradelog.cot-reports.com.

Panel — the status row

The panel is showing a newer version, and this is where the file is. It appears on the badge hover when the server did not send a direct link, and in the Output window once per session.

What to do. Open tradelog.cot-reports.com, go to Connections, and download the NinjaTrader robot. Then in NinjaTrader: Tools then Remove NinjaScript Assembly, remove the TradeLog entry, and import the new zip from Tools then Import.

Flatten did not complete

Panel — the status row

The flatten was accepted but the position is still not flat.

What to do. Use NinjaTrader's own Close button.

Flatten failed

Panel — the status row

NinjaTrader refused the flatten.

What to do. Use NinjaTrader's own Close button. Then send us the Output window.

Flattening {position size} through NinjaTrader (ATM strategy) — this also cancels working orders on this instrument, entries included...

Panel — the status row

The position is ATM-owned, so the robot is using NinjaTrader’s own flatten — which also cancels working orders on this instrument, entries included.

What to do. Nothing, but check your working orders afterwards.

Locked In

Panel — the status row

On the Open Risk row: your stops now guarantee a profit. The figure beside it is how much.

What to do. Nothing. This is good news.

Margin NOT verified

Inside another message, where it names the reason

Some connections do not report free margin to NinjaTrader. When they do not, the robot says so rather than implying it checked.

What to do. Nothing — your connection still checks margin when the order is submitted.

Margin NOT verified — size not checked against free margin

Inside another message, where it names the reason

The full sentence for the line above.

What to do. Nothing; the broker still checks at submission.

Messages

Panel — the status row

The folded message card. The number beside it is how many lines are behind it.

What to do. Click it to open them.

Minimum size is over the active Risk

Panel — the status row

The smallest tradable size already costs more than your Risk at this stop distance. The panel tells you exactly how much more.

What to do. Move the Stop-Loss closer to the entry, or raise 2.1 Risk per trade.

No Access

Inside another message, where it names the reason

The link word: TradeLog refused this account — a lapsed plan or a bad key.

What to do. Check your plan and your API key.

No entry price

Panel — the status row

The Entry line has no usable price.

What to do. Drag the Entry line onto a real price level.

No free margin left

Inside another message, where it names the reason

Your account reports no free margin, so the broker may refuse this order.

What to do. Close something, or reduce the size.

No free margin left — the broker may reject this order

Inside another message, where it names the reason

The full sentence for the line above.

What to do. Close something, or reduce the size.

No market price yet

Panel — the status row

There is no bid or ask yet to measure a MARKET entry from.

What to do. Wait for the next price and press again.

No open position on {instrument}

Panel — the status row

A label on the exit row: you are flat on this instrument.

What to do. Nothing.

No plan lines on the chart

Panel — the status row

The Entry / Stop-Loss / Take-Profit lines are not on the chart, so there is no plan to place.

What to do. Press L for a long plan or K for a short plan, position the lines, then press BUY or SELL.

No TradeLog API key is set. Enter your key in the robot inputs.

Inside another message, where it names the reason

The full sentence behind "API key required".

What to do. Paste your key into 1.1 API Key.

Offline

Inside another message, where it names the reason

The link word: the robot cannot reach the TradeLog licence server right now. It keeps retrying, and your broker connection is not affected — orders and open positions are untouched.

What to do. Nothing while your licence still has time on it. If it stays amber for days and your own connection is fine, the problem is ours — tell us.

on {instrument} cannot be split into {denominator}. {scope} needs at least {denominator}, so CLOSE POSITION is the one that can act.

Panel — the status row

You do not hold enough contracts to take a half or a quarter.

What to do. Use CLOSE POSITION.

Order in progress

Panel — the status row

An order is still being placed. The panel arms again when it completes.

What to do. Wait a second.

Order resting — SL/TP on fill

Panel — the status row

Your pending entry is waiting at the broker. Its stop and target are NOT there yet — the robot attaches them the moment it fills.

What to do. Leave the chart open until it fills.

Override capped to Risk

Panel — the status row

You typed an Override larger than the Risk the Guardian trims to, so it was capped down. A bigger size would have been trimmed the moment it filled.

What to do. Nothing — this is the panel keeping the two consistent. Raise 2.1 if you want a bigger size.

Override Risk

Panel — the status row

The Risk in use is the amount you typed into the Override box on the panel, not your usual per-trade Risk. It applies until you clear the box.

What to do. Nothing, if that is what you wanted. Clear the Override box to go back to your usual Risk.

Pending

Panel — the status row

A label on the position row: you have resting orders but no open position.

What to do. Nothing.

POSITION

Panel — the status row

A label on the exit button — CLOSE POSITION closes the whole position.

What to do. Nothing.

Position already at the full Risk

Panel — the status row

Your open position already uses the whole Risk, so adding to it would go over.

What to do. Close part of the position to make room, or leave it as it is.

Position unavailable

Panel — the status row

NinjaTrader did not return the position this time.

What to do. Wait for the next update. If it persists, check the connection.

POSITION UNPROTECTED — ACT NOW

Panel — the status row

The worst state the panel can show: the protective orders were cancelled and the close did not go through, so you hold a position with nothing behind it.

What to do. Act immediately — close it in NinjaTrader, or place a stop by hand.

PROTECTION SHORT

Panel — the status row

The resting stop covers fewer contracts than you hold. Part of the position is unprotected.

What to do. Increase the stop order to cover the whole position, or reduce the position.

R comes in two kinds, the same two the TradeLog journal uses. F is FINANCIAL: a multiple of the Risk you set for one trade, so -0.92R F means you are down 92% of one trade's risk. T is TECHNICAL: the shape of the plan on the chart, so Risk to Reward 1 : 2.0 means the target sits twice as far from entry as the stop. F is about money, T is about distance.

Panel — the status row

The two kinds of R this robot prints. F (Financial) is a multiple of the Risk you set for one trade, so it answers "how much of one trade of risk is this?". T (Technical) is the shape of the plan on the chart, so "1 : 2.0" means the target is twice as far from entry as the stop. The same two letters the TradeLog journal uses, so the robot and the journal read alike.

What to do. Nothing — it is a legend. Hover the "Risk to Reward (T)" caption on the panel to see it again.

Refreshing risk from TradeLog...

Panel — the status row

A Risk refresh from TradeLog is in flight.

What to do. Wait a moment.

Resting order — no SL/TP will attach

Panel — the status row

A pending entry from this panel is still live at the broker, but the robot has stopped tracking it. If it fills it will have no stop and no target.

What to do. Cancel it in NinjaTrader, or be ready to set its protection by hand.

Resting order — nothing will protect it

Panel — the status row

There is a working order on this instrument that this robot did not place. It is real exposure, and the robot will not attach protection to it.

What to do. Manage it where it was placed, or cancel it.

Resting order — owned by a strategy

Panel — the status row

A strategy or ATM owns the resting order, so the robot will not touch it — cancelling one leg of a bracket can leave a position unprotected.

What to do. Cancel it where you placed it.

Risk could not be read from TradeLog. Sizing needs a valid API key and a working connection.

Panel — the status row

The full sentence behind the line above.

What to do. Check the API key and the connection, then press REFRESH.

Risk is still being read from TradeLog for this account. Sizing arms as soon as it arrives.

Panel — the status row

The full sentence behind "Syncing Risk".

What to do. Wait a moment.

Risk trim settling

Panel — the status row

The Guardian is part-way through trimming this instrument.

What to do. Wait a second.

Risk unavailable

Panel — the status row

The Risk could not be read from TradeLog, so nothing can be sized.

What to do. Check the API key and the connection, then press REFRESH.

RISK-FREE

Panel — the status row

On the Open Risk row: your stops sit exactly at breakeven, so the trade can no longer lose.

What to do. Nothing.

Room left on this position

Panel — the status row

The Risk in use was reduced to the room left on an open position, so a new entry cannot push you over your limit.

What to do. Nothing. Close part of the position if you want more room.

Set API Key

Inside another message, where it names the reason

The link word: no API key has been entered yet.

What to do. Paste your key into 1.1 API Key.

Size:

Panel — the status row

A label on the position row, before the number of contracts you hold.

What to do. Nothing.

SL extended

Panel — the status row

The short form on the status row of the SL-extended note explained above.

What to do. See that note.

SL must be ABOVE entry (SHORT plan)

Panel — the status row

A short plan needs its stop above the entry, and yours is not.

What to do. Drag the Stop-Loss above the Entry line, or press L for a long plan instead.

SL must be BELOW entry (LONG plan)

Panel — the status row

A long plan needs its stop below the entry, and yours is not.

What to do. Drag the Stop-Loss below the Entry line, or press K for a short plan instead.

Stop is bigger than what you'd keep on {instrument} — use CLOSE POSITION, or resize it by hand

Panel — the status row

A partial close would leave more stop than position — the one outcome the robot refuses to create.

What to do. Use CLOSE POSITION, or resize the stop by hand first.

Stop-Loss required

Panel — the status row

You pressed BUY or SELL with no Stop-Loss. Without one there is no defined risk to size against.

What to do. Drag the Stop-Loss line to where you want it, then press again.

Strict Risk is on, so the typed override was capped down to the Risk this account trims to. A larger size would have been trimmed the moment it filled.

Panel — the status row

The full sentence behind "Override capped to Risk".

What to do. Nothing. Raise 2.1 Risk per trade if you want a bigger size.

SUBSCRIPTION REQUIRED

Inside another message, where it names the reason

TradeLog answered and said this account does not have an active subscription that covers the robot. This one IS about the subscription — the other three below are not.

What to do. Renew or upgrade at tradelog.cot-reports.com. The panel arms itself once that is done.

Syncing Risk

Panel — the status row

The Risk for this account is still being read from TradeLog.

What to do. Wait. Sizing arms as soon as it arrives.

The cancel could not be sent — the order is still resting.

Panel — the status row

The cancel never reached the broker. The order is still live.

What to do. Cancel it in NinjaTrader.

The Entry line has no usable price, so this plan cannot be sized.

Panel — the status row

The full sentence behind "No entry price".

What to do. Drag the Entry line onto a real price.

The entry order is resting at the broker. Its Stop-Loss and Take-Profit are NOT there yet — they are attached the moment it fills, by this robot, so leave the chart open until it does.

Panel — the status row

The full sentence behind "Order resting — SL/TP on fill".

What to do. Leave the chart open until it fills, so the robot can attach the protection.

The Entry, Stop-Loss and Take-Profit lines are no longer on the chart, so there is no plan to place. Press L for a LONG plan or K for a SHORT plan, then press BUY or SELL.

Panel — the status row

The plan lines were removed between drawing them and pressing.

What to do. Press L or K to draw them again, position them, then press BUY or SELL.

The instrument could not be read from NinjaTrader. It may read on the next attempt.

Panel — the status row

NinjaTrader did not return the instrument when you pressed.

What to do. Press again in a moment.

The instrument is not priced in the account currency, so this plan cannot be sized.

Panel — the status row

The full sentence behind "Currency mismatch". The robot will not invent an exchange rate.

What to do. Trade this instrument from an account in its own currency.

The LONG plan requires the Stop-Loss below the entry. Press K for a SHORT plan instead.

Panel — the status row

A long plan needs its stop below entry.

What to do. Drag the stop below Entry, or press K for a short plan.

The LONG plan requires the Take-Profit above the entry.

Panel — the status row

A long plan needs its target above entry.

What to do. Drag the Take-Profit above Entry.

The open position on this instrument already uses the full Risk, so adding to it would exceed it. Closing part of the position frees room for another entry.

Panel — the status row

The full sentence behind "Position already at the full Risk".

What to do. Close part of the position to make room, or leave it.

the order book could not be read

Inside another message, where it names the reason

Why the Guardian stood down: it could not read the orders, and it will not reduce a position behind protection it never measured.

What to do. Check that NinjaTrader is connected, then press REFRESH.

The order book could not be read — nothing was cancelled.

Panel — the status row

The account’s orders could not be read, so the robot cancelled nothing rather than guess.

What to do. Check the connection and press again.

The plan on the chart is LONG

Panel — the status row

You pressed SELL while a LONG plan is drawn, so the stop is on the wrong side for that order.

What to do. Press K to draw a short plan, then press SELL.

The plan on the chart is SHORT

Panel — the status row

You pressed BUY while a SHORT plan is drawn, so the stop is on the wrong side for that order.

What to do. Press L to draw a long plan, then press BUY.

The plan sizes to zero contracts. Check the Stop-Loss distance and the instrument's point value.

Panel — the status row

The full sentence behind "Volume = 0".

What to do. Move the stop closer to entry, or raise your Risk.

The position could not be read from NinjaTrader. It may read on the next attempt.

Panel — the status row

The full sentence behind "Position unavailable".

What to do. Wait for the next update.

The position is still not flat. NinjaTrader's own Close button is the way out of this state.

Panel — the status row

The full sentence behind "Flatten did not complete".

What to do. Use NinjaTrader's own Close button.

the position would be left with less stop than size

Inside another message, where it names the reason

Why the Guardian stood down: trimming would have left part of the position unprotected.

What to do. Add stop coverage, or reduce the position by hand.

the resizes were not accepted

Inside another message, where it names the reason

Why the Guardian stood down: NinjaTrader refused the resize attempts.

What to do. Resize or cancel the order by hand.

The SHORT plan requires the Stop-Loss above the entry. Press L for a LONG plan instead.

Panel — the status row

A short plan needs its stop above entry.

What to do. Drag the stop above Entry, or press L for a long plan.

The SHORT plan requires the Take-Profit below the entry.

Panel — the status row

A short plan needs its target below entry.

What to do. Drag the Take-Profit below Entry.

The Stop-Loss and Take-Profit could not be attached to the fill. This position is unprotected until they are set by hand.

Panel — the status row

The full sentence behind "Bracket attach failed". The position is open and unprotected.

What to do. Set a stop by hand now, or close the position. Then send us the Output window.

The TradeLog API key was rejected. Check the key in the robot inputs.

Inside another message, where it names the reason

The full sentence behind "API key invalid".

What to do. Re-copy the key from Settings then API Keys and paste it again.

There is a working order on this instrument that this robot did not place. It is real exposure and it can fill at any time, but TradeLog will NOT attach a Stop-Loss or a Take-Profit to it — manage it where it was placed.

Panel — the status row

The full sentence behind "Resting order — nothing will protect it".

What to do. Manage it where it was placed, or cancel it.

There is no bid or ask to measure a MARKET entry from yet. Wait for the next price, then press again.

Panel — the status row

The full sentence behind "No market price yet".

What to do. Wait for the next price and press again.

This account has not been linked to TradeLog yet, so no Risk can be read for it.

Panel — the status row

The full sentence behind "Account not linked to TradeLog".

What to do. Link the account in TradeLog, then press REFRESH.

TP must be ABOVE entry (LONG plan)

Panel — the status row

A long plan needs its target above the entry.

What to do. Drag the Take-Profit above the Entry line.

TP must be BELOW entry (SHORT plan)

Panel — the status row

A short plan needs its target below the entry.

What to do. Drag the Take-Profit below the Entry line.

TradeLog could not be reached. The robot keeps retrying on its own.

Panel — the status row

The full sentence behind "TradeLog disconnected". Your broker connection is not affected.

What to do. Check your own connection. If it is fine, ours is down — the robot keeps retrying either way.

TradeLog disconnected

Panel — the status row

TradeLog could not be reached. The robot keeps retrying on its own, and your broker connection is not affected.

What to do. Check your own connection. If it is fine, the problem is on our side.

TRADELOG UNREACHABLE

Inside another message, where it names the reason

The robot cannot reach TradeLog. Nothing is wrong with your subscription or your key, and your BROKER connection is untouched: charts, orders and open positions carry on normally. Sizing is off because the risk figure comes from TradeLog and we will not guess one.

What to do. Nothing. It keeps retrying. You can still CLOSE an open position from the panel while this is showing — closing is never blocked.

UNCAPPED

Panel — the status row

On the Open Risk row: some of your contracts have no stop behind them, so the loss on this position has no ceiling.

What to do. Place a stop covering the whole position.

Volume = 0

Panel — the status row

The plan sizes to zero contracts — usually a stop so far away that nothing fits inside your Risk.

What to do. Move the Stop-Loss closer to the entry, or raise 2.1 Risk per trade.

Without a Stop-Loss there is no defined risk, so this plan cannot be sized.

Panel — the status row

The full sentence behind "Stop-Loss required".

What to do. Drag the Stop-Loss line into place, then press again.

The Guardian

The Guardian is the part that acts without you clicking, so it is worth knowing exactly what it does. It compares what an open position would lose if its stop were hit against your risk per trade. If the loss would be larger, it reduces the position until it is not. It closes part of the trade; it never moves your stop. With setting 3.2 ON it watches every instrument on the account, including trades you opened outside the panel.

If the Guardian finds a stop or limit order larger than the position it should protect, it stops and says so instead of acting. An order bigger than the position is not protection, and trimming on that guess could close a trade you meant to keep.
With the robot on several charts of one account, only one of them trims. The others say so on their own panel, so you are never guessing which one is in charge.

Updating the robot

The panel tells you when a newer build exists: the header shows "Update available" with the version. Updating is a remove-then-import, not an overwrite — if the old assembly is still installed, NinjaTrader refuses the import with "duplicate method names".

  1. 1Download the new zip from your Connections page in TradeLog. Its name carries the version, so you can tell it apart from the one you already have.
  2. 2In NinjaTrader, close every chart that has the robot on it.
  3. 3Control Center → Tools → Remove NinjaScript Assembly… → select the TradeLog entry (its name carries the version) → Remove. NinjaTrader recompiles.
  4. 4Control Center → Tools → Import → NinjaScript Add-On… → pick the new zip. The third-party warning appears again — press OK.
  5. 5Close NinjaTrader completely and open it again. This is not optional: .NET does not unload an assembly, so until you restart, the old robot is still the one running — the panel keeps showing the old version and the update badge even though the new file is already on disk.
  6. 6Re-open your chart and add the robot to it. Check that the version in the panel header is the one you just installed.
Note your API key and your risk settings down before you start — after a reinstall you may have to enter them again.

NinjaTrader cannot switch this robot off

NinjaTrader disables a running strategy on its own Close or Flatten. The TradeLog robot is not one, so it survives those actions and keeps protecting the account.

Frequently asked questions

  • Nothing happened after I imported it. The import puts the robot into NinjaTrader; it does not put it on a chart. Right-click your chart, choose Indicators…, find TradeLogSyncV3 and double-click it.
  • I click a settings box and my typing does not go in. That is the NinjaTrader Parameters grid, not the robot: click once to select the cell, once more to edit it.
  • My old trades did not appear. NinjaScript cannot read executions from before the robot was running. Export them from Control Center, Trade Performance, Executions, and upload the CSV in TradeLog — it merges onto the same trades.
  • Can I run it on two accounts? Yes, on as many charts and accounts as you like. Keep setting 3.2 ON and only one chart per account does the trimming.
  • The panel says an update is available. It is a notice, not a block. Download the new file from Connections and import it the same way.
  • The panel still shows the old version and "Update available" after I updated. You have not restarted NinjaTrader yet. Removing and importing changes the file on disk; the copy already loaded in memory keeps running until NinjaTrader is closed and opened again.

If something goes wrong

One message with everything in it gets a useful answer on the first try. Here is what to send.

We answer within 24 hours. Sending all four things below in your first message is what makes that one answer enough, instead of the first of three.
  1. 1The version number from the panel header.
  2. 2The last 30 lines from the NinjaTrader Output window. Turn setting 6.1 ON, then open Control Center, New, Output; reproduce the problem; right-click inside the window and choose Select All, then Copy.
  3. 3A screenshot of the whole chart with the panel visible.
  4. 4What you did, what you expected, and what happened instead.

Version history

3.9.1The connection light now recovers as soon as TradeLog answers again, instead of waiting for the next half-hourly check, and the panel says plainly when TradeLog cannot be reached rather than showing "Connecting" indefinitely.
3.9.0The panel now catches a stop placed on the wrong side of your position, tells you how many contracts are still unprotected, and clears leftover orders when you close.
2.4.2Stability fixes for the position panel.

Version numbers are the ones the panel shows in its header. If yours is older, download the robot again from your Connections page.

Link your NinjaTrader account to the TradeLog account that carries the matching prop-firm profile, so your rules and limits apply to the right trades.
Treat your API key like a password. If it is ever exposed, delete it in Settings then API Keys and create a new one — the old key stops working immediately.

Was this helpful?