Python Script for data processing A freelancer is needed to help enhance a python script that processes CFD pricing data. The script currently reverses engineered prices from two data sources - high frequency market data and a broker's quoted prices over time. Simple logic needs integration to tie the sources together more seamlessly. The contractor will analyze the existing code and integrate new logic to produce alternative outputs. Knowledge of Python, data processing, and financial markets preferred.
TODAY DELIVERY
Project Overview
We are working on reverse-engineering the markups applied by our CFD (Contract for Difference) provider to raw Bid and Ask orders in the Level 2 (MBP-10) data. The goal is to replicate the platform’s published quotes, analyze their selection logic, and identify alternative combinations that could reduce spreads or maximize liquidity.
What We Have Done So Far
1. Bid-Ask Combinations: • We have implemented logic to extract and validate all possible Bid-Ask combinations (10 x 10 = 100 per timestamp) from the MBP-10 (Level 2) data. • Each combination is checked to ensure: • Bid and Ask prices are greater than zero. • The Bid price is less than or equal to the Ask price. • Relevant details such as prices, sizes, levels, and counts are included for valid combinations. 2. Markup Application: • The script applies symmetrical markups (from 0% to 70% in increments of 0.5%) to the spread for each valid combination. • The matching logic identifies: • Exact Matches (M): Where adjusted Bid/Ask prices match the platform’s published prices. • Closest Matches (CM): When no exact match is found, the closest match is identified by minimizing differences. • No Matches (NM): When neither an exact nor a close match can be identified. • Outputs include timestamps, original/adjusted prices, spreads, markups, and statuses. 3. Output Integrity: • The script ensures that timestamps are treated as unique events, even if they appear nearly identical. • Results are organized per timestamp with clear logging of each match status.
What We Need the Freelancer to Do
The remaining work involves extending the script to perform the following analyses:
1. Reduced Spread Analysis
• Identify alternative Bid-Ask pairs with similar liquidity that could have been used to reduce the spread (cost to clients). This analysis should: • Search for pairs with liquidity within 5%, incrementally increasing to 50% if no match is found. • Calculate and compare spreads for these alternative pairs against the platform’s chosen spread. • Include detailed output for each alternative pair: • Original and alternative Bid/Ask prices. • Spreads, sizes, levels, and counts. • Adjusted Bid/Ask prices and spreads based on markups.
2. NBBO (Level 1) Analysis
• Extract the best Bid (highest price) and best Ask (lowest price) from the Level 2 data for each timestamp. • Perform similar calculations as above, including: • Spreads, adjusted prices, and markup percentages. • Sizes, counts, and levels for the best Bid and Ask. • Ensure results align with the same timestamp logic.
3. Most Liquid Combinations
• Identify the Bid-Ask pair with the largest liquidity by combining: • The Bid with the largest size. • The Ask with the largest size. • Perform calculations to determine: • Original and adjusted spreads. • Sizes, counts, levels, and markup percentages for the most liquid pair.
Deliverables
1. Enhanced script with the following additional functionalities: • Reduced Spread Analysis. • NBBO Analysis. • Most Liquid Combinations Analysis. 2. Output files with detailed results for each timestamp: • Original and adjusted Bid/Ask prices. • Spreads, markups, sizes, counts, and levels for all analyses (Reduced Spread, NBBO, and Most Liquid). • Match statuses (Exact Match, Closest Match, No Match).
Requirements
• Expertise in financial data analysis, especially Level 2 (order book) data. • Strong Python programming skills. • Familiarity with Bid-Ask spread calculations, markups, and liquidity metrics. • Ability to work with high-frequency financial data efficiently.
If you have the required expertise and are confident in extending the existing script to complete these analyses, we’d love to collaborate!
Let me know if this version works or needs any further refinement!