Mundo em Python

Margem de Segurança

#Margem de Segurança = (Preço Atual - Preço de Equilíbrio) / Preço Atual * 100
from tkinter import *
root = Tk()
root.geometry("450x400")
root.resizable(0, 0)
root.config(bg="#27299c")
root.title("Margem de Segurança")
#A Margem de Segurança mede a porcentagem pela qual o preço actual
# de uma ação ou investimento é inferior ao preço de equilíbrio
# ou valor intrínseco.

titulo = Label(text="Margem de Segurança",
font=("Arial", "25", "bold"),bg="#27299c",fg="#d9ead3")
titulo.place(relx=0.15, rely=0.05)
texto_sub1 = Label(text="Preço Actual :",
font=("Arial", "18", "bold"),bg="#27299c",fg="#d9ead3")
texto_sub1.place(relx=0.2, rely=0.3) texto_sub2 = Label(text="Preço de Equilíbrio :",
font=("Arial", "18", "bold"),bg="#27299c",fg="#d9ead3")
texto_sub2.place(relx=0.05, rely=0.45)
Preço_Actual = DoubleVar()
Preço_Actual_entrada = Entry(textvariable=Preço_Actual,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Preço_Actual_entrada.place(relx=0.6, rely=0.31, relwidth=0.33) Preço_Equilíbrio = DoubleVar()
Preço_Equilíbrio_entrada = Entry(textvariable=Preço_Equilíbrio,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Preço_Equilíbrio_entrada.place(relx=0.6, rely=0.46, relwidth=0.33) def limpar():
Preço_Equilíbrio_entrada.delete(0, END)
Preço_Actual_entrada.delete(0, END)
resultado.set("")
def app():
pa = Preço_Actual.get()
pe = Preço_Equilíbrio.get()
Margem_Segurança = (pa - pe) / pa * 100
if Margem_Segurança ==0:
mensagem = f'Margem de Segurança Nula.\n Significa que o preço actual do activo' \
f' \nestá em linha com o valor intrínseco ou de referência. '
elif Margem_Segurança < 0:
mensagem = f"Margem de Segurança Negativa ({Margem_Segurança} %).\n" \
f"Essa situação pode sugerir que o activo está \n" \
f"sobrevalorizado e pode não ser considerado\n" \
f" uma boa oportunidade de investimento."
else:
mensagem = f'Margem de Segurança Positiva ({Margem_Segurança} %). \n' \
f'Isso significa que o preço actual do activo\n' \
f' está abaixo do valor intrínseco ou de referência,\n' \
f'indicando uma oportunidade potencialmente favorável\n' \
f' para os investidores.'
resultado.set(mensagem)
but1 = Button(text="Calcular", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=app)
but1.place(relx=0.05, rely=0.6, relwidth=0.25, relheight=0.1)
but_limpar = Button(text="Limpar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=limpar)
but_limpar.place(relx=0.35, rely=0.6, relwidth=0.25, relheight=0.1) but_sair = Button(text="Sair", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=root.destroy)
but_sair.place(relx=0.65, rely=0.6, relwidth=0.25, relheight=0.1) resultado = StringVar()
resultado_texto = Label(textvariable=resultado,
font=("Arial", 12, "bold"), bg="#cfe2f3")
resultado_texto.place(relx=0.03, rely=0.75, relwidth=0.95,relheight=0.22)
root.mainloop()
0