OpenPondOpenPond
TradeAgentsPortfolioPointsPredictStats
Create AgentLogin
O

openpondai/agents/signal-bot

OpenTool app

Copy strategy · 28 timesStar· 1Watch· 1
OverviewFiles
1Branch0Tags
GL
glucryptoFix exact Hyperliquid symbols
7d8b23fa day ago76Commits
signal-bot/src
configInitial commit—
indicatorsInitial commit—
runtimeInitial commit—
config.tsInitial commit—
signal-bot.tsInitial commit—
types.tsInitial commit—
About
signal-bot

OpenTool app

Tool
signal-bot
Method
POST
Profile
{
  "assets": [
    {
      "chain": "hyperliquid",
      "venue": "hyperliquid",
      "assetSymbols": [
        "BTC"
      ]
    }
  ],
  "backtest": {
    "mode": "decisions"
  },
  "category": "strategy",
  "schedule": {
    "cron": "0 * * * *",
    "enabled": false,
    "notifyEmail": false
  },
  "description": "Hyperliquid price signal bot.",
  "templateConfig": {
    "envVar": "OPENTOOL_PUBLIC_HL_SIGNAL_BOT_CONFIG",
    "schema": {
      "type": "object",
      "x-budget": {
        "modes": {
          "fixed": {
            "fields": [
              "indicators",
              "amountUsd"
            ]
          }
        },
        "title": "Budget & allocation",
        "modeField": "allocationMode",
        "defaultMode": "fixed",
        "description": "Directional signal starters use fixed USD sizing."
      },
      "properties": {
        "asset": {
          "type": "string",
          "title": "Asset",
          "x-order": 1,
          "x-format": "asset",
          "x-section": "Strategy",
          "description": "Default Hyperliquid perp symbol. Use execution symbol for spot pairs (BASE-QUOTE or BASE/QUOTE) or HIP-3 symbols (dex:BASE)."
        },
        "price": {
          "type": "object",
          "title": "Price settings",
          "x-section": "Price model",
          "properties": {
            "rsi": {
              "type": "object",
              "title": "RSI thresholds",
              "properties": {
                "oversold": {
                  "type": "number",
                  "title": "RSI oversold",
                  "maximum": 100,
                  "minimum": 1,
                  "x-order": 12,
                  "description": "Oversold threshold.",
                  "x-visibleIf": {
                    "field": "indicators",
                    "contains": "rsi"
                  }
                },
                "overbought": {
                  "type": "number",
                  "title": "RSI overbought",
                  "maximum": 100,
                  "minimum": 1,
                  "x-order": 11,
                  "description": "Overbought threshold.",
                  "x-visibleIf": {
                    "field": "indicators",
                    "contains": "rsi"
                  }
                }
              },
              "description": "Custom RSI overbought/oversold values."
            },
            "maCross": {
              "type": "object",
              "title": "MA cross",
              "properties": {
                "type": {
                  "enum": [
                    "sma",
                    "ema"
                  ],
                  "type": "string",
                  "title": "Cross type",
                  "x-order": 30,
                  "description": "Moving average type used in cross logic.",
                  "x-visibleIf": {
                    "field": "indicators",
                    "contains": "ma-cross"
                  }
                },
                "fastPeriod": {
                  "type": "number",
                  "title": "Fast period",
                  "x-step": 1,
                  "maximum": 239,
                  "minimum": 2,
                  "x-order": 31,
                  "description": "Fast moving average lookback.",
                  "x-visibleIf": {
                    "field": "indicators",
                    "contains": "ma-cross"
                  }
                },
                "slowPeriod": {
                  "type": "number",
                  "title": "Slow period",
                  "x-step": 1,
                  "maximum": 240,
                  "minimum": 3,
                  "x-order": 32,
                  "description": "Slow moving average lookback.",
                  "x-visibleIf": {
                    "field": "indicators",
                    "contains": "ma-cross"
                  }
                }
              },
              "description": "Fast/slow moving average cross settings."
            },
            "donchian": {
              "type": "object",
              "title": "Donchian",
              "properties": {
                "period": {
                  "type": "number",
                  "title": "Donchian period",
                  "x-step": 1,
                  "maximum": 240,
                  "minimum": 2,
                  "x-order": 60,
                  "description": "Bars used to build the channel.",
                  "x-visibleIf": {
                    "field": "indicators",
                    "contains": "donchian"
                  }
                }
              },
              "description": "Breakout channel lookback settings."
            },
            "bollinger": {
              "type": "object",
              "title": "Bollinger bands",
              "properties": {
                "period": {
                  "type": "number",
                  "title": "BB period",
                  "x-step": 1,
                  "maximum": 240,
                  "minimum": 5,
                  "x-order": 40,
                  "description": "Lookback period for Bollinger bands.",
                  "x-visibleIf": {
                    "field": "indicators",
                    "contains": "bb"
                  }
                },
                "stdDev": {
                  "type": "number",
                  "title": "BB std dev",
                  "x-step": 0.1,
                  "maximum": 5,
                  "minimum": 0.5,
                  "x-order": 41,
                  "description": "Standard deviation multiplier.",
                  "x-visibleIf": {
                    "field": "indicators",
                    "contains": "bb"
                  }
                }
              },
              "description": "Period and standard deviation settings."
            },
            "rsiPreset": {
              "type": "string",
              "title": "RSI preset",
              "x-order": 10,
              "description": "Preset thresholds for RSI.",
              "x-visibleIf": {
                "field": "indicators",
                "contains": "rsi"
              }
            },
            "movingAverage": {
              "type": "object",
              "title": "Moving average",
              "properties": {
                "type": {
                  "enum": [
                    "sma",
                    "ema"
                  ],
                  "type": "string",
                  "title": "Average type",
                  "x-order": 20,
                  "description": "Moving average type.",
                  "x-visibleIf": {
                    "field": "indicators",
                    "containsAny": [
                      "sma",
                      "ema"
                    ]
                  }
                },
                "period": {
                  "type": "number",
                  "title": "Average period",
                  "x-step": 1,
                  "maximum": 240,
                  "minimum": 2,
                  "x-order": 21,
                  "description": "Lookback period for moving average.",
                  "x-visibleIf": {
                    "field": "indicators",
                    "containsAny": [
                      "sma",
                      "ema"
                    ]
                  }
                }
              },
              "description": "Configuration for SMA/EMA checks."
            }
          },
          "description": "Indicator-specific tuning."
        },
        "platform": {
          "enum": [
            "hyperliquid"
          ],
          "type": "string",
          "title": "Platform",
          "x-order": 1001,
          "readOnly": true,
          "x-hidden": true,
          "x-section": "Meta",
          "description": "Execution venue for this strategy."
        },
        "schedule": {
          "type": "object",
          "title": "Schedule",
          "x-section": "Schedule",
          "properties": {
            "cron": {
              "type": "string",
              "title": "Cron expression",
              "x-order": 1,
              "description": "Cron expression for automated runs."
            },
            "enabled": {
              "type": "boolean",
              "title": "Enabled",
              "x-order": 2,
              "description": "Enable scheduled runs."
            },
            "notifyEmail": {
              "type": "boolean",
              "title": "Notify email",
              "x-order": 3,
              "description": "Send an email after scheduled runs."
            }
          },
          "description": "Run toggles and notifications."
        },
        "amountUsd": {
          "type": "number",
          "title": "Fixed amount",
          "x-step": 1,
          "x-unit": "USD",
          "minimum": 1,
          "x-order": 2,
          "x-format": "currency",
          "x-section": "Risk",
          "description": "USD notional per run when allocation mode is fixed."
        },
        "countBack": {
          "type": "number",
          "title": "Bars to fetch",
          "x-step": 1,
          "maximum": 5000,
          "minimum": 50,
          "x-order": 2,
          "x-section": "Price model",
          "description": "Number of historical bars for indicator calculations."
        },
        "execution": {
          "type": "object",
          "title": "Execution",
          "x-section": "Execution",
          "properties": {
            "mode": {
              "enum": [
                "long-only",
                "long-short"
              ],
              "type": "string",
              "title": "Execution mode",
              "x-order": 4,
              "description": "Allow long-only or long-short positioning.",
              "x-enumLabels": [
                "Long only",
                "Long + short"
              ]
            },
            "size": {
              "type": "number",
              "title": "Explicit size",
              "x-step": 0.0001,
              "minimum": 0,
              "x-order": 5,
              "description": "Optional explicit position size override."
            },
            "symbol": {
              "type": "string",
              "title": "Execution symbol",
              "x-order": 3,
              "description": "Optional exact Hyperliquid symbol override. Use BASE-QUOTE or BASE/QUOTE for spot, bare BASE for perps, or dex:BASE for HIP-3."
            },
            "enabled": {
              "type": "boolean",
              "title": "Execution enabled",
              "x-order": 1,
              "description": "Submit live orders when signals trigger."
            },
            "leverage": {
              "type": "number",
              "title": "Leverage",
              "x-step": 1,
              "x-unit": "x",
              "maximum": 50,
              "minimum": 1,
              "x-order": 7,
              "description": "Target leverage for perpetual execution."
            },
            "indicator": {
              "enum": [
                "rsi",
                "macd",
                "bb",
                "sma",
                "ema",
                "ma-cross",
                "donchian"
              ],
              "type": "string",
              "title": "Execution indicator",
              "x-order": 6,
              "description": "Indicator used to decide trade direction."
            },
            "environment": {
              "enum": [
                "testnet",
                "mainnet"
              ],
              "type": "string",
              "title": "Environment",
              "x-order": 2,
              "description": "Execution environment for Hyperliquid.",
              "x-enumLabels": [
                "Testnet",
                "Mainnet"
              ]
            },
            "slippageBps": {
              "type": "number",
              "title": "Execution slippage",
              "x-step": 1,
              "x-unit": "bps",
              "maximum": 500,
              "minimum": 0,
              "x-order": 8,
              "x-format": "bps",
              "description": "Max slippage for signal-driven orders."
            }
          },
          "description": "Live trading controls and routing."
        },
        "indicators": {
          "type": "array",
          "items": {
            "enum": [
              "rsi",
              "macd",
              "bb",
              "sma",
              "ema",
              "ma-cross",
              "donchian"
            ],
            "type": "string",
            "x-enumLabels": [
              "RSI",
              "MACD",
              "Bollinger Bands",
              "SMA",
              "EMA",
              "MA Cross",
              "Donchian"
            ]
          },
          "title": "Indicators",
          "x-order": 2,
          "x-section": "Strategy",
          "description": "Indicators to evaluate for price-based signals."
        },
        "resolution": {
          "enum": [
            "1",
            "5",
            "15",
            "30",
            "60",
            "240",
            "1D",
            "1W"
          ],
          "type": "string",
          "title": "Resolution",
          "x-order": 1,
          "x-section": "Price model",
          "description": "Bar timeframe for price data."
        },
        "signalType": {
          "enum": [
            "price"
          ],
          "type": "string",
          "title": "Strategy type",
          "x-order": 1002,
          "readOnly": true,
          "x-hidden": true,
          "x-section": "Meta",
          "description": "Internal strategy identifier.",
          "x-enumLabels": [
            "Price"
          ]
        },
        "configVersion": {
          "type": "number",
          "title": "Config version",
          "x-order": 1000,
          "readOnly": true,
          "x-hidden": true,
          "x-section": "Meta",
          "description": "Internal version for signal-bot defaults."
        },
        "allocationMode": {
          "enum": [
            "fixed"
          ],
          "type": "string",
          "title": "Allocation mode",
          "x-order": 1,
          "readOnly": true,
          "x-hidden": true,
          "x-section": "Risk",
          "description": "Position sizing method.",
          "x-enumLabels": [
            "Fixed USD"
          ]
        }
      }
    },
    "version": 7,
    "defaults": {
      "asset": "BTC",
      "price": {
        "rsiPreset": "balanced"
      },
      "platform": "hyperliquid",
      "schedule": {
        "cron": "0 * * * *",
        "enabled": false,
        "notifyEmail": false
      },
      "amountUsd": 200,
      "countBack": 240,
      "execution": {
        "mode": "long-only",
        "enabled": false,
        "indicator": "rsi",
        "environment": "mainnet"
      },
      "indicators": [
        "rsi"
      ],
      "resolution": "60",
      "signalType": "price",
      "configVersion": 7,
      "allocationMode": "fixed"
    }
  },
  "templatePreview": {
    "title": "signal-bot",
    "subtitle": "Indicator-driven Hyperliquid signal strategy with fixed-amount sizing.",
    "description": "Runs on a configured market schedule and evaluates one or more technical indicators.\nMaps the resulting signal into a standardized Hyperliquid trade decision.\nUses fixed USD sizing as the primary launcher-facing budget model.\nSupports execution routing, leverage, and indicator-specific tuning after launch."
  }
}
Tool Path
tools/signal-bot.js
Input Schema
{
  "type": "object",
  "properties": {
    "to": {
      "type": "integer",
      "minimum": 0
    },
    "from": {
      "type": "integer",
      "minimum": 0
    },
    "mode": {
      "type": "string",
      "const": "backtest_decisions"
    },
    "source": {
      "type": "string",
      "minLength": 1
    },
    "symbol": {
      "type": "string",
      "minLength": 1
    },
    "lookbackDays": {
      "type": "number",
      "exclusiveMinimum": 0
    },
    "timeframeEnd": {
      "type": "string"
    },
    "timeframeStart": {
      "type": "string"
    },
    "initialEquityUsd": {
      "type": "number",
      "exclusiveMinimum": 0
    }
  },
  "additionalProperties": false
}