Skip to content

v0.5.0

Choose a tag to compare

@IOITI IOITI released this 26 Apr 09:08
· 82 commits to main since this release

Changelog: WATA v0.5.0

This release introduces significant changes, including a major configuration overhaul and enhanced security features. Please review the BREAKING CHANGES section carefully before upgrading.

We are also excited to announce our new dedicated documentation site: https://ioiti.github.io/wata-docs/


💥 BREAKING CHANGES 💥

  1. Configuration File Overhaul (config.json):

    • The structure of the trade section within config.json has been significantly refactored to improve organization, validation, and allow for more granular control over trading parameters.
    • Action Required: Users must update their config.json file to match the new structure. Please refer to the v0.5.0 Configuration Guide for the updated format and new options.
    • Key changes include:
      • Restructured trade.config into sub-sections: turbo_preference, buying_power, position_management, and general.
      • Introduced new configuration options like timezone, max_day_loss_percent, turbo price_range, stoploss_percent, max_profit_percent, API limits, retry settings, and more.
      • Removed the trade.rules.profit_per_days rule; its functionality is now part of the new day_trading rule type under trade.rules.
      • Added new rule types: day_trading, signal_validation, and market_hours.
  2. Webhook Token Management:

    • Webhook authentication token management has been redesigned for enhanced security. Tokens are now stored encrypted in the file specified by webserver.persistant.token_path.
    • A new app_secret key has been added to the webserver section in config.json. Action Required: You must set a strong, unique secret key for webserver.app_secret in your config.json.
    • Action Required: The previous method of storing/retrieving the webhook token is no longer valid. Users must use the new watawebtoken command-line tool to view their current token or generate a new one after upgrading. Update your webhook sender (e.g., TradingView alerts) with the token obtained from watawebtoken.
      • View token: watawebtoken
      • Generate new token: watawebtoken --new
    • Refer to the Webhook Token Management documentation.
  3. Saxo Authentication Configuration:

    • The username and password fields have been removed from the authentication.saxo section in config.json. Authentication now relies solely on the persisted OAuth token flow managed internally.

✨ Added

  • New Trading Rules & Configuration:
    • Introduced day_trading rule with parameters for daily profit target, max daily loss percentage, threshold to stop entering trades, and end-of-day position closing time (68767aa, adbd05a).
    • Added signal_validation rule to reject signals older than a configurable duration (4136376, 037c39b).
    • Implemented market_hours rule to define trading start/end times and a "risky" trading period (4136376).
    • Added timezone configuration (general.timezone) for consistent time handling across the application (0808892, 42001d7).
    • Added turbo_preference.price_range to filter instruments by price (a07adc3).
    • Added position_management.performance_thresholds for stoploss_percent and max_profit_percent (ec74fe4).
    • Added buying_power.max_account_funds_to_use_percentage to control capital allocation per trade.
  • Security Enhancements:
    • Implemented secure, encrypted storage for webhook authentication tokens (15e6b5a).
    • Introduced the watawebtoken command-line utility for managing webhook tokens (6446ffa).
  • Configuration Validation: Added validation checks for the config.json structure and values (cb47632).
  • Documentation:
    • Launched a new dedicated documentation website: https://ioiti.github.io/wata-docs/ (77522bb, etc.).
    • Added comprehensive Getting Started Guide and FAQ (914d2f2, ab8afd9).
    • Included architecture flowcharts and improved visual elements in documentation (e960b0b, c5199f0, c78d426, 9234619).
    • Enhanced README with badges, clearer setup instructions, risk warnings, and how-to guides (b0b1037, 7c52903, 76ac5e0, 47d0f37).
  • Trading Logic: Instrument sorting and filtering now uses the 'Bid' price instead of 'Mid' price for potentially more accurate selection (a6f2943).

🔄 Changed

  • Refactoring:
    • Refactored Saxo API token management and initialization logic for improved reliability and clarity (f383e69, 5747519, da628ae).
    • Refactored trading rule checks and signal action processing (bc7c06a).
    • Refactored position performance checking logic for efficiency (ec74fe4).
    • Refactored configuration management (958599f, 45f509d).
  • API Interaction: Increased the frequency of the ping_saxo_api job to every 15 seconds (abd0dee).
  • Logging:
    • Enhanced logging details for signal actions, timestamp validation, and token retrieval (bc7c06a, 037c39b, 8a37b40).
    • Adjusted some log levels for better verbosity control (8a37b40).
  • User Experience: Added an emoji to the RabbitMQ readiness notification (6b940db).

❌ Removed

  • Removed username and password fields from authentication.saxo in config.json (See Breaking Changes).
  • Removed the trade.rules.profit_per_days configuration (functionality merged into day_trading rule).
  • Deleted unused trade/__init__.py file (e2b5b1b).

🐛 Fixed

  • Fixed Docker exec command interpretation and an import path for WebServerToken (8d878c1).
  • Corrected case sensitivity issues in trading rule method calls (1ee5338).
  • Fixed a logging variable name related to sorted data count (aed79af).

Please update your configuration and webhook tokens as described in the BREAKING CHANGES section. Consult the new documentation site for detailed guidance.