Path: blob/master/ invest-robot-contest_tinkoff_trading_contest-main/tinkoff_contest/backtesting_app/models.py
5929 views
from django.db import models1from knowledge_base.models import Strategy23# Create your models here.456class StrategyConfig(models.Model):7"""8Configuration model for strategies, contains json config of parameters9"""10strategy = models.ForeignKey(Strategy, on_delete=models.CASCADE)11configuration = models.JSONField(default=dict({'Empty':'Empty'}), blank=True)1213def __str__(self):14return self.strategy.name1516class Meta:17verbose_name = 'Конфигурация'18verbose_name_plural = 'Конфигурации'192021class BacktestResult(models.Model):22"""23Backtest result24"""25strategy = models.ForeignKey(Strategy, on_delete=models.CASCADE)26stock = models.CharField(max_length=50)27timeframe = models.CharField(max_length=5)28config = models.JSONField(default=dict({'Empty':'Empty'}), blank=True)29start_date = models.DateTimeField()30end_date = models.DateTimeField()31number_of_trades = models.IntegerField()32winning_trades = models.FloatField()33profit = models.FloatField()3435def __str__(self):36return '_'.join([self.strategy.name, self.stock, self.timeframe,37str(self.start_date.year), str(self.start_date.month), str(self.start_date.day),38str(self.end_date.year), str(self.end_date.month), str(self.end_date.day),39])4041class Meta:42verbose_name = 'Результат'43verbose_name_plural = 'Результаты'4445464748