round all calculation to 2 digits
This commit is contained in:
BIN
cao_blogr.sqlite
BIN
cao_blogr.sqlite
Binary file not shown.
@@ -75,7 +75,10 @@ class PFService(object):
|
|||||||
result = request.dbsession.query(Actifs, func.sum(Actifs.valeur).label("TotalValue")).first()
|
result = request.dbsession.query(Actifs, func.sum(Actifs.valeur).label("TotalValue")).first()
|
||||||
TotalValue = result.TotalValue
|
TotalValue = result.TotalValue
|
||||||
# maj du pourcentage d'allocation des lignes du portefeuille
|
# maj du pourcentage d'allocation des lignes du portefeuille
|
||||||
request.dbsession.query(Actifs).update({'pc_allocation': Actifs.valeur / TotalValue * 100})
|
items = PFService.get_actifs(request, '0')
|
||||||
|
for item in items:
|
||||||
|
pc_allocation = round(item.Actifs.valeur / TotalValue * 100, 3)
|
||||||
|
request.dbsession.query(Actifs).filter(Actifs.no_id == item.Actifs.no_id).update({'pc_allocation': pc_allocation})
|
||||||
|
|
||||||
# maj des allocations
|
# maj des allocations
|
||||||
items = PFService.get_allocation(request, '0')
|
items = PFService.get_allocation(request, '0')
|
||||||
@@ -84,9 +87,11 @@ class PFService(object):
|
|||||||
result = request.dbsession.query(Actifs, func.sum(Actifs.valeur).label("TotalClasse")
|
result = request.dbsession.query(Actifs, func.sum(Actifs.valeur).label("TotalClasse")
|
||||||
).filter(Actifs.classe == item.classe).first()
|
).filter(Actifs.classe == item.classe).first()
|
||||||
TotalClasse = result.TotalClasse
|
TotalClasse = result.TotalClasse
|
||||||
|
pc_atteint = round(TotalClasse / TotalValue * 100, 3)
|
||||||
# maj du pourcentage d'allocation de cette classe
|
# maj du pourcentage d'allocation de cette classe
|
||||||
request.dbsession.query(Allocation).filter(Allocation.classe == item.classe
|
request.dbsession.query(Allocation).filter(Allocation.classe == item.classe
|
||||||
).update({'valeur': TotalClasse, 'pc_atteint': TotalClasse / TotalValue * 100})
|
).update({'valeur': TotalClasse,
|
||||||
|
'pc_atteint': pc_atteint})
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="{{ item.bg_color }}"><a href="allocation_edit/{{ item.no_cat }}">{{ item.classe }}</a></td>
|
<td class="{{ item.bg_color }}"><a href="allocation_edit/{{ item.no_cat }}">{{ item.classe }}</a></td>
|
||||||
<td class="text-right">{{ item.pc_cible }} %</td>
|
<td class="text-right">{{ item.pc_cible }} %</td>
|
||||||
<td class="text-right">{{ '{0:0.1f}'.format(item.pc_atteint) }}</td>
|
<td class="text-right">{{ '{0:0.1f}'.format(item.pc_atteint) }} %</td>
|
||||||
{% if (item.pc_atteint - item.pc_cible) >= 0 %}
|
{% if (item.pc_atteint - item.pc_cible) >= 0 %}
|
||||||
<td class="text-right" style="color: green;">{{ '{0:0.1f}'.format(item.pc_ecart) }}</td>
|
<td class="text-right" style="color: green;">{{ '{0:0.1f}'.format(item.pc_ecart) }}</td>
|
||||||
{% else %}
|
{% else %}
|
||||||
@@ -83,7 +83,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<h3>Mes actifs</h3>
|
<h2>Mes actifs</h2>
|
||||||
<p>"<i>Diversification is not determined by the number of securities held.</i>"
|
<p>"<i>Diversification is not determined by the number of securities held.</i>"
|
||||||
<a href="http://www.etf.com/sections/index-investor-corner" target="_blank">Larry Swedroe</a></p>
|
<a href="http://www.etf.com/sections/index-investor-corner" target="_blank">Larry Swedroe</a></p>
|
||||||
|
|
||||||
|
|||||||
@@ -60,11 +60,11 @@ def portfolio(request):
|
|||||||
if symbole == 'SHLDQ':
|
if symbole == 'SHLDQ':
|
||||||
cours = 0
|
cours = 0
|
||||||
else:
|
else:
|
||||||
cours = ticker.fast_info.get('lastPrice')
|
cours = round(ticker.fast_info.get('lastPrice'), 3)
|
||||||
|
|
||||||
valeur = cours * item.Actifs.parite * item.Actifs.nombre
|
valeur = round(cours * item.Actifs.parite * item.Actifs.nombre, 3)
|
||||||
plus_value = valeur - (item.Actifs.pru * item.Actifs.nombre)
|
plus_value = round(valeur - (item.Actifs.pru * item.Actifs.nombre),2)
|
||||||
pc_plusvalue = valeur * 100 / (item.Actifs.pru * item.Actifs.nombre) - 100
|
pc_plusvalue = round(valeur * 100 / (item.Actifs.pru * item.Actifs.nombre) - 100, 3)
|
||||||
PFService.update_actif_valeur(request, symbole, cours, valeur, plus_value, pc_plusvalue)
|
PFService.update_actif_valeur(request, symbole, cours, valeur, plus_value, pc_plusvalue)
|
||||||
# time.sleep(1) # attendre 2 secondes
|
# time.sleep(1) # attendre 2 secondes
|
||||||
|
|
||||||
@@ -198,7 +198,7 @@ def histo_edit(request):
|
|||||||
|
|
||||||
# lire le cours de l'indice de réfence : Carmignac Investissement A EUR Acc
|
# lire le cours de l'indice de réfence : Carmignac Investissement A EUR Acc
|
||||||
ticker = yf.Ticker('0P00000FB2.F')
|
ticker = yf.Ticker('0P00000FB2.F')
|
||||||
entry.cours_ref = ticker.fast_info.last_price
|
entry.cours_ref = round(ticker.fast_info.last_price, 3)
|
||||||
|
|
||||||
# lire le dernier histo
|
# lire le dernier histo
|
||||||
last = PFService.get_last_histo(request)
|
last = PFService.get_last_histo(request)
|
||||||
@@ -211,9 +211,9 @@ def histo_edit(request):
|
|||||||
|
|
||||||
entry.valeur_pf = valeur_pf
|
entry.valeur_pf = valeur_pf
|
||||||
# nlle valeur part = ancienne + nouvelle ratio
|
# nlle valeur part = ancienne + nouvelle ratio
|
||||||
entry.nb_part = last.nb_part + (float(entry.mvt_cash) / (valeur_pf - float(entry.mvt_cash))/last.nb_part)
|
entry.nb_part = round(last.nb_part + (float(entry.mvt_cash) / (valeur_pf - float(entry.mvt_cash))/last.nb_part), 3)
|
||||||
entry.val_part = entry.valeur_pf / entry.nb_part
|
entry.val_part = round(entry.valeur_pf / entry.nb_part, 3)
|
||||||
entry.val_part_ref = float(entry.cours_ref) * last.val_part_ref / last.cours_ref
|
entry.val_part_ref = round(float(entry.cours_ref) * last.val_part_ref / last.cours_ref, 3)
|
||||||
|
|
||||||
request.dbsession.add(entry)
|
request.dbsession.add(entry)
|
||||||
|
|
||||||
@@ -272,10 +272,10 @@ def actif_edit(request):
|
|||||||
entry.libelle = entry.libelle.replace('UCITS ','')
|
entry.libelle = entry.libelle.replace('UCITS ','')
|
||||||
entry.libelle = entry.libelle.replace('World U','World')
|
entry.libelle = entry.libelle.replace('World U','World')
|
||||||
entry.pc_allocation = 1.0
|
entry.pc_allocation = 1.0
|
||||||
entry.valeur = float(entry.cours) * entry.parite * entry.nombre;
|
entry.valeur = round(float(entry.cours) * entry.parite * entry.nombre, 3)
|
||||||
entry.plus_value = entry.valeur - float(entry.pru * entry.nombre);
|
entry.plus_value = round(entry.valeur - float(entry.pru * entry.nombre), 3)
|
||||||
entry.pc_plusvalue = entry.plus_value / entry.valeur * 100;
|
entry.pc_plusvalue = round(entry.plus_value / entry.valeur * 100, 3)
|
||||||
entry.rendement = entry.valeur * float(entry.pc_rdt) / 100;
|
entry.rendement = 0 # round(entry.valeur * float(entry.pc_rdt) / 100, 3)
|
||||||
request.dbsession.add(entry)
|
request.dbsession.add(entry)
|
||||||
return HTTPFound(location=request.route_url('portfolio'))
|
return HTTPFound(location=request.route_url('portfolio'))
|
||||||
else:
|
else:
|
||||||
@@ -289,10 +289,10 @@ def actif_edit(request):
|
|||||||
# raccourcir le libelle
|
# raccourcir le libelle
|
||||||
entry.libelle = entry.libelle.replace('UCITS ','')
|
entry.libelle = entry.libelle.replace('UCITS ','')
|
||||||
entry.libelle = entry.libelle.replace('World U','World')
|
entry.libelle = entry.libelle.replace('World U','World')
|
||||||
entry.valeur = float(entry.cours) * entry.parite * entry.nombre;
|
entry.valeur = round(float(entry.cours) * entry.parite * entry.nombre, 3)
|
||||||
entry.plus_value = entry.valeur - float(entry.pru * entry.nombre);
|
entry.plus_value = round(entry.valeur - float(entry.pru * entry.nombre), 3)
|
||||||
entry.pc_plusvalue = entry.plus_value / entry.valeur * 100;
|
entry.pc_plusvalue = round(entry.plus_value / entry.valeur * 100, 3)
|
||||||
entry.rendement = entry.valeur * float(entry.pc_rdt) / 100;
|
entry.rendement = 0 # round(entry.valeur * float(entry.pc_rdt) / 100, 3)
|
||||||
|
|
||||||
return HTTPFound(location=request.route_url('portfolio'))
|
return HTTPFound(location=request.route_url('portfolio'))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user