feature: Implements SFX#8801
Conversation
|
hello @jaredbroad. Can you please approve the workflows. Thanks |
|
Thanks @SaiRevanth25 ! Please share the code for how you created the test data, thanks! |
|
I've used the talipp reference data. the source code is here To get the |
jhonabreul
left a comment
There was a problem hiding this comment.
Nice, thank you! Sharing some minor comments
jhonabreul
left a comment
There was a problem hiding this comment.
Almost there! Some more minor coments below
jhonabreul
left a comment
There was a problem hiding this comment.
Looks good. Thank you!
There was a problem hiding this comment.
Hey! Thank you for the contribution
I think generically there's a misconception about what this indicator is, SmoothedForceIndex is something else (lean already has ForceIndex, which uses volume), for me SFX seems to be an indicator developed by Flux Charts, see https://es.tradingview.com/script/gdz74zT6-Flux-Charts-SFX-Algo-Premium/ (paid walled), which is just a collection of other indicators
Not sure how much value is there in adding this indicator really, but if we add it, we shouldn't call it SmoothedForceIndex which will be confusing, I also can't seem to find what SFX stand for though, see https://www.fluxcharts.com/articles/Flux-Charts/sfx-algo/introduction
| /// <param name="selector">Selects a value from the BaseData to send into the indicator, if null defaults to casting the input value to a TradeBar</param> | ||
| [DocumentationAttribute(Indicators)] | ||
|
|
||
| public SmoothedForceIndex SFX(Symbol symbol, int atrPeriod, int stdDevPeriod, int stdDevSmoothingPeriod, Resolution? resolution = null, MovingAverageType maType = MovingAverageType.Simple, Func<IBaseData, TradeBar> selector = null) |
There was a problem hiding this comment.
Volume isn't required for SFX implementation? the base type should be the more generic BarIndicator instead of TradeBarIndicator
maType -> should be expanded to movingAverageType see other similar arguments in this file
2027 empty line should be removed
| protected override decimal ComputeNextValue(TradeBar input) | ||
| { | ||
| AverageTrueRange.Update(input); | ||
| StandardDeviation.Update(new IndicatorDataPoint(input.EndTime, input.Close)); |
There was a problem hiding this comment.
Minor but why not just call .Update(input) instead of creating the indicator data point
|
Closing for now due to #8801 (review), also SFX being a closed source indicator which has many more features which does of talipp implementation, not what is expected |
Description
Implements SFX
Related Issue
#8130Types of changes
Checklist:
bug-<issue#>-<description>orfeature-<issue#>-<description>