Nano Strategy Library

Nano is Aether’s DSL for AI decisions — deployed across trading, security, and beyond. This is its open library: read a strategy, replay it, and open it in Aether Code.

Native with every AI model
AetherClaudeGPTGeminiGrokCopilotPerplexity& moreAetherClaudeGPTGeminiGrokCopilotPerplexity& more

A rule and an approval are different jobs.

Nano makes the rule compact, versioned, and replayable; your application owns data quality, policy, persistence, and real-world effects. That separation makes a decision trail easier to inspect without giving a script authority over your infrastructure.

NanoAether's DSL for AI systems

Nano is a small, Python-embeddable language for transparent threshold rules. It compiles source into validated IR, evaluates host-provided numeric signals deterministically, and returns proposed Intent values with an ordered run log. It does not call an exchange, API, or other external system.

MITPython-embeddablev0.1.0 alpha

Alpha reference implementation. The examples are trading-oriented, but Nano fits any system where a host supplies numeric signals and must retain control over what happens next.

Open strategies.
No fixtures.

Every entry is a verbatim MIT file, compiled by the same toolchain a runtime uses. Filters are derived from the corpus, so no filter can return nothing.

Volatility/5mBreaker

Atr Volatility Halt

strategy AtrVolatilityHalt {
every 5m {
if ATR_PCT(14) > 5 {
pause()
}
}
}
Portfolio· AtrVolatilityHalt.nanoSpec
Open in Aether Code
Volatility/1hLong

Bb Squeeze Breakout

strategy BbSqueezeBreakout {
every 1h {
if BB_WIDTH(20) < 4 and MOM(10) > 0 {
buy(BTCUSD, 0.7)
}
}
}
BTCUSD· BbSqueezeBreakout.nanoSpec
Open in Aether Code
Mean reversion/1hLong

Bollinger Band Touch

strategy BollingerBandTouch {
every 1h {
if BB_PCT_B(20) <= 0 {
buy(SPY, 0.8)
}
}
}
SPY· BollingerBandTouch.nanoSpec
Open in Aether Code
Mean reversion/1hLong

Cci Extreme

strategy CciExtreme {
every 1h {
if CCI_NEG(20) >= 100 {
buy(QQQ, 0.65)
}
}
}
QQQ· CciExtreme.nanoSpec
Open in Aether Code
Event volatility/5sLong

Cpi Impulse Pullback Long

strategy CpiImpulsePullbackLong {
agent MacroEvent
every 5s {
if EVENT_READY > 0.5 and ENTRY_WINDOW_OPEN > 0.5 and RELEASE_CONFIRMED > 0.5 and CPI_COOL_SCORE > 0.72 and UPSIDE_IMPULSE_ATR > 0.8 and RETRACE_HOLD_SCORE > 0.6 and BULL_CROSS_CONFIRM > 0.55 and LIQUIDITY_OK > 0.5 {
buy(MES, 0.78)
}
}
}
MES· CpiImpulsePullbackLong.nanoSpec
Open in Aether Code
Event volatility/5sShort

Cpi Impulse Pullback Short

strategy CpiImpulsePullbackShort {
agent MacroEvent
every 5s {
if EVENT_READY > 0.5 and ENTRY_WINDOW_OPEN > 0.5 and RELEASE_CONFIRMED > 0.5 and CPI_HOT_SCORE > 0.72 and DOWNSIDE_IMPULSE_ATR > 0.8 and RETRACE_HOLD_SCORE > 0.6 and BEAR_CROSS_CONFIRM > 0.55 and LIQUIDITY_OK > 0.5 {
sell(MES, 0.78)
}
}
}
MES· CpiImpulsePullbackShort.nanoSpec
Open in Aether Code
Trend/1dLong

Donchian Breakout

strategy DonchianBreakout {
every 1d {
if DONCHIAN_POS(20) >= 1 {
buy(ETHUSD, 0.8)
}
}
}
ETHUSD· DonchianBreakout.nanoSpec
Open in Aether Code
Event volatility/5sLong

Event False First Move Long

strategy EventFalseFirstMoveLong {
agent MacroEvent
every 5s {
if EVENT_READY > 0.5 and ENTRY_WINDOW_OPEN > 0.5 and PRE_EVENT_RANGE_BREAK_DOWN > 0.6 and BREAK_FAILURE_SCORE > 0.7 and EVENT_ANCHOR_RECLAIM > 0.6 and BULL_FLOW_CONFIRM > 0.55 and LIQUIDITY_OK > 0.5 {
buy(MES, 0.74)
}
}
}
MES· EventFalseFirstMoveLong.nanoSpec
Open in Aether Code
Event volatility/5sShort

Event False First Move Short

strategy EventFalseFirstMoveShort {
agent MacroEvent
every 5s {
if EVENT_READY > 0.5 and ENTRY_WINDOW_OPEN > 0.5 and PRE_EVENT_RANGE_BREAK_UP > 0.6 and BREAK_FAILURE_SCORE > 0.7 and EVENT_ANCHOR_REJECT > 0.6 and BEAR_FLOW_CONFIRM > 0.55 and LIQUIDITY_OK > 0.5 {
sell(MES, 0.74)
}
}
}
MES· EventFalseFirstMoveShort.nanoSpec
Open in Aether Code
Event volatility/5sLong

Event Impulse Pullback Long

strategy EventImpulsePullbackLong {
agent MacroEvent
every 5s {
if EVENT_READY > 0.5 and ENTRY_WINDOW_OPEN > 0.5 and UPSIDE_IMPULSE_ATR > 0.8 and RETRACE_HOLD_SCORE > 0.6 and BULL_CROSS_CONFIRM > 0.55 and LIQUIDITY_OK > 0.5 {
buy(MES, 0.78)
}
}
}
MES· EventImpulsePullbackLong.nanoSpec
Open in Aether Code
Event volatility/5sShort

Event Impulse Pullback Short

strategy EventImpulsePullbackShort {
agent MacroEvent
every 5s {
if EVENT_READY > 0.5 and ENTRY_WINDOW_OPEN > 0.5 and DOWNSIDE_IMPULSE_ATR > 0.8 and RETRACE_HOLD_SCORE > 0.6 and BEAR_CROSS_CONFIRM > 0.55 and LIQUIDITY_OK > 0.5 {
sell(MES, 0.78)
}
}
}
MES· EventImpulsePullbackShort.nanoSpec
Open in Aether Code
Event volatility/1sBreaker

Event Liquidity Halt

strategy EventLiquidityHalt {
every 1s {
if SPREAD_STRESS > 0.8 {
pause()
}
}
}
Portfolio· EventLiquidityHalt.nanoSpec
Open in Aether Code
Event volatility/1sBreaker

Event Release Integrity Halt

strategy EventReleaseIntegrityHalt {
every 1s {
if RELEASE_CONFLICT > 0.5 {
pause()
}
}
}
Portfolio· EventReleaseIntegrityHalt.nanoSpec
Open in Aether Code
Event volatility/5sLong

Event Second Leg Long

strategy EventSecondLegLong {
agent MacroEvent
every 5s {
if EVENT_READY > 0.5 and ENTRY_WINDOW_OPEN > 0.5 and UPSIDE_IMPULSE_ATR > 0.8 and SECOND_LEG_SCORE > 0.7 and BULL_FLOW_CONFIRM > 0.55 and LIQUIDITY_OK > 0.5 {
buy(MES, 0.7)
}
}
}
MES· EventSecondLegLong.nanoSpec
Open in Aether Code
Event volatility/5sShort

Event Second Leg Short

strategy EventSecondLegShort {
agent MacroEvent
every 5s {
if EVENT_READY > 0.5 and ENTRY_WINDOW_OPEN > 0.5 and DOWNSIDE_IMPULSE_ATR > 0.8 and SECOND_LEG_SCORE > 0.7 and BEAR_FLOW_CONFIRM > 0.55 and LIQUIDITY_OK > 0.5 {
sell(MES, 0.7)
}
}
}
MES· EventSecondLegShort.nanoSpec
Open in Aether Code
Event volatility/5sBreaker

Event Whipsaw Halt

strategy EventWhipsawHalt {
every 5s {
if WHIPSAW_SCORE > 0.7 {
pause()
}
}
}
Portfolio· EventWhipsawHalt.nanoSpec
Open in Aether Code
Trend/1dLong

Golden Cross

strategy GoldenCross {
every 1d {
if SMA_SPREAD(50) > 0 {
buy(SPY, 0.9)
}
}
}
SPY· GoldenCross.nanoSpec
Open in Aether Code
Trend/4hLong

Macd Histogram Flip

strategy MacdHistogramFlip {
every 4h {
if MACD_HIST(9) > 0 {
buy(BTCUSD, 0.75)
}
}
}
BTCUSD· MacdHistogramFlip.nanoSpec
Open in Aether Code
Risk/1mBreaker

Max Drawdown Breaker

strategy MaxDrawdownBreaker {
agent RiskDesk
every 1m {
if DRAWDOWN >= 5 {
pause()
}
}
}
Portfolio· MaxDrawdownBreaker.nanoSpec
Open in Aether Code
Volume/4hLong

Obv Trend

strategy ObvTrend {
every 4h {
if OBV_SLOPE(20) > 0 {
buy(ETHUSD, 0.7)
}
}
}
ETHUSD· ObvTrend.nanoSpec
Open in Aether Code
Momentum/1hLong

Roc Momentum

strategy RocMomentum {
every 1h {
if ROC(10) > 5 {
buy(BTCUSD, 0.7)
}
}
}
BTCUSD· RocMomentum.nanoSpec
Open in Aether Code
Momentum/15mLong

Rsi Oversold Reversal

strategy RsiOversoldReversal {
every 15m {
if RSI(14) < 30 {
buy(BTCUSD, 0.85)
}
}
}
BTCUSD· RsiOversoldReversal.nanoSpec
Open in Aether Code
Momentum/30mLong

Stochastic Oversold

strategy StochasticOversold {
every 30m {
if STOCH_K(14) < 20 {
buy(ETHUSD, 0.8)
}
}
}
ETHUSD· StochasticOversold.nanoSpec
Open in Aether Code
Volume/15mLong

Volume Spike Confirmation

strategy VolumeSpikeConfirmation {
every 15m {
if VOL_RATIO(20) > 3 and RSI(14) < 30 {
buy(BTCUSD, 0.85)
}
}
}
BTCUSD· VolumeSpikeConfirmation.nanoSpec
Open in Aether Code
Momentum/1hLong

Williams R Reversal

strategy WilliamsRReversal {
every 1h {
if WILLR_POS(14) < 20 {
buy(SOLUSD, 0.75)
}
}
}
SOLUSD· WilliamsRReversal.nanoSpec
Open in Aether Code
Mean reversion/4hLong

Zscore Reversion

strategy ZscoreReversion {
every 4h {
if ZSCORE_NEG(20) >= 2 {
buy(ETHUSD, 0.7)
}
}
}
ETHUSD· ZscoreReversion.nanoSpec
Open in Aether Code

Click a strategy.
Land in the editor.

The Nano compiler is built into Aether Code. Any strategy in this library opens there with its source loaded and IR ready — fork it and improve it the moment you’re signed in.

01Pick a strategy

Anything in the library — an RSI reversal, a drawdown breaker, your own fork.

02It opens compiled

Aether Code loads the source with its validated IR, ready to run the moment it appears.

03Make it yours

Edit, replay, and improve it in place — signed in, nothing to set up.

An operator reading a holographic chart panel in orbit

Read it before
you run it.

The IR — not the source — is what a runtime loads. Both are published, pinned and hashed, so nothing about a strategy has to be taken on trust.

See how it compiles.

Two windows, one strategy. On the left, the rule exactly as its author wrote it — plain enough to read over someone’s shoulder. On the right, what the compiler makes of it: the validated IR a runtime actually loads. Watch one become the other.

See in Aether Code
01 · You write this02 · It compiles to this
MaxDrawdownBreaker.nano17 lines
// Max-drawdown circuit breaker: when portfolio drawdown reaches 5 percent,// pause all proposals and hand control to the named risk agent.strategy MaxDrawdownBreaker {    agent RiskDesk    every 1m {        if DRAWDOWN >= 5 {            pause()        }    }}
MaxDrawdownBreaker.ir.jsonIR 0.1.0
{  "type": "Strategy",  "nanoIrVersion": "0.1.0",  "name": "MaxDrawdownBreaker",  "effects": [    "intent.emit",    "log.append"  ],  "nodes": [    {      "type": "Schedule",      "interval": "1m"    },    {      "type": "Condition",      "signal": "DRAWDOWN",      "operator": ">=",      "value": 5    },    {      "type": "Intent",      "action": "PAUSE"    },    {      "type": "Agent",      "name": "RiskDesk"    }  ]}

Readable rules: every minute, if drawdown reaches 5, pause.

The validated IR — the exact thing a runtime loads and replays.

Write the rule.Replay the outcome.You keep the decision.

Nano proposes. Your application decides — it never calls an exchange or any outside system itself.

What we publish.
What we don't.

There is no backtest engine behind this corpus. Numbers that have not been produced are not displayed — not even as a placeholder.

Published for every entry

  • Nano source, verbatim
  • Byte-exact Nano identifier
  • Compiled IR, pinned at 0.1.0
  • Source sha256
  • Required signals
  • Declared effects
  • Named agents
  • Cadence and market
  • Author and licence

Withheld by design

  • Return %
  • Win rate
  • Sharpe ratio
  • Max drawdown
  • Equity curve
  • Star rating
  • View / save / use counts
  • Trending rank

Publish a strategy.

Built something useful? Contribute a strategy →

Draft it, then validate against the production Nano compiler — real line:column errors, real IR preview.

Submit a contribution

Submission is not open yet — the review queue is not deployed, so there is no submit control to press.