What is pyramiding and how can it accidentally create multiple positions?
Pyramiding controls successive strategy.entry() additions in the same direction. If each resulting alert becomes a fresh live entry, intentional or accidental pyramiding can multiply cTrader exposure.
Why this matters
Production automation must remain predictable when markets move fast, messages duplicate or reorder, accounts differ, orders partially fill, or infrastructure restarts. The goal is observable state—not merely “an alert usually opens a trade.”
End-to-end model
Pine decision
→ TradingView alert
→ authenticated webhook
→ freshness / duplicate / schema validation
→ NRUNO account + symbol routing
→ cTrader operation
→ broker result
→ position reconciliation
→ user-visible status / audit log
Real-world scenarios
Scenario A — Scale-in
Record the UTC timestamp, signal/order ID and intended action. Compare the TradingView event, webhook/NRUNO state, cTrader result and final position. The evidence should show which stage changed the intended action into the observed result; apply the documented resolution only to that stage.
Scenario B — Pyramiding misunderstood
Record the UTC timestamp, signal/order ID and intended action. Compare the TradingView event, webhook/NRUNO state, cTrader result and final position. The evidence should show which stage changed the intended action into the observed result; apply the documented resolution only to that stage.
Scenario C — Duplicate execution
Record the UTC timestamp, signal/order ID and intended action. Compare the TradingView event, webhook/NRUNO state, cTrader result and final position. The evidence should show which stage changed the intended action into the observed result; apply the documented resolution only to that stage.
Deep diagnostic workflow
- Freeze evidence before changing settings.
- Establish intended action and valid time window.
- Prove what TradingView knew at trigger time.
- Verify message identity, authentication, freshness and ordering.
- Verify resolved account, symbol, volume and command.
- Read exact cTrader/broker response.
- Reconcile requested volume with actual position state.
- Apply the documented failure policy.
- Reproduce on demo.
Design rules
- Explicit action/unit/account/symbol/position/expiry beats guessing.
- Current cTrader state beats assumed state.
- HTTP success, connector acceptance, cTrader acceptance and final fill are separate.
- Entry filters and risk-reducing exits need separate policies.
- Duplicate handling must be idempotent.
- Stale signals need expiry.
- Never silently convert an invalid command into a different trade.
- Exact errors belong in logs and user-facing diagnostics.
NRUNO implication
NRUNO is the execution connector, not the signal generator. It should expose validated command state, authorized routing, duplicate/stale handling, cTrader connectivity, exact execution errors and a traceable audit history. Support cases can then become anonymized Wiki scenarios.
Primary sources
Need a TradingView → cTrader execution route?
NRUNO routes your TradingView instructions to cTrader. Your strategy and signal logic remain yours.