ASTROGANN Trading Engine
The ASTROGANN Trading Engine combines W.D. GANN price geometry, Square of 9 projection, planetary aspect confluence, multi-ring validation, Gann Fan structure, and lunation timing into one live signal model.
High-level overview
Astro‑GANN transforms market price through a Square of 9 angular conversion, producing a GANN degree used for planetary comparison, target projection, and geometric validation. This angular representation is then compared against planetary longitudes and aspect relationships. If price aligns closely enough with a major planetary aspect, the engine creates a signal anchor. From that anchor, the system derives execution levels using True Gann Fan structure while Square of 9 geometry is used to project and validate potential targets across multiple rings.
1. Square of 9 Price Transformation
The first step is transforming market price through a Square of 9 angular conversion. Rather than comparing raw price directly to planetary positions, Astro‑GANN first maps price into a Square of 9 degree using Square of 9 geometry. This angular representation can then be compared against planetary longitudes and aspect relationships.
Scale factor
Astro‑GANN automatically derives a scale factor from the current market price. The scale factor is calculated dynamically and allows assets with very different price ranges to be processed through the same Square of 9 framework. This normalization step preserves geometric relationships while keeping calculations consistent across cryptocurrencies, equities, indices, and commodities.
Example:
price = 61,330.49
floor(log10(61,330.49)) = 4
scaleFactor = 10^(4 - 2) = 100
normalizedPrice = 61,330.49 / 100 = 613.30
squareOf9Root = √613.30 = 24.77
priceDegree = (24.77 × 180 − 225) mod 360 = 273.6°
The raw price degree is only the first geometric layer. Subsequent calculations may apply Square of 9 transformations, harmonic projections, planetary validation, target generation, and zodiac mapping.
2. Planetary trigger detection
Once price has a GANN degree, the engine compares it with planetary positions. The system checks five major aspects:
- Conjunction — 0°
- Sextile — 60°
- Square — 90°
- Trine — 120°
- Opposition — 180°
A signal is only created when the closest aspect is within the configured trigger orb.
The display may show broader confluences, but the actual trigger is stricter. This separates interesting background geometry from a real signal anchor.
3. Signal Anchor
When a valid planetary trigger occurs, ASTROGANN freezes the signal anchor and its supporting market conditions.
The frozen anchor becomes the reference point for all subsequent Square of 9 projections, Gann Fan calculations, and trade validation.
4. Execution Matrix
The ASTROGANN engine separates execution from target generation.
Each validation horizon defines its own execution structure. Every ring generates an independent Square of 9 target and planetary validation profile.
The current implementation uses the same dynamic Gann Fan execution model for all rings:
- Entry = Dynamic 1x2 Fan
- Stop = Fan Anchor
Targets, validators, planetary confirmations, and resulting risk/reward profiles differ between rings.
- Short-Term (N=0)
- Mid-Term (N=+1)
- Macro (N=+2)
5. Multi-ring validation
The engine does not rely only on the original trigger. It also validates projected targets across three rings:
The highest-priority validated horizon becomes the system bias. The hierarchy follows Macro → Mid-Term → Short-Term.
Short = BUY
Mid = WAIT
Macro = BUY
System Bias:
Macro BUY
The execution horizon and macro bias can differ. A trader may execute a short-term trade while remaining aware of the dominant long-term directional bias.
Uses Moon, Mercury, Venus, and Mars. This ring reflects fast-moving tactical pressure.
Uses the Sun. This ring acts as an intermediate timing validator, sitting between fast tactical pressure and slower structural confirmation.
Uses Jupiter, Saturn, Uranus, Neptune, and Pluto. This ring reflects longer-term structural pressure and broader market cycles.
A ring is only considered valid if its projected trade passes the minimum risk/reward requirement. Rings failing the risk/reward filter are converted to WAIT.
6. Signal quality score
Each signal receives a quality score. The score combines trigger precision, number of confluences, planet weight, and multi-ring alignment.
- Trigger precision: tighter orb gives more points.
- Confluence count: more supporting aspects increase the score.
- Planet weight: slower planets carry more structural influence.
- Ring alignment: three rings in agreement score higher than two.
7. Entry risk filter
The entry price is checked against potentially difficult planets:
- Mars
- Saturn
- Pluto
If the entry degree forms a tight hard aspect with one of these bodies, the system marks the entry as elevated or high risk.
8. Risk / Reward Validation
Every trade candidate is evaluated using projected reward and projected risk.
Signals failing the minimum risk/reward threshold are rejected automatically.
This prevents geometrically valid signals that offer insufficient reward relative to their risk.
9. True Gann Fan Structure
ASTROGANN uses a true Time-Price Gann Fan derived from real market swings.
The engine determines:
- Swing High
- Swing Low
- Fan Anchor
- Fan Age
- 1x2 Fan
- 1x1 Fan
- 2x1 Fan
In uptrends the Fan Anchor is the Swing Low. In downtrends the Fan Anchor is the Swing High.
Fan Zones
Below 1x2 = Weak Structure
Between 1x2 and 1x1 = Primary Structure
Between 1x1 and 2x1 = Strong Structure
Above 2x1 = Accelerated Structure
The nearest fan line is shown as:
Current Fan Zone: 1x1
This allows traders to identify the dominant structural level controlling price.
Execution Models
Astro‑GANN supports multiple execution styles depending on where the dynamic Gann Fan sits relative to the original signal anchor.
The engine does not automatically enter when a planetary trigger occurs. Instead, the trigger freezes the anchor while the dynamic Gann Fan determines where execution should occur.
This allows the system to distinguish between: • Momentum continuation trades (Breakout / Breakdown) and • Retracement trades (Pullback / Rally)
Dynamic Gann Entry
Unlike a traditional static limit order, ASTROGANN treats Gann Fan levels as time-dependent structures.
When a signal is created, the original entry is frozen and stored for historical reference. However, the live executable entry continues to follow the current Gann Fan.
This preserves the time component of Gann geometry. A trade remains aligned with the live fan structure instead of using a permanently frozen breakout level.
10. Lunation volatility window
ASTROGANN also calculates the next New Moon or Full Moon. The engine scans forward through Sun and Moon longitudes and refines the exact lunation crossing.
The time distance to the next lunation is classified as volatility context:
- High volatility: within 72 hours
- Medium volatility: within 168 hours
- Low volatility: more than 168 hours away
This does not create the trade by itself. It only describes the broader timing environment.
11. Harmonic Zodiac Projection
A unique part of the ASTROGANN integration is that important price levels are rendered inside the zodiac SignCards as synthetic ASTROGANN bodies.
The following price points are projected into zodiac signs:
- Current Price — live market price
- Anchor Price — frozen signal origin
- Entry — limit order level
- Stop / Invalidation Level — risk boundary used for trade validation and stop-loss management
- Take Profit — objective level
- Fan Anchor — Gann structure origin
- 1x2 Fan — structural support / resistance
- 1x1 Fan — dominant trend line
- 2x1 Fan — acceleration level
This lets users inspect how a GANN-derived price level maps into the zodiac through harmonic projection and how that position relates to nearby planetary structure. These price points are not planets; they are synthetic objects used for geometric visualization.
scaleFactor =
10^(floor(log10(price)) - 2)
visualDegree =
(price / scaleFactor) % 360
As a result, the trading degree used by the Astro‑GANN engine and the visual degree displayed inside SignCards are intentionally different representations of the same market price.
In addition, Validation Matrix values are frozen when a signal is created and represent the exact planetary configuration that approved the trade. SignCard aspects are recalculated from current live planetary positions and therefore continue to evolve over time. For this reason, SignCard aspect orbs may differ from the validation orb originally used by the Square of 9 Target Validation process. This behavior is intentional: Validation data is historical and frozen, while SignCards always reflect the current sky.
12. Signal lifecycle
ASTROGANN has several signal states:
- SCANNING — No valid Celestial Anchor exists yet. The engine is scanning for a planetary trigger.
- MONITORING — A valid Celestial Anchor exists and the engine is performing Square of 9 Target Validation.
- WAITING FOR ENTRY — A validated ASTROGANN signal exists. The engine is waiting for the required Entry condition (Breakout, Pullback, Breakdown or Rally).
- ACTIVE — The Entry condition has been fulfilled and the trade is live.
- TARGET HIT — Price reached the projected target.
- STOP HIT — The trade was active and price reached the Stop-Loss level. The position was closed.
- BUY SETUP INVALIDATED — Price reached the Buy setup's invalidation level before entry activation. No position was opened.
- SELL SETUP INVALIDATED — Price reached the Sell setup's invalidation level before entry activation. No position was opened.
Signals also use orphan protection. If price reaches the target before entry, the setup is cleared.
13. Simplified pseudocode
price = getLivePrice()
planets = getPlanetaryPositions()
trigger = detectPlanetaryConfluence()
if trigger:
anchor =
freezeAnchor()
fan =
calculateGannFanState(
anchor
)
rings =
calculateRingValidation(
anchor,
fan
)
All Rings:
Entry = Dynamic 1x2 Fan
Stop = Fan Anchor
Targets differ by Square of 9 Ring Projection
selectedRing = getSelectedRing(rings)
originalEntry = selectedRing.entry
dynamicEntry = fan.fan1x2
entryType = determineExecutionModel(dynamicEntry, anchor)
if entryType == BREAKOUT BUY:
wait until
price >= dynamicEntry
if entryType == PULLBACK BUY:
wait until
price <= dynamicEntry
if entryType == BREAKDOWN SELL:
wait until
price <= dynamicEntry
if entryType == RALLY SELL:
wait until
price >= dynamicEntry
stop = selectedRing.stop
target = selectedRing.target
bias = selectedRing.bias
return signal
Limitations
ASTROGANN combines mathematical price geometry with astrological timing. It should be used for educational purposes only, not treated as a predictive certainty.
- It does not account for news events, liquidity shocks, macroeconomic announcements, or exchange-specific risks.
- It may create false signals, especially during low-liquidity or high-volatility market conditions.
- It does not replace risk management, position sizing, or independent analysis.
- Historical confluence does not imply future performance.