‹ Reports
The Dispatch

OSS Report: freqtrade/freqtrade


Freqtrade Development Sees Significant Focus on Enhancing Machine Learning Capabilities and User Experience

Freqtrade, an open-source cryptocurrency trading bot, continues to evolve with a strong emphasis on integrating advanced machine learning features and improving user engagement through enhanced documentation and community support.

Recent Activity

Recent issues and pull requests (PRs) indicate a concerted effort to refine the FreqAI module, addressing compatibility challenges with various exchanges and enhancing analytical capabilities. Notable issues include #10571, which highlights discrepancies in backtesting signal generation, and #10542, which reports a segmentation fault on Apple M2 systems. These issues underscore ongoing challenges in ensuring robust performance across diverse environments.

Development Team and Recent Activity

The team's activities reflect a focus on code quality, documentation clarity, and feature enhancements, indicating a commitment to both technical excellence and user education.

Of Note

  1. Machine Learning Integration: The introduction of new reinforcement learning models (PR #10243) highlights a strategic push towards leveraging AI for strategy optimization.
  2. Documentation Improvements: Ongoing efforts to enhance user guidance align with the project's educational focus, as seen in recent documentation updates by Matthias and Robert Davey.
  3. Dependency Management: Dependabot's frequent updates ensure compatibility with the latest library versions, crucial for maintaining functionality and security.
  4. Backtesting Enhancements: PR #10485's addition of exit signals in backtesting reflects a drive to provide deeper insights into trading strategies.
  5. Community Engagement: Active discussions around issues and PRs demonstrate a vibrant community contributing to the project's development and problem-solving efforts.

Quantified Reports

Quantify Issues



Recent GitHub Issues Activity

Timespan Opened Closed Comments Labeled Milestones
7 Days 8 8 32 0 1
30 Days 39 41 156 0 1
90 Days 120 117 500 2 1
1 Year 214 200 902 3 1
All Time 4629 4590 - - -

Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.

Quantify commits



Quantified Commit Activity Over 30 Days

Developer Avatar Branches PRs Commits Files Changes
Matthias 4 8/8/0 161 3093 2649060
github-actions[bot] 1 0/0/0 6 63 842
dependabot[bot] 2 48/43/5 34 7 70
Stefano Ariestasia 1 1/1/0 1 2 28
Robert Davey 1 3/2/1 3 2 24
iridescentGray 1 1/1/0 1 1 2
Masoud Azizi (mablue) 0 1/0/1 0 0 0
Simon Waiblinger (simwai) 0 0/1/0 0 0 0
None (MikForge) 0 1/0/1 0 0 0
Anuj Jain (jainanuj94) 0 1/1/0 0 0 0
Nikhil Saraf (nikhilsaraf) 0 1/0/1 0 0 0
None (dingzhengxia) 0 1/0/1 0 0 0
Botting away . . . (freqtrade-bot) 0 7/7/0 0 0 0

PRs: created by that dev and opened/merged/closed-unmerged during the period

Detailed Reports

Report On: Fetch issues



Recent Activity Analysis

The Freqtrade GitHub repository has seen a notable increase in activity, with 39 open issues, including recent discussions around the integration of reinforcement learning and various bugs related to trading strategies. A significant focus is on the functionality of the FreqAI module, particularly its compatibility with different exchanges like Kraken, which has limitations due to its API not providing sufficient historical data for effective trading strategies.

Several issues highlight common problems such as discrepancies in stake amounts during trades, challenges with backtesting due to missing data, and the need for better handling of leverage in futures trading. The community appears engaged, with users actively seeking solutions and sharing insights on implementing features like dynamic pairlists and automated hyperparameter optimization.

Issue Details

Here are the most recently created and updated issues:

  1. Issue #10571: Inconsistent signal generation during backtesting

    • Priority: Question
    • Status: Open
    • Created: 1 day ago
    • Last Updated: 0 days ago
    • Details: User reports discrepancies in signal generation when backtesting multiple symbols together versus individually.
  2. Issue #10542: FreqAI segmentation fault on Apple M2 (metal)

    • Priority: Triage Needed
    • Status: Open
    • Created: 9 days ago
    • Last Updated: 2 days ago
    • Details: A segmentation fault occurs when trying to train a model using FreqAI on an Apple M2 system.
  3. Issue #10517: Getting episodic trades to the reward function on freqtrade-rl

    • Priority: Question
    • Status: Open
    • Created: 17 days ago
    • Last Updated: 5 days ago
    • Details: User seeks guidance on integrating periodic results into the reward function for reinforcement learning.
  4. Issue #7190: Hyperopt cmd line new subcommand for forward validation

    • Priority: Enhancement
    • Status: Open
    • Created: 750 days ago
    • Last Updated: 13 days ago
    • Details: Suggestion for a new command line option in Hyperopt to facilitate forward validation during strategy optimization.
  5. Issue #10503: Is Binance supported in "Credit Trading Mode" for Perpetual Futures?

    • Priority: Question
    • Status: Open
    • Created: 20 days ago
    • Last Updated: 18 days ago
    • Details: Inquiry regarding the support of Binance's Credit Trading Mode for perpetual futures, especially concerning EU regulations.

Important Themes and Commonalities

  • There is a clear emphasis on improving the FreqAI module, particularly regarding its compatibility with various exchanges and its functionality within different trading modes (spot vs. futures).
  • Users are actively seeking clarity on configuration settings and how they impact trading behavior, especially concerning leverage and stake amounts.
  • The community is engaged in discussions about enhancing existing features, such as dynamic pairlist management and automated hyperparameter tuning.
  • Several issues indicate potential bugs or limitations within the current implementation of trading strategies, particularly when it comes to handling partial exits and updating stop-loss orders.

This analysis highlights ongoing challenges faced by users while also showcasing the active engagement of the community in seeking solutions and contributing to the development of Freqtrade.

Report On: Fetch pull requests



Report on Pull Requests

Overview

The analysis covers a total of 9 open pull requests (PRs) from the Freqtrade project, highlighting enhancements, dependency updates, and ongoing discussions regarding feature implementations. The PRs reflect active development and community engagement in improving the trading bot's capabilities.

Summary of Pull Requests

Open Pull Requests

  1. PR #10485: Add exit signals to export in backtesting

    • State: Open
    • Created: 23 days ago
    • Summary: Introduces exit signals to be included in backtesting analysis, allowing for deeper insights into trading strategies.
    • Significance: This enhancement addresses issue #8902 and improves the analytical capabilities of the bot by providing more data points during backtesting.
  2. PR #10491: chore(deps): bump xgboost from 2.0.3 to 2.1.1

    • State: Open
    • Created: 20 days ago
    • Summary: Updates the XGBoost library to a newer version, which includes bug fixes and enhancements.
    • Significance: Keeping dependencies up-to-date is crucial for maintaining compatibility and leveraging improvements in performance and functionality.
  3. PR #10243: Draft: Add DDPG and TD3 model options for RL

    • State: Open
    • Created: 92 days ago
    • Summary: A work-in-progress PR to introduce new reinforcement learning models (DDPG and TD3) into the Freqtrade framework.
    • Significance: Expanding model options enhances the bot's machine learning capabilities, potentially leading to better trading strategies.
  4. PR #10173: Fix mutable defaults, enable bugbear ruff rule

    • State: Open
    • Created: 112 days ago
    • Summary: Addresses issues with mutable default arguments in functions, which can lead to unexpected behavior.
    • Significance: This PR improves code reliability and adheres to best practices in Python programming.
  5. PR #10098: Implement a parameter for skipping errors during model training in the backtest process

    • State: Open
    • Created: 129 days ago
    • Summary: Introduces a parameter that allows the bot to skip errors during backtesting, enhancing robustness against data disruptions.
    • Significance: This feature is particularly useful for maintaining continuous trading operations despite occasional data issues.
  6. PR #10062: Feature: Proceed exit while having open order, for backtesting and live

    • State: Open
    • Created: 137 days ago
    • Summary: Aims to allow trades to exit properly even when there are open orders.
    • Significance: This feature addresses a common scenario in trading where managing exits while holding positions is critical.
  7. PR #9989: 9985 delist schedule

    • State: Open
    • Created: 156 days ago
    • Summary: Implements functionality to check if a trading pair is being delisted on exchanges.
    • Significance: Enhances the bot's ability to manage trades effectively by avoiding delisted pairs.
  8. PR #9305: Optimize dtypes for hyperopt and backtesting to decrease memory usage

    • State: Open
    • Created: 315 days ago
    • Summary: Focuses on optimizing data types used in backtesting to reduce memory consumption.
    • Significance: Memory optimization is essential for performance, especially when handling large datasets during backtests.
  9. PR #3059: Outstanding balance function

    • State: Open
    • Created: 1627 days ago
    • Summary: Adds functionality to calculate the outstanding balance of all open trades using close prices.
    • Significance: This feature provides users with insights into their trading performance over time.

Analysis of Pull Requests

The current set of open pull requests showcases a vibrant development environment within the Freqtrade project, emphasizing both functional enhancements and technical maintenance.

Themes and Commonalities

A recurring theme across several PRs is the focus on enhancing analytical capabilities through improved data handling and additional features for backtesting. For instance, PR #10485 introduces exit signals into backtesting analysis, which aligns with user needs for more comprehensive performance metrics. Similarly, PR #10098 aims to improve robustness by allowing error skipping during model training, addressing potential interruptions caused by data issues.

Moreover, there is a notable emphasis on dependency management and code quality improvements. The updates to libraries such as XGBoost (#10491) and various other dependencies demonstrate an ongoing commitment to keeping the project up-to-date with external changes while ensuring compatibility with newer versions of libraries like NumPy and FastAPI.

Anomalies and Disputes

While most PRs are progressing well, some have raised questions or concerns among contributors. For example, PR #10098 has sparked discussions about whether it should be implemented as a flag or integrated directly into the backtesting process without optionality. Such debates highlight differing opinions on how best to enhance user experience versus maintaining simplicity in usage.

Additionally, PR #10243 remains in draft status as contributors refine its implementation details for new reinforcement learning models. This indicates that while there is enthusiasm for expanding machine learning capabilities within Freqtrade, careful consideration is being taken before finalizing such significant additions.

Lack of Recent Merge Activity

Despite several active discussions around these PRs, there appears to be a lack of recent merge activity, particularly for older pull requests like #9305 and #3059 that have been open for an extended period (over 300 days). This could suggest potential bottlenecks in review processes or resource allocation within the development team that may need addressing to maintain momentum.

Conclusion

Overall, the current landscape of pull requests reflects a healthy mix of innovation and maintenance within the Freqtrade project. The community's engagement in discussions around features and improvements indicates a collaborative spirit aimed at enhancing both functionality and user experience. However, attention should be given to expediting reviews and merges for older PRs to ensure that contributions do not stagnate over time.

Report On: Fetch commits



Repo Commits Analysis

Development Team and Recent Activity

Team Members

  • Matthias (xmatthias): Primary contributor with extensive recent activity.
  • Robert Davey (froggleston): Contributed to documentation.
  • IridescentGray: Minor contributions related to testing.
  • Dependabot: Automated dependency updates.
  • Stefano Ariestasia (stash86): Minor feature addition.

Recent Activities

Matthias (xmatthias)

  • 1 day ago: Refactored tests for Binance liquidation setup, simplifying the test structure.
  • 1 day ago: Moved a specific test to the appropriate file, improving organization.
  • 1 day ago: Updated documentation to show version aliases and adjusted font weights in stylesheets.
  • 2 days ago: Improved typing in the exchange module.
  • 2 days ago: Implemented a feature preventing startup on exchanges without trading history (closes #10570).
  • 3 days ago: Merged updates for Binance leverage tiers and improved pre-commit hooks.
  • 4 days ago: Clarified documentation regarding untradeable pairs and fixed test parameters.
  • 5 days ago: Made several deployment-related changes, including moving deployment processes to GitHub Actions and adding CI for deployment.

Robert Davey (froggleston)

  • 4 days ago: Added clarifications in documentation regarding untradeable pairs vs markets.

IridescentGray

  • 4 days ago: Fixed test parameters in OKX tests.

Dependabot

  • Regularly updated various dependencies, including ccxt, fastapi, matplotlib, and others, ensuring the project remains up-to-date with the latest versions.

Stefano Ariestasia (stash86)

  • 7 days ago: Added a startup count from strategy to analysis.

Patterns and Themes

  1. High Activity Level: Matthias is highly active, contributing a significant number of commits focused on refactoring, feature additions, and documentation improvements. This indicates a strong commitment to enhancing code quality and user guidance.

  2. Documentation Focus: There is a consistent effort to improve documentation, making it clearer for users. This includes clarifications about features and usage scenarios, which aligns with the project's educational emphasis.

  3. Collaborative Efforts: Collaboration is evident through merged pull requests from various contributors, indicating an engaged community contributing to different aspects of the project.

  4. Automated Maintenance: Dependabot's presence reflects an automated approach to managing dependencies, which helps maintain project stability without manual intervention.

  5. Feature Enhancements: Recent commits show a focus on enhancing existing features (e.g., trading history checks) and adding new functionalities that improve user experience.

Conclusions

The development team is actively engaged in maintaining and enhancing the Freqtrade project. The focus on refactoring, documentation, and dependency management suggests a commitment to both code quality and user experience. The collaborative nature of contributions indicates a healthy community around the project, supporting its growth and sustainability.