running prettier for cleanup
This commit is contained in:
parent
fe7733aeb5
commit
d85cd58acd
151 changed files with 29158 additions and 27966 deletions
|
|
@ -1,80 +1,80 @@
|
|||
/**
|
||||
* Execution Mode Framework
|
||||
* Base classes for different execution modes (live, event-driven, vectorized)
|
||||
*/
|
||||
import { getLogger } from '@stock-bot/logger';
|
||||
|
||||
const logger = getLogger('execution-mode');
|
||||
|
||||
export interface Order {
|
||||
id: string;
|
||||
symbol: string;
|
||||
side: 'BUY' | 'SELL';
|
||||
quantity: number;
|
||||
type: 'MARKET' | 'LIMIT';
|
||||
price?: number;
|
||||
timestamp: Date;
|
||||
}
|
||||
|
||||
export interface OrderResult {
|
||||
orderId: string;
|
||||
symbol: string;
|
||||
executedQuantity: number;
|
||||
executedPrice: number;
|
||||
commission: number;
|
||||
slippage: number;
|
||||
timestamp: Date;
|
||||
executionTime: number;
|
||||
}
|
||||
|
||||
export interface MarketData {
|
||||
symbol: string;
|
||||
timestamp: Date;
|
||||
open: number;
|
||||
high: number;
|
||||
low: number;
|
||||
close: number;
|
||||
volume: number;
|
||||
}
|
||||
|
||||
export abstract class ExecutionMode {
|
||||
protected logger = getLogger(this.constructor.name);
|
||||
|
||||
abstract name: string;
|
||||
abstract executeOrder(order: Order): Promise<OrderResult>;
|
||||
abstract getCurrentTime(): Date;
|
||||
abstract getMarketData(symbol: string): Promise<MarketData>;
|
||||
abstract publishEvent(event: string, data: any): Promise<void>;
|
||||
}
|
||||
|
||||
export enum BacktestMode {
|
||||
LIVE = 'live',
|
||||
EVENT_DRIVEN = 'event-driven',
|
||||
VECTORIZED = 'vectorized',
|
||||
HYBRID = 'hybrid'
|
||||
}
|
||||
|
||||
export class ModeFactory {
|
||||
static create(mode: BacktestMode, config?: any): ExecutionMode {
|
||||
switch (mode) {
|
||||
case BacktestMode.LIVE:
|
||||
// TODO: Import and create LiveMode
|
||||
throw new Error('LiveMode not implemented yet');
|
||||
|
||||
case BacktestMode.EVENT_DRIVEN:
|
||||
// TODO: Import and create EventBacktestMode
|
||||
throw new Error('EventBacktestMode not implemented yet');
|
||||
|
||||
case BacktestMode.VECTORIZED:
|
||||
// TODO: Import and create VectorBacktestMode
|
||||
throw new Error('VectorBacktestMode not implemented yet');
|
||||
|
||||
case BacktestMode.HYBRID:
|
||||
// TODO: Import and create HybridBacktestMode
|
||||
throw new Error('HybridBacktestMode not implemented yet');
|
||||
|
||||
default:
|
||||
throw new Error(`Unknown mode: ${mode}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Execution Mode Framework
|
||||
* Base classes for different execution modes (live, event-driven, vectorized)
|
||||
*/
|
||||
import { getLogger } from '@stock-bot/logger';
|
||||
|
||||
const logger = getLogger('execution-mode');
|
||||
|
||||
export interface Order {
|
||||
id: string;
|
||||
symbol: string;
|
||||
side: 'BUY' | 'SELL';
|
||||
quantity: number;
|
||||
type: 'MARKET' | 'LIMIT';
|
||||
price?: number;
|
||||
timestamp: Date;
|
||||
}
|
||||
|
||||
export interface OrderResult {
|
||||
orderId: string;
|
||||
symbol: string;
|
||||
executedQuantity: number;
|
||||
executedPrice: number;
|
||||
commission: number;
|
||||
slippage: number;
|
||||
timestamp: Date;
|
||||
executionTime: number;
|
||||
}
|
||||
|
||||
export interface MarketData {
|
||||
symbol: string;
|
||||
timestamp: Date;
|
||||
open: number;
|
||||
high: number;
|
||||
low: number;
|
||||
close: number;
|
||||
volume: number;
|
||||
}
|
||||
|
||||
export abstract class ExecutionMode {
|
||||
protected logger = getLogger(this.constructor.name);
|
||||
|
||||
abstract name: string;
|
||||
abstract executeOrder(order: Order): Promise<OrderResult>;
|
||||
abstract getCurrentTime(): Date;
|
||||
abstract getMarketData(symbol: string): Promise<MarketData>;
|
||||
abstract publishEvent(event: string, data: any): Promise<void>;
|
||||
}
|
||||
|
||||
export enum BacktestMode {
|
||||
LIVE = 'live',
|
||||
EVENT_DRIVEN = 'event-driven',
|
||||
VECTORIZED = 'vectorized',
|
||||
HYBRID = 'hybrid',
|
||||
}
|
||||
|
||||
export class ModeFactory {
|
||||
static create(mode: BacktestMode, config?: any): ExecutionMode {
|
||||
switch (mode) {
|
||||
case BacktestMode.LIVE:
|
||||
// TODO: Import and create LiveMode
|
||||
throw new Error('LiveMode not implemented yet');
|
||||
|
||||
case BacktestMode.EVENT_DRIVEN:
|
||||
// TODO: Import and create EventBacktestMode
|
||||
throw new Error('EventBacktestMode not implemented yet');
|
||||
|
||||
case BacktestMode.VECTORIZED:
|
||||
// TODO: Import and create VectorBacktestMode
|
||||
throw new Error('VectorBacktestMode not implemented yet');
|
||||
|
||||
case BacktestMode.HYBRID:
|
||||
// TODO: Import and create HybridBacktestMode
|
||||
throw new Error('HybridBacktestMode not implemented yet');
|
||||
|
||||
default:
|
||||
throw new Error(`Unknown mode: ${mode}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue