2025-06-05 22:06:32 +07:00
2025-03-05 10:36:54 +07:00
2025-05-30 14:00:27 +07:00
2025-06-05 22:06:32 +07:00
2025-03-05 22:40:24 +07:00
2024-05-03 16:39:25 +05:00
2025-05-09 22:40:31 +07:00
2024-05-06 15:08:45 +05:00
2024-05-10 17:19:18 +05:00
2024-05-06 15:55:40 +05:00
2024-08-17 06:50:18 +07:00
2025-06-03 01:01:17 +07:00

Introduction

Managing App is a bot management application written using C# and Typescript. First goal was to be able to run an infinite number of Bot without any limitations (will depend on your server capabilities only) It is designed to support multiples exchanges and be controlled via webUI or Discord. It contains bot management, backtesting, scenario management and money management..


Roadmap

v1 - The base

  • Bot management
  • Backtesting
  • MoneyManagement
  • Strategies systems
  • WebUI
  • Robust trading management
  • Adaptive trading
  • Account management
  • Workers (prices, backtests, volumes)
  • Bot backup

v2 - The custody back

  • Web3 Authentification
  • Hot-wallets management
  • Chainlink and Subgraphs feeds
  • GMX Contracts integration
  • GMX v2 Contracts integration

v2.1

  • Tools : RektFees, Spotlight
  • Funding Rates
  • Strategies optimisation
  • Delta neutral positions
  • Address tracking
  • Trading desk
  • Metrics (backtests, portofolio)
  • Account Abstraction Layer
  • Enhance performances
  • Dockerize everything

v2.2

v3 - The bitcoin protocol

v4 - The omnipotence

Stack

Architecture

alt text

Front-end

Back-end


Features

Privy

Front-end required:

  • Sign message to get jwt
  • Delegate embedded address
  • Sign delegation
  • Send >10 USDc and 5$ of ETH for txn fees
  • Trigger to init address

Backend actions:

  • Approve GMX contracts addresses
  • Approve USDc contract address

Money Management

  • Create a defined money management for a given timeframe (StopLoss, TakeProfit, Amount to risk)
  • Edit a money management configuration
  • Delete a configuration

Strategies

  • Build a strategy
  • Delete strategy

Strategies availables :

Strategy Description Recommended values
ChandelierExit Triggers a SHORT signal when the previous candle is above the ChandelierExit, and the last candle closes below the ChandelierExit. Period: 22, Multiplier: 3
EMACross Triggers a signal when the last candle crosses the EMA. Period: 200
EMATrend Returns a Trend signal SHORT when the last candle is below the EMA, and a Trend LONG signal when StochRSI < 20%. Period: 200
MACDCross Triggers a signal when EMAs cross. FastPeriod: 12, SlowPeriods: 26, SignalPeriods: 9
RSIDivergenceConfirm First, detects a divergence and then triggers a signal when the divergence is confirmed. Period: 4 for 6
RSIDivergence Triggers a signal when a divergence occurs on the period. Period: 4 for 6
STC Returns a signal SHORT when the previous STC > 75% and the current STC <= 75%. Period: 22
StochRsiTrend Returns a Trend signal SHORT when Stoch RSI > 80% and a Trend LONG signal when StochRSI < 20%. Period: 22
SuperTrend Triggers a SHORT signal when the previous candle is above the super trend, and the last candle closes below the super trend. Period: 10, Multiplier: 3
ThreeWhiteSoldiers Triggers a LONG signal when the Three White Soldiers pattern is identified. Lookback Period: 3

Scenarios

  • Build a scenario with multiple strategies
  • Delete a scenario

Backtests

The backtest system works with multiple required parameters :

  • Exchange (Binance, Kraken, FTX)
  • Ticker (ADAUSDT, BTCUSDT, etc..)
  • Days : Since when did you want to start backtest. Should be a negative value
  • ScenarioName
  • Timeframe (OneDay, FifteenMinutes, etc..)
  • BotType (ScalpingBot or FlippingBot)
  • Initial balance
  • Advanced parameters: All bot configuration parameters (time limits, profit-controlled flipping, etc.)
  • Smart bot deployment: Deploy successful backtests as live bots with optimized settings
  • Enhanced UI: Wider modals with organized 2-column parameter layouts

Bots

  • Create and run a bot
  • Stop / Restart a bot
  • Delete a bot
  • Stop all bots
  • Set bot to watch only (send signal to discord instead of opening a new position)
  • Time-based position management: Automatically close positions after maximum time limit (only when in profit/breakeven)
  • Advanced position flipping: Control whether positions flip only when current position is profitable
  • Real-time configuration updates: Update bot settings without restarting
  • Enhanced money management: Smart money management selection with optimized settings from backtests

Bot Configuration Parameters

Parameter Description Default
MaxPositionTimeHours Maximum time (in hours) a position can stay open. Closes only when in profit/breakeven. Null = disabled null
FlipOnlyWhenInProfit Only flip positions when current position is profitable true
CooldownPeriod Number of candles to wait before opening new position in same direction 10
MaxLossStreak Maximum consecutive losses before requiring opposite direction signal. 0 = no limit 0

Bot types availables :

Type Description
ScalpingBot This bot will open position and wait before opening a new one
FlippingBot The flipping bot flipping the position only when a strategy trigger an opposite signal

Privy Integration

This project uses Privy for wallet authentication and management. Privy provides a seamless authentication experience with support for both embedded wallets and external wallet connections.

Supported Networks

  • Ethereum Mainnet
  • Arbitrum One

Configuration

To use Privy in this project, you need to:

  1. Create a Privy account at https://console.privy.io/
  2. Create a new app in the Privy dashboard
  3. Copy your Privy App ID to the .env file:
VITE_PRIVY_APP_ID=your-privy-app-id

Features

  • Multi-chain support: Connect to Ethereum and Arbitrum networks
  • Embedded wallets: Create and manage wallets directly in the browser
  • Social login: Authenticate with email, Google, and other providers
  • Seamless integration: Works with wagmi for blockchain interactions

Usage

The Privy provider is configured in src/main.tsx and can be used throughout the application with the usePrivy hook:

import { usePrivy } from '@privy-io/react-auth';

function MyComponent() {
  const { user, login, logout, authenticated } = usePrivy();
  
  if (!authenticated) {
    return <button onClick={login}>Login</button>;
  }
  
  return (
    <div>
      <p>Welcome, {user.email}</p>
      <button onClick={logout}>Logout</button>
    </div>
  );
}

For more information, see the Privy documentation.

Development

Utilities

The project includes several utility scripts to help with development:

ESM Import Fixer

When working with ES Modules in Node.js:

  • Local module imports require .js file extensions
  • JSON imports require proper type assertions

We provide utility scripts that automatically handle these requirements:

# Fix imports in the src directory (add .js extensions and JSON assertions)
npm run fix-imports

# Update JSON imports to use modern "with { type: "json" }" syntax
npm run update-json-imports

# Run both scripts in sequence (fix imports then update JSON import syntax)
npm run prepare-code

For more details, see the scripts documentation.

Description
No description provided
Readme 20 MiB
Languages
C# 61.2%
TypeScript 37.5%
Shell 0.9%
JavaScript 0.3%