Zack is a lightweight and simple backtesting engine written in Zig. Designed for clarity and ease of use, it emphasizes a straightforward API and avoids external dependencies. It's geared towards individual traders and researchers who prioritize understanding and modifying their backtesting logic. Zack loads historical market data, applies user-defined trading strategies coded in Zig, and provides performance metrics. While basic in its current form, the project aims to be educational and easily extensible, serving as a foundation for building more complex backtesting tools.
The blog post details the author's experience market making on Kalshi, a prediction market platform. They outline their automated strategy, which involves setting bid and ask prices around a predicted probability, adjusting spreads based on liquidity and event volatility. The author focuses on "Will the Fed cut interest rates before 2024?", highlighting the challenges of predicting this complex event and managing risk. Despite facing difficulties like thin markets and the need for continuous model refinement, they achieved a small profit, demonstrating the potential, albeit challenging, nature of algorithmic market making on these platforms. The post emphasizes the importance of careful risk management, constant monitoring, and adapting to market conditions.
HN commenters discuss the intricacies and challenges of market making on Kalshi, particularly regarding the platform's fee structure. Some highlight the difficulty of profiting given the 0.5% fee per trade and the need for substantial volume to overcome it. Others point out that Kalshi contracts are generally illiquid, making sustained profitability challenging even without fees. The discussion touches on the complexities of predicting probabilities and the potential for exploitation by insiders with privileged information. Some users express skepticism about the viability of retail market making on Kalshi, while others suggest potential strategies involving statistical arbitrage or focusing on less efficient, smaller markets. The conversation also briefly explores the regulatory landscape and Kalshi's unique position as a CFTC-regulated exchange.
The New York Stock Exchange (NYSE) is establishing a new trading floor in Arlington, Texas, called NYSE Texas. Scheduled to open in 2027, this facility will serve as a disaster recovery and backup site for the NYSE's existing operations. It will also house a physical trading floor mirroring the iconic NYSE in New York City, offering a venue for in-person trading and important corporate events like IPO ceremonies. This expansion aims to increase the exchange's resiliency and geographical diversity.
Hacker News commenters were generally cynical about the announcement of NYSE Texas. Many saw it as a thinly veiled attempt to circumvent regulations, potentially relating to taxes or data sovereignty, with some speculating about connections to Texas's lax regulatory environment. Several pointed out the irony of a New York institution establishing a Texas branch for supposed advantages, while others questioned the practical implications and whether any significant trading activity would actually relocate. Some suggested the move was more about optics and public relations than genuine operational needs, especially given the existing electronic nature of trading. A few commenters expressed curiosity about the specifics of the "cutting edge financial technology" mentioned in the press release, but overall the sentiment was skeptical.
Summary of Comments ( 0 )
https://news.ycombinator.com/item?id=43712877
HN commenters generally praised Zack's simplicity and the choice of Zig as its implementation language. Several noted Zig's growing popularity for performance-sensitive tasks and appreciated the project's clear documentation and ease of use. Some discussed the benefits of using a compiled language like Zig for backtesting compared to interpreted languages like Python, highlighting potential performance gains. Others offered suggestions for improvements, such as adding support for more complex trading strategies and integrating with different data sources. A few commenters also expressed interest in exploring Zig further due to this project.
The Hacker News post "Zack: A Simple Backtesting Engine in Zig" generated a moderate number of comments, mostly focusing on the choice of Zig as the implementation language, its performance characteristics, and comparisons to other backtesting solutions.
Several commenters expressed interest in Zig and its potential for performance-sensitive applications like backtesting. They praised Zig's memory management and control, suggesting it could lead to significant speed improvements over garbage-collected languages. One commenter specifically highlighted Zig's suitability for tasks involving numerical computation and data manipulation, key aspects of backtesting. The potential for minimizing runtime surprises and predictable performance was also mentioned as an attractive feature of Zig in this context.
The discussion also touched upon the trade-offs between simplicity and features. While some appreciated Zack's minimalist approach, others questioned its long-term viability and scalability compared to more mature backtesting frameworks. One commenter pointed out the lack of support for more complex features like slippage and commission modeling, which are crucial for realistic backtesting. This led to a discussion about the project's intended scope and whether it aimed to be a fully-fledged solution or a foundational building block for more sophisticated tools.
Performance comparisons with existing backtesting engines, particularly those written in Python, were a recurring theme. While no concrete benchmarks were presented in the comments, there was a general expectation that a Zig implementation could offer substantial performance gains. However, some commenters cautioned against premature optimization and emphasized the importance of profiling and benchmarking to validate these assumptions.
Finally, a few comments delved into specific aspects of Zack's design and implementation. One commenter inquired about the handling of historical data and the potential for integration with existing market data providers. Another comment touched upon the challenges of parsing and processing large datasets efficiently in a backtesting context. The discussion also briefly explored the possibility of using WebAssembly as a deployment target for wider accessibility.
Overall, the comments reflected a generally positive reception towards Zack, driven primarily by the interest in Zig and its potential for performance improvement in backtesting. However, there were also pragmatic concerns about the project's current limitations and the need for further development to address real-world backtesting requirements.