top of page

How to Develop Hyperforge Trading Bots with Daria

Updated: Sep 15, 2024


In this tutorial, we’ll walk through the experience of developing the Hyperforge Trading Bot Development Kit with the support of Daria, the Artificial Financial Expert from SentinelALGO. Daria, equipped with a deep understanding of the entire development process, provides insights and guidance to streamline the development workflow. This guide will demonstrate how to effectively collaborate with Daria while building and improving the Hyperforge bot, including advanced topics like Adaptive Slippage Management and Profit-Taking.


Table of Contents

  1. Introduction to Daria and Hyperforge

  2. Setting Up the Development Environment

  3. Collaborating with Daria to Enhance Key Features

    • Balance Fetching

    • Order Management

    • Slippage Protection

  4. Building and Enhancing Advanced Features with Daria

    • Stop-Limit Orders

    • Profit-Taking Mechanisms

    • Average Price Calculations

    • Adaptive Slippage Management (Work in Progress)

  5. Iterating and Improving the Bot

  6. Leveraging Daria’s Expert Insights for Market Scenarios

  7. Future Features with Daria


1. Introduction to Daria and Hyperforge

Daria is our Artificial Financial Expert embedded within SentinelALGO’s ecosystem. She offers guidance during the development process, using her comprehensive understanding of previous interactions, technical problems, and solutions.

Hyperforge, meanwhile, is a powerful Python-based trading bot development kit designed for integrating with Gate.io.


Daria enhances the efficiency of developing with Hyperforge by providing:


  • Continuous Insight: Daria remembers and tracks all conversations regaarding coding of Hyperforge, allowing her to give context-sensitive coding advices.

  • Tailored Suggestions: She provides real-time insights for building specific functions.

  • Error Handling: Daria points out and helps resolve common coding mistakes, improving the robustness of the bot.


2. Setting Up the Development Environment

When working with Daria on Hyperforge, the first step is ensuring that the development environment is set up correctly. This includes configuring access to Gate.io using CCXT and enabling webhooks from TradingView to send signals for trade execution.

Basic Setup with Daria’s Input:

  • Install Python 3.x

  • Install dependencies: ccxt, flask, requests, json

  • Configure API keys from Gate.io for live trading or testing in a demo environment.




3. Collaborating with Daria to Enhance Key Features

Balance Fetching

One of the first tasks in developing Hyperforge is building a function to fetch the balance. With Daria’s guidance, you can efficiently retrieve and format balance data.

Daria’s Insight: Daria suggests handling exceptions early and providing comprehensive logging through Telegram for easy monitoring of real-time balance status.

Function:

python
def getBalance(): try: balance = exchange.fetch_balance() balance_text = "BALANCE:" for info in balance['info']: balance_text += str(info) print(balance_text) return balance_text except Exception as e: telegram_bot_sendtext(f"Error fetching balance: {e}") return None


Order Management

Daria helps refine the order management system, which includes tracking buy and sell orders and ensuring that the number of active orders stays within predefined limits. This helps to avoid over-exposure.

Key Functions:

  • manage_open_buy_orders() and manage_open_sell_orders(): These functions limit the number of active buy/sell orders and cancel obsolete orders.

Daria monitors the order flow, suggesting improvements based on the context of trading signals or market volatility.


4. Building and Enhancing Advanced Features with Daria

Stop-Limit Orders

Developing stop-limit orders in Hyperforge can be challenging, but Daria's expertise helps navigate complex error scenarios, including fallback handling if the stop-limit order fails.

Stop-Limit Buy Example:

python
def create_stop_limit_buy_order(symbol, amount, stop_buy_price, limit_buy_price, enableInsteadMode): params = {'triggerPrice': stop_buy_price} try: order = exchange.create_limit_buy_order(symbol, amount, limit_buy_price, params) telegram_bot_sendtext(f"Buy stop-limit order placed for {amount} {symbol}") except Exception as e: if enableInsteadMode: telegram_bot_sendtext(f"Failed to place stop-limit buy order, switching to normal buy: {e}") exchange.create_limit_buy_order(symbol, amount, limit_buy_price)

Daria’s Suggestions: Daria provides insight into adapting the fallback mechanism based on the specific conditions of Gate.io’s exchange behaviors. She will advise using recursive retries or suggest fallback price calculations.


Profit-Taking Mechanisms

Daria’s Advanced Tips: Daria assists in fine-tuning profit-taking mechanisms by suggesting the ideal balance of risk and reward. She tracks historical profit-taking success and offers adjustments to target percentages dynamically.

Profit-Taking Example:

python
def take_profit_if_target_reached(total_balance, initial_balance, asset_balances, locked_balances, takeProfitTargetPercentage): target_balance = initial_balance * (1 + takeProfitTargetPercentage / 100) if total_balance >= target_balance: telegram_bot_sendtext("Target balance reached, taking profits...") # Cancel all open orders and sell assets at optimal prices


Average Price Calculations

Calculating the average price of trades is essential for accurate order placement. Daria ensures that average price calculations take slippage and commission into account for both buying and selling.

Daria’s Input: She suggests fetching the average price based on historical trades, helping optimize future trades by providing better entry and exit points.

Average Price Function:

python
def get_average_price_of_trades(symbol, minutes): trades = exchange.fetchMyTrades(symbol, since=n_minutes_ago) # Calculate the weighted average price average_price = sum([trade['price'] * trade['amount'] for trade in trades]) / sum([trade['amount'] for trade in trades]) return average_price

Adaptive Slippage Management with Daria (Work in Progress)

Daria plays a crucial role in developing the Adaptive Slippage Management mechanism. This system dynamically reacts to market changes and price movements, adjusting the bot’s strategy to minimize losses due to slippage. Daria provides real-time feedback, allowing the bot to quickly adjust to unfavorable market conditions.

Example Scenarios Daria Handles:

  1. Sudden Price Drops: Daria detects when the market price for an asset is dropping rapidly and suggests adjusting slippage thresholds to prevent larger losses.


    Pseudo Code:

    IF current_price drops below purchase_price by 2% 

    THEN Execute slippage protection Place market sell order or fallback to limit order


  2. Order Timeout: If an open order is not executed within a set time frame, Daria suggests canceling the order and trying a new strategy.


    Pseudo Code:

    IF time_elapsed > 60 minutes AND order not executed

    THEN Cancel the order and place a new one at optimal price


  3. Recursive Limit Orders: Gate.io does not support market orders, so Daria recommends recursive limit orders. If the limit order fails to execute, Daria retries at progressively better prices until the trade is successful.


    Pseudo Code:

    PLACE limit sell order at best bid price

    IF order not filled

    THEN Cancel order Retry with new limit price


  4. Adapting Based on Trade History: Daria learns from past trade results, suggesting adjustments to the slippage percentage or time-out periods based on the bot’s historical performance.


5. Iterating and Further Improving the Bot

With Daria, Hyperforge can be continuously improved.

Each interaction with Daria refines the bot’s performing by co-developing:

  • Dynamic Adjustments:

  • Error Correction

  • Slippage Refinement

  • Asset Rebalancing

  • Adaptive Risk Management and so on..


Visit Aphexion Github in order to acces Hyperforge code: https://github.com/Aphexion/Hyperforge_Public/

Try SentinelALGO™ Free for Your First Week

Thanks for your interest.

A notification email containing your registration details is being sent to you now.


We will be giving access within 24 hours.

bottom of page