Dynamic profit target
Profit target that rises from base to max as the momentum score climbs, flat at max on SPY at defaults.
DynamicProfitTarget takes one input, a momentum score, and turns it into a profit target between base_target and max_target. A score of 10 or more gives max_target, a missing score gives base_target, and scores in between follow (score / 10) raised to the power 1.8, so the target moves little at weak scores and most of its climb happens near 10. The indicator reads no price itself, so what the line shows depends entirely on what feeds the score.
How to read it
- The line sits in its own pane below the price, because its values are targets, not prices.
- At defaults it moves between 1.03 (base_target) and 1.2 (max_target); the higher it sits, the stronger the momentum score behind it.
- On the SPY sample at defaults it sat at 1.2 on every bar, so the score was at its ceiling for the whole month. A flat line at the top means the input is pinned, not that momentum is strong.
What it outputs
- Profit target
- The profit target: base_target when the score is missing, rising to max_target as the score reaches 10.
Settings
- base_target
- The target when the score is missing, and the floor the target climbs from. Raising it lifts every target and leaves less room for strong scores to add. Lowering it widens the range strong scores can reach.
- max_target
- The target a score of 10 or more produces, and the ceiling. Raising it lets strong momentum push the target further. Lowering it toward base_target flattens the line, and below base_target the line falls as the score rises.
Pitfalls
- The SPY sample held the output at 1.2 on all 20160 bars, so the input never dropped below a score of 10. The facts do not show what feeds momentum_score, so confirm the input before reading the line.
- The name says exponential, but the curve is a power of 1.8 on score / 10. At defaults a score of 5 gives about 1.08 and a score of 8 about 1.14, so most of the climb happens near 10.
- A negative score raised to the power 1.8 gives a complex number in Python, not a target. The sibling ExplosiveAcceleration score stays 0 to 10, so this only bites if another input feeds it.