Looking for an experienced developer to help build a modular trading tool

Discussion in 'App Development' started by alphahunter, Aug 28, 2024.

  1. I'm looking to hire someone to build a robust market-making tool:

    I have more granular schematics but as a general overview the tool will have the following capabilities:

    -Generate theoretical bid/ask values for 'product A' based on a ratio+offset to 'product b' *Ability to be used for various sets of products simulatenously simply by swapping products and ratios.
    -Needs to work for both futures and equity markets
    -Once a theoretical value is generated, should have the ability to build modular strategies to send orders- MM (quote, dime, multi-levels) / Market Take
    -Needs to generate hedging orders based on 'product b' or using designated hedges
    -Needs to be robust... completed tool will have to be able to manage millions in live quotes simultaneously and reliably.

    The simplest way I'd describe it is a form of an automated pair trading tool where opportunities are based on theoretical values priced off a per-defined ratio.

    I've been using IB for over 10 years, so ideally I would build something that would work there, unless the developer/product manager convinces me there is a better direction.

    I'm willing to pay fairly based on developer ability and experience. Thanks.
     
  2. MarkBrown

    MarkBrown

    save some money

    chat gpt 4.o

    Building a robust market-making tool with the features you've outlined is a substantial project that requires expertise in trading algorithms, real-time data processing, risk management, and software development. Here’s a breakdown of how you can approach hiring the right developer or team and some key considerations for your project:

    Project Scope and Requirements
    1. Generate Theoretical Bid/Ask Values:
      • The tool needs to calculate theoretical bid and ask prices for 'Product A' based on a ratio and offset with 'Product B'. This must be adaptable to different products and ratios.
      • Example: If 'Product A' is a stock and 'Product B' is an ETF or index, the tool needs to use a specified ratio to generate the theoretical values dynamically.
    2. Compatibility with Futures and Equities:
      • The tool should handle both futures and equity products. This means the architecture must support different asset classes, each with unique characteristics (e.g., trading hours, tick sizes, market behaviors).
    3. Modular Strategy Implementation:
      • The system should allow for modular strategies to handle market-making (quoting, diming, multi-levels) and market taking.
      • Strategies might include varying quote sizes, spread adjustments based on volatility, and dynamic positioning based on order flow and market conditions.
    4. Hedging Mechanism:
      • Automated hedging functionality, possibly in the same or different asset classes. Hedging could be direct (using 'Product B') or indirect (using correlated products or designated hedges).
      • The tool needs to calculate hedge ratios, manage hedge adjustments, and respond to market changes.
    5. High Performance and Scalability:
      • The tool must handle large volumes of real-time data and orders. Scalability is critical, as you plan to manage millions in live quotes.
      • Must include fail-safes and redundancy to ensure reliability and minimize downtime.
    6. Integration with Interactive Brokers (IB) API:
      • Since you have extensive experience with IB, the tool should integrate seamlessly with IB's API unless a more suitable trading platform is suggested.
      • The tool should support order management, real-time market data, and account management via the IB API.
    Skills and Experience to Look For
    1. Strong Programming Skills:
      • Look for developers with experience in Python, C++, or Java—languages commonly used in trading systems.
      • Experience with financial libraries and tools such as NumPy, pandas, and SciPy in Python, or Boost in C++.
    2. Experience with Trading Systems and APIs:
      • Familiarity with Interactive Brokers API is a significant advantage.
      • Experience building trading systems, specifically market-making, high-frequency trading (HFT), or pair trading strategies.
    3. Real-Time Data Processing:
      • Proficiency in handling real-time data streams, low-latency data processing, and event-driven programming.
      • Knowledge of messaging systems like ZeroMQ, RabbitMQ, or Kafka for data handling.
    4. Risk Management and Algorithmic Trading:
      • Understanding of risk management techniques, including market risk, execution risk, and liquidity risk.
      • Ability to design algorithms that can dynamically adjust to market conditions.
    5. Software Architecture and Scalability:
      • Experience building scalable, high-performance systems.
      • Knowledge of cloud infrastructure (AWS, GCP) and containerization (Docker, Kubernetes) for scaling and managing workloads.
    6. Familiarity with Financial Markets:
      • Understanding the intricacies of futures, equities, options, and other financial products.
      • Knowledge of market microstructure, trading hours, and different exchange rules.
    Steps to Hire the Right Developer or Team
    1. Define Detailed Requirements:
      • Create a comprehensive requirements document with specific use cases, product details, and expected functionalities.
      • Include detailed scenarios of how the tool should operate under various market conditions.
    2. Post Job Descriptions on Relevant Platforms:
      • Use job platforms like LinkedIn, Upwork, Freelancer, and specialized finance tech job boards.
      • Clearly outline the scope, required skills, and experience level.
    3. Screen Candidates Thoroughly:
      • Review portfolios and past projects, especially those related to trading systems.
      • Look for case studies or examples of work that show experience with market-making or pair trading strategies.
    4. Conduct Technical Interviews:
      • Assess candidates on programming skills, understanding of trading algorithms, and familiarity with market data handling.
      • Ask them to solve real-world trading scenarios or provide insights into building scalable systems.
    5. Test Projects:
      • Provide a small test project related to the core functionalities of the tool (e.g., building a simple pair trading algorithm with mock data).
      • Evaluate the quality of code, approach to problem-solving, and understanding of the trading logic.
    6. Evaluate Communication Skills:
      • Ensure the developer can communicate effectively, as they will need to understand complex trading strategies and translate them into code.
    7. Check References:
      • Speak with previous employers or clients to understand the candidate’s reliability, ability to handle complex projects, and performance under pressure.
    Final Considerations
    • Budget and Timeline: Clearly define the budget and expected timeline. Market-making tools require significant development time and resources.
    • Ongoing Maintenance: Plan for ongoing support and maintenance. Financial markets evolve, and the tool will need updates to stay effective.
    • Security: Ensure the tool has robust security measures to protect sensitive financial data and prevent unauthorized access.
    Conclusion
    Developing a robust market-making tool is a complex task requiring specialized skills and experience. By clearly defining your requirements, carefully selecting a developer or team with the right expertise, and planning for ongoing support and scalability, you can build a tool that meets your trading needs and handles large-scale operations effectively.

    Can you build this Chat GPT ?

    While I, as ChatGPT, can certainly assist with the development of components of a market-making tool and provide guidance, code snippets, and algorithms for specific tasks, I am not capable of directly building a full-fledged market-making tool on my own. However, here's what I can do to help you with this project:

    1. Algorithm Design and Strategy Development:
    • Pair Trading Logic: I can help design and refine the algorithms for calculating theoretical bid/ask values based on predefined ratios and offsets between products.
    • Market-Making Strategies: I can provide pseudocode or code examples for market-making strategies, such as quoting at different levels, diming, or market-taking strategies.
    • Hedging Mechanisms: Assistance with developing strategies for hedging using other products or designated hedges.
    2. Code Snippets and Examples:
    • Order Execution: I can help write code snippets for order execution using the Interactive Brokers (IB) API or other trading platforms.
    • Data Processing: Assistance in handling real-time data feeds, processing market data, and managing order books.
    • Risk Management: Provide code examples for setting up risk management rules, such as stop-losses, position limits, and exposure management.
    3. Guidance on Tools and Libraries:
    • API Integration: Guidance on integrating with IB's API for trading, including managing orders, fetching market data, and handling account information.
    • Real-Time Data Handling: Recommendations on using libraries for real-time data handling (e.g., pandas for data manipulation, ZeroMQ for messaging).
    • Scalability: Advice on designing scalable systems using cloud services, containerization, and microservices architecture.
    4. Best Practices and Architecture:
    • Software Architecture: Advice on structuring the codebase, using object-oriented programming, and ensuring modularity and maintainability.
    • Security Measures: Recommendations on securing the application, especially for handling sensitive financial data.
    5. Testing and Simulation:
    • Backtesting: Help set up a backtesting environment to test the strategies on historical data.
    • Simulation: Provide advice on setting up a simulation environment to test the market-making algorithms under various market conditions.
    What You Need from a Development Team or Developer
    To turn the design and code snippets into a fully functional market-making tool, you will need:

    1. Development Environment: A setup for coding, testing, and deploying the tool, which typically includes version control (e.g., Git), continuous integration, and deployment (CI/CD) pipelines.

    2. API Keys and Access: Credentials to access market data and execute trades through your chosen brokerage or trading platform.

    3. Full-Stack Development: Expertise in backend development (e.g., Python, C++), front-end development (for UI components, if needed), and database management.

    4. Experience in Trading Systems: Practical experience with building trading systems, particularly those involving high-frequency trading, market-making, or pair trading.
    Next Steps
    1. Initial Consultation: Consider engaging a developer or development team to understand the project's scope better.
    2. Prototyping: Start with a prototype that implements basic functionality, such as calculating theoretical prices and executing basic trades.
    3. Iterative Development: Use an agile approach to gradually add features, test strategies, and optimize performance.
    By combining my assistance with the expertise of a qualified developer or team, you can efficiently build and deploy a robust market-making tool tailored to your specific trading requirements.
     
    Last edited: Aug 28, 2024
    birdman, EdgeHunter and spy like this.
  3. Ok... I still want to hire a dev who wants to get paid to do the build and implementation.

    I want to pay for quality and expertise, I don't want to try to figure it out myself with Chat GPT.
     
    trader221 and MarkBrown like this.
  4. QuantVPS

    QuantVPS Sponsor


    Have you determined a programming language you'd like to develop this in?
     
  5. Ultimately I’m flexible. All else equal I’d probably prefer C++ over something like python- as more competitive latency is always preferred (but not required- clearly not trying to complete against a fpga/HFT setup)

    But if optimization and cost make the C++ budget significantly more expensive (multiples more) I’d consider something slower if I was confident it would be built with all the functionality I need.

    I’d discuss options more specifically with any potential developer.
     
  6. spy

    spy

    Your situation is a bit paradoxical. All those types I know already have deep pockets, cushy lives and often big egos. After all, this idea isn't perfectly unique and the "heavy lifting" is mostly implementation detail; aka SMOP.

    In other words, what can you offer someone who already has it all? At least from a material wealth perspective that is.

    So, I certainly wish you luck... hope you can provide a large sign-on bonus and are willing to part w/ a fair bit of equity in addition to paying a hefty wage ;)

    The alternative is hire a bright kid out of college for peanuts and place them in your panopticon. That may be even riskier though.

    GL... but I don't think you'll need much of it. After 10 years of using the IB API just follow Mark Brown's advice. You can't be that bad a coder!?!?
     
    Last edited: Aug 29, 2024
  7. spy

    spy

    Wait, I didn't read this part... maybe you will need luck.
     
  8. newwurldmn

    newwurldmn

    Other than the online “pair you with someone from India,” ive had luck with local staffing agencies. They will typically have a roster of programmers looking for contract work.
     
  9. MrMuppet

    MrMuppet

    I really hate to rain on your parade but I went through this myself and I can tell you that your expectations are absolutely unrealistic.

    "How difficult can it be, right? The algorithm is pretty straight forward and I just need to connect it to IB API. Perhaps 20k - 30k will do and a guy from either a contractor or a guy from Upwork."

    Here are some lessons for you:

    - if your algo needs to do any kind of calculations based on past data, like theoretical values you need a database first. Most likely you will hire a monkey who codes one in SQL which blows up your machine within two weeks. Find me a freelancer who knows time series database programming such as KdB+ for under 200/h

    - for your database to be filled with data, you will need a feed handler that translates and cleans the gibberish from your source into something that can be stored

    - now we´re getting to the order management system or OMS. When you send an order, you send that message to the exchange, the exchange sends back a message that the order is either acknowledged, declined for whatever reason or cancelled. The same goes for fills. Your hedger can only hedge if it knows that the quoting order has been filled and by how much.
    You will need exception handling, crash management, yada, yada, yada

    - Let´s go over latency and expect 50ms ping to your broker and 50ms to the exchange: Your quoting order is sent to the broker first for the risk checks, then it gets to the exchange. That´s 100ms. Now you wait for the order confirmation, another 100ms. Now your pricing asset changes so you need to amend your quote (I hope the indian freelancer knows the difference between cancel/replace and amend), another 200ms
    When your quote gets hit, it takes 100ms for the fill confirmation to get to you and another 100ms for the hedging order to arrive at the exchange and another 100ms until you know if you have been legged or not so that your risk management, we haven´t talked about yet, can either do nothing or amend the hedging order.

    - Risk management: You need to make sure you have automatic kill switches in case your algo goes haywire and that your portfolio is in line with your risk parameters.

    - Log: You need to log every single action of your algo and you also need to log your mark outs vs. theo to measure slippage.

    - Your quote machine needs to be in line with the exchange rules, meaning you have to throttle your quotes and maintain a given message to fill ratio.

    - Exchange connections and Broker APIs are patched all the time and your system will be infested with bugs so you have to maintain the connector and the software.

    - On top of all you don´t have any idea how all of this works so you cannot differentiate between a qualified programmer who has experience with this kind of stuff and a punk who tells you "no problem, you´ll have it next week"

    - Futures would be easier but you want to trade equities. There are 17 different exchanges and an infinite number of dark/OTC venues so you need to handle all of them AND you need to decide where your passive order should sit. Maker/taker fee structure, order types, routing, you name it

    Unless you have a mid 6 figure budget for development and a 5 figure monthly budget for maintainance you will end up with an unusable product that causes more harm than good. Been there, done that. Either learn to code or buy off the shelf.


    I don´t know what you´re planning to do but I guess you´re not looking to trade pairs with 50bps slippage but you don´t care because 3 week holding period and you will also not mass quote 500 single names against SPY.
    So you are neither happy with a retail spreader that can be had for 100/month nor do you have the capacity for a seven figure low latency infrastructure.


    Your best bet would be a prop shop infrastructure aka.

    - broker/clearer with low latency DMA...meaning say good bye to IB
    - off the shelf software that is running on a co-located server maintained by the SaaS provider. If you rent the software only and look to deploy it yourself on either colo or cross connected virtual machines you´re looking at a massive overhead since NASDAQ alone is round about 30k/month just for priority connection.

    For equities I would guess you´re good with a monthly budget between 5 and 10k all in.
    Sounds steep? You will get it cheaper, but look at it this way:

    You "manage millions", so I guess we´re looking at a 2m USD account :D
    Let´s say you are turning that over 200 times per year, that´s 400m USD turnover per year.
    An average slippage of 4bps (2cts for a 50$ stock) will cost you 160k. So imagine using a shitty retail setup that runs on your local machine with "fast internet" and averages 20bps slippage over theoretical (10cts for a 50$ stock) -> 800k


    Be warned, my friend. The rabbit hole you´re about to crawl into is very, very deep.
     
    Last edited: Aug 29, 2024
  10. MarkBrown

    MarkBrown

    WHEN YOU KNOW YOU KNOW LOL NO TRUER WORDS HAVE BEEN SPOKE THAN ABOVE...
     
    #10     Aug 29, 2024
    HitAndMissLab likes this.