JavaScript Documentation
Complete JavaScript integration guide for BinaryOptionsToolsV2
Node.js
Browser
Promise-based
TypeScript Ready
Installation
Get started with BinaryOptionsToolsV2 in JavaScript
bash
npm install binaryoptionstools-v2
bash
yarn add binaryoptionstools-v2
html
<script src="https://cdn.jsdelivr.net/npm/binaryoptionstools-v2@latest/dist/index.min.js"></script>
Quick Start
Basic usage examples for JavaScript environments
javascript
const { PocketOption } = require('binaryoptionstools-v2');
async function main() {
// Initialize the client
const client = new PocketOption({
ssid: 'your_ssid_here'
});
try {
// Get account balance
const balance = await client.getBalance();
console.log(`Balance: $${balance}`);
// Get candles data
const candles = await client.getCandles('EURUSD_otc', 60, 100);
candles.forEach(candle => {
console.log(`Open: ${candle.open}, Close: ${candle.close}`);
});
// Create a raw order
const orderResult = await client.createRawOrder({
asset: 'EURUSD_otc',
amount: 10.0,
action: 'call',
expiration: 60
});
console.log(`Order ID: ${orderResult.orderId}`);
// Check win status
const winStatus = await client.checkWin(orderResult.orderId);
console.log(`Win status: ${winStatus}`);
} catch (error) {
console.error('Error:', error.message);
}
}
main();
html
<!DOCTYPE html>
<html>
<head>
<title>Binary Options Trading</title>
<script src="https://cdn.jsdelivr.net/npm/binaryoptionstools-v2@latest/dist/index.min.js"></script>
</head>
<body>
<script>
async function initTrading() {
const client = new BinaryOptionsToolsV2.PocketOption({
ssid: 'your_ssid_here'
});
// Get balance and display
const balance = await client.getBalance();
document.getElementById('balance').textContent = `$${balance}`;
// Stream live candles
const stream = client.streamCandles('EURUSD_otc', 60);
stream.on('candle', (candle) => {
console.log('New candle:', candle);
updateChart(candle);
});
}
function updateChart(candle) {
// Update your chart visualization here
console.log(`Price: ${candle.close}`);
}
// Initialize when page loads
window.addEventListener('load', initTrading);
</script>
<div id="balance">Loading...</div>
</body>
</html>
typescript
import { PocketOption, OrderResult, CandleData } from 'binaryoptionstools-v2';
interface TradingConfig {
ssid: string;
defaultAsset: string;
defaultAmount: number;
}
class TradingBot {
private client: PocketOption;
private config: TradingConfig;
constructor(config: TradingConfig) {
this.config = config;
this.client = new PocketOption({
ssid: config.ssid
});
}
async getAccountInfo(): Promise<{ balance: number; history: any[] }> {
const [balance, history] = await Promise.all([
this.client.getBalance(),
this.client.getHistory(50)
]);
return { balance, history };
}
async placeOrder(
asset: string = this.config.defaultAsset,
amount: number = this.config.defaultAmount,
action: 'call' | 'put' = 'call',
expiration: number = 60
): Promise {
return await this.client.createRawOrder({
asset,
amount,
action,
expiration
});
}
async monitorCandles(asset: string, timeframe: number): Promise {
const stream = this.client.streamCandles(asset, timeframe);
stream.on('candle', (candle: CandleData) => {
this.analyzeCandle(candle);
});
stream.on('error', (error: Error) => {
console.error('Stream error:', error);
});
}
private analyzeCandle(candle: CandleData): void {
// Implement your trading logic here
console.log(`Analyzing candle: ${candle.close}`);
}
}
// Usage
const config: TradingConfig = {
ssid: 'your_ssid_here',
defaultAsset: 'EURUSD_otc',
defaultAmount: 10.0
};
const bot = new TradingBot(config);
bot.monitorCandles('EURUSD_otc', 60);
Core Classes & Methods
JavaScript API reference
PocketOption
Main client class for PocketOption trading operations
getBalance()
Returns Promise<number>
getCandles(asset, timeframe, count)
Returns Promise<CandleData[]>
createRawOrder(options)
Returns Promise<OrderResult>
checkWin(orderId)
Returns Promise<WinStatus>
streamCandles(asset, timeframe)
Returns EventEmitter
getHistory(limit)
Returns Promise<HistoryItem[]>
Types & Interfaces
TypeScript interfaces and type definitions
CandleData
{ open, high, low, close, volume, timestamp }
OrderResult
{ orderId, success, message }
OrderOptions
{ asset, amount, action, expiration }
WinStatus
'win' | 'lose' | 'pending'
HistoryItem
Trading history entry
Advanced Features
Professional features for JavaScript developers
Real-time Streaming
EventEmitter-based streaming for live data
const stream = client.streamCandles('EURUSD_otc', 60);
stream.on('candle', (candle) => {
console.log('New candle:', candle.close);
});
Event-Driven Architecture
Reactive programming with event emitters
client.on('order_complete', (result) => {
console.log('Order completed:', result);
});
client.on('error', (error) => {
console.error('Client error:', error);
});
Promise-based API
Modern async/await support throughout
try {
const [balance, candles] = await Promise.all([
client.getBalance(),
client.getCandles('EURUSD_otc', 60, 100)
]);
} catch (error) {
console.error(error);
}
TypeScript Support
Full type definitions included
import { PocketOption, OrderOptions } from 'binaryoptionstools-v2';
const options: OrderOptions = {
asset: 'EURUSD_otc',
amount: 10,
action: 'call',
expiration: 60
};
WebSocket Integration
Real-time data via WebSocket connections
client.enableWebSocket({
reconnect: true,
timeout: 30000
});
client.subscribeToAsset('EURUSD_otc');
Cross-Platform
Works in Node.js, browsers, and mobile apps
// Node.js
const { PocketOption } = require('binaryoptionstools-v2');
// Browser
import { PocketOption } from 'binaryoptionstools-v2';
// React Native
import { PocketOption } from 'binaryoptionstools-v2/native';
Error Handling
Robust error handling patterns
javascript
const { PocketOption, BinaryOptionsError } = require('binaryoptionstools-v2');
async function safeTrading() {
const client = new PocketOption({ ssid: 'your_ssid' });
try {
// Set up error handlers
client.on('error', (error) => {
if (error instanceof BinaryOptionsError) {
console.error('Trading error:', error.code, error.message);
} else {
console.error('Unexpected error:', error);
}
});
// Connection error handling
client.on('disconnect', () => {
console.log('Connection lost, attempting to reconnect...');
});
client.on('reconnect', () => {
console.log('Reconnected successfully');
});
// Graceful order placement with retry
const maxRetries = 3;
let attempt = 0;
while (attempt < maxRetries) {
try {
const order = await client.createRawOrder({
asset: 'EURUSD_otc',
amount: 10,
action: 'call',
expiration: 60
});
console.log('Order placed successfully:', order.orderId);
break;
} catch (error) {
attempt++;
console.warn(`Order attempt ${attempt} failed:`, error.message);
if (attempt >= maxRetries) {
throw new Error('Max retries exceeded');
}
// Wait before retry
await new Promise(resolve => setTimeout(resolve, 1000 * attempt));
}
}
} catch (error) {
console.error('Fatal error:', error.message);
process.exit(1);
}
}
safeTrading();
Need Professional Bot Development?
Get custom JavaScript trading bots built by experts at chipa.tech