Strategy
π€ RussBot is a free, open-source binary options trading bot for PocketOption, built on BinaryOptionsToolsV2 β Get it on GitLab
π¬ Need help? Join the Chipa Discord Β· β‘ Go no-code with ChipaEditor
RussBot implements a multi-indicator confluence strategy: it only trades when several independent signals agree at the same moment. This page explains each rule and the reasoning behind it.
The Setup
| Parameter | Value | Why |
|---|---|---|
| Candle timeframe | 15 seconds | Matches the expiry β each signal candle maps to one option |
| Expiry | 15 seconds | Ultra-short-term momentum plays |
| EMA period | 10 | Fast-reacting trend baseline |
| CCI period | 7 | Sensitive overbought/oversold detector |
| MACD | 12, 26, 9 | Momentum confirmation and minimum-data gate |
| Martingale | None | Flat staking keeps risk per trade constant |
| Trade cooldown | 16 seconds | One position at a time (expiry + 1s buffer) |
Buy (CALL) Signal
All four conditions must be true on the same candle:
| # | Condition | Code check | What it tells us |
|---|---|---|---|
| 1 | Green candle | close > open | Immediate buying pressure |
| 2 | Price above EMA | close > EMA(10) | Price has crossed to the bullish side of the trend line |
| 3 | CCI touches +100 | abs(CCI - 100) <= 10 | Momentum strong enough to reach the overbought threshold |
| 4 | EMA rising | EMA now > EMA previous | The short-term trend itself is turning up |
Sell (PUT) Signal
The exact mirror image:
| # | Condition | Code check | What it tells us |
|---|---|---|---|
| 1 | Red candle | close < open | Immediate selling pressure |
| 2 | Price below EMA | close < EMA(10) | Price has crossed to the bearish side of the trend line |
| 3 | CCI touches β100 | abs(CCI + 100) <= 10 | Momentum strong enough to reach the oversold threshold |
| 4 | EMA falling | EMA now < EMA previous | The short-term trend itself is turning down |
How the Pieces Fit Together
- Trend identification β the EMA(10) defines the micro-trend. Rules 2 and 4 require both price position and EMA slope to agree, filtering out counter-trend noise.
- Entry timing β CCI at Β±100 (rule 3) marks the moment momentum reaches an extreme. The Β±10 tolerance window means the bot fires as CCI touches the level rather than long after it has blown through.
- Confirmation β the candle color (rule 1) is the final sanity check that the current bar is actually moving in the signal direction.
- Execution β only when all four align does the bot place a 15-second option via
api.buy()orapi.sell().
The MACD(12, 26, 9) is calculated on every candle and displayed in the analysis output; its 26-period slow EMA also acts as the strategyβs minimum-data gate β the bot refuses to trade until it has at least 26 candles, so every indicator is statistically meaningful.
Signal Evaluation in Code
The actual buy check from trading_bot.py:
def check_buy_signal(self, indicators: Dict, current_candle: Dict) -> bool:
current_close = float(current_candle.get('close', 0))
current_open = float(current_candle.get('open', current_close))
current_ema = indicators['ema']
current_cci = indicators['cci']
# Check if current candle is green
is_green_candle = current_close > current_open
# Check if price crosses EMA up (close above EMA)
price_above_ema = current_close > current_ema
# Check if CCI touches 100 (within tolerance)
cci_touches_100 = abs(current_cci - 100) <= 10 # 10 point tolerance
# Check EMA trend (crosses from down to up)
ema_uptrend = False
if self.prev_ema is not None:
ema_uptrend = current_ema > self.prev_ema
return is_green_candle and price_above_ema and cci_touches_100 and ema_uptrendRisk Management Rules
- No martingale β the stake never increases after a loss. Every trade risks the same configured amount.
- 16-second cooldown β
min_trade_intervalguarantees the previous option has expired (15s) plus a 1-second buffer before a new one can open. The bot never stacks positions. - Payout filtering (multi-asset mode) β assets paying 90% or less are skipped entirely, so winners always earn near-full payout. See Payout Checker.
- All-or-nothing signals β a single failing condition vetoes the trade. Expect the bot to sit idle in ranging or unclear markets; that is by design.
Tuning the Strategy
Every threshold is configurable β see Configuration:
- Raise
cci_tolerance(default 10) to get more signals at lower quality; lower it for fewer, stricter entries. - Change
ema_periodto make the trend baseline faster (smaller) or smoother (larger). - Adjust
min_payout_percentageto trade a wider or narrower set of assets in multi-asset mode.
π‘ Want to experiment with variations of this strategy β different indicators, timeframes, or entry rules β without editing Python? ChipaEditor lets you build and backtest strategy ideas no-code, and the #trading-bots channel on the Chipa Discord is full of people tuning RussBot setups.
Risk Disclaimer
β οΈ No strategy wins every trade. 15-second binary options are extremely volatile instruments. Use a demo account until you trust the behavior, and never risk money you cannot afford to lose.