How to Install and Use IaTraderPro Bot
Follow the step-by-step guide below to get the bot running on your Quotex account in less than 10 minutes.
Works on Quotex and IQ Option, on both demo and real accounts, through community APIs (pyquotex and iqoptionapi) with no affiliation to either broker. Deriv also works, through its official Options API; Olymp Trade has basic support. The steps below use Quotex as the example.
1. System Requirements
Before you start, make sure you have everything:
2. Install Python
Go to python.org/downloads and download the latest version (3.12 or higher).
IMPORTANT: during installation, check "Add Python to PATH". Without this, the bot won't work.
To verify the installation, open Command Prompt (CMD) and type:
C:\> python --version
# Should return: Python 3.12.x (or higher)3. Extract the Bot
After receiving the file IaTraderProBot.zip via email:
- Extract the ZIP to a simple folder, no accents or spaces. Example:
C:\IaTraderProBot - Inside the folder you will see:
bot.py,painel.py,config_bot.ini,instalar.bat,iniciar_painel.bat, and more.
4. Install Dependencies (first time only)
Double-click instalar.bat and wait. It will:
- Create a Python virtual environment (
.venv) - Install all required libraries (Streamlit, pandas, httpx, websockets, etc.)
- Configure Streamlit (skip email registration)
When "Installation completed successfully!" appears, you're ready.
5. Launch the Panel
Double-click iniciar_painel.bat. The web panel will open automatically in your browser at http://localhost:8501.
6. Configure the Bot
In the Streamlit panel (sidebar), configure:
6.1 β Quotex Login
- Enter your Quotex email and password
- Click "Save login"
On IQ Option the bot also runs on demo and real accounts; connection details are on the IQ Option API page. The panel labels are in Portuguese, so the original label is shown in brackets below.
6.2 β General Settings
- Account type (Tipo de conta):
demo(default) orreal - Pairs/Assets (Pares/Ativos): choose up to 3 pairs (e.g. EURUSD_otc, GBPUSD_otc, XAUUSD_otc). Prefer real, non-OTC pairs: in the site's study no strategy beat ~50% on OTC.
- Period (PerΓodo): timeframe in seconds (60 = 1 minute)
- Stake: a fixed amount (e.g. 5) or a percentage of the balance (e.g. 1%)
- Minimum payout (Payout mΓnimo): the bot only trades an asset whose payout is above this value (default: 80%)
6.3 β Risk Management
- Pause after X losses (Pausar apΓ³s X perdas): after X losses in a row the bot takes a break (cooldown)
- Cooldown: length of the break in minutes (default: 15)
- Martingale: yes/no. If enabled, you set the multiplier (default: 2.2x) and the maximum number of martingale steps
- Daily stop loss (Stop Loss diΓ‘rio): the maximum loss for the day; the bot stops when it is reached
- Daily stop win (Stop Win diΓ‘rio): the profit target at which the bot stops for the day
- Max trades: maximum number of trades per session
What martingale really costs: with a stake of 5, multiplier 2.2 and a maximum of 2 steps, one sequence bets 5 β 11 β 24.2. If all three lose, that single signal costs 40.2 β more than 8 times the base stake. Martingale does not change the probability of winning, it only makes the bets bigger (full analysis). Start with it off (nao).
7. Operate
- Click "Save configuration"
- At the top of the page, click "Iniciar" (Start)
- Check "Auto refresh" to watch the bot trading live
- The dashboard shows: balance, PnL, win rate, trades, chart, asset status
You can pause at any time, change settings and restart without closing the panel.
How to read your demo results
Running "a few days on demo" is not about how many trades you won today. Every payout has a minimum win rate below which you lose money in the long run: break-even win rate = 1 / (1 + payout).
| Payout | Break-even win rate |
|---|---|
| 70% | 58.8% |
| 80% | 55.6% |
| 85% | 54.1% |
| 90% | 52.6% |
Average result per trade, as a fraction of the stake = p Γ payout β (1 β p), where p is your win rate. Example with an 85% payout, a stake of 5 and 100 trades:
- 57% win rate: 0.57 Γ 0.85 β 0.43 = +0.0545 per unit staked β about +27 over 100 trades.
- 50% win rate (what OTC pairs gave in the site's study): 0.425 β 0.50 = β0.075 β about β37.5.
- 48% win rate (typical of trend strategies on M1): 0.408 β 0.52 = β0.112 β about β56.
Do not draw conclusions before at least 150 trades β the site's study discards smaller samples too. Compare your win rate with the break-even for your payout, and only consider a small real stake if it stays above that line. No bot guarantees profit. Full demo routine: demo account guide.
8. Operation Modes
The bot has two modes for deciding when to trade:
π― Individual Mode individual
The first strategy that fires a signal trades. Fast and aggressive.
π³οΈ Majority Mode maioria
Only trades when the majority of strategies agree on the same direction. More conservative.
Majority mode only helps when the voting strategies measure different things. In the site's 13-strategy study, CCI, Z-Score and Stochastic reversal mostly said the same thing as Bollinger β three such votes are really one opinion counted three times.
9. The 13 Strategies β How They Work and How to Adjust
Each strategy analyzes asset candles and decides between CALL (up), PUT (down) or no signal. All parameters below are adjustable from the panel. In config_bot.ini a strategy is listed by its code name (the tag on each card). Before enabling anything, read the test results at the end of this section: five of these strategies lost money on M1 in the site's study.
1. Strong Trend tendencia_forte
Identifies trends with 3 aligned exponential moving averages + RSI + ADX.
PUT: fast EMA < mid EMA < slow EMA, price below, strong ADX, touch of the fast EMA, bearish candle, RSI falling between 25β55.
ema_fast = fast EMA (default: 9, range: 2β60)ema_mid = mid EMA (default: 21, range: 3β100)ema_slow = slow EMA (default: 50, range: 5β200)
2. Pullback pullback
Trades the price pullback toward the fast average inside a trend.
PUT: fast EMA < slow EMA, price below, strong ADX, touch of the fast EMA, bearish candle, RSI falling between 25β60.
ema_fast = fast EMA (default: 9)ema_slow = slow EMA (default: 21)
3. RSI + Moving Averages rsimm
Simple moving average crossover confirmed by RSI.
PUT: fast SMA crosses below the slow SMA (death cross) + RSI < 50.
sma_fast = fast SMA (default: 9)sma_slow = slow SMA (default: 21)
4. Triple Confirmation tripla
EMAs + RSI + Stochastic β three confirmations before a signal.
PUT: Price < fast EMA < slow EMA, RSI < 50, %K crosses below %D with %D > 70 (overbought zone).
ema_fast = fast EMA (default: 20)ema_slow = slow EMA (default: 50)rsi = RSI period (default: 7)
5. MACD Cross macd
Classic crossover of the MACD line and its signal line.
PUT: MACD line crosses below the signal line (bearish momentum).
fast = fast MACD (default: 12)slow = slow MACD (default: 26)signal = signal line (default: 9)
6. Bollinger + RSI bollinger
Trades at the edges of the Bollinger Bands with RSI confirmation.
PUT: Price touches or breaks the upper band + RSI above the sell level (overbought).
period = period (default: 20)mult = standard deviations (default: 2.0, range: 1.0β4.0)rsi_buy = buy when RSI is below (default: 35)rsi_sell = sell when RSI is above (default: 65)
7. SuperTrend + MACD supertrend
SuperTrend flip confirmed by the MACD histogram.
PUT: SuperTrend flips from bullish to bearish + negative MACD histogram.
atr = ATR period (default: 10, range: 2β50)factor = multiplier (default: 3.0, range: 1.0β6.0)
8. Ichimoku ichimoku
Tenkan/Kijun crossover from the Ichimoku Kinko Hyo system, confirmed by the cloud.
PUT: Tenkan crosses below Kijun + price below both Spans (below the cloud).
tenkan = Tenkan/conversion line (default: 9, range: 2β60)kijun = Kijun/base line (default: 26, range: 5β120)span_b = Senkou Span B (default: 52, range: 10β200)
9. RSI Reversal rsi_rev
Trades reversals from the RSI extreme zones (overbought/oversold).
PUT: RSI crosses above the overbought level (e.g. rises above 70 β downward reversal expected).
rsi = RSI period (default: 14, range: 2β50)oversold = oversold level (default: 30, range: 5β45)overbought = overbought level (default: 70, range: 55β95)
10. Double Reversal reversao_dupla
Bollinger + RSI with a stricter trigger: it only enters when two independent signals agree on the same closed candle.
PUT: the candle closes above the upper band and RSI(14), which was above 70, crosses back below 70.
reversao_dupla to estrategias. The difference from card 6 is the RSI turn: an RSI of 22 that keeps falling is not a signal. Worked example and per-pair numbers: Double Reversal strategy.
11. Exhaustion + Band exaustao_bb
Fades an explosive candle that ends outside the band β the climax of a burst of orders.
PUT: the same three conditions with a bullish candle closing above the upper band.
exaustao_bb to estrategias. It fires on different candles from Double Reversal, so the two complement each other. Details: Exhaustion + Band strategy.
12. CCI Reversal
Mean-reversion bet with the Commodity Channel Index: when CCI reaches an extreme, the bot bets on price returning toward its average.
PUT: CCI at the high extreme (price stretched above its average).
config_bot.ini key for it. In the study it mostly repeated what Bollinger already says.
13. Z-Score
Measures how many standard deviations the close is from its moving average and treats a large deviation as a stretch likely to revert.
PUT: strongly positive Z-Score (close far above the average).
config_bot.ini key is documented here. Same family as Bollinger and CCI, so it adds little as an extra vote next to them.
Which strategies to enable β what the site's tests found
The site tested all 13 strategies on 45+ days of real M1 candles (8 forex pairs, Deriv data feed), split into train, test and a "fresh" window that no tuning ever saw, keeping only results with n β₯ 150 signals. Out-of-sample results:
| Strategy | Out-of-sample win rate | Verdict / how to use it |
|---|---|---|
Double Reversal (reversao_dupla) | ~57β61% | Approved β best in the catalog |
Exhaustion + Band (exaustao_bb) | ~57β59% | Approved β fires on different candles from Double Reversal |
RSI Reversal (rsi_rev) | ~52β55% | Borderline β auxiliary vote only |
| CCI Reversal / Z-Score (and Stochastic reversal) | ~52β56% | Redundant with Bollinger β same idea |
| Bollinger + RSI / RSI + MA / Triple Confirmation | ~51β55% | Weak on their own |
| Strong Trend / Pullback / MACD Cross / SuperTrend / Ichimoku | ~46β49% | Failed on M1 β they lose money |
Honest recommendation for the default 60-second period (M1):
- Leave the five failed strategies off on M1: Strong Trend, Pullback, MACD Cross, SuperTrend and Ichimoku measured ~46β49%, below break-even at any payout. The 1-minute real-forex chart tends to revert to the mean during market hours, which is exactly what trend rules bet against.
- Start from the two approved ones:
estrategias = reversao_dupla,exaustao_bbinindividualmode. Because they fire on different candles, running both roughly doubles the number of signals without lowering accuracy. - Use RSI Reversal, CCI Reversal and Z-Score only as extra votes in majority mode β never as the only trigger.
- Avoid OTC pairs: on
_otcpairs nothing beat ~50% (is OTC random?). - Prefer a 2-candle expiry: on Exhaustion + Band it measured 60.8% vs 57.5% with 1 candle β about 3 percentage points for free.
- Pick the hours: the edge concentrated between 09:00β10:59 and 18:00β23:59 (UTCβ3); Friday was the worst day (hours study). USD/JPY and GBP/JPY kept their edge in the fresh window (details).
Nothing came close to 70% (why), and even 57β61% only pays when it sits above the break-even for your payout β 55.6% at 80%. Full methodology: tested strategies.
10. Customize with AI (ChatGPT, Claude, etc.)
The code is pure open-source Python. You can use any AI to create new strategies or modify existing ones. Example prompts:
# Example 1: Add a new strategy
"I want to add a strategy based on Stochastic + Volume.
When %K crosses above %D in the 20 zone and volume is
above average, enter CALL. Here is the bot.py code."
# Example 2: Change parameters
"Change the bollinger strategy to use period 30 instead
of 20, and buy RSI below 25 instead of 35."
# Example 3: New filter
"Add a time filter to bot.py: only trade from 09:00 to
17:00 UTC. Outside those hours the bot should wait."
# Example 4: Risk management
"Change the bot to stop trading an asset once it
has 3 losses in a row, and only resume the next day."
Copy the contents of bot.py (or a part of it), paste it into ChatGPT/Claude and describe the change in plain language. The AI returns the modified code. You don't need to know how to code, but take two precautions: keep a copy of the original bot.py before replacing it, and always run modified code on demo first. A rule written by an AI is a new, untested strategy β judge it with the same break-even and 150-trade yardstick as any other.
11. File Structure
IaTraderProBot/
βββ bot.py # Bot engine β strategies + Quotex connection
βββ painel.py # Streamlit web panel (visual interface)
βββ config_bot.ini # Settings (edit in the panel or in Notepad)
βββ instalar.bat # Install script (run the first time)
βββ iniciar_painel.bat # Starts the panel in the browser
βββ buscar_ativos.py # Fetches the live asset list from Quotex
βββ requirements.txt # Python dependencies
βββ logo.svg # Bot logo
βββ .streamlit/ # Streamlit visual settings
βββ pyquotex/ # Quotex connection library (unofficial API)The bot also ships with simular_csv.py, a backtest script that runs a strategy over candles stored in a CSV file and reports how it would have done on that past data. It is the way to repeat the site's study on your own pairs before risking anything.
12. Reference: config_bot.ini
All settings are saved in this file. You can edit from the panel or directly in Notepad:
; IaTraderPro Bot settings
[bot]
conta = demo ; demo or real
pares = EURUSD_otc ; up to 3, comma-separated
periodo = 60 ; timeframe in seconds
stake_tipo = fixo ; fixo (fixed) or percent
stake_pct = 1.0 ; % of balance (if stake_tipo = percent)
stake_fixo = 5 ; fixed amount (if stake_tipo = fixo)
estrategias = tendencia_forte,pullback ; enabled strategies
params = {} ; parameters (JSON, editable in the panel)
modo = individual ; individual or maioria (majority)
maioria_min = 0 ; 0 = automatic (half + 1)
payout_min = 80 ; minimum payout % to trade
adx_min = 25 ; minimum ADX for Strong Trend and Pullback
pausar_apos_perdas = 0 ; 0 = disabled
cooldown_min = 15 ; pause length in minutes
martingale = nao ; sim (yes) or nao (no)
martingale_max = 2 ; maximum martingale steps
martingale_fator = 2.2 ; multiplier
max_trades = 5000 ; trade limit
stop_loss_dia = ; e.g. -50 (empty = no limit)
stop_win_dia = ; e.g. 100 (empty = no limit)Three things to change before using this example file as-is:
pares = EURUSD_otconly shows the format. OTC measured ~50% in the study, so write real pairs instead.estrategias = tendencia_forte,pullbacklists two strategies that failed the M1 test (~46β49%). A reversal-based example:estrategias = reversao_dupla,exaustao_bb.- An empty
stop_loss_diameans no daily loss limit at all. Fill it in even on demo (e.g.-50) so you practise the same discipline you will need on a real account.
13. Daily Target Plan β built-in bankroll management
Beyond simple stop loss/win, the bot ships a level-based daily target system (unique to IaTraderPro): you set a base stake (e.g. $50) and a step (e.g. +$10). At level 1 the bot trades $50 and stops for the day after winning 3x the stake ($150) or losing 5x. It only levels up on days that hit the target β a losing day repeats the level. A level cap (e.g. 10) bounds your maximum risk.
| Level | Stake (base 50, step +10) | Daily target (3x) | Daily stop (5x) |
|---|---|---|---|
| 1 | 50 | 150 | 250 |
| 2 | 60 | 180 | 300 |
| 5 | 90 | 270 | 450 |
| 10 (cap) | 140 | 420 | 700 |
The table makes the risk visible: at level 10 one bad day can cost 700, so choose the base stake and the level cap so that this amount stays a small fraction of your balance.
In simulations on real data, target 3x with stop 5x was the most consistent of 25 tested configurations. Being honest: bankroll management is discipline, not statistical edge β it controls how much you risk, not the signal's accuracy. Enable it in the panel's "Risk" tab.
14. Troubleshooting
| Problem | Likely cause | What to do |
|---|---|---|
python --version in CMD says "'python' is not recognizedβ¦" | "Add Python to PATH" was not ticked during installation | Run the Python installer again, tick that option, then open a new CMD window |
| instalar.bat stops with an error | Spaces or accented characters in the folder path, or the internet dropped during the install | Move the folder to a simple path such as C:\IaTraderProBot and run it again |
| The panel does not open in the browser | The browser did not open by itself, or the CMD window was closed | Run iniciar_painel.bat again and open http://localhost:8501 yourself |
| The bot is running but no trades happen | Asset payout below payout_min; not enough votes in majority mode; cooldown active | Check the asset status in the panel. Reversal strategies do not fire every minute β long waits are normal |
| Login fails | Wrong e-mail/password, or the broker changed its site (unofficial API) | Log in to the broker directly in the browser first; then download the latest bot version |
| The bot stopped by itself mid-day | stop_loss_dia, stop_win_dia, max_trades or the daily target was reached | That is by design. Raising the limit and restarting the same day is the mistake those limits exist to prevent |
Checklist before a real account
- At least 150 demo trades, with a win rate above the break-even for your payout.
- Real (non-OTC) pairs, and none of the strategies that failed the M1 test enabled.
stop_loss_diafilled in and martingale off (or you know the full loss of one martingale sequence).- The daily stop at your highest daily-target level is a small share of your balance.
- You have checked the rules where you live: binary options legality by country.
See also: Quotex API in Python Β· IQ Option API Β· Deriv bot Β· FAQ