56 lines
2.5 KiB
TypeScript
56 lines
2.5 KiB
TypeScript
|
|
import { ConnectorFactory } from '../src/connectors/factory.js';
|
|
import { config } from '../src/config/index.js';
|
|
import { Indicators } from '../src/utils/indicators.js';
|
|
import logger from '../src/utils/logger.js';
|
|
|
|
async function verifyBTC() {
|
|
const exchange = ConnectorFactory.getCustomConnector('ccxt', '', ''); // Using CCXT (Binance/Kraken) for data
|
|
const symbol = 'BTC/USDT';
|
|
|
|
console.log(`\n--- 📊 BTC ANALYSIS VERIFICATION (Last 4 Hours) ---`);
|
|
|
|
// 1. Fetch 4H Data for Trend Bias
|
|
const candles4h = await exchange.fetchOHLCV(symbol, '4h', 100);
|
|
const ema50_4h = Indicators.calculateEMA(candles4h.map(c => c.close), 50);
|
|
const ema200_4h = Indicators.calculateEMA(candles4h.map(c => c.close), 200);
|
|
const last4h = candles4h[candles4h.length - 1];
|
|
|
|
console.log(`4H Context:`);
|
|
console.log(` Current Price: $${last4h.close}`);
|
|
console.log(` EMA50 (4H): $${ema50_4h.toFixed(2)}`);
|
|
console.log(` EMA200 (4H): $${ema200_4h.toFixed(2)}`);
|
|
console.log(` Trend Bias: ${last4h.close > ema50_4h ? 'BULLISH' : 'BEARISH'} (Price vs EMA50)`);
|
|
|
|
// 2. Fetch 1H Data for Momentum
|
|
const candles1h = await exchange.fetchOHLCV(symbol, '1h', 50);
|
|
const rsi1h = Indicators.calculateRSI(candles1h.map(c => c.close), 14);
|
|
const ema20_1h = Indicators.calculateEMA(candles1h.map(c => c.close), 20);
|
|
|
|
console.log(`\n1H Context:`);
|
|
console.log(` RSI (1H): ${rsi1h.toFixed(2)}`);
|
|
console.log(` EMA20 (1H): $${ema20_1h.toFixed(2)}`);
|
|
console.log(` Momentum: ${rsi1h > 50 ? 'BULLISH' : 'BEARISH'}`);
|
|
|
|
// 3. Performance Check (Last 2 Hours)
|
|
const candles15m = await exchange.fetchOHLCV(symbol, '15m', 12);
|
|
const startPrice = candles15m[0].open;
|
|
const endPrice = candles15m[candles15m.length - 1].close;
|
|
const change = ((endPrice - startPrice) / startPrice) * 100;
|
|
|
|
console.log(`\nRecent Performance (Last 3 Hours - 15m candles):`);
|
|
console.log(` Opening: $${startPrice.toFixed(2)}`);
|
|
console.log(` Closing: $${endPrice.toFixed(2)}`);
|
|
console.log(` Change: ${change.toFixed(2)}%`);
|
|
|
|
console.log(`\n--- BOT LOGIC CHECK ---`);
|
|
if (last4h.close < ema50_4h) {
|
|
console.log(`⚠️ BOT IS BEARISH because Price ($${last4h.close}) is BELOW EMA50 ($${ema50_4h.toFixed(2)}) on 4H.`);
|
|
console.log(` Even if the last 2 hours were up, the "Higher Timeframe Trend" is still down.`);
|
|
} else {
|
|
console.log(`✅ BOT SHOULD BE BULLISH.`);
|
|
}
|
|
}
|
|
|
|
verifyBTC();
|