@barfinex/types
Version:
Core TypeScript type definitions and shared interfaces for the Barfinex ecosystem. Provides strongly-typed contracts for modules, services, and plugins.
234 lines • 6.22 kB
TypeScript
import { Connector } from './connector.interface';
/**
* General settings for the application configuration.
*/
export interface InspectorGeneralSettings {
/**
* The port number used for the API server.
*/
apiPort: number;
}
/**
* Configuration for risk management in trading.
*/
export interface InspectorRiskManagement {
/**
* Percentage of profit to take before exiting a trade (optional).
*/
takeProfitPercent?: number;
/**
* Percentage of loss at which a trade should be stopped (optional).
*/
stopLossPercent?: number;
/**
* Percentage at which to move the stop loss to breakeven (optional).
*/
breakevenPercent?: number;
/**
* Allowed reversion buffer around entry after breakeven is armed.
*/
breakevenBufferPercent?: number;
/**
* Maximum allowable daily loss as a percentage (optional).
*/
maxDailyLossPercent?: number;
/**
* Maximum allowable daily profit as a percentage (optional).
*/
maxDailyProfitPercent?: number;
/**
* Maximum allowable drawdown as a percentage (optional).
*/
maxDrawdownPercent?: number;
/**
* Maximum number of loss trades allowed per day (optional).
*/
maxLossTradesPerDay?: number;
/**
* Maximum number of trades allowed per day (optional).
*/
maxTradesPerDay?: number;
/**
* Percentage of total equity to risk per trade (optional).
*/
riskPerTradePercent?: number;
/**
* Minimum risk-to-reward ratio for a trade to be valid (optional).
*/
minRiskRewardRatio?: number;
/**
* Maximum number of correlated runtime-managed positions allowed.
*/
maxCorrelatedPositions?: number;
/**
* Asset groups treated as correlated (base symbols).
*/
correlatedGroups?: string[];
}
/**
* Configuration for asset management in trading.
*/
export interface InspectorAssetManagement {
/**
* List of asset symbols to exclude from trading.
*/
excludedAssets: string[];
/**
* List of preferred asset symbols for trading.
*/
preferredAssets: string[];
/**
* Maximum allowable slippage as a percentage.
*/
slippageTolerancePercent: number;
/**
* Maximum allowable spread as a percentage.
*/
spreadTolerancePercent: number;
/**
* Maximum spread allowed when executing forced close.
*/
maxSpreadForClosePercent?: number;
/**
* Minimum top-of-book depth (USD) required to execute close.
*/
minTopDepthUsdForClose?: number;
}
/**
* Configuration for trade-specific settings.
*/
export interface InspectorTradeSettings {
/**
* Maximum duration (in seconds) to hold a position.
*/
maxPositionHoldTime: number;
/**
* Maximum position size as a percentage of the account equity.
*/
maxPositionSizePercent: number;
/**
* Minimum position size as a percentage of the account equity.
*/
minPositionSizePercent: number;
/**
* Maximum allowable leverage for trades.
*/
maxLeverage: number;
/**
* Default leverage to use if none is specified.
*/
defaultLeverage: number;
/**
* Trailing stop loss as a percentage.
*/
trailingStopPercent: number;
/**
* Trailing take profit as a percentage.
*/
trailingTakeProfitPercent: number;
}
/**
* Configuration for strategy logic settings.
*/
export interface InspectorStrategyLogic {
/**
* Cooldown period (in seconds) after a trade is executed.
*/
cooldownPeriod: number;
/**
* Maximum number of consecutive losses allowed.
*/
maxConsecutiveLosses: number;
/**
* Minimum return-on-investment (ROI) threshold for a trade to be valid.
*/
minROIThreshold: number;
/**
* Maximum return-on-investment (ROI) threshold for a trade to be valid.
*/
maxROIThreshold: number;
/**
* Enables stress policy that tightens risk behavior.
*/
enableStressPolicy?: boolean;
/**
* Spread percentage that activates stress mode.
*/
stressSpreadTriggerPercent?: number;
/**
* Detector sysname used for auto-throttle events.
*/
targetDetectorSysname?: string;
/**
* Enables automatic detector throttling on hard risk breaches.
*/
autoThrottleDetectors?: boolean;
}
/**
* Configuration for inspector options.
*/
export interface Inspector {
/**
* General settings for Inspector
*/
general: InspectorGeneralSettings;
/**
* Unique key identifying the inspector configuration.
*/
key: string;
/**
* Base API URL for the inspector.
*/
restApiUrl: string;
/**
* List of connector configurations.
*/
connectors: Connector[];
/**
* Port number used for the inspector API.
*/
apiPort: number;
/**
* Risk management settings.
*/
riskManagement: InspectorRiskManagement;
/**
* Asset management settings.
*/
assetManagement: InspectorAssetManagement;
/**
* Trade-specific settings.
*/
tradeSettings: InspectorTradeSettings;
/**
* Strategy logic configuration.
*/
strategyLogic: InspectorStrategyLogic;
}
export interface InspectorGeneralConfig {
apiPort: number;
}
export interface InspectorTradeSettingsConfig {
maxPositionHoldTime: number;
maxPositionSizePercent: number;
minPositionSizePercent: number;
maxLeverage: number;
defaultLeverage: number;
trailingStopPercent: number;
trailingTakeProfitPercent: number;
}
/**
* Inspector status (aligned with DetectorStatus).
* - active: registered and sending heartbeats, isActive !== false
* - disabled: registered but isActive === false
* - offline: not sending heartbeats (process down or not registered)
*/
export type InspectorStatus = 'active' | 'offline' | 'disabled';
/**
* Inspector list item as returned by provider GET /api/inspectors (list).
* Same as Inspector with added status field.
*/
export type InspectorListItem = Inspector & {
status: InspectorStatus;
};
//# sourceMappingURL=inspector.interface.d.ts.map