Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Calculo De Tir

Estas en el tema de Calculo De Tir en el foro de Visual Basic clásico en Foros del Web. Hola a todos... Voy a ser breve: tengo un proyecto en el cual calculo el flujo de caja de ciertas inversiones, para lo cual hay ...
  #1 (permalink)  
Antiguo 25/11/2005, 00:58
Avatar de ramoncito  
Fecha de Ingreso: febrero-2003
Ubicación: Viña del Mar
Mensajes: 224
Antigüedad: 21 años, 2 meses
Puntos: 10
Calculo De Tir

Hola a todos...

Voy a ser breve:

tengo un proyecto en el cual calculo el flujo de caja de ciertas inversiones, para lo cual hay que calcular la VAN (VNA EN EXCEL) y la TIR (TIR EN EXCEL), pero me he quedado pegado en la tir, para lo que tengo dos soluciones:

1:- buscar la forma de ocupar la tir que esta incorporada en el excel

2.- construir mi formula tir

para hacerla se supone


que tengo que hacer lo siguiente

VALOR = (TotAño1 / (1 + taza)^1) +(TotAño2 / (1 + taza)^2)+....

el problema es que tengo que ir moviendo la variable taza... hasta que valor sea 0 o muy cercano a 0, intente con ciclos while, pero es un fastidio para el procesador, según he leido esta formula tiene como base la teoria de la raices de newton o algo asi, leyendo eso medio escalofrios y espero que ustedes lo tomen como un gran desafio ya que a mi se me hizo dificil.

Gracias de Antemano
__________________
:pensando: Ramon Martinez... Chile :adios:
  #2 (permalink)  
Antiguo 25/11/2005, 12:41
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta

Cita:
Iniciado por ramoncito
Hola a todos...

Voy a ser breve:

tengo un proyecto en el cual calculo el flujo de caja de ciertas inversiones, para lo cual hay que calcular la VAN (VNA EN EXCEL) y la TIR (TIR EN EXCEL), pero me he quedado pegado en la tir, para lo que tengo dos soluciones:

1:- buscar la forma de ocupar la tir que esta incorporada en el excel

2.- construir mi formula tir

para hacerla se supone


que tengo que hacer lo siguiente

VALOR = (TotAño1 / (1 + taza)^1) +(TotAño2 / (1 + taza)^2)+....

el problema es que tengo que ir moviendo la variable taza... hasta que valor sea 0 o muy cercano a 0, intente con ciclos while, pero es un fastidio para el procesador, según he leido esta formula tiene como base la teoria de la raices de newton o algo asi, leyendo eso medio escalofrios y espero que ustedes lo tomen como un gran desafio ya que a mi se me hizo dificil.

Gracias de Antemano
La verdad q' no sé aún bien q' es lo q' hace el TIR de Excel, pero veré una forma, y si podrías explicarnos mejor...
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 25/11/2005, 14:06
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 3 meses
Puntos: 1
Si no me equivoco el chiste es encontrar el porcentaje más cercano que te de cero verda?

Yo lo que haría es un ciclo, así como vos lo hicistes inicialmente, en el cual al porcentaje, me imagino que tomas como porcetanje inicial la TREMA o TMAR, y le restaría millonésima (0.000001) por ejeplo y tomaria como la TIR el porcentaje que anterior un valor negativo.

Bueno creo que por haí va la idea, espero te sirva.

Saludes.
__________________
Leer es Saber, REEL.
Mi Blog
  #4 (permalink)  
Antiguo 25/11/2005, 17:45
Avatar de ramoncito  
Fecha de Ingreso: febrero-2003
Ubicación: Viña del Mar
Mensajes: 224
Antigüedad: 21 años, 2 meses
Puntos: 10
pero tienes que partir con un porcentaje alto, tu nosabes cuanto va a ser la tir... entonces tienes dos opciones partes con un porcentaje alto o partes desde 0, pero te imaginas la cantidad de ciclos, de 0.000001 a 100 no es muy saludable, y como decian la tir es :

VALOR = (TotAño1 / (1 + taza)^1) +(TotAño2 / (1 + taza)^2)+....

tengo que hacer que valor me de 0 o lo más cercano a 0 y para eso tengo que modificar la taza, que es un porcentaje...
__________________
:pensando: Ramon Martinez... Chile :adios:
  #5 (permalink)  
Antiguo 28/11/2005, 08:13
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 3 meses
Puntos: 1
Por eso te dije que tomes como referencia la TREMA, así no necesitaras un valor fijo.

Ahora ni te preocupes en lo de los ciclos, cuando dices que no es saludable me pareciera que estuvieras hablando de los procesadores 8086, pero ahora lo que tienes son precesadores de GHz así que no hay nada que temer.

No es nada complicado encontrar la TIR, si al hacer el calculo del valor por primeravez es positivo les resta o le sumas millonesimas a la TIR, la cosa es que se acerce al cero y cuando encuentres el valor más cercano a cero esa es la TIR. ¿como vas a saber que ese el valor más cercano a cero? sencillo tomas el valor previo de antes que cambiara de signo.
__________________
Leer es Saber, REEL.
Mi Blog
  #6 (permalink)  
Antiguo 31/12/2006, 11:34
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Calculo De Tir

Yo tengo el mismo problema para calcular la TIR, estoy implementando un simulador economico para proyectos de inversiones y mi tranque en como poder calcular la TIR, si alguno de ustedes sabe como hacerlo por favor digalo estoy desesperado, estaba pensando calcular en excel y importarlo a java pero no se pudo o no me resulto.
gracias de antemano por su ayuda.
Espero que me ayuden.
  #7 (permalink)  
Antiguo 17/01/2007, 15:01
 
Fecha de Ingreso: enero-2007
Mensajes: 4
Antigüedad: 17 años, 3 meses
Puntos: 0
Sonrisa Re: Calculo De Tir

Aqui les comparto una funcion que hice, funciona correctamente, compare resultados con la de excel... saludos

function tir($f0,$f1,$f2,$f3,$f4,$f5,$f6,$f7,$f8,$f9,$f10,$ taza){
$taza_ant=0;
$taza_ult=0;
$vpn=($f0)+($f1/(1+$taza))+($f2/pow((1+$taza),2))+($f3/pow((1+$taza),3))+($f4/pow((1+$taza),4))+($f5/pow((1+$taza),5))+($f6/pow((1+$taza),6))+($f7/pow((1+$taza),7))+($f8/pow((1+$taza),8))+($f9/pow((1+$taza),9))+($f10/pow((1+$taza),10));
echo $vpn."inicial <br>";

if ($vpn>0){
echo "entro";
for ($x=$taza;$vpn>0; $x+=.0001){
$vpn=($f0)+($f1/(1+$x))+($f2/pow((1+$x),2))+($f3/pow((1+$x),3))+($f4/pow((1+$x),4))+($f5/pow((1+$x),5))+($f6/pow((1+$x),6))+($f7/pow((1+$x),7))+($f8/pow((1+$x),8))+($f9/pow((1+$x),9))+($f10/pow((1+$x),10));
$taza_ant=$x-.0001;
$taza_ult=$x;
if($x>1){
$taza_ult="NA";
return $taza_ult;
}
echo $vpn."-".$x."<br>";
}
/*echo "taza anterior".$taza_ant."<br>";
echo "taza final".$taza_ult."<br>";*/
return $taza_ult*100;
}
else
{
for ($x=$taza;$vpn<0; $x-=.0001){
$vpn=($f0)+($f1/(1+$x))+($f2/pow((1+$x),2))+($f3/pow((1+$x),3))+($f4/pow((1+$x),4))+($f5/pow((1+$x),5))+($f6/pow((1+$x),6))+($f7/pow((1+$x),7))+($f8/pow((1+$x),8))+($f9/pow((1+$x),9))+($f10/pow((1+$x),10));
$taza_ant=$x+.0001;
$taza_ult=$x;

if($x<-1){
$taza_ult="NA";
return $taza_ult;

}
echo $vpn."-".$x."<br>";
}
/*echo "taza anterior".$taza_ant."<br>";
echo "taza final".$taza_ult."<br>";*/
return $taza_ult*100;
}

}//fin de la funcion
  #8 (permalink)  
Antiguo 17/01/2007, 15:10
 
Fecha de Ingreso: enero-2007
Mensajes: 4
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Calculo De Tir

Cita:
Iniciado por mike75 Ver Mensaje
Aqui les comparto una funcion que hice, funciona correctamente, compare resultados con la de excel... saludos

function tir($f0,$f1,$f2,$f3,$f4,$f5,$f6,$f7,$f8,$f9,$f10,$ taza){
$taza_ant=0;
$taza_ult=0;
$vpn=($f0)+($f1/(1+$taza))+($f2/pow((1+$taza),2))+($f3/pow((1+$taza),3))+($f4/pow((1+$taza),4))+($f5/pow((1+$taza),5))+($f6/pow((1+$taza),6))+($f7/pow((1+$taza),7))+($f8/pow((1+$taza),8))+($f9/pow((1+$taza),9))+($f10/pow((1+$taza),10));
echo $vpn."inicial <br>";

if ($vpn>0){
echo "entro";
for ($x=$taza;$vpn>0; $x+=.0001){
$vpn=($f0)+($f1/(1+$x))+($f2/pow((1+$x),2))+($f3/pow((1+$x),3))+($f4/pow((1+$x),4))+($f5/pow((1+$x),5))+($f6/pow((1+$x),6))+($f7/pow((1+$x),7))+($f8/pow((1+$x),8))+($f9/pow((1+$x),9))+($f10/pow((1+$x),10));
$taza_ant=$x-.0001;
$taza_ult=$x;
if($x>1){
$taza_ult="NA";
return $taza_ult;
}
echo $vpn."-".$x."<br>";
}
/*echo "taza anterior".$taza_ant."<br>";
echo "taza final".$taza_ult."<br>";*/
return $taza_ult*100;
}
else
{
for ($x=$taza;$vpn<0; $x-=.0001){
$vpn=($f0)+($f1/(1+$x))+($f2/pow((1+$x),2))+($f3/pow((1+$x),3))+($f4/pow((1+$x),4))+($f5/pow((1+$x),5))+($f6/pow((1+$x),6))+($f7/pow((1+$x),7))+($f8/pow((1+$x),8))+($f9/pow((1+$x),9))+($f10/pow((1+$x),10));
$taza_ant=$x+.0001;
$taza_ult=$x;

if($x<-1){
$taza_ult="NA";
return $taza_ult;

}
echo $vpn."-".$x."<br>";
}
/*echo "taza anterior".$taza_ant."<br>";
echo "taza final".$taza_ult."<br>";*/
return $taza_ult*100;
}

}//fin de la funcion
Perdon pero no me fije... esta funcion la hice en php, pero espero que cuando menos la idea les sirva para implementarla en visual, saludos
  #9 (permalink)  
Antiguo 14/03/2007, 10:42
 
Fecha de Ingreso: marzo-2007
Mensajes: 2
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Calculo De Tir

function tir($f0,$f1,$f2,$f3,$f4,$f5,$f6,$f7,$f8,$f9,$f10,$ taza)

en esta funcion que significan los $f0, $f1,$f2........

pòdrias aclarar ese punto.
  #10 (permalink)  
Antiguo 17/04/2007, 18:33
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 3 meses
Puntos: 11
Re: Calculo De Tir

esa funcion es muy limitada, no deberia llamarce funcion...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:00.