Browse Source

Refactoring: ClosedTradesFilterForm rename

master
Denis Tereshkin 6 years ago
parent
commit
4ebfd6eb36
  1. 10
      forms.py
  2. 12
      views.py

10
forms.py

@ -26,8 +26,8 @@ class NewTradeForm(forms.Form):
strategyId = forms.CharField(max_length=64) strategyId = forms.CharField(max_length=64)
signalId = forms.CharField(max_length=64) signalId = forms.CharField(max_length=64)
class ClosedTradeFilterForm(forms.Form): class TradeFilterForm(forms.Form):
def __init__(self, *args, **kwargs): def __init__(self, *args, show_unbalanced_checkbox=False, **kwargs):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
now = datetime.date.today() now = datetime.date.today()
@ -37,4 +37,8 @@ class ClosedTradeFilterForm(forms.Form):
self.fields['strategies'] = forms.MultipleChoiceField(choices=zip(sorted(list(all_strategies)), sorted(list(all_strategies))), required=False) self.fields['strategies'] = forms.MultipleChoiceField(choices=zip(sorted(list(all_strategies)), sorted(list(all_strategies))), required=False)
self.fields['startdate'] = forms.DateField(initial=(now - datetime.timedelta(weeks=4))) self.fields['startdate'] = forms.DateField(initial=(now - datetime.timedelta(weeks=4)))
self.fields['enddate'] = forms.DateField(initial=now) self.fields['enddate'] = forms.DateField(initial=now)
self.fields['unbalanced_only'] = forms.BooleanField(required=False) try:
if show_unbalanced_checkbox:
self.fields['unbalanced_only'] = forms.BooleanField(required=False)
except KeyError:
pass

12
views.py

@ -11,7 +11,7 @@ from django.contrib.auth import authenticate, login, logout
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from .models import RobotInstance, Trade, ClosedTrade from .models import RobotInstance, Trade, ClosedTrade
from .forms import NewTradeForm, ClosedTradeFilterForm, LoginForm from .forms import NewTradeForm, TradeFilterForm, LoginForm
import redis import redis
import json import json
import datetime import datetime
@ -131,7 +131,7 @@ def trades_index(request):
now = datetime.datetime.utcnow() now = datetime.datetime.utcnow()
new_trade_form = NewTradeForm(initial={'timestamp' : now}) new_trade_form = NewTradeForm(initial={'timestamp' : now})
trades = Trade.objects.all().order_by('-timestamp') trades = Trade.objects.all().order_by('-timestamp')
form_filter = ClosedTradeFilterForm(request.GET) form_filter = TradeFilterForm(request.GET, show_unbalanced_checkbox=True)
if form_filter.is_valid(): if form_filter.is_valid():
d = form_filter.cleaned_data d = form_filter.cleaned_data
if len(d['strategies']) > 0: if len(d['strategies']) > 0:
@ -149,7 +149,7 @@ def trades_index(request):
else: else:
now = datetime.date.today() now = datetime.date.today()
form_filter = ClosedTradeFilterForm() form_filter = TradeFilterForm(show_unbalanced_checkbox=True)
paginator = Paginator(trades, 25) paginator = Paginator(trades, 25)
try: try:
@ -229,7 +229,7 @@ def aggregate_unbalanced_trades():
else: else:
direction='short' direction='short'
balance_entry['trade'] = ClosedTrade(account=trade.account, security=trade.security, entryTime=trade.timestamp, profitCurrency=trade.volumeCurrency, balance_entry['trade'] = ClosedTrade(account=trade.account, security=trade.security, entryTime=trade.timestamp, profitCurrency=trade.volumeCurrency,
profit=(-trade.price * trade.quantity), strategyId=trade.strategyId, direction=direction) profit=(-trade.price * trade.quantity), strategyId=trade.strategyId, direction=direction)
balance_entry['ks'] = trade.volume / trade_volume balance_entry['ks'] = trade.volume / trade_volume
balance_entry['trade_ids'] = [trade.pk] balance_entry['trade_ids'] = [trade.pk]
balance_entry['commissions'] = trade.commission balance_entry['commissions'] = trade.commission
@ -282,7 +282,7 @@ def make_cumulative_profits(closed_trades):
@login_required @login_required
def closed_trades_index(request): def closed_trades_index(request):
aggregate_unbalanced_trades() aggregate_unbalanced_trades()
form = ClosedTradeFilterForm(request.GET) form = TradeFilterForm(request.GET)
if form.is_valid(): if form.is_valid():
d = form.cleaned_data d = form.cleaned_data
closed_trades = ClosedTrade.objects.all() closed_trades = ClosedTrade.objects.all()
@ -299,7 +299,7 @@ def closed_trades_index(request):
else: else:
now = datetime.date.today() now = datetime.date.today()
closed_trades = ClosedTrade.objects.all().filter(exitTime__gte=(now - datetime.timedelta(weeks=4))) closed_trades = ClosedTrade.objects.all().filter(exitTime__gte=(now - datetime.timedelta(weeks=4)))
form = ClosedTradeFilterForm() form = TradeFilterForm()
closed_trades = closed_trades.order_by('-exitTime') closed_trades = closed_trades.order_by('-exitTime')

Loading…
Cancel
Save