> For the complete documentation index, see [llms.txt](https://polycop.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://polycop.gitbook.io/docs/afk-auto-trade/non-crypto-markets.md).

# Non-Crypto Markets

AFK lets you automate trades on Polymarket. Once active, the bot scans markets every 5 minutes, checks your trigger conditions, and places orders automatically when everything lines up.

This page covers the **non-crypto market types**: Sports, Weather, Esports, Politics, Culture, Tech, and Finance.

> Crypto markets follow a separate setup flow. See [AFK Auto Trade · Crypto](https://docs.polycop.ai/afk-auto-trade/creating-a-strategy) for details.

## How It Works

AFK Auto Trade **scans** Polymarket markets **every 5 minutes** and places trades automatically based on the conditions you set. Your settings are organized into four parts:

{% columns %}
{% column %}
**Market Filter:** Defines which markets and outcomes the bot considers. Any outcome that doesn't meet your filter criteria — price range, spread, depth, volume, or time to close — is skipped before any further checks are done.

**Trigger Conditions:** Define **the price pattern** the bot looks for. Once an outcome passes the market filter, the bot calculates indicators from its price history and checks whether your conditions are all met. Every enabled condition must be satisfied at the same time for a buy signal to fire.

**Buy** settings: Control how the order is placed — order type, slippage tolerance, buy amount, and maximum buy price. When a signal triggers, the bot places the order immediately using your buy settings.

**Sell** settings: Control when the bot exits the position. After buying, the bot monitors the price and sells as soon as any one of your exit conditions is met — whichever comes first: Take Profit, Stop Loss, or Duration Auto Sell.
{% endcolumn %}

{% column %}

<figure><img src="https://932293051-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6RH958mIbJRqog5izKje%2Fuploads%2F3ErslwmjJZIM7k4tv2z7%2Fscreenshot-20260629-201438.png?alt=media&amp;token=0bb19eed-39c1-44c8-8c22-9dec80908459" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

###

## Getting Started

From the AFK Auto Trade list page, tap **＋** **Create AFK Auto Trade** → choose a market type → choose a strategy template.

Templates pre-fill all settings for you. You can adjust any value after selecting one.

{% columns %}
{% column %}

<figure><img src="https://932293051-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6RH958mIbJRqog5izKje%2Fuploads%2Fbze0EzIwNSScFTcLpegW%2Fscreenshot-20260629-211950.png?alt=media&amp;token=585f1351-73e2-469e-b8df-7c2550af5417" alt=""><figcaption><p>(1) tap <strong>＋ Create AFK Auto Trade</strong></p></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="https://932293051-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6RH958mIbJRqog5izKje%2Fuploads%2Fx0sYHf8OLnxWKg5T0oR0%2Fscreenshot-20260629-212011.png?alt=media&amp;token=59b5fe12-5c95-4047-af66-eb2108fc45ee" alt=""><figcaption><p>(2) Choose a market type</p></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="https://932293051-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6RH958mIbJRqog5izKje%2Fuploads%2FWlDsbNevqAwJin5no9tK%2Fscreenshot-20260629-212035.png?alt=media&amp;token=717acf14-8a24-4ced-9a92-713582e80b65" alt=""><figcaption><p>(3) Choose a strategy template.</p></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

## Strategy Templates

Each template represents a different price pattern and trading approach. Choose the one that matches the market behavior you want to trade.

**🚀 Breakout** Price consolidates in a tight range, then breaks out above resistance. Best for: outcomes that have been stable for a while and are starting to move.

**📈 Momentum** Price trends upward from a low base with minimal pullback. Best for: outcomes with a clean, sustained upward move.

**↩ Rebound** Price dips then recovers — buy the bounce. Best for: outcomes that pulled back but are turning back up.

**🔄 Range Trade** Price oscillates between support and resistance — buy the dip, take profit at the top. Best for: outcomes that repeatedly move between two price levels.

**⚡ Swing Reversal** Sharp price drop — buy the rebound or ride the momentum. Best for: outcomes with sudden, large price swings.

**🧩 Custom** Start with no conditions — build your own trigger from scratch. Best for: experienced users with a specific setup in mind.

## Parameter Guide

Settings are grouped into **four sections**: Market Filter, Trigger Conditions, Buy, and Sell.

{% hint style="info" %}

* Any condition set to `-` is skipped.
* In the bot, tap any parameter button to see its input guide
  {% endhint %}

### 1. Market Filter

Market Filter runs first. Before the bot evaluates any trigger conditions, it checks every outcome against your market filter settings. Anything that doesn't qualify is skipped entirely.

<table data-first-column-sticky><thead><tr><th width="125.4296875">Parameter</th><th width="537.28515625">What it does</th><th>Input</th></tr></thead><tbody><tr><td><strong>Market Type</strong></td><td><ul><li>Choose the category of Polymarket markets the bot scans. </li><li>You can only select one in every AFKstratrgy. Choosing All Market scans across all non-crypto categories at once.</li></ul></td><td>Tap one as ✅</td></tr><tr><td><strong>Ends ≤</strong></td><td><ul><li>Set the maximum time remaining before a market closes. Only markets ending within this many hours are scanned. </li><li>Markets closer to resolution tend to have more decisive price movement, making this a useful way to stay focused on active opportunities.</li></ul></td><td>Number of hours, <code>1</code>~<code>720</code></td></tr><tr><td><strong>Price Min</strong></td><td><ul><li>Set the <strong>minimum current price</strong> for outcomes the bot will consider. Outcomes priced below this value are skipped. </li></ul></td><td>Cents, <code>1</code>~<code>99</code></td></tr><tr><td><strong>Price Max</strong></td><td><ul><li>Set the <strong>maximum current price</strong> for outcomes the bot will consider. Outcomes priced above this value are skipped. </li><li>Outcomes already priced very high leave little room for further upside and may be difficult to exit at a profit (that depends on your exit strategy). </li><li><strong>Price Max</strong> and <strong>Price Min</strong> together establish the <strong>price range</strong> you're looking for, defining the <mark style="background-color:$warning;"><strong>current price interval</strong></mark>.</li></ul></td><td>Cents, <code>1</code>~<code>99</code></td></tr><tr><td><strong>Spread</strong></td><td><ul><li>Set the maximum allowed gap between the best bid and best ask. Outcomes with a wider spread are skipped. </li><li>A wide spread means you pay more to buy and receive less when you sell — it's an immediate, hidden cost on every trade.</li></ul></td><td>Cents, <code>1</code>~<code>99</code></td></tr><tr><td><strong>Depth</strong></td><td><ul><li>Set the minimum order book liquidity required. Depth is the total value of all ask-side orders available for this outcome — outcomes below this threshold are skipped. </li><li>Low depth risks poor fill prices or moving the market against you just by placing an order.</li></ul></td><td>USD, <code>1</code>~<code>1,000,000</code> </td></tr><tr><td><strong>Volume</strong></td><td><ul><li>Set the minimum total trading volume for a market to be scanned. Low-volume markets are skipped. </li><li>Volume is a signal of genuine market activity — a market with very low volume may have stale prices or unreliable liquidity even if the order book looks acceptable at the moment of scanning.</li></ul></td><td>USD, <code>1</code>~<code>100,000,000</code></td></tr></tbody></table>

### 2. Trigger Conditions

Trigger conditions define the price pattern the bot looks for. The Window setting is the foundation every historical condition is built on — Past Min, Past Max, Start Price, and Max Pullback are all calculated strictly from price data inside this window, so changing it changes what those numbers mean.

All indicators are calculated from the price history of each outcome's token independently. All enabled conditions must be met at the same time for a buy signal to fire.&#x20;

<table data-first-column-sticky><thead><tr><th width="125.4296875">Parameter</th><th width="588.1484375">What it does</th><th width="154.53125">Input</th></tr></thead><tbody><tr><td><strong>Window</strong></td><td><ul><li>Choose <strong>the lookback period</strong> for historical price calculations — <strong>Past Min, Past Max, Start Price, and Max Pullback are all derived from price data within this window.</strong> </li><li>A shorter window (e.g. <code>5m</code>) captures very recent momentum; a longer window (e.g. <code>6h</code>) reflects how the outcome has been trading over a broader period. </li><li>Choose based on the pattern you're trying to detect.</li></ul></td><td>Type <code>5m</code> / <code>15m</code> / <code>1h</code> / <code>6h</code> / <code>1d</code></td></tr><tr><td><strong>Past Min</strong></td><td><ul><li>Set the <strong>minimum</strong> allowed low <strong>within the observation window</strong>. The bot checks that the lowest price reached during this period is at or above your threshold — meaning the outcome never fell below your floor at any point, not just at the end.</li><li>Useful for confirming sustained support rather than a temporary recovery from a much lower base.</li></ul></td><td>Cents, <code>1</code>~<code>99</code></td></tr><tr><td><strong>Past Max</strong></td><td><ul><li>Set the <strong>maximum</strong> allowed high <strong>within the observation window</strong>. The bot checks that the highest price reached during this period is at or below your threshold — meaning the outcome never broke above this ceiling during the window. </li><li>Used together with <strong>Past Min</strong>, these two values define a <strong>historical price range</strong>. If the current price has since moved above Past Max, it may indicate a potential breakout.</li></ul></td><td>Cents, <code>1</code>~<code>99</code></td></tr><tr><td><strong>Start Price</strong></td><td><ul><li>Set the <strong>maximum</strong> price at <strong>the start of the observation window</strong>. The bot checks that the price at the very first data point of the window was at or below your threshold. </li><li>When used alongside a high <strong>Current Price</strong>, this confirms a meaningful upward move occurred within the window — ruling out outcomes that were already at a high price throughout the entire period.</li></ul></td><td>Cents, <code>1</code>~<code>99</code></td></tr><tr><td><strong>Current Price</strong></td><td><ul><li>Set the <strong>minimum</strong> current price required to trigger a buy signal. The bot checks that the outcome's latest price at the time of the scan is at or above your threshold. </li><li>This confirms the outcome is currently at the price level you're targeting right now — not that it merely passed through it at some point during the window.</li></ul></td><td>Cents, <code>1</code>~<code>99</code></td></tr><tr><td><strong>Max Pullback</strong></td><td><ul><li>Set the <strong>maximum</strong> allowed drop from the peak price <strong>within the observation window</strong>. The bot checks the largest drop from any local peak to any subsequent low — for example, if the price rose to 78¢, dipped to 73¢, then continued upward, the pullback is 5¢. </li><li>This filters out volatile or choppy upward moves and keeps only outcomes where the price climbed without significant reversals along the way.</li></ul></td><td>Cents, <code>1</code>~<code>99</code></td></tr><tr><td><strong>Breakout Price</strong></td><td><ul><li>A buy order will only be triggered if the current price is equal to or higher than this price. </li><li>Typically set above Past Max in Breakout Template — if Past Max defines the top of the historical range, Breakout Price confirms the price has pushed meaningfully beyond it, rather than simply touching the ceiling and retreating. </li><li>The gap between Past Max and Breakout Price acts as a buffer against false breakouts.</li></ul></td><td>Cents, <code>1</code>~<code>99</code></td></tr><tr><td><strong>5m Direction</strong></td><td><ul><li>Set the required price direction over the last 5 minutes. The bot compares the current price to the price exactly 5 minutes ago — <code>Up</code> means current price is higher now; <code>Down</code> means lower. </li><li>Acts as a short-term momentum check on top of the longer-window historical conditions, confirming the price is still moving in the expected direction at the moment the signal fires.</li></ul></td><td>Type <code>Up</code> / <code>Down</code>.</td></tr><tr><td><strong>5m Change</strong></td><td><ul><li>Set the <strong>minimum</strong> price movement over the last 5 minutes, in the direction set by 5m Direction — if 5m Direction is <code>Up</code>, this is how much the price must have risen; if <code>Down</code>, how much it must have fallen. </li><li>Filters out slow or marginal moves — only outcomes showing clear, decisive short-term momentum will trigger.</li></ul></td><td><p>Enter a positive number. </p><p>Cents, <code>1</code>~<code>99</code></p></td></tr></tbody></table>

### 3. Buy

These settings control how the bot places the buy order once a signal is triggered. The bot checks the live order book one more time before placing the order — if the price or liquidity has changed since the last scan and no longer meets your settings, the order will not be placed.

<table data-first-column-sticky><thead><tr><th width="146.375">Parameter</th><th width="456.640625">What it does</th><th>Input</th></tr></thead><tbody><tr><td><strong>Slippage</strong></td><td><ul><li>Set the maximum slippage you'll accept. If the estimated fill price exceeds this threshold, the bot cancels the order rather than overpaying</li></ul></td><td>Percent, <code>0.1</code>~<code>100</code></td></tr><tr><td><strong>Single buy amount</strong></td><td><ul><li>Set how much the bot spends per triggered signal. </li></ul></td><td>USD, <code>1</code>~<code>10,000</code></td></tr><tr><td><strong>Max buy price</strong></td><td><ul><li>Set the maximum price the bot will pay to fill a buy order, applied after slippage is calculated. </li><li>Even if slippage is within your limit, the order is cancelled if the actual fill price would exceed this value. </li><li>Prevents the bot from buying into an outcome that has already moved too far by the time the order is placed.</li></ul></td><td>Cents, <code>1</code>~<code>99</code></td></tr></tbody></table>

{% hint style="warning" icon="lightbulb" %}
**Deduplication & Cooldown**：Each strategy only buys a given outcome once — after the first buy, that outcome in the same market won't trigger again under the same strategy, whether it's currently held, already sold, or the conditions match again on a later scan.
{% endhint %}

### 4. Sell

After a buy order fills, the bot continuously monitors the position and exits as soon as any one of the following conditions is triggered. Only one needs to trigger — whichever fires first closes the position.

<table data-first-column-sticky><thead><tr><th width="157.140625">Parameter</th><th width="508.421875">What it does</th><th>Input</th></tr></thead><tbody><tr><td><strong>TP (Take Profit)</strong></td><td><ul><li>Set the take profit. The bot sells when the current price rises by this many cents above your actual fill price. </li><li>The reference point is the fill price, not the price at the time the signal triggered. For example, if TP is <code>6</code> and the order filled at 80¢, the bot sells when the price reaches 86¢.</li></ul></td><td>Cents, <code>1</code>~<code>99</code> </td></tr><tr><td><strong>SL (Stop Loss)</strong></td><td><ul><li>Set the stop loss. The bot sells when the current price falls by this many cents below your fill price. </li><li>For example, if SL is <code>4</code> and the order filled at 80¢, the bot sells when the price drops to 76¢. This caps your maximum loss on any single trade.</li></ul></td><td>Cents, <code>1</code>~<code>99</code> </td></tr><tr><td><strong>Duration Auto Sell</strong></td><td><ul><li>Set the maximum holding time. The bot automatically closes the position after this many seconds, regardless of whether TP or SL has been reached. </li><li>The timer starts from the moment the buy order fills, not from when the signal triggered. </li><li>Useful for short-term strategies where you want to limit exposure time even if price hasn't moved significantly in either direction.</li></ul></td><td>Seconds, <code>1</code>~<code>86,400</code></td></tr></tbody></table>

## Template Default Settings

All templates share the same default Market Filter and Buy / Sell values. Trigger conditions differ per template.

{% hint style="info" %}
These templates come pre-configured by Bot as a starting point. Once you've selected one in the bot, every value shown below is fully editable — adjust any setting to match your own view of the market.
{% endhint %}

### **Shared defaults** — Market Filter/Buy/Sell

{% columns %}
{% column %}

<table><thead><tr><th width="164.4453125">Setting</th><th width="158.54296875">Default</th></tr></thead><tbody><tr><td>Ends</td><td>≤24h</td></tr><tr><td>Price Min</td><td>40¢</td></tr><tr><td>Price Max</td><td>90¢</td></tr><tr><td>Spread</td><td>≤5¢</td></tr><tr><td>Depth</td><td>≥$1,000</td></tr><tr><td>Volume</td><td>≥$10,000</td></tr><tr><td>Order Type</td><td>Market Order Buy</td></tr><tr><td>Slippage</td><td>30%</td></tr><tr><td>Single buy amount</td><td>$5</td></tr><tr><td>Max buy price</td><td>90¢</td></tr><tr><td>TP</td><td>+6¢</td></tr><tr><td>SL</td><td>−4¢</td></tr><tr><td>Duration Auto Sell</td><td>−</td></tr></tbody></table>
{% endcolumn %}

{% column %}

<figure><img src="https://932293051-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6RH958mIbJRqog5izKje%2Fuploads%2F55gnj8NyHuMBBAbSs2ZV%2Fscreenshot-20260630-192629.png?alt=media&amp;token=24b9e789-6edc-4088-b612-1ef75ea1c3b0" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

### **Trigger conditions by template**

Each template is designed to illustrate a distinct price pattern and give you a reasonable starting range for that pattern — not to recommend a specific trade or guarantee an outcome. Review and adjust every value before activating a strategy, and use them at your own discretion.

| Condition      | Breakout | Momentum | Rebound | Range Trade | Swing Reversal |
| -------------- | -------- | -------- | ------- | ----------- | -------------- |
| Window         | 1h       | 1h       | 1h      | 6h          | 5m             |
| Past Min       | ≥55¢     | −        | −       | ≥72¢        | −              |
| Past Max       | ≤72¢     | −        | −       | ≤79¢        | −              |
| Start Price    | ≤60¢     | ≤60¢     | −       | −           | −              |
| Current Price  | ≥80¢     | ≥80¢     | ≥72¢    | ≥72¢        | −              |
| Max Pullback   | −        | ≤5¢      | −       | −           | −              |
| Breakout Price | ≥78¢     | −        | −       | −           | −              |
| 5m Direction   | Up       | Up       | Up      | −           | Down           |
| 5m Change      | ≥8¢      | ≥8¢      | −       | −           | ≥20¢           |

> *Disclaimer: These default values are not investment advice.*&#x20;

### Reading the Templates: Breakout vs. Momentum

To see how these settings actually work together, here's a walkthrough of two templates using their default values.

{% columns %}
{% column %}
**Breakout**

<figure><img src="https://932293051-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6RH958mIbJRqog5izKje%2Fuploads%2FXRVO9yRPu9xvjQZS9lB2%2Fscreenshot-20260630-193614.png?alt=media&amp;token=28c2bcfd-42ea-42e6-8bb7-004a699ab0dc" alt="" width="342"><figcaption></figcaption></figure>

Past Min (55¢) and Past Max (72¢) require the price to have stayed inside a 55¢–72¢ band for the full 1-hour window — confirming the outcome was genuinely range-bound, not just briefly touching those levels. Start Price (≤60¢) confirms it was still in the lower part of that band an hour ago.

The trigger requires Current Price ≥80¢ and Breakout Price ≥78¢ — both well above the 72¢ ceiling, confirming a real break out of the range. 5m Direction = Up and 5m Change ≥8¢ confirm it's happening right now, not a move that already faded.

In short: an outcome that consolidated for an hour, then broke decisively above that range in the last few minutes.
{% endcolumn %}

{% column %}
**Momentum**

<figure><img src="https://932293051-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6RH958mIbJRqog5izKje%2Fuploads%2FCxxY5pd3akLJwGFwX8BH%2Fscreenshot-20260630-193631.png?alt=media&amp;token=8a26d851-4439-4f3a-b159-091354b34c5b" alt="" width="331"><figcaption></figcaption></figure>

Same 1-hour window, but Past Min and Past Max are disabled — this template doesn't care whether the price was range-bound. Start Price (≤60¢) and Current Price (≥80¢) confirm a low-to-high climb over the hour, while Max Pullback (≤5¢) requires the price never dropped more than 5¢ from any local high along the way. 5m Direction = Up and 5m Change ≥8¢ confirm the move is still active.

In short: a smooth, steady climb with no sharp reversals — regardless of where the price started from.

The core difference: Breakout asks "did this just escape a range it was stuck in?" Momentum asks "has this been climbing cleanly the whole time?" A smooth climb from an unconfined level would trigger Momentum but not Breakout; a sharp spike out of a flat range might trigger Breakout but fail Momentum's pullback check.
{% endcolumn %}
{% endcolumns %}

{% hint style="info" %}
The remaining templates — Rebound, Range Trade, Swing Reversal — follow the same idea but encode different price action patterns. Understanding which pattern fits your view of the market benefits from some trading background. If you're not already familiar with these concepts, it's worth spending time with an AI assistant or other resources to learn the basics of price action before relying heavily on these template.
{% endhint %}

## Managing Your Strategies

**Status** Pause or resume this strategy — a paused strategy won't scan or place any orders until reactivated. Enter `Active` or `Paused`:

**Delete** Delete this strategy? All settings will be permanently removed. This action cannot be undone. Type `DELETE` to confirm, or press Back to cancel:

**Duplicate** You can create multiple instances of the same template with different settings. Strategies run independently and won't interfere with each other.

## Key Rules

* **Scans run every 5 minutes, around the clock.** The bot doesn't need your device to stay on or your account to be active — once a strategy is set to Active, it keeps watching Polymarket independently in the cloud.
* **One buy per market, per strategy.** Once a strategy buys into an outcome, it won't trigger again on that same market — whether it's still held, already sold, or the same conditions reappear on a later scan. This prevents the bot from repeatedly piling into the same position.
* **All conditions must align — there's no partial match.** Every enabled trigger condition is checked together using AND logic. A near-miss doesn't trigger a trade; the full set of conditions has to be true at the same time.
* Any setting shown as `-` is disabled and not evaluated.
* **Multiple strategies can run side by side without interfering with each other.** You can run a Breakout strategy on Sports and a Range Trade strategy on Politics at the same time — each operates independently, with its own filters, conditions, and position tracking.
