# FAQs

### Why do I need a bot?

When you create a bot, it is assigned to an account (live or paper). This connection is permanent, and tells the bot to send orders to your live brokerage account, or simulate fills using the OA in-app paper trading engine.

A bot does a few things for you, even if you are not running automations. For example, when you are opening a position, the bot will try multiple prices between the bid/ask spread ([SmartPricing](https://docs.optionalpha.com/tools/bots/smartpricing)) and attempt to get the trade filled at the best possible price (instead of the usual cancel/replace order process). After the position is opened, the bot will monitor the position's [Exit Options](https://docs.optionalpha.com/tools/managing-positions/exit-options) looking for an opportunity to exit and execute a trade to close the position when its available (also executing SmartPricing settings there too).

Bots are also a great way to organize your  positions, making it easy to analyze the results of certain strategies.

### How do I turn a paper bot into a live bot?

A bot's account connection cannot be changed. To make a paper bot live, you'll need to [clone the bot](https://docs.optionalpha.com/tools/clone-bot-templates) and change the account type to connect it to a live brokerage account.

Click the ••• in the bot's top right corner and select 'Clone bot.'

<figure><img src="https://2799944806-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MYjluAVRcRcfh1YL43z%2Fuploads%2FhoKsh4lM2vpAlQ58hUcA%2FCleanShot%202026-03-21%20at%2014.15.32%402x.png?alt=media&#x26;token=ecceaf68-fdc5-43b1-bded-526c1305a096" alt=""><figcaption></figcaption></figure>

### Why didn't my order fill?

There is no way to 100% guarantee a fill in a live market. In a live market, each order requires a counterparty to take the other side of the trade. A position not filling will naturally happen when trading in a live market when there is no counterparty to fill your order and/or the price you are requesting is outside the range the market is willing to accept.

You may consider expanding the range of the bid/ask spread you're willing to let the bot work through (up to 100% or more). You may also try adjusting the SmartPricing speed.

When attempting to open or close a position, your bot works through the bid/ask spread based on your SmartPricing settings, automatically canceling and replacing unfilled orders. The final price in the sequence stays active as a limit order for **two minutes** and then cancels.

{% hint style="info" %}
[**Click here**](https://optionalpha.com/help/smartpricing) for more details about SmartPricing functionality.
{% endhint %}

### Why are my live and paper bot results different?

Paper trading bots simulate a fill based on the current market's live pricing, typically at or near the mid price (you can modify your SmartPricing settings to allow for more slippage to help generate more realistic results.

The most common reason that a paper bot's results differ from a live bot is the ability to fill orders, specifically profit taking or stop losses. Consider including pessimistic pricing in your entry/exit criteria, and think criticially about how a strategy is likely to perform in a live market (e.g., will an order fill for a far OTM 0DTE position right before the market closes?).

### Why didn't my position close when it had a profit?

[SmartPricing](https://docs.optionalpha.com/tools/bots/smartpricing) attempts to fill the trade by submitting orders from the mid price to a "final price." The final price is the worst price you are willing to accept to fill the trade.

The 2 controls you have over this functionality are the SmartPricing mode (e.g. Patient, Normal, Fast) and the "Final Price" (the worst price it should try). Both are typically set up in this screen:

![](https://option-alpha.s3.amazonaws.com/uploads/177314742986611668861.png)

However, the Profit Taking Exit Options are a special scenario. You don't need to set a "Final Price" because the final price is automatically set by the bot to a price that locks in profit you specified. It won't try a worse price that would result in profit less than your specified amount.

In case you are wondering why profit taking works this way:

If SmartPricing were to go beyond a final price that locks in your profit taking, the outcome can quickly flip a trade from winner to loser. For example, in your trade above, if i went further than $.91 traversing the bid/ask spread than 1) you would get less than the 30% profit taking you specified 2) if it went all the way to $0.48, profit taking being triggered could have resulted in an unexpected loss. Instead the bot will continue to retry until it can fill at a price that gets the specified profit taking.

### Can I backtest a bot?

Bots cannot be backtested, simply because they can include many variables that aren't included in the backtester.

### Why did my position close for a loss greater than my stop loss?

Stop losses and trailing stops do not guarantee that a position will close for that exact value. Markets move fast and just because your stop is hit doesn't mean you'll get out at the same price as the trigger level. Bots use the position's mid-price when evaluating returns. It is possible that your stop loss or trailing stop will trigger *after* the position's value has exceeded your value. The exit stop loss is only a threshold, which means it will begin the closing order sequence at or below the target loss. Second, price movements are discrete and "jumpy" - just because a position is at a 10% loss, doesn't mean it can't be at a 50% loss seconds from now. Even if a stop loss is triggered at or near the target, you may end up closing at a much worse price than you were expecting.

### What is the difference between a Decision Input, Automation Input, and Bot Input?

{% hint style="info" icon="medal" %}
(Thank you to community member [Robert DiNero](https://app.optionalpha.com/community/member/pachiraaquatica) for his contribution and help in [this post](https://app.optionalpha.com/community/posts/whats-the-difference-between-a-decisio-2026040221160)).
{% endhint %}

We frequently get questions about users changing values, but the bot doesn't recognize the new values. Most often, this is due to the user changing the Default Value instead of the Automation Input value. Here are the 5 types of inputs and how they are used.

{% hint style="warning" icon="question" %}
[See this help page for detailed information on using inputs](https://docs.optionalpha.com/tools/bots/inputs).
{% endhint %}

### Why are my bot results different from than my broker?

{% hint style="info" icon="medal" %}
(Thank you to community member [Robert DiNero](https://app.optionalpha.com/community/member/pachiraaquatica) for his contribution and help in [this post](https://app.optionalpha.com/community/posts/whats-the-difference-between-a-decisio-2026040221160)).
{% endhint %}

Your open and close price values should always be the same in the platform and on your broker statement. The order details are shared exactly as they are executed. Open position unrealized P/L can differ because the broker may be calculating returns differently (e.g., OA uses the position's mid-price, while the broker may use the last price).

There are several reasons you might see differences between *closed* positions: 1) commissions and fees, 2) positions closed by the broker that are not updated in OA, 3) positions assigned that haven't been updated in OA, and 4) positions you've closed manually that haven't been updated in OA.

Check your broker's fees and commissions. Some will charge for assignment, and most charge a fee for index options. More details [here](https://optionalpha.com/integrations).

Bots aren't aware of any action taken outside the platform, so if you close a position (or your broker closes a position on your behalf), you'll need to update the position accordingly inside the OA platform.

The first thing you should do is make sure all your closed positions are actually closed.  If any say "override," then you need to update OA with the missing information.  Related to this point, check your settings to see how you have your ITM positions set up.  If they are set to override, then that could be a reason for the discrepancy. If a position is overrridden 10 minutes before the close, the bot won't know the actual closing value, for example.

![](https://option-alpha.s3.amazonaws.com/uploads/177629779211718904021.png)

Sometimes the broker will close positions to avoid risk. Usually if they close it before 4:00pm, you'll get an error in OA for a missing position that needs to be addressed.  If they close it between 4:00pm and 4:15pm then it will take a bit more work but you should look for any non-cash settled positions that are "expired" and double check them.  &#x20;

In addition, you should make sure that any assignments have been addressed in OA - so you'll want to check your statements for any lots of 100 that have been assigned.

While Option Alpha receives the trade prices from the broker and there shouldn't be any difference in prices, anything that happens through the broker after 4:00pm is not tracked.
