configs/claude-code/skills/using-nautilus-trader/SKILL.md
Provides expert guidance for NautilusTrader algorithmic trading platform. Covers backtesting strategies, live trading deployment, event-driven architecture, and building trading systems.
npx skillsauth add poorrican/dotfiles using-nautilus-traderInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
High-performance algorithmic trading platform with event-driven architecture. Identical code for backtesting and live trading. Rust/Cython core with Python bindings.
Always consult official docs for current API - the API evolves frequently with breaking changes before v2.x.
Core Development
Data & Orders
Components
Integration
Reference
Register indicators BEFORE subscribing:
self.register_indicator_for_bars(self.bar_type, self.ema)
self.subscribe_bars(self.bar_type) # Must be after registration
Use strategy's order_factory:
order = self.order_factory.market(
instrument_id=instrument_id,
order_side=OrderSide.BUY,
quantity=Quantity.from_str("1.0"),
)
self.submit_order(order)
BarType string format:
# Format: {instrument_id}-{step}-{aggregation}-{price_type}-{source}
bar_type = BarType.from_str("BTCUSDT.BINANCE-1-MINUTE-LAST-EXTERNAL")
InstrumentId format:
# Format: {symbol}.{venue}
instrument_id = InstrumentId.from_str("BTCUSDT.BINANCE")
Quantity/Price from strings (avoids precision issues):
quantity = Quantity.from_str("1.5")
price = Price.from_str("50000.00")
Check indicator initialization:
def on_bar(self, bar: Bar):
if not self.ema.initialized:
return
# Safe to use self.ema.value
OmsType.NETTING - Single position per instrument (crypto-style)OmsType.HEDGING - Multiple positions per instrument (traditional futures)AccountType.CASH - Spot tradingAccountType.MARGIN - Margin/leverage tradingdevelopment
Implement multiple GitHub issues sequentially as stacked branches in separate worktrees, with an implementer sub-agent and an independent reviewer sub-agent per issue. Use when the user gives you two or more dependent issues and asks for them to be implemented in order, or says "stacked branches", "sequential issues", "issue chain", "do these in worktrees", or describes a parent epic with child issues that build on each other. Also reach for this whenever the user wants implementation and verification done by separate agents.
testing
Use when an agent needs to produce, update, validate, or normalize a standardized research proposal artifact without running an interview. Defines the canonical structure, confidence-tag semantics, decision logic, and completion checks for proposal.md-style research plans.
development
Conducts a structured Socratic interview to produce a comprehensive markdown research proposal that handles cascading uncertainty (fixed end-question, branching experiments). Use this skill whenever the user wants to write a research proposal, research plan, study design, experiment plan, thesis proposal, RFC, or "spec out" a research direction — even if they don't explicitly say "interview me." Trigger when the user says things like "help me plan this research", "I want to design experiments for X", "draft a proposal for...", "think through a research direction", or shares a half-formed research idea and asks for help structuring it. The skill interviews the user, challenges their priors with evidence requests and falsifiers, optionally uses sub-agents to explore prior art, and builds the proposal markdown incrementally so context stays clean and the document is always grounded.
testing
Use when an agent needs to produce, update, validate, or normalize a standardized experiment-log entry without running an interview. Defines the canonical structure, pre-registration rules, evidence/interpretation split, calibration tags, and append-only revision model for durable experiment records.