FORTS_Currency_Power
This EA is a real-time currency power index monitor for the Russian FORTS derivatives market. It calculates and displays three custom indices (RTS, USD, RUB) based on weighted baskets of futures contracts (MIX, RTS, Si, Eu) and renders them as a graphical curve chart. It does not open any trades; it is purely a visualization and analysis utility.
Open the interactive view (equity curve, symbol switch)Key facts
Backtest results (H1, about 1 year)
Not backtested yet — this EA could not be converted automatically.
Strategy analysis
The strategy concept of this EA is to calculate three currency power indices for the FORTS market based on weighted baskets: the RTS index (MIX+RTS with weight 1.0), the USD index (Si weight 1.0 minus RTS weight -1.0), and the RUB index (Si, MIX, Eu all with negative weights). Entry conditions are not applicable since this is a pure monitoring tool that does not execute any trades. Exit conditions are similarly not applicable; the EA only continuously updates data and refreshes the graphical chart on a timer event. Position sizing and money management are completely absent as there is no trading logic whatsoever. The core algorithm relies on the CCurrencyPowerIndex class's TickCalculate and GetCurrentPriceAverage methods, which measure relative currency strength through weighted average price changes. Data storage uses a circular buffer with a capacity of 400 data points, implementing efficient memory management for continuous real-time updates. The graphical display uses the CGraphic library with a fixed Y-axis range of 0-100, including a 50 baseline and three currency power curves.
Strengths
- Circular buffer design is efficient, avoids memory reallocation, and is suitable for long-duration real-time operation
- Good modular design using the CCurrencyPowerIndex class to encapsulate core calculation logic with clear separation of concerns
- Intuitive graphical display with fixed Y-axis 0-100 range and 50 baseline for quick currency strength assessment
- Supports custom weighted baskets with high flexibility to adapt index construction for different market conditions
Weaknesses
- Futures contract symbols are hardcoded (e.g., MIX-3.18, Si-3.18) requiring manual source code modification upon contract expiration with no auto-rollover mechanism
- Off-by-one bug in GetDataArray: boundary check idx>3 should be idx>=3, causing out-of-bounds access when idx equals 3
- Does not execute any trades and functions solely as a monitoring tool, lacking signal output interfaces for other EAs to consume
- The m_count variable increments from 0 to m_size-1 then stops changing, which may cause imprecise data count tracking during the initial phase
Possible improvements
- Parameterize futures contract symbols or implement auto-rollover logic to avoid manual code changes upon contract expiration
- Fix the array out-of-bounds bug in GetDataArray (change idx>3 to idx>=3) and add safety checks on m_data array length
- Add signal output mechanisms (e.g., global variables, files, or events) to enable other EAs to make trading decisions based on the currency power indices
- Add exception handling and initialization failure recovery logic; currently there is no retry mechanism when Initialize fails
Risk assessment
Overall risk: Safe
- This EA does not execute any trades, so there is no financial risk
- Hardcoded futures contract symbols may cause data source failure after contract expiration, producing misleading chart displays
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
MINITE_BARS_COUNT | 5 | Minute bar count for currency strength index calculation period |
m_size | 400 | Ring buffer size, determines historical data storage capacity |
Timer interval | 100ms | Timer refresh interval controlling data update and chart redraw frequency |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.