Specification
1. Project Objective
We require the design, development, deployment, and go-live of a fully functional synthetic token CFD on MetaTrader 5.
The instrument (JOJOUSD) must:
-
Be visible to all clients
-
Be fully tradable (long & short)
-
Be priced dynamically in real time
-
Display live charts and candles
-
Calculate floating and closed P/L correctly in USD
-
Behave exactly like a native MT5 CFD
The solution must be implemented using MT5 Gateway API (preferred) and deployed to live server infrastructure.
This is an infrastructure-level project. Code-only delivery is not acceptable.
2. Required Architecture
The pricing system must:
-
Be implemented using MT5 Gateway API (C++)
-
Run as an external service (Windows Server environment)
-
Connect directly to MT5 Server
-
Stream ticks programmatically into a synthetic symbol
-
Operate independently from MT5 client terminals
-
Include auto-reconnect and failover logic
Terminal-based EAs are not acceptable as primary architecture.
3. Synthetic Instrument Specification
Symbol Name: JOJOUSD
Symbol Type: CFD (Synthetic)
Base Currency: JOJO
Quote Currency: USD
Source Price: BTCUSD (live feed from existing server symbol)
Multiplier: Configurable (default 0.00002)
Spread: Fixed, configurable (default 5 points)
Digits: 5
Contract Size: 1 lot = 1 JOJO
Trading Mode: Enabled
Trading Direction: Long & Short
Margin Trading: Enabled
Trading Session: 24/7
4. Pricing Logic Requirements
The pricing engine must:
-
Subscribe to live BTCUSD feed
-
Apply configurable multiplier
-
Generate bid and ask programmatically
-
Maintain fixed spread (configurable)
-
Update every 1–2 seconds (configurable)
-
Ensure smooth and continuous tick flow
-
Prevent abnormal spikes and invalid ticks
-
Handle feed interruptions gracefully
-
Resume automatically upon reconnection
Candle formation must be accurate and consistent.
5. Trading & Risk Validation
The system must ensure:
-
Clients can open and close positions normally
-
Margin is calculated correctly
-
Floating P/L is accurate in USD
-
Closed P/L is accurate
-
Long and short positions behave correctly
-
No interference with other server symbols
Developer must test:
-
High volatility scenarios
-
Rapid BTC movement
-
Spread stability
-
Trade execution behavior
6. Performance & Stability Requirements
The solution must:
-
Operate continuously 24/7
-
Run without memory leaks
-
Include structured logging
-
Recover automatically from disconnections
-
Maintain tick delay below 500ms
-
Not impact MT5 server performance
Acceptance requires 72 hours of continuous stable operation.
7. Deployment & Go-Live Responsibility (Mandatory)
Project is considered complete only when:
-
JOJOUSD is live on production server
-
Symbol is visible to all clients
-
Real-time pricing is active
-
Clients can trade successfully
-
Charts and candles function properly
-
Margin and P/L calculations are verified
-
Stability test completed (minimum 72 hours)
Developer must:
-
Deploy on production infrastructure
-
Configure symbol parameters
-
Verify trading behavior
-
Provide full installation documentation
-
Provide maintenance guide
8. Scalability Requirement
Architecture must allow future synthetic tokens to be added without major redesign.
The system should support multiple derived instruments if required.
9. Required Expertise
-
Proven MT5 Gateway API development
-
Experience building liquidity bridges or pricing engines
-
Strong understanding of MT5 symbol configuration
-
Understanding of margin, contract size, and P/L logic
-
Experience deploying infrastructure on Windows Server
-
Familiarity with broker-level MT5 environments
Applicants without Gateway API experience will not be considered.
10. Deliverables
-
Gateway-based pricing engine (source code included)
-
JOJOUSD live and tradable
-
Stable real-time pricing integration
-
Deployment documentation
-
Configuration manual
-
Logging and monitoring capability
Definition of Project Completion
The project is complete only when JOJOUSD behaves identically to a native MT5 CFD and operates continuously in live market conditions without instability.