Browse Source

Manual trades creation

master
Denis Tereshkin 9 years ago
parent
commit
b12385a24b
  1. 2
      forms.py
  2. 20
      templates/dashboard/closed_trades.html
  3. 5
      templates/dashboard/trades.html
  4. 2
      urls.py
  5. 24
      views.py

2
forms.py

@ -7,7 +7,7 @@ class NewTradeForm(forms.Form): @@ -7,7 +7,7 @@ class NewTradeForm(forms.Form):
operation = forms.ChoiceField(choices=[('buy', 'Buy'), ('sell', 'Sell')])
price = forms.DecimalField()
quantity = forms.IntegerField()
volume = forms.DateField()
volume = forms.DecimalField()
volumeCurrency = forms.CharField(max_length=10)
strategyId = forms.CharField(max_length=64)
signalId = forms.CharField(max_length=64)

20
templates/dashboard/closed_trades.html

@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
{% extends "dashboard/base.html" %}
{% load bootstrap3 %}
{% load mathfilters %}
{% block content %}
<table class="table table-condensed">
<tr>
<td></td>
<td>Account</td>
<td>Security</td>
<td>EntryTime</td>
<td>ExitTime</td>
<td>Profit</td>
<td>Strategy ID</td>
</tr>
{% for closed_trade in closed_trades %}
{% endfor %}
</table>
{% endblock %}

5
templates/dashboard/trades.html

@ -4,8 +4,9 @@ @@ -4,8 +4,9 @@
{% block content %}
<div class="panel panel-default panel-collapse collapse" id="new_trade_form">
<div class="panel-body">
<form action="#" method="POST">
<div class="panel-body col-xs-4">
<form action="{% url 'add_trade' %}" method="POST">
{% csrf_token %}
{% bootstrap_form new_trade_form %}
{% bootstrap_button button_type='submit' content='Submit' %}
</form>

2
urls.py

@ -8,6 +8,6 @@ urlpatterns = [ @@ -8,6 +8,6 @@ urlpatterns = [
url(r'^add_instance$', views.add_instance, name='add_instance'),
url(r'^delete_instance/(?P<instance_id>[^/]+)$', views.delete_instance, name='delete_instance'),
url(r'^trades/$', views.trades_index, name='trades_index'),
url(r'^add_trade/$', views.add_trade, name='add_trade'),
url(r'^delete_trade/(?P<trade_id>[^/]+)$', views.delete_trade, name='delete_trade'),
]

24
views.py

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
from django.http import HttpResponse, HttpResponseRedirect
from django.http import HttpResponse, HttpResponseRedirect, Http404
from django.template import loader
from django.shortcuts import render, get_object_or_404
from django.urls import reverse
@ -87,3 +87,25 @@ def delete_trade(request, trade_id): @@ -87,3 +87,25 @@ def delete_trade(request, trade_id):
trade.delete()
return HttpResponseRedirect(reverse('trades_index'))
def add_trade(request):
if request.method == 'POST':
form = NewTradeForm(request.POST)
if form.is_valid():
d = form.cleaned_data
quantity_multiplier = 1
if d['operation'] == 'sell':
quantity_multiplier = -1
trade = Trade(account=d['account'], security=d['security'], price=d['price'], quantity=quantity_multiplier * d['quantity'],
volume=d['volume'], volumeCurrency=d['volumeCurrency'], strategyId=d['strategyId'], signalId=d['signalId'], timestamp=d['timestamp'], balanced=False)
trade.save()
return HttpResponseRedirect(reverse('trades_index'))
else:
trades = Trade.objects.all()
template = loader.get_template('dashboard/trades.html')
context = {
'trades' : trades,
'new_trade_form' : form
}
return HttpResponse(template.render(context, request))
raise Http404("Invalid method")

Loading…
Cancel
Save