Files
XauBot/test_trajectory_bug.py
T

57 lines
1.8 KiB
Python
Raw Normal View History

#!/usr/bin/env python
"""Test trajectory prediction calculation to find bug."""
# Trade #3 data dari log:
# 10:46:25 | profit=$+0.65 | vel=0.0466$/s | accel=0.0009
# 10:46:31 | Predicted $67.64 in 1min
current_profit = 0.65
velocity = 0.0466 # $/s
acceleration = 0.0009 # $/s²
dt = 60 # seconds
# Manual calculation (kinematic formula):
# profit(t) = p₀ + v*t + 0.5*a*t²
pred_1m_manual = current_profit + velocity * dt + 0.5 * acceleration * dt**2
print("=== TRAJECTORY BUG DIAGNOSIS ===")
print(f"Current profit: ${current_profit:.2f}")
print(f"Velocity: ${velocity:.4f}/s")
print(f"Acceleration: ${acceleration:.4f}/s²")
print(f"Time horizon: {dt}s (1 minute)")
print()
print("--- Manual Calculation ---")
print(f"p₀ = ${current_profit:.2f}")
print(f"v*t = ${velocity:.4f} × {dt} = ${velocity * dt:.2f}")
print(f"0.5*a*t² = 0.5 × ${acceleration:.4f} × {dt}² = ${0.5 * acceleration * dt**2:.2f}")
print(f"Total: ${pred_1m_manual:.2f}")
print()
print("--- Log Value ---")
print(f"Logged prediction: $67.64")
print(f"Error factor: {67.64 / pred_1m_manual:.1f}x")
print()
print("=== TEST WITH TRAJECTORY PREDICTOR ===")
try:
from src.trajectory_predictor import TrajectoryPredictor
predictor = TrajectoryPredictor()
pred_1m, pred_3m, pred_5m = predictor.predict_future_profit(
current_profit, velocity, acceleration
)
print(f"Predictor output:")
print(f" 1min: ${pred_1m:.2f}")
print(f" 3min: ${pred_3m:.2f}")
print(f" 5min: ${pred_5m:.2f}")
print()
if abs(pred_1m - pred_1m_manual) < 0.01:
print("✅ Predictor formula is CORRECT!")
else:
print(f"❌ BUG: Predictor gives ${pred_1m:.2f}, manual gives ${pred_1m_manual:.2f}")
except Exception as e:
print(f"Error importing predictor: {e}")