[{"data":1,"prerenderedAt":2523},["ShallowReactive",2],{"docs-nav":3,"doc-backtesting-rule-card-strategies":483},{"categories":4,"settings":397,"tools":422},[5,34,72,98,138,182,252,293,313,333,350],{"_id":6,"blurb":7,"order":8,"pages":9,"showDisclaimer":31,"slug":32,"title":33},"f3a96461-762f-4400-afaa-22792b774c55","Create your account, find your way around a workspace, and build and backtest your first strategy.",10,[10,16,21,26],{"_id":11,"group":12,"lastUpdated":12,"slug":13,"summary":14,"title":15},"5fc41c43-d229-4d53-8a8e-d555d2398c18",null,"sign-up","Create an Orbital account with an email and password or with Google, sign in, reset a lost password, and join a workspace from an invitation email.","Sign up and sign in",{"_id":17,"group":12,"lastUpdated":12,"slug":18,"summary":19,"title":20},"fbaf2a74-2afb-4d57-b33a-f6c96e26b624","workspaces-and-projects","What a workspace and a project each hold, what signup creates for you, how to switch between them, and how a connected assistant is bound to one project.","Workspaces and projects",{"_id":22,"group":12,"lastUpdated":12,"slug":23,"summary":24,"title":25},"88a2268d-a124-46c7-b029-c2d4f7ff775d","your-first-strategy","Build a rule-card strategy in the workflow editor, walked through with a golden cross on SPY, and see it listed in Backtesting ready to run.","Your first strategy",{"_id":27,"group":12,"lastUpdated":12,"slug":28,"summary":29,"title":30},"47e1ce39-c0a1-4cef-9e90-b8dd33cc8ee1","your-first-backtest","Run a strategy over past data, read the estimate before it starts, follow its progress, and understand the figures, chart and trade log it produces.","Your first backtest",false,"getting-started","Getting started",{"_id":35,"blurb":36,"order":37,"pages":38,"showDisclaimer":69,"slug":70,"title":71},"657bcd3b-cc2a-44ed-9f84-03643c99c547","Connect an AI assistant to your Orbital project so it can create strategies and run backtests for you.",20,[39,44,49,54,59,64],{"_id":40,"group":12,"lastUpdated":12,"slug":41,"summary":42,"title":43},"3bad212d-95fa-478c-948f-0596407ca16e","connecting","Add Orbital AI to Claude or Claude Code, sign in, approve the connection for one workspace and project, and start asking Claude to build and backtest strategies.","Connect Claude to Orbital",{"_id":45,"group":12,"lastUpdated":12,"slug":46,"summary":47,"title":48},"4e342515-cd92-471f-80c0-67a319c2ac1e","tools","The eleven tools Claude can call in your Orbital project: how a session uses them, the permission each needs, and the refusals any tool can give.","The eleven tools",{"_id":50,"group":12,"lastUpdated":12,"slug":51,"summary":52,"title":53},"c57bc136-30d6-4b59-9b69-463dc5ea5c13","rule-cards-and-programs","The two kinds of strategy Claude can write in your project: rule cards built from Orbital's strategy nodes, and Programs, Rust code Orbital compiles for logic the cards cannot express.","Rule cards and Programs",{"_id":55,"group":12,"lastUpdated":12,"slug":56,"summary":57,"title":58},"74e28c3b-d4df-498f-8961-13dd42f5b27a","troubleshooting","What to do when Claude asks you to sign in, a tool is refused, a run will not start or cancel, or the connection stops working. Each symptom with its cause and its fix.","Troubleshooting",{"_id":60,"group":12,"lastUpdated":12,"slug":61,"summary":62,"title":63},"d1a9691c-b38a-44ac-9741-a100d411692f","faq","Short answers about what Claude can and cannot do in your Orbital project: trades, projects, data, teammates, apps, ChatGPT, advice and disconnecting.","FAQ",{"_id":65,"group":12,"lastUpdated":12,"slug":66,"summary":67,"title":68},"b8c41c3e-ea55-41e8-9bbc-273f82e26633","chatgpt","Orbital AI for ChatGPT is coming. Until it ships, Claude and Claude Code are the assistants Orbital supports.","ChatGPT",true,"claude-and-chatgpt","Claude & ChatGPT",{"_id":73,"blurb":74,"order":75,"pages":76,"showDisclaimer":31,"slug":97,"title":81},"b3972fa1-43ef-4d47-be02-d44097dda281","Ask about markets, your workspace and the web, and let Chat propose dashboards, workflows and strategies you approve.",30,[77,82,87,92],{"_id":78,"group":12,"lastUpdated":12,"slug":79,"summary":80,"title":81},"abf18936-5589-4ddb-8da1-4830374f145a","overview","Where Chat lives, what it can read and propose, how threads work, which model answers, and the request limits and turn clock it runs under.","Chat",{"_id":83,"group":12,"lastUpdated":12,"slug":84,"summary":85,"title":86},"06bc241c-5dc7-49fe-b61f-df14ec6837f4","asking-about-markets","Tag a ticker with $, get cited prices, history and screens from market data, chart it in the thread, pin a chart to a dashboard, and use the slash commands.","Ask about markets",{"_id":88,"group":12,"lastUpdated":12,"slug":89,"summary":90,"title":91},"e9b59bec-7c5a-4f8c-86c3-22945d7a7605","proposals-and-approvals","Everything Chat builds, edits or removes leaves a card in the thread. Routine changes apply at once, others wait for your Apply, and an agent permission waits for a workspace owner or admin.","Proposals and approvals",{"_id":93,"group":12,"lastUpdated":12,"slug":94,"summary":95,"title":96},"f7277dae-4c8a-4f1b-aa5a-e0fb82007b9a","documents-and-web","Attach documents and images to a chat, keep files in the Library and mention them with @, let Chat search the web, and talk to Orbital from Telegram.","Documents, the web and your phone","chat",{"_id":99,"blurb":100,"order":101,"pages":102,"showDisclaimer":31,"slug":137,"title":106},"06f1d75d-66bd-4d17-8a54-9c532c52164b","Give an agent a task and the permissions to do it, then approve what it proposes.",40,[103,107,112,117,122,127,132],{"_id":104,"group":12,"lastUpdated":12,"slug":79,"summary":105,"title":106},"94a1f453-8bb9-410c-be0d-54a49f236620","What an Orbital agent is, how the Agents page is laid out, what an agent may do on its own, what it asks you for, and where its runs and results go.","Agents",{"_id":108,"group":12,"lastUpdated":12,"slug":109,"summary":110,"title":111},"0463f2ef-6d61-4381-be44-00d32ab6c025","set-up-an-agent","Create an agent with New agent, answer its short setup interview and apply the card, then adjust its model, instructions, permissions, tools and limits in Agent settings.","Set up an agent",{"_id":113,"group":12,"lastUpdated":12,"slug":114,"summary":115,"title":116},"2e5b03e2-70e7-4862-b848-ce875bb51118","permissions-and-approvals","What an agent may do on its own: the four permissions, the Deny, Ask, Auto and Always approve modes, who can change them, and how to answer the card an agent leaves while it waits.","Permissions and approvals",{"_id":118,"group":12,"lastUpdated":12,"slug":119,"summary":120,"title":121},"7af877fb-44cb-4a34-8863-45a7dfbdc3b9","tasks","Give an agent, or a channel, a goal it keeps working at run after run: what done looks like, an optional budget, what to do when an idea fails, and the task bar that shows where it stands.","Tasks",{"_id":123,"group":12,"lastUpdated":12,"slug":124,"summary":125,"title":126},"5987c9d5-3610-43ac-ba0f-7378e10fdebb","automations","Start an agent when nobody is here: on a schedule, with a task that repeats or starts on a market event, or when a monitor's signal fires.","Automations",{"_id":128,"group":12,"lastUpdated":12,"slug":129,"summary":130,"title":131},"1a36f6b4-3d37-4603-bbeb-af7619438db9","teams","Put several agents in one channel, address one with @name or all at once, give the team a task the lead splits into sub-tasks, and bind the sources an agent can search.","Channels and teams",{"_id":133,"group":12,"lastUpdated":12,"slug":134,"summary":135,"title":136},"8eda3de1-589c-416e-ab81-890a77d35938","strategy-work","What an agent does with strategies: reads them, writes and edits rule cards, branches, makes a version main, builds a program, runs backtests and controls a deployment, and what each act needs.","Agents and strategies","agents",{"_id":139,"blurb":140,"order":141,"pages":142,"showDisclaimer":31,"slug":181,"title":146},"5aa5558d-e712-42de-a7bc-291c35b0f0f7","Build pipelines from nodes, run them on a schedule or a trigger, and route their outputs.",50,[143,147,152,157,162,167,172,177],{"_id":144,"group":12,"lastUpdated":12,"slug":79,"summary":145,"title":146},"a482b682-605b-44ed-aa42-69f659d5dfc6","What a workflow is, how the Workflows list and the editor are laid out, what a version is, and what every run leaves behind.","Workflows",{"_id":148,"group":12,"lastUpdated":12,"slug":149,"summary":150,"title":151},"d99cd71a-f5e3-4ca3-b000-24635997eb71","build-a-workflow","Create a workflow in the editor: add nodes, wire their ports, set each node, declare an Output, save, run it and read the Console.","Build a workflow",{"_id":153,"group":12,"lastUpdated":12,"slug":154,"summary":155,"title":156},"1c515e36-c132-471c-81b2-4c2f36fbca66","nodes","Every node in the workflow editor's Nodes panel, section by section: what each one does and which ones appear only when an app is on.","Node reference",{"_id":158,"group":12,"lastUpdated":12,"slug":159,"summary":160,"title":161},"b3bdb58f-06c5-48cb-9120-b221ac49c9dc","schedules","Run a workflow at set times: calendar or exchange timing, run times in a time zone, the run policy, and the version every scheduled run uses.","Schedules",{"_id":163,"group":12,"lastUpdated":12,"slug":164,"summary":165,"title":166},"b06b41c9-3274-4f3a-8181-7f3b32306992","webhooks-and-signals","Start a workflow from another system's request or from a market signal. Set up an incoming webhook or a signal monitor under Automations, with its checks, duplicate handling and limits.","Webhooks and signals",{"_id":168,"group":12,"lastUpdated":12,"slug":169,"summary":170,"title":171},"82fe3c34-ff39-4ccd-b25c-f16fb8367707","outputs-alerts-and-actions","Where a workflow's result goes: the Output node, the Alert node, watchlist and metric writes, HTTP calls and child workflows.","Outputs, alerts and actions",{"_id":173,"group":12,"lastUpdated":12,"slug":174,"summary":175,"title":176},"f2894fdf-2918-48a5-b268-b743915648b3","runs-and-versions","What each run status means, how to read Run History, what the timeouts and On node failure do, and how versions and main decide what a run executes.","Runs and versions",{"_id":178,"group":12,"lastUpdated":12,"slug":56,"summary":179,"title":180},"cf91d9a3-1bc2-4dd0-97c6-0c7d1594b0c4","Symptom by symptom: a failed, paused, held or timed-out run, a scheduled run that did not start, a workflow marked Needs attention, a refused webhook, and a node whose app is off.","Troubleshooting workflows","workflows",{"_id":183,"blurb":184,"order":185,"pages":186,"showDisclaimer":69,"slug":251,"title":190},"a560aeb6-d8cc-4a14-95d9-5e526ea41a39","Rule-card and Rust program strategies, versions, runs, cost profiles and forward tests.",60,[187,191,196,201,206,212,217,222,227,232,237,242,247],{"_id":188,"group":12,"lastUpdated":12,"slug":79,"summary":189,"title":190},"4b8c23fd-eba6-42f1-b15b-ce459a4381ff","What a strategy, a version, a run and a forward test are, how the Strategies list, the strategy page and Compare are laid out, and where results live.","Backtesting",{"_id":192,"group":12,"lastUpdated":12,"slug":193,"summary":194,"title":195},"b3af053f-e2a8-41b2-9d7e-6e60ebf9ced8","rule-card-strategies","Every Strategy node in the workflow editor, field by field: the universe, indicators, rules, sizing, filters, the Program node, the Output and run parameters.","Rule-card strategies",{"_id":197,"group":12,"lastUpdated":12,"slug":198,"summary":199,"title":200},"b0104237-5e9c-4aa4-a152-a6dc852c3d11","program-strategies","Write a strategy as a Rust program: the editor, Build and Test, the on_bar function and the host interface, the Program node's settings, fuel and limits, and how Claude or an agent builds one.","Program strategies in Rust",{"_id":202,"group":12,"lastUpdated":12,"slug":203,"summary":204,"title":205},"7ba46c72-f20a-440b-b09f-0b1d4d4ee46b","run-a-backtest","Every field of the Run dialog, the estimate and its checks, the run quotas, progress, cancelling a run, and what a completed run records.","Run a backtest",{"_id":207,"group":208,"lastUpdated":12,"slug":209,"summary":210,"title":211},"5d61dd3c-078f-4660-92cd-944c832d2b14","Reference","reading-results","The strategy page after a run: the Overview chart and tiles, the Report, the Runs and Trades views, what each metric and column means, open positions and exit reasons.","Reading results",{"_id":213,"group":12,"lastUpdated":12,"slug":214,"summary":215,"title":216},"d25d0e47-82dc-4c2e-bb3d-696bfab45f67","cost-profiles","The four cost profiles and which ones a run can use, the default slippage and commission, what the report says about costs, and the costs no profile models.","Cost profiles",{"_id":218,"group":12,"lastUpdated":12,"slug":219,"summary":220,"title":221},"6eb719e7-b922-44c1-b35d-77fbdef86525","versions","When a backtest makes a version, how a run's settings make configurations and the trial count, how main starts and moves, and the change note a run can record.","Versions",{"_id":223,"group":12,"lastUpdated":12,"slug":224,"summary":225,"title":226},"3b865ec7-ba81-4362-a657-59d4d3626778","forward-testing","Freeze a completed run and re-run it after each settled session, on the same chart and trade list. Start one, read it, and see what updates cost and how a test stops.","Forward testing",{"_id":228,"group":12,"lastUpdated":12,"slug":229,"summary":230,"title":231},"4f8815e4-e430-450d-8227-be0d964fb9d0","backtest-vs-forward-test-vs-paper","How a backtest, a forward test and a paper deployment differ, what the simulation leaves out, and the fill, margin and benchmark rules every result rests on.","Backtest, forward test and paper",{"_id":233,"group":12,"lastUpdated":12,"slug":234,"summary":235,"title":236},"2758dd0d-1721-446b-9ab5-0dd2afde2015","when-trades-happen","The exact timing of every decision and fill: the bar a strategy decides on, the bar it fills on, what an early close changes, and why paper fills differ from the backtest.","When trades happen",{"_id":238,"group":12,"lastUpdated":12,"slug":239,"summary":240,"title":241},"a0babc17-2ec5-4084-82f4-efb94470c5b9","avoiding-overfitting","A fitted backtest looks like a found one. Six rules, three warning bands, and how Orbital's trial count, deflated Sharpe and forward testing show how much of a result is luck.","Avoiding overfitting",{"_id":243,"group":12,"lastUpdated":12,"slug":244,"summary":245,"title":246},"8c238472-649e-4da4-b2ea-e827e9e53f91","manage-and-delete-strategies","Find strategies in the list, the gallery and the map, compare up to 20 on one chart, delete one or many, restore from Trash within 30 days, and what a running deployment locks.","Manage and delete strategies",{"_id":248,"group":12,"lastUpdated":12,"slug":56,"summary":249,"title":250},"09f05732-280c-4011-a599-a26082071408","Symptom by symptom: a run that stays queued, a run limit, a refused estimate, a program that does not build, a workflow that is not a strategy, odd results and a stopped forward test.","Troubleshooting backtests","backtesting",{"_id":253,"blurb":254,"order":255,"pages":256,"showDisclaimer":69,"slug":291,"title":292},"d4dcce27-8d92-4d3a-9da1-28bec555d0dd","Deploy a strategy to a paper account, set its budget and limits, and approve or stop what it does.",70,[257,261,266,271,276,281,286],{"_id":258,"group":12,"lastUpdated":12,"slug":79,"summary":259,"title":260},"f293b0c4-a19a-494c-a6cc-89efeccd1db2","What the Trade app shows, how paper trading on Alpaca works, what a deployment is, and what the account menu can pause, cancel and close.","Trade on paper",{"_id":262,"group":12,"lastUpdated":12,"slug":263,"summary":264,"title":265},"2b4a4b1e-c74d-47b2-9ab7-3bbd73f1f053","connect-alpaca","Connect an Alpaca paper account in Settings so the Trade app can place paper orders with it, then check it, sync it, reconnect it or disconnect it.","Connect Alpaca",{"_id":267,"group":12,"lastUpdated":12,"slug":268,"summary":269,"title":270},"37265f93-3219-4741-82b5-70e7935b67b3","deploy-a-strategy","Deploy a strategy's main version to an Alpaca paper account from Trade: the deploy review, why a deploy is refused, the orders it sends, the first run, and what an edit after deploy changes.","Deploy a strategy",{"_id":272,"group":12,"lastUpdated":12,"slug":273,"summary":274,"title":275},"ec6ec9a2-5f4f-4d0f-ae1b-03bb2c23709c","capital-sleeves","Each deployment on a paper account has its own budget, caps on its entries and profit and loss from its own fills. Pausing or stopping one leaves the rest running.","Budgets and limits",{"_id":277,"group":12,"lastUpdated":12,"slug":278,"summary":279,"title":280},"776a4e31-c1bd-4116-8e6d-05fb2a1a23f1","approvals-and-permissions","The trading permission a deployment runs under, what a held trade is and how long it waits, where approvals arrive, and how an agent's own permissions apply.","Approvals and permissions",{"_id":282,"group":12,"lastUpdated":12,"slug":283,"summary":284,"title":285},"18554807-50f3-4d66-b962-41b31a9b8fb1","manage-a-deployment","Pause, resume or stop one strategy, change its limits without stopping it, read the running-version notice, and use the account menu to pause, cancel or close everything on an account.","Manage a deployment",{"_id":287,"group":208,"lastUpdated":12,"slug":288,"summary":289,"title":290},"d99f07a9-3024-4147-b79e-2ed6a6883384","pnl-orders-and-activity","What each figure in Trade means and where it comes from: the Overview tiles, a deployment's Today, Realized gain and Trend, the Trades card, and the Positions, Orders and Activity tabs.","P&L, orders and activity","trade","Trade",{"_id":294,"blurb":295,"order":296,"pages":297,"showDisclaimer":31,"slug":312,"title":301},"02328bc7-dd08-4a14-8ba7-7fb4387879f5","Keep lists of symbols with notes and flags, and feed them to workflows and dashboards.",80,[298,302,307],{"_id":299,"group":12,"lastUpdated":12,"slug":79,"summary":300,"title":301},"2cccb4c0-847c-47e1-969c-cb31a53b1a23","Named lists of symbols with prices, sections and flags. Build them on the Watchlists page or from Chat, and feed them to workflows and dashboards.","Watchlists",{"_id":303,"group":12,"lastUpdated":12,"slug":304,"summary":305,"title":306},"a0a54c9e-5d7f-47ed-9ea8-2f62398d5f0f","notes-and-flags","Flag rows in a list with one of seven colours, keep a research note and price target per symbol, link straight to a note, and save notes from Chat.","Notes and flags",{"_id":308,"group":12,"lastUpdated":12,"slug":309,"summary":310,"title":311},"eb1ebfbb-fbd7-47a6-b506-9b14be8a3206","use-with-workflows-and-dashboards","Feed a list's symbols into a workflow, let a workflow update a list, manage both from the Watchlists page, and work through a list on a dashboard.","Use watchlists in workflows and dashboards","watchlists",{"_id":314,"blurb":315,"order":316,"pages":317,"showDisclaimer":31,"slug":332,"title":321},"ec4f70ac-7aeb-45bb-9a3b-a0c58274183d","Live widgets from market data and workflow outputs, with templates to start from.",90,[318,322,327],{"_id":319,"group":12,"lastUpdated":12,"slug":79,"summary":320,"title":321},"8fb8ba02-5404-4f63-b757-14a034d8fb1a","A grid of widgets fed by market data and your workflows. Create one blank, with Chat or from a template, then pick symbols in the sidebar and run the workflows behind it.","Dashboards",{"_id":323,"group":12,"lastUpdated":12,"slug":324,"summary":325,"title":326},"6d17e6dc-f4ee-4593-9330-292e517ee7d8","widgets","A widget is one tile on a dashboard: a type plus the data it draws. Add one from the gallery, bind it to a workflow or market data, see where its numbers came from, or pin one from Chat.","Widgets",{"_id":328,"group":12,"lastUpdated":12,"slug":329,"summary":330,"title":331},"06b0ae5d-4d7c-4891-9230-75af49970141","templates","Install a ready-made dashboard or workflow from the template gallery, see what each template creates and schedules, and change or update it after install.","Templates","dashboards",{"_id":334,"blurb":335,"order":336,"pages":337,"showDisclaimer":31,"slug":348,"title":349},"93aa62fe-8bc0-40fe-8fb2-194ed287174d","What fires, where it is delivered, and how to read your inbox.",100,[338,343],{"_id":339,"group":12,"lastUpdated":12,"slug":340,"summary":341,"title":342},"37d1c72c-0cbc-416d-afc6-2f340f9c13c2","notifications","Your inbox for fired alerts, failed runs, finished backtests and anything waiting on your approval, and the settings that also send them to your email.","Notifications",{"_id":344,"group":12,"lastUpdated":12,"slug":345,"summary":346,"title":347},"5930c9ef-0f6b-4405-a67e-dac6de1fab76","alerts-from-workflows","Raise an alert with a workflow's Alert node, start the workflow from a market signal with Monitor a signal, and review each alert and where it went in Notifications.","Alerts from workflows","alerts-and-notifications","Alerts & notifications",{"_id":351,"blurb":352,"order":353,"pages":354,"showDisclaimer":31,"slug":395,"title":396},"a6576f5f-6b1d-4456-95a7-ea27f1ba41df","Members and roles, apps and plugins, API keys, credits and billing.",110,[355,360,365,370,375,380,385,390],{"_id":356,"group":12,"lastUpdated":12,"slug":357,"summary":358,"title":359},"06b06aaa-b51a-4c5b-9a62-3122b621af07","profile-and-sign-in","Open Settings, edit your profile, connect Google, change or set a password, see what each change signs out, and delete your account.","Profile and sign-in",{"_id":361,"group":12,"lastUpdated":12,"slug":362,"summary":363,"title":364},"8d8580c6-2e78-4ea6-a569-be33225d4434","members-and-roles","The workspace and project roles Orbital uses and what each allows, what an invitation gives you, how to delete a workspace, and how many workspaces you can create.","Members and roles",{"_id":366,"group":12,"lastUpdated":12,"slug":367,"summary":368,"title":369},"3dd6675b-126b-419e-b231-6380f425e666","apps","Install Watchlists, Backtesting and Trade for your workspace, choose the projects that use each one, and read the permissions Trade asks for.","Apps",{"_id":371,"group":12,"lastUpdated":12,"slug":372,"summary":373,"title":374},"6e25f5a8-a49b-4dd4-9f3e-f475d940bf43","plugins","Connect outside services to your workspace in Settings: a Google Drive folder that syncs into your Library, and an Alpaca paper account for Trade.","Plugins",{"_id":376,"group":12,"lastUpdated":12,"slug":377,"summary":378,"title":379},"d991056d-a99d-49ec-8ba0-06dbc9eed3d6","api-keys","Create a key under Settings → Developers, call Orbital's API from your own code, and see what each switch, limit and error means and how to revoke a key.","API keys",{"_id":381,"group":12,"lastUpdated":12,"slug":382,"summary":383,"title":384},"03ac79c0-cd4f-421d-a9ad-3eae5f260f86","credits-and-billing","What credits are and what spends them, how to read Billing and Usage, buy credits, set up auto-reload and a spend limit, and change or cancel your plan.","Credits and billing",{"_id":386,"group":12,"lastUpdated":12,"slug":387,"summary":388,"title":389},"5850c64b-293f-4c4d-8f8e-72c579ec59f9","ai-models","Set the model new chats start on, choose which models people can pick, and add your own provider keys so your provider bills calls once credits run out.","AI models",{"_id":391,"group":12,"lastUpdated":12,"slug":392,"summary":393,"title":394},"d0b5aec8-827b-44c7-802c-1f69cbf03533","workspace-settings","What General holds and who can change it, how to delete a workspace, where notification settings live, and how Trash keeps deleted items for 30 days.","Workspace settings","workspace-and-account","Workspace & account",{"footerLine":398,"searchSuggestions":399,"startHere":416,"toolPageBanner":421},"Orbital is software, not a broker or investment adviser. Results shown in Orbital are hypothetical and are not investment advice. Brokerage services are provided by the broker you connect.",[400,402,404,406,408,410,412,414],{"path":401,"title":25},"/docs/getting-started/your-first-strategy",{"path":403,"title":30},"/docs/getting-started/your-first-backtest",{"path":405,"title":43},"/docs/claude-and-chatgpt/connecting",{"path":407,"title":48},"/docs/claude-and-chatgpt/tools",{"path":409,"title":205},"/docs/claude-and-chatgpt/tools/run_backtest",{"path":411,"title":205},"/docs/backtesting/run-a-backtest",{"path":413,"title":270},"/docs/trade/deploy-a-strategy",{"path":415,"title":121},"/docs/agents/tasks",[417,419,420],{"path":418,"summary":14,"title":15},"/docs/getting-started/sign-up",{"path":403,"summary":29,"title":30},{"path":405,"summary":42,"title":43},"This connector creates and backtests strategies. It cannot place trades.",[423,430,436,441,446,451,456,462,467,472,477],{"_id":424,"group":425,"kind":426,"name":427,"oneLiner":428,"order":8,"title":429},"b21a67fe-7e4a-4e57-96d5-cecb99a98c2a","strategies","read","get_authoring_guide","Returns the rule-card vocabulary or the Program manual that Claude reads before it writes a strategy.","Read the authoring guide",{"_id":431,"group":425,"kind":432,"name":433,"oneLiner":434,"order":37,"title":435},"b03fa4eb-9ea1-4a4e-9795-f48d9b785354","write","create_strategy","Saves a new strategy from the minimal nodes-and-connections spec and enrols it for backtesting.","Create a strategy",{"_id":437,"group":425,"kind":432,"name":438,"oneLiner":439,"order":75,"title":440},"c57f922b-b2dd-47f9-93f5-aa2c256603c3","build_program","Compiles a Program node's Rust source and stamps the built module on the node as a new version.","Build a Program",{"_id":442,"group":425,"kind":426,"name":443,"oneLiner":444,"order":101,"title":445},"0f683d98-f149-4ac3-9875-f0cfb0013845","list_strategies","Lists the project's strategies with the latest backtest verdict of each.","List the project's strategies",{"_id":447,"group":425,"kind":426,"name":448,"oneLiner":449,"order":141,"title":450},"e5b108a5-f59c-4320-9686-5544f4ebd923","get_strategy","Reads one strategy: its versions, its recent runs, and the graph that update_strategy takes back.","Read one strategy",{"_id":452,"group":425,"kind":432,"name":453,"oneLiner":454,"order":185,"title":455},"1ed39cd7-fd66-407d-9468-ee35e1525564","update_strategy","Replaces a strategy's graph with the complete graph Claude sends, saved as a new version. Prior versions are kept.","Save a new version of a strategy",{"_id":457,"group":458,"kind":426,"name":459,"oneLiner":460,"order":8,"title":461},"d2618b28-a163-4047-a795-2f22befeaf8b","backtests","estimate_backtest","Prices a run in credits, checks data coverage and returns the confirm handoff run_backtest takes. Spends nothing.","Estimate a backtest",{"_id":463,"group":458,"kind":464,"name":465,"oneLiner":466,"order":37,"title":205},"b8112e94-6e85-4501-b02c-c24f1dfea0b7","run","run_backtest","Launches a backtest under a run id Claude mints, spends credits, and returns the run id at once.",{"_id":468,"group":458,"kind":426,"name":469,"oneLiner":470,"order":75,"title":471},"67e28b54-865e-4fd4-9e02-0f4bca0511e1","get_backtest","Returns a run's status and progress while it runs, and its compact verdict once it is done.","Read a backtest run",{"_id":473,"group":458,"kind":426,"name":474,"oneLiner":475,"order":101,"title":476},"a79c54a7-8ccc-4f6f-bf51-d1bc526e1cb3","get_backtest_trades","Returns a page of a finished run's trade log, newest first within the page, with the total.","Read a run's trade log",{"_id":478,"group":458,"kind":479,"name":480,"oneLiner":481,"order":141,"title":482},"74de9d43-0392-4815-ab76-976b1227e899","destructive","cancel_backtest","Cancels a queued or running backtest. A finished run is refused, and a cancelled run cannot be resumed.","Cancel a backtest",{"_id":192,"_updatedAt":484,"body":485,"category":2510,"disclaimer":2511,"lastUpdated":12,"relatedPages":2512,"slug":193,"summary":194,"title":195,"unlisted":31},"2026-11-04T09:46:37Z",[486,497,515,560,574,582,654,725,733,777,813,825,837,890,898,928,947,982,1010,1022,1071,1083,1094,1122,1130,1163,1187,1227,1263,1325,1378,1425,1437,1478,1513,1525,1533,1561,1595,1627,1639,1658,1684,1711,1719,1759,1771,1790,1809,1851,1866,1874,1902,1910,1921,1946,1958,1973,1981,2007,2014,2054,2062,2076,2173,2189,2197,2205,2213,2416,2439],{"_key":487,"_type":488,"children":489,"markDefs":495,"style":496},"3d30d2ed58d3","block",[490],{"_key":491,"_type":492,"marks":493,"text":494},"47485ce389fd","span",[],"What a Rules strategy is",[],"h2",{"_key":498,"_type":488,"children":499,"markDefs":513,"style":514},"33bb3db12f85",[500,504,509],{"_key":501,"_type":492,"marks":502,"text":503},"56fddadc2941",[],"A Rules strategy is a workflow built from Strategy nodes: indicators feed rules, the rules chain into sizing, and the chain ends at an ",{"_key":505,"_type":492,"marks":506,"text":508},"38931f20bdc9",[507],"strong","Output",{"_key":510,"_type":492,"marks":511,"text":512},"401075150f4e",[],".",[],"normal",{"_key":516,"_type":488,"children":517,"markDefs":553,"style":514},"794f5742bf7b",[518,522,526,530,534,538,541,545,550],{"_key":519,"_type":492,"marks":520,"text":521},"21734e9a0c22",[],"A graph with an ",{"_key":523,"_type":492,"marks":524,"text":525},"96a43319d83f",[507],"Entry Rule",{"_key":527,"_type":492,"marks":528,"text":529},"878a131bcd11",[]," or ",{"_key":531,"_type":492,"marks":532,"text":533},"64b77ac25bef",[507],"Program",{"_key":535,"_type":492,"marks":536,"text":537},"a1c037ea852a",[]," and an ",{"_key":539,"_type":492,"marks":540,"text":508},"54b4b9323007",[507],{"_key":542,"_type":492,"marks":543,"text":544},"a939672a793d",[]," declaring symbol, action and asOf is a strategy once saved; see ",{"_key":546,"_type":492,"marks":547,"text":549},"414ce09bf97b",[548],"e3c640a82910","Saving a strategy",{"_key":551,"_type":492,"marks":552,"text":512},"4b77a021bb74",[],[554],{"_key":548,"_type":555,"anchor":556,"href":557,"to":558},"internalLink","saving-a-strategy-enrols-it","/docs/backtesting/overview#saving-a-strategy-enrols-it",{"_ref":188,"_type":559,"_weak":69},"reference",{"_key":561,"_type":488,"children":562,"markDefs":571,"style":514},"2fa2e9fd01d5",[563,567],{"_key":564,"_type":492,"marks":565,"text":25},"96a09aeb8502",[566],"86895aa3bcc8",{"_key":568,"_type":492,"marks":569,"text":570},"b928eec051a3",[]," walks through a golden cross node by node.",[572],{"_key":566,"_type":555,"href":401,"to":573},{"_ref":22,"_type":559,"_weak":69},{"_key":575,"_type":488,"children":576,"markDefs":581,"style":496},"658ef7db70a0",[577],{"_key":578,"_type":492,"marks":579,"text":580},"5fc9e922d5e8",[],"Where the nodes are",[],{"_key":583,"_type":488,"children":584,"markDefs":649,"style":514},"4126e1394915",[585,589,593,597,602,606,609,613,617,621,625,629,633,636,639,642,646],{"_key":586,"_type":492,"marks":587,"text":588},"7243053acb63",[],"In the workflow editor's ",{"_key":590,"_type":492,"marks":591,"text":592},"1cf6e7915c1b",[507],"Nodes",{"_key":594,"_type":492,"marks":595,"text":596},"fc1bf93568f1",[]," panel, the ",{"_key":598,"_type":492,"marks":599,"text":601},"83cef94f0dc4",[600],"c12a5d55a0dc","rule cards",{"_key":603,"_type":492,"marks":604,"text":605},"2e2c92e91988",[]," and ",{"_key":607,"_type":492,"marks":608,"text":533},"3ed9b969bb77",[507],{"_key":610,"_type":492,"marks":611,"text":612},"8d82f239a600",[]," sit in the ",{"_key":614,"_type":492,"marks":615,"text":616},"a126b93505e2",[507],"Strategy",{"_key":618,"_type":492,"marks":619,"text":620},"342a4aa99c6a",[]," section, ",{"_key":622,"_type":492,"marks":623,"text":624},"5f40b3b3ec26",[507],"Input",{"_key":626,"_type":492,"marks":627,"text":628},"5624631af4a4",[]," under ",{"_key":630,"_type":492,"marks":631,"text":632},"4a62e81a9016",[507],"Data Sources",{"_key":634,"_type":492,"marks":635,"text":605},"9e85db9a1290",[],{"_key":637,"_type":492,"marks":638,"text":508},"54e2651ba1a3",[507],{"_key":640,"_type":492,"marks":641,"text":628},"1fc3ee341ac1",[],{"_key":643,"_type":492,"marks":644,"text":645},"26bd7fac11f9",[507],"Core",{"_key":647,"_type":492,"marks":648,"text":512},"1d1fbaf0ce30",[],[650],{"_key":600,"_type":555,"href":651,"to":652},"/docs/glossary#rule-cards",{"_ref":653,"_type":559,"_weak":69},"c9a58727-0321-4cc9-aeed-c71e815e1909",{"_key":655,"_type":488,"children":656,"markDefs":724,"style":514},"e99448cd849e",[657,661,664,668,672,675,679,683,686,690,693,697,700,703,706,709,713,716,720],{"_key":658,"_type":492,"marks":659,"text":660},"f3fc0e03ca1a",[],"Wire the chain ",{"_key":662,"_type":492,"marks":663,"text":525},"9e647e96c508",[507],{"_key":665,"_type":492,"marks":666,"text":667},"8efef4728aa8",[],", ",{"_key":669,"_type":492,"marks":670,"text":671},"0944ed8e89c5",[507],"Exit Rules",{"_key":673,"_type":492,"marks":674,"text":667},"b4a8f2c2ac85",[],{"_key":676,"_type":492,"marks":677,"text":678},"c55e5b4e8b0c",[507],"Position Sizing",{"_key":680,"_type":492,"marks":681,"text":682},"78edf762222e",[],", then ",{"_key":684,"_type":492,"marks":685,"text":508},"b34fcce37735",[507],{"_key":687,"_type":492,"marks":688,"text":689},"31f20eb230f7",[],". A backtest finds the ",{"_key":691,"_type":492,"marks":692,"text":624},"43091c4f54c4",[507],{"_key":694,"_type":492,"marks":695,"text":696},"450b4e7b669e",[]," and every rule, sizing and filter node by type. Only the first ",{"_key":698,"_type":492,"marks":699,"text":624},"39a30b43f61f",[507],{"_key":701,"_type":492,"marks":702,"text":667},"06b14618e314",[],{"_key":704,"_type":492,"marks":705,"text":678},"fb76e7734168",[507],{"_key":707,"_type":492,"marks":708,"text":667},"741c23cb30ee",[],{"_key":710,"_type":492,"marks":711,"text":712},"9ba1fd6b17ee",[507],"Regime Filter",{"_key":714,"_type":492,"marks":715,"text":529},"e979bb61513f",[],{"_key":717,"_type":492,"marks":718,"text":719},"93a4d766e1fc",[507],"Risk Guard",{"_key":721,"_type":492,"marks":722,"text":723},"0eeb39cad19f",[]," node applies, and the run names any it ignored.",[],{"_key":726,"_type":488,"children":727,"markDefs":732,"style":496},"4d0d6b41963d",[728],{"_key":729,"_type":492,"marks":730,"text":731},"3751be8a0aa9",[],"Universe: the Input node",[],{"_key":734,"_type":488,"children":735,"markDefs":772,"style":514},"bc8760dbd4ab",[736,740,743,747,751,755,759,763,768],{"_key":737,"_type":492,"marks":738,"text":739},"72c617ba22ab",[],"The ",{"_key":741,"_type":492,"marks":742,"text":624},"087c286b9e0c",[507],{"_key":744,"_type":492,"marks":745,"text":746},"44ea10290785",[]," node names what the strategy trades. Set ",{"_key":748,"_type":492,"marks":749,"text":750},"12186c1d8a4b",[507],"Source",{"_key":752,"_type":492,"marks":753,"text":754},"0c0ce1029ab0",[]," to ",{"_key":756,"_type":492,"marks":757,"text":758},"5438e0c11c4a",[507],"Universe",{"_key":760,"_type":492,"marks":761,"text":762},"b62a29a857b4",[]," (a screener candidate pool). A ",{"_key":764,"_type":492,"marks":765,"text":767},"70e50e15c05b",[766],"24dd890ddac4","universe",{"_key":769,"_type":492,"marks":770,"text":771},"9d714c1ae9bf",[]," holds at most 500 symbols.",[773],{"_key":766,"_type":555,"href":774,"to":775},"/docs/glossary#universe",{"_ref":776,"_type":559,"_weak":69},"88a781ac-af76-4dc7-bb4c-28a0775861e5",{"_key":778,"_type":488,"children":779,"level":810,"listItem":811,"markDefs":812,"style":514},"fab64ea46ca3",[780,784,788,792,795,799,802,806],{"_key":781,"_type":492,"marks":782,"text":783},"081bf938c66d",[507],"Universe preset",{"_key":785,"_type":492,"marks":786,"text":787},"e5444f4ffebc",[],": the list to trade. Two S&P 500 lists: the full index slice of 499 names, which is the default, and the top 129 by market cap, marked faster. Then ",{"_key":789,"_type":492,"marks":790,"text":791},"b0840441f53b",[507],"NASDAQ 100",{"_key":793,"_type":492,"marks":794,"text":667},"476be17c4771",[],{"_key":796,"_type":492,"marks":797,"text":798},"2d47cec6e276",[507],"Dow 30",{"_key":800,"_type":492,"marks":801,"text":605},"1226d6891338",[],{"_key":803,"_type":492,"marks":804,"text":805},"56e5a3df40cc",[507],"Custom list (use field below)",{"_key":807,"_type":492,"marks":808,"text":809},"a37f13b75c45",[],". Orbital maintains the lists by hand, so they can lag recent index changes.",1,"bullet",[],{"_key":814,"_type":488,"children":815,"level":810,"listItem":811,"markDefs":824,"style":514},"5a75702de653",[816,820],{"_key":817,"_type":492,"marks":818,"text":819},"fa09b64c7984",[507],"Custom tickers (preset = \"Custom\")",{"_key":821,"_type":492,"marks":822,"text":823},"09e3c5b85284",[],": your own tickers, separated by commas, read only with the custom list.",[],{"_key":826,"_type":488,"children":827,"level":810,"listItem":811,"markDefs":836,"style":514},"5485cbe317c1",[828,832],{"_key":829,"_type":492,"marks":830,"text":831},"e00bf2f8cfe2",[507],"Exclude tickers already on watchlist (optional)",{"_key":833,"_type":492,"marks":834,"text":835},"6049af8fb43d",[],": a backtest ignores it and trades every ticker in the preset or custom list.",[],{"_key":838,"_type":488,"children":839,"markDefs":885,"style":514},"5e6b4c42322b",[840,843,847,851,854,858,861,865,869,873,877,882],{"_key":841,"_type":492,"marks":842,"text":750},"02c13c04f90a",[507],{"_key":844,"_type":492,"marks":845,"text":846},"2a66a5e6e4e3",[]," can instead be ",{"_key":848,"_type":492,"marks":849,"text":850},"7e7b7251f425",[507],"Asset",{"_key":852,"_type":492,"marks":853,"text":667},"40810bb76636",[],{"_key":855,"_type":492,"marks":856,"text":857},"0bc63b172bc4",[507],"Watchlist",{"_key":859,"_type":492,"marks":860,"text":529},"a4d384dc7ea0",[],{"_key":862,"_type":492,"marks":863,"text":864},"55ab4e245d6a",[507],"Book",{"_key":866,"_type":492,"marks":867,"text":868},"920f09f3b389",[],", and a backtest ignores ",{"_key":870,"_type":492,"marks":871,"text":872},"6fc6fa54fb50",[507],"Subject source",{"_key":874,"_type":492,"marks":875,"text":876},"23fa66bc9e87",[],"; see ",{"_key":878,"_type":492,"marks":879,"text":881},"e199458cd828",[880],"7783233bc821","Set what a run works on",{"_key":883,"_type":492,"marks":884,"text":512},"d64a918b8280",[],[886],{"_key":880,"_type":555,"anchor":887,"href":888,"to":889},"set-what-a-run-works-on","/docs/workflows/build-a-workflow#set-what-a-run-works-on",{"_ref":148,"_type":559,"_weak":69},{"_key":891,"_type":488,"children":892,"markDefs":897,"style":496},"33fb30be4a27",[893],{"_key":894,"_type":492,"marks":895,"text":896},"996dd020eb39",[],"Indicator",[],{"_key":899,"_type":488,"children":900,"markDefs":927,"style":514},"3948c04b9bda",[901,905,908,912,916,920,923],{"_key":902,"_type":492,"marks":903,"text":904},"fd84899129bc",[],"An ",{"_key":906,"_type":492,"marks":907,"text":896},"d21ce1e13111",[507],{"_key":909,"_type":492,"marks":910,"text":911},"8845ad77d600",[]," node computes one series over the bars you pick. Wire it into the rules that read it, or give it a ",{"_key":913,"_type":492,"marks":914,"text":915},"60b94f1d5f1c",[507],"Reference name",{"_key":917,"_type":492,"marks":918,"text":919},"7423d2110747",[]," and name it in a condition. An ",{"_key":921,"_type":492,"marks":922,"text":896},"f4b8fbe82f3a",[507],{"_key":924,"_type":492,"marks":925,"text":926},"b2955da1be1d",[]," no rule reads is not computed, and the run says so.",[],{"_key":929,"_type":488,"children":930,"level":810,"listItem":811,"markDefs":946,"style":514},"8410eb513ae3",[931,934,938,942],{"_key":932,"_type":492,"marks":933,"text":896},"38deb7d0bae3",[507],{"_key":935,"_type":492,"marks":936,"text":937},"44f12463d8ed",[],": the kind of series, ",{"_key":939,"_type":492,"marks":940,"text":941},"7852ff8da56d",[507],"SMA",{"_key":943,"_type":492,"marks":944,"text":945},"80ea0a510d3f",[]," by default:",[],{"_key":948,"_type":488,"children":949,"level":980,"listItem":811,"markDefs":981,"style":514},"3d2b90aca99f",[950,953,956,960,964,968,972,976],{"_key":951,"_type":492,"marks":952,"text":941},"76d1942fc6f8",[507],{"_key":954,"_type":492,"marks":955,"text":667},"4f5369f659ec",[],{"_key":957,"_type":492,"marks":958,"text":959},"36e081e4ce51",[507],"EMA",{"_key":961,"_type":492,"marks":962,"text":963},"0882d58b4251",[]," (seeded with an SMA), ",{"_key":965,"_type":492,"marks":966,"text":967},"db443d442156",[507],"RSI",{"_key":969,"_type":492,"marks":970,"text":971},"3a328474568c",[]," (with Wilder smoothing) and ",{"_key":973,"_type":492,"marks":974,"text":975},"ed36fa834876",[507],"ATR",{"_key":977,"_type":492,"marks":978,"text":979},"44de00e360f5",[],", on any bars.",2,[],{"_key":983,"_type":488,"children":984,"level":980,"listItem":811,"markDefs":1009,"style":514},"413527010a62",[985,989,993,997,1001,1005],{"_key":986,"_type":492,"marks":987,"text":988},"dce9d1f47e70",[507],"Avg volume",{"_key":990,"_type":492,"marks":991,"text":992},"307efa79eefe",[]," (mean shares traded), ",{"_key":994,"_type":492,"marks":995,"text":996},"15cf1edd2660",[507],"Rel volume",{"_key":998,"_type":492,"marks":999,"text":1000},"2dd5e8d7b218",[]," (today's shares divided by the average) and ",{"_key":1002,"_type":492,"marks":1003,"text":1004},"52f50b026da6",[507],"Return over N bars",{"_key":1006,"_type":492,"marks":1007,"text":1008},"f40e33d765de",[]," (percent change over the period), on daily bars only.",[],{"_key":1011,"_type":488,"children":1012,"level":980,"listItem":811,"markDefs":1021,"style":514},"e4e50904d059",[1013,1017],{"_key":1014,"_type":492,"marks":1015,"text":1016},"cd5df40253bd",[507],"Rel vol at time",{"_key":1018,"_type":492,"marks":1019,"text":1020},"1081b5ec208e",[],": relative volume against this minute's own baseline, on 1-minute bars only. The period is fixed at 20 sessions.",[],{"_key":1023,"_type":488,"children":1024,"level":810,"listItem":811,"markDefs":1070,"style":514},"e952a1332ddc",[1025,1029,1033,1037,1041,1045,1048,1052,1055,1059,1062,1066],{"_key":1026,"_type":492,"marks":1027,"text":1028},"ca4da8e1d2f4",[507],"Timeframe",{"_key":1030,"_type":492,"marks":1031,"text":1032},"d0a269a396eb",[],": the bars it reads. ",{"_key":1034,"_type":492,"marks":1035,"text":1036},"41fb5e509cf2",[507],"Daily bars",{"_key":1038,"_type":492,"marks":1039,"text":1040},"ca081bed1d21",[]," is the default. ",{"_key":1042,"_type":492,"marks":1043,"text":1044},"f7e61e0c3126",[507],"Hourly bars",{"_key":1046,"_type":492,"marks":1047,"text":667},"1530a24030e8",[],{"_key":1049,"_type":492,"marks":1050,"text":1051},"5b1e0affdd9e",[507],"3-minute bars",{"_key":1053,"_type":492,"marks":1054,"text":667},"98ae4de633d6",[],{"_key":1056,"_type":492,"marks":1057,"text":1058},"803edc7f77fb",[507],"2-minute bars",{"_key":1060,"_type":492,"marks":1061,"text":605},"65137721e71e",[],{"_key":1063,"_type":492,"marks":1064,"text":1065},"3b52c96d9a9f",[507],"1-minute bars",{"_key":1067,"_type":492,"marks":1068,"text":1069},"86cbb25fd247",[]," are intraday.",[],{"_key":1072,"_type":488,"children":1073,"level":810,"listItem":811,"markDefs":1082,"style":514},"cb88196468e3",[1074,1078],{"_key":1075,"_type":492,"marks":1076,"text":1077},"0e8d99bedf84",[507],"Period (bars)",{"_key":1079,"_type":492,"marks":1080,"text":1081},"3539945c14e6",[],": the lookback window, in bars of the chosen timeframe, from 1 to 500. The default is 20.",[],{"_key":1084,"_type":488,"children":1085,"level":810,"listItem":811,"markDefs":1093,"style":514},"6de6df1dfc17",[1086,1089],{"_key":1087,"_type":492,"marks":1088,"text":915},"66670394731f",[507],{"_key":1090,"_type":492,"marks":1091,"text":1092},"3f69ff9a3ed8",[],": the handle a condition uses, such as rsi14: a letter, then letters, numbers, underscores and hyphens, up to 32 characters. Leave it blank if the indicator is only wired.",[],{"_key":1095,"_type":488,"children":1096,"markDefs":1117,"style":514},"ccc54a422384",[1097,1101,1106,1110,1113],{"_key":1098,"_type":492,"marks":1099,"text":1100},"4b853b19f3e5",[],"An intraday ",{"_key":1102,"_type":492,"marks":1103,"text":1105},"99e533767f53",[1104],"526e81c7f1fd","timeframe",{"_key":1107,"_type":492,"marks":1108,"text":1109},"fc22966c1055",[]," on any ",{"_key":1111,"_type":492,"marks":1112,"text":896},"f54dde3f1993",[507],{"_key":1114,"_type":492,"marks":1115,"text":1116},"154295f6dea5",[]," makes the whole strategy intraday. It then backtests on the minute tape and cannot be deployed to alerts.",[1118],{"_key":1104,"_type":555,"href":1119,"to":1120},"/docs/glossary#timeframe",{"_ref":1121,"_type":559,"_weak":69},"5d114414-46a8-4167-b0d7-34a0f96b6ed1",{"_key":1123,"_type":488,"children":1124,"markDefs":1129,"style":496},"dab66e6b9178",[1125],{"_key":1126,"_type":492,"marks":1127,"text":1128},"add744bda603",[],"The Entry Rule node",[],{"_key":1131,"_type":488,"children":1132,"markDefs":1158,"style":514},"46a86920425f",[1133,1136,1139,1143,1147,1151,1154],{"_key":1134,"_type":492,"marks":1135,"text":904},"9caf5c580910",[],{"_key":1137,"_type":492,"marks":1138,"text":525},"a452783d5243",[507],{"_key":1140,"_type":492,"marks":1141,"text":1142},"110e69fec349",[]," opens a position when its conditions hold at a bar close, and by default the order fills at the next bar's open; see ",{"_key":1144,"_type":492,"marks":1145,"text":236},"977f2da022df",[1146],"87ec8e1af0b4",{"_key":1148,"_type":492,"marks":1149,"text":1150},"f8667e1888b1",[],". Several ",{"_key":1152,"_type":492,"marks":1153,"text":525},"1ac19aa84b77",[507],{"_key":1155,"_type":492,"marks":1156,"text":1157},"381bee40b066",[]," nodes are alternatives: any one of them can open a position.",[1159],{"_key":1146,"_type":555,"anchor":1160,"href":1161,"to":1162},"one-bar-of-delay","/docs/backtesting/when-trades-happen#one-bar-of-delay",{"_ref":233,"_type":559,"_weak":69},{"_key":1164,"_type":488,"children":1165,"markDefs":1186,"style":514},"e86777dd892c",[1166,1170,1174,1178,1182],{"_key":1167,"_type":492,"marks":1168,"text":1169},"c44dd4804dea",[],"Wire ",{"_key":1171,"_type":492,"marks":1172,"text":1173},"40c2df0276ce",[507],"Indicator A",{"_key":1175,"_type":492,"marks":1176,"text":1177},"a662ce3069c1",[]," when the first value is the wired indicator, and ",{"_key":1179,"_type":492,"marks":1180,"text":1181},"27cf92c55a3c",[507],"Indicator B",{"_key":1183,"_type":492,"marks":1184,"text":1185},"be3737b28bc0",[]," when the rule compares against a second indicator.",[],{"_key":1188,"_type":488,"children":1189,"level":810,"listItem":811,"markDefs":1223,"style":514},"ba5dd6bf3474",[1190,1194,1198,1202,1206,1211,1215,1219],{"_key":1191,"_type":492,"marks":1192,"text":1193},"3574aabe31b1",[507],"Rule name",{"_key":1195,"_type":492,"marks":1196,"text":1197},"c4fbb90fefc5",[],": names the rule. Each trade records it, and the connector's ",{"_key":1199,"_type":492,"marks":1200,"text":474},"4ebc6e5a3bc2",[1201],"149f00853d70",{"_key":1203,"_type":492,"marks":1204,"text":1205},"aae8e3328e05",[]," returns it as ",{"_key":1207,"_type":492,"marks":1208,"text":1210},"04935bb93adc",[1209],"code","source",{"_key":1212,"_type":492,"marks":1213,"text":1214},"1a660f6a92ab",[],", but the ",{"_key":1216,"_type":492,"marks":1217,"text":1218},"03e3a85338e6",[507],"Trades",{"_key":1220,"_type":492,"marks":1221,"text":1222},"add15f2e32f0",[]," tab has no column for it.",[1224],{"_key":1201,"_type":555,"href":1225,"to":1226},"/docs/claude-and-chatgpt/tools/get_backtest_trades",{"_ref":473,"_type":559,"_weak":69},{"_key":1228,"_type":488,"children":1229,"level":810,"listItem":811,"markDefs":1262,"style":514},"4dc54cbf8dfa",[1230,1234,1238,1242,1246,1250,1254,1258],{"_key":1231,"_type":492,"marks":1232,"text":1233},"11c55c6c2a82",[507],"Direction",{"_key":1235,"_type":492,"marks":1236,"text":1237},"26aebd3352e3",[],": ",{"_key":1239,"_type":492,"marks":1240,"text":1241},"0a7043226ed1",[507],"Buy (long)",{"_key":1243,"_type":492,"marks":1244,"text":1245},"95019a133e44",[],", the default, or ",{"_key":1247,"_type":492,"marks":1248,"text":1249},"3cac020ad9c1",[507],"Sell short",{"_key":1251,"_type":492,"marks":1252,"text":1253},"e098f290f7a5",[],". A strategy that sells short needs ",{"_key":1255,"_type":492,"marks":1256,"text":1257},"10c32a01cfb8",[507],"Margin account",{"_key":1259,"_type":492,"marks":1260,"text":1261},"0b1ed4a3067e",[]," on in the Run dialog, or the run is refused.",[],{"_key":1264,"_type":488,"children":1265,"level":810,"listItem":811,"markDefs":1324,"style":514},"663f4ff2fa79",[1266,1270,1274,1278,1281,1285,1288,1292,1296,1300,1303,1307,1310,1314,1317,1321],{"_key":1267,"_type":492,"marks":1268,"text":1269},"1fb1c8c6375b",[507],"First value",{"_key":1271,"_type":492,"marks":1272,"text":1273},"76df8ea87885",[],": what the condition tests: ",{"_key":1275,"_type":492,"marks":1276,"text":1277},"0af8b7fd4e61",[507],"The wired indicator (input A)",{"_key":1279,"_type":492,"marks":1280,"text":667},"5af62714433e",[],{"_key":1282,"_type":492,"marks":1283,"text":1284},"8d5253a9a010",[507],"The price",{"_key":1286,"_type":492,"marks":1287,"text":529},"cf64ff5c9557",[],{"_key":1289,"_type":492,"marks":1290,"text":1291},"b80803b9f341",[507],"A fixed value",{"_key":1293,"_type":492,"marks":1294,"text":1295},"3fb0e4b7be3c",[],". The price adds a choice of ",{"_key":1297,"_type":492,"marks":1298,"text":1299},"9a4b6a519453",[507],"Close",{"_key":1301,"_type":492,"marks":1302,"text":667},"1042b2d5be52",[],{"_key":1304,"_type":492,"marks":1305,"text":1306},"b38cefdf5ca4",[507],"Open",{"_key":1308,"_type":492,"marks":1309,"text":667},"26bae044fc34",[],{"_key":1311,"_type":492,"marks":1312,"text":1313},"a3a8d5de7d27",[507],"High",{"_key":1315,"_type":492,"marks":1316,"text":529},"448175ea3cfd",[],{"_key":1318,"_type":492,"marks":1319,"text":1320},"c1649d113a3d",[507],"Low",{"_key":1322,"_type":492,"marks":1323,"text":512},"6c58e0b49e3b",[],[],{"_key":1326,"_type":488,"children":1327,"level":810,"listItem":811,"markDefs":1377,"style":514},"8d91de0c6d3c",[1328,1332,1335,1339,1342,1346,1349,1353,1356,1360,1363,1367,1370,1374],{"_key":1329,"_type":492,"marks":1330,"text":1331},"976d66192c0a",[507],"Fires when the first value…",{"_key":1333,"_type":492,"marks":1334,"text":1237},"6cecbfae0e3b",[],{"_key":1336,"_type":492,"marks":1337,"text":1338},"5c10ebd51d51",[507],"Crosses above",{"_key":1340,"_type":492,"marks":1341,"text":667},"8186452d81bb",[],{"_key":1343,"_type":492,"marks":1344,"text":1345},"654643648a08",[507],"Crosses below",{"_key":1347,"_type":492,"marks":1348,"text":667},"dac971f3b5aa",[],{"_key":1350,"_type":492,"marks":1351,"text":1352},"763c267b787c",[507],"Is greater than",{"_key":1354,"_type":492,"marks":1355,"text":667},"25ae0fbeafb6",[],{"_key":1357,"_type":492,"marks":1358,"text":1359},"10db81aacb73",[507],"Is at or above",{"_key":1361,"_type":492,"marks":1362,"text":667},"b81571bd8a14",[],{"_key":1364,"_type":492,"marks":1365,"text":1366},"e10a6c39794a",[507],"Is less than",{"_key":1368,"_type":492,"marks":1369,"text":529},"62e4df3636ce",[],{"_key":1371,"_type":492,"marks":1372,"text":1373},"8db508402692",[507],"Is at or below",{"_key":1375,"_type":492,"marks":1376,"text":512},"3d98607fc9ef",[],[],{"_key":1379,"_type":488,"children":1380,"level":810,"listItem":811,"markDefs":1424,"style":514},"d31a2f22965b",[1381,1385,1388,1392,1395,1398,1401,1404,1408,1412,1416,1420],{"_key":1382,"_type":492,"marks":1383,"text":1384},"9c27a2ccd32e",[507],"Compare against",{"_key":1386,"_type":492,"marks":1387,"text":1237},"d060d7a998a4",[],{"_key":1389,"_type":492,"marks":1390,"text":1391},"3fe459c80097",[507],"The second indicator (input B)",{"_key":1393,"_type":492,"marks":1394,"text":667},"ce38d6716f58",[],{"_key":1396,"_type":492,"marks":1397,"text":1284},"d293f9572d38",[507],{"_key":1399,"_type":492,"marks":1400,"text":529},"5d64193cab4b",[],{"_key":1402,"_type":492,"marks":1403,"text":1291},"0561c26ef31d",[507],{"_key":1405,"_type":492,"marks":1406,"text":1407},"0e98f8f49e83",[],". The price adds a ",{"_key":1409,"_type":492,"marks":1410,"text":1411},"35d9c71ca1bc",[507],"Price field",{"_key":1413,"_type":492,"marks":1414,"text":1415},"42a4da3d75e9",[],"; a fixed value adds ",{"_key":1417,"_type":492,"marks":1418,"text":1419},"986deaa22acf",[507],"Value",{"_key":1421,"_type":492,"marks":1422,"text":1423},"6a9bc6fdfd51",[],", the threshold, such as 30 for an RSI floor.",[],{"_key":1426,"_type":488,"children":1427,"level":810,"listItem":811,"markDefs":1436,"style":514},"f18b2d0e93fa",[1428,1432],{"_key":1429,"_type":492,"marks":1430,"text":1431},"010f347b08b7",[507],"Fires when this is NOT true",{"_key":1433,"_type":492,"marks":1434,"text":1435},"1b76bcc7a65a",[],": wraps the condition in a NOT. Not above the 200-day differs from below it on a bar sitting on the line, and on any bar the indicator has no value for.",[],{"_key":1438,"_type":488,"children":1439,"level":810,"listItem":811,"markDefs":1477,"style":514},"397ed84f5019",[1440,1444,1448,1452,1455,1459,1463,1467,1471,1474],{"_key":1441,"_type":492,"marks":1442,"text":1443},"abc145d58684",[507],"The conditions below…",{"_key":1445,"_type":492,"marks":1446,"text":1447},"1a18ad81e3d6",[],": how the rule joins all its conditions, the first one included: ",{"_key":1449,"_type":492,"marks":1450,"text":1451},"e748f4dc3218",[507],"ALL of them must hold",{"_key":1453,"_type":492,"marks":1454,"text":1245},"1869499047a3",[],{"_key":1456,"_type":492,"marks":1457,"text":1458},"aacaf33a2bf1",[507],"ANY one of them is enough",{"_key":1460,"_type":492,"marks":1461,"text":1462},"88309c133871",[],". ",{"_key":1464,"_type":492,"marks":1465,"text":1466},"35c80ecab2c5",[507],"ANY",{"_key":1468,"_type":492,"marks":1469,"text":1470},"88a030dc7d33",[]," keeps the alternatives on one node under one ",{"_key":1472,"_type":492,"marks":1473,"text":1193},"4792d3e2a08a",[507],{"_key":1475,"_type":492,"marks":1476,"text":512},"913c1fed3081",[],[],{"_key":1479,"_type":488,"children":1480,"level":810,"listItem":811,"markDefs":1512,"style":514},"3f413dc59e2d",[1481,1485,1489,1493,1497,1501,1505,1508],{"_key":1482,"_type":492,"marks":1483,"text":1484},"3e2070e61323",[507],"And also…",{"_key":1486,"_type":492,"marks":1487,"text":1488},"9da329ca9651",[],": extra conditions. ",{"_key":1490,"_type":492,"marks":1491,"text":1492},"c12d8cdd0d6b",[507],"Add condition",{"_key":1494,"_type":492,"marks":1495,"text":1496},"47c4ef6c6008",[]," adds a row: a ",{"_key":1498,"_type":492,"marks":1499,"text":1500},"7b67e3d4813e",[507],"NOT",{"_key":1502,"_type":492,"marks":1503,"text":1504},"a08fdd7722f1",[]," toggle, what to test (an indicator by its ",{"_key":1506,"_type":492,"marks":1507,"text":915},"a11dc408b026",[507],{"_key":1509,"_type":492,"marks":1510,"text":1511},"b4d744914cd7",[],", the price or a fixed number), a trigger and what to compare against. A row is saved once it is complete.",[],{"_key":1514,"_type":488,"children":1515,"markDefs":1524,"style":514},"cb02ca83565a",[1516,1520],{"_key":1517,"_type":492,"marks":1518,"text":1519},"1f83367cc876",[],"The panel reads the rule back as a sentence, such as ",{"_key":1521,"_type":492,"marks":1522,"text":1523},"661fe933bfc0",[507],"Buys when RSI(14) crosses below 30.",[],{"_key":1526,"_type":488,"children":1527,"markDefs":1532,"style":496},"c00d9223f7cc",[1528],{"_key":1529,"_type":492,"marks":1530,"text":1531},"ef4662f3fb68",[],"The Exit Rules node",[],{"_key":1534,"_type":488,"children":1535,"markDefs":1560,"style":514},"eccb8c777c5c",[1536,1539,1542,1546,1549,1553,1556],{"_key":1537,"_type":492,"marks":1538,"text":904},"5f58b1977794",[],{"_key":1540,"_type":492,"marks":1541,"text":671},"f174c180d277",[507],{"_key":1543,"_type":492,"marks":1544,"text":1545},"b96b83503325",[]," node says how positions close, with any combination of the exits below. Several ",{"_key":1547,"_type":492,"marks":1548,"text":671},"4d6fd95170bf",[507],{"_key":1550,"_type":492,"marks":1551,"text":1552},"d7a8338f8534",[]," nodes are alternatives: any one of them closes the position. A signal exit needs its indicators wired as an ",{"_key":1554,"_type":492,"marks":1555,"text":525},"06d55d69f2e9",[507],{"_key":1557,"_type":492,"marks":1558,"text":1559},"730e2699682c",[]," does; a stop, target or time stop needs none.",[],{"_key":1562,"_type":488,"children":1563,"level":810,"listItem":811,"markDefs":1594,"style":514},"3378331ad073",[1564,1568,1572,1576,1580,1584,1588,1591],{"_key":1565,"_type":492,"marks":1566,"text":1567},"c16836ea6189",[507],"Signal exit",{"_key":1569,"_type":492,"marks":1570,"text":1571},"776be0698a32",[]," (the label goes on: ",{"_key":1573,"_type":492,"marks":1574,"text":1575},"f9a1498815b4",[507],"fires when the first value…",{"_key":1577,"_type":492,"marks":1578,"text":1579},"ad7fe33ec1d9",[],"): ",{"_key":1581,"_type":492,"marks":1582,"text":1583},"80042a40f392",[507],"No signal exit",{"_key":1585,"_type":492,"marks":1586,"text":1587},"614556faf90d",[]," is the default. Its triggers and its other fields work as on the ",{"_key":1589,"_type":492,"marks":1590,"text":525},"8d02450bf013",[507],{"_key":1592,"_type":492,"marks":1593,"text":512},"8e0ad236e248",[],[],{"_key":1596,"_type":488,"children":1597,"level":810,"listItem":811,"markDefs":1626,"style":514},"3abc3df2868e",[1598,1602,1605,1609,1612,1616,1619,1623],{"_key":1599,"_type":492,"marks":1600,"text":1601},"0c74661be587",[507],"Stop loss",{"_key":1603,"_type":492,"marks":1604,"text":1237},"0381437df350",[],{"_key":1606,"_type":492,"marks":1607,"text":1608},"702746c209b6",[507],"No stop loss",{"_key":1610,"_type":492,"marks":1611,"text":667},"15cf17f160c9",[],{"_key":1613,"_type":492,"marks":1614,"text":1615},"7d19cd673473",[507],"Percent below entry",{"_key":1617,"_type":492,"marks":1618,"text":529},"693812d5bca5",[],{"_key":1620,"_type":492,"marks":1621,"text":1622},"8c0de606f5a5",[507],"ATR multiple below entry",{"_key":1624,"_type":492,"marks":1625,"text":512},"cebf68992867",[],[],{"_key":1628,"_type":488,"children":1629,"level":810,"listItem":811,"markDefs":1638,"style":514},"fad09296c8f4",[1630,1634],{"_key":1631,"_type":492,"marks":1632,"text":1633},"04245bf1ce38",[507],"Stop distance (%)",{"_key":1635,"_type":492,"marks":1636,"text":1637},"32fef18c02ac",[],": with a percent stop, 10 by default.",[],{"_key":1640,"_type":488,"children":1641,"level":810,"listItem":811,"markDefs":1657,"style":514},"7a09b1e55e51",[1642,1646,1649,1653],{"_key":1643,"_type":492,"marks":1644,"text":1645},"8190328f563b",[507],"ATR multiple",{"_key":1647,"_type":492,"marks":1648,"text":605},"fef05bf332f5",[],{"_key":1650,"_type":492,"marks":1651,"text":1652},"1cb38060f040",[507],"ATR period (bars)",{"_key":1654,"_type":492,"marks":1655,"text":1656},"76481ff77769",[],": with an ATR stop, 2 and 14 by default. The distance is fixed at entry and does not widen as volatility moves.",[],{"_key":1659,"_type":488,"children":1660,"level":810,"listItem":811,"markDefs":1683,"style":514},"51e08b97e76e",[1661,1665,1668,1672,1675,1679],{"_key":1662,"_type":492,"marks":1663,"text":1664},"76ac40e1519b",[507],"Profit target (%)",{"_key":1666,"_type":492,"marks":1667,"text":667},"ad833ad17f37",[],{"_key":1669,"_type":492,"marks":1670,"text":1671},"e098e438b11b",[507],"Trailing stop (%)",{"_key":1673,"_type":492,"marks":1674,"text":605},"9d6f49aea0f0",[],{"_key":1676,"_type":492,"marks":1677,"text":1678},"914a31f587f8",[507],"Time stop (bars)",{"_key":1680,"_type":492,"marks":1681,"text":1682},"17d867589fe8",[],": blank for none. A trailing stop trails the best price seen; a time stop exits at the open after this many completed bars.",[],{"_key":1685,"_type":488,"children":1686,"markDefs":1706,"style":514},"d4eed2a29cba",[1687,1691,1694,1698,1702],{"_key":1688,"_type":492,"marks":1689,"text":1690},"cea4f5ff96af",[],"A strategy has one stop loss, one profit target, one trailing stop and one time stop. Two ",{"_key":1692,"_type":492,"marks":1693,"text":671},"77662913033a",[507],{"_key":1695,"_type":492,"marks":1696,"text":1697},"37a4e8a3ef2c",[]," nodes that both set one are refused; keep it on one node. A strategy with no exits at all keeps every position open to the end of the run, and the run warns you. ",{"_key":1699,"_type":492,"marks":1700,"text":236},"a38597c262d1",[1701],"14b26fc94226",{"_key":1703,"_type":492,"marks":1704,"text":1705},"4dcd73eafcba",[]," covers how stops fill.",[1707],{"_key":1701,"_type":555,"anchor":1708,"href":1709,"to":1710},"daily-strategies","/docs/backtesting/when-trades-happen#daily-strategies",{"_ref":233,"_type":559,"_weak":69},{"_key":1712,"_type":488,"children":1713,"markDefs":1718,"style":496},"871582914395",[1714],{"_key":1715,"_type":492,"marks":1716,"text":1717},"4a492f238f8d",[],"The Position Sizing node",[],{"_key":1720,"_type":488,"children":1721,"markDefs":1754,"style":514},"972d1a0588e2",[1722,1725,1729,1734,1738,1742,1746,1750],{"_key":1723,"_type":492,"marks":1724,"text":678},"ff61b6e2840a",[507],{"_key":1726,"_type":492,"marks":1727,"text":1728},"c0502b3de08f",[]," sets how big each position is; see ",{"_key":1730,"_type":492,"marks":1731,"text":1733},"5fa556114ddd",[1732],"1f21208bf357","position sizing",{"_key":1735,"_type":492,"marks":1736,"text":1737},"38be99a695d8",[],". The ",{"_key":1739,"_type":492,"marks":1740,"text":1741},"984c8609678d",[507],"Sizing method",{"_key":1743,"_type":492,"marks":1744,"text":1745},"4458b06dd449",[]," decides what ",{"_key":1747,"_type":492,"marks":1748,"text":1749},"6940045e818d",[507],"Amount",{"_key":1751,"_type":492,"marks":1752,"text":1753},"353c18b1ac79",[]," means:",[1755],{"_key":1732,"_type":555,"href":1756,"to":1757},"/docs/glossary#position-sizing",{"_ref":1758,"_type":559,"_weak":69},"7f01db2c-95f0-4b96-8b49-a2d15f1a32d7",{"_key":1760,"_type":488,"children":1761,"level":810,"listItem":811,"markDefs":1770,"style":514},"583ce30d0daa",[1762,1766],{"_key":1763,"_type":492,"marks":1764,"text":1765},"776691486eaa",[507],"Percent of equity",{"_key":1767,"_type":492,"marks":1768,"text":1769},"11c02a0d1023",[],", the default: percent of equity per position, 10 by default.",[],{"_key":1772,"_type":488,"children":1773,"level":810,"listItem":811,"markDefs":1789,"style":514},"984f9de16093",[1774,1778,1782,1785],{"_key":1775,"_type":492,"marks":1776,"text":1777},"1c3348207f87",[507],"Risk percent (needs a stop)",{"_key":1779,"_type":492,"marks":1780,"text":1781},"b0f1412ffb57",[],": percent of equity risked per trade, against the stop distance. It needs a stop loss on ",{"_key":1783,"_type":492,"marks":1784,"text":671},"b3dc2078b342",[507],{"_key":1786,"_type":492,"marks":1787,"text":1788},"dfd2289fead8",[],"; a trailing stop does not count.",[],{"_key":1791,"_type":488,"children":1792,"level":810,"listItem":811,"markDefs":1808,"style":514},"7ca686e5f944",[1793,1797,1800,1804],{"_key":1794,"_type":492,"marks":1795,"text":1796},"4437b79e7d0c",[507],"Fixed share count",{"_key":1798,"_type":492,"marks":1799,"text":529},"85243d916986",[],{"_key":1801,"_type":492,"marks":1802,"text":1803},"6d970ef5410f",[507],"Fixed dollar amount",{"_key":1805,"_type":492,"marks":1806,"text":1807},"6e74d1b1c8db",[],": shares or dollars per position.",[],{"_key":1810,"_type":488,"children":1811,"level":810,"listItem":811,"markDefs":1850,"style":514},"1b461b7b2197",[1812,1816,1820,1823,1827,1830,1834,1838,1842,1846],{"_key":1813,"_type":492,"marks":1814,"text":1815},"55cdaa31e223",[507],"The program decides, within a range (Code strategies)",{"_key":1817,"_type":492,"marks":1818,"text":1819},"657fdb37abab",[],": for a ",{"_key":1821,"_type":492,"marks":1822,"text":533},"470bb1d63d33",[507],{"_key":1824,"_type":492,"marks":1825,"text":1826},"d73a18bfa8b7",[]," only. ",{"_key":1828,"_type":492,"marks":1829,"text":1749},"1fd399a46c06",[507],{"_key":1831,"_type":492,"marks":1832,"text":1833},"ec1d4cc033a8",[]," gives way to ",{"_key":1835,"_type":492,"marks":1836,"text":1837},"225b5d70c8fa",[507],"Smallest position (% of equity)",{"_key":1839,"_type":492,"marks":1840,"text":1841},"c614c8118ff1",[],", default 25, and ",{"_key":1843,"_type":492,"marks":1844,"text":1845},"843bb8c5a11c",[507],"Largest position (% of equity)",{"_key":1847,"_type":492,"marks":1848,"text":1849},"9c993fb71b5a",[],", default 100.",[],{"_key":1852,"_type":488,"children":1853,"markDefs":1865,"style":514},"850250d7caec",[1854,1858,1861],{"_key":1855,"_type":492,"marks":1856,"text":1857},"c843447ad150",[],"A strategy with no ",{"_key":1859,"_type":492,"marks":1860,"text":678},"40ebdf487f3e",[507],{"_key":1862,"_type":492,"marks":1863,"text":1864},"c4762552986d",[]," node sizes every position at 10% of equity, and the run warns you. The program-chosen range on a Rules strategy is refused.",[],{"_key":1867,"_type":488,"children":1868,"markDefs":1873,"style":496},"096cba4f3bf5",[1869],{"_key":1870,"_type":492,"marks":1871,"text":1872},"3c87e05e5bda",[],"The Session Filter node",[],{"_key":1875,"_type":488,"children":1876,"markDefs":1901,"style":514},"1c315da59bc9",[1877,1881,1885,1889,1893,1897],{"_key":1878,"_type":492,"marks":1879,"text":1880},"0366681f3b25",[507],"Session Filter",{"_key":1882,"_type":492,"marks":1883,"text":1884},"d18d3dc326b7",[]," has one field, ",{"_key":1886,"_type":492,"marks":1887,"text":1888},"42d613724c0a",[507],"Session",{"_key":1890,"_type":492,"marks":1891,"text":1892},"a6a76a6b3453",[],", with one option: ",{"_key":1894,"_type":492,"marks":1895,"text":1896},"911dfc6ec3b5",[507],"Regular hours only (09:30–16:00 ET)",{"_key":1898,"_type":492,"marks":1899,"text":1900},"df865d612efe",[],". Every backtest already trades regular hours only, so the node states the intent without changing the run.",[],{"_key":1903,"_type":488,"children":1904,"markDefs":1909,"style":496},"f7ea93631912",[1905],{"_key":1906,"_type":492,"marks":1907,"text":1908},"8e12f9f5fce3",[],"The Regime Filter node",[],{"_key":1911,"_type":488,"children":1912,"markDefs":1920,"style":514},"2127c565725d",[1913,1916],{"_key":1914,"_type":492,"marks":1915,"text":712},"da80f3b58dc5",[507],{"_key":1917,"_type":492,"marks":1918,"text":1919},"9cc3ad34717b",[]," gates every entry on a trend test of the symbol being traded: its own price against its own moving average of daily closes. It reads no index such as SPY, and needs no wires.",[],{"_key":1922,"_type":488,"children":1923,"level":810,"listItem":811,"markDefs":1945,"style":514},"58ae1d8f5ce6",[1924,1928,1931,1935,1938,1942],{"_key":1925,"_type":492,"marks":1926,"text":1927},"6e74e2944d23",[507],"Only trade when",{"_key":1929,"_type":492,"marks":1930,"text":1237},"79b997cbfdd1",[],{"_key":1932,"_type":492,"marks":1933,"text":1934},"9a5e1d30dc38",[507],"Price is above the moving average (uptrend)",{"_key":1936,"_type":492,"marks":1937,"text":1245},"20305cd00ba4",[],{"_key":1939,"_type":492,"marks":1940,"text":1941},"3c863ee4c077",[507],"Price is below the moving average (downtrend)",{"_key":1943,"_type":492,"marks":1944,"text":512},"563238cb72f8",[],[],{"_key":1947,"_type":488,"children":1948,"level":810,"listItem":811,"markDefs":1957,"style":514},"29ab1e362faa",[1949,1953],{"_key":1950,"_type":492,"marks":1951,"text":1952},"44946834bb65",[507],"Moving average period (bars)",{"_key":1954,"_type":492,"marks":1955,"text":1956},"30bef712c9a7",[],": a whole number from 2 to 500. The default is 200.",[],{"_key":1959,"_type":488,"children":1960,"markDefs":1972,"style":514},"c8f8c8647c8a",[1961,1965,1968],{"_key":1962,"_type":492,"marks":1963,"text":1964},"caadf24fd556",[],"With a ",{"_key":1966,"_type":492,"marks":1967,"text":533},"a2aa04f572e5",[507],{"_key":1969,"_type":492,"marks":1970,"text":1971},"f7a07e6cec4c",[]," the filter does not apply, and the run says the node was ignored.",[],{"_key":1974,"_type":488,"children":1975,"markDefs":1980,"style":496},"44deb41c1b61",[1976],{"_key":1977,"_type":492,"marks":1978,"text":1979},"a0eceb24c722",[],"The Risk Guard node",[],{"_key":1982,"_type":488,"children":1983,"markDefs":2006,"style":514},"58fe3d2dc4d6",[1984,1987,1991,1995,1999,2002],{"_key":1985,"_type":492,"marks":1986,"text":719},"db8c5fbcf5a8",[507],{"_key":1988,"_type":492,"marks":1989,"text":1990},"1beb0fe7e8b5",[]," caps how many times one symbol may be entered on the same side. Its one field is ",{"_key":1992,"_type":492,"marks":1993,"text":1994},"675154900e30",[507],"Max entries per symbol",{"_key":1996,"_type":492,"marks":1997,"text":1998},"3b933e09ccca",[],": a whole number from 1 to 10, default 1. The value 1 opens once and never adds; 3 allows two adds. With a ",{"_key":2000,"_type":492,"marks":2001,"text":533},"d83f92ec8c47",[507],{"_key":2003,"_type":492,"marks":2004,"text":2005},"871eefb76876",[]," the guard does not apply.",[],{"_key":2008,"_type":488,"children":2009,"markDefs":2013,"style":496},"d0fdbcbd4834",[2010],{"_key":2011,"_type":492,"marks":2012,"text":533},"8de59b341ebb",[],[],{"_key":2015,"_type":488,"children":2016,"markDefs":2049,"style":514},"839e5161a6ca",[2017,2021,2024,2028,2031,2034,2037,2041,2046],{"_key":2018,"_type":492,"marks":2019,"text":2020},"b3ee549a69c1",[],"A ",{"_key":2022,"_type":492,"marks":2023,"text":533},"90f08c4e4daf",[507],{"_key":2025,"_type":492,"marks":2026,"text":2027},"390c3ac0bfb4",[]," node replaces the ",{"_key":2029,"_type":492,"marks":2030,"text":525},"b89683622171",[507],{"_key":2032,"_type":492,"marks":2033,"text":605},"407a8f1bda29",[],{"_key":2035,"_type":492,"marks":2036,"text":671},"eb8f400598b6",[507],{"_key":2038,"_type":492,"marks":2039,"text":2040},"7a377bfdddc5",[]," nodes with compiled Rust code; see ",{"_key":2042,"_type":492,"marks":2043,"text":2045},"8b3837a7c4c3",[2044],"f84d7e6ddd00","Program strategies",{"_key":2047,"_type":492,"marks":2048,"text":512},"7d2b03a9ed67",[],[2050],{"_key":2044,"_type":555,"anchor":2051,"href":2052,"to":2053},"the-program-card","/docs/backtesting/program-strategies#the-program-card",{"_ref":197,"_type":559,"_weak":69},{"_key":2055,"_type":488,"children":2056,"markDefs":2061,"style":496},"1f21888ce334",[2057],{"_key":2058,"_type":492,"marks":2059,"text":2060},"2ebeb6a0e336",[],"The Output node",[],{"_key":2063,"_type":488,"children":2064,"markDefs":2075,"style":514},"d99385b29efd",[2065,2068,2071],{"_key":2066,"_type":492,"marks":2067,"text":739},"300d4d6df586",[],{"_key":2069,"_type":492,"marks":2070,"text":508},"b22f8ab60aef",[507],{"_key":2072,"_type":492,"marks":2073,"text":2074},"7d1a5f1b62f6",[]," node ends the chain and declares the signal columns.",[],{"_key":2077,"_type":2078,"items":2079,"markDefs":12},"8ed0859f150c","docSteps",[2080,2114,2133],{"_key":2081,"_type":2082,"body":2083,"title":2113},"442c00ea8b45","docStep",[2084],{"_key":2085,"_type":488,"children":2086,"markDefs":2112,"style":514},"a38679d59b99",[2087,2090,2093,2097,2100,2104,2108],{"_key":2088,"_type":492,"marks":2089,"text":1169},"1da60264c38e",[],{"_key":2091,"_type":492,"marks":2092,"text":678},"82948eebf1f0",[507],{"_key":2094,"_type":492,"marks":2095,"text":2096},"642dc55a54c0",[]," into the ",{"_key":2098,"_type":492,"marks":2099,"text":508},"0ab20c701c8e",[507],{"_key":2101,"_type":492,"marks":2102,"text":2103},"c3207dc811d7",[],"'s ",{"_key":2105,"_type":492,"marks":2106,"text":2107},"902ef49b03e7",[507],"Data",{"_key":2109,"_type":492,"marks":2110,"text":2111},"29a6d0d1fcba",[]," input.",[],"Wire it",{"_key":2115,"_type":2082,"body":2116,"title":2132},"75135d8056dc",[2117],{"_key":2118,"_type":488,"children":2119,"markDefs":2131,"style":514},"7a7a166c710b",[2120,2124,2128],{"_key":2121,"_type":492,"marks":2122,"text":2123},"954d5fb230e2",[],"In its settings, untick ",{"_key":2125,"_type":492,"marks":2126,"text":2127},"e35b2e549942",[507],"Use upstream schema",{"_key":2129,"_type":492,"marks":2130,"text":512},"2a7f4c3330ac",[],[],"Untick the schema",{"_key":2134,"_type":2082,"body":2135,"title":2172},"e3e10ae319d2",[2136],{"_key":2137,"_type":488,"children":2138,"markDefs":2171,"style":514},"90fbe142fed4",[2139,2143,2147,2151,2155,2158,2161,2164,2168],{"_key":2140,"_type":492,"marks":2141,"text":2142},"74df896aaea3",[],"Click ",{"_key":2144,"_type":492,"marks":2145,"text":2146},"882dea32fbc8",[507],"Add column",{"_key":2148,"_type":492,"marks":2149,"text":2150},"4eb92cd45d79",[]," three times. Name the columns symbol, action and asOf, with the types ",{"_key":2152,"_type":492,"marks":2153,"text":2154},"697a782da5b0",[507],"string",{"_key":2156,"_type":492,"marks":2157,"text":667},"9b8c14c1bcd4",[],{"_key":2159,"_type":492,"marks":2160,"text":2154},"b2d0f3acbf59",[507],{"_key":2162,"_type":492,"marks":2163,"text":605},"fc043f25b1c6",[],{"_key":2165,"_type":492,"marks":2166,"text":2167},"2bd2f671a784",[507],"timestamp",{"_key":2169,"_type":492,"marks":2170,"text":512},"e1867f7ab272",[],[],"Add the columns",{"_key":2174,"_type":488,"children":2175,"markDefs":2188,"style":514},"c17ffe46fb60",[2176,2180,2184],{"_key":2177,"_type":492,"marks":2178,"text":2179},"8ceab05248e2",[],"On the canvas the node then reads ",{"_key":2181,"_type":492,"marks":2182,"text":2183},"758732f28743",[507],"Produces trade signals",{"_key":2185,"_type":492,"marks":2186,"text":2187},"6d40e1d32fb7",[],". Orbital checks the three names, not their types.",[],{"_key":2190,"_type":488,"children":2191,"markDefs":2196,"style":496},"2ed1c1593b62",[2192],{"_key":2193,"_type":492,"marks":2194,"text":2195},"621416977605",[],"Parameters a run can vary",[],{"_key":2198,"_type":488,"children":2199,"markDefs":2204,"style":514},"1b494631e7d7",[2200],{"_key":2201,"_type":492,"marks":2202,"text":2203},"b988e705f700",[],"A parameter is one setting a backtest may change without editing the strategy. The same idea tested on daily bars and on 1-minute bars stays one strategy with one history. A strategy may declare up to 20.",[],{"_key":2206,"_type":488,"children":2207,"markDefs":2212,"style":514},"b2f5b41a8e36",[2208],{"_key":2209,"_type":492,"marks":2210,"text":2211},"6694c42f39c2",[],"The choices a parameter offers come from the last saved version of the graph. The workflow must already be a strategy, and the Backtesting app must be on in the project. Only project editors and above can add, edit or remove a parameter.",[],{"_key":2214,"_type":2078,"items":2215,"markDefs":12},"66db23bf86f5",[2216,2251,2277,2305,2368],{"_key":2217,"_type":2082,"body":2218,"title":2250},"0cc1bbfb0665",[2219],{"_key":2220,"_type":488,"children":2221,"markDefs":2249,"style":514},"09ffe6bbc35a",[2222,2225,2229,2233,2237,2241,2245],{"_key":2223,"_type":492,"marks":2224,"text":2142},"83153807c7c5",[],{"_key":2226,"_type":492,"marks":2227,"text":2228},"356ce23707b3",[507],"Workflow settings",{"_key":2230,"_type":492,"marks":2231,"text":2232},"f375957d47b0",[]," (the gear) in the editor, then find ",{"_key":2234,"_type":492,"marks":2235,"text":2236},"9fef1e878bd3",[507],"Parameters",{"_key":2238,"_type":492,"marks":2239,"text":2240},"e61a548db407",[]," in the ",{"_key":2242,"_type":492,"marks":2243,"text":2244},"5c47ac3db928",[507],"Workflow Settings",{"_key":2246,"_type":492,"marks":2247,"text":2248},"78af492dd1e1",[]," dialog.",[],"Open the settings",{"_key":2252,"_type":2082,"body":2253,"title":2276},"c4d2fd158ecb",[2254],{"_key":2255,"_type":488,"children":2256,"markDefs":2275,"style":514},"e3e1995bc4d8",[2257,2260,2264,2267,2271],{"_key":2258,"_type":492,"marks":2259,"text":2142},"c33bfec759e2",[],{"_key":2261,"_type":492,"marks":2262,"text":2263},"2479c79dcfda",[507],"A bar to test on",{"_key":2265,"_type":492,"marks":2266,"text":529},"fd2bb2d9d788",[],{"_key":2268,"_type":492,"marks":2269,"text":2270},"12cdd0b30d0c",[507],"A number to vary",{"_key":2272,"_type":492,"marks":2273,"text":2274},"c1427665c6f4",[],". A strategy can have one bar parameter.",[],"Pick a kind",{"_key":2278,"_type":2082,"body":2279,"title":2304},"e6f491424b0a",[2280],{"_key":2281,"_type":488,"children":2282,"markDefs":2303,"style":514},"e44da79d7c2f",[2283,2287,2291,2295,2299],{"_key":2284,"_type":492,"marks":2285,"text":2286},"af5a02cc2c4e",[],"",{"_key":2288,"_type":492,"marks":2289,"text":2290},"d1503d9f96b5",[507],"Name",{"_key":2292,"_type":492,"marks":2293,"text":2294},"6f64f3c091c1",[]," is how runs and reports refer to it. ",{"_key":2296,"_type":492,"marks":2297,"text":2298},"95a1f715171a",[507],"Label",{"_key":2300,"_type":492,"marks":2301,"text":2302},"d17b6592bd62",[]," is what the Run dialog calls it.",[],"Name it",{"_key":2306,"_type":2082,"body":2307,"title":2367},"1c9e67f47e0d",[2308],{"_key":2309,"_type":488,"children":2310,"markDefs":2366,"style":514},"ec0b35bbf421",[2311,2315,2319,2323,2327,2331,2335,2338,2342,2345,2349,2352,2356,2359,2363],{"_key":2312,"_type":492,"marks":2313,"text":2314},"9ef0d07f24b3",[],"For a bar: ",{"_key":2316,"_type":492,"marks":2317,"text":2318},"03617c082f86",[507],"The bar this strategy is written in",{"_key":2320,"_type":492,"marks":2321,"text":2322},"3c0f057bf78f",[]," (the indicators reading it are the ones a run retimes) and ",{"_key":2324,"_type":492,"marks":2325,"text":2326},"3a3a418f5f13",[507],"Bars it may be tested on",{"_key":2328,"_type":492,"marks":2329,"text":2330},"9d377d3c33a1",[],". For a number: ",{"_key":2332,"_type":492,"marks":2333,"text":2334},"ed147c2fd234",[507],"The setting it changes",{"_key":2336,"_type":492,"marks":2337,"text":667},"23ac5e1300a1",[],{"_key":2339,"_type":492,"marks":2340,"text":2341},"8dc147f054ba",[507],"Lowest",{"_key":2343,"_type":492,"marks":2344,"text":667},"b95680cafa04",[],{"_key":2346,"_type":492,"marks":2347,"text":2348},"e147252141a4",[507],"Highest",{"_key":2350,"_type":492,"marks":2351,"text":667},"7caa93bd8f69",[],{"_key":2353,"_type":492,"marks":2354,"text":2355},"e8adc4153837",[507],"Starting value",{"_key":2357,"_type":492,"marks":2358,"text":605},"40c1b529ef22",[],{"_key":2360,"_type":492,"marks":2361,"text":2362},"b0757c4622d1",[507],"Whole numbers only",{"_key":2364,"_type":492,"marks":2365,"text":512},"f66cb2b1f99e",[],[],"Set its range",{"_key":2369,"_type":2082,"body":2370,"title":2415},"f21b2cbe47a3",[2371],{"_key":2372,"_type":488,"children":2373,"markDefs":2414,"style":514},"c80cfe497a9c",[2374,2377,2381,2385,2389,2392,2396,2400,2404,2407,2411],{"_key":2375,"_type":492,"marks":2376,"text":2142},"d120a02ff21d",[],{"_key":2378,"_type":492,"marks":2379,"text":2380},"55d6cb8eb337",[507],"Add parameter",{"_key":2382,"_type":492,"marks":2383,"text":2384},"4b1ff99ba0e1",[],". The row shows its kind, ",{"_key":2386,"_type":492,"marks":2387,"text":2388},"1096e2f2440c",[507],"Bar",{"_key":2390,"_type":492,"marks":2391,"text":529},"74fe01553555",[],{"_key":2393,"_type":492,"marks":2394,"text":2395},"c36f2736cba7",[507],"Number",{"_key":2397,"_type":492,"marks":2398,"text":2399},"1b9edf938cd9",[],", with ",{"_key":2401,"_type":492,"marks":2402,"text":2403},"e9e59998c1fa",[507],"Edit",{"_key":2405,"_type":492,"marks":2406,"text":605},"3058ba3e538e",[],{"_key":2408,"_type":492,"marks":2409,"text":2410},"f4481a9d8260",[507],"Remove",{"_key":2412,"_type":492,"marks":2413,"text":512},"39f5aefbc0e7",[],[],"Save it",{"_key":2417,"_type":488,"children":2418,"markDefs":2438,"style":514},"de4a557f341e",[2419,2423,2427,2431,2435],{"_key":2420,"_type":492,"marks":2421,"text":2422},"b32c348ada2f",[],"A number parameter offers only the settings its node currently uses. If the graph changes under a parameter, its row reads ",{"_key":2424,"_type":492,"marks":2425,"text":2426},"b26b4b6f2e93",[507],"No longer matches the graph",{"_key":2428,"_type":492,"marks":2429,"text":2430},"ed7306515fc3",[]," and offers ",{"_key":2432,"_type":492,"marks":2433,"text":2434},"a4b3874019a4",[507],"Fix",{"_key":2436,"_type":492,"marks":2437,"text":512},"e8d411ac74fd",[],[],{"_key":2440,"_type":488,"children":2441,"markDefs":2499,"style":514},"fbc321c16a00",[2442,2446,2450,2454,2458,2462,2466,2470,2473,2477,2480,2484,2488,2491,2496],{"_key":2443,"_type":492,"marks":2444,"text":2445},"10c846b00032",[],"In the Run dialog, declared parameters appear under ",{"_key":2447,"_type":492,"marks":2448,"text":2449},"f08389fd2c14",[507],"This strategy’s settings",{"_key":2451,"_type":492,"marks":2452,"text":2453},"c2ac766eabae",[],". Through the Orbital AI connector, Claude declares parameters when it saves a strategy and supplies values with ",{"_key":2455,"_type":492,"marks":2456,"text":465},"2ece91646547",[2457],"9abe75699442",{"_key":2459,"_type":492,"marks":2460,"text":2461},"f8ec43d51882",[],". It can also declare a ",{"_key":2463,"_type":492,"marks":2464,"text":2465},"4baa10c54c8e",[507],"Choice",{"_key":2467,"_type":492,"marks":2468,"text":2469},"85a869622f9f",[]," parameter, a list of allowed values, which the editor lists with ",{"_key":2471,"_type":492,"marks":2472,"text":2410},"2ecd2f96c5fb",[507],{"_key":2474,"_type":492,"marks":2475,"text":2476},"56362e6738f4",[]," but no ",{"_key":2478,"_type":492,"marks":2479,"text":2403},"d6fb96217fab",[507],{"_key":2481,"_type":492,"marks":2482,"text":2483},"26c37a26963e",[],". See ",{"_key":2485,"_type":492,"marks":2486,"text":205},"e7854a997635",[2487],"08f9138c6efb",{"_key":2489,"_type":492,"marks":2490,"text":605},"65e2951f7979",[],{"_key":2492,"_type":492,"marks":2493,"text":2495},"08e6913f71f6",[2494],"4c19f1ca40bc","Versions and configurations",{"_key":2497,"_type":492,"marks":2498,"text":512},"8ff7c68408bc",[],[2500,2502,2506],{"_key":2457,"_type":555,"href":409,"to":2501},{"_ref":463,"_type":559,"_weak":69},{"_key":2487,"_type":555,"anchor":2503,"href":2504,"to":2505},"the-strategys-settings","/docs/backtesting/run-a-backtest#the-strategys-settings",{"_ref":202,"_type":559,"_weak":69},{"_key":2494,"_type":555,"anchor":2507,"href":2508,"to":2509},"versions-and-configurations","/docs/backtesting/versions#versions-and-configurations",{"_ref":218,"_type":559,"_weak":69},{"showDisclaimer":69,"slug":251,"title":190},"inherit",[2513,2514,2516,2517,2519,2521,2522],{"path":401,"title":25},{"path":2515,"title":200},"/docs/backtesting/program-strategies",{"path":411,"title":205},{"path":2518,"title":53},"/docs/claude-and-chatgpt/rule-cards-and-programs",{"path":651,"title":2520},"Rule cards",{"path":774,"title":758},{"path":1119,"title":1028},1793786635799]