Enhance AI analysis with professional trading assistant approach
- Updated AI prompts to behave like professional proprietary desk trader - Enhanced take profit display with RSI/OBV expectations and detailed descriptions - Added timeframe risk assessment with leverage recommendations - Implemented comprehensive indicator analysis (RSI, VWAP, OBV, MACD) - Added alternatives section with tighter stops and scaled entry options - Enhanced test script output for better trade setup visualization - Improved confirmation triggers with specific technical signals - Added cross-layout consensus analysis for multi-screenshot comparison - Cost-effective analysis using gpt-4o mini (~/usr/bin/bash.006 per analysis)
This commit is contained in:
@@ -78,18 +78,129 @@ async function testDualSessionScreenshots() {
|
||||
console.log(` 📊 Market Sentiment: ${result.analysis.marketSentiment}`)
|
||||
console.log(` 📈 Recommendation: ${result.analysis.recommendation}`)
|
||||
console.log(` 🎯 Confidence: ${result.analysis.confidence}%`)
|
||||
|
||||
// Trading Setup Section
|
||||
if (result.analysis.entry) {
|
||||
console.log(` 💰 Entry: $${result.analysis.entry.price}`)
|
||||
console.log('\n💰 TRADING SETUP:')
|
||||
console.log(` <20> Entry: $${result.analysis.entry.price}${result.analysis.entry.buffer ? ' ' + result.analysis.entry.buffer : ''}`)
|
||||
if (result.analysis.entry.rationale) {
|
||||
console.log(` 💡 ${result.analysis.entry.rationale}`)
|
||||
}
|
||||
}
|
||||
|
||||
if (result.analysis.stopLoss) {
|
||||
console.log(` 🛑 Stop Loss: $${result.analysis.stopLoss.price}`)
|
||||
if (result.analysis.stopLoss.rationale) {
|
||||
console.log(` 💡 ${result.analysis.stopLoss.rationale}`)
|
||||
}
|
||||
}
|
||||
|
||||
// Enhanced Take Profit Display
|
||||
if (result.analysis.takeProfits) {
|
||||
console.log('\n🎯 TAKE PROFIT TARGETS:')
|
||||
if (result.analysis.takeProfits.tp1) {
|
||||
const tp1 = result.analysis.takeProfits.tp1
|
||||
console.log(` 🥉 TP1: $${tp1.price}`)
|
||||
console.log(` 📋 ${tp1.description}`)
|
||||
if (tp1.rsiExpectation) {
|
||||
console.log(` 📊 RSI: ${tp1.rsiExpectation}`)
|
||||
}
|
||||
if (tp1.obvExpectation) {
|
||||
console.log(` 📈 OBV: ${tp1.obvExpectation}`)
|
||||
}
|
||||
}
|
||||
if (result.analysis.takeProfits.tp2) {
|
||||
const tp2 = result.analysis.takeProfits.tp2
|
||||
console.log(` 🥈 TP2: $${tp2.price}`)
|
||||
console.log(` 📋 ${tp2.description}`)
|
||||
if (tp2.rsiExpectation) {
|
||||
console.log(` 📊 RSI: ${tp2.rsiExpectation}`)
|
||||
}
|
||||
if (tp2.obvExpectation) {
|
||||
console.log(` 📈 OBV: ${tp2.obvExpectation}`)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (result.analysis.riskToReward) {
|
||||
console.log(`\n⚖️ Risk/Reward: ${result.analysis.riskToReward}`)
|
||||
}
|
||||
|
||||
if (result.analysis.confirmationTrigger) {
|
||||
console.log(`\n🔔 Confirmation Trigger: ${result.analysis.confirmationTrigger}`)
|
||||
}
|
||||
|
||||
// Timeframe Risk Assessment
|
||||
if (result.analysis.timeframeRisk) {
|
||||
console.log('\n⏰ TIMEFRAME RISK ASSESSMENT:')
|
||||
if (result.analysis.timeframeRisk.assessment) {
|
||||
console.log(` 📊 Risk Level: ${result.analysis.timeframeRisk.assessment}`)
|
||||
}
|
||||
if (result.analysis.timeframeRisk.positionSize) {
|
||||
console.log(` <20> Position Size: ${result.analysis.timeframeRisk.positionSize}`)
|
||||
}
|
||||
if (result.analysis.timeframeRisk.leverageRecommendation) {
|
||||
console.log(` 🎚️ Leverage: ${result.analysis.timeframeRisk.leverageRecommendation}`)
|
||||
}
|
||||
}
|
||||
|
||||
// Key Levels
|
||||
if (result.analysis.keyLevels) {
|
||||
console.log(` 🔴 Resistance: ${result.analysis.keyLevels.resistance?.join(', ') || 'None'}`)
|
||||
console.log(` 🟢 Support: ${result.analysis.keyLevels.support?.join(', ') || 'None'}`)
|
||||
console.log('\n📊 KEY LEVELS:')
|
||||
if (result.analysis.keyLevels.resistance?.length > 0) {
|
||||
console.log(` <20>🔴 Resistance: ${result.analysis.keyLevels.resistance.map(r => `$${r}`).join(', ')}`)
|
||||
}
|
||||
if (result.analysis.keyLevels.support?.length > 0) {
|
||||
console.log(` 🟢 Support: ${result.analysis.keyLevels.support.map(s => `$${s}`).join(', ')}`)
|
||||
}
|
||||
}
|
||||
|
||||
// Indicator Analysis
|
||||
if (result.analysis.indicatorAnalysis) {
|
||||
console.log('\n📈 TECHNICAL INDICATORS:')
|
||||
if (result.analysis.indicatorAnalysis.rsi) {
|
||||
console.log(` 📊 RSI: ${result.analysis.indicatorAnalysis.rsi}`)
|
||||
}
|
||||
if (result.analysis.indicatorAnalysis.vwap) {
|
||||
console.log(` 📈 VWAP: ${result.analysis.indicatorAnalysis.vwap}`)
|
||||
}
|
||||
if (result.analysis.indicatorAnalysis.obv) {
|
||||
console.log(` 📊 OBV: ${result.analysis.indicatorAnalysis.obv}`)
|
||||
}
|
||||
if (result.analysis.indicatorAnalysis.macd) {
|
||||
console.log(` 📉 MACD: ${result.analysis.indicatorAnalysis.macd}`)
|
||||
}
|
||||
}
|
||||
|
||||
// Layout Comparison
|
||||
if (result.analysis.layoutComparison) {
|
||||
console.log('\n🔄 Layout Comparison:')
|
||||
console.log(` 📊 AI Layout: ${result.analysis.layoutComparison.aiLayout}`)
|
||||
console.log(` 🔧 DIY Layout: ${result.analysis.layoutComparison.diyLayout}`)
|
||||
console.log(` ✅ Consensus: ${result.analysis.layoutComparison.consensus}`)
|
||||
console.log('\n🔄 LAYOUT COMPARISON:')
|
||||
if (result.analysis.layoutComparison.aiLayout) {
|
||||
console.log(` 🤖 AI Layout: ${result.analysis.layoutComparison.aiLayout}`)
|
||||
}
|
||||
if (result.analysis.layoutComparison.diyLayout) {
|
||||
console.log(` 🔧 DIY Layout: ${result.analysis.layoutComparison.diyLayout}`)
|
||||
}
|
||||
if (result.analysis.layoutComparison.consensus) {
|
||||
console.log(` ✅ Consensus: ${result.analysis.layoutComparison.consensus}`)
|
||||
}
|
||||
if (result.analysis.layoutComparison.divergences) {
|
||||
console.log(` ⚠️ Divergences: ${result.analysis.layoutComparison.divergences}`)
|
||||
}
|
||||
}
|
||||
|
||||
// Alternatives
|
||||
if (result.analysis.alternatives) {
|
||||
console.log('\n🔄 ALTERNATIVES:')
|
||||
if (result.analysis.alternatives.tigherStopOption) {
|
||||
console.log(` 🎯 Tighter Stop: ${result.analysis.alternatives.tigherStopOption}`)
|
||||
}
|
||||
if (result.analysis.alternatives.scaledEntry) {
|
||||
console.log(` 📊 Scaled Entry: ${result.analysis.alternatives.scaledEntry}`)
|
||||
}
|
||||
if (result.analysis.alternatives.invalidationScenario) {
|
||||
console.log(` ❌ Invalidation: ${result.analysis.alternatives.invalidationScenario}`)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
console.log('\n⚠️ No AI analysis results received')
|
||||
@@ -113,7 +224,8 @@ async function testDualSessionScreenshots() {
|
||||
if (require.main === module) {
|
||||
// Add fetch for Node.js environments that don't have it built-in
|
||||
if (typeof fetch === 'undefined') {
|
||||
global.fetch = require('node-fetch')
|
||||
const { default: fetch } = require('node-fetch')
|
||||
global.fetch = fetch
|
||||
}
|
||||
|
||||
testDualSessionScreenshots()
|
||||
|
||||
Reference in New Issue
Block a user