Files
trading_bot_v3/TIMEFRAME_FIX.md
mindesbunister b91d35ad60 Fix timeframe selection bug and syntax errors
- Fixed critical timeframe mapping bug where '4h' was interpreted as '4 minutes'
- Now prioritizes minute values: '4h' -> ['240', '240m', '4h', '4H']
- Added fallback mechanism to enter exact minutes (240) in custom interval input
- Fixed multiple syntax errors in tradingview-automation.ts:
  * Missing closing parentheses in console.log statements
  * Missing parentheses in writeFile and JSON.parse calls
  * Fixed import statements for fs and path modules
  * Added missing utility methods (fileExists, markCaptchaDetected, etc.)
- Enhanced timeframe selection with comprehensive hour mappings (1h, 2h, 4h, 6h, 12h)
- Added detailed logging for debugging timeframe selection
- Application now builds successfully without syntax errors
- Interval selection should work correctly for all common timeframes

Key improvements:
 4h chart selection now works correctly (240 minutes, not 4 minutes)
 All TypeScript compilation errors resolved
 Enhanced debugging output for timeframe mapping
 Robust fallback mechanisms for interval selection
 Docker integration and manual CAPTCHA handling maintained
2025-07-13 13:57:35 +02:00

2.0 KiB

Timeframe Interval Selection Fix

Problem

When requesting a "4h" (4-hour) chart timeframe, TradingView was interpreting this as "4 minutes" instead of "4 hours", causing the wrong chart interval to be selected.

Root Cause

The timeframe mapping was prioritizing hour notation ("4h", "4H") which TradingView was misinterpreting as minutes.

Solution

Modified the timeframe mapping in lib/tradingview-automation.ts to:

1. Prioritize Minute Values

For hour-based timeframes, always try the minute equivalent first:

  • "4h" now maps to: ["240", "240m", "4h", "4H"]
  • "1h" now maps to: ["60", "60m", "1h", "1H"]
  • "2h" now maps to: ["120", "120m", "2h", "2H"]

2. Added More Hour Timeframes

Extended support for common trading timeframes:

  • 2h = 120 minutes
  • 6h = 360 minutes
  • 12h = 720 minutes

3. Enhanced Fallback Logic

Added a custom interval input fallback that:

  • Converts timeframes to exact minutes (e.g., "4h" → "240")
  • Looks for custom interval input fields
  • Enters the minute value directly if standard selection fails

4. Improved Debugging

Added detailed logging to track:

  • Which timeframe values are being tried
  • The order of attempts
  • Success/failure of each method

Key Changes

// OLD - Would try "4h" first (interpreted as 4 minutes)
'4h': ['4h', '4H', '240', '240m']

// NEW - Tries 240 minutes first (unambiguous)
'4h': ['240', '240m', '4h', '4H']

Fallback Strategy

If regular timeframe selection fails:

  1. Try keyboard shortcuts
  2. NEW: Try custom interval input with exact minutes
  3. Look for input[data-name="text-input-field"] and similar
  4. Enter "240" for 4h, "60" for 1h, etc.

Testing

The fix ensures that:

  • "4h" request → 4-hour chart (not 4-minute)
  • "1h" request → 1-hour chart (not 1-minute)
  • All common timeframes work correctly
  • Fallback to custom input if needed
  • Detailed logging for debugging

This fix addresses the core issue where timeframe selection was "stuck" at wrong intervals due to TradingView misinterpreting hour notation as minutes.