From 57a1bf202c6fc204cded5700dad37271f9224ff0 Mon Sep 17 00:00:00 2001 From: Denis Tereshkin Date: Wed, 15 Mar 2017 20:39:10 +0700 Subject: [PATCH] Closed trades: rebalance --- forms.py | 4 ++-- templates/dashboard/closed_trades.html | 1 + urls.py | 1 + views.py | 14 +++++++++++++- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/forms.py b/forms.py index 6b37f29..584eab5 100644 --- a/forms.py +++ b/forms.py @@ -26,6 +26,6 @@ class ClosedTradeFilterForm(forms.Form): super().__init__(*args, **kwargs) all_accounts, all_strategies = get_all_accounts_and_strategies() - self.fields['accounts'] = forms.MultipleChoiceField(choices=zip(list(all_accounts), list(all_accounts))) - self.fields['strategies'] = forms.MultipleChoiceField(choices=zip(list(all_strategies), list(all_strategies))) + self.fields['accounts'] = forms.MultipleChoiceField(choices=zip(list(all_accounts), list(all_accounts)), required=False) + self.fields['strategies'] = forms.MultipleChoiceField(choices=zip(list(all_strategies), list(all_strategies)), required=False) diff --git a/templates/dashboard/closed_trades.html b/templates/dashboard/closed_trades.html index a472a97..cc2ac6e 100644 --- a/templates/dashboard/closed_trades.html +++ b/templates/dashboard/closed_trades.html @@ -7,6 +7,7 @@
diff --git a/urls.py b/urls.py index e9b8610..e3d975e 100644 --- a/urls.py +++ b/urls.py @@ -11,4 +11,5 @@ urlpatterns = [ url(r'^add_trade/$', views.add_trade, name='add_trade'), url(r'^delete_trade/(?P[^/]+)$', views.delete_trade, name='delete_trade'), url(r'^closed_trades/$', views.closed_trades_index, name='closed_trades_index'), + url(r'^rebalance_closed_trades/$', views.rebalance_closed_trades, name='rebalance_closed_trades'), ] diff --git a/views.py b/views.py index a385571..a291893 100644 --- a/views.py +++ b/views.py @@ -160,6 +160,7 @@ def aggregate_unbalanced_trades(): def closed_trades_index(request): + aggregate_unbalanced_trades() form = ClosedTradeFilterForm(request.GET) if form.is_valid(): d = form.cleaned_data @@ -177,10 +178,21 @@ def closed_trades_index(request): closed_trades = ClosedTrade.objects.all() form = ClosedTradeFilterForm() - aggregate_unbalanced_trades() + closed_trades = closed_trades.order_by('-entryTime') + template = loader.get_template('dashboard/closed_trades.html') context = { 'closed_trades' : closed_trades, 'closed_trades_filter_form' : form } return HttpResponse(template.render(context, request)) + +@transaction.atomic +def do_rebalance(): + ClosedTrade.objects.all().delete() + Trade.objects.all().update(balanced=False) + + +def rebalance_closed_trades(request): + do_rebalance() + return HttpResponseRedirect(reverse('closed_trades_index'))