223 lines
No EOL
4.9 KiB
JSON
223 lines
No EOL
4.9 KiB
JSON
{
|
|
"name": "stock-bot",
|
|
"version": "1.0.0",
|
|
"environment": "development",
|
|
"service": {
|
|
"name": "stock-bot",
|
|
"port": 3000,
|
|
"host": "0.0.0.0",
|
|
"healthCheckPath": "/health",
|
|
"metricsPath": "/metrics",
|
|
"shutdownTimeout": 30000,
|
|
"cors": {
|
|
"enabled": true,
|
|
"origin": "*",
|
|
"credentials": true
|
|
}
|
|
},
|
|
"database": {
|
|
"postgres": {
|
|
"enabled": true,
|
|
"host": "localhost",
|
|
"port": 5432,
|
|
"database": "trading_bot",
|
|
"user": "trading_user",
|
|
"password": "trading_pass_dev",
|
|
"ssl": false,
|
|
"poolSize": 20,
|
|
"connectionTimeout": 30000,
|
|
"idleTimeout": 10000
|
|
},
|
|
"questdb": {
|
|
"host": "localhost",
|
|
"ilpPort": 9009,
|
|
"httpPort": 9000,
|
|
"pgPort": 8812,
|
|
"database": "questdb",
|
|
"user": "admin",
|
|
"password": "quest",
|
|
"bufferSize": 65536,
|
|
"flushInterval": 1000
|
|
},
|
|
"mongodb": {
|
|
"uri": "mongodb://trading_admin:trading_mongo_dev@localhost:27017/stock?authSource=admin",
|
|
"database": "stock",
|
|
"poolSize": 20
|
|
},
|
|
"dragonfly": {
|
|
"host": "localhost",
|
|
"port": 6379,
|
|
"db": 0,
|
|
"keyPrefix": "stock-bot:",
|
|
"maxRetries": 3,
|
|
"retryDelay": 100
|
|
}
|
|
},
|
|
"log": {
|
|
"level": "info",
|
|
"format": "json",
|
|
"hideObject": false,
|
|
"loki": {
|
|
"enabled": false,
|
|
"host": "localhost",
|
|
"port": 3100,
|
|
"labels": {}
|
|
}
|
|
},
|
|
"redis": {
|
|
"enabled": true,
|
|
"host": "localhost",
|
|
"port": 6379,
|
|
"db": 0
|
|
},
|
|
"queue": {
|
|
"enabled": true,
|
|
"redis": {
|
|
"host": "localhost",
|
|
"port": 6379,
|
|
"db": 1
|
|
},
|
|
"workers": 2,
|
|
"concurrency": 2,
|
|
"enableScheduledJobs": true,
|
|
"delayWorkerStart": false,
|
|
"defaultJobOptions": {
|
|
"attempts": 3,
|
|
"backoff": {
|
|
"type": "exponential",
|
|
"delay": 1000
|
|
},
|
|
"removeOnComplete": 100,
|
|
"removeOnFail": 50,
|
|
"timeout": 300000
|
|
}
|
|
},
|
|
"http": {
|
|
"timeout": 30000,
|
|
"retries": 3,
|
|
"retryDelay": 1000,
|
|
"userAgent": "StockBot/1.0",
|
|
"proxy": {
|
|
"enabled": false
|
|
}
|
|
},
|
|
"webshare": {
|
|
"apiKey": "",
|
|
"apiUrl": "https://proxy.webshare.io/api/v2/",
|
|
"enabled": true
|
|
},
|
|
"browser": {
|
|
"headless": true,
|
|
"timeout": 30000
|
|
},
|
|
"proxy": {
|
|
"cachePrefix": "proxy:",
|
|
"ttl": 3600
|
|
},
|
|
"providers": {
|
|
"yahoo": {
|
|
"name": "yahoo",
|
|
"enabled": true,
|
|
"priority": 1,
|
|
"rateLimit": {
|
|
"maxRequests": 5,
|
|
"windowMs": 60000
|
|
},
|
|
"timeout": 30000,
|
|
"baseUrl": "https://query1.finance.yahoo.com"
|
|
},
|
|
"qm": {
|
|
"name": "qm",
|
|
"enabled": false,
|
|
"priority": 2,
|
|
"username": "",
|
|
"password": "",
|
|
"baseUrl": "https://app.quotemedia.com/quotetools",
|
|
"webmasterId": ""
|
|
},
|
|
"ib": {
|
|
"name": "ib",
|
|
"enabled": false,
|
|
"priority": 3,
|
|
"gateway": {
|
|
"host": "localhost",
|
|
"port": 5000,
|
|
"clientId": 1
|
|
},
|
|
"marketDataType": "delayed"
|
|
},
|
|
"eod": {
|
|
"name": "eod",
|
|
"enabled": false,
|
|
"priority": 4,
|
|
"apiKey": "",
|
|
"baseUrl": "https://eodhistoricaldata.com/api",
|
|
"tier": "free"
|
|
}
|
|
},
|
|
"features": {
|
|
"realtime": true,
|
|
"backtesting": true,
|
|
"paperTrading": true,
|
|
"autoTrading": false,
|
|
"historicalData": true,
|
|
"realtimeData": true,
|
|
"fundamentalData": true,
|
|
"newsAnalysis": false,
|
|
"notifications": false,
|
|
"emailAlerts": false,
|
|
"smsAlerts": false,
|
|
"webhookAlerts": false,
|
|
"technicalAnalysis": true,
|
|
"sentimentAnalysis": false,
|
|
"patternRecognition": false,
|
|
"riskManagement": true,
|
|
"positionSizing": true,
|
|
"stopLoss": true,
|
|
"takeProfit": true
|
|
},
|
|
"services": {
|
|
"dataIngestion": {
|
|
"port": 2001,
|
|
"workers": 4,
|
|
"queues": {
|
|
"ceo": { "concurrency": 2 },
|
|
"webshare": { "concurrency": 1 },
|
|
"qm": { "concurrency": 2 },
|
|
"ib": { "concurrency": 1 },
|
|
"proxy": { "concurrency": 1 }
|
|
},
|
|
"rateLimit": {
|
|
"enabled": true,
|
|
"requestsPerSecond": 10
|
|
}
|
|
},
|
|
"dataPipeline": {
|
|
"port": 2002,
|
|
"workers": 2,
|
|
"batchSize": 1000,
|
|
"processingInterval": 60000,
|
|
"queues": {
|
|
"exchanges": { "concurrency": 1 },
|
|
"symbols": { "concurrency": 2 }
|
|
},
|
|
"syncOptions": {
|
|
"maxRetries": 3,
|
|
"retryDelay": 5000,
|
|
"timeout": 300000
|
|
}
|
|
},
|
|
"webApi": {
|
|
"port": 2003,
|
|
"rateLimitPerMinute": 60,
|
|
"cache": {
|
|
"ttl": 300,
|
|
"checkPeriod": 60
|
|
},
|
|
"cors": {
|
|
"origins": ["http://localhost:3000", "http://localhost:4200"],
|
|
"credentials": true
|
|
}
|
|
}
|
|
}
|
|
} |