What’s New in Price Action Pivoter™ V2? Powerful Tools Requested by Traders!
If you’re looking for the best automated trading system for NinjaTrader, one that incorporates every element a trader needs to give themselves an edge in the market, then this is the one you’ve been searching for! This isn’t just another automated system or “algo” bot; it’s a comprehensive solution crafted for traders who demand precision, control, and a definitive trading edge. The original PriceActionPivoter™, beloved by clients trading $ES and $NQ, has evolved. This new version introduces a second strategy, allowing trading of any instrument with the quantitative edge usually reserved for hedge funds and CPOs.
By integrating a sophisticated LSTM neural network, coded in Python and delivered through standalone software that I’ve named MLPriceMapper™, this tool doesn’t just follow the market—it anticipates it! MLPriceMapper™ provides data-driven predictive insights into market direction and price ranges for any trading day, and for any futures instrument, offering an unparalleled advantage for your trading endeavors.
This article will showcase the innovative features of MLPriceMapper™, a tool that I’ve passionately developed over numerous nights of dedicated coding. As a licensed and registered Commodity Trading Advisor and a seasoned software engineer specializing in trading algorithms, I’ve had the opportunity to integrate insights from a diverse range of clients, enriching the development of MLPriceMapper™. In this article, I’ll explore how to effectively leverage MLPriceMapper™ for trading various futures instruments, including $ES, $NQ, $CL, $GC, and others. I’ll also highlight key successes that have emerged from this project, demonstrating the practical impact of this tool in the world of trading.
In this article, I’ll also delve into the enhanced features of PriceActionPivoter™ V2, MidPivotPointsPHL indicator that is included with this advanced trading suite of tool. I will show you how to utilize this comprehensive system to trade any futures instruments. Get ready to discover the real-world advantages and potential returns that an investment in a trading system like this could bring to your trading career for many years to come!
How to Successfully Use Price Action Pivoter™ V2
I. Configuring the ‘Main System Strategy’ to Free Up Your Time!
Utilizing the NinjaTrader platform’s advanced tools, including backtesting, walk forward testing, and multi-objective optimization, you can effectively tailor your trading strategy to specific days and times. A practical starting point is to conduct a basic backtest to evaluate the system’s performance. I suggest backtesting across almost all Regular Trading Hours (RTH) and for each trading day, Monday through Friday. This approach will give you a comprehensive understanding of the system’s capabilities (I’ll be sharing some hypothetical backtested results later). For RTH sessions, I typically set my trading hours from 6:30 AM to 12:30 PM, but it’s important to adjust these times to your specific time zone (for example, 9:30 AM to 3:30 PM for EST). Also, consider setting a ‘Flatten Everything’ time close to the RTH closing to allow your trades sufficient time. I usually set this one minute before the RTH close, at 12:59 PM PST.
The Main System Strategy, as illustrated below, employs pivot points (both traditional and Fibonacci) and other significant price levels like Globex Open, Globex Close, Prior Day Low, Prior Day High, and Midpoint. What sets PriceActionPivoter™ apart from many other NinjaTrader automated strategies is its reliance on historical price action. It assesses how prices have historically responded at these key levels to decide on trade entries. While the system requires a minimum of 1,500 bars to operate effectively (using a 1-minute bar timeframe), I recommend loading 30 days of data on the 1-minute chart. This depth of data ensures that the system has sufficient information for optimal analysis before entering a trade.
Predicting the future with certainty is impossible, but we can rely on past data to systematically analyze how prices have behaved near established price levels. By examining these historical patterns, we can develop models that anticipate future price movements. This approach forms the basis of the Main System Strategy.
II. Enter Trades at Key Price Levels via Special Operations – MLPriceMapper™ Strategy
Special Operations is designed to work in tandem with MLPriceMapper™, a powerful LSTM neural network forecasting software. This strategy allows for tactical trading by enabling you to select specific price levels for trade entries. Once a trade is initiated, the system autonomously manages it according to the money and trade management parameters you’ve set in this automated trading system.
The system can monitor up to five price levels in each direction. For a trade to be entered, the specified price levels must be crossed. For a long trade, the price must not only touch but also cross above the set level, followed by two consecutive green bars where the final bar’s body is larger than its upper wick. Similarly, for a short trade, the price must touch and cross below the set level, followed by two red bars, with the final bar’s body larger than its lower wick. Additionally, the system features a ‘Minimum Profit Potential’ setting for both long and short trades. When a value greater than $0 is input, the system performs a profit potential check. For long trades, it verifies that the potential profit between the entry bar’s closing price and the next higher resistance level meets or exceeds this input value. Conversely, for short trades, it ensures the potential profit from the entry bar’s closing price down to the next lower support level meets the specified threshold. The system considers particular key price levels for these calculations, and those key levels are TwoDaysAgoHigh, TwoDaysAgoLow, Prior Day’s High (PH), Prior Day’s Low (PL), R3 through R1 and their midpoints, Pivot Point (PP), and S1 through S3 and their midpoints. However, it’s important to note that Fibonacci Pivot points are excluded from these minimum profit calculations. The process of selecting price levels is streamlined with MLPriceMapper™, particularly when you map the ranges predicted by MLPriceMapper™ on top of the price levels shown in the MidPivotPointsPHL indicator. Below is a glimpse of how the user interface appears for this function:
Take note of the directional prices 1 through 5 displayed above. A frequently employed strategy among price level traders involves setting price levels in both directions with a specified gap between each level. This is demonstrated in the example above, where there is a 5-point gap between the long price targets and their corresponding short price targets. For instance, a long target at 4730 is set against a short target at 4735. The system will initiate a trade based on which price level is crossed first. Specifically, if the market touches and crosses above a set price, the system will execute a long trade. Conversely, if the market touches and crosses below a set price, it will initiate a short trade. The direction of the trade depends entirely on which of these price levels is crossed first.
However, basic price level trading strategies lack the depth offered by machine learning. By analyzing 6 to 8 months of data, which is more than adequate for day trading forecasts, the LSTM model can understand historical price reactions at crucial levels. Training this LSTM model on past data is streamlined with my BulkDataGrabber™ tool, which allows for rapid data collection directly from NinjaTrader’s Strategy Analyzer. This method enables the machine learning software to make more accurate predictions about potential price movements. Furthermore, the same LSTM model is capable of estimating price ranges for upcoming Regular Trading Hours (RTH) sessions. MLPriceMapper™ incorporates this advanced functionality, offering you the means to execute daily trades in a systematic and reliable manner.
I’m going to discuss MLPriceMapper™ in more detail below. If you’re still with me, awesome – rest assured, there’s much more essential information ahead that every trader should have. Most traders go into battle armed with a slingshot (RSI, MACD, MAs, Market Profile, gut feelings, etc.). In contrast, professional traders, hedge funds, and Commodity Pool Operators (CPOs) are equipped with the equivalent of stealth war drones, utilizing comprehensive past data analysis, machine learning, and systematic rules-based trade and money management. With Price Action Pivoter™ and MLPriceMapper™, you gain access to these sophisticated tools, but at a tiny fraction of the cost that larger firms spend on their engineers and quants, who often boast about extensive resources like ‘we have a 100 PhDs working on our machine learning systems.’
III. Comprehensive Money & Trade Management Rules
Price Action Pivoter™ V2 incorporates various trade management mechanisms to maintain complete control over your trades, based on your predefined settings. After covering the ‘offensive’ aspects in parts I and II, let’s now turn to the ‘defensive’ strategies.
- Money Management – You can set limits for when the system should cease trading, based on reaching either a minimum net session profit or a minimum net session loss limit. These are calculated when positions are closed.
- Trade Management – you can set the maximum number of trades the system can take, whether you want 1 trade or 10 trades, it’s up to you (assuming the trade set-up is there). You can also set the maximum consecutive loss switch option where if you take X number of consecutive losses, the system will only look for trades in the opposite direction (assuming you have set the system to look for both long and short trades).
- Peak High-Low Trailing Stop – This isn’t a conventional tick-based trailing stop but one that follows the price based on unrealized peak profit prices. You can activate the trailing mechanism upon reaching a minimum unrealized profit and set it at a percentage distance from the current price. The trailing stop is updated every 60 seconds and executed at bar close. This is a powerful tool for those that need to carefully watch their drawdowns (e.g. prop traders).
- Price Target – there are two kinds; fixed, and adaptive where the price target adapts to the price range of the last rolling 60 bars.
- Stop Price – there are two kinds; fixed, and adaptive where the stop price adapts to the price range of the last rolling 60 bars.
- Flatten Everything – you can set the time where the system will exit all open positions for you. Whether you’re at work, at a meeting or playing golf, the system will execute your request as long as your computer is connected to the Internet, and your NinjaTrader is up and running.
Additional elements include the number of times the price must cross key pivot levels before executing a trade. The system also tracks the highs and lows of each cross at these levels, adding a unique dimension to trade entry decisions. The threshold setting determines whether the current price is higher or lower than the previous highest stored cross price for long or lowest stored cross price for short trades, respectively.
I’ve developed a unique method to calculate these crosses and thresholds, which I prefer to demonstrate live, as it is easier to demonstrate live. This functionality has proven effective in identifying viable trading levels. If you’re interested in a more detailed explanation, I’d be happy to arrange a live demonstration over a Zoom call. Here is what the UI looks like:
Understanding MLPriceMapper™ – Function & Rationale
As mentioned above, MLPriceMapper™ is a standalone Python coded software that makes predictions based on the LSTM model. Incidentally, LSTM, which stands for Long Short-Term Memory is a type of recurrent neural network (RNN) perfectly suited for time-series data analysis.
In the MLPriceMapper™ model, the LSTM model is trained on a dataset containing various features of 1-minute bars, such as open, high, low, close prices, volume, RSI, and various pivot points. The goal of MLPriceMapper™’s LSTM model is to predict whether the closing price during the regular trading hours (RTH) will be higher or lower compared to the last known provided data the model was trained on. As I mentioned above, the data is derived and automatically organized via BulkDataGrabber™, an integral part of the Price Action Pivoter™ suite of trading tools.
BulkDataGrabber™ efficiently collects a wide range of data from NinjaTrader’s Strategy Analyzer backtests. This includes open, high, low, close prices, volume, RSI, Bollinger Bands, various SMAs, and all traditional pivot points. Capable of processing multiple futures instruments simultaneously (such as ES, NQ, FDAX), it typically completes data retrieval in under 60 seconds. The collected data is then organized into CSV files and automatically saved in the ‘PriceActionPivoter_by_Pinnacle_Quant’ directory on your computer. You can simply input these CSV filenames into MLPriceMapper™, which then uses this data to train the LSTM model for price prediction. Later in this article, I’ll delve more into BulkDataGrabber™ and share a sample CSV data file for your reference. For now, the yellow arrow is where you would copy and paste the filename.csv into MLPriceMapper™:
MLPriceMapper™ takes your CSV data file, generated by BulkDataGrabber™, and initiates a comprehensive training and testing process using this data across 12 epochs. During each epoch, the model processes the entire dataset in smaller segments, known as batches. Essentially, an epoch is one complete cycle of passing the entire dataset forward and backward through the LSTM network, facilitating the training of the model.
The LSTM model within MLPriceMapper™ performs two key functions:
- It predicts whether the Regular Trading Hours (RTH) closing price will be higher or lower than the last closing price provided in your CSV file.
- It calculates a projected price range, from low to high, based on the rolling mean and standard deviation of the highs and lows from the last few days of both Globex and RTH sessions.
Here’s a preview of what the output from MLPriceMapper™ looks like:
With the insights provided by MLPriceMapper™, you can now examine a chart that automatically includes the MidPivotPointsPHL indicator – this is the indicator that has all the pivot points, mid pivot points, Fibonacci pivot points, yesterday’s high and low prices, as well as the high and low prices from two days ago on it; essentially all the major price levels most traders are watching . On this chart, you’ll overlay MLPriceMapper™’s predicted price direction, along with its predicted low and high price ranges. This setup allows for straightforward identification of potential entry prices, and the alignment of your price target, stop, and trailing stop with these price levels. This is part of the ‘Special Operations’ strategy in PriceActionPivoter™ V2. It is a powerful and tactical price level trading strategy that can be deployed to make trades every single trading day. If you prefer a more automated approach to selecting price levels, you can opt for the ‘Main System Strategy’. I’m available to demonstrate the use of the ‘Special Operations’ tactical trading strategy in more detail during a Zoom call. To schedule a call, please fill out the form provided below. Availability is on a first-confirm, first-serve basis
Here is what the chart, noting the low and high prices, looked like on 01/18/2024, the very same date of the analysis on MLPriceMapper™ as captured in the above image. Also, you will note that I ran the MLPriceMapper™ analysis on the morning of 01/18/2024 at 6:56A PST:
Gathering Training Data Using BulkDataGrabber™
For training MLPriceMapper™, appropriate data is essential. Within the PriceActionPivoter™ V2 suite, BulkDataGrabber™ is provided to facilitate the data collection needed for the LSTM machine learning model in MLPriceMapper™. After downloading BulkDataGrabber™, along with PriceActionPivoter™ V2 and MLPriceMapper™ from your PinnacleQuant.com control panel, the process is straightforward. Simply select “BulkDataGrabber” in the Strategy Analyzer’s Backtest area, click on “Grab All Data,” and choose your instrument(s). You can process multiple instruments simultaneously or one at a time.
Important: Ensure that the “Set Times” for premarket and RTH (Regular Trading Hours) reflect your specific time zone. As an example, if you’re in Eastern Standard Time, adjust the start and end times for both premarket and RTH by three hours to align with your local times. This step is critical for acquiring accurate data. Choose a start date at least six months prior to the end date, and then click “Run.”
The gathered data will be neatly compiled into a CSV file, automatically stored in the ‘PriceActionPivoter_by_Pinnacle_Quant’ directory created by BulkDataGrabber™. Below, you’ll find a snapshot of the BulkDataGrabber™ UI, as well as a link to the actual CSV file for your review.
Download The Training Data CSV That BulkDataGrabber™ Generated:
As you can see from the large CSV file above, BulkDataGrabber™ efficiently collects comprehensive data, including open, high, low, close, volume, RSI, Bollinger Bands, and SMAs (5D, 20D, 50D, 200D). It also gathers all pivot points, including Fibonacci pivot points, and categorizes the data by trading session: premarket (Globex), Regular Trading Hours (RTH), and postmarket (the final hour before session break). This extensive data collection is crucial for training the LSTM model in MLPriceMapper™, enabling it to make informed, data-driven predictions of price direction and price range for the upcoming RTH session.
In-Depth Backtesting of PriceActionPivoter™ V2
Before glancing at the hypothetical backtests below, please bear in mind that in NinjaTrader, any backtests that do not use minute bars, and any backtests whose strategy is not calculated at the close of the bar, are moot. This means that if you encounter a backtest using Renko bars, Heiken Ashi, or tick bars, the results are erroneous and do not accurately reflect the strategy. The reason is that all strategies backtested on NinjaTrader (and other platforms, for that matter) require calculations to be made at the close of the bar to ensure the backtest’s accuracy.
Remember, data providers only store OHLC data, which stands for open, high, low, and close data; they do not store averages, midpoints, or any custom data present in Renko, Heiken Ashi, and other custom bars. All of my strategies, including PriceActionPivoter™, exclusively use minute bars, and all calculations are made at the close of the bar. This ensures that the hypothetical backtests are accurate and reflective of real-world conditions. Moreover, please note that the below backtests are for:
- 1 ES contract.
- Starts on 01/01/2021 and ends on 01/19/2024.
- I did not use commissions, as I don’t know which broker you will be using, but you should subtract commissions from the net profit numbers to get a more accurate picture. The below backtests have 491 trades, so if you’re paying $5 per trade roundtrip, then subtract $2,455 from the overall net profit of $87,212.
- I used 1 tick of slippage, which is about right for the $ES futures instrument I backtested. If you’re trading $NQ, I’d recommend using 2 ticks of slippage in your backtest. You need to adjust the slippage by simply observing the typical open prices of bars vs their immediately preceding close prices of bars to determine what the typical slippage may be. Slippage tends to vary from one instrument to another.
- My profit target was always 100 ticks, and my stop price was always 30 ticks. This trade setup offers a favorable risk-reward balance with an R ratio of 3.33R, indicating that the potential profit is approximately 3.33 times the potential loss. Please be very wary of ridiculous claims all over the Internet of people achieving something like a 95% win rate, you will note, they will never show you their profit target vs their stop price, as their R ratio is highly likely to be inverted, where their price target is 5 ticks, and their stop is 20 ticks – that kind of R ratio is simply mathematically unsustainable over a long period of time. Most won’t even show you the period of time they run their backtest on, as it was likely cherry picked over a short amount of time span.
- I used the PriceActionPivoter™ Peak High-Low Trailing Stop. The system was set to trail price when there is a minimum of $675 of unrealized profit, and place the stop 75% away from the absolute peak high or peak low unrealized price. These numbers, much like the profit target, and stop price were always the same, and never changed.
- The PriceActionPivoter™ Main System Strategy was set to look for trades from 6:30A PST until 12:30P PST, and was set to flatten all trades at 12:59P PST to ensure all trading occurred only during RTH hours. The system was set to look for trades every day, Monday to Friday.
- The backtests were not curve fitted in any way, as the same exact parameters were used for all 3+ years of the backtest.
- The below hypothetical backtests reflect only the “Main System Strategy.” I’m providing the summary backtests for the past 3+ years, as well as the monthly breakdown over the 3+ years. Since all of the parameters on the right can’t be shown in a single screenshot, I needed to do three separate screenshots so you can see every detail. There is no curve fitting or cherry picking whatsoever in the below backtests:
Questions? Schedule a Live Zoom Demo:
About The Author
This article was authored by Raffi Sosikian, a highly proficient software engineer and enterprise architect. He has an MBA, holds a Series 3 license, and is the principal at Pinnacle Quant, LLC, CTA, a boutique commodity trading advisory firm specializing in building both custom trading systems (including private label for small funds to brand as their own software) and in-house pre-built quant and price action-based automated trading systems. As time permits, Raffi posts his financial analysis opinions on SeekingAlpha under the pseudonym “Prudent Research.”
Happy Trading, and God bless!