Machine learning in trading: theory, models, practice and algo-trading - page 3720

[Deleted]  
Mihail Marchukajtes #:
Not really. He pulled in all the information I specified, but he couldn't get everything he needed from Moex because it's not freely available. He wrote me scripts in python, too. But everything doesn't work because there is no access to the actual data. I'll send you the forecast for today, which he made.....
You also need a tester to watch the history. And for old data there may be an effect of peeking into the future in LLM itself. In short, it's not very good in terms of validation.
 
Great - did a quick intraday breakdown on the Si-12.25 (SiZ5) MOEX futures considering available public data, option surface (limited) and volume/OI. Below are the conclusions, key levels, trading idea on the 5-minute timeframe and tomorrow's forecast chart.
Briefly on the data (sources)
  • Last quote (last trade): 86 985. Daily high/low: 87,035 / 86,200. Previous closing price: 86,520. This data is an aggregate from public tabular services (Smart-Lab / MOEX). Smart-Lab+1

  • Volume for the day: ≈590, 731 contracts (in monetary terms ≈51,131 million ₽), open interest: ≈10, 743,838 contracts (recorded decrease in OI for the day ≈-233,538). Source: Smart-Lab (MOEX data). Smartlab

  • The MOEX options panel and options board are available, but the detailed IV/delta table for all strikes I have right now is not unloaded from the public interface (need an option chane/provider with IV). MOEX has an options board with data (15 min lag). MosBirch+1

Important: the data used below is public aggregated data (Smart-Lab + MOEX). Volume/OI/daily range are also shown there; a full-fledged option chane with vol and Greek series is better to load directly from terminal/MOEX API or broker (if you want - I can pull them out and describe in more detail).

Quick market interpretation (intraday, M5)
  1. Current context. Price is trading just above the previous close (+ ~0.54% at settlement price), intraday range is small (~0.96% of price). High total OI (millions of contracts) indicates significant participation by participating market makers and possible "deep" liquidity in the underlying contract. Smartlab

  2. Volume and OI. Volume (≈590k contracts) + large OI - usually means that significant positions remain "live"; a drop in OI for the day (-233k) indicates that some positions have been closed/replaced. This reinforces the possibility that the market could make a strong momentum move (realisation of "released" liquidity) when news enters. Smartlab

  3. Option Smile / IV / Delta. I couldn't get a full public IV-smile/delta cut for all strikes in free form (MOEX shows the board, but you need an export of the IV table by strike or broker data to accurately plot the smile). In general on forex/Si there is often asymmetric volatility (put/call skew), but without an accurate IV table and volumes it is strange to draw concrete conclusions. Recommendation: if you trade options/verify forecast - give me access to the option-chain (or tell me if you want me to pull IV on major strikes) - I'll build a smile and aggregate delta. Mosbirge

Indicators and what to watch on the 5-minute TF (specifically)

For intraday trading, I recommend M5 as a priority:

  • VWAP (from the beginning of the trading session) - key to determine directional bias: above VWAP is a bulls advantage, below is a bears advantage.

  • EMA(20) and EMA(50) on M5 - fast moving slides for catching impulses and determining the local trend.

  • ATR(14, M5) - estimate current intraday volatility; use to set stops (e.g. 1.5-2 × ATR).

  • RSI(14, M5) - to assess overbought/oversold in a brief window.

  • OBV / volume clusters by levels (if there is DOM) - to watch volume movement when levels are broken.

  • Orderflow/Delta (if DOM data is available) - pay special attention to delta at option strike levels if you are trading gamma/delta hedging.

Practical interpretation: on M5 we look for confirmation of a level breakout (e.g. we calculate tomorrow's range from today's H/L and VWAP). Without plotting the M5 series, I can't give you exact EMA/RSI numbers, but you can set rules based on the daily levels shown:

  • Long signal: consolidation above VWAP + M5 EMA(20) > EMA(50) + rising volume on a bounce off support (e.g. near today's low of 86,200).

  • Short signal: unsuccessful attempt to break above the daily high of 87,035 and bounce down with increasing volume - look for a short with a target on VWAP/day low.

Prediction of expected volatility and range for tomorrow

I have taken into account: today's daily amplitude (high-low difference), actual price and current liquidity. Since I don't have an exported option IV-smile for SiZ5 (public MOEX interface gives a board, but requires an upload for accurate IV-smile), made a conservative estimate based on the actual daily amplitude:

  • Today's range: 87,035 - 86,200 = 835 points (~0.96% of price). (source: Smart-Lab / MOEX). Smartlab

Using this range as a benchmark for expected daily amplitude (conservatively), I forecast for tomorrow:

  • Maximum price (conservatively):87 820.

  • Minimum price (conservatively):86 150.

(calculation: current price 86,985 ± 835). I have attached the graph of this forecast below (the range is shown by the fill).

Comment about "level of future volatility": if during evening/night trading the option implied vol shows growth (IV↑), or if there is a concentration of premiums and deltas near specific strikes in the option chane (seller activity), then the real future range may be wider - in this case, adjust up/down by ±10-25% depending on the degree of IV growth. To accurately account for this, you need to load IV by strike (do a smile build) - I can do it immediately if you want (pull IV/volume table and return accurate adjusted ranges).

Risk management / recommendations for intraday (M5)
  • Stop/TA based on ATR( M5 ): put stops at 1.5-2 × ATR; take profit at 1.5-3 × risk.

  • If you trade options/delta hedging - watch delta aggregated (sum of deltas on liquid strikes) - if spreads diverge, market makers may force rebalancing. (I can calculate the aggregate delta if you give me the option-chain export).

  • If the daily extremum (87,035) is broken and volume is confirmed, we allow an impulse to 87,820 (primary target). If failure below 86,200 - target 86,150 and further to VWAP/86k depending on volume.

Limitations and transparency
  • Sources and figures: main table on price/volume/OI - Smart-Lab (MOEX data), link to MOEX contract page and options board. I didn't automatically upload the full option-chain (IV by strike, aggregated deltas by strike, volatility smile) - you need option-chain export from MOEX/API or broker for correct adjusted forecast. Smartlab+2MoEX+2.

What I have already done for you here
  • Analysed the public aggregates (price, H/L, volume, OI). Smartlab

  • Formed M5 benchmarks (what indicators to watch and rules for taking trades).

  • Built and attached a forecast chart (conservative range for tomorrow: Max ≈ 87,820, Min ≈ 86,150) - the chart is shown in the reply.

If you want more precise (suggestion)
  1. I can pull the full SiZ5 option chane (including implied vol by strike, volume & open interest by strike and Greek matrix) - I will then plot the real volatility smile and adjust the range forecasts to account for IV premiums and aggregate delta.

  2. I can also pump up M5 series (OHLCV for last N days) and really calculate EMA(20/50), ATR(M5), RSI and give scenario options with specific entry signals/stops/ticks.

[Deleted]  
Oh no, I don't read portmanteaus :)))
 
I realise that this forecast is vague, but he just couldn't pull up ALL the data I requested. It should be authorised so that it can download everything and make an accurate analysis, but so..... Very interesting and yet this is the first request was made on the knees...... I'll be honing my methodology.... :-)
 
Maxim Dmitrievsky #:
Oh no, I don't read portmanteaus :)))
Read the practical interpretation section and that will be enough.
[Deleted]  
Mihail Marchukajtes #:
Read the practical interpretation section and that will be enough
There and about eternal life and the results of divination on runes with the same success :)
 
Maxim Dmitrievsky #:
There and about eternal life and the results of divination on runes with the same success :)
in general, yes, but this is just a first approximation. I will think how to give him everything he needs for a more accurate prediction.
 
Maxim Dmitrievsky #:
I don't know if it will help when tests don't show persistence of patterns on a long history. For the short term, it might.
Yeah, that's probably how it works. Kind of like the usual approach of tracking a fault.
 

For some reason, using AI chat rooms for forecasting reminds me of an old joke about a chukcha, a shaman and a meteorologist)


Chukcha went to the shaman to find out what kind of winter it will be. The shaman thought and says:
- However cold. Go, Chukcha, make firewood.
Chukcha left, and the shaman thought and decided: "I'll go to the geologist and he'll tell me exactly what kind of winter it will be." He comes to the geologist:
- Tell me what kind of winter it will be.
- Very cold.
- Are you sure?
- Exactly, you can see Chukcha is making firewood.

 

Perplexity about causality and non-stationarity:

Approaches to causal analysis (causality) in machine learning are specifically adapted to deal with non-stationary time series. Typically, classical methods assumed stationarity and linearity of the data, which limited their applicability to real-world data, which is often nonlinear and non-stationary.

Handling nonstationarity in causal analysis

  • Modern methods, such as TS-CausalNNN, use specialised neural networks with causal convolutional layers that allow simultaneous detection of lagged and simultaneous causal relationships even in nonlinear and non-stationary series. This approach does not require assumptions about the distribution of errors and is able to automatically account for changes in series statistics over time.

  • Another approach is conditional stationarity: non-stationarity is modelled as stationarity due to hidden or observable states (e.g. hidden variables that change over time). This allows causal relationships to be revealed through the state of the system, making it possible to analyse causality even if the data as a whole is non-stationary.

  • Local linear models using the Just-In-Time concept (JIT-LiNGAM) approximate non-linear, non-stationary processes with local linear models in small neighbourhoods of time points, providing robustness to distribution shifts and changing dynamics.

  • The CD-NOD (Constraint-based causal Discovery from heterogeneous/Nonstationary Data) method works with data where the generation mechanism changes over time or between domains. It extracts variables with changing mechanisms and uses information about changes in the distribution to orient edges in the causal structure.

  • Bottom line

    Approaches to causal identification for non-stationary time series rely on:

    • Using neural networks with a causal layer to account for non-linearity and non-stationarity,

    • modelling non-stationarity through hidden states or local approximations,

    • detecting and accounting for changes in data distribution to reliably infer oriented causal relationships.

    Thus, state-of-the-art methods are adapted for complex scenarios with changing dynamics and data distribution, which significantly enhances the possibilities of causal inference in time series analysis.