37185-vm/signals/models.py
2025-12-28 21:36:27 +00:00

36 lines
1.2 KiB
Python

from django.db import models
class Signal(models.Model):
SIGNAL_CHOICES = [
('BUY', 'Buy'),
('SELL', 'Sell'),
('WAIT', 'Wait'),
]
symbol = models.CharField(max_length=20)
signal = models.CharField(max_length=4, choices=SIGNAL_CHOICES)
timeframe = models.CharField(max_length=10)
timestamp = models.DateTimeField(auto_now_add=True)
def __str__(self):
return f"{self.symbol} - {self.signal} ({self.timeframe})"
class ConfidenceScore(models.Model):
signal = models.OneToOneField(Signal, on_delete=models.CASCADE, related_name='confidence_score')
score = models.FloatField()
timestamp = models.DateTimeField(auto_now_add=True)
def __str__(self):
return f"{self.signal} - {self.score}"
class Backtest(models.Model):
symbol = models.CharField(max_length=20)
start_date = models.DateTimeField()
end_date = models.DateTimeField()
profit_loss = models.FloatField()
win_rate = models.FloatField()
max_drawdown = models.FloatField()
timestamp = models.DateTimeField(auto_now_add=True)
def __str__(self):
return f"Backtest for {self.symbol} from {self.start_date} to {self.end_date}"