INVITE-ONLY SCRIPT
已更新 Market State Tracker

🙏🏻 This is MST (Market State Tracker), it’s main purpose is to tell whether it's better to take a predefined take-profit, or to expect a runner.
Unlike widely-known alternatives, this model is made with top state-space and innovation modelling tech, and it takes the necessary info ‘itself’ (not the derivatives) from the right places. In fancy terms it’s not even a model, it’s an ensemble of several models. If you want to get familiar with other work of mine like this, check UAT.

^^ compared with reverse-engineered Jurik Moving Average in moving window mode
…
Main use case: take-profit engine. It tells whether to hold a position past its primary 1:1 Risk:Reward take-profit up to the opposite entry), or to close it right away at 1:1.
Alternative use case: market state operator. Alternatively the study can be used as a primary market-state operator that would actually define further strategies and actions. It’s very useful if your strategies are not market regime agnostic. Otherwise, use it only as the main use case tells.
Other use cases: anything that other mainstream studies are doing, but better* (proceed to the Tech Note in the end of the post): trend detection, price smoothing, crossovers, dynamic S&R etc.
…
How to use:
The script has 2 studies, lower study (blue and red lines) and upper study (purple and gray lines).
...
Lower study is less variance & more bias option, in general it’s less preferred than upper study, but if none of your other system layers do not gauge directional info directly and you wanna keep it simply this way, this lower study is what you need.
Lower study states -> advised take-profit strategy:
...
Upper study is the preferred one in general because of its higher informational content. Most probably, if you’re already gaining directional info on your other system layers, this one will likely provide you information you don’t gain there. Here the purple line is the lead state estimate, and the gray line is the lagged state estimate, and current price = current bar POC or HLC3 (inferred POC).
Upper study states -> advised take-profit strategy:
Important: if you trade based on current session activity, you have to track current states. If you trade based on previous session levels, you only need the last state of that session that originated the level.
Important 2: The script has a setting called “blend”. The differences between all 3 options provided there are extremely low, and moreover it doesn’t change the main part: location of crossovers. So I left it here because I genuinely don’t know yet which of these is the most primordial math option for the current context xd.
...
* now about this:
Tech note
In short: it gains all the information without touching artifacts with the best possible math that runs on O(1) time complexity.
The ‘final’ time complexity of the whole method is O(1), both in moving and expanding window modes.
The main short-term forecasting & innovations engine, I called it VAPM (Volume Acceleration Price Model), is inspired by how prediction and NaN fills works on the lowest hardware level, processor cache etc. It’s based on splines, the most fundamental geometrical principles. This is the stuff you can run on FPGAs doing UHFT, not even HFT.
Based on lead/lag and negative/positive relationships with the VAPM forecasts, innovations are separated into 4 different streams.
Each stream of these 4 then discovers its own adaptive gain (limited by theoretical constraints of the exponential distribution each stream follows).
Then, 4 separate PVA (Position Velocity Acceleration) state-space models are run on POC estimate of each bar, using previously computed 4 different adaptive gains. Initial impulse response of the models was almost exactly matched with the Extended Beta(2, 2) Window, provided in UAT open access script (heck the code & description, it would worth it).
Then these 4 separate trackers are grouped pairwise and blended into 2, resulting in the lead/lag model.
Additionally, 4 adaptive gains are blended into 2 separate pos/neg models. I offer 3 blending options: max(), contraharmonic mean, and Log-Sum-Exp. The differences of outputs based on these 3 options are almost negligible.
All possible hidden issues like info leakage from previous finished expanding windows, or special cases of forecasts at the very few first datapoints, are taken into account and solved. The whole method has zero constants and zero pre-optimized or arbitrary values, everything based on fundamental math entities / objects.
…
∞
Unlike widely-known alternatives, this model is made with top state-space and innovation modelling tech, and it takes the necessary info ‘itself’ (not the derivatives) from the right places. In fancy terms it’s not even a model, it’s an ensemble of several models. If you want to get familiar with other work of mine like this, check UAT.
^^ compared with reverse-engineered Jurik Moving Average in moving window mode
…
Main use case: take-profit engine. It tells whether to hold a position past its primary 1:1 Risk:Reward take-profit up to the opposite entry), or to close it right away at 1:1.
Alternative use case: market state operator. Alternatively the study can be used as a primary market-state operator that would actually define further strategies and actions. It’s very useful if your strategies are not market regime agnostic. Otherwise, use it only as the main use case tells.
Other use cases: anything that other mainstream studies are doing, but better* (proceed to the Tech Note in the end of the post): trend detection, price smoothing, crossovers, dynamic S&R etc.
…
How to use:
The script has 2 studies, lower study (blue and red lines) and upper study (purple and gray lines).
...
Lower study is less variance & more bias option, in general it’s less preferred than upper study, but if none of your other system layers do not gauge directional info directly and you wanna keep it simply this way, this lower study is what you need.
Lower study states -> advised take-profit strategy:
- When: negative gamma (red line) is above positive gamma (blue line), market is biased towards sell side, so shorts should be held up to the opposite entry, while longs should be closed asap after 1:1 Risk:Reward
- When: positive gamma (blue line) is above negative gamma (red line), market is biased towards buy side, so longs should be held up to the opposite entry, while shorts should be closed asap after 1:1 Risk:Reward
...
Upper study is the preferred one in general because of its higher informational content. Most probably, if you’re already gaining directional info on your other system layers, this one will likely provide you information you don’t gain there. Here the purple line is the lead state estimate, and the gray line is the lagged state estimate, and current price = current bar POC or HLC3 (inferred POC).
Upper study states -> advised take-profit strategy:
- When: current price > purple line > gray line, market is heavily biased towards buy side, so longs should be held up to the opposite entry, while shorts should be closed asap after 1:1 Risk:Reward
- When: current price < purple line < gray line, market is heavily biased towards sell side, so shorts should be held up to the opposite entry, while longs should be closed asap after 1:1 Risk:Reward
- When: purple line > gray line > current price, market is biased towards another buy wave, so longs should be held up to the opposite entry, while shorts should be closed asap after 1:1 Risk:Reward
- When: purple line < gray line < current price, market is biased towards another sell wave, so shorts should be held up to the opposite entry, while longs should be closed asap after 1:1 Risk:Reward
- All other price x purple line x gray line patterns are considered neutral, and both longs and shorts are done with minimal 1:1 Risk:Reward.
Important: if you trade based on current session activity, you have to track current states. If you trade based on previous session levels, you only need the last state of that session that originated the level.
Important 2: The script has a setting called “blend”. The differences between all 3 options provided there are extremely low, and moreover it doesn’t change the main part: location of crossovers. So I left it here because I genuinely don’t know yet which of these is the most primordial math option for the current context xd.
...
* now about this:
Tech note
In short: it gains all the information without touching artifacts with the best possible math that runs on O(1) time complexity.
The ‘final’ time complexity of the whole method is O(1), both in moving and expanding window modes.
The main short-term forecasting & innovations engine, I called it VAPM (Volume Acceleration Price Model), is inspired by how prediction and NaN fills works on the lowest hardware level, processor cache etc. It’s based on splines, the most fundamental geometrical principles. This is the stuff you can run on FPGAs doing UHFT, not even HFT.
Based on lead/lag and negative/positive relationships with the VAPM forecasts, innovations are separated into 4 different streams.
Each stream of these 4 then discovers its own adaptive gain (limited by theoretical constraints of the exponential distribution each stream follows).
Then, 4 separate PVA (Position Velocity Acceleration) state-space models are run on POC estimate of each bar, using previously computed 4 different adaptive gains. Initial impulse response of the models was almost exactly matched with the Extended Beta(2, 2) Window, provided in UAT open access script (heck the code & description, it would worth it).
Then these 4 separate trackers are grouped pairwise and blended into 2, resulting in the lead/lag model.
Additionally, 4 adaptive gains are blended into 2 separate pos/neg models. I offer 3 blending options: max(), contraharmonic mean, and Log-Sum-Exp. The differences of outputs based on these 3 options are almost negligible.
All possible hidden issues like info leakage from previous finished expanding windows, or special cases of forecasts at the very few first datapoints, are taken into account and solved. The whole method has zero constants and zero pre-optimized or arbitrary values, everything based on fundamental math entities / objects.
…
∞
發行說明
Final versionThis is as far as it can go. I pushed all the details in the algo to the edge, there are no more alternatives, not more choices to make. Now the method answers the ternary question:
take profit vs take partial profit vs hold until the opposite entry
This final version provides only one final set of trackers:
- "buyers' price" (pos state, blue line)
- "sellers' price" (neg state, red line)
The lower study just plots the differences between current price and these trackers, some1s would prefer this visualization:
- red line is current price minus neg state
- blue line is current price minus pos state
...
The ruleset
First, the market states are now defined this way:
- If buy tracker is below sell tracker, it means that market is ~ in exploitation regime.
- if buy tracker is 'above' red tracker, it means that market is ~ in exploration regime.
Exploitation regime can be related to mean reversion, while exploration regime to momentum.
Think about it: if buyers' main price is below sellers' main price, it's classic buy low sell high: range. And if we have the opposite: sellers' price is below buyers' price, it means each group of participants is willing to push activity their way even with worse prices.
then:
If current price is above both buy and sell trackers:
Shorts: take-profits
Longs: take-partial profits in exploitation regime, hold until the opposite entry in exploration regime
If current price is below both buy and sell trackers:
Longs: take-profits
Shorts: take-partial profits in exploitation regime, hold until the opposite entry in exploration regime
,,,
You can try your own rulesets, but the variables are the same:
- location of price relative to the trackers
- location of trackers relative to each other
// ∞
發行說明
Update & improvementImproved initialization of VAPM model. It is chaotic (meaning sensitive to initial conditions), so initialization has to be done perfectly. It was not perfect, now it is (enjoy).
// ∞
發行說明
- Added a knob to to artificially increase native tick size, alike in my other prop scripts- Finalized the negligible improvement of the price model. The change reveals itself in a tiny way and rarely, but this is as far as it can go
// ∞
僅限邀請腳本
只有作者授權的用戶才能訪問此腳本。您需要申請並獲得使用許可。通常情況下,付款後即可獲得許可。更多詳情,請按照下方作者的說明操作,或直接聯絡gorx1。
TradingView不建議在未完全信任作者並了解其運作方式的情況下購買或使用腳本。您也可以在我們的社群腳本中找到免費的開源替代方案。
作者的說明
Please contact me via my business links if you're interested in gaining access to this script || source code || interested in a port
免責聲明
這些資訊和出版物並非旨在提供,也不構成TradingView提供或認可的任何形式的財務、投資、交易或其他類型的建議或推薦。請閱讀使用條款以了解更多資訊。
僅限邀請腳本
只有作者授權的用戶才能訪問此腳本。您需要申請並獲得使用許可。通常情況下,付款後即可獲得許可。更多詳情,請按照下方作者的說明操作,或直接聯絡gorx1。
TradingView不建議在未完全信任作者並了解其運作方式的情況下購買或使用腳本。您也可以在我們的社群腳本中找到免費的開源替代方案。
作者的說明
Please contact me via my business links if you're interested in gaining access to this script || source code || interested in a port
免責聲明
這些資訊和出版物並非旨在提供,也不構成TradingView提供或認可的任何形式的財務、投資、交易或其他類型的建議或推薦。請閱讀使用條款以了解更多資訊。