NexusFi: Find Your Edge


Home Menu

 





Trading Journal (Neural Network Production Pipeline Model & Ninjatrader8 Strategy)


Discussion in Trading Journals

Updated
    1. trending_up 705 views
    2. thumb_up 4 thanks given
    3. group 2 followers
    1. forum 5 posts
    2. attach_file 4 attachments




 
Search this Thread
  #1 (permalink)
 
PlayingGoFish's Avatar
 PlayingGoFish 
Denver, Colorado
 
Experience: Intermediate
Platform: NinaTrader 8
Trading: ES, Gold, Oil
Frequency: Many times daily
Duration: Hours
Posts: 27 since May 2016
Thanks Given: 3
Thanks Received: 22

Automated post: generated and posted by my trading pipeline's scripts. Every figure is computed from the trade log; the commentary is written by a local AI model and checked against those figures before posting.

Strategy journal - an automated intraday stock strategy

This is a daily journal of an automated strategy I built and run myself. Every entry is generated live from the Ninjatrader strategy: the day's trades and results, how the day compared with what the model expected, and running totals. The figures are computed from the logs, not typed in, and losing days get posted the same as winning ones.

Account: a simulated account (SimDx) - no real money yet. Position sizes follow from the base simulation account under the model's own sizing rules, so results here are shown in percent rather than dollars - each trade as a return on its position, each day as a share of the account.

In short

- US stocks, intraday only - every position is flat by the close.
- Entries come from classic intraday setups - mostly mean reversion: Bollinger-band and IBS reversals, RSI and multi-indicator divergences and the like - on 5- to 30-minute bars.
- A model trained on every past occurrence of those setups scores each new one as it appears; only the highest-scoring are taken, one per stock.
- Each trade exits on its setup's own target, a stop at half the stock's daily ATR, or the close - the model chooses which exit each trade uses.
- Everything that decides those trades is rebuilt every night by a pipeline that runs outside the trading platform.

At the time of writing

As of 2026-10-20, build 20261021_204709. Every figure here can change with the next build - the pipeline re-decides them nightly.

 
Code
Historical setup occurrences studied              26.7 million (2016-10-06 to 2026-10-20)
Training rows (each occurrence under both exits)  53.5 million
Inputs researched / used by the model             184 / 56
Distinct indicators among them                    43
Bar timeframes they are measured on               5/15/30/60 minutes, plus 22 market and context inputs
Setup families / setup x timeframe researched     38 / 86
Setups traded by this build                       6
Alternative exit policies tested                  8
Walk-forward record                               19 half-years since 2017-07-06
Symbol universe / with full research data         2,689 / 2,096
Symbols streamed live (cap)                       1,000
Book size vs the account                          3.40x deployed, SPY-risk target 2.74x
Current model                                     a neural network blended with XGBoost, layers 128-64-32, 8 networks x 8 seeds
The data and the symbols

- Universe. A separate script builds the symbol list from the exchange listings: US common stocks above a minimum price and market capitalisation, ranked by size. The research uses every symbol in it with enough history.
- Live list. NinjaTrader can only stream so many symbols, so the live list is a capped subset, re-ranked at every build by how the model has actually traded each symbol over the previous two years.
- Market data. One-minute bars come through NinjaTrader 8 from the broker's feed. After every close a history keeper fills any gaps, and the pipeline copies the bars into its own store, plus SPY for market context. A day only enters the research once its bars are complete.

Research - what is worth trading

- Every setup is run over every symbol on every day of the record, at each bar timeframe, and every occurrence is kept as a candidate trade with its outcome under both exits - hold to the close, or the setup's own exit. Outcomes are measured in units of the stock's daily ATR, after an assumed trading cost, so a quiet stock and a wild one are comparable.
- A setup is only kept if it held up in every half-year of the record, not just on average - an edge that came from one good stretch is discarded.
- Each candidate is described by indicator readings taken at the moment it fired - momentum, trend, volatility, range and mean-reversion measures on several bar timeframes - plus the market's state (SPY) and the calendar. The inputs that carry the most information are kept; the rest are dropped.
- Exits are researched separately: alternative exit policies are replayed over the same trades every build and adopted only if they win consistently out of sample.

Training - on the GPU, outside NinjaTrader

- Training runs every night after the close on the GPU (PyTorch), as its own process entirely outside NinjaTrader. NinjaTrader never trains anything - it only runs the finished model.
- The model learns to predict each candidate's net result, in daily-ATR units, under each exit. Several network shapes are tried and compared, and the chosen one is trained as an ensemble over several random seeds so no single lucky run decides.
- A gradient-boosted tree model (XGBoost) is measured beside it every night and blended in only when the evidence across builds says, with high confidence, that it adds something.

Evaluation - walk-forward, never in-sample

- Every result quoted here is walk-forward: the record is cut into half-years, and each half-year is traded by a model trained only on the data before it. Nothing is scored on data the model was trained on.
- The selection rules - how many trades a day, how high a score must be, how positions are sized - are chosen the same way: each half-year with the settings that looked best before it, never with hindsight.
- A build has to pass a gate on that out-of-sample record before it can be deployed. Its results are also compared with NinjaTrader's own backtests to measure what real fills cost.

Deployment - a separate step, before the open

- A passing model is exported to ONNX and checked number-for-number against the trained network.
- Inside NinjaTrader a C# engine computes the same indicator inputs as the research code - verified to match it on every decision - and runs the model on each setup as it fires.
- The pipeline writes a deployment record: the model, the selection rules, the live symbol list and the sizing. A separate pre-market update applies it to NinjaTrader before the session, so nothing changes mid-day.
- Every night the previous session is replayed through the model that traded it, to check that live took the trades the model itself would have chosen, and every live fill is compared with the price the model assumed.

What the pipeline decides every night

Because the model is rebuilt after every close, these are chosen from the results rather than set by hand:
- which setups are traded;
- how many trades a day are allowed;
- how the positions are sized and how large the book is;
- which symbols are streamed live.
Each daily entry names the build that traded it and what that build expected.

How it has done - walk-forward

Out of sample since 2017-07-06, simulated with an assumed trading cost. The record below is as of 2026-10-20 (build 20261021_204709); every daily entry carries the current one.

Year by year, at SPY's risk (2.74x the book) - each year's profit over the book, as the build's Returns view shows it - beside SPY bought and held:

 
Code
Year  Strategy     SPY  Difference  Strategy DD  SPY DD
----  --------  ------  ----------  -----------  ------
2017     +6.3%   +9.9%       -3.6%        -7.3%   -2.1%
2018    +30.2%   -6.3%      +36.5%       -10.1%  -18.0%
2019    +20.1%  +28.7%       -8.6%        -4.7%   -6.6%
2020    +36.1%  +16.1%      +20.0%       -19.4%  -34.2%
2021    +35.8%  +27.0%       +8.7%        -8.7%   -5.4%
2022    +13.7%  -19.5%      +33.2%       -12.0%  -25.4%
2023    +14.6%  +24.3%       -9.7%       -11.4%  -10.3%
2024    +33.9%  +23.3%      +10.7%        -7.6%   -8.4%
2025   +109.6%  +16.4%      +93.3%        -4.0%  -19.0%
2026    +68.2%  +12.8%      +55.4%        -2.9%   -9.1%
Shown at SPY's risk (2.74x the book): each period's profit over the book at that size - the pipeline's own measure, as its Returns view shows it; SPY bought and held. Over the full years 2018-2025 the strategy averaged +36.8% a year against SPY's +13.8%; worst drawdown -19.4% of the account against SPY's -34.2%; Sharpe 2.15 against 0.77. The pipeline sizes the book toward SPY-level risk - currently 2.74x: above it the book is cut at once, below it raised only as live results confirm the walk-forward. Positions are intraday and flat by the close, so the leverage is never held overnight.

What each entry will show

- the day: trades, result, win rate, profit factor, longs vs shorts, and every trade with its setup, exit and return;
- live performance since this journal began - week, month and year to date;
- the day against what the model that traded it expected, and a running live-vs-expected chart;
- the model's walk-forward record, year by year and month by month, against SPY;
- whether live took the trades the model itself would have chosen.

Caveats

Walk-forward results are a simulation: real fills, slippage and data differ, and live results are the only ones that count - they will be posted as they come. Nothing here is advice or a recommendation to trade anything.


Attached Thumbnails
Click image for larger version

Name:	model_20261021_204709.png
Views:	25
Size:	66.5 KB
ID:	345242  
Visit my NexusFi Trade Journal Started this thread Reply With Quote
Thanked by:

Can you help answer these questions
from other members on NexusFi?
No book, only a stair: journaling fills where price move …
Cryptocurrency
I developed a free AI-powered (Kronos) forecasting indic …
The Elite Circle
My Rant with AMP Futures
Trading Reviews and Vendors
requesting .nrd replay files from 2026 spy and qqq
The Elite Circle
Bitcoin’s 2022 low, 2025 high and 2026 low so far arou …
Cryptocurrency
 
  #2 (permalink)
 
PlayingGoFish's Avatar
 PlayingGoFish 
Denver, Colorado
 
Experience: Intermediate
Platform: NinaTrader 8
Trading: ES, Gold, Oil
Frequency: Many times daily
Duration: Hours
Posts: 27 since May 2016
Thanks Given: 3
Thanks Received: 22

Automated post: generated and posted by my trading pipeline's scripts. Every figure is computed from the trade log; the commentary is written by a local AI model and checked against those figures before posting.

2026-10-21 - 1 trades, +0.04% on the account

The day was quiet. One trade, a short on ROKU, entered after 10am on the BB_REV30@5 structure. The position returned 0.424 percent and added 0.044 percent to the account. That is both the best and the worst trade of the day, because it is the only trade. No losers, no profit factor to calculate, just one short that closed in the right direction.

Because this is the first day of the journal, the week, the month, and the year to date all read the same: 0.044 percent, one trade, a 100 percent win rate. I am not going to dress that up. A single green day on a single name is not a pattern. The year-to-date number carries no more weight than the daily number right now, and I will not pretend it does. It will, in time, but not today.

What I will note is that the model is built for fifteen trades a day across three structures, and it took one. IBS_X@15 and RSI_DIV@15 never triggered. That tells me something about the tape on this particular day, not about the model. I will let the next few days do the talking.

The day

 
Code
Trades              1
Result              +0.04% of the account
Win rate            100.0%
Profit factor       -
Avg trade           +0.42% on the position
Avg winner / loser  +0.42% / -
Best / worst trade  +0.42% / +0.42%
Shorts              1 trades, +0.04% of the account, win 100.0%


 
Code
                             Model   Today  Difference
---------------------------  -----  ------  ----------
Trades                           -       1           -
Win rate                         -  100.0%           -
Avg trade (on its position)      -  +0.42%           -
Result (on the account)          -  +0.04%           -
Profit factor                    -       -           -
Trades

Return = the trade's result on its own position.

 
Code
Time      Symbol  Side   Setup        Entry    Exit  Exit by  Return
--------  ------  -----  ----------  ------  ------  -------  ------
14:04:36  ROKU    SHORT  BB_REV30@5  158.04  157.37  TGT      +0.42%
Live performance

Counted from the journal's first day, 2026-10-21, a simulated account (SimDx). Result and per day: % of the account; per trade: % on the position.

 
Code
Period                                       Days  Trades  Result  Per day  Per trade     Win  PF
-------------------------------------------  ----  ------  ------  -------  ---------  ------  --
Today                                           1       1  +0.04%  +0.044%    +0.424%  100.0%   -
Since journal start (= Week / Month / Year)     1       1  +0.04%  +0.044%    +0.424%  100.0%   -
Since the start: live +0.04% of the account against - the trading builds expected (1 session).


Visit my NexusFi Trade Journal Started this thread Reply With Quote
Thanked by:
  #3 (permalink)
DrQumsieh
Bethlehem Palestinian authority
 
Posts: 7 since Oct 2026
Thanks Given: 0
Thanks Received: 4


Good to see a journal where the numbers come straight from the logs, losing days included. That's rarer here than it should be.

One thing that would make it even more useful to follow: next to each day's result, what a random entry would have done on the same symbols, same side, same holding time. I started doing that with my own ES ideas and it changed which ones I kept. A model can be right on direction and still not beat random once real fills and commission go in, especially on single-stock shorts where slippage adds up.

Also curious how you split the data for the network. Is the sim period completely out of sample, or did the model see any of it in training?

Following along.


Reply With Quote
  #4 (permalink)
 
PlayingGoFish's Avatar
 PlayingGoFish 
Denver, Colorado
 
Experience: Intermediate
Platform: NinaTrader 8
Trading: ES, Gold, Oil
Frequency: Many times daily
Duration: Hours
Posts: 27 since May 2016
Thanks Given: 3
Thanks Received: 22


DrQumsieh View Post
Good to see a journal where the numbers come straight from the logs, losing days included. That's rarer here than it should be.

One thing that would make it even more useful to follow: next to each day's result, what a random entry would have done on the same symbols, same side, same holding time. I started doing that with my own ES ideas and it changed which ones I kept. A model can be right on direction and still not beat random once real fills and commission go in, especially on single-stock shorts where slippage adds up.

Also curious how you split the data for the network. Is the sim period completely out of sample, or did the model see any of it in training?

Following along.

Thanks for the follow DrQumsieh. Good points about random entries, that is something I will have to look into for the future.

As far as the split: it’s walk-forward, and nothing is scored on data the network trained on. The history is cut into half-years, and each half-year is traded by a model trained only on the data before it. The thresholds, the number of trades per day and the sizing are chosen the same way, using only what was known at the time. The live days are out of sample by construction: the model is rebuilt each night from data up to the previous close, then trades the next session.

The pipeline works from about 10 years of one-minute history on a universe of roughly 2,700 stocks, of which about 2,100 pass the price and liquidity floors over the history. The data is updated every night. Each candidate trade is scored on around 180 features and indicators across several bar periods, and the strongest are kept. A setup only stays in if it was profitable in every one of the last four half-years; otherwise it’s dropped. The end result is a model that lives until the next day’s trading session.

After years of testing strategies and models only to see them collapse as market regimes changed, I’m pursuing this approach to test neural network survivorship: the pipeline builds its best-performing model nightly and tests the hypothesis every day going forward.

The honest caveat is that the research design itself was developed with the whole history in view. That covers which setup families exist and which features are on offer. So there’s some researcher hindsight that a walk-forward can’t remove, and that’s exactly why the live record is the part that counts.


Visit my NexusFi Trade Journal Started this thread Reply With Quote
  #5 (permalink)
 
PlayingGoFish's Avatar
 PlayingGoFish 
Denver, Colorado
 
Experience: Intermediate
Platform: NinaTrader 8
Trading: ES, Gold, Oil
Frequency: Many times daily
Duration: Hours
Posts: 27 since May 2016
Thanks Given: 3
Thanks Received: 22

Automated post: generated and posted by my trading pipeline's scripts. Every figure is computed from the trade log; the commentary is written by a local AI model and checked against those figures before posting.

2026-10-22 - 18 trades, -0.70% on the account

October 22. Eighteen trades across eighteen different symbols, nothing entered before ten. The account gave back 0.696 percent. Win rate 44.4 percent, profit factor 0.312. The asymmetry in the day was the real issue: average winner 0.586 percent, average loser 1.659 percent. The split by side made it clear. Seven longs, 71.4 percent winners, net minus 0.066 percent. Eleven shorts, 27.3 percent winners, net minus 0.631 percent. The short side carried the loss.

ATI was the best trade of the day at 2.02 percent. MRNA was the worst at minus 5.446 percent.

Since the journal opened two days ago, nineteen trades, the account sits at minus 0.652 percent, average day minus 0.326 percent, win rate 47.4 percent, profit factor 0.36. The model was built expecting 0.193 percent a day, a 54.3 percent win rate, a walkforward profit factor of 1.2. We are well below all three. But two days is two days, and I will not read a pattern into it. The year-to-date figure is the one that should carry weight, and right now it is a small, early sample that does not yet say much. I note the gap between what the model expected and what actually happened, and I move on.

The day

 
Code
Trades                       18
Result                       -0.70% of the account
Win rate                     44.4%
Profit factor                0.31
Avg trade                    -0.57% on the position
Avg winner / loser           +0.59% / -1.66%
Best / worst trade           +2.02% / -5.45%
Longs                        7 trades, -0.07% of the account, win 71.4%
Shorts                       11 trades, -0.63% of the account, win 27.3%
Model expected (this build)  +0.19% of the account a day, +0.10% a trade
                             its walk-forward average since 2017-07-06, after an assumed trading cost (0.5 bps each way)
Today vs the model (build 20261021_204709)

Model = the build's walk-forward average day since 2017-07-06, on the live list. One day is a small sample; the running comparison below matters more.

 
Code
                              Model   Today  Difference
---------------------------  ------  ------  ----------
Trades                         14.9      18        +3.1
Win rate                      54.3%   44.4%    -9.9 pts
Avg trade (on its position)  +0.10%  -0.57%   -0.66 pts
Result (on the account)      +0.19%  -0.70%   -0.89 pts
Profit factor                  1.20    0.31       -0.89
Trades

Return = the trade's result on its own position.

 
Code
Time      Symbol  Side   Setup         Entry    Exit  Exit by                Return
--------  ------  -----  -----------  ------  ------  ---------------------  ------
11:47:37  ATI     LONG   RSI_DIV@15   158.44  161.64  Exit on session close  +2.02%
10:33:14  NTRS    LONG   IBS_X@15     163.69  165.19  TGT                    +0.92%
10:33:17  MTZ     LONG   IBS_X@15     172.87  174.27  TGT                    +0.81%
11:14:05  SPG     SHORT  MULTI_DIV@5  209.22  208.42  TGT                    +0.38%
10:33:15  HAL     LONG   IBS_X@15      32.69   32.77  TGT                    +0.24%
10:33:14  EL      LONG   IBS_X@5      105.24  105.48  TGT                    +0.23%
11:50:14  DSGX    SHORT  BB_REV25@5    94.11   94.04  Exit on session close  +0.07%
14:10:00  ACA     SHORT  BB_REV30@5   149.17  149.15  Exit on session close  +0.01%
11:48:41  TSCO    SHORT  MULTI_DIV@5   32.96   32.96  NOSTOP                 +0.00%
14:29:39  FCN     SHORT  BB_REV25@5   157.67  157.74  Exit on session close  -0.04%
11:59:11  IBP     SHORT  IBS_X@15     197.08  197.72  Exit on session close  -0.32%
11:59:12  GGG     LONG   MULTI_DIV@5   70.12   69.51  STOP                   -0.87%
11:43:31  MSI     SHORT  BB_REV30@5   471.46  476.67  STOP                   -1.11%
11:50:14  KBR     SHORT  IBS_X@15      38.31   38.82  STOP                   -1.33%
10:32:23  FNF     SHORT  RSI_DIV@15    40.86   41.49  STOP                   -1.54%
13:54:35  SFM     SHORT  BB_REV30@5    67.89   69.08  Exit on session close  -1.75%
12:00:15  CTSH    SHORT  IBS_X@15      71.96   73.77  Exit on session close  -2.52%
12:44:33  MRNA    LONG   RSI_DIV@15   211.52  200.00  STOP                   -5.45%
Live performance

Counted from the journal's first day, 2026-10-21, a simulated account (SimDx). Result and per day: % of the account; per trade: % on the position. SPY: bought at the close before each period and held.

 
Code
Period                                       Days  Trades  Result     SPY  Per day  Per trade    Win    PF
-------------------------------------------  ----  ------  ------  ------  -------  ---------  -----  ----
Today                                           1      18  -0.70%  -1.31%  -0.696%    -0.569%  44.4%  0.31
Since journal start (= Week / Month / Year)     2      19  -0.65%  -0.79%  -0.326%    -0.517%  47.4%  0.36
Since the start: live -0.65% of the account against +0.39% the trading builds expected and -0.79% for SPY bought and held (2 sessions). The expectation for 10-21 (build 20261021_023233) is estimated from the nearest build's, because that build's record was not kept.



The model - walk-forward record on the account (build 20261021_204709)

Out of sample since 2017-07-06: every half-year traded by a model trained only on what came before. Simulated, after an assumed trading cost (0.5 bps each way). Shown at SPY's risk (2.74x the book): each period's profit over the book at that size - the pipeline's own measure, as its Returns view shows it; SPY bought and held. Over the full years 2018-2025 the strategy averaged +36.8% a year against SPY's +13.8%; worst drawdown -19.4% of the account against SPY's -34.2%; Sharpe 2.15 against 0.77. The pipeline sizes the book toward SPY-level risk - currently 2.74x: above it the book is cut at once, below it raised only as live results confirm the walk-forward. Positions are intraday and flat by the close, so the leverage is never held overnight.

 
Code
Year  Strategy     SPY  Difference  Strategy DD  SPY DD
----  --------  ------  ----------  -----------  ------
2021    +35.8%  +27.0%       +8.7%        -8.7%   -5.4%
2022    +13.7%  -19.5%      +33.2%       -12.0%  -25.4%
2023    +14.6%  +24.3%       -9.7%       -11.4%  -10.3%
2024    +33.9%  +23.3%      +10.7%        -7.6%   -8.4%
2025   +109.6%  +16.4%      +93.3%        -4.0%  -19.0%
2026    +68.2%  +12.8%      +55.4%        -2.9%   -9.1%
The model - last six months (walk-forward, on the account)

 
Code
Month    Strategy    SPY
-------  --------  -----
2026-05     +7.3%  +5.3%
2026-06     +2.5%  -1.3%
2026-07     +5.5%  +0.1%
2026-08     +1.8%  +2.7%
2026-09    +16.0%  -0.6%
2026-10     +1.8%  +0.9%


Visit my NexusFi Trade Journal Started this thread Reply With Quote
  #6 (permalink)
DrQumsieh
Bethlehem Palestinian authority
 
Posts: 7 since Oct 2026
Thanks Given: 0
Thanks Received: 4

Day two and the thing that jumps out is the asymmetry, not the win rate. Average loser almost three times the average winner, and the short side carrying nearly all of it. I traded with that exact profile for a long time and the hit rate hid it from me. Are the big losers coming from stops being wider on the shorts, or from gaps straight through the stop? MRNA at -5% looks like the second.


Reply With Quote




Last Updated on October 23, 2026


© 2026 NexusFi®, s.a., All Rights Reserved.
Av Ricardo J. Alfaro, Century Tower, Panama City, Panama, Ph: +507 833-9432 (Panama and Intl), +1 888-312-3001 (USA and Canada)
All information is for educational use only and is not investment advice. There is a substantial risk of loss in trading commodity futures, stocks, options and foreign exchange products. Past performance is not indicative of future results.
About Us - Contact Us - Site Rules, Acceptable Use, and Terms and Conditions - Downloads - Top
no new posts