Archive for the ‘Nachlese’ Category

Data Explorer zur Insider Trades Analyse

leave a comment »

Börsennotierte Unternehmen unterliegen dem Publizitätsgesetz. Damit müssen Vorstandsmitglieder Aktienkäufe und Verkäufe offenlegen.

Für die meisten US Unternehmen findet sich diese Information beispielsweise auf MSN.com : http://investing.money.msn.com/investments/insider-transactions?symbol=MSFT

Bisher war das Abziehen und Analysieren aller Daten nahezu unmöglich bzw. mit großem manuellen Aufwand verbunden. Mit dem neuen Excel Data Explorer Plug In ist die Auswertung um ein Vielfaches einfacher geworden.

Das Ziel der Übung ist eine Analyse der Insidergeschäfte amerikanischer Vorstände und Hedgefonds. Im Folgenden werden meldepflichtige Käufe und Verkäufe nach Volumen in allen Sektoren des S&P 500 der letzten 3 Monate dargestellt:

Insider Trades

Ein Beispiel:

Im Technology Sector haben im letzten Jahr die meisten Eigentümer ihre Aktien abgestoßen.

Auffällig ist das Unternehmen Netflix. Hier gab es größere Investitionen.

netflix

Schaut man sich das genauer an, findet man beispielsweise einen Trade im April 2012 zum Kurs von 85 USD.

Richard Barton

Inzwischen steht Netflix bei 190 USD.

nfstock

Richard Barton und alle die es ihm nachgemacht haben, dürften hier ein sehr gutes Geschäft (+ 223% ) gemacht haben.

Wie kommt man nun an diese Daten?

Im ersten Schritt muss die Datenquelle parametrisiert werden. Dazu wird der Link zur Website für jedes Stock Symbol aufgerufen. http://investing.money.msn.com/investments/insider-transactions?symbol= [symbol]

Zunächst ist daher eine Liste an Stock Symboles erforderlich. Danach kann für jedes Symbol die Website mit den jeweiligen Insider-Trades geladen werden.

Eine initiale Liste aller S&P 500 Unternehmen ist mit dem Data Explorer schnell gefunden:

Insider Trades Data Search

Die Daten werden über einen O-Data Feed angeliefert.

Source

Der schwierigste Part ist nun, für jede Zeile in der Liste aller Unternehmen alle Insider Trades zu laden.

Im Query wird dazu die Web.Contents Methode mit 2 Parametern aufgerufen:

= Table.AddColumn(Source, “Custom”, each Web.Page(Web.Contents(“http://investing.money.msn.com/investments/insider-transactions?view=All“, [Query=[symbol=[Ticker_symbol]]] )))

Wobei [Ticker_Symbol] den Name der Spalte aus der Tabelle mit allen Unternehmen darstellt.

SourceMerge

Danach wird die Tabelle um zusätzlich Daten erweitert:

= Table.ExpandTableColumn(InsertedCustom, “Custom”, {“Data”}, {“Custom.Data”})SourceExpand

Die Erweiterung sollte nun die Spalten für den Kurs, die Transaktion, den Zeitpunkt und den Insider liefern.

SourceExpanded

Zum Schluss sind noch einige Filter und Umrechnungen nötig. Beispielsweise um Volumen die in Millionen USD angegeben wurden, richtig zu berücksichtigen.

Das gesamte Script sieht wie folgt aus.

let
Source = OData.Feed(“http://publicdata.cloudapp.net/wikipedia/Tables/c061f68c/861341bf8e98885945e4bedf/Data“),
InsertedCustom = Table.AddColumn(Source, “Custom”, each Web.Page(Web.Contents(“http://investing.money.msn.com/investments/insider-transactions?view=All“, [Query=[symbol=[Ticker_symbol]]] ))),
#”Expand Custom” = Table.ExpandTableColumn(InsertedCustom, “Custom”, {“Data”}, {“Custom.Data”}),
#”Expand Custom.Data” = Table.ExpandTableColumn(#”Expand Custom”, “Custom.Data”, {“DATE”, “NAME”, “TRANSACTION”, “NUM SHARES”, “PRICE(S)”, “VALUE”, “Kind”, “Name”, “Children”, “Text”}, {“Custom.Data.DATE”, “Custom.Data.NAME”, “Custom.Data.TRANSACTION”, “Custom.Data.NUM SHARES”, “Custom.Data.PRICE(S)”, “Custom.Data.VALUE”, “Custom.Data.Kind”, “Custom.Data.Name”, “Custom.Data.Children”, “Custom.Data.Text”}),
FilteredRows = Table.SelectRows(#”Expand Custom.Data”, each [Custom.Data.DATE] <> null),
HiddenColumns = Table.RemoveColumns(FilteredRows,{“Custom.Data.Kind”, “Custom.Data.Name”, “Custom.Data.Children”, “Custom.Data.Text”}),
FilteredRows1 = Table.SelectRows(HiddenColumns, each [Custom.Data.TRANSACTION] <> “Gift”),
FilteredRows2 = Table.SelectRows(FilteredRows1, each not Text.Contains([Custom.Data.TRANSACTION], “Grant”)),
FilteredRows3 = Table.SelectRows(InsertedCustom3, each [Custom.Data.TRANSACTION] <> “Exercise”),
InsertedCustom1 = Table.AddColumn(FilteredRows2, “MillionIndicator”, each if (Text.Contains([Custom.Data.VALUE], “Mil”)) then 1 else 0),
InsertedCustom3 = Table.AddColumn(InsertedCustom1, “VolumeMixedUnits”, each [Custom.Data.VALUE]),
ReplacedValue = Table.ReplaceValue(InsertedCustom3,”Mil”,””,Replacer.ReplaceText,{“VolumeMixedUnits”}),
FilteredRows4 = Table.SelectRows(ReplacedValue, each [Custom.Data.TRANSACTION] <> “Exercise”),
ChangedType1 = Table.TransformColumns(FilteredRows4,{{“VolumeMixedUnits”, Number.From}}),
InsertedCustom2 = Table.AddColumn(ChangedType1, “Volume”, each if [MillionIndicator] = 1 then [VolumeMixedUnits] * 1000000 else [VolumeMixedUnits]),
ChangedType2 = Table.TransformColumns(InsertedCustom2,{{“Custom.Data.PRICE(S)”, Number.From}}),
InsertedCustom4 = Table.AddColumn(ChangedType2, “NumberOfShares”, each [Volume]/[#"Custom.Data.PRICE(S)"]),
HiddenColumns1 = Table.RemoveColumns(InsertedCustom4,{“Custom.Data.NUM SHARES”, “MillionIndicator”, “VolumeMixedUnits”, “Custom.Data.VALUE”}),
RenamedColumns = Table.RenameColumns(HiddenColumns1,{{“Custom.Data.PRICE(S)”, “Price”}, {“Custom.Data.TRANSACTION”, “Transaction”}, {“Custom.Data.NAME”, “Insider”}, {“Custom.Data.DATE”, “Date”}}),
ChangedType3 = Table.TransformColumns(RenamedColumns,{{“Date”, Date.From}}),
HiddenColumns2 = Table.RemoveColumns(ChangedType3,{“SEC_filings”, “Date_first_added”, “Key”})
in
HiddenColumns2

Der Data Explorer zeigt Anfangs nur 100 Records im Preview an. Man muss sich noch etwas in Geduld üben (bei mir waren es zirka 30 Minuten), bis er die rund 2600 Datensätze geladen hat.

Nun kann man mit gewohnten BI Tools (Power Pivot / Power View) die Daten auswerten.

Fazit:

Der Data Explorer lässt sich sehr kreativ einsetzen. Die Scriptsprache kann man binnen weniger Stunden erlernen und ermöglicht sehr flexiblen Zugriff auf beliebige Datenquellen. Das Investment lohnt sich!

Disclaimer: I hope that the information on these pages is valuable to you. Your use of the information contained in these pages, however, is at your sole risk. All information on these pages is provided “as -is”, without any warranty, whether express or implied, of its accuracy, completeness, fitness for a particular purpose, title or non-infringement, and none of the third-party products or information mentioned in the work are authored, recommended, supported or guaranteed by Ezequiel. Further, Ezequiel shall not be liable for any damages you may sustain by using this information, whether direct, indirect, special, incidental or consequential, even if it has been advised of the possibility of such damages.

Written by lukast2013

29. März 2013 at 16:46

Veröffentlicht in Nachlese

SQL UG Austria Meeting 08.03.2012 – Unterlagen II (AlwaysOn)

leave a comment »

Die Präsentation zu AlwaysOn ist unter der folgenden URL zu finden:

http://sdrv.ms/AgCAts

Wer AlwaysOn und die Konfiguration von AlwaysOn ausprobieren möchte ohne selbst eine Infrastruktur aufzubauen den seien die “SQL Server Virtal Labs” empfohlen:
http://www.microsoft.com/sqlserver/en/us/learning-center/virtual-labs.aspx

AlwaysOn Ressourcen Center auf msdn:
http://msdn.microsoft.com/en-us/sqlserver/gg490638(en-us,MSDN.10)

Offizielle Produktdokumentation auf msdn (“Lösungen mit hoher Verfügbarkeit (SQL Server)”):
http://msdn.microsoft.com/de-de/library/ms190202(v=sql.110).aspx

Written by mpoeckl

9. März 2012 at 13:12

Veröffentlicht in Nachlese

SQL UG Austria Meeting 08.03.2012 – Unterlagen (XEvents)

leave a comment »

Hallo,

Vielen Dank für Eure Teilnahme an unserem heutigen SQL Server UG Treffen!

Folien und Code Beispiele relevant für die Extended Events Session können stehen hier zur Verfügung.

LG,
Milos

Written by milosradivojevic

8. März 2012 at 22:54

Veröffentlicht in Nachlese

SQL UG Austria Meeting am 01.12.2011 – Unterlagen

leave a comment »

Hallo,

Vielen Dank für Eure Teilnahme und die konstruktive Disukssion an unserem gestrigen SQL Server UG Treffen!

Hier sind die Code Beispiele.

LG,
Milos

Written by milosradivojevic

2. Dezember 2011 at 11:23

Veröffentlicht in Nachlese

Introduction to SQL Server Denali CTP3 – Unterlagen

leave a comment »

Hallo,

Vielen Dank für Eure Teilnahme und die konstruktive Disukssion an unserem gestrigen SQL Server UG Treffen!

Hier sind die Unterlagen  (PPTs und Code Beispiele).

LG,
Milos

Written by milosradivojevic

1. September 2011 at 08:50

Veröffentlicht in Nachlese

Deadlock Probleme in SQL Server 2008 – Slides & Codebeispiele

leave a comment »

Hallo,

Vielen Dank für Eure Teilnahme an unserem gestrigen SQL Server UG Treffen!

Hier sind die Unterlagen vom Vortrag “Deadlock Probleme in SQL Server 2008″.

LG,
Milos

Written by milosradivojevic

22. Juni 2011 at 08:03

Veröffentlicht in Nachlese

T-SQL Performance Recommendations – Slides & Codebeispiele

with one comment

Vielen Dank für Eure Teilnahme an der gestrigen SQL User Group! Hier sind die Unterlagen vom Vortrag T-SQL Performance Recommendations:

TSQL Performance Recommendations Codebeispiele (bitte einfach rauskopieren das File hat die .docx Endung da die Blog-SW keine .sql unterstützt)

TSQL Performance Recommendations Präsentationsfolien

Herzlichen Dank auch an Milos Radivojevic für seinen interessanten Vortrag!!

Nächstes Treffen findet am 26.05.2011 um 18:00 bei Microsoft Österreich statt! Details folgen…

Written by pekorica

15. April 2011 at 10:27

Veröffentlicht in Nachlese, Performance

Folgen

Erhalte jeden neuen Beitrag in deinen Posteingang.