viernes, 11 de julio de 2014

Consejos que le daría a un recién titulado informático (y otras especies)

Hace un par de años, en el entierro de la abuela unos tíos lejanos me comentaron que a la hija la habían matriculado en una titulación doble de Informática y Matemáticas, me preguntaron si tenía algún consejo que darle. Me pilló de sopetón, no me acuerdo exactamente que balbuceé (probablemente quedase un poco como un estúpido), pero básicamente que no se me ocurría nada.

Por supuesto hay docenas de consejos potencialmente útiles, pero mayoritariamente o son tópicos (piensa por ti mismo, no tengas miedo a cometer errores), o bien lo que vale para una persona y un entorno, puede no ser aplicable en otro (a unos hay que insistirles en hacer un trabajo de la mejor calidad posible, pero a un perfeccionista habría que sugerirle de terminar en un tiempo razonable, que no está tan mal y ya saldrá mejor la siguiente vez).

Hay libros de auto-ayuda que valen para la vida en general. Hay libros que hablan de la profesión de informático en particular (tengo en mis estanterías por ejemplo el "The Mythical Man Month" y "Peopleware"). Tengo mis dudas de si realmente me han servido (no tengo recuerdos de que me hayan "salvado la vida"), o quizás han sido causa de meterme en líos (sí que tengo recuerdos de haberme metido en discusiones, batallas perdidas, por tener una visión de las cosas distinta a mis jefes). Probablemente estas dudas son injustas (lo bueno y enriquecedor lo asumes como propio y normal, y te acuerdas sobre todo de los desacuerdos y los problemas). Desde luego mejor tener una cultura sobre los temas que nos conciernen.

Conoce tu entorno, pero el mundo no es como un libro de texto. Escribe para conocer mejor

Eres joven y estás lleno de energía. Quieres hacer muchas cosas y llegar rápido a tus objetivos. Paciencia. El mundo es como es, la gente es como es, tú eres como eres. Es inevitable que las decepciones lleguen. Antes de llegar a ningún sitio tienes que discernir tus prioridades, desarrollar habilidades y conocer el entorno en la medida de lo posible. No suele ser buena idea andar descalzo, con rumbo errático y sin darte cuenta de qué obstáculos hay ante tus pies.

Sin embargo el mundo no es como las Ciencias o las Humanidades que se enseñan en la escuela o incluso la universidad. En los libros de texto habitualmente todo se enseña como cierto e incontrovertible. En la vida real todo es más complejo. Hay muchas teorías distintas sobre distintos aspectos. Las dudas y discordancias son algo perfectamente normal. Igualmente los problemas que se te plantean no se parecen a los de los deberes. Aquí no hay un enunciado que te dé los datos que necesitas y solo los datos que necesitas. En la vida real darte cuenta de qué necesitas, y conseguirlo forma parte del problema. Igualmente no hay ninguna garantía de que cada problema tenga una (y solo una) solución correcta. Puede que con esfuerzo lleguemos a una respuesta y nos disguste cualquier resolución alternativa. Puede que el problema real consiste en saber hasta cuándo hay que seguir intentándolo. O cómo minimizar el daño de un problema sin solución.

No obstante para desenvolverse es necesaria cierta claridad de ideas, y saber expresarlas correctamente. A menudo pensamos que comprendemos la realidad y que nuestras ideas son buenas, pero cuando tratamos de expresarnos entonces nos hacemos un lío, cuando tratamos de ponerlo por escrito entonces nos asaltan las dudas. Puede que seamos torpes en expresarnos, pero debemos asumir que muchas veces la idea no se expresa bien porque sencillamente no se tiene en pie. Por el contrario si la idea es buena, escribir nos permite refinar nuestra explicación y dar con expresiones y ejemplos que funcionan mejor. Y también activa nuestra mente para descubrir otras ideas relacionadas con esta primera.

Aunque nos sorprenda muchas veces en una oficina de Ingeniería o en un despacho profesional, a menudo los grandes desafíos no son los técnicos, si no los problemas de comunicación y las concepciones erróneas. No es tanto resolver el rompecabezas si no conseguir las piezas necesarias. Saber expresarnos es importante no solo para poder informar y vender nuestro trabajo, si no para madurar nuestras ideas y algo muy importante: saber hacer las preguntas oportunas.

Por supuesto la mayor parte de lo que uno escribe es bazofia (a demasiadas cosas les falta un hervor, o son demasiado obvias, o demasiado retorcidas). No hay necesidad de exponer a los demás o exponerse uno mismo publicándolo. Yo acumulo estos escritos/borradores en carpetas por temática, pero considero seriamente que salvo cosas muy concretas debería ir todo a la papelera (lo importante es refinar la visión de la realidad, a posteriori todo el papel emborronado está lleno de bazofia e ideas asimiladas o superadas).

Busca trabajar con los mejores

Cuando empecé a trabajar tuve la suerte de aterrizar en una empresa (SICONET Ingenieros, hoy absorbida en Bull) donde el nivel técnico era muy bueno (casi todos buenos ingenieros informáticos). En un momento dado, tras tener mis más y mis menos hice una entrevista de trabajo en otra empresa y me cambié a Tecnocom (concretamente a Grupo CP-Getronics, que luego fue absorbida). Pensaba que al cambiarme a una empresa de mayor tamaño y donde mi perfil técnico sobresalía tendría más oportunidades de promocionar. No fue así. Ya el gerente cuando hablé con él antes de marchar me dijo que las cosas no funcionaban así.

Trabajar con los mejores te permite aprender más y mejor. Muy probablemente harás cosas más interesantes, generarás más valor y a la larga será mejor para tí. Trabajar con gente de menor nivel hará que aprendas menos (en Getronics había buenos cursos, pero normalmente no en lo que estaba concretamente trabajando), y que a menudo acabes gastando tiempo enseñando cosas básicas o discutiendo por tonterías (la infame discusión de la sentencia break=GOTO prohibidísimo en BBVA, que envenenó mi situación laboral ahí).

En todo caso ni hubo una oportunidad clara de promoción, y visto a posteriori es algo que probablemente tampoco me convenía (hay factores humanos que nunca se me han dado bien, la diferencia de dinero era irrelevante y me hubiera apartado de las cosas que me gustaban más). No siento que haya estado mal (quizás se me haya tratado incluso mejor de lo que merecía). Tan solo me hubiera gustado hacer cosas (a mi modo de ver) más interesantes.

Discierne lo necesario y hazlo de la manera más sencilla posible

A propósito de lo "avanzado" técnicamente, a menudo resulta difícil distinguir de las técnicas realmente útiles que nos facilitan la vida de las que no (por ejemplo informatizar para hacer exactamente lo mísmo que se hacía bien en papel o en una hoja de cálculo), o utilizar tal o cual tecnología porque es el último grito (por ejemplo allá por el 2000 el cliente descubrió que la aplicación servidor funcionaba mucho mejor sin EJB's). A veces piensas que vas a obtener avances útiles, pero solo encuentras el penúltimo canto de sirena.

jueves, 26 de julio de 2012

Dividendo elección: Guía para tontos (y no tanto)


Este es mi intento de ofrecer a los inversores unos consejos y fórmulas para que puedan discernir si elegir retribución en dinero o en acciones cuando se da la opción.
Ahora a los bancos (Santander), a las eléctricas, a la expoliada Repsol y otras empresas les da por ofrecer a los accionistas la posibilidad de cobrar el dividendo en acciones. Tratan de venderlo como una opción ventajosa, aunque en muchos casos (particularmente para los pequeños accionistas) no es así.
Las nuevas opciones de retribución (canje de derechos por acciones, venta de derechos no sometida a retenciones) suponen un diferimiento del pago de impuestos (no pagarás hasta que vendas las acciones), lo cual está bien si inviertes en un valor y lo mantienese hasta los restos, pero no interesa tanto si eres un "mete-saca" (que en seguida vas a sacar el dinero que metiste).

Evidentemente hay inversores familiarizados con la jerga de los mercados, y capaces de gestionar su patrimonio por sí mismos, y hay otros inversores menos especializados. Este artículo se estratifica en una primera parte para el "inversor novato"(en estos asuntos), y otras partes posteriores para quienes estén más interesados.

Aviso para foraneos: Este artículo se refiere al régimen del Impuesto de la Renta de las Personas Físicas vigente en España en 2012.

Reglas sencillas para el inversor novato

  • Si no llegas a cobrar 1500€ al año de dividendo (que es el límite exento), o si tu renta es muy baja (no llegas a cubrir el mínimo personal), lánzate a por la retribución en efectivo. Te retendrán el 23%, pero tendrán que devolvertelo al declarar el IRPF dentro de un año.
    • Excepcionalmente, si la bolsa subiera salvajemente (digamos un 30%), merecería la pena vender los derechos en la bolsa.
  • Si la acción está en pérdidas respecto a cuando la compraste (y no crees que vaya a recuperar el valor de compra en 5 años), y el valor de la acción no se ha hundido respecto al precio de referencia de la ampliación, entonces canjea por acciones o vende derechos al mercado (lo más sencillo es dejar que se canjeen automáticamente).
  • Si estás acostumbrado a que Hacienda te envíe el borrador de la declaración de IRPF, quizás deberías evitar vender derechos en bolsa (lo cual sucede por omisión con los derechos sobrantes en el canje). Lo malo de vender en bolsa, es que tienes "Ganancias y Pérdidas Patrimoniales", y entonces en muchos sitios deciden que tu declaración es demasiado complicada para hacerla gratis. O sea que o bien ordenas que se compren los derechos necesarios para canjear por una acción adicional, o bien te buscas un buen gestor.

Reglas para el inversor Friki

  • Dispón de tus inversiones correctamente contabilizada. Recuerdo que tengo unas maravillosas hojas de cálculo para este cometido.
  • Dispón de operativa por internet para la cuenta de valores. Verifica que puedes dar ordenes para las OPVs, canjes, etc. Tener una buena conexión de internet o un apaño con los vecinos se da por supuesto.
  • Dispón en una agenda de las fechas en las que se estima que se inicie el proceso de scrip dividend (Te deverían avisar por correo, pero a veces es como el "agua va").
  • Llegada la fecha, revisa el sitio web de la empresa para mirar las comunicaciones relativas al proceso. Interesan particularmente:
    • El "dividendo bruto": Si hay opción de retribución a un precio convenido.
    • La fecha límite para solicitar retribución en efectivo
    • La fecha límite para dar ordenes específicas de canje.
  • Al llegar el límite para la retribución en efectivo hay que decidir si es ésta la opción más ventajosa. Dependerá de cuántos dividendos cobres al año y de la evolución del precio de la acción (por ejemplo si ha caído a peso plomo desde la fijación del precio).
  • Si no solicitaste retribución en efectivo, básicamente deberás decidir si quieres vender los derechos en el mercado (puedes hacerlo incluso antes de la fecha límite para retribución), o si quieres canjear en acciones. Esta decisión acaba siendo una apuesta respecto a la evolución del precio de la acción (si el dinero está mejor invertido en el valor, o hay alguna opción o necesidad que lo merezca más).
  • Anota religiosamente en la hoja de cálculo los datos concretos de la operación en cuanto los resguardos estén disponibles. Verifica que en tu agenda está anotada la fecha prevista para la siguiente ampliación.

Fórmulas para estimar el rendimiento

  • Económicamente debemos optar por la opción cuyos flujos de capital actualizados, considerando impuestos y comisiones, reporten mayores beneficios.
  • En el caso de la retribución en efectivo/dividendo, obtenemos un cobro inmediato (el importe bruto menos la retención fiscal (23%)) y un cobro diferido (devolución de lo retenido en exceso en la liquidación del IRPF).
  • En el caso de  vender los derechos/scrip en el mercado (por no haber opción de canje a precio convenido, o porque éste no es ventajoso), el valor de los derechos se cobra sin retenciones. Cuando se vendan las acciones en un futuro, el valor cobrado incrementará las ganancias patrimoniales a declarar, y se pagará por ellas al tipo fiscal de las rentas del ahorro (23%).
  • En caso de canjear acciones, momentáneamente no se recibe ningún flujo, pero cuando se vendan las acciones, se cobrará una cantidad adicional por las acciones adicionales, y se pagarán impuestos por estas acciones como si hubieran sido adquiridas a precio cero.
  • A nivel contable las cosas no son estrictamente así, pero lo que busco es un modelo sencillo para este caso, con resultados correctos.
  • Definiendo parámetros y datos de ejemplo a la vez:
    • Supongamos el Dividendo elección de Santander de julio de 2012. La media del precio de cotización utilizada como referencia (PreCot) fue de 5,007€. A partir de ahí se fijó un canje de 1 acción nueva por cada 32 antiguas, y un precio acordado de canje del derecho de 0,152€
    • A modo de referencia, a 26 de julio la acción estuvo cotizando a 4,16€ y el derecho a 0,130€.
    • Supongamos que soy un inversor de "buy and hold" y que no tengo intención de vender las acciones mientras confíe en la capacidad del banco para generar valor, y en su equipo gestor. Supongamos que no venderé las acciones hasta dentro de 5 años (como podría decir 10), y que espero un rendimiento sobre inversiones (RI) del 7%.
    • Supongamos que actualizo los flujos de capitales futuros según valor actual = valor futuro * (1 + RI)-t. Donde t es el diferimiento (en años) del flujo futuro.
    • Supongamos que la liquidación de impuestos se hace un año después de la operación realizada.
    • Llamemos Y (yield) al rendimiento neto actualizado, ret a la proporción sobre ingresos de retención fiscal (23%), ImpY a la proporción de impuestos sobre rendimientos (0%,21%,23%), y ImpG a la proporción de impuestos sobre ganancias.
    • Llamemos GY (gross yield) al precio acordado (0,152€), SMV (Scrip Market Value) al valor de venta de los derechos/scrip (0,130€).
  • De esta manera para el cobro en efectivo del precio convenido:
    • Ydiv = GY * ( (1-ret) + (ret-ImpY)/(1+RI) )
  • De esta manera para la venta de derechos/scrip:
    • Yscrip = SMV * (1 - (impG / (1+RI)(T+1)) )
  • Para el caso de canje de derechos por acciones utilizamos la fórmula de la venta de derechos
    • Para hacer un cálculo más riguroso deberíamos diferenciar el interés de la inversión (RI) del interés de actualización (RA, que debería ser ligeramente inferior a RI por los impactos fiscales).
    • Así Y = SMV * ( ((1+RI)/(1+RA))T - (impG*(1+RI)T / (1+RA)(T+1) )
    • Esta fórmula con los valores debidamente ajustados debe dar un valor clavado al caso de venta de derechos. La cuestión acabará dependiendo de si creemos que el dinero está correctamente reinvertido en el valor (Santander), o si preferimos canjearlo.
  • Así con el ejemplo planteado
    • Por cobrar al precio convenido obtendré:
      • Para imp_Y=0%: Y=0,152* (,77 + ,23/1,07) = 0,1497€
      • Para imp_Y=21%: Y= 0,152* (,77 + ,02/1,07) =0,1199€
    • Por vender o canjear a precio de mercado obtendré:
      • Y=0,130*(1- 0,23/(1,07^5))=0,1087€
      • Si el valor de mercado se hubiera mantenido en línea con el valor convenido:
        Y=0,152*(1- 0,23/(1,07^5))=0,1271€
    • Así en este caso resulta preferible vender a Santander al precio convenido (por particularidades fiscales, y si no por la bajada de la cotización durante el desarrollo de la ampliación.
    • Hubiera sido interesante el canje (con los parámetros de rentabilidad y tiempos utilizados) si no estuvieramos exento de las rentas de dividendos, y si el valor se hubiera mantenido o hubiera subido

 Consideraciones variadas

  • Amortización del valor de compra:
    • Al vender derechos amortizamos el importe correspondiente del valor de compra.
    • Entiendo que tiene que trascurrir bastante tiempo antes de amortizar por completo.
    • Si se llegase a amortizar por completo, entonces deberíamos pagar por los ingresos adicionales como rendimientos de capital mobiliario.
    • Si tenemos diversas posiciones del valor adquiridas a distintos precios puede suceder que unas posiciones estén amortizadas y otras no. Si tenemos que individualizar por qué posiciones tenemos que pagar y por cuáles seguimos amortizando, puede ser farragoso.
    • Entiendo que este escenario podría requerir hojas de cálculo adaptadas: En las que yo utilizo el valor de compra se volvería negativo.
    • La amortización completa de una posición reduce el diferimiento fiscal (no habrá retención, pero se liquidará la renta al año siguiente). Canjear por nuevas acciones sigue manteniendo todo el diferimiento fiscal (no declaras hasta la liquidación posterior a la venta).
  •  Posiciones en pérdidas
    • Desde 2008 casi todos los valores han bajado de cotización. Así por ejemplo las acciones de Santander que valían alrededor de 13€ por entonces, hoy valen poco más de 4,15€. Es frecuente que quien tenga que hacer ventas en estos tiempos, lo haga con pérdidas.
    • Puede que la acción esté tan devaluada que resulte poco plausible que recupere los precios de compra en un tiempo razonable. Esta recuperación puede ser  incluso ralentizada por muchos inversores "atrapados" que venderán en cuanto la cotización alcance su precio de compra. Por otro lado están los inversores que querrán subirse al carro del mercado alcista (y ocasionarán una subida imparable). Es una incógnita si la recuperación será exasperantemente lenta, o si será veloz y dejará fuera a quienes se lo piensen más de la cuenta.
    • En el caso de valores en pérdidas, cada euro que se deja de perder es un euro sin carga fiscal. A la hora de calcular el rendimiento actualizado (Y), no habría que computar la liquidación fiscal final.
    • En tal caso (pérdidas), salvo que el valor de la acción se haya hundido respecto al precio de referencia de la ampliación, será preferible vender derechos al mercado o canjear por nuevas acciones (el rendimiento a Ganancias y pérdidas patrimoniales).
    • Conviene observar que fiscalmente el precio de compra de las acciones se reducirá, de modo que si dejamos de estar en pérdidas antes.
    • Conviene observar que mientras que el precio de compra disminuye proporcionalmente en caso de canje (acciones previas/acciones posteriores), en caso de venta de scrip disminuyen según el precio de venta del scrip.
      • En el caso de que las acciones fueran compradas a precios más caros, entonces el precio disminuirá más ampliando el número de acciones. Por otro lado si vendemos scrip y compramos acciones, éstas estarán más rápidamente en ganancias.
  • Gestión activa
    • Hacer uso de las "comodidades" de reinversión ofrecidas, aunque permita reinvertir tu dinero inmediatamente, y con comisiones menores (depende del caso), te obligan a "moverte con el rebaño", que puede seguir patrones de conducta predecibles y explotables por otros inversores.
      • Por ejemplo: Si una ampliación tiene un efecto negativo en la acción (por ejemplo por los inversores que venden los derechos o las nuevas acciones), otros inversores pueden vender anticipadamente sus acciones y derechos (acentuando la bajada) y comprar acciones nuevas baratas a las "ovejas" espantadas.
    • Independientemente de la supuesta predecibilidad del "rebaño" (la acción no siempre baja durante la operación), un inversor puede preferir tener las manos libres para invertir el dinero en el valor que le parezca en el momento que le parezca.
    • Invertir incluso en otros valores puede ser interesante, no solo por diversificar, si no por optimización fiscal (mejorar la probabilidad de tener valores en ganancias que se puedan compensar con los que están en pérdidas).
    • Por otro lado, hipotéticamente podrían suceder desajustes entre el precio del scrip, y el de la acción subyacente. Así, podría merecer la pena comprar scrip con el dinero de vender acciones, o viceversa. No obstante, cabe esperar que el trading automático rápida e inexorablemente suprima cualquier diferencia sustancial.
      • Por si hubiera alguna tentación: No es viable comprar scrip barato para canjearlo al precio convenido: La empresa no canjea al inversor más derechos que los que le asignara inicialmente. 
P.D. (2012-07-29): A día 27 la acción de Santander cerró a 4,78€ y el scrip a 0,149€. Según el valor de mercado, el ratio de acción/scrip es de 32,08 (el factor de conversión es de 32, la desviación fue de un 0,25%, de modo que aparentemente los agentes estabilizadores actuaron eficazmente). El valor ha repuntado espectacularmente después de que M.Draghi insinuase que el BCE auxiliaría a la Deuda española. El valor casi ha recuperado la cotización de referencia. El Yield por acción para scrip y canje del ejemplo quedaría en 1,2457€. A los inversores que pagan IRPF (21 o 23%) por dividendos, y que hubiran solicitado el precio prefijado por acción, parece que no les ha salido bien la jugada.

sábado, 7 de julio de 2012

Hancock y Balística

Esta semana, rememorando la escena de Hancock en la que le dice al gallito(bully) Michel "Llamame capullo una vez más"(Call me asshole one more time), me encontré con la siguiente pregunta: ¿Es realmente posible lanzar personas de esa manera?


Desde luego no soy la primera persona en comentar sobre ese asunto. Ya en 2009 en http://scienceblogs.com/dotphysics/2009/06/29/hancock-throws-a-boy-not-nice/ comentaban sobre el asunto (está realmente currado, me quito el sombrero Rhett). En un principio, si el crío tarda en caer 23 segundos, con simple Cinemática obtenemos que la velocidad de lanzamiento y aterrizaje sería de unos 113 m/s (406 km/h), y que alcanzaría una altitud de 649 metros (algo más que el edificio Burj Khalifa, u otros rascacielos en 2012).

Si adicionalmente utilizamos las fórmulas de fuerza de arrastre al uso, obtenemos que el "cuerpo" debería ser lanzado a unos 400 m/s (1440 km/h, Match 1.2), ascendería durante casi 8 segundos hasta una altura de casi 600m (más que cualquier rascacielos existente antes de 2010), y caería durante 15 segundos aproximándose a su velocidad terminal (unos 54 m/s). La fórmula al uso (tomada de http://en.wikipedia.org/wiki/Drag (physics)) es algo como Fdrag=.5*ρ*A*Cd*v2, donde ρ es la densidad del aire, A es el área proyectada del cuerpo, Cd es el coeficiente de arrastre del cuerpo, y v es la velocidad relativa del cuerpo. No obstante todo esto son bonitas aproximaciones: No se puede esperar que los resultados sean exactos, pero probablemente explican bien a rasgos generales el vuelo de un proyectil.

Independientemente de estas precisiones, y salvo que Michel fuera acelerado y frenado por telekinesis, tenemos un gallito muerto tres veces: en el lanzamiento (unos 5000 Gs +z), en el "choque" inicial contra la atmósfera (55 Gs -z) y en la captura (190 Gs -x).

Independientemente del artículo anterior he intentado establecer fórmulas que relacionaran la velocidad inicial, la altura alzanzada, la duración del trama ascendente y descendente. Para ello he estado unas cuantas horas cavilando y haciendo integrales con papel y lápiz y me he dado por vencido. Me he pasado al método de cálculo iterativo: Calculas los valores para t=0, y vas recalculando los valores para ti+1=ti+Δt hasta completar la simulación. Supongo que no hay ningún "deshonor" matemático en ello, ya que precisamente los ordenadores fueron utilizados en sus primeros tiempos para calcular trayectorias de misiles (claro que en esos casos hay factores como la variación de la densidad del aire o del comportamiento aerodinámico, o la fuerza de Coriolis que complican más el asunto).

Ya puestos, una vez visto que mis resultados eran congruentes con los de scienceblogs, he incorporado el concepto de ángulo de lanzamiento y de desplazamiento horizontal.Una primera aproximación ofrecía resultados parecidos a los del artículo de scienceblogs mencionado. Ya puestos he modificado para calcular la trayectoria de proyectiles lanzados a distintas alturas y con distintos ángulos. Éste sería el programa Java:
   1 package formulas.incremental;
   2 
   3 /**
   4  * Ballistic calculations for a projectile subject to gravity and Quadratic drag.
   5  * Some interesting information about drag and speed: http://en.wikipedia.org/wiki/Terminal_velocity ,
   6  * http://en.wikipedia.org/wiki/Drag_%28physics%29 , 
   7  * 
   8  * @author Javier Aranda (javier-aranda.com)
   9  * License CC BY-SA
  10  */
  11 public class Ballistic2 {
  12     // K-drag such as gravity = K / (terminal velocity)^2, as (rho * A * C_d)/(2*mass) in Rayleigh drag equation.
  13     public static final double K_DRAG_SKYDIVER = 3.365e-3; // for Terminal V.=54m/s
  14     public static final double K_DRAG_BULLET308 = 1.211e-3; // for TV=90m/s
  15     public static final double GRAVITY = 9.81; // m/s^2
  16     
  17     public static final double ELEVATION_ZENIT = Math.PI / 2;
  18     public static final double ELEVATION_45D = Math.PI / 4;
  19 
  20     public static final double DELTA_TIME = 1e-4; // How little the time slice is.
  21     
  22     // Positions in artillery shot result
  23     public static final int ASR_X=0;
  24     public static final int ASR_Z=1;
  25     public static final int ASR_T=2;
  26     public static final int ASR_IV=3; // Impact velocity
  27     public static final int ASR_IA=4; // Impact angle
  28     
  29     public static double[] artilleryShot(double v0, double elev, double z0, double kdrag) {
  30         double[] results = new double[5];
  31         boolean reachedApogee = false;
  32         boolean reachedGround = false;
  33 
  34         double tCurrent = 0;
  35         double xCurrent = 0;
  36         double zCurrent = z0;
  37         double vCurrent = v0;
  38         double vxCurrent = v0 * Math.cos(elev);
  39         double vzCurrent = v0 * Math.sin(elev);
  40         double axCurrent,azCurrent;
  41         while(!reachedGround) {
  42             // Drag and acceleration calculated over previous iteration
  43             double dragOverSpeed = kdrag * vCurrent;
  44             axCurrent = - dragOverSpeed * vxCurrent;
  45             azCurrent = - GRAVITY - dragOverSpeed * vzCurrent;
  46             
  47             tCurrent += DELTA_TIME;
  48             xCurrent += (.5 * axCurrent * DELTA_TIME + vxCurrent) * DELTA_TIME; // 1/2*a*t^2 + v*t
  49             zCurrent += (.5 * azCurrent * DELTA_TIME + vzCurrent) * DELTA_TIME;
  50             vxCurrent += axCurrent * DELTA_TIME;
  51             vzCurrent += azCurrent * DELTA_TIME;
  52             vCurrent = Math.sqrt(vxCurrent*vxCurrent + vzCurrent*vzCurrent);
  53 
  54 //          if (tCurrent % 0.5 < DELTA_TIME) {
  55 //              System.out.printf("(debug)@ t=%3.2f, ax=%3.1f, az=%3.1f, vx=%3.1f, vz=%3.1f, v=%3.1f, x=%3.1f, z=%3.1f\n",
  56 //                      tCurrent, axCurrent, azCurrent, vxCurrent, vzCurrent, vCurrent, xCurrent, zCurrent);
  57 //          }
  58 
  59             // Find out about apogee and grounding
  60             if (reachedApogee) {
  61                 if (zCurrent <= 0.0) {
  62                     reachedGround = true;
  63                     results[ASR_T] = tCurrent;
  64                     results[ASR_X] = xCurrent;
  65                     results[ASR_IV] = vCurrent;
  66                     results[ASR_IA] = Math.asin(vzCurrent / vCurrent);
  67                 }
  68             } else {
  69                 if (vzCurrent < 0.0) {
  70                     reachedApogee = true;
  71                     results[ASR_Z] = zCurrent;
  72                 }
  73             }
  74         }
  75         return results;
  76     }
  77     
  78     /**
  79      * Some test scenarios. Not worth JUnit for drafting?
  80      * @param args
  81      */
  82     public static void main(String[] args) {
  83         try {
  84             Object[][] scenarios = {
  85                     // { "Title", v0, elevation angle, z0, kdrag}
  86                     {"Hancock throws bully", 400.0, ELEVATION_ZENIT, 0.0, K_DRAG_SKYDIVER}, // http://www.youtube.com/watch?v=IzmLFEC014A 
  87                     {"Portal-diver", 54.0, ELEVATION_ZENIT, 0.0, K_DRAG_SKYDIVER}, // http://vimeo.com/43800150
  88                     {"Level bomber", 200.0, 0.0, 10000.0, K_DRAG_BULLET308 / 2},
  89                     {"Machine gun 45º", 860.0, ELEVATION_45D, 0.0, K_DRAG_BULLET308},
  90                     {"Machine gun 30º", 860.0, Math.toRadians(30), 0.0, K_DRAG_BULLET308},
  91                     {"Machine gun 15º", 860.0, Math.toRadians(15), 0.0, K_DRAG_BULLET308},
  92                     {"Machine gun  ", 860.0, Math.toRadians(5), 0.0, K_DRAG_BULLET308},
  93                     {"Machine gun  ", 860.0, Math.toRadians(2), 0.0, K_DRAG_BULLET308},
  94                     {"Machine gun  ", 860.0, Math.toRadians(1), 0.0, K_DRAG_BULLET308},
  95                     {"Machine gun close range", 860.0, Math.toRadians(0.1), 0.0, K_DRAG_BULLET308},
  96             };
  97             for (Object[] scenario : scenarios) {
  98                 double[] result = artilleryShot((Double)scenario[1], (Double)scenario[2], (Double)scenario[3], (Double)scenario[4]);
  99                 System.out.printf("Scenario %s: t=%3.2f, apogee=%3.1f, x=%3.1f, impact=%2.1f,%2.1fº\n",
 100                         scenario[0], result[ASR_T], result[ASR_Z], result[ASR_X], result[ASR_IV], result[ASR_IA] * (180/Math.PI));
 101             }
 102         } catch (Exception e) {
 103             e.printStackTrace();
 104         }
 105     }
 106 }
 107 
Los resultados de prueba son los siguientes:
Scenario Hancock throws bully: t=22,77, apogee=597,8, x=0,0, impact=53,5,-90,0º
Scenario Portal-diver: t=9,17, apogee=103,0, x=0,0, impact=38,2,-90,0º
Scenario Level bomber: t=89,81, apogee=10000,0, x=2525,6, impact=127,3,-89,9º
Scenario Machine gun 45º: t=30,25, apogee=1173,1, x=2093,0, impact=87,1,-83,0º
Scenario Machine gun 30º: t=23,43, apogee=748,3, x=2338,0, impact=82,7,-74,9º
Scenario Machine gun 15º: t=15,03, apogee=317,4, x=2250,3, impact=76,1,-52,7º
Scenario Machine gun  5º: t=7,29, apogee=72,2, x=1770,5, impact=104,0,-17,4º
Scenario Machine gun  2º: t=3,80, apogee=18,9, x=1322,0, impact=173,9,-5,4º
Scenario Machine gun  1º: t=2,23, apogee=6,4, x=992,3, impact=258,7,-2,2º
Scenario Machine gun close range: t=0,29, apogee=0,1, x=218,9, impact=659,8,-0,1º
Los resultados son más o menos congruentes con la realidad. Las bombas, aun lanzadas horizontalmente caen verticalmente y las balas (7,62 OTAN) desde larga distancia tienen poca energía cinética y asustan más que matan. Resulta llamativo (pero tiene sentido) cómo un proyectil lanzado a 45º de elevación tiene menos alcance que los lanzados a 30 o a 15, y sin embargo llega al suelo con mayor velocidad.

P.D (2012-07-27): Respecto a la tolerancia del ser humano a las aceleraciones, la tabla mostrada en scienceblog puede que no sea del todo correcta Según Wikipedia, el coronel John Stapp experimentó aceleraciones horizontales de hasta 45 G (mayores que las de la tabla, pero inferiores a las de la ficción). Se indica que a consecuencia de estos experimentos sufrió diversos traumas y desprendimiento de retina.

martes, 26 de junio de 2012

Informática y Sindicalismo

Me ha llegado a través de la lista de la universidad un comunicado de la CGT, planteando una movilización de Informáticos el 30 de junio (próximo sábado). El autor (Juan José Laplana Rodriguez) dice así:


Estimados profesores :
Como ex-alumno y profesional del sector informático, pongo en vuestro conocimiento la convocatoria de una manifestación del sector informático el día 30 de Junio en Zaragoza, Barcelona y Madrid.  Os escribo con la esperanza de que difundáis en la medida de lo posible esta convocatoria entre vuestros colegas y alumnos.
En la parte que me toca, durante 12 años he sido testigo de una degradación progresiva en las condiciones laborales de los profesionales informáticos. Tanto es así que en algunas empresas los salarios se aproximan cada vez más al salario mínimo y las condiciones materiales del trabajo se ven cada vez más empobrecidas.
La deslocalización y cosificación en las grandes empresas se sufren a diario, mientras que las pequeñas violan a menudo las más elementales regulaciones laborales.
Todo esto viene acompañado además de una desmovilización histórica del sector y la falta total de autoidentificación con la profesión, males endémicos en los que todos tenemos parte.

Por la parte que os toca como docentes cabe preguntarse ¿Qué futuro espera a nuestras nuevas generaciones de profesionales? ¿Con qué esperanzas afrontarán el futuro?
Como dice la convocatoria, no es difícil comprender a dónde nos lleva la actual dinámica. Si no lo remediamos, los actuales estudiantes sufrirán condiciones todavía más precarias a pesar de tener conocimientos cada vez más especializados y técnicos. Hoy en día existen ya apenas dos alternativas : la emigración o precariedad absoluta.


Facilitan los siguientes enlaces:
http://informatica30j.wordpress.com/
http://www.facebook.com/events/331343793626386/

Desde mi punto de vista

* Comparto la preocupación de los sindicatos, y algunas consideraciones, pero no puedo compartir las ideas de extorsionar (huelgas) o de demandar leyes proteccionistas. Abusos "haberlos haylos" (aunque quizás soy tan afortunado que a mí sí que me han pagado las horas extras, y las noticias que he recibido de abusos laborales de terceros han sido muy excepcionales). Pero estos abusos en parte vienen propiciados por una protección del trabajador mal entendida, y el falso sentimiento de seguridad de pensar que el sistema laboral vela por nosotros. Es un hecho que a los trabajadores en general les acaba yendo mejor en los países con un mercado más liberal (¿A dónde se van los emigrantes?) que en aquellas fruto de políticos a quienes se les llena la boca de cuánto defienden a los trabajadores.
* La actual movilización viene muy a continuación de las movilizaciones de otros sectores (como la Sanidad o la Educación), movilizaciones fuertemente politizadas (a mi entender).
** Esto hace la movilización de informáticos sospechosa de estar en el mismo marco de echar un pulso inoportuno y desleal al gobierno que hace relativamente poco (pasado Noviembre-Diciembre) nos hemos dado los españoles.
** Movilizarse en un momento de saturación de la opinión pública tiene un impacto mínimo.

¿Y qué es lo qué propongo?

* Hay que observar y reflexionar cuanto sea posible, ponerse en los zapatos de unos y de otros. No hay que esperar llegar a una visión clarividente (y si se llega, mala señal). Por lo menos hay que ser capaz de colocarse sobre ciertos maniqueismos como el "trabajador-bueno, empresario-malo".
* Hay que esforzarse por ser más productivos, buscar nuevas formas de generar valor, y vendérselo mejor a los patronos (gestores y clientes). Eso a parte de ser mejor para la sociedad en su conjunto, aumenta el interés en producir más puestos de trabajo y mejor cualificados.
* Hay que tratar de evitar intermediarios (consultoras, empresas de servicios, cárnicas, o como se les quiera llamar) si estos no nos reportan nada.

Reflexiones sobre el negocio

No sé hasta que punto viene a cuento de lo anterior. Propongo antes que debemos "observar y reflexionar cuanto sea posible". Conocer la naturaleza del negocio ayuda a tomar las decisiones correctas, también a la hora de defender nuestros derechos como trabajadores.

La informática es un trabajo creativo

* En Informática pasamos la mayor parte del tiempo solucionando problemas en los sistemas que construimos y mantenemos. No es un trabajo mecánico como fabricar tornillos. No es escribir tantas líneas de código a tantas líneas a la hora. Los problemas son heterogéneos, y deben abordarse y solucionarse uno por uno. Si fuera algo repetitivo habríamos hecho un script para solucionarlo.
* La diferencia de productividad entre un trabajador bueno y uno mediocre es sustancial. No solo es la diferencia entre que un problema se resuelva a tiempo o no. Un trabajador excepcional puede incluso optimizar los procesos e inspirar y asistir a los compañeros.
** Un buen patrón lo sabe, y estará dispuesto a pagar bastante por un trabajador que dé la talla. No obstante puede tener expectativas de que el trabajador se conforme con menos, o puede que el trabajador no pueda demostrar convenientemente sus cualidades.
* Si estamos haciendo un trabajo de buena calidad, es posible que el patrón no lo sepa si no lo "vendemos". No es cuestión de andar atosigando, pero al menos debemos tener buenas consciencia, y poder expresar bien, de qué asuntos son los que nos consumen más tiempo, cuáles valora más el cliente, y qué cosas diferentes hacemos que estén bien y por qué.
** En este sentido, puede fácilmente suceder que un trabajador excepcional y centrado en su tarea tenga menos reconocimiento que un trabajador mediocre que (tal vez a causa de ello) esté más volcado en vender su producto. No puedo repetirlo suficientes veces, ya que los informáticos tendemos a ser introvertidos, olvidar estos aspectos, y luego lamentarnos por los agravios comparativos.

Los intermediarios (consultoras)

* Los intermediarios se encargan de vender nuestro trabajo a clientes a los que supuestamente  nosotros no podríamos llegar en condiciones adecuadas, y a veces generar algún valor añadido para trabajadores y clientes (formación, garantías, etc). En este sentido no suena mal, pero aparentemente se podrían estar llevando un margen importante por un trabajo prescindible.
* En mi experiencia, del total que cliente (por ejemplo BdE) pagaba en bruto, Getronics me pagaba aproximadamente la mitad en salario bruto, cursos, etc. Ese 50% que se quedaba la empresa no era limpio, si no que tenía que pagar a la seguridad social (un 33% sobre el salario bruto, del que no se nos suele comentar nada a los asalariados) y quizás otras cosas. Contando los impuestos que yo pagaba, a grosso modo el Estado, Getronics y yo nos llevábamos cada uno un tercio de lo que el cliente pagaba por mi trabajo. Posiblemente no fuera lo más justo, pero no sentía que el problema me atenazara, ni se me ocurría nada mejor que hacer al respecto.
* ¿Es la culpa de la rigidez laboral? Tras lo anterior (contratar a través de una consultora supondría un sobrecoste de un 50% de lo que costaría contratar directamente al trabajador en condiciones iguales). ¿Qué es lo que impide que la empresa contrate directamente a los trabajadores que necesita? A falta de respuestas autorizadas, creo que es por la rigidez laboral (a pesar de que posiblemente le saldría más rentable a la empresa despedir por el máximo de 45 días por año (sobrecoste del 11%) que rescindir la subcontrata). El resto de opciones que se me ocurren no son mejores. Si alguien quiere ilustrarme al respecto le quedo muy agradecido.
** ¿Seleccionan las consultoras mejor a los trabajadores? He visto perfiles de los sustitutos que mi empresa proponía para sustituirme, y era descorazonador (gente con una preparacion técnica deficiente), y aunque la mayor parte de los compañeros que he tenido a lo largo de años era gente bastante competente, también me he tenido que copar con un par de completos inútiles. El hecho es que las consultoras (ya sea premeditadamente, o porque no les queda otra) intentan colar perfiles flojos en los proyectos.
** ¿Tratan las consultoras mejor a los informáticos? Parcialmente: Getronics tenía una cartera de cursos técnicos disponible para los empleados que hubieran sido inimaginables en cualquier cliente. No obstante teníamos que ir a los cursos después del trabajo, y estos cursos tampoco te convierten en un experto. En realidad si en una empresa seria es justificable que los empleados reciban un curso de algo, lo reciben en horas de trabajo. Para otros servicios (por ejemplo la asistencia médica, o los comedores), los desplazados a cliente inevitablemente eramos algo así como unos empleados de segunda clase.
** ¿Las consultoras permiten flexibilidad? Posiblemente, pero esa flexibilidad no suele ser apetecible. Hay consultores con una movilidad muy elevada, pero la mayor parte de los informáticos subcontratados que conozco lleva un tiempo considerable en el mismo cliente: enganchando un proyecto con otro, o en un contrato de mantenimiento. Posiblemente los propios clientes no verían con buenos ojos si la empresa consultora tratase de cambiarle un empleado que conocen y que está adaptado a sus tecnologías y modos de trabajar por otro trabajador distinto.
** ¿Trabajan mejor los informáticos estando "puteados"? Puede parecer una cuestión muy atrevida, pero quizás podríamos hablar de un síndrome de la "vaca sagrada", de un empleado que se volviera escaqueado y respondón por ser "fijo". O cabría pensar que el exceso de dinero puede echar a perder a quien no sabe controlar sus apetitos. También el estrés permite esfuerzos adicionales y agudiza el ingenio. Esto es más fácil con trabajadores en precario que con trabajadores asentados. Todo esto es perverso y acaba siendo contraproducente. Las ñapas de las dos de la mañana son una bomba de relojería (bugs), y aunque algunas personas funcionen mejor en un entorno de abuso moderado, no es la mejor manera de atraer buenos trabajadores, ni de retener a los que tienen mejores alternativas.

* Las consultoras introducen conflictos de intereses en los proyectos: A un trabajador puede que no vele por el mejor interés del cliente cuando entran en liza los intereses de la consultora. En caso de distintas consultoras en el mismo cliente, incluso en el mismo proyecto, favorecer y encubrir a los propios frente a la competencia puede ser cuestión de supervivencia.
* Una duda que tengo es si sería leal o aceptable, estando trabajando en un cliente a través de una consultora, proponer que le contratasen a uno directamente.
** A este respecto, hay casos (como BdE) donde la contratación ha de pasar por unos procesos de selección rigurosos (donde en tiempos se presentaban 50 personas plenamente cualificadas por cada plaza) que en absoluto garantizan que se seleccionase al favorito. Convertir una plaza de trabajador externo en empleado de pleno derecho podría no ser una buena idea para ninguna de las partes.
** Como alternativa, quizás uno podría trabajar como autónomo, pero no sé exactamente cómo funcionarían las cosas en ese caso (posiblemente, de nuevo hubiera concursos y trámites que dificultarían la contratación discrecional).
* A la hora de negociar nuestras condiciones (ya sea o no con las consultoras), es conveniente "estar en el mercado", que puedan saber con facilidad que tenemos nuestro currículum al día y que no tenemos problema en cambiar de empresa

Modas y vanidades

* Muchas empresas se lanzan a desarrollar interfaces de sus programas y sitios web para móviles/tablets o la nueva ocurrencia de turno simplemente porque es lo que mandan los tiempos. A menudo la alternativa de tecnología antigua era perfectamente viable, a veces incluso preferible.
* Muchas veces me he preguntado si realmente el trabajo que me mandaban hacer ayudaba a la sociedad a ser más productiva, y si la utilidad marginal era tan redundantemente marginal que no llegaba a cubrir los costes de desarrollo.
* No se puede pretender vivir de cosas que no generan valor. Quizás haya gente dispuesta a pagar barbaridades por aparentar ser sofisticados, pero estas modas y veleidades tan fácil como vienen se van (especialmente en tiempos de vacas flacas).
* Cuando entré a trabajar allá por 1999, parecía que la informática iba a revolucionar la economía, que era vital para los negocios tener una web impresionante y automatizar no sé cuántos procesos del negocio, porque si no iban a perder ese tren y desaparecer. A los informáticos y asimilados (ingenieros en general, gente de ciencias, incluso quienes no lo eran) capaces de escribir dos líneas de código nos cortejaban y nos ofrecían atractivos salarios. Después del estallido de las punto-com los curritos (quizás mal acostumbrados) empezamos a ver como a ojos de los gerentes pasabamos de ser poco menos que genios a ser un mono más, ver nuestros méritos despreciados y nuestras esperanzas de carrera profesional truncadas.
* Resumiendo: Tenemos un trabajo técnicamente exigente como pocos, pero si ese trabajo no genera un valor real, si no tenemos fuerza negociadora, entonces no deberíamos sorprendernos cuando suceda lo que ha de suceder.

Informática: ¿Trabajo tecnológico o sociológico?

* Aunque resulte duro, los conocimientos tecnológicos en el mundo de la consultoría solo son una parte, y quizás una parte menor.
* Al final el cliente contrata y paga porque se encuentra satisfecho y tiene expectativas de satisfacción (ya sea porque tenga experiencia de que somos cojonudos, o porque tiene una fantasía con la chica mona del equipo).
* Una solución mediocre para los problemas del cliente es lo mínimo. Pero llevarte bien con el cliente y dar una solución floja puede ser preferible a dar una solución excelente pero andar de caras largas. A menudo incluso tener una buena interacción con el cliente es condición necesaria para dar una solución excelente.
* Por ello tratamos de vestirnos parecido a lo que viste el cliente (traje y corbata si es menester), por ello evitamos ser demasiado excéntricos (hay que aparentar ser de fíar), por ello procuramos interesarnos por los mismos temas que a nuestros jefes/enlaces  les interesan. Ciertamente las salidas de tono en política no ayudan en este aspecto. Esta empatía no solo conseguiría una mejor disposición del cliente hacia nosotros, si no que nosotros nos sintamos más a gusto en el trabajo.
* Las personas son más complicadas que los ordenadores. La comunicación es importante: Hace falta saber pedir y preguntar; saber qué es lo que necesitan y lo que pueden dar; saber hablar de lo que hacemos y convencer de nuestros argumentos; etc. Quien sabe mucho de Programación o de Sistemas, pero se le da mal el trato con la gente, ciertamente anda cojo en este mundo.

viernes, 18 de mayo de 2012

Contabilidad de inversiones en hojas de cálculo (y IV): Spin-off, campos extra


Introducción

Esta serie describe como contabilizar las posiciones en acciones y fondos de inversión en hojas de cálculo, de modo que posteriormente podamos disponer fácilmente de los datos relevantes (los introducidos originalmente, o los calculados) sobre dichas inversiones. [Enlace a la primera parte]

En este punto disponemos de una hoja de cálculo con una funcionalidad suficiente por lo menos para mis necesidades. Solamente quedan algunos retoques y consideraciones finales.

Tal y como se indica en partes anteriores, este trabajo se publica bajo licencia CC BY. Los comentarios y correcciones son bienvenidos.

Las operaciones de Spin-off

De la definición en Investopedia de spinoff: Creación de una compañía independiente a través de la venta o distribución de nuevas acciones de un negocio o división de la empresa padre. Un spinoff es un tipo de desinversión. Explicación: Una empresa siguiendo su estrategia de negocio puede buscar el desacerse de sus componentes con menos sinergia dentro del conjunto, si considera que la compañía segregada vale más en el mercado que lo que vale dentro de la matriz.
Más información:
[wikipedia:Spin out]

Por ejemplo en España en 1999 y años sucesivos Telefónica segregó Terra, Telefónica móviles (que curiosamente fueron finalmente re-absorvidas a precios inferiores a su salida a bolsa), y TPI-Páginas Amarillas. O por ejemplo OHL, que  ha realizado en las bolsas locales OPV's de sus filiales en Brasil o en México.
Normalmente una empresa realiza esta segregación de forma transparente al inversor, para el que la segregación será principalmente un resultado extraordinario por la diferencia entre el capital captado y el valor en libros.
Sin embargo en ocasiones una empresa puede decidir distribuir las participaciones de la nueva empresa entre sus actuales accionistas. Tal es el caso de la segregación de Aperam de Arcelor-Mittal en 2011.

Ejemplo del spin-off de Aperam

En enero-febrero de 2011 Arcelor-Mittal realizó un spin-off [Info sobre spin-off de Aperam] por el que por cada 20 acciones de Arcelor se entregaba 1 acción de Aperam (habían decidido segregar la producción y servicios asociados al acero inoxidable y aceros especiales). La acción nueva se estimaba con un valor equivalente a las acciones antiguas. En cierto modo si hiciéramos un split (21/20), y a continuación substrajéramos una fracción (1/21) de las acciones y el valor resultantes (uniformemente entre las posiciones existentes, en vez de seguir el criterio FIFO de las ventas).

A la hora de transmitir(vender) las acciones y contabilizar el resultado en el IRPF:
  • En el caso de las acciones de la matriz, debemos sustraer de las acciones originales el valor correspondiente a las acciones segregadas. Si hay distintas posiciones adquiridas en distintos momentos a precios distintos, considerar que el valor es una proporción del valor de compra, y no una magnitud fija.
  • En el caso de las acciones segregadas,se contabilizan con fecha de compra igual al de las acciones que se segregaron, y precio de compra proporcional al de las acciones de las que se segregaron.
En el caso en el que se entrega 1 acción nueva por cada N originales, todas de igual valor, las acciones originales pasan a valer N / (1+N) (valor después / valor antes). Cada posición de las acciones nuevas tendrá un valor de compra de 1 / (N+1) de la posición original de donde proviene. De tal manera que la suma de los valores de compra posteriores serán iguales al valor de compra de las originales.

Así si por ejemplo:
* 2007-12-12: Compré 1200 acciones por 60.592,46€ (incluyendo canon de bolsa y comisiones)
* 2008-10-10: Compré 1300 acciones por 28.716,95€ (comprar en pleno derrumbe puede ser como atrapar un cuchillo que está cayendo)
* 2011-02-01: Spin-off  (1 Aperam / 20 Mittal). (125 Aperam /2500 Mittal)
Entonces:
* MTS.MC @ 2007-12-12, seguirán siendo 1.200, su valor será de (20/21)*60.592,46€=57.707,10€
* MTS.MC @ 2008-10-10: #1.300 por 27.349,48€
* APAM.MC @ 2007-12-12: 1/20 * 1.200 = 60 acciones, por 1/21*60.592,46€=2.885,36€
* APAM.MC @ 2008-10-10:#65 por 1.367,47€
* Podemos verificar cómo los valores cuadran: 2.885,36+57.707,10= 60.592,46; 1.367,47+27.349,48=28.716,95

Columnas adicionales

En mi caso Arcelor paga dividendos desde Luxemburgo, de modo que su rendimiento está sujeto a doble imposición internacional (actualmente se me retiene un 15% en Luxemburgo y un 21% en España). Esto (a parte de estar contribuyendo al sostenimiento del clientelismo de la "Nomenklatura" más allá de lo que me correspondería) supone que hay dos importes íntegros y dos retenciones (uno extranjero y otro nacional). Actualmente disponemos de columnas para los importes nacionales, pero a mí me interesa disponer también de los extranjeros.
Por ello he dispuesto de dos columnas extra (a parte de las observaciones). No se deberían utilizar para cálculos, de modo que igual que se podría introducir cualquier otra información que se quisiera.

Se me ha pasado por la cabeza introducir una columna para "tipo de operación". Podría ser útil si tuvieramos cálculos condicionados en función del tipo de operación, pero por el momento creo que eso complicaría el diseño y el uso. Alternativamente se podrían utilizar flags (condiciones individuales de si se debe hacer o no tal tratamiento).

Diseño de la hoja

Es la hoja #3, más los siguientes cambios:
  • Nuevas columnas: Extra1 y Extra2. Para importes de dividendos internacionales, o cualquier otra información
  • Nueva columna: Spin (grupo Alteración) para indicar cuántas acciones segregadas por acción antigua. Podría ser 1/20 para el caso de Aperam, o 1 si se da una acción nueva por cada acción antigua.
  • Nueva columna: uSV (unSpinned value), dato intermedio para contener el factor del valor no segregado.
    • Para la propia fila valdría 1 / (1 + spin)
    • Se multiplica por los factores de siguientes operaciones (por defecto 1)
  • Columna alterada: AApS (Accumulated Amortization per Share): El componente de la amortización proveniente de la propia fila se multiplica por uSV. Los componentes de amortizaciones arrastradas ya vendrían multiplicados por el valor que les correspondiera).
  • Columna alterada: Valor restante compra: Siendo el valor originario menos el valor de amortizaciones: El originario se multiplica por uSV. El valor de las amortizaciones ya viene corregido.

Ficheros suministrados

Fichero vacío contabilidad inversiones
(Versión 11.05)
inversiones_vacio.odsinversiones_vacio.xls
Ejemplo relleno(Arcelor)inversiones_arcelor.odsinversiones_arcelor.xls

martes, 15 de mayo de 2012

Contabilidad de inversiones en hojas de cálculo (III): Resultados latentes, múltiples valores


Introducción

En esta parte se continúa la serie iniciada en esta entrada, proponiendo un modo de contabilizar las inversiones (acciones y fondos) en una hoja de cálculo. En la entrada actual describo lo relativo a:
  • El mantenimiento básico de las hojas de cálculo
  • Ejemplo 3: Múltiples inversiones, plusvalías latentes
Tal como se indica al principio de la serie, este trabajo se publica bajo licencia CC BY. Los comentarios y correcciones son bienvenidos.

Mantenimiento básico de las hojas de cálculo

Las hojas suministradas como base ofrecen espacio para anotar algunas operaciones en algunos valores, pero el usuario debe ser capaz de añadir filas adicionales a los valores existentes, e introducir valores adicionales.

Al añadir o eliminar filas sucede que las referencias a las celdas que hay debajo son modificadas
  • Los rangos de celdas (como en sum(E4:E10) ) se actualizan (de modo que si insertamos una fila sobre la 10, la fórmula se transformaría en sum(E4:E11))
  • Las referencias igualmente se actualizan (si desde E9 se referencia a E10, al añadir fila pasaría a referenciar a E11). Esto es problemático porque la nueva fila se convierte en un "hueco" no referenciado (probablemente queremos que E9 referencie a la nueva E10).
Al añadir fila hay que copiar las fórmulas de una fila no alterada (no adyacente) sobre las filas nuevas y las adyacentes. Las fórmulas a copiar se encuentran en las columnas de resultados y de datos intermedios (no en las de datos).

La actualización de los rangos nos es útil para no tener que retocar los cálculos de totales (en la parte superior de los datos de un valor determinado). Solo tenemos que evitar rellenar jamás la última fila.

Evitar cortar y pegar: Cuando una celda referenciada es cortada y pegada, las referencias pasan a apuntar a la nueva ubicación. En las tablas de anotaciones sobre valores este cambio inteligente de las referencias nos descuadra el funcionamiento: Un dato introducido en una celda "vaciada" no tendrá efecto en los resultados, y un dato en una celda "rellenada" tendrá efectos en los resultados de filas donde no se pretendía.
Por ello, cuando reorganicemos los datos introducidos en las tablas, es mejor utilizar el copiar (en vez de cortar), aunque luego tengamos que eliminar los datos en el origen.

En lo sucesivo vamos a asumir que utilizamos una misma hoja de cálculo para almacenar las anotaciones de todos los valores gestionados.
Para introducir un nuevo valor financiero en la hoja de cálculo, idealmente debería de haber una checklist de pasos a realizar en el orden correcto pero en general serán:
  • Definir en la primera hoja (entrada de cotizaciones y resultados totales) el nuevo valor. Implica definir la variable para la cotización del valor. Queda pendiente retocar las referencias a los totales del valor
  • Hacer el espacio necesario (insertar una página/pestaña nueva en el fichero, o nuevas filas en una página existente), y copiar las celdas de una plantilla, o de un valor existente.
  • Corregir la información identificativa para el nuevo valor, y limpiar los datos de entrada (si procede).
  • Corregir las fórmulas para que utilicen la variable de la cotización del nuevo valor.
  • Corregir las referencias de la primera hoja para que utilicen los totales del nuevo valor.
  • Introducir las posiciones y operaciones iniciales del nuevo valor.
  • Introducir la cotización del nuevo valor, verificar que los resultados se actualizan correctamente.

Ejemplo 3: Resultado latente, y contabilidad de múltiples valores

Una de las cosas que más capturan nuestro interés es ver el resultado de nuestras inversiones. Si tenemos acciones o fondos solemos consultar cómo les va independientemente de que tengamos intención de tomar alguna decisión de compra o de venta. Por tanto algo muy atractivo para el inversor sería poder ver en la hoja donde anota sus operaciones sobre valores cuál es el resultado de las mismas.
En realidad algunos inversores considerarían pernicioso guiarse por las ganancias/pérdidas obtenidas para la toma de decisiones: Podrían inducirnos una euforia o un desánimo que reduciría nuestra objetividad.
Por otro lado es frecuente buscar posiciones en ganancias o en pérdidas para vender en el mismo ejercicio fiscal, buscando un efecto fiscal. No obstante este factor solamente debería ser uno más (vender una acción particularmente infravalorada por arañarle a Hacienda una fracción del resultado, puede ser un gran error si el valor acaba revalorizándose).
Conocer la valoración de los activos también puede ser útil si debemos presentar declaración del Patrimonio (aunque en la actualidad, si no sumamos más de 700.000€, no es una preocupación).

Así, en cierto modo la inclusión de la valoración actual de la cartera y del resultado latente, resultan ser una funcionalidad prescindible. Puede incluso que algunos prefieran eliminar las columnas de las tablas. Pero en cierto modo una hoja de acciones sin esta información es como un jardín sin flores.

En otro orden de cosas, tiene sentido si tenemos distintos valores, que tengamos las anotaciones en una misma hoja de cálculo en vez de desperdigadas en varias. Y ya si deseamos ver los resultados que acabamos de comentar (la suma de nuestras posiciones, y sumarizar y comparar los resultados latentes), entonces agrupar distintos valores en la misma hoja resulta una necesidad.

Ficheros suministrados

Hoja de cálculo #3 vacíaacciones_3_vacio.ods acciones_3_vacio.xls
Hoja rellena (Curro)acciones_3_Curro.ods acciones_3_Curro.xls

Descripción de la hoja de cálculo

Esta hoja está basada en la hoja descrita en la parte anterior.
En esta hoja se ha introducido una página principal con el propósito de:
  • Permitir visualizar de forma compacta los resultados de nuestras inversiones (para cada valor, cuánto hemos invertido, qué valoración tiene, y qué resultado latente; más el total de todos los valores).
  • Permitir introducir de forma conveniente las cotizaciones de los valores (y que se reflejan en los resultados visualizados).
Se dispone de una página para anotaciones de acciones (para introducir varios valores en la misma página) y de fondos. Aunque nada impide reorganizar en las páginas que haga falta si el número de anotaciones es elevado.
Las páginas inicialmente dispuestas disponen de dos tablas cada una. La primera tabla se rellenará para el primer valor, y la segunda se preservará como plantilla para los siguientes valores a introducir.
La estructura para fondos se ha simplificado, ya que no hay dividendos ni  splits ni amortizaciones.
Son necesarias referencias entre las cotizaciones y los resultados que hay que configurar correctamente para cada valor. Los puntos a configurar/revisar están debidamente marcados (@@@).

Enunciado del problema

El perro Pancho se fuga a Marbella con varios millones de euros [Nota 1]
A fecha de viernes 6 de mayo de 2011 realiza las siguientes inversiones: [Nota 2]
  • 2 millones de euros en Dogi, que cotizaba a 0,64.[Nota 3]
  • 2 millones de euros en British Petroleum, que cerró a 4,55 GBP
  • 2 millones de euros en fondo Aberdeen US Dollar Bond Fund A1, con un precio por participación de 1.284,2672 USD
  • 2 millones de euros en J.P.Morgan JF Asia exJapan A-Acc USD a 326,31
  • Los cambios relevantes estaban fijados en 1,4501 USD/EUR y 0,8839 GBP/EUR
¿Qué ha sucedido en un año? A fecha de 2012-05-07 los datos son los siguientes:
  • Dogi sigue cotizando a 0,64. En realidad no se ha movido en todo el año
  • BP cerró a 4,24GBP
  • Aberdeen US Dollar Bond Fund A1: 1345,5628
  • JF Asia ex-Japan Fund: 265,44
  • Los tipos de cambio estaban fijados en 1,3033 USD/EUR y 0,80647 GBP/EUR

Desarrollo del ejemplo

  • Creamos la posición de Dogi
    • Dentro de la página principal, rellenamos la información de Dogi, en acciones España
      • denominación:DOGI.MC; cotización:0,64 {asigno nombre_dogi a la celda}; URL consulta:http://www.infobolsa.es/cotizacion/dogi.htm
    • Dentro de la página de acciones, inicializo la tabla:
      • En la primera fila de datos, valoracion actual/valor:{=M5*_dogi}
      • Copio la celda modificada al resto de filas del valor.
    • Calculo e introduzco el apunte de la compra
      • 2 millones de euros darían para comprar 2E6/0,64=3.125.000 acciones
      • Anoto: Dogi-1105;2011-05-06;acciones:3.125.000;Valor:2.000.0000
        • Observar que los resultados se actualizan
    • Introduzco las referencias de la página principal a los totales de la acción
      • invertido:{=acciones.N4};Valoración:{=acciones.P4};Latente:{=acciones.Q4}
  • Creamos la posición de British Petroleum
    • En la página principal, introduzco el tipo de cambio GBP/EUR
      • Bajo USD/EUR introduzco "GBP/EUR"
      • Copio la celda del valor de USD/EUR, establezco los 0,80647 del enunciado
      • Establezco URL de consulta: https://www.google.com/search?q=EUR+GBP
      • Ya puestos, establezco lo propio para USD/EUR
    • Introduzco la línea de BP.L en principal.
      • Por el momento: "BP.L"; Cotización:{=4,24/_gbp_eur}. Establece nombre: _bp; url de consulta: http://www.bloomberg.com/quote/BP%252F:LN
    • Introduzco nueva tabla de anotaciones para BP:
      • Dentro de la página de acciones, insertar algunas filas (por ejemplo 4) para la tabla
      • Copiar la plantilla en el nuevo espacio, y ajustar las celdas que lo requieran (que empiezan con @@@) de forma análoga a Dogi (el valor anterior)
    • Calculo e introduzco la anotación de compra de BP.
      • El valor de la acción era de 4,55/0,80647=5,641871 EUR, compraríamos 2e6/5,641871=354.492 acciones. Pagaríamos 354.492*4,55/0,80647=1.999.998,26 EUR
      • Introduzco "BP-1105";2011-05-06; compradas 354.492 acciones por 1.999.998,26.
        • Observar cómo se actualizan los resultados del valor
    • Actualizar las referencias de la página principal a los resultados de BP de forma análoga al primer valor (Dogi)
  • Introducir los datos del "Aberdeen US Dollar Bond Fund A1"
    • Crear la fila en la página principal
      • Cotización:{=1345,5628/_usd_eur}; URL consulta: http://www.aberdeen-asset.es/aam.nsf/spainES/pricesglobal2
      • Definir la variable/nombre _aberdeen_us_bond con la cotización del fondo
    • En la página de fondos, ajustar la primera tabla con los datos del fondo, de forma análoga a las acciones.
    • Calcular e introducir los datos de la compra del fondo
      • Compramos 2e6/1.284,2672*1,4501=2258,2528 participaciones, pagando 2258,2528*1.284,2672/1,4501=2.000.000,00 EUR
      • Rellenar la anotación de la compra: "Ab-USBond-1105"
    • Establecer las referencias del fondo desde la página principal a los resultados en la tabla del fondo
  • Introducir los datos del J.P.Morgan JF Asia exJapan A-Acc
    • Introducir nueva fila desde debajo del Aberdeen US Bond en la página principal (los formatos quedan copiados)
    • Rellenar los datos para el fondo: Nombre, cotización {=265,44/_usd_eur}, y la URL de consulta (http://www.jpmorganassetmanagement.es/ES/showpage.aspx?pageid=44&FundID=52&ShareclassID=140)
    • Asignar el nombre/variable _jpm_asia_acc
    • En la página de fondos, insertar 4 filas, copiar y adaptar la plantilla.
    • Calcular e introducir los datos de la compra:
      • Compramos 2e6/326,31*1,4501=8887,8674 participaciones por 8887,8674*326,31/1,4501=2.000.000,01 EUR

Notas

[1] Pancho es un personaje en algunos anuncios de la Lotería Primitiva, es un perro super-amaestrado al que su amo envía a sellar su boleto, que resulta ser premiado. [http://www.youtube.com/watch?v=vwpbAsAzLf4]. Quizás hubiera sido más adecuado enviarlo a Brasil, pero veo inadecuado hacer un ejemplo con reales brasileiros.
[2] Las acciones y fondos representados son reales (ya que quería que tuvieran una cotización verificable). Ya puestos a hacer publicidad gratuíta, debería haber puesto empresas de las que tengo acciones, o fondos de entidades de las que soy accionista, pero a estas alturas me niego a rehacer el ejemplo.
[3] Dogi suena a perruno, pero es una empresa textil, cuya negociación está suspendida y para la cual el importe propuesto sería un 4-5% de la capitalización bursátil (sería innegociable por varios motivos, pero ignoramos este hecho).