Releases: MerlinR/Hexital
Release list
Beta Release - 4.0.1
Beta Release - 4.0.0
Beta Release - 4.0.0
2025-04-08
Non-backward compatible changes
- Nested naming delimiter changed
.is replaced with: - Altered the vast majority of Indicators Generated naming.
- Indicator names are built centrally in
Indicator._generate_name()from_name_parts() - Indicators with extra parameters
_name_parts()instead of_generate_name() - Default
_name_parts()isperiodandsource(when those fields exist on the indicator)
- Indicator names are built centrally in
- Removed
ManagedandNestedSourcefrom publichexitalexports (useadd_state(); import fromhexital.core.indicatorif needed) - Renamed series retrieval methods
Indicator.readings()->Indicator.series()for one indicator's values across candlesHexital.reading_as_list()->Hexital.series()for one named indicator seriesHexital.readings()->Hexital.all_series()for all indicator series in the strategy
- Separated candle timeframe metadata from resampling
candle.timeframeis metadata only — it does not configure managers or indicator naming- Resampling runs only when
indicator.timeframe=orhexital.timeframe=is set - Removed
timeframe=fromappend/prepend/insert; label candles at source instead - Managers accept candles whose label is equal to or finer than the manager transform
- Timeframe default has changed from str CONST "default" TimeFrame DEFAULT = "N"
- Reworked child indicator API
- Added
add_child(indicator, ...)as the single entry point for attaching child indicators - Added
ChildWhenwithBEFORE,AFTER, andMANUALmembers; exported fromhexital - Added convenience methods
add_child_after()andadd_child_managed() add_child()acceptsChildWhenor a string value; invalid values raiseInvalidIndicator
- Added
- Removed
add_sub_indicator()andadd_managed_indicator()— useadd_child()instead - Removed
sub_indicatorsandmanaged_indicatorsdicts onIndicator— usechildreninstead - Removed
prior_calcproperty andIndicatorModeenum - Removed
find_candle_pairing()— usecandles_for()andcandle_pair()instead IndicatorCollectionnow requiresindicator_field()on dataclass fields or explicit indicators passed to__init__
Changes
-
Support python 3.14
-
Added explicit candle stream helpers on
Hexitalcandles_for(name)returns the stream for an indicator, timeframe, or OHLCV fieldcandle_pair(indicator, indicator_cmp)returns two streams for movement comparison
-
Added
indicator_field()for explicitIndicatorCollectionregistration -
Fixed
purge()to recursively clear nested child indicator readings -
Added
Hexital.from_settings()to reconstruct a strategy from a settings dictionary -
Added
Statehelper for indicator state- Added
Indicator.add_state()to register state backed by a managed child Stateprovidesprev(),reading(),set(),update(), andsource()— replacing manualManaged+NestedSource- Exported
Statefromhexital; built-in stateful indicators migrated to use it
- Added
-
Added QOL methods on
Indicator- OHLCV properties:
open,high,low,close,volume - Shorthand methods:
prev(),at(),src(),prev_src(),at_src()
- OHLCV properties:
-
Major Typing update, some method clean up and optimisation
-
Performance optimisations for appending
-
Made
Candle.__eq__()symmetric while preserving lenient comparison -
Updated Test verification
-
Added
Timeframeargument to helper generating Candle methods for easier setting from existing data -
Added Indicators
- Added AO
- Added BandWidth
- Added CCI (CCI)
- Added ChandelierExit
- Added CKSP
- Added CMF
- Added DEMA
- Added Fisher
- Added COPC
- Added KAMA
- Added KST
- Added Linear Regression
- Added NATR
- Added PPO
- Added PSAR
- Added Regression Channel
- Added Regression Slope
- Added Squeeze (SQ)
- Added Squeeze Pro (SQPRO)
- Added TEMA
- Added TRIX
- Added Ultimate Oscillator (UO)
- Added Vortex
- Added WillR (WillR)
- Added ZScore (ZS)
-
Modified Indicators
- KC can now be ran with EMA or SMA, and uses TR by default
- WMA uses O(1) incremental rolling after seed period
- BBANDS now takes optional Multiplier defaults 2.0
Beta Release - 3.0.1
Beta Release - 3.0.1
2025-04-08
- CandlestickType now re-calculates after prepending to ensure prev transformed are still correct
- Optimise Indicator '_reading_dup' (I think im dumb)
- Updated 'resample_candles' to make use of CalcMode
Beta Release - 3.0.0
Beta Release - 3.0.0
2025-04-08
-
Non-backward compatible changes:
- Hexital and Indicator 'append' will now only append to Candles and not sort placement.
- Renamed Indicator 'as_list' to 'readings'
- Renamed 'find_candles' to 'find_candle_pairing'
- Removed 'has_reading' as pointless with method 'exists'
- Candle with no 'timestamp' will no longer use current UTC time
-
Candle's no longer require a Timestamp
-
Reworked and optimised 'append' and added 'insert' and 'prepend'
-
Added IndicatorCollection as a way to better reference Indicator's
-
More options when setting indicator 'Source' - str | Indicator | NestedSource
-
Updated Sub/Managed Indicator's to generate name based of parents if none set
-
Added Specific reading typing for Indicators
-
Reworked CandlestickType to be faster and can generate larger set of Candlesticks
Beta Release - 2.0.3
Beta Release - 2.0.3
2025-02-12
- Added option when converting Candle to include the readings
- Updated 'Settings' to work correctly in Indicator, and added it to Hexital
- Fixed
- Fixed Minor bug in _find_calc_index
Beta Release - 2.0.2
Beta Release - 2.0.2
2025-02-04
- Added as_list and as_dict method's to Candle
- Added clean_copy to Candle to copy core values to new Candle object
- Will remove indicators/sub_indicators
- Default used when appending new Candle
- Added 'Readings' to Hexital
- Optimisation
- Removed use of 'deepcopy' for 'clean_copy'
- Fixes
- Corrected filler candles in timeframe to have 0 aggregation factor
- Corrected VWAP Naming
- Prevent DEFAULT timeframe being same as another set timeframe
- DEFAULT is renamed to the correct timeframe is set in Hexital
Beta Release - 2.0.1
Beta Release - 2.0.1
2024-12-19
- Fixes
- Corrected merged candles not combining aggregation factor
- Fix error when appending a list with one Candle
Beta Release - 2.0.0
Beta Release - 2.0.0
2024-12-19
-
Non-backward compatible changes:
- Re-named several Hexital arguments
- candles_lifespan -> candle_life
- candlestick_type -> candlestick
- Re-named several Indicator arguments
- input_value -> source
- fullname_override -> name
- candles_lifespan -> candle_life
- candlestick_type -> candlestick
- rounding_value -> rounding
- Candle's now require a timestamp, a single candle added will use the current UTC time
- Candle timeframe attribute:
- Candle's now have a timeframe attribute, this shows the resolution of the Candle, this is optional for Candle's
- Merging Candle's now take into account first and last Candles for accurate Open/Close value updates
- Appending Candles will now be sorted, allowing to say Append missing or back data
- Improved the speed of Candle timeframe collapsing
- Re-named several Hexital arguments
-
Re-wrote Testing method
- Removed unreliable deepdiff rounding
- Removed soft Correlation Coefficient
- Custom accuracy none rounding driven custom diff check
-
Updated Movement methods to accept
Indicator | Hexital | List[Candle]and searches the given
object to find the specific'd indicator(s)- Movement methods can now accept Indicator's from different timeframes when used with Hexital object
-
Added 'candles_average' method to Indicator
-
Added 'exists' to do same as prev_exists for correct handling dict's
-
Updated Candle to now accept either 'timestamp' or 'time' for time's in 'from_dict(s)'
-
Updated 'reading_count' to accept an index to count from
-
Updated Hexital append with optional 'timeframe' to select specific Candle's to append too
-
Updated 'candles' in Hexital method to accept timeframe's or indicators
-
Updated 'prev_exists' to correctly handle Dict's
-
Updated Rounding to accept 'None' to indicate no rounding, default is still 4
-
Added Movements
- Added flipped, to detect changes in bool's or solid values
-
Added Indicators
- Chande Momentum Oscillator (CMO)
- High Low Close Average (HLCA)
- Money Flow Index (MFI)
- Midpoint Over Period (MOP)
- Pivot Points (PivotPoints)
- Jurik Moving Average Average (JMA)
- Added Relative Vigor Index (RVI)
-
Alterations
- Added Anchor to VWAP
- Renamed several Indicators Internal:
- HighestLowest -> HL
- HighLowAverage -> HLA
- StandardDeviation -> STDEV
- StandardDeviationThreshold -> STDEVT
-
Fixes
- Fixed Timeframe rounding to correctly handle days
- Fixed OBV
- No rounding for sub/managed indicators
- Fixed STDEV/bbands
- Corrected when start calculation
- Fixed KC
Beta Release 1.1.2
Beta Release - 1.1.2 - 2024-05-03
- Fixed Major incremental calculate flaw with sub indicators
- Causing sub indicators to almost always re-calc entire set rather than latest (incrementally)
- Optimised Analysis and Movement functions for less calls and less loops
- Removed Deepcopies on Candles unless being added to Extra timeframes to speed up appending
Beta Release - 1.1.1
Beta Release - 1.1.1 - 2024-05-01
- Changed Movement rising/falling default length from 4 to 1
- Added better exceptions to Hexital verifying dict indicators
- Mass Indicator clean up to fix, unused/unended input_value's and unused sub indicators
- Fixed minor donchian error
- Fixed Highest and Lowest movement methods from returning bool False instead of None
- Added Indicators
- Added HighestLowest (HL)
- Added Standard Deviation Threshold (STDEVTHRES)