plotTitle = text =>html`<span class="plot-title-small">${text}</span>`;plotSubtitle = text =>html`<br><span class="plot-subtitle-small">${text}</span>`;
Esta simulação interactiva demonstra o funcionamento das contas margem tanto para compra com margem como para venda a descoberto.
Simulação Interactiva
Escolha a sua estratégia e mova a barra deslizante para ver como a evolução do preço das acções afecta a sua conta margem ao longo de 63 dias.
Note
Pressupostos:
Preço Inicial da Acção: $100
Número de Acções: 100
Requisito de Margem Inicial: 50%
Margem de Manutenção: 30%
Taxa de Juro Anual do Empréstimo (Compra com Margem): 8%
Juros sobre a receita da Venda a Descoberto: 0%
Dividendos da Acção: Nenhum
Horizonte Temporal: 63 dias (aprox. 3 meses)
Ano: 365 dias
viewof strategy = Inputs.radio(newMap([["Compra com Margem","Buy on Margin"], ["Venda a Descoberto","Short Sale"]]), {label:"Estratégia",value:"Buy on Margin"})viewof muInput = Inputs.range([0.07,0.25], {label:"Rendibilidade Esperada (anual)",step:0.01,value:0.10})viewof sigmaInput = Inputs.range([0.1,0.8], {label:"Volatilidade (anual)",step:0.05,value:0.4})viewof days = Inputs.range([0,63], {label:"Dia",step:1,value:0})
accountDataTidy = currentData.flatMap(d => [ {day: d.day,value: d.assets,type:"Activos"}, {day: d.day,value: d.liability,type:"Passivo"}, {day: d.day,value: d.equity,type:"Capital Próprio"}])priceDataTidy = currentData.flatMap(d => [ {day: d.day,value: d.price,type:"Preço da Acção"}, {day: d.day,value: d.callPrice,type:"Preço de Chamada de Margem"}])
Plot.plot({title:plotTitle("Preço da Acção e Limite de Chamada de Margem"),grid:true,color: {legend:true,domain: ["Preço da Acção","Preço de Chamada de Margem"],range: ["#2f71d5","#d00000"]},x: {label:"Dia",domain: [0,63]},y: {label:"Preço ($)",domain: [Math.min(...path.map(d => d.price), callPriceCurrent) *0.9,Math.max(...path.map(d => d.price), callPriceCurrent) *1.1]},marks: [ Plot.line(currentData, {x:"day",y:"price",stroke:"#2f71d5",strokeWidth:2}), Plot.line(currentData, {x:"day",y:"callPrice",stroke:"#d00000",strokeDasharray:"4",strokeWidth:1.5}), Plot.ruleX([days], {stroke:"gray",strokeDasharray:"4"}), Plot.dot(currentData.filter(d => d.marginCall), {x:"day",y:"price",stroke:"red",r:6,title:"Chamada de Margem"}), Plot.tip(priceDataTidy, Plot.pointerX({x:"day",y:"value",stroke:"type",title: d =>`Dia ${d.day}${d.type}: $${d.value.toFixed(2)}`})) ]})
Plot.plot({title:plotTitle("Evolução do Valor da Conta"),grid:true,color: {legend:true,domain: ["Activos","Passivo","Capital Próprio"],range: ["#2b8a3e","#c92a2a","#1c7ed6"]},x: {label:"Dia",domain: [0,63]},y: {label:"Valor ($)"},marks: [ Plot.line(currentData, {x:"day",y:"assets",stroke:"#2b8a3e",strokeWidth:2}), Plot.line(currentData, {x:"day",y:"liability",stroke:"#c92a2a",strokeWidth:2}), Plot.line(currentData, {x:"day",y:"equity",stroke:"#1c7ed6",strokeWidth:2}), Plot.ruleX([days], {stroke:"gray",strokeDasharray:"4"}), Plot.dot(currentData.filter(d => d.marginCall), {x:"day",y:"equity",stroke:"red",r:6,title:"Chamada de Margem"}), Plot.tip(accountDataTidy, Plot.pointerX({x:"day",y:"value",stroke:"type",title: d =>`Dia ${d.day}${d.type}: $${d.value.toFixed(2)}`})) ]})
Rendibilidade da Acção: Variação percentual diária: \((P_t - P_{t-1}) / P_{t-1}\). Recorde-se que a acção não paga dividendos nesta simulação.
Rendibilidade da Conta: Rendibilidade diária sobre o valor da conta: \((Equity_t - \text{PrevEquity}^*) / \text{PrevEquity}^*\), onde \(\text{PrevEquity}^*\) é o capital próprio no final do dia anterior mais qualquer depósito por chamada de margem.
Capital Próprio / Conta Margem: Reportado após a adição de qualquer depósito por chamada de margem para o dia.
Capital Próprio (pré-chamada): Capital próprio antes de qualquer depósito por chamada de cobertura da margem.
Nível de Margem (Compra):\(\frac{\text{Capital Próprio}}{\text{Valor de Mercado da Acção}}\).
Nível de Margem (Venda):\(\frac{\text{Capital Próprio}}{\text{Valor de Mercado da Acção}} = \frac{\text{Dinheiro Total} - \text{Valor da Acção}}{\text{Valor de Mercado da Acção}}\).
Margem Pré-chamada: Nível de margem antes de qualquer depósito por chamada de cobertura da margem.
Alavancagem: Tanto a compra com margem como a venda a descoberto são posições alavancadas, pelo que as rendibilidades da conta podem ser amplificadas em relação às rendibilidades da acção, aumentando tanto o potencial de ganhos como o risco de perda.