Browse Source

Closed trades: rebalance

master
Denis Tereshkin 9 years ago
parent
commit
57a1bf202c
  1. 4
      forms.py
  2. 1
      templates/dashboard/closed_trades.html
  3. 1
      urls.py
  4. 14
      views.py

4
forms.py

@ -26,6 +26,6 @@ class ClosedTradeFilterForm(forms.Form):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
all_accounts, all_strategies = get_all_accounts_and_strategies() all_accounts, all_strategies = get_all_accounts_and_strategies()
self.fields['accounts'] = forms.MultipleChoiceField(choices=zip(list(all_accounts), list(all_accounts))) 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))) self.fields['strategies'] = forms.MultipleChoiceField(choices=zip(list(all_strategies), list(all_strategies)), required=False)

1
templates/dashboard/closed_trades.html

@ -7,6 +7,7 @@
<div class="panel panel-default"> <div class="panel panel-default">
<div class="panel-header"> <div class="panel-header">
<a href="#closed_trades_filter_form" role="button" data-toggle="collapse">Apply filter...</a> <a href="#closed_trades_filter_form" role="button" data-toggle="collapse">Apply filter...</a>
<a href="{% url 'rebalance_closed_trades' %}" class="pull-right">Rebalance...</a>
</div> </div>
<div class="panel-body panel-collapse collapse" id="closed_trades_filter_form"> <div class="panel-body panel-collapse collapse" id="closed_trades_filter_form">
<form action="{% url 'closed_trades_index' %}" method="GET"> <form action="{% url 'closed_trades_index' %}" method="GET">

1
urls.py

@ -11,4 +11,5 @@ urlpatterns = [
url(r'^add_trade/$', views.add_trade, name='add_trade'), url(r'^add_trade/$', views.add_trade, name='add_trade'),
url(r'^delete_trade/(?P<trade_id>[^/]+)$', views.delete_trade, name='delete_trade'), url(r'^delete_trade/(?P<trade_id>[^/]+)$', views.delete_trade, name='delete_trade'),
url(r'^closed_trades/$', views.closed_trades_index, name='closed_trades_index'), 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'),
] ]

14
views.py

@ -160,6 +160,7 @@ def aggregate_unbalanced_trades():
def closed_trades_index(request): def closed_trades_index(request):
aggregate_unbalanced_trades()
form = ClosedTradeFilterForm(request.GET) form = ClosedTradeFilterForm(request.GET)
if form.is_valid(): if form.is_valid():
d = form.cleaned_data d = form.cleaned_data
@ -177,10 +178,21 @@ def closed_trades_index(request):
closed_trades = ClosedTrade.objects.all() closed_trades = ClosedTrade.objects.all()
form = ClosedTradeFilterForm() form = ClosedTradeFilterForm()
aggregate_unbalanced_trades() closed_trades = closed_trades.order_by('-entryTime')
template = loader.get_template('dashboard/closed_trades.html') template = loader.get_template('dashboard/closed_trades.html')
context = { context = {
'closed_trades' : closed_trades, 'closed_trades' : closed_trades,
'closed_trades_filter_form' : form 'closed_trades_filter_form' : form
} }
return HttpResponse(template.render(context, request)) 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'))

Loading…
Cancel
Save