Function addStrategy

  • Registers a trading strategy in the framework.

    The strategy will be validated for:

    • Signal validation (prices, TP/SL logic, timestamps)
    • Interval throttling (prevents signal spam)
    • Crash-safe persistence in live mode

    Parameters

    • strategySchema: IStrategySchema

      Strategy configuration object

      Strategy schema registered via addStrategy(). Defines signal generation logic and configuration.

      • Optionalcallbacks?: Partial<IStrategyCallbacks>

        Optional lifecycle event callbacks (onOpen, onClose)

      • getSignal: (symbol: string, when: Date) => Promise<ISignalDto>

        Signal generation function (returns null if no signal, validated DTO if signal). If priceOpen is provided - becomes scheduled signal waiting for price to reach entry point. If priceOpen is omitted - opens immediately at current price.

      • interval: SignalInterval

        Minimum interval between getSignal calls (throttling)

      • Optionalnote?: string

        Optional developer note for documentation

      • OptionalriskName?: string

        Optional risk profile identifier for risk management

      • strategyName: string

        Unique strategy identifier for registration

    Returns void

    addStrategy({
    strategyName: "my-strategy",
    interval: "5m",
    getSignal: async (symbol) => ({
    position: "long",
    priceOpen: 50000,
    priceTakeProfit: 51000,
    priceStopLoss: 49000,
    minuteEstimatedTime: 60,
    timestamp: Date.now(),
    }),
    callbacks: {
    onOpen: (symbol, signal, currentPrice, backtest) => console.log("Signal opened"),
    onClose: (symbol, signal, priceClose, backtest) => console.log("Signal closed"),
    },
    });