← Joburi

Python Quant Developer: Dual-Strategy Trading Engine (Web Scraper + Live ASX Broker API)

Buget
$1500.0
Tip de contract
FIXED
Client
Australia
Joburi
Upwork

python, api, python-script, api-integration, data-scraping

Calificări preferate

  • Experiență: Expert
📋 PROJECT OVERVIEW I am seeking a highly experienced Python Quantitative Developer to build a production-grade, event-driven algorithmic trading system. The system will monitor Australian micro-cap and small-cap stocks on the ASX. It must support two independent, mutually exclusive entry pathways operating via "OR" logic, routing into a shared, institutional-grade risk management, data validation, and order execution module. Options trading is explicitly excluded from this system; the bot will strictly trade ordinary shares to avoid liquidity/slippage traps. 💰 CONTRACT STRUCTURE • Total Project Structure: Fixed-price contract split into 4 milestones. • Code Requirement: The entire codebase must be written using Object-Oriented Programming (OOP) principles, cleanly separating data ingestion, text scraping, and order execution layers into independent Python classes to allow for modular expansion later. All core code must be thoroughly commented and documented. • odular expansion later. All core code must be thoroughly commented and documented. ⚙️ DETAILED TECHNICAL SPECIFICATIONS 1. Central Control Configuration Panel (config.py) All core trading parameters must be isolated into an external, easily editable configuration file (config.py or config.json). The main execution script must read variables dynamically from this file so I can scale trade sizes or alter risk thresholds instantly without editing the underlying codebase: python TRADE_VALUE_AUD = 2000.00 # Fixed position size per trade trigger MAX_DAILY_TRADES = 5 # Total daily trade circuit breaker cap MIN_DAILY_LIQUIDITY_AUD = 50000 # Ignore dead stocks trading under $50k/day MAX_ORDER_BOOK_IMPACT_PCT = 10.0 # Max percentage of the order book queue we can absorb OVERNIGHT_QUALIFIER_PCT = 10.0 # Required profit to allow an overnight hold ATR_STOP_LOSS_MULTIPLIER = 2.0 # Cuts your losses tightly (2x ATR) ATR_PROFIT_TRAIL_MULTIPLIER = 3.0 Use code with caution. 2. Dual Entry Pathways ("OR" Logic Engine) The engine must continuously scan market data during ASX hours and trigger a buy order if either Pathway A or Pathway B hits 100% of its checklist criteria: • Pathway A: News Hype Catalyst (Fundamental/Sentiment) • Scrape Frequency: Continuous 30-second loop using Residential Proxies (e.g., Smartproxy/Bright Data) and stealth browser frameworks (e.g., Undetected-Chromedriver or Playwright) to bypass HotCopper Cloudflare walls. • News Filter: Detect new ASX company announcements flagged strictly as PRICE SENSITIVE via the official ASX platform feed. • Sentiment Confirmation: Scan the corresponding ticker thread on HotCopper. The script requires a 200% spike in forum post frequency/velocity within 5 minutes post-announcement compared to its baseline to pass. • Pathway B: Technical Breakout (Pure Quantitative) • Chart Target: Stream live 5-minute OHLCV candle data from the broker API. • The Breach: Trigger when the live 5-minute closing price breaks above its 20-period historical resistance level (highest high of the lookback period). • Volume Confirmation: The breakout candle's volume must be at least 3.0x (300%) higher than the historical volume average baseline for that time window. 3. Order Execution, Prioritization, & Slippage Shield • Order Type: Deploys a $2,000 AUD buy order packaged instantly as a companion Bracket Order. • Daily Circuit Breaker: Absolute cap of 5 trades maximum per day (Maximum daily capital exposure of $10,000 AUD). Once the counter hits 5, the buying engine locks out until the next morning. • First-Come Prioritization & Tie-Breaker Logic: Fills operate on a chronological first-come, first-served basis. If multiple setups trigger in the same cycle: 1. Prioritize the News Catalyst pathway over the Technical Breakout pathway as a default tie-breaker. 2. Rank competing triggers by Volume Magnitude (highest relative percentage volume expansion above baseline gets capital first). • Dynamic Slippage Control (MAX_ORDER_BOOK_IMPACT_PCT): The script must read the live market depth (Level 2 data) before executing a buy order. If the standard TRADE_VALUE_AUD order would absorb more than 10.0% of the immediate available volume on the ask side, or if a stock's 20-day average daily volume is under $50,000 AUD, the bot must automatically scale down the order size or skip the trade entirely. • order would absorb more than 10.0% of the immediate available volume on the ask side, or if a stock's 20-day average daily volume is under $50,000 AUD, the bot must automatically scale down the order size or skip the trade entirely. 4. Automated Risk & Profit-Taking Filters (ATR Engine) The exact millisecond a buy order fills, the bot must deploy a broker-side Bracket Order: • Hard Stop-Loss: Calculated dynamically as 2x the 14-period Intraday 5-minute ATR below your entry price. This must remain live on the broker's side as a hard stop so capital is safe if the cloud server goes offline. • Profit Taking: A trailing stop-loss of 3x ATR that activates once the stock gains a floating profit of +15% or more. • Intraday Checkpoint (3:45 PM AEST): Evaluate active positions. If a stock shows a floating net profit of less than 10.0%, fire an immediate market sell order to liquidate before the 4:00 PM close. • Overnight Swing Conversion: If a position holds a net profit of 10.0% or greater at 3:45 PM AEST, convert it into an overnight hold and shift attached brackets to Good 'Til Cancelled (GTC). Force liquidate any holding exactly 72 hours post-entry or at 3:50 PM AEST on Friday • greater at 3:45 PM AEST, convert it into an overnight hold and shift attached brackets to Good 'Til Cancelled (GTC). Force liquidate any holding exactly 72 hours post-entry or at 3:50 PM AEST on Friday. 5. Cloud Automation & Diagnostic Webhook Engine • Deployment: Script must run on a Linux Ubuntu VPS in a Sydney data centre with Cron jobs automating daily operations (9:45 AM open, 4:15 PM AEST shutdown). • Full Diagnostic Log Webhook Engine: Connect to a Telegram/Discord Webhook to shoot formatted markdown alerts to my phone. It must not just report successful fills. It must act as a live data stream pushing structured status updates for every price-sensitive announcement or technical alert. The script must push an alert detailing the exact quantitative statistics for Layer 1 (News Match), Layer 2 (HotCopper Post Velocity % calculated), Layer 3 (Live 5-Min Volume % calculated), and Layer 4 (Order Book Depth Slippage check). If a trade is aborted at the volume or liquidity gate, the bot must text my phone detailing the exact numerical failure reason. • Remote Kill Switch: Program a two-way interface so that if I reply to my private bot channel with the command /kill, the system will instantly cancel all working broker orders, market-sell open positions, and terminate execution. FIXED-PRICE CONTRACT MILESTONES • Milestone 1 (25%): The Scraping & Hype Engine. Python script successfully extracts price-sensitive news from the ASX feed and calculates HotCopper thread velocity in a cloud environment without hitting Cloudflare walls. • Milestone 2 (25%): Market Data & Quantitative Calculations. Clean integration with the brokerage API (preferably Interactive Brokers via ib_insync) to stream 5-minute candles, calculate the 20-day volume baseline, and calculate live 5-minute ATR • Milestone 3 (35%): Order Execution & Bracket Safety. System successfully runs in a Paper Trading (Simulation) environment for a 48-hour live market stress test, proving bracket orders, prioritization logic, slippage depth checks, the 5-trade cap, and the 3:45 PM AEST profit checkpoint fire perfectly. • Milestone 4 (15%): Cloud Automation & Mobile Alerts. Migration to a Sydney Linux VPS with automated Cron schedules, full diagnostic Telegram/Discord push notifications, and a verified remote /kill switch. HOW TO APPLY To prove you are an individual developer who has thoroughly read this brief and not an automated agency bot, you MUST begin your proposal with the exact words "ASX BOT". In your proposal, please provide: 1. Your direct experience with bypassing Cloudflare using residential proxies and stealth browser frameworks in Python. 2. Your experience connecting algorithms to Interactive Brokers (ib_insync) or alternative ASX-compatible execution APIs. 3. Confirm you accept the 4 fixed-price milestones and the requirement for OOP architecture.
Deschide jobul

AI proposal draft

Generate a short cover letter for this job. Edit before sending.

Sign in to generate an AI proposal draft.

Autentificare