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:
mindesbunister
2025-07-13 17:53:35 +02:00
parent 4965a3d0af
commit 94ed58f781
2 changed files with 278 additions and 56 deletions

View File

@@ -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()