Repository files navigation

BinaryOptionsTools V2

DiscordPython VersionRustLicense

A high-performance, cross-platform package for automating binary options trading. Built with Rust for speed and memory safety, featuring Python bindings for ease of use.


Support the Development

This project is maintained by the ChipaDevTeam. Your support helps keep the updates coming.

Support ChannelLink
PayPalSupport ChipaDevTeam
PocketOption (Six)Join via Six's Affiliate Link
PocketOption (Chipa)Join via Chipa's Affiliate Link

Table of Contents


Overview

BinaryOptionsTools v2 is a complete rewrite of the original library. It bridges the gap between low-level performance and high-level usability.

Key Highlights

  • Rust Core: Maximum performance, concurrency, and memory safety.
  • Python Bindings: Seamless integration with the Python ecosystem via PyO3.
  • WebSocket Native: Real-time market data streaming and instant trade execution.
  • Robust Connectivity: Automatic reconnection, keep-alive monitoring, and robust error handling.
  • Type Safety: Strong typing across both Rust and Python interfaces.

Supported Platforms

  • PocketOption (Full Support: Quick Trading, Pending Orders, Assets, History)
  • ExpertOption (Alpha/Beta: Account Info, Keep-Alive, WebSocket Core)
  • IQ Option (On Roadmap)

Features

Trading and Account

  • Execution: Place Buy/Sell orders instantly.
  • Monitoring: Check trade results (Win/Loss) with configurable timeouts.
  • Balances: Real-time account balance retrieval.
  • Portfolio: Access active positions and closed deal history.

Market Data & Backtesting

  • Live Stream: Subscribe to real-time candles and price ticks.
  • Historical: Fetch OHLC data for analysis.
  • Virtual Market: Built-in simulator for backtesting strategies without financial risk.
  • Server Sync: Precision timing via NTP-like synchronization.

Bot Framework (New)

  • Event-Driven: Hooks for on_start and on_candle with JSON candle data.
  • Contextual API: Write once, run on any platform (PocketOption, ExpertOption, or Virtual).
  • Strategy Trait: Easily implement and swap trading algorithms.
  • Virtual Market: Built-in simulator for backtesting strategies without financial risk.

Framework Utilities

  • Raw Handler API: Low-level WebSocket access for custom protocols.
  • Validators: Built-in message filtering system.
  • Asset Logic: Automatic verification of trading pairs and OTC availability.

Architecture

The system uses a layered architecture to ensure stability and speed.

graph TD
User[User Application <br/> Python/Rust/JS] --> Bindings[Language Bindings <br/> PyO3 Async/Sync Wrappers]
Bindings --> Core[Rust Core Library]
subgraph Rust Core
Core --> WS[WebSocket Client <br/> Tungstenite]
Core --> Mgr[Connection Manager]
Core --> Router[Message Router & Validators]
end
WS <--> API[PocketOption WebSocket API]
Loading

Installation

Python

Option A: Prebuilt Wheels (Recommended)

Install directly from our GitHub releases. Supports Python 3.9 - 3.12.

Windows

pip install "https://github.com/ChipaDevTeam/BinaryOptionsTools-v2/releases/download/v0.2.9/binaryoptionstoolsv2-0.2.9-cp39-abi3-win_amd64.whl"

Linux

pip install "https://github.com/ChipaDevTeam/BinaryOptionsTools-v2/releases/download/v0.2.9/binaryoptionstoolsv2-0.2.9-cp39-abi3-manylinux_2_28_x86_64.whl"

macOS (Apple Silicon)

pip install "https://github.com/ChipaDevTeam/BinaryOptionsTools-v2/releases/download/v0.2.9/binaryoptionstoolsv2-0.2.9-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl"

Option B: Build from Source

Requires rustc, cargo, and maturin.

git clone https://github.com/ChipaDevTeam/BinaryOptionsTools-v2.git
cd BinaryOptionsTools-v2/BinaryOptionsToolsV2
pip install maturin
maturin develop --release

Option C: Build from Source Automatically

Requires rustc, cargo, and maturin.

pip install git+https://github.com/ChipaDevTeam/BinaryOptionsTools-v2.git#subdirectory=python

Rust

Add this to your Cargo.toml:

[dependencies]
binary_options_tools = { path = "crates/binary_options_tools" }

Quick Start

Async API (Recommended)

importasyncioimportosfromBinaryOptionsToolsV2importPocketOptionAsyncasyncdefmain():
ssid=os.getenv("POCKET_OPTION_SSID")
asyncwithPocketOptionAsync(ssid=ssid) asclient:
balance=awaitclient.balance()
print(f"Balance: ${balance}")
trade_id, deal=awaitclient.buy("EURUSD_otc", 1.0, 60)
print(f"Outcome: {awaitclient.check_win(trade_id)}")
if__name__=="__main__":
asyncio.run(main())

Bot Framework & Strategy (High-Level)

Implement the Strategy trait (Rust) or inherit from PyStrategy (Python) for structured bot development.

importasyncioimportjsonimportosfromBinaryOptionsToolsV2importPyBot, PyStrategy, RawPocketOptionclassMyStrategy(PyStrategy):
defon_start(self, ctx):
print("Strategy started!")
defon_candle(self, ctx, asset, candle_json):
candle=json.loads(candle_json)
ifcandle["close"] >candle["open"]:
asyncio.create_task(ctx.buy(asset, 1.0, 60))
asyncdefmain():
ssid=os.getenv("POCKET_OPTION_SSID")
client=awaitRawPocketOption.create(ssid)
strategy=MyStrategy()
bot=PyBot(client, strategy)
bot.add_asset("EURUSD_otc", 60) # Monitor 60s candlesawaitbot.run()
if__name__=="__main__":
asyncio.run(main())

Real-time Data Streaming

asyncwithPocketOptionAsync(ssid="...") asclient:
asyncforcandleinawaitclient.subscribe_symbol("EURUSD_otc"):
print(f"Price: {candle['close']}")

Advanced Usage

For complex implementations, you can access the Raw Handler API. This allows you to construct custom WebSocket messages and filter responses.

fromBinaryOptionsToolsV2.validatorimportValidator# Create a validator to filter messages containing "balance"validator=Validator.contains("balance")
handler=awaitclient.create_raw_handler(validator)
# Send raw JSON requestawaithandler.send_text('42["getBalance"]')
# Listen to the filtered streamasyncformessageinawaithandler.subscribe():
print(f"Raw Update: {message}")

Note on Authentication: Authentication is handled via the SSID cookie. See our Tutorials Directory for instructions on how to extract this from your browser.


Examples

The examples/ directory contains ready-to-run scripts for both async and sync APIs.

Python Async

ExampleDescription
trade.pyBasic buy/sell with check_win
get_balance.pyAccount balance retrieval
get_candles.pyHistorical candle data
subscribe_symbol.pyReal-time candle subscription
strategy_example.pyPyBot/PyStrategy framework
comprehensive_demo.pyFull API walkthrough
raw_send.pyRaw WebSocket messages
create_raw_order.pyRaw order with validator
validator.pyValidator usage examples

Python Sync

A parallel set of examples using the synchronous PocketOption client is available in examples/python/sync/.

Other Languages

UniFFI-generated examples for Go, Kotlin, Swift, Ruby, C#, and Rust are available in their respective subdirectories under examples/.


Roadmap

  • PocketOption: Quick Trading & Pending Orders
  • ExpertOption: Core Implementation (Alpha/Beta)
  • Framework: Bot & Strategy System
  • Backtesting: Virtual Market Simulator
  • Platform: IQ Option Integration
  • Core: Multi-language support via UniFFI (Kotlin, Swift, Go, C#)
  • Core: JavaScript/TypeScript Bindings
  • Core: WebAssembly (WASM) Support
  • Tools: Advanced Strategy Optimizer

Contributing

We welcome contributions!

  1. Fork the repo.
  2. Ensure tests pass (cargo test & pytest).
  3. Submit a Pull Request with clear descriptions.

Legal and Disclaimer

License

  • Personal Use: Free for personal, educational, and non-commercial use.
  • Commercial Use: Requires explicit written permission. Contact us on Discord.
  • See LICENSE for details.

Risk Warning

This software is provided "AS IS" without warranty of any kind.

  • Binary options trading involves high risk and may result in the loss of capital.
  • The authors and ChipaDevTeam are NOT responsible for any financial losses, trading errors, or software bugs.
  • Use this software entirely at your own risk.

Documentation | API Reference | Discord Community | Agents & AI

About

High-performance suite for binary options automation. Features full async support, robust error handling, and multi-platform integration.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

BinaryOptionsTools V2

DiscordPython VersionRustLicense

A high-performance, cross-platform package for automating binary options trading. Built with Rust for speed and memory safety, featuring Python bindings for ease of use.


Support the Development

This project is maintained by the ChipaDevTeam. Your support helps keep the updates coming.

Support ChannelLink
PayPalSupport ChipaDevTeam
PocketOption (Six)Join via Six's Affiliate Link
PocketOption (Chipa)Join via Chipa's Affiliate Link

Table of Contents


Overview

BinaryOptionsTools v2 is a complete rewrite of the original library. It bridges the gap between low-level performance and high-level usability.

Key Highlights

  • Rust Core: Maximum performance, concurrency, and memory safety.
  • Python Bindings: Seamless integration with the Python ecosystem via PyO3.
  • WebSocket Native: Real-time market data streaming and instant trade execution.
  • Robust Connectivity: Automatic reconnection, keep-alive monitoring, and robust error handling.
  • Type Safety: Strong typing across both Rust and Python interfaces.

Supported Platforms

  • PocketOption (Full Support: Quick Trading, Pending Orders, Assets, History)
  • ExpertOption (Alpha/Beta: Account Info, Keep-Alive, WebSocket Core)
  • IQ Option (On Roadmap)

Features

Trading and Account

  • Execution: Place Buy/Sell orders instantly.
  • Monitoring: Check trade results (Win/Loss) with configurable timeouts.
  • Balances: Real-time account balance retrieval.
  • Portfolio: Access active positions and closed deal history.

Market Data & Backtesting

  • Live Stream: Subscribe to real-time candles and price ticks.
  • Historical: Fetch OHLC data for analysis.
  • Virtual Market: Built-in simulator for backtesting strategies without financial risk.
  • Server Sync: Precision timing via NTP-like synchronization.

Bot Framework (New)

  • Event-Driven: Hooks for on_start and on_candle with JSON candle data.
  • Contextual API: Write once, run on any platform (PocketOption, ExpertOption, or Virtual).
  • Strategy Trait: Easily implement and swap trading algorithms.
  • Virtual Market: Built-in simulator for backtesting strategies without financial risk.

Framework Utilities

  • Raw Handler API: Low-level WebSocket access for custom protocols.
  • Validators: Built-in message filtering system.
  • Asset Logic: Automatic verification of trading pairs and OTC availability.

Architecture

The system uses a layered architecture to ensure stability and speed.

graph TD
User[User Application <br/> Python/Rust/JS] --> Bindings[Language Bindings <br/> PyO3 Async/Sync Wrappers]
Bindings --> Core[Rust Core Library]
subgraph Rust Core
Core --> WS[WebSocket Client <br/> Tungstenite]
Core --> Mgr[Connection Manager]
Core --> Router[Message Router & Validators]
end
WS <--> API[PocketOption WebSocket API]
Loading

Installation

Python

Option A: Prebuilt Wheels (Recommended)

Install directly from our GitHub releases. Supports Python 3.9 - 3.12.

Windows

pip install "https://github.com/ChipaDevTeam/BinaryOptionsTools-v2/releases/download/v0.2.9/binaryoptionstoolsv2-0.2.9-cp39-abi3-win_amd64.whl"

Linux

pip install "https://github.com/ChipaDevTeam/BinaryOptionsTools-v2/releases/download/v0.2.9/binaryoptionstoolsv2-0.2.9-cp39-abi3-manylinux_2_28_x86_64.whl"

macOS (Apple Silicon)

pip install "https://github.com/ChipaDevTeam/BinaryOptionsTools-v2/releases/download/v0.2.9/binaryoptionstoolsv2-0.2.9-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl"

Option B: Build from Source

Requires rustc, cargo, and maturin.

git clone https://github.com/ChipaDevTeam/BinaryOptionsTools-v2.git
cd BinaryOptionsTools-v2/BinaryOptionsToolsV2
pip install maturin
maturin develop --release

Option C: Build from Source Automatically

Requires rustc, cargo, and maturin.

pip install git+https://github.com/ChipaDevTeam/BinaryOptionsTools-v2.git#subdirectory=python

Rust

Add this to your Cargo.toml:

[dependencies]
binary_options_tools = { path = "crates/binary_options_tools" }

Quick Start

Async API (Recommended)

importasyncioimportosfromBinaryOptionsToolsV2importPocketOptionAsyncasyncdefmain():
ssid=os.getenv("POCKET_OPTION_SSID")
asyncwithPocketOptionAsync(ssid=ssid) asclient:
balance=awaitclient.balance()
print(f"Balance: ${balance}")
trade_id, deal=awaitclient.buy("EURUSD_otc", 1.0, 60)
print(f"Outcome: {awaitclient.check_win(trade_id)}")
if__name__=="__main__":
asyncio.run(main())

Bot Framework & Strategy (High-Level)

Implement the Strategy trait (Rust) or inherit from PyStrategy (Python) for structured bot development.

importasyncioimportjsonimportosfromBinaryOptionsToolsV2importPyBot, PyStrategy, RawPocketOptionclassMyStrategy(PyStrategy):
defon_start(self, ctx):
print("Strategy started!")
defon_candle(self, ctx, asset, candle_json):
candle=json.loads(candle_json)
ifcandle["close"] >candle["open"]:
asyncio.create_task(ctx.buy(asset, 1.0, 60))
asyncdefmain():
ssid=os.getenv("POCKET_OPTION_SSID")
client=awaitRawPocketOption.create(ssid)
strategy=MyStrategy()
bot=PyBot(client, strategy)
bot.add_asset("EURUSD_otc", 60) # Monitor 60s candlesawaitbot.run()
if__name__=="__main__":
asyncio.run(main())

Real-time Data Streaming

asyncwithPocketOptionAsync(ssid="...") asclient:
asyncforcandleinawaitclient.subscribe_symbol("EURUSD_otc"):
print(f"Price: {candle['close']}")

Advanced Usage

For complex implementations, you can access the Raw Handler API. This allows you to construct custom WebSocket messages and filter responses.

fromBinaryOptionsToolsV2.validatorimportValidator# Create a validator to filter messages containing "balance"validator=Validator.contains("balance")
handler=awaitclient.create_raw_handler(validator)
# Send raw JSON requestawaithandler.send_text('42["getBalance"]')
# Listen to the filtered streamasyncformessageinawaithandler.subscribe():
print(f"Raw Update: {message}")

Note on Authentication: Authentication is handled via the SSID cookie. See our Tutorials Directory for instructions on how to extract this from your browser.


Examples

The examples/ directory contains ready-to-run scripts for both async and sync APIs.

Python Async

ExampleDescription
trade.pyBasic buy/sell with check_win
get_balance.pyAccount balance retrieval
get_candles.pyHistorical candle data
subscribe_symbol.pyReal-time candle subscription
strategy_example.pyPyBot/PyStrategy framework
comprehensive_demo.pyFull API walkthrough
raw_send.pyRaw WebSocket messages
create_raw_order.pyRaw order with validator
validator.pyValidator usage examples

Python Sync

A parallel set of examples using the synchronous PocketOption client is available in examples/python/sync/.

Other Languages

UniFFI-generated examples for Go, Kotlin, Swift, Ruby, C#, and Rust are available in their respective subdirectories under examples/.


Roadmap

  • PocketOption: Quick Trading & Pending Orders
  • ExpertOption: Core Implementation (Alpha/Beta)
  • Framework: Bot & Strategy System
  • Backtesting: Virtual Market Simulator
  • Platform: IQ Option Integration
  • Core: Multi-language support via UniFFI (Kotlin, Swift, Go, C#)
  • Core: JavaScript/TypeScript Bindings
  • Core: WebAssembly (WASM) Support
  • Tools: Advanced Strategy Optimizer

Contributing

We welcome contributions!

  1. Fork the repo.
  2. Ensure tests pass (cargo test & pytest).
  3. Submit a Pull Request with clear descriptions.

Legal and Disclaimer

License

  • Personal Use: Free for personal, educational, and non-commercial use.
  • Commercial Use: Requires explicit written permission. Contact us on Discord.
  • See LICENSE for details.

Risk Warning

This software is provided "AS IS" without warranty of any kind.

  • Binary options trading involves high risk and may result in the loss of capital.
  • The authors and ChipaDevTeam are NOT responsible for any financial losses, trading errors, or software bugs.
  • Use this software entirely at your own risk.

Documentation | API Reference | Discord Community | Agents & AI

About

High-performance suite for binary options automation. Features full async support, robust error handling, and multi-platform integration.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

BinaryOptionsTools V2

DiscordPython VersionRustLicense

A high-performance, cross-platform package for automating binary options trading. Built with Rust for speed and memory safety, featuring Python bindings for ease of use.


Support the Development

This project is maintained by the ChipaDevTeam. Your support helps keep the updates coming.

Support ChannelLink
PayPalSupport ChipaDevTeam
PocketOption (Six)Join via Six's Affiliate Link
PocketOption (Chipa)Join via Chipa's Affiliate Link

Table of Contents


Overview

BinaryOptionsTools v2 is a complete rewrite of the original library. It bridges the gap between low-level performance and high-level usability.

Key Highlights

  • Rust Core: Maximum performance, concurrency, and memory safety.
  • Python Bindings: Seamless integration with the Python ecosystem via PyO3.
  • WebSocket Native: Real-time market data streaming and instant trade execution.
  • Robust Connectivity: Automatic reconnection, keep-alive monitoring, and robust error handling.
  • Type Safety: Strong typing across both Rust and Python interfaces.

Supported Platforms

  • PocketOption (Full Support: Quick Trading, Pending Orders, Assets, History)
  • ExpertOption (Alpha/Beta: Account Info, Keep-Alive, WebSocket Core)
  • IQ Option (On Roadmap)

Features

Trading and Account

  • Execution: Place Buy/Sell orders instantly.
  • Monitoring: Check trade results (Win/Loss) with configurable timeouts.
  • Balances: Real-time account balance retrieval.
  • Portfolio: Access active positions and closed deal history.

Market Data & Backtesting

  • Live Stream: Subscribe to real-time candles and price ticks.
  • Historical: Fetch OHLC data for analysis.
  • Virtual Market: Built-in simulator for backtesting strategies without financial risk.
  • Server Sync: Precision timing via NTP-like synchronization.

Bot Framework (New)

  • Event-Driven: Hooks for on_start and on_candle with JSON candle data.
  • Contextual API: Write once, run on any platform (PocketOption, ExpertOption, or Virtual).
  • Strategy Trait: Easily implement and swap trading algorithms.
  • Virtual Market: Built-in simulator for backtesting strategies without financial risk.

Framework Utilities

  • Raw Handler API: Low-level WebSocket access for custom protocols.
  • Validators: Built-in message filtering system.
  • Asset Logic: Automatic verification of trading pairs and OTC availability.

Architecture

The system uses a layered architecture to ensure stability and speed.

graph TD
User[User Application <br/> Python/Rust/JS] --> Bindings[Language Bindings <br/> PyO3 Async/Sync Wrappers]
Bindings --> Core[Rust Core Library]
subgraph Rust Core
Core --> WS[WebSocket Client <br/> Tungstenite]
Core --> Mgr[Connection Manager]
Core --> Router[Message Router & Validators]
end
WS <--> API[PocketOption WebSocket API]
Loading

Installation

Python

Option A: Prebuilt Wheels (Recommended)

Install directly from our GitHub releases. Supports Python 3.9 - 3.12.

Windows

pip install "https://github.com/ChipaDevTeam/BinaryOptionsTools-v2/releases/download/v0.2.9/binaryoptionstoolsv2-0.2.9-cp39-abi3-win_amd64.whl"

Linux

pip install "https://github.com/ChipaDevTeam/BinaryOptionsTools-v2/releases/download/v0.2.9/binaryoptionstoolsv2-0.2.9-cp39-abi3-manylinux_2_28_x86_64.whl"

macOS (Apple Silicon)

pip install "https://github.com/ChipaDevTeam/BinaryOptionsTools-v2/releases/download/v0.2.9/binaryoptionstoolsv2-0.2.9-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl"

Option B: Build from Source

Requires rustc, cargo, and maturin.

git clone https://github.com/ChipaDevTeam/BinaryOptionsTools-v2.git
cd BinaryOptionsTools-v2/BinaryOptionsToolsV2
pip install maturin
maturin develop --release

Option C: Build from Source Automatically

Requires rustc, cargo, and maturin.

pip install git+https://github.com/ChipaDevTeam/BinaryOptionsTools-v2.git#subdirectory=python

Rust

Add this to your Cargo.toml:

[dependencies]
binary_options_tools = { path = "crates/binary_options_tools" }

Quick Start

Async API (Recommended)

importasyncioimportosfromBinaryOptionsToolsV2importPocketOptionAsyncasyncdefmain():
ssid=os.getenv("POCKET_OPTION_SSID")
asyncwithPocketOptionAsync(ssid=ssid) asclient:
balance=awaitclient.balance()
print(f"Balance: ${balance}")
trade_id, deal=awaitclient.buy("EURUSD_otc", 1.0, 60)
print(f"Outcome: {awaitclient.check_win(trade_id)}")
if__name__=="__main__":
asyncio.run(main())

Bot Framework & Strategy (High-Level)

Implement the Strategy trait (Rust) or inherit from PyStrategy (Python) for structured bot development.

importasyncioimportjsonimportosfromBinaryOptionsToolsV2importPyBot, PyStrategy, RawPocketOptionclassMyStrategy(PyStrategy):
defon_start(self, ctx):
print("Strategy started!")
defon_candle(self, ctx, asset, candle_json):
candle=json.loads(candle_json)
ifcandle["close"] >candle["open"]:
asyncio.create_task(ctx.buy(asset, 1.0, 60))
asyncdefmain():
ssid=os.getenv("POCKET_OPTION_SSID")
client=awaitRawPocketOption.create(ssid)
strategy=MyStrategy()
bot=PyBot(client, strategy)
bot.add_asset("EURUSD_otc", 60) # Monitor 60s candlesawaitbot.run()
if__name__=="__main__":
asyncio.run(main())

Real-time Data Streaming

asyncwithPocketOptionAsync(ssid="...") asclient:
asyncforcandleinawaitclient.subscribe_symbol("EURUSD_otc"):
print(f"Price: {candle['close']}")

Advanced Usage

For complex implementations, you can access the Raw Handler API. This allows you to construct custom WebSocket messages and filter responses.

fromBinaryOptionsToolsV2.validatorimportValidator# Create a validator to filter messages containing "balance"validator=Validator.contains("balance")
handler=awaitclient.create_raw_handler(validator)
# Send raw JSON requestawaithandler.send_text('42["getBalance"]')
# Listen to the filtered streamasyncformessageinawaithandler.subscribe():
print(f"Raw Update: {message}")

Note on Authentication: Authentication is handled via the SSID cookie. See our Tutorials Directory for instructions on how to extract this from your browser.


Examples

The examples/ directory contains ready-to-run scripts for both async and sync APIs.

Python Async

ExampleDescription
trade.pyBasic buy/sell with check_win
get_balance.pyAccount balance retrieval
get_candles.pyHistorical candle data
subscribe_symbol.pyReal-time candle subscription
strategy_example.pyPyBot/PyStrategy framework
comprehensive_demo.pyFull API walkthrough
raw_send.pyRaw WebSocket messages
create_raw_order.pyRaw order with validator
validator.pyValidator usage examples

Python Sync

A parallel set of examples using the synchronous PocketOption client is available in examples/python/sync/.

Other Languages

UniFFI-generated examples for Go, Kotlin, Swift, Ruby, C#, and Rust are available in their respective subdirectories under examples/.


Roadmap

  • PocketOption: Quick Trading & Pending Orders
  • ExpertOption: Core Implementation (Alpha/Beta)
  • Framework: Bot & Strategy System
  • Backtesting: Virtual Market Simulator
  • Platform: IQ Option Integration
  • Core: Multi-language support via UniFFI (Kotlin, Swift, Go, C#)
  • Core: JavaScript/TypeScript Bindings
  • Core: WebAssembly (WASM) Support
  • Tools: Advanced Strategy Optimizer

Contributing

We welcome contributions!

  1. Fork the repo.
  2. Ensure tests pass (cargo test & pytest).
  3. Submit a Pull Request with clear descriptions.

Legal and Disclaimer

License

  • Personal Use: Free for personal, educational, and non-commercial use.
  • Commercial Use: Requires explicit written permission. Contact us on Discord.
  • See LICENSE for details.

Risk Warning

This software is provided "AS IS" without warranty of any kind.

  • Binary options trading involves high risk and may result in the loss of capital.
  • The authors and ChipaDevTeam are NOT responsible for any financial losses, trading errors, or software bugs.
  • Use this software entirely at your own risk.

Documentation | API Reference | Discord Community | Agents & AI

About

High-performance suite for binary options automation. Features full async support, robust error handling, and multi-platform integration.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

BinaryOptionsTools V2

DiscordPython VersionRustLicense

A high-performance, cross-platform package for automating binary options trading. Built with Rust for speed and memory safety, featuring Python bindings for ease of use.


Support the Development

This project is maintained by the ChipaDevTeam. Your support helps keep the updates coming.

Support ChannelLink
PayPalSupport ChipaDevTeam
PocketOption (Six)Join via Six's Affiliate Link
PocketOption (Chipa)Join via Chipa's Affiliate Link

Table of Contents


Overview

BinaryOptionsTools v2 is a complete rewrite of the original library. It bridges the gap between low-level performance and high-level usability.

Key Highlights

  • Rust Core: Maximum performance, concurrency, and memory safety.
  • Python Bindings: Seamless integration with the Python ecosystem via PyO3.
  • WebSocket Native: Real-time market data streaming and instant trade execution.
  • Robust Connectivity: Automatic reconnection, keep-alive monitoring, and robust error handling.
  • Type Safety: Strong typing across both Rust and Python interfaces.

Supported Platforms

  • PocketOption (Full Support: Quick Trading, Pending Orders, Assets, History)
  • ExpertOption (Alpha/Beta: Account Info, Keep-Alive, WebSocket Core)
  • IQ Option (On Roadmap)

Features

Trading and Account

  • Execution: Place Buy/Sell orders instantly.
  • Monitoring: Check trade results (Win/Loss) with configurable timeouts.
  • Balances: Real-time account balance retrieval.
  • Portfolio: Access active positions and closed deal history.

Market Data & Backtesting

  • Live Stream: Subscribe to real-time candles and price ticks.
  • Historical: Fetch OHLC data for analysis.
  • Virtual Market: Built-in simulator for backtesting strategies without financial risk.
  • Server Sync: Precision timing via NTP-like synchronization.

Bot Framework (New)

  • Event-Driven: Hooks for on_start and on_candle with JSON candle data.
  • Contextual API: Write once, run on any platform (PocketOption, ExpertOption, or Virtual).
  • Strategy Trait: Easily implement and swap trading algorithms.
  • Virtual Market: Built-in simulator for backtesting strategies without financial risk.

Framework Utilities

  • Raw Handler API: Low-level WebSocket access for custom protocols.
  • Validators: Built-in message filtering system.
  • Asset Logic: Automatic verification of trading pairs and OTC availability.

Architecture

The system uses a layered architecture to ensure stability and speed.

graph TD
User[User Application <br/> Python/Rust/JS] --> Bindings[Language Bindings <br/> PyO3 Async/Sync Wrappers]
Bindings --> Core[Rust Core Library]
subgraph Rust Core
Core --> WS[WebSocket Client <br/> Tungstenite]
Core --> Mgr[Connection Manager]
Core --> Router[Message Router & Validators]
end
WS <--> API[PocketOption WebSocket API]
Loading

Installation

Python

Option A: Prebuilt Wheels (Recommended)

Install directly from our GitHub releases. Supports Python 3.9 - 3.12.

Windows

pip install "https://github.com/ChipaDevTeam/BinaryOptionsTools-v2/releases/download/v0.2.9/binaryoptionstoolsv2-0.2.9-cp39-abi3-win_amd64.whl"

Linux

pip install "https://github.com/ChipaDevTeam/BinaryOptionsTools-v2/releases/download/v0.2.9/binaryoptionstoolsv2-0.2.9-cp39-abi3-manylinux_2_28_x86_64.whl"

macOS (Apple Silicon)

pip install "https://github.com/ChipaDevTeam/BinaryOptionsTools-v2/releases/download/v0.2.9/binaryoptionstoolsv2-0.2.9-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl"

Option B: Build from Source

Requires rustc, cargo, and maturin.

git clone https://github.com/ChipaDevTeam/BinaryOptionsTools-v2.git
cd BinaryOptionsTools-v2/BinaryOptionsToolsV2
pip install maturin
maturin develop --release

Option C: Build from Source Automatically

Requires rustc, cargo, and maturin.

pip install git+https://github.com/ChipaDevTeam/BinaryOptionsTools-v2.git#subdirectory=python

Rust

Add this to your Cargo.toml:

[dependencies]
binary_options_tools = { path = "crates/binary_options_tools" }

Quick Start

Async API (Recommended)

importasyncioimportosfromBinaryOptionsToolsV2importPocketOptionAsyncasyncdefmain():
ssid=os.getenv("POCKET_OPTION_SSID")
asyncwithPocketOptionAsync(ssid=ssid) asclient:
balance=awaitclient.balance()
print(f"Balance: ${balance}")
trade_id, deal=awaitclient.buy("EURUSD_otc", 1.0, 60)
print(f"Outcome: {awaitclient.check_win(trade_id)}")
if__name__=="__main__":
asyncio.run(main())

Bot Framework & Strategy (High-Level)

Implement the Strategy trait (Rust) or inherit from PyStrategy (Python) for structured bot development.

importasyncioimportjsonimportosfromBinaryOptionsToolsV2importPyBot, PyStrategy, RawPocketOptionclassMyStrategy(PyStrategy):
defon_start(self, ctx):
print("Strategy started!")
defon_candle(self, ctx, asset, candle_json):
candle=json.loads(candle_json)
ifcandle["close"] >candle["open"]:
asyncio.create_task(ctx.buy(asset, 1.0, 60))
asyncdefmain():
ssid=os.getenv("POCKET_OPTION_SSID")
client=awaitRawPocketOption.create(ssid)
strategy=MyStrategy()
bot=PyBot(client, strategy)
bot.add_asset("EURUSD_otc", 60) # Monitor 60s candlesawaitbot.run()
if__name__=="__main__":
asyncio.run(main())

Real-time Data Streaming

asyncwithPocketOptionAsync(ssid="...") asclient:
asyncforcandleinawaitclient.subscribe_symbol("EURUSD_otc"):
print(f"Price: {candle['close']}")

Advanced Usage

For complex implementations, you can access the Raw Handler API. This allows you to construct custom WebSocket messages and filter responses.

fromBinaryOptionsToolsV2.validatorimportValidator# Create a validator to filter messages containing "balance"validator=Validator.contains("balance")
handler=awaitclient.create_raw_handler(validator)
# Send raw JSON requestawaithandler.send_text('42["getBalance"]')
# Listen to the filtered streamasyncformessageinawaithandler.subscribe():
print(f"Raw Update: {message}")

Note on Authentication: Authentication is handled via the SSID cookie. See our Tutorials Directory for instructions on how to extract this from your browser.


Examples

The examples/ directory contains ready-to-run scripts for both async and sync APIs.

Python Async

ExampleDescription
trade.pyBasic buy/sell with check_win
get_balance.pyAccount balance retrieval
get_candles.pyHistorical candle data
subscribe_symbol.pyReal-time candle subscription
strategy_example.pyPyBot/PyStrategy framework
comprehensive_demo.pyFull API walkthrough
raw_send.pyRaw WebSocket messages
create_raw_order.pyRaw order with validator
validator.pyValidator usage examples

Python Sync

A parallel set of examples using the synchronous PocketOption client is available in examples/python/sync/.

Other Languages

UniFFI-generated examples for Go, Kotlin, Swift, Ruby, C#, and Rust are available in their respective subdirectories under examples/.


Roadmap

  • PocketOption: Quick Trading & Pending Orders
  • ExpertOption: Core Implementation (Alpha/Beta)
  • Framework: Bot & Strategy System
  • Backtesting: Virtual Market Simulator
  • Platform: IQ Option Integration
  • Core: Multi-language support via UniFFI (Kotlin, Swift, Go, C#)
  • Core: JavaScript/TypeScript Bindings
  • Core: WebAssembly (WASM) Support
  • Tools: Advanced Strategy Optimizer

Contributing

We welcome contributions!

  1. Fork the repo.
  2. Ensure tests pass (cargo test & pytest).
  3. Submit a Pull Request with clear descriptions.

Legal and Disclaimer

License

  • Personal Use: Free for personal, educational, and non-commercial use.
  • Commercial Use: Requires explicit written permission. Contact us on Discord.
  • See LICENSE for details.

Risk Warning

This software is provided "AS IS" without warranty of any kind.

  • Binary options trading involves high risk and may result in the loss of capital.
  • The authors and ChipaDevTeam are NOT responsible for any financial losses, trading errors, or software bugs.
  • Use this software entirely at your own risk.

Documentation | API Reference | Discord Community | Agents & AI

About

High-performance suite for binary options automation. Features full async support, robust error handling, and multi-platform integration.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

BinaryOptionsTools V2

DiscordPython VersionRustLicense

A high-performance, cross-platform package for automating binary options trading. Built with Rust for speed and memory safety, featuring Python bindings for ease of use.


Support the Development

This project is maintained by the ChipaDevTeam. Your support helps keep the updates coming.

Support ChannelLink
PayPalSupport ChipaDevTeam
PocketOption (Six)Join via Six's Affiliate Link
PocketOption (Chipa)Join via Chipa's Affiliate Link

Table of Contents


Overview

BinaryOptionsTools v2 is a complete rewrite of the original library. It bridges the gap between low-level performance and high-level usability.

Key Highlights

  • Rust Core: Maximum performance, concurrency, and memory safety.
  • Python Bindings: Seamless integration with the Python ecosystem via PyO3.
  • WebSocket Native: Real-time market data streaming and instant trade execution.
  • Robust Connectivity: Automatic reconnection, keep-alive monitoring, and robust error handling.
  • Type Safety: Strong typing across both Rust and Python interfaces.

Supported Platforms

  • PocketOption (Full Support: Quick Trading, Pending Orders, Assets, History)
  • ExpertOption (Alpha/Beta: Account Info, Keep-Alive, WebSocket Core)
  • IQ Option (On Roadmap)

Features

Trading and Account

  • Execution: Place Buy/Sell orders instantly.
  • Monitoring: Check trade results (Win/Loss) with configurable timeouts.
  • Balances: Real-time account balance retrieval.
  • Portfolio: Access active positions and closed deal history.

Market Data & Backtesting

  • Live Stream: Subscribe to real-time candles and price ticks.
  • Historical: Fetch OHLC data for analysis.
  • Virtual Market: Built-in simulator for backtesting strategies without financial risk.
  • Server Sync: Precision timing via NTP-like synchronization.

Bot Framework (New)

  • Event-Driven: Hooks for on_start and on_candle with JSON candle data.
  • Contextual API: Write once, run on any platform (PocketOption, ExpertOption, or Virtual).
  • Strategy Trait: Easily implement and swap trading algorithms.
  • Virtual Market: Built-in simulator for backtesting strategies without financial risk.

Framework Utilities

  • Raw Handler API: Low-level WebSocket access for custom protocols.
  • Validators: Built-in message filtering system.
  • Asset Logic: Automatic verification of trading pairs and OTC availability.

Architecture

The system uses a layered architecture to ensure stability and speed.

graph TD
User[User Application <br/> Python/Rust/JS] --> Bindings[Language Bindings <br/> PyO3 Async/Sync Wrappers]
Bindings --> Core[Rust Core Library]
subgraph Rust Core
Core --> WS[WebSocket Client <br/> Tungstenite]
Core --> Mgr[Connection Manager]
Core --> Router[Message Router & Validators]
end
WS <--> API[PocketOption WebSocket API]
Loading

Installation

Python

Option A: Prebuilt Wheels (Recommended)

Install directly from our GitHub releases. Supports Python 3.9 - 3.12.

Windows

pip install "https://github.com/ChipaDevTeam/BinaryOptionsTools-v2/releases/download/v0.2.9/binaryoptionstoolsv2-0.2.9-cp39-abi3-win_amd64.whl"

Linux

pip install "https://github.com/ChipaDevTeam/BinaryOptionsTools-v2/releases/download/v0.2.9/binaryoptionstoolsv2-0.2.9-cp39-abi3-manylinux_2_28_x86_64.whl"

macOS (Apple Silicon)

pip install "https://github.com/ChipaDevTeam/BinaryOptionsTools-v2/releases/download/v0.2.9/binaryoptionstoolsv2-0.2.9-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl"

Option B: Build from Source

Requires rustc, cargo, and maturin.

git clone https://github.com/ChipaDevTeam/BinaryOptionsTools-v2.git
cd BinaryOptionsTools-v2/BinaryOptionsToolsV2
pip install maturin
maturin develop --release

Option C: Build from Source Automatically

Requires rustc, cargo, and maturin.

pip install git+https://github.com/ChipaDevTeam/BinaryOptionsTools-v2.git#subdirectory=python

Rust

Add this to your Cargo.toml:

[dependencies]
binary_options_tools = { path = "crates/binary_options_tools" }

Quick Start

Async API (Recommended)

importasyncioimportosfromBinaryOptionsToolsV2importPocketOptionAsyncasyncdefmain():
ssid=os.getenv("POCKET_OPTION_SSID")
asyncwithPocketOptionAsync(ssid=ssid) asclient:
balance=awaitclient.balance()
print(f"Balance: ${balance}")
trade_id, deal=awaitclient.buy("EURUSD_otc", 1.0, 60)
print(f"Outcome: {awaitclient.check_win(trade_id)}")
if__name__=="__main__":
asyncio.run(main())

Bot Framework & Strategy (High-Level)

Implement the Strategy trait (Rust) or inherit from PyStrategy (Python) for structured bot development.

importasyncioimportjsonimportosfromBinaryOptionsToolsV2importPyBot, PyStrategy, RawPocketOptionclassMyStrategy(PyStrategy):
defon_start(self, ctx):
print("Strategy started!")
defon_candle(self, ctx, asset, candle_json):
candle=json.loads(candle_json)
ifcandle["close"] >candle["open"]:
asyncio.create_task(ctx.buy(asset, 1.0, 60))
asyncdefmain():
ssid=os.getenv("POCKET_OPTION_SSID")
client=awaitRawPocketOption.create(ssid)
strategy=MyStrategy()
bot=PyBot(client, strategy)
bot.add_asset("EURUSD_otc", 60) # Monitor 60s candlesawaitbot.run()
if__name__=="__main__":
asyncio.run(main())

Real-time Data Streaming

asyncwithPocketOptionAsync(ssid="...") asclient:
asyncforcandleinawaitclient.subscribe_symbol("EURUSD_otc"):
print(f"Price: {candle['close']}")

Advanced Usage

For complex implementations, you can access the Raw Handler API. This allows you to construct custom WebSocket messages and filter responses.

fromBinaryOptionsToolsV2.validatorimportValidator# Create a validator to filter messages containing "balance"validator=Validator.contains("balance")
handler=awaitclient.create_raw_handler(validator)
# Send raw JSON requestawaithandler.send_text('42["getBalance"]')
# Listen to the filtered streamasyncformessageinawaithandler.subscribe():
print(f"Raw Update: {message}")

Note on Authentication: Authentication is handled via the SSID cookie. See our Tutorials Directory for instructions on how to extract this from your browser.


Examples

The examples/ directory contains ready-to-run scripts for both async and sync APIs.

Python Async

ExampleDescription
trade.pyBasic buy/sell with check_win
get_balance.pyAccount balance retrieval
get_candles.pyHistorical candle data
subscribe_symbol.pyReal-time candle subscription
strategy_example.pyPyBot/PyStrategy framework
comprehensive_demo.pyFull API walkthrough
raw_send.pyRaw WebSocket messages
create_raw_order.pyRaw order with validator
validator.pyValidator usage examples

Python Sync

A parallel set of examples using the synchronous PocketOption client is available in examples/python/sync/.

Other Languages

UniFFI-generated examples for Go, Kotlin, Swift, Ruby, C#, and Rust are available in their respective subdirectories under examples/.


Roadmap

  • PocketOption: Quick Trading & Pending Orders
  • ExpertOption: Core Implementation (Alpha/Beta)
  • Framework: Bot & Strategy System
  • Backtesting: Virtual Market Simulator
  • Platform: IQ Option Integration
  • Core: Multi-language support via UniFFI (Kotlin, Swift, Go, C#)
  • Core: JavaScript/TypeScript Bindings
  • Core: WebAssembly (WASM) Support
  • Tools: Advanced Strategy Optimizer

Contributing

We welcome contributions!

  1. Fork the repo.
  2. Ensure tests pass (cargo test & pytest).
  3. Submit a Pull Request with clear descriptions.

Legal and Disclaimer

License

  • Personal Use: Free for personal, educational, and non-commercial use.
  • Commercial Use: Requires explicit written permission. Contact us on Discord.
  • See LICENSE for details.

Risk Warning

This software is provided "AS IS" without warranty of any kind.

  • Binary options trading involves high risk and may result in the loss of capital.
  • The authors and ChipaDevTeam are NOT responsible for any financial losses, trading errors, or software bugs.
  • Use this software entirely at your own risk.

Documentation | API Reference | Discord Community | Agents & AI

About

High-performance suite for binary options automation. Features full async support, robust error handling, and multi-platform integration.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

BinaryOptionsTools V2

DiscordPython VersionRustLicense

A high-performance, cross-platform package for automating binary options trading. Built with Rust for speed and memory safety, featuring Python bindings for ease of use.


Support the Development

This project is maintained by the ChipaDevTeam. Your support helps keep the updates coming.

Support ChannelLink
PayPalSupport ChipaDevTeam
PocketOption (Six)Join via Six's Affiliate Link
PocketOption (Chipa)Join via Chipa's Affiliate Link

Table of Contents


Overview

BinaryOptionsTools v2 is a complete rewrite of the original library. It bridges the gap between low-level performance and high-level usability.

Key Highlights

  • Rust Core: Maximum performance, concurrency, and memory safety.
  • Python Bindings: Seamless integration with the Python ecosystem via PyO3.
  • WebSocket Native: Real-time market data streaming and instant trade execution.
  • Robust Connectivity: Automatic reconnection, keep-alive monitoring, and robust error handling.
  • Type Safety: Strong typing across both Rust and Python interfaces.

Supported Platforms

  • PocketOption (Full Support: Quick Trading, Pending Orders, Assets, History)
  • ExpertOption (Alpha/Beta: Account Info, Keep-Alive, WebSocket Core)
  • IQ Option (On Roadmap)

Features

Trading and Account

  • Execution: Place Buy/Sell orders instantly.
  • Monitoring: Check trade results (Win/Loss) with configurable timeouts.
  • Balances: Real-time account balance retrieval.
  • Portfolio: Access active positions and closed deal history.

Market Data & Backtesting

  • Live Stream: Subscribe to real-time candles and price ticks.
  • Historical: Fetch OHLC data for analysis.
  • Virtual Market: Built-in simulator for backtesting strategies without financial risk.
  • Server Sync: Precision timing via NTP-like synchronization.

Bot Framework (New)

  • Event-Driven: Hooks for on_start and on_candle with JSON candle data.
  • Contextual API: Write once, run on any platform (PocketOption, ExpertOption, or Virtual).
  • Strategy Trait: Easily implement and swap trading algorithms.
  • Virtual Market: Built-in simulator for backtesting strategies without financial risk.

Framework Utilities

  • Raw Handler API: Low-level WebSocket access for custom protocols.
  • Validators: Built-in message filtering system.
  • Asset Logic: Automatic verification of trading pairs and OTC availability.

Architecture

The system uses a layered architecture to ensure stability and speed.

graph TD
User[User Application <br/> Python/Rust/JS] --> Bindings[Language Bindings <br/> PyO3 Async/Sync Wrappers]
Bindings --> Core[Rust Core Library]
subgraph Rust Core
Core --> WS[WebSocket Client <br/> Tungstenite]
Core --> Mgr[Connection Manager]
Core --> Router[Message Router & Validators]
end
WS <--> API[PocketOption WebSocket API]
Loading

Installation

Python

Option A: Prebuilt Wheels (Recommended)

Install directly from our GitHub releases. Supports Python 3.9 - 3.12.

Windows

pip install "https://github.com/ChipaDevTeam/BinaryOptionsTools-v2/releases/download/v0.2.9/binaryoptionstoolsv2-0.2.9-cp39-abi3-win_amd64.whl"

Linux

pip install "https://github.com/ChipaDevTeam/BinaryOptionsTools-v2/releases/download/v0.2.9/binaryoptionstoolsv2-0.2.9-cp39-abi3-manylinux_2_28_x86_64.whl"

macOS (Apple Silicon)

pip install "https://github.com/ChipaDevTeam/BinaryOptionsTools-v2/releases/download/v0.2.9/binaryoptionstoolsv2-0.2.9-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl"

Option B: Build from Source

Requires rustc, cargo, and maturin.

git clone https://github.com/ChipaDevTeam/BinaryOptionsTools-v2.git
cd BinaryOptionsTools-v2/BinaryOptionsToolsV2
pip install maturin
maturin develop --release

Option C: Build from Source Automatically

Requires rustc, cargo, and maturin.

pip install git+https://github.com/ChipaDevTeam/BinaryOptionsTools-v2.git#subdirectory=python

Rust

Add this to your Cargo.toml:

[dependencies]
binary_options_tools = { path = "crates/binary_options_tools" }

Quick Start

Async API (Recommended)

importasyncioimportosfromBinaryOptionsToolsV2importPocketOptionAsyncasyncdefmain():
ssid=os.getenv("POCKET_OPTION_SSID")
asyncwithPocketOptionAsync(ssid=ssid) asclient:
balance=awaitclient.balance()
print(f"Balance: ${balance}")
trade_id, deal=awaitclient.buy("EURUSD_otc", 1.0, 60)
print(f"Outcome: {awaitclient.check_win(trade_id)}")
if__name__=="__main__":
asyncio.run(main())

Bot Framework & Strategy (High-Level)

Implement the Strategy trait (Rust) or inherit from PyStrategy (Python) for structured bot development.

importasyncioimportjsonimportosfromBinaryOptionsToolsV2importPyBot, PyStrategy, RawPocketOptionclassMyStrategy(PyStrategy):
defon_start(self, ctx):
print("Strategy started!")
defon_candle(self, ctx, asset, candle_json):
candle=json.loads(candle_json)
ifcandle["close"] >candle["open"]:
asyncio.create_task(ctx.buy(asset, 1.0, 60))
asyncdefmain():
ssid=os.getenv("POCKET_OPTION_SSID")
client=awaitRawPocketOption.create(ssid)
strategy=MyStrategy()
bot=PyBot(client, strategy)
bot.add_asset("EURUSD_otc", 60) # Monitor 60s candlesawaitbot.run()
if__name__=="__main__":
asyncio.run(main())

Real-time Data Streaming

asyncwithPocketOptionAsync(ssid="...") asclient:
asyncforcandleinawaitclient.subscribe_symbol("EURUSD_otc"):
print(f"Price: {candle['close']}")

Advanced Usage

For complex implementations, you can access the Raw Handler API. This allows you to construct custom WebSocket messages and filter responses.

fromBinaryOptionsToolsV2.validatorimportValidator# Create a validator to filter messages containing "balance"validator=Validator.contains("balance")
handler=awaitclient.create_raw_handler(validator)
# Send raw JSON requestawaithandler.send_text('42["getBalance"]')
# Listen to the filtered streamasyncformessageinawaithandler.subscribe():
print(f"Raw Update: {message}")

Note on Authentication: Authentication is handled via the SSID cookie. See our Tutorials Directory for instructions on how to extract this from your browser.


Examples

The examples/ directory contains ready-to-run scripts for both async and sync APIs.

Python Async

ExampleDescription
trade.pyBasic buy/sell with check_win
get_balance.pyAccount balance retrieval
get_candles.pyHistorical candle data
subscribe_symbol.pyReal-time candle subscription
strategy_example.pyPyBot/PyStrategy framework
comprehensive_demo.pyFull API walkthrough
raw_send.pyRaw WebSocket messages
create_raw_order.pyRaw order with validator
validator.pyValidator usage examples

Python Sync

A parallel set of examples using the synchronous PocketOption client is available in examples/python/sync/.

Other Languages

UniFFI-generated examples for Go, Kotlin, Swift, Ruby, C#, and Rust are available in their respective subdirectories under examples/.


Roadmap

  • PocketOption: Quick Trading & Pending Orders
  • ExpertOption: Core Implementation (Alpha/Beta)
  • Framework: Bot & Strategy System
  • Backtesting: Virtual Market Simulator
  • Platform: IQ Option Integration
  • Core: Multi-language support via UniFFI (Kotlin, Swift, Go, C#)
  • Core: JavaScript/TypeScript Bindings
  • Core: WebAssembly (WASM) Support
  • Tools: Advanced Strategy Optimizer

Contributing

We welcome contributions!

  1. Fork the repo.
  2. Ensure tests pass (cargo test & pytest).
  3. Submit a Pull Request with clear descriptions.

Legal and Disclaimer

License

  • Personal Use: Free for personal, educational, and non-commercial use.
  • Commercial Use: Requires explicit written permission. Contact us on Discord.
  • See LICENSE for details.

Risk Warning

This software is provided "AS IS" without warranty of any kind.

  • Binary options trading involves high risk and may result in the loss of capital.
  • The authors and ChipaDevTeam are NOT responsible for any financial losses, trading errors, or software bugs.
  • Use this software entirely at your own risk.

Documentation | API Reference | Discord Community | Agents & AI

About

High-performance suite for binary options automation. Features full async support, robust error handling, and multi-platform integration.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

BinaryOptionsTools V2

DiscordPython VersionRustLicense

A high-performance, cross-platform package for automating binary options trading. Built with Rust for speed and memory safety, featuring Python bindings for ease of use.


Support the Development

This project is maintained by the ChipaDevTeam. Your support helps keep the updates coming.

Support ChannelLink
PayPalSupport ChipaDevTeam
PocketOption (Six)Join via Six's Affiliate Link
PocketOption (Chipa)Join via Chipa's Affiliate Link

Table of Contents


Overview

BinaryOptionsTools v2 is a complete rewrite of the original library. It bridges the gap between low-level performance and high-level usability.

Key Highlights

  • Rust Core: Maximum performance, concurrency, and memory safety.
  • Python Bindings: Seamless integration with the Python ecosystem via PyO3.
  • WebSocket Native: Real-time market data streaming and instant trade execution.
  • Robust Connectivity: Automatic reconnection, keep-alive monitoring, and robust error handling.
  • Type Safety: Strong typing across both Rust and Python interfaces.

Supported Platforms

  • PocketOption (Full Support: Quick Trading, Pending Orders, Assets, History)
  • ExpertOption (Alpha/Beta: Account Info, Keep-Alive, WebSocket Core)
  • IQ Option (On Roadmap)

Features

Trading and Account

  • Execution: Place Buy/Sell orders instantly.
  • Monitoring: Check trade results (Win/Loss) with configurable timeouts.
  • Balances: Real-time account balance retrieval.
  • Portfolio: Access active positions and closed deal history.

Market Data & Backtesting

  • Live Stream: Subscribe to real-time candles and price ticks.
  • Historical: Fetch OHLC data for analysis.
  • Virtual Market: Built-in simulator for backtesting strategies without financial risk.
  • Server Sync: Precision timing via NTP-like synchronization.

Bot Framework (New)

  • Event-Driven: Hooks for on_start and on_candle with JSON candle data.
  • Contextual API: Write once, run on any platform (PocketOption, ExpertOption, or Virtual).
  • Strategy Trait: Easily implement and swap trading algorithms.
  • Virtual Market: Built-in simulator for backtesting strategies without financial risk.

Framework Utilities

  • Raw Handler API: Low-level WebSocket access for custom protocols.
  • Validators: Built-in message filtering system.
  • Asset Logic: Automatic verification of trading pairs and OTC availability.

Architecture

The system uses a layered architecture to ensure stability and speed.

graph TD
User[User Application <br/> Python/Rust/JS] --> Bindings[Language Bindings <br/> PyO3 Async/Sync Wrappers]
Bindings --> Core[Rust Core Library]
subgraph Rust Core
Core --> WS[WebSocket Client <br/> Tungstenite]
Core --> Mgr[Connection Manager]
Core --> Router[Message Router & Validators]
end
WS <--> API[PocketOption WebSocket API]
Loading

Installation

Python

Option A: Prebuilt Wheels (Recommended)

Install directly from our GitHub releases. Supports Python 3.9 - 3.12.

Windows

pip install "https://github.com/ChipaDevTeam/BinaryOptionsTools-v2/releases/download/v0.2.9/binaryoptionstoolsv2-0.2.9-cp39-abi3-win_amd64.whl"

Linux

pip install "https://github.com/ChipaDevTeam/BinaryOptionsTools-v2/releases/download/v0.2.9/binaryoptionstoolsv2-0.2.9-cp39-abi3-manylinux_2_28_x86_64.whl"

macOS (Apple Silicon)

pip install "https://github.com/ChipaDevTeam/BinaryOptionsTools-v2/releases/download/v0.2.9/binaryoptionstoolsv2-0.2.9-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl"

Option B: Build from Source

Requires rustc, cargo, and maturin.

git clone https://github.com/ChipaDevTeam/BinaryOptionsTools-v2.git
cd BinaryOptionsTools-v2/BinaryOptionsToolsV2
pip install maturin
maturin develop --release

Option C: Build from Source Automatically

Requires rustc, cargo, and maturin.

pip install git+https://github.com/ChipaDevTeam/BinaryOptionsTools-v2.git#subdirectory=python

Rust

Add this to your Cargo.toml:

[dependencies]
binary_options_tools = { path = "crates/binary_options_tools" }

Quick Start

Async API (Recommended)

importasyncioimportosfromBinaryOptionsToolsV2importPocketOptionAsyncasyncdefmain():
ssid=os.getenv("POCKET_OPTION_SSID")
asyncwithPocketOptionAsync(ssid=ssid) asclient:
balance=awaitclient.balance()
print(f"Balance: ${balance}")
trade_id, deal=awaitclient.buy("EURUSD_otc", 1.0, 60)
print(f"Outcome: {awaitclient.check_win(trade_id)}")
if__name__=="__main__":
asyncio.run(main())

Bot Framework & Strategy (High-Level)

Implement the Strategy trait (Rust) or inherit from PyStrategy (Python) for structured bot development.

importasyncioimportjsonimportosfromBinaryOptionsToolsV2importPyBot, PyStrategy, RawPocketOptionclassMyStrategy(PyStrategy):
defon_start(self, ctx):
print("Strategy started!")
defon_candle(self, ctx, asset, candle_json):
candle=json.loads(candle_json)
ifcandle["close"] >candle["open"]:
asyncio.create_task(ctx.buy(asset, 1.0, 60))
asyncdefmain():
ssid=os.getenv("POCKET_OPTION_SSID")
client=awaitRawPocketOption.create(ssid)
strategy=MyStrategy()
bot=PyBot(client, strategy)
bot.add_asset("EURUSD_otc", 60) # Monitor 60s candlesawaitbot.run()
if__name__=="__main__":
asyncio.run(main())

Real-time Data Streaming

asyncwithPocketOptionAsync(ssid="...") asclient:
asyncforcandleinawaitclient.subscribe_symbol("EURUSD_otc"):
print(f"Price: {candle['close']}")

Advanced Usage

For complex implementations, you can access the Raw Handler API. This allows you to construct custom WebSocket messages and filter responses.

fromBinaryOptionsToolsV2.validatorimportValidator# Create a validator to filter messages containing "balance"validator=Validator.contains("balance")
handler=awaitclient.create_raw_handler(validator)
# Send raw JSON requestawaithandler.send_text('42["getBalance"]')
# Listen to the filtered streamasyncformessageinawaithandler.subscribe():
print(f"Raw Update: {message}")

Note on Authentication: Authentication is handled via the SSID cookie. See our Tutorials Directory for instructions on how to extract this from your browser.


Examples

The examples/ directory contains ready-to-run scripts for both async and sync APIs.

Python Async

ExampleDescription
trade.pyBasic buy/sell with check_win
get_balance.pyAccount balance retrieval
get_candles.pyHistorical candle data
subscribe_symbol.pyReal-time candle subscription
strategy_example.pyPyBot/PyStrategy framework
comprehensive_demo.pyFull API walkthrough
raw_send.pyRaw WebSocket messages
create_raw_order.pyRaw order with validator
validator.pyValidator usage examples

Python Sync

A parallel set of examples using the synchronous PocketOption client is available in examples/python/sync/.

Other Languages

UniFFI-generated examples for Go, Kotlin, Swift, Ruby, C#, and Rust are available in their respective subdirectories under examples/.


Roadmap

  • PocketOption: Quick Trading & Pending Orders
  • ExpertOption: Core Implementation (Alpha/Beta)
  • Framework: Bot & Strategy System
  • Backtesting: Virtual Market Simulator
  • Platform: IQ Option Integration
  • Core: Multi-language support via UniFFI (Kotlin, Swift, Go, C#)
  • Core: JavaScript/TypeScript Bindings
  • Core: WebAssembly (WASM) Support
  • Tools: Advanced Strategy Optimizer

Contributing

We welcome contributions!

  1. Fork the repo.
  2. Ensure tests pass (cargo test & pytest).
  3. Submit a Pull Request with clear descriptions.

Legal and Disclaimer

License

  • Personal Use: Free for personal, educational, and non-commercial use.
  • Commercial Use: Requires explicit written permission. Contact us on Discord.
  • See LICENSE for details.

Risk Warning

This software is provided "AS IS" without warranty of any kind.

  • Binary options trading involves high risk and may result in the loss of capital.
  • The authors and ChipaDevTeam are NOT responsible for any financial losses, trading errors, or software bugs.
  • Use this software entirely at your own risk.

Documentation | API Reference | Discord Community | Agents & AI

About

High-performance suite for binary options automation. Features full async support, robust error handling, and multi-platform integration.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

BinaryOptionsTools V2

DiscordPython VersionRustLicense

A high-performance, cross-platform package for automating binary options trading. Built with Rust for speed and memory safety, featuring Python bindings for ease of use.


Support the Development

This project is maintained by the ChipaDevTeam. Your support helps keep the updates coming.

Support ChannelLink
PayPalSupport ChipaDevTeam
PocketOption (Six)Join via Six's Affiliate Link
PocketOption (Chipa)Join via Chipa's Affiliate Link

Table of Contents


Overview

BinaryOptionsTools v2 is a complete rewrite of the original library. It bridges the gap between low-level performance and high-level usability.

Key Highlights

  • Rust Core: Maximum performance, concurrency, and memory safety.
  • Python Bindings: Seamless integration with the Python ecosystem via PyO3.
  • WebSocket Native: Real-time market data streaming and instant trade execution.
  • Robust Connectivity: Automatic reconnection, keep-alive monitoring, and robust error handling.
  • Type Safety: Strong typing across both Rust and Python interfaces.

Supported Platforms

  • PocketOption (Full Support: Quick Trading, Pending Orders, Assets, History)
  • ExpertOption (Alpha/Beta: Account Info, Keep-Alive, WebSocket Core)
  • IQ Option (On Roadmap)

Features

Trading and Account

  • Execution: Place Buy/Sell orders instantly.
  • Monitoring: Check trade results (Win/Loss) with configurable timeouts.
  • Balances: Real-time account balance retrieval.
  • Portfolio: Access active positions and closed deal history.

Market Data & Backtesting

  • Live Stream: Subscribe to real-time candles and price ticks.
  • Historical: Fetch OHLC data for analysis.
  • Virtual Market: Built-in simulator for backtesting strategies without financial risk.
  • Server Sync: Precision timing via NTP-like synchronization.

Bot Framework (New)

  • Event-Driven: Hooks for on_start and on_candle with JSON candle data.
  • Contextual API: Write once, run on any platform (PocketOption, ExpertOption, or Virtual).
  • Strategy Trait: Easily implement and swap trading algorithms.
  • Virtual Market: Built-in simulator for backtesting strategies without financial risk.

Framework Utilities

  • Raw Handler API: Low-level WebSocket access for custom protocols.
  • Validators: Built-in message filtering system.
  • Asset Logic: Automatic verification of trading pairs and OTC availability.

Architecture

The system uses a layered architecture to ensure stability and speed.

graph TD
User[User Application <br/> Python/Rust/JS] --> Bindings[Language Bindings <br/> PyO3 Async/Sync Wrappers]
Bindings --> Core[Rust Core Library]
subgraph Rust Core
Core --> WS[WebSocket Client <br/> Tungstenite]
Core --> Mgr[Connection Manager]
Core --> Router[Message Router & Validators]
end
WS <--> API[PocketOption WebSocket API]
Loading

Installation

Python

Option A: Prebuilt Wheels (Recommended)

Install directly from our GitHub releases. Supports Python 3.9 - 3.12.

Windows

pip install "https://github.com/ChipaDevTeam/BinaryOptionsTools-v2/releases/download/v0.2.9/binaryoptionstoolsv2-0.2.9-cp39-abi3-win_amd64.whl"

Linux

pip install "https://github.com/ChipaDevTeam/BinaryOptionsTools-v2/releases/download/v0.2.9/binaryoptionstoolsv2-0.2.9-cp39-abi3-manylinux_2_28_x86_64.whl"

macOS (Apple Silicon)

pip install "https://github.com/ChipaDevTeam/BinaryOptionsTools-v2/releases/download/v0.2.9/binaryoptionstoolsv2-0.2.9-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl"

Option B: Build from Source

Requires rustc, cargo, and maturin.

git clone https://github.com/ChipaDevTeam/BinaryOptionsTools-v2.git
cd BinaryOptionsTools-v2/BinaryOptionsToolsV2
pip install maturin
maturin develop --release

Option C: Build from Source Automatically

Requires rustc, cargo, and maturin.

pip install git+https://github.com/ChipaDevTeam/BinaryOptionsTools-v2.git#subdirectory=python

Rust

Add this to your Cargo.toml:

[dependencies]
binary_options_tools = { path = "crates/binary_options_tools" }

Quick Start

Async API (Recommended)

importasyncioimportosfromBinaryOptionsToolsV2importPocketOptionAsyncasyncdefmain():
ssid=os.getenv("POCKET_OPTION_SSID")
asyncwithPocketOptionAsync(ssid=ssid) asclient:
balance=awaitclient.balance()
print(f"Balance: ${balance}")
trade_id, deal=awaitclient.buy("EURUSD_otc", 1.0, 60)
print(f"Outcome: {awaitclient.check_win(trade_id)}")
if__name__=="__main__":
asyncio.run(main())

Bot Framework & Strategy (High-Level)

Implement the Strategy trait (Rust) or inherit from PyStrategy (Python) for structured bot development.

importasyncioimportjsonimportosfromBinaryOptionsToolsV2importPyBot, PyStrategy, RawPocketOptionclassMyStrategy(PyStrategy):
defon_start(self, ctx):
print("Strategy started!")
defon_candle(self, ctx, asset, candle_json):
candle=json.loads(candle_json)
ifcandle["close"] >candle["open"]:
asyncio.create_task(ctx.buy(asset, 1.0, 60))
asyncdefmain():
ssid=os.getenv("POCKET_OPTION_SSID")
client=awaitRawPocketOption.create(ssid)
strategy=MyStrategy()
bot=PyBot(client, strategy)
bot.add_asset("EURUSD_otc", 60) # Monitor 60s candlesawaitbot.run()
if__name__=="__main__":
asyncio.run(main())

Real-time Data Streaming

asyncwithPocketOptionAsync(ssid="...") asclient:
asyncforcandleinawaitclient.subscribe_symbol("EURUSD_otc"):
print(f"Price: {candle['close']}")

Advanced Usage

For complex implementations, you can access the Raw Handler API. This allows you to construct custom WebSocket messages and filter responses.

fromBinaryOptionsToolsV2.validatorimportValidator# Create a validator to filter messages containing "balance"validator=Validator.contains("balance")
handler=awaitclient.create_raw_handler(validator)
# Send raw JSON requestawaithandler.send_text('42["getBalance"]')
# Listen to the filtered streamasyncformessageinawaithandler.subscribe():
print(f"Raw Update: {message}")

Note on Authentication: Authentication is handled via the SSID cookie. See our Tutorials Directory for instructions on how to extract this from your browser.


Examples

The examples/ directory contains ready-to-run scripts for both async and sync APIs.

Python Async

ExampleDescription
trade.pyBasic buy/sell with check_win
get_balance.pyAccount balance retrieval
get_candles.pyHistorical candle data
subscribe_symbol.pyReal-time candle subscription
strategy_example.pyPyBot/PyStrategy framework
comprehensive_demo.pyFull API walkthrough
raw_send.pyRaw WebSocket messages
create_raw_order.pyRaw order with validator
validator.pyValidator usage examples

Python Sync

A parallel set of examples using the synchronous PocketOption client is available in examples/python/sync/.

Other Languages

UniFFI-generated examples for Go, Kotlin, Swift, Ruby, C#, and Rust are available in their respective subdirectories under examples/.


Roadmap

  • PocketOption: Quick Trading & Pending Orders
  • ExpertOption: Core Implementation (Alpha/Beta)
  • Framework: Bot & Strategy System
  • Backtesting: Virtual Market Simulator
  • Platform: IQ Option Integration
  • Core: Multi-language support via UniFFI (Kotlin, Swift, Go, C#)
  • Core: JavaScript/TypeScript Bindings
  • Core: WebAssembly (WASM) Support
  • Tools: Advanced Strategy Optimizer

Contributing

We welcome contributions!

  1. Fork the repo.
  2. Ensure tests pass (cargo test & pytest).
  3. Submit a Pull Request with clear descriptions.

Legal and Disclaimer

License

  • Personal Use: Free for personal, educational, and non-commercial use.
  • Commercial Use: Requires explicit written permission. Contact us on Discord.
  • See LICENSE for details.

Risk Warning

This software is provided "AS IS" without warranty of any kind.

  • Binary options trading involves high risk and may result in the loss of capital.
  • The authors and ChipaDevTeam are NOT responsible for any financial losses, trading errors, or software bugs.
  • Use this software entirely at your own risk.

Documentation | API Reference | Discord Community | Agents & AI

About

High-performance suite for binary options automation. Features full async support, robust error handling, and multi-platform integration.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages