Cazadividendos Quality Scoring System (CQSS)

Aprovecha que estoy de vacaciones :grin::grin:

1 me gusta

Enhorabuena por el currazo. De verdad, que gran trabajo!!!
Respecto a lo cuantitativo estaba yo pensando lo mismo. Por poner un ejemplo, a 3M la veo que le aumenta su deuda año a año y aunque tenga un moat espectacular, con un beneficio que no parece despegar hacia arriba puede que algún día se vea obligada a recortar dividendo y solo con ratios qual es difícil verlo.

4 Me gusta

Esta apreciacion que haces no es ninguna tonteria. Yo filtrando por las lista de David van knap mas o menos con los valores que ha puesto @ruindog hay algunos que sera la leche, pero si tienes por ejemplo un 2,5% yield y un 4% de crecimiento; a mi no me salen las cuentas

Por esa parte no te preocupes, hay varias opciones:

  • Webservices o importacion de trozos de HTML
  • Importando un screener con los datos que necesites

Yo ya tengo la segunda hecha, es cuestion de actualizar los datos cada vez que vayas a usar la plantilla, no es trabajo y es mas rápido y te ahorras fallos.

Yo ahora en el punto en el que estoy es trabajando en la parte de fair value. Tengo que ver si puedo encontrar como tener el precio fair value de M* o alguna otra

5 Me gusta

No sé si te refieres a sacar el yield dinámicamente en la Google Sheet.
Si es así, es fácil extraerlo de M* con las utilidades que nos enseñó @Marcos_Torcal_Garcia en su día.
En el caso de tu hoja, con el símbolo en la columna C, sería:

=INDEX(IMPORTHTML("http://financials.morningstar.com/valuate/current-valuation-list.action?&t="&C3&"&region=&culture=&cur=&adsFlag=true&","table",1),11,2)

Para no sobrecargar todos y que falle, quizá lo ideal sería que tú tuvieras la fórmula en tu hoja master y que pegaras la columna como valores en cada actualización.

4 Me gusta

¿Con esa fórmula se obtiene el TTM Yield o el Fwd Yield? Poniéndome exquisito preferiría el segundo :wink:

Si lo entiendo bien el yield no se actualizaría dinámicamente en la lista CQSS sino que sería una foto fija en el momento de cada revisión (la idea inicial es hacerla con periodicidad trimestral) ¿correcto?

1 me gusta

Si no me equivoco, es el TTM yield. Hay otras formulas que pueden usarse para obtener el Fwd Yield de “forma lenta”. De Yahoo p.ej.

Pero como ya dije tengo una macro en excel que pilla los ratios cuantitativos y cualitativos, junto con el Fwd Yield, la frecuencia del dividendo, el 5y EPS growth estimate y otras cosillas. La actualización lleva unos pocos segundos.

Si me decís que frecuencia de actualización y de que empresas queréis los resultados no tengo problema en ir colgando las tablas.

3 Me gusta

Sí, por lo que veo es el TTM yield. Puede que incluso peor, el dividendo anual del anterior ejercicio dividido entre el precio. Hay que comprender que M* abarca empresas globales y con la complejidad de las empresas no americanas (dividendos irregulares y no homogéneos) este es el único cálculo sistematizable por ellos.

Con este planteamiento sí. Las consultas masivas a M* no solo tienen el riesgo de que nos capen el acceso, sino que, como todas las demás a SA, Yahoo, etc. suelen no ir finas (los famosos loading… o REF# eternos en las hojas). Pero está claro que mantener la foto del yield durante 3 meses es demasiado tiempo (imaginaos un crash como el de marzo).

Pensándolo un poco, creo que tengo la solución a ambos problemas. Y es traernos de M* y sacar la foto fija del último dividendo declarado. Como en la hoja ya tienes dinámicamente el precio con GoogleFinance (que no suele dar grandes problemas), esto nos va a dar un yield dinámico bastante real, ya que el grueso de su votalidad depende del precio y no del dividendo (que podrá aumentar/disminuir en los 3 meses, pero el impacto de esto es mucho menor).

El único pero de esto es que tendrás que manejar a mano el número de pagos anuales. Pero si solo vas a meter europeas con ADR, casi me atrevo a apostar a que la única integrante de la lista con pagos distintos a 4 va a ser O.

Yendo al grano:

La columna último pago la calculas con:

=INDEX(IMPORTHTML("http://performance.morningstar.com/perform/Performance/stock/dividend-history.action?&t="&C3&"&region=&culture=&cur=&ops=clear&ndec=2&y=1","table",1),3,6)

Esta es la que tú tendrás con la fórmula y copiaras-pegarás como valores a la columna que pasarás a la tabla pública.

Y la columna yield sí mantendrá siempre la fórmula

=X3*4/P3

asumiendo que ultimo pago es la columna X (primera libre que tienes ahora).
El 4 es el que tendrás que cambiar por 12 en O y otras mensuales. Se podría sacar a una columna aparte, pero así no se complica demasiado la hoja.

Si no te apañas, dímelo y hago yo sin problemas los cambios en la hoja que manejes.
Saludos,

3 Me gusta

En principio quiero actualizarla cuatro veces al año (principios de Enero, Abril, Julio y Octubre).
Para esta primera entrega y si no me flaquean las fuerzas voy a seguir en modo “picapedrero”

Cuando se acerque Octubre y si todavía estáis por la labor me pondré en manos de la Santísima Trinidad de la Informática (@Marcos_Torcal_Garcia, @Juanvi, @jgr23) y algún incauto más que se tercie para realizar la actualización automática.

Como mucho me planteo seguir haciendo a mano el sumatorio total de los distintos parámetros. Y seguro que eso también se puede automatizar :wink:

11 Me gusta

Lo del forward yield es puñetero, no lo he mirado mucho, pero por el momento no he visto una fuente fiable para las acciones que no pagan las mismas cantidades cada vez o con dividendo extraordinario. Sobre Value Line, aún no me he registrado con el truco del almendruco, por qué es más difícil sacar los datos? vienen en PDFs, hay que saber la ID interna de cada acción para acceder o algo así?

1 me gusta

Parece que me he apañado. Ya he añadido el Fwd Div/Yield a la hoja. Por un momento he tenido la agradable sensación de abandonar el selecto grupo de los paquetes informáticos.

Solo me ha fallado el de ciertas acciones canadienses (ENB, CNI), supongo que es porque los declaran en CAD.

Mil gracias

1 me gusta

Tienes razón, las duales las saca en CAD con el literal de moneda asociado.

Con este cambio dejamos el importe limpio:

=SUBSTITUTE(INDEX(IMPORTHTML("http://performance.morningstar.com/perform/Performance/stock/dividend-history.action?&t="&C3&"&region=&culture=&cur=&ops=clear&ndec=2&y=1","table",1),3,6),"CAD ","")

A partir de aquí, dos posibilidades:
-Pasar el dividendo a dólares usando GoogleFinance(“CURRENCY:USDCAD”) (pero tendrías que cambiar la fórmula en esas celdas específicas).
-Sacar el precio de la accion candiense (así divides CAD entre CAD). Es decir, bastaría poner en la columna C TSE:ENB, TSE:CNR etc. Si esto te afecta a otras columnas, te tocará igualmente tocar la fórmula para esas celdas específicas

1 me gusta

How To Identify A High Quality Dividend Growth Stock

Nada nuevo la verdad, estos Dividend Kings de SA lo que deben estar es cargados de acciones de Logitech, vaya ladrillos para decir cuatro cosas, te quedas sin rueda del ratón

1 me gusta

A ver, con tu permiso @Ruindog …………. pensando en eso de la “automatización” del invento …“cuatro letras sueltas” :stuck_out_tongue: :rofl: :rofl: con un “par” de consideraciones fruto de la experiencia en espinilla propia.

A la hora de diseñar la hoja final en la que recogerás los frutos de todo tu esfuerzo ten en cuenta que …………

Una fórmula de ImportHTML pesa más que un VLOOKUP por ejemplo, luego siempre que te sea posible recurre a la segunda. Para ello no dudes en descomponer tu proceso de captación de datos en varias hojas secundarias y posteriormente usar el ImportRange para pasar el resultado final a la hoja principal. Y una vez allí, si aun hay que seguir recolocando usa además de ese ImporRange el Vlookup que te comentaba.

Los formatos condicionales también ralentizan bastante la hoja, con lo cual es intentar no abusar de ellos. Sí, lo sé, es harto difícil no hacerlo cuando se es un friki de las tablas con colorines, yo mismo soy una víctima de ello. De todos modos, en las hojas intermedias en principio no debería hacerse necesario su uso y se debería restringir su uso a la hoja principal, en la que queremos ver “potito, potito” el resultado.

A la hora de ordenar los activos he visto que cuando subes extractos de alguna tabla haces búsquedas por sectores por ejemplo y agrupas los activos/compañías que pertenecen a ese sector. En mi opinión creo que esa es una del “asunto” que puede complicar las cosas a futuro y me explico ……….

Si la idea es poder automatizar lo máximo posible la hoja final, por lo general los listados de componentes en las diferentes páginas que habéis venido comentando creo que suelen estar organizados o bien alfabéticamente siguiendo el orden del índice del que forman parte o bien alfabéticamente siguiendo el orden de la clasificación de la que forman parte como por ejemplo Kings, Aristocrats, etc. Luego creo que la mejor opción es seguir ese ordenamiento alfabético que facilitará las labores primero de búsqueda y localización, y segundo la organización de las diferentes hojas secundarias y su posterior trasvase de información a la hoja principal.

Yo con el tiempo he terminado organizándome alfabéticamente en los tickers , ya que será con estos con los que terminarás haciendo casi todas las llamadas, y , teniendo en cuenta que para una buena identificación a la hora de evitar confusiones y búsquedas erróneas por falsas identificaciones han de llevar adjunto el mercado. Referencias las celdas que los contienen y a correr.

Si luego quieres hacer esas clasificaciones que has mostrado por sectores, el identificar cada activo con su sector no es ni complicado, ni nada que signifique una adición de trabajo continua, pues es un dato que se introduce una sola vez y permanece constante en cada activo. Posteriormente si se quiere o se necesita se organiza un reconocimiento mediante condicionales de por ejemplo el sector de cada activo y quedarían señalizados todos ellos.

A la hora de importar datos, siempre hay que intentar reducir el uso de fórmulas para ello, o en su defecto intentar hacer el menor uso de las más pesadas intentando usar en su lugar otras más ligeras. Por ejemplo, si más de una serie de datos forman parte de una misma tabla, es mejor cargar toda esa tabla con un ImportHTML en una hoja secundaria y posteriormente y mediante Vlookup o ImportRange según sea la mejor opción ir pasando esos datos a la principal, acotando estos si es necesario.

Del mismo modo, cuando sea posible, se intentará hacer uso de fórmulas condicionales IF en sus diferentes modos para en la medida de lo posible agrupar en una sola celda diferentes posibilidades de cálculo que se puedan aplicar a ese mismo concepto o dato, todo ello con el fin de disminuir siempre el número de celdas y fórmulas a emplear.

Por otro lado, las webs tienen la “mala” costumbre de actualizarse, rediseñar contenidos, corregir esos famosos “bugs” que de vez en cuando les traen de cabeza, o simplemente fastidiar y desmontarle el kiosko a los intrépidos y aguerridos “capturadores” de información, etc.

¿Y que suele ocurrir cuando se da alguna de esas circunstancias que he citado?

Pues que la información que estabas “sisando” de la tabla “x” en la página “Y” ahora ya no está en la misma tabla de esa página y por lo tanto en tu hoja tendrás un bonito hueco en blanco o el archiconocido y desesperante #N/A. No nos cortemos las venas aun, intentemos salvar al paciente. Tocará remangarse y ponerse a buscar la nueva ubicación de tu querida tabla. Vale, tras pelearte con tu fórmula preferida durante un RATO ya la has encontrado, ahora MODIFICA TOOOOOODAS las fórmulas de búsqueda para cada activo/componente/compañía de tu listado. Una risa, ¿verdad? Para eso los ignorantes tecnológicos que vivimos de recursos de pobre a veces también encontramos soluciones. Cuando referencies en la fórmula de importación la tabla en la que ha de capturarse el dato, no lo hagas consignando directamente el número de tabla, hazlo consignando la referencia a una casilla en la que habrás fijado el número de la tabla en cuestión. ¿Por qué, por qué? Pues porque cuando la web te desbarate las localizaciones con alguna reorganización o modificación, una vez encuentres la nueva ubicación tan solo tendrás que cambiar el número que has consignado en esa celda de referencia y ya tendrás toooooooodas tus fórmulas modificadas en un solo gesto.

De igual forma, cuando quieras fijar los rangos condicionantes que habrán de activar los formatos condicionales en alguna serie de cuadrículas, puedes hacer la referencia condicional a una sola celda en la que consignarás el citado rango condicionante. De este modo si quieres modificar dicho rango en un momento dado no tendrás que estar modificando uno por uno o ni tan siquiera cambiar uno y arrastrar fórmula si fuera el caso, directamente modificas la condición en esa celda “director” por así llamarla y ya tendrás modificados los rangos de condición en toda la serie en la que intervengan estos.

Seguro que se me escapan algunos, pero escribo a vuela pluma y ahora mismo esto es lo que me sale. Parto de la base de que cada uno tiene sus propias ideas sobre cómo organizar y ejecutar una tabla de este tipo, así que espero sea de ayuda y no ayude a crear confusión, pues no es la intención.

Un saludo.

13 Me gusta

Me he leído tu “breve” aportación unas cuatros veces y cada vez descubro nuevos matices. Antes de responderte voy a fusilarme un tutorial de importrange/vlookup en Internet y así evitaré hacer el ridículo públicamente.

Aún así, ya te vale: hacerme estudiar a mi edad y encima a costa de robarle tiempo de ocio a la familia :wink:

2 Me gusta

En resumen, usa el Excel.

1 me gusta

Hace unos años, no muchos, sabía poco de Excel y nada de las sheets de Google. Ahora se un poco de las sheets de Google y muy poco de Excel.

Lo que tengo montado, lo tengo montado en Google Sheets. Aunque tenga que darle mil vueltas al tema, termino adaptando las soluciones a lo que conozco. Donde no puedo llegar lo dejo hasta mejor momento. Solo de pensar en volver a recomponer todo en Excel me da la risa floja.

¿Que ventajas encontraria ahora mismo si lo hiciera todo en Excel?
Y no es una pregunta con trampa, es que realmente no sé el porqué sería mejor usar Excel.

Un saludo.

2 Me gusta

Efectivamente, el Google Sheet para el común de los mortales es más que suficiente. Es más, yi diría que es incluso mejor que el Excel.

Ahora, en el momento que le pides algo más, (gráficas, tablas, optimización, etc) Excel le da dos mil patadas.

El problema de Google Sheet también es que las funciones de importar datos son una porquería. El problema de Excel es que no tiene esas funciones (pero tiene otras cosas).

Por eso si sabes manejarte en Excel es preferible programarte tu propia macro. Funciona mejor, más rápido, y es más bonito. Claro que lleva más trabajo, pero a la larga ahorras tiempo.

Si te apañas bien con Google Sheets no merece la pena enpezar a aprender otra cosa que tal vez que no te sirva de nada.

Saludos!

4 Me gusta

El pueblo es soberano y se ha pronunciado: quiere automatización YA :wink:

Estoy en VL intentando exportar los datos del Safety y el Financial Strenght pero me viene grande. ¿dónde está el screener que comentas? Gracias

Ahí está la historia, que para poder sacarle a Excel la chicha que haría valer sus ventajas hay que saber programar, aunque solo sea una (triste, para los saben) macro, mientras que en Google Sheet si consigues mas o menos empaparte un poco con las descripciones y ayudas de las fórmulas puedes llegar a apañarte.

Evidentemente eso está a años luz de lo que se puede hacer si se tienen conocimientos de programación y te lo puedes hacer a medida programando macros o parseando webs, capturando datos usando Json y python, pero como digo, para los que no tenemos esos conocimientos, todo eso nos suena chino y cuando leemos algunos de los mensajes nos quedamos a verlas venir. Entonces, y hablo por mí, meterme en todo eso ahora mismo, aunque es algo que me lleva dando vueltas en la cabeza desde hace tiempo, aunque solo fuera de forma testimonial para intentar sacar adelante varias ideas que traté de implementar en mis hojas y no me fue posible, se me hace muy cuesta arriba y como digo me adapto a lo que tengo y a lo que mas o menos conozco y “domino”. Total, no creo que me esté perdiendo muchos puntos de CARG por no poder utilizar todo eso :roll_eyes: :face_with_raised_eyebrow: :face_with_monocle: :rofl: :rofl: :rofl:

Un saludo.

6 Me gusta

Pues en su día trasteé con la suscripción de prueba, pero no puedo verlo ahora.
Había un buscador de acciones donde seleccionabas los criterios de búsqueda (no poniendo ninguno obtenías todo el universo) y las columnas a sacar en los resultados.
Lo que no recuerdo es si podías exportar los resultados a excel o me tuve que pegar la tabla. Me suena esto último, pero, en cualquier caso, lo recuerdo fácil.

2 Me gusta