OneShot2

Evolution of the original OneShot evaluation passing algo.

OneShot2 — User Guide

Overview

OneShot2 is a breakout strategy built specifically for NQ (Nasdaq-100 E-mini futures) and prop firm evaluation accounts. It takes a single, high-conviction trade per day based on price action from the opening session. The philosophy is simple: one clean setup, one clean trade, done for the day.

The strategy is designed to:

  • Operate within the strict risk rules of prop firm evaluations

  • Require minimal screen time — orders are placed automatically at a defined time each morning

  • Be fully configurable so you can dial it in to your specific account size and firm's rules

Important: OneShot2 must be set to either Long Only or Short Only — it does not trade both directions simultaneously. Choose the direction that aligns with your market bias or backtest findings. Consider using it with 2 accounts for each "attempt", one long and one short.


How It Works

OneShot2 monitors a specific time window each morning and records the high and low of price action during that window. When the window closes, it places a stop-limit order just outside that range — above the high for a long trade, or below the low for a short trade.

The idea is that when price breaks convincingly beyond the morning range, it tends to follow through. The strategy captures that move with a defined profit target and stop loss.

Key behavioral notes:

  • One trade per day, maximum. Once an entry order is placed, no additional entries are attempted that session.

  • Unfilled orders are automatically cancelled at a time you define. If price never reaches the breakout level by mid-session, the order is pulled and the strategy sits flat for the rest of the day.

  • The strategy exits at session close if still in a trade (standard NinjaTrader session close behavior).


Parameter Reference

Exit Settings

Parameter
Default
Description

Profit Target (Ticks)

62

How far in your favor the trade needs to go to lock in profit

Stop Loss (Ticks)

62

How far against you the trade can go before it's closed

Max Contracts

10

The number of contracts to trade. Set this to the maximum your prop firm allows

NQ tick value: Each tick is worth $5 per contract (0.25 points × $20/point). At 62 ticks and 10 contracts, the profit target is $3,100 and the stop loss is also $3,100.

Adjust these values based on your account size and the firm's daily loss limit. A common starting point for a $50,000 evaluation is equal-sized targets and stops in the 50–80 tick range.


Direction Settings

Parameter
Default
Description

Long Only

Off

Only trade breakouts above the range high

Short Only

Off

Only trade breakouts below the range low

You must enable exactly one of these. Enabling both (or neither) will prevent any trades from being taken that day.

Use your backtesting results to determine which direction is more consistent across your target time window. Some windows perform better long, others short — this is worth exploring.


Time Settings

Parameter
Default
Description

Data Window Start

9:30 AM

When the strategy begins tracking the range

Data Window End

9:44 AM

When range tracking stops and the entry order is submitted

Cancel Unfilled By

12:00 PM

If the entry order is still unfilled by this time, it is automatically cancelled

This is the most important group to backtest. The default window (9:30–9:44) represents a specific opening range concept, but there is no single "correct" window. Different windows will produce very different results. See the Backtesting Guide section below for guidance on how to find your own profitable windows.

The cancel time prevents the strategy from entering a trade late in the session when the move has likely already played out.


Entry Order Settings

Parameter
Default
Description

Limit Offset (Ticks)

2

Buffer added to the stop-limit order to improve fill probability

When a stop-limit order is placed, the stop price triggers the order, and the limit price is the worst fill you'll accept. Setting a 2-tick offset means you'll accept a fill up to 2 ticks beyond the breakout level. This helps on fast-moving breakouts. Setting it too tight may result in missed trades; setting it too wide may result in poor fills.


Trail Stop Settings

The trailing stop is an optional feature that locks in profit as the trade moves in your favor. It does not activate until the trade reaches a dollar threshold you define, and once active, it ensures you keep a percentage of your maximum unrealized gain.

Parameter
Default
Description

Enable Trail Stop

Off

Turns the trailing stop on or off

Trail Trigger ($)

$1,000

The unrealized profit level (in dollars, across all contracts) that activates the trail

Trail Protection %

50%

Once activated, the stop is set to protect this percentage of the highest unrealized profit seen

Example — 10 contracts, $1,000 trigger, 50% protection:

  1. Trade enters. No trail stop yet.

  2. Unrealized profit reaches $1,000. Trail stop activates.

  3. Trade continues to $1,400 unrealized (new high-water mark).

    • 50% of $1,400 = $700 protected

    • Stop is now placed to lock in $700 of profit

  4. Trade pulls back to $1,200. High-water mark is still $1,400, stop stays at $700.

  5. Trade runs to $2,000 (new high-water mark).

    • 50% of $2,000 = $1,000 protected

    • Stop is updated to lock in $1,000 of profit

  6. Price reverses and hits the stop. Trade closes with approximately $1,000 profit.

The higher the Trail Protection %, the tighter the stop and the sooner it may stop you out. Lower values give the trade more room to breathe but protect less of your gains.

The trail stop replaces the regular stop loss once activated. Before the trigger is hit, the original stop loss remains in effect.


Consistency Rule

Many prop firms enforce a consistency rule: no single trading day can account for more than a set percentage of your overall profit target. For example, a firm with a $10,000 account target and a 30% consistency rule means no single day can show more than $3,000 in profit.

OneShot2 has a built-in consistency rule that automatically reduces the profit target on a given trade to comply with this restriction.

Parameter
Default
Description

Use Consistency Rule

Off

Enables the automatic profit target reduction

Consistency %

33%

The maximum percentage of the configured profit target allowed per day

How the math works:

Your configured Profit Target (Ticks) is treated as the "full" daily allowance. The Consistency % is applied to reduce the actual order target.

Example — 62 tick target, 33% consistency:

  • 33% of 62 ticks = 20 ticks effective profit target per trade

  • At 10 contracts: 20 ticks × $5/tick × 10 contracts = $1,000 per day maximum

  • Your stop loss remains at the full configured value (62 ticks)

Example — 62 tick target, 50% consistency:

  • 50% of 62 ticks = 31 ticks effective profit target per trade

  • At 10 contracts: 31 ticks × $5/tick × 10 contracts = $1,550 per day maximum

Use this setting when your prop firm's rules explicitly cap daily profits as a percentage of your evaluation target. Check your firm's terms carefully — some firms use percentage of total profit target, others use percentage of account balance.

The stop loss is not affected by the consistency rule. Only the profit target is reduced.


Ignore Days

Use these checkboxes to exclude specific days of the week from trading entirely. If a day is skipped, no range tracking or order submission occurs.

Parameter
Default

Skip Monday

Off

Skip Tuesday

Off

Skip Wednesday

Off

Skip Thursday

Off

Skip Friday

Off

Mondays and Fridays can sometimes exhibit erratic behavior due to weekend gaps and end-of-week positioning. Run your backtests with individual days isolated to see which days contribute positively or negatively to your results.


Realtime Recovery

Parameter
Default
Description

Enable Entry Reject Recovery

Off

If the stop-limit entry order is rejected by the broker, automatically resubmit as a market order

Fallback To Market On Reject

On

Controls whether the fallback uses a market order (recommended to leave on if recovery is enabled)

Entry rejections can happen when price moves too fast and the stop price becomes invalid by the time the order reaches the exchange. Enabling recovery ensures you still get into the trade via a market order. Note that a market order fill may be at a slightly different price than the original entry.

This feature is realtime only — backtests are not affected.


Backtesting Guide

The most valuable thing you can do with OneShot2 is explore different time windows through backtesting. The default 9:30–9:44 window is a starting point, not a universal best setting.

What to vary

Data Window Start / End — Try different combinations:

  • 9:25–9:30 (pre-open range)

  • 9:30–9:35 (first 5 minutes)

  • 9:30–9:45 (first 15 minutes)

  • 9:30–10:00 (first 30 minutes)

  • 9:45–10:00 (post-open range)

Direction — Test Long Only and Short Only separately for each window. Some windows will have a strong directional bias.

Profit Target vs. Stop Loss ratio — Test symmetric (equal PT and SL) vs. asymmetric (e.g., 2:1 PT:SL or 1:2 PT:SL).

Day filters — Run backtests with individual days removed to identify which days of the week are profitable and which are not.

What to look for in results

  • Consistency of results across 3, 6, 12 month periods...not just a week — A window that works for one month but not others is likely just a lucky streak.

  • Win rate vs. payoff ratio balance — Neither a 90% win rate nor a 90% loss rate is sustainable; look for something in between that makes mathematical sense

  1. Set a fixed date range (e.g., Jan 2025 – Jan 2026)

  2. Run Long Only with several different time windows and record the results

  3. Repeat with Short Only

  4. Identify the 2–3 most consistent windows and test them on out-of-sample data or in SIM.

  5. Use the Consistency Rule and trail stop in a second pass once you've settled on a window


Below is a general starting configuration. Adjust based on your firm's specific rules and your backtest findings.

Setting
Suggested Value
Notes

Max Contracts

Per firm rules

Never exceed your firm's contract limit

Profit Target

62 ticks ($3,100 at 10 contracts)

Adjust to fit daily profit cap if applicable

Stop Loss

62 ticks

Symmetric is a safe default to start

Direction

Based on backtest

Test both before going live

Cancel Unfilled By

11:00 AM – 12:00 PM

Prevents late entries on stale setups

Use Consistency Rule

On (if your firm requires it)

Set the % to match your firm's rule

Enable Trail Stop

Optional

Useful for protecting large open profits

Trail Trigger

50–75% of daily limit

Activates when a meaningful profit is at risk

Trail Protection %

50%

Balanced starting point


Frequently Asked Questions

Can I run this on multiple accounts at the same time? Yes. Load a separate instance of the strategy on each account, each configured independently with that account's specific contract limit and consistency rule settings.

The entry order never filled — what happened? Price did not reach the breakout level before the Cancel Unfilled By time. This is expected behavior. The strategy intentionally skips days where the breakout does not happen within the session.

Can I change the settings mid-day? It is not recommended. OneShot2 is designed to be loaded once before market open and run hands-off. Changing settings after the data window has already passed may cause unexpected behavior.

Does it trade every day? No. If no days are skipped and the market is open, an order is placed every day. However, if the breakout level is never reached, the order expires and no trade occurs. Some days will simply produce no trade.

Is this strategy compatible with Market Replay? Yes. You can replay historical days to observe exactly how the strategy behaves on a specific date and time.

Last updated