Skip to content

Commit cd73271

Browse files
committedFeb 24, 2025
fix: rr, and stp when editing a record
1 parent cae66a9 commit cd73271

File tree

4 files changed

+26
-10
lines changed

4 files changed

+26
-10
lines changed
 

‎src/risk_manager/trade/templates/trade/layout.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
<script>
1919
/* Running */
2020
$(document).ready(function(){
21-
$("input").keyup(compute_amount)
21+
$("#form2 input").keyup(compute_amount)
2222
});
2323
</script>
2424
{% endif %}

‎src/risk_manager/trade/templates/trade/new.html

+11-6
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
{% block trade_position_content %}
7575
<div class="px-1 py-0 text-center">{% trans "Account reserve" %} : <span>{{ user_broker.reserve }}</span></div>
7676
<div class="px-1 py-0 text-center">{% trans "Account balance" %} : <span>{{ user_broker.balance }}</span></div>
77-
<div class="px-1 py-0 text-center">{% trans "Account balance for trade" %} : <span>14</span></div>
77+
<div class="px-1 py-0 text-center">{% trans "Account available balance for trade" %} : <span>14</span></div>
7878
<div class="accordion" id="accordionExample">
7979
<div class="accordion-item">
8080
<h2 class="accordion-header">
@@ -85,14 +85,14 @@ <h2 class="accordion-header">
8585
<div id="collapseOne" class="accordion-collapse collapse show" data-bs-parent="#accordionExample">
8686
<div class="accordion-body">
8787

88-
<form id="dataform" class="card-body needs-validation" action={% url 'new_trade_commit' %} method="post" onsubmit="return validateForm();" novalidate>
88+
<form id="form1" class="card-body needs-validation" action={% url 'new_trade_commit' %} method="post" onsubmit="return validateForm();" novalidate>
8989
{% csrf_token %}
9090
<div class="row">
9191
<div class="mb-3">
9292
<label for="stop" class="form-label">{% trans "Enter the Stop Loss % Here:" %}</label>
9393
<div class="input-group">
9494
<span class="input-group-text" id="basic-addon3">%</span>
95-
<input name="stop" type="text" class="form-control" id="balance" aria-describedby="basic-addon3 basic-addon4" autofocus required>
95+
<input name="stop_loss_percentage" type="text" class="form-control" id="balance" aria-describedby="basic-addon3 basic-addon4" autofocus required>
9696
<div class="invalid-feedback">
9797
{% trans "Please provide a valid % of stop loss." %}
9898
</div>
@@ -101,13 +101,18 @@ <h2 class="accordion-header">
101101
</div>
102102
<div class="mb-3">
103103
<label for="rrr" class="form-label">{% trans "Enter the Risk/Reward Ratio:" %}</label>
104-
<input name="rr" type="text" class="form-control" id="rrr" aria-describedby="basic-addon3 basic-addon4" required>
104+
<input name="risk_reward" type="text" class="form-control" id="rrr" aria-describedby="basic-addon3 basic-addon4" required>
105105
<div class="invalid-feedback">
106106
{% trans "Please provide a valid risk reward ratio." %}
107107
</div>
108108
</div>
109109

110-
<div class="col-12 w-100">{% trans "Account balance" %} : <span id="bal">{{ user_broker.balance }}</span></div>
110+
111+
<!-- Amount -->
112+
<span class="absolute w-32 text-center bg-black/50 px-2.5 py-1 text-white font-bold text-base rounded top-[2%] left-[4%]">{% trans 'Amount' %}</span>
113+
<input name="amount" class="w-44 absolute bg-black/50 px-2.5 text-white py-1 rounded top-[13%] left-[1%]" type="text">
114+
115+
<div class="col-12 w-100">{% trans "amount balance for this trade" %} : <span id="bal">{{ 'Amount' }}</span></div>
111116
<button class="btn btn-primary w-100 mt-3">{% trans "Save" %}</button>
112117
</div>
113118
</form>
@@ -124,7 +129,7 @@ <h2 class="accordion-header">
124129
<div id="collapseTwo" class="accordion-collapse collapse" data-bs-parent="#accordionExample">
125130
<div class="accordion-body">
126131

127-
<form id="dataform" class="card-body" action={% url 'new_trade_commit' %} method="post" onsubmit="return validateForm();">
132+
<form id="form2" class="card-body" action={% url 'new_trade_commit' %} method="post" onsubmit="return validateForm();">
128133
{% csrf_token %}
129134
<div class="row">
130135
<div class="px-1 py-0 text-center"><span>{% trans "Symbol" %} : <input name='symbol' oninput="this.value = this.value.toUpperCase();" class="bg-black/25 px-2.5 rounded" placeholder="BTC"></span></div>

‎src/risk_manager/trade/trade_states.py

+13-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from decimal import getcontext
1010
from copy import copy, deepcopy
1111
from django.db.models import QuerySet # for typehint of records
12-
from trade.models import Symbol, Trade, UserBroker
12+
from trade.models import Broker, RR_Stop_Factory, Symbol, Trade, UserBroker
1313

1414
logger = logging.getLogger("django")
1515
getcontext().prec = 4
@@ -28,11 +28,22 @@ def __init__(
2828
trade_before_edit_record: Trade,
2929
trade_class: Trade,
3030
):
31+
3132
self.trade_edited_record: Trade = trade_edited_record
3233
self.trade_before_edit_record: Trade = trade_before_edit_record
3334
self.trade_class: Trade = trade_class
3435
self.user = self.trade_edited_record.ub.user
3536
self.broker = self.trade_edited_record.ub.broker
37+
factory = RR_Stop_Factory().create(
38+
entry=d(self.trade_edited_record.entry),
39+
stop=d(self.trade_edited_record.stop),
40+
target=d(self.trade_edited_record.target),
41+
risk_reward=d(self.trade_edited_record.risk_reward),
42+
stop_percentage=d(self.trade_edited_record.stop_percent),
43+
result=self.trade_edited_record.result,
44+
)
45+
self.trade_edited_record.risk_reward = factory.get_risk_reward()
46+
self.trade_edited_record.stop_percent = factory.get_stop_percentage()
3647
self.goto(Decision()) # The first state that decides what we do
3748

3849
def goto(self, state: State):
@@ -71,7 +82,7 @@ def log(self, msg: Any = None) -> None:
7182
else:
7283
logger.warn(f">> {str(self)}")
7384
if self.prev() is not None:
74-
logger.warn("PrevRecordID=" + str(self.prev().id))
85+
logger.warn("PrevRecordID=" + str(self.prev().id)) # type: ignore
7586
logger.warn("BeforeEditID=" + str(self.before().id))
7687
logger.warn("AfterEditID =" + str(self.after().id))
7788

‎src/risk_manager/trade/views.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ def new_commit(req):
118118
stop=d(p.get("stop", None)),
119119
target=d(p.get("target", None)),
120120
risk_reward=d(p.get("risk_reward", None)),
121-
stop_loss_percentage=d(p.get("stop_loss_percentage", None)),
121+
stop_percentage=d(p.get("stop_loss_percentage", None)),
122122
result=None,
123123
)
124124
# Relationship, and we know that already there exists a user and a symbol

0 commit comments

Comments
 (0)
Please sign in to comment.