Browsed by
Category: The Blog

Posts about the Tiingo Blog

Tiingo Launches Live Chainlink Node to Provide Signed End-of-Day Equities Price Data On-Chain

Tiingo Launches Live Chainlink Node to Provide Signed End-of-Day Equities Price Data On-Chain

We’re excited to announce that Tiingo has launched our own Chainlink node live on mainnet, bringing our financial market data directly to blockchain markets. Our initial journey will start with providing cryptographically signed end-of-day equities price data directly on-chain, with several DeFi applications already set to consume it. This enables a whole host of new DeFi markets to exist, specifically built around U.S. equities, such as perpetual derivatives contracts, synthetic assets, rebasing tokens, and more.

Being the most widely used oracle solution in the market, Chainlink was the clear choice in blockchain middleware necessary to get our existing API’s blockchain enabled across all the leading networks. Not only does the Chainlink node allow us to sell our API data directly to various blockchain applications, but we can sign our data on-chain to prove its origin as being from Tiingo, further adding to its reliability when settling DeFi contracts. Additionally, the node setup process was very easy and seamless, requiring minimal technical effort to get our API data exposed to a much wider range of markets. 

For more information on why we opted to use Chainlink to monetize our data for blockchain markets, check our previous announcement. To learn about how to access our node, visit https://docs.chain.link/docs/tiingo-eod-stock-price-oracle.

In addition to end of day equities prices, we have a multitude of premium data sets that can be made available on-chain through our Chainlink node to service the increasing DeFi demand. This includes over 70,000+ global securities (Stocks, ETFs, and Funds), 4,100+ crypto trading pairs, and 130+ FX tickers. For a deeper look into how Tiingo provides the highest quality data with a highly available API, refer to https://api.tiingo.com/.

“We’re thrilled to launch our own Chainlink node live on mainnet, providing us with a universal gateway to start supplying premium financial data to the fast growing DeFi industry. This allows us to facilitate the launch of new DeFi markets, applications, and products, starting first with support for on-chain U.S. equities markets via signed EOD equities prices directly from our API. We envision this is only the beginning of our long and fruitful expansion into DeFi through the Chainlink Network.” — Rishi Singh, CEO of Tiingo

About Chainlink

Chainlink is the most widely used and secure way to power universally connected smart contracts. With Chainlink, developers can connect any blockchain with high-quality data sources from other blockchains as well as real-world data. Managed by a global, decentralized community of hundreds of thousands of people, Chainlink is introducing a fairer model for contracts. Its network currently secures billions of dollars in value for smart contracts across the decentralized finance (DeFi), insurance and gaming ecosystems, among others.

Chainlink is trusted by hundreds of organizations to deliver definitive truth via secure, reliable data feeds. To learn more, visit chain.link, subscribe to the Chainlink newsletter, and follow @chainlink on Twitter.

Docs | Discord | Reddit | YouTube | Telegram | Events | GitHub | Price Feeds | DeFi | VRF

About Tiingo

Tiingo is an award-winning financial analytics and data platform that powers thousands of asset managers, technology firms, and individuals across the globe. Unique in its position as both a consumer of its data and distributor, Tiingo is trusted by firms across the industry for its clean and unique datasets, which are engineered for the discovery of new alpha sources. With a mission deeply rooted in democratizing access to financial analytics and data, Tiingo is also a leader in financial education for future generations, having partnered with research departments at universities across the world to advocate for financial markets literacy. 

Formed in 2014, Tiingo holds that belief that love is the ideal way to conduct business. We are a team made up of artists, engineers, and algorithmic hedge fund traders. Some of us have been professional photographers, and others have created trading algos managing hundreds of millions of dollars. We are united with the same goal: to make everyone’s life easier in the ways we know how. 

To learn more about Tiingo’s APIs visit https://api.tiingo.com and to learn more about the Tiingo analytics engine, visit https://www.tiingo.com.

Facebooktwitterredditpinterestlinkedinmail
Tiingo Will Launch a Chainlink Oracle Node To Supply Blockchain Developers with Financial Data and Analytics

Tiingo Will Launch a Chainlink Oracle Node To Supply Blockchain Developers with Financial Data and Analytics

Tiingo is excited to announce that we will be bringing our premium API data to leading blockchain networks via the launch of our own official Chainlink oracle node! As part of the market-leading Chainlink Network, which connects blockchain applications (built using smart contracts) to external data APIs, we will be able get our entire suite of APIs blockchain-enabled, allowing us to supply smart contract developers with a wide variety of financial datasets used to trigger their execution. 

Given the emergence of Decentralized Finance (DeFi), an ecosystem of financial applications and products built on blockchains, we see a great opportunity to make our data available across the DeFi market via our Chainlink oracle node. Through the Tiingo Chainlink oracle node, we can broadcast our API data directly onto any blockchain platform, as well as sign that data on-chain through a unique cryptographic signature to prove its origin as being from Tiingo. Not only will this grow our reach as a data provider into new blockchain-based markets, but our data can expand the types of DeFi applications that can be built, ultimately empowering us to directly support and participate in the provisioning of a completely new and parallel financial system.

Our initial focus will be providing on-chain data regarding the closing prices of equities, before then moving our attention to developing FX feeds. This will enable DeFi developers to build on-chain financial products such as derivatives based on traditional equities, further widening the types of financial exposure users can get within DeFi markets.

Establishing Tiingo as a Top Oracle Node and DeFi Data Provider

Tiingo consists of a data research and analytics arm, a news aggregator, and a professional suite of APIs. Our API provides over 1,253,400,491 data points and counting, including price tickers for over 70,000+ global securities (stocks, ETFs, and Mutual Funds), 4,100+ crypto tickers, and 40+ FX tickers. We also have over 30 million financially tagged news articles (Equities, Funds, Crypto, and FX), and provide fundamental data on stocks and ETFs, which include 106 Indicators, 20+ Years of Fundamental History, Quarterly and Annual Data, and Restatements and As-Reported Numbers.

Our stock price API in particular is made up of at least 3 data sources on average for each price feed, protecting users against downtime and erroneous data points. We’ve implemented a proprietary data cleaning framework that allows us to quickly monitor any erroneous points and apply fixes, accompanied by a full audit trail to reproduce the price series. Our prices are also highly precise as we don’t round to only include a few decimal places, and our uptime is high, with optimized in-memory caching, and proprietary disk caching so we can deliver data quickly and consistently.

With a wide selection of high-quality market data, we are ready to begin our journey into the blockchain markets by supplying it directly to smart contract developers and applications, where it can be used to execute key on-chain functions like settling a derivatives contract, triggering automated on-chain trading strategies, calculating fine-tuned loan rates based on historical data, and more.

However, due to the inherent security properties of the blockchain, smart contract applications are unable to natively interact with external APIs, creating what is known as the oracle problem. In order to overcome this, we required an additional piece of infrastructure known as a blockchain oracle, which can deliver external data from our API to blockchain-based smart contracts in a secure, reliable, and properly formatted manner. 

Upon examining various solutions, we found Chainlink to offer the most time-tested and battle hardened oracle solution, along with a large and growing network effect of data providers and blockchain applications already supplying and consuming data through it. Some of the key features we found unique to the Chainlink Network include:

  • Data Quality – Through our Chainlink node, we can cryptographically sign each data point we broadcast on the blockchain, preventing man-in-the middle attacks by proving to users the origin of our data. 
  • Blockchain Agnostic – Chainlink nodes can integrate into any blockchain network, serving as a single gateway for supplying and/or selling data to any current and future blockchain.
  • Network Effect – Chainlink is the most widely used oracle network in DeFi and already secures billions of dollars in value for blockchain applications, meaning there is a large consumer base already built up and growing.
  • Trusted Infrastructure – Chainlink is thoroughly audited open-source software built upon strong academic research and maintained by a large and growing developer community, ensuring high levels of security and reliability.

We look forward to using Chainlink to bring our world class APIs to blockchain developers around the world, empowering them to build more advanced and unique DeFi applications supported by high-quality, cryptographically secure financial data. We’re confident that we can become established as a leading Chainlink oracle node for financial market data by bringing our experience and expertise into this new and largely untapped DeFi market. 

“As a team focused on delivering data solutions to the ever-expanding data-driven economy, we were extremely excited at the opportunity to make our API data available across the leading blockchains via the Chainlink Network,” stated Rishi Singh, CEO of Tiingo. “By running our own Chainlink node, we can now actively participate in provisioning a new wave of applications and services that bring freedom and equity to users around the world by ensuring that those data-driven products are triggered by accurate, transparent data feeds in a highly reliable manner.”


About the Chainlink Network

Chainlink is the most widely used and secure way to power universal smart contracts. With Chainlink, developers can connect any blockchain with high-quality data sources from other blockchains and real-world data. Managed by a global, decentralized community of hundreds of thousands of people, Chainlink introduces a fairer model for contracts. Its network currently secures billions of dollars in value for smart contracts across the decentralized finance (DeFi), insurance and gaming ecosystems, among others.

Chainlink is trusted by hundreds of organizations to deliver definitive truth via secure, reliable data feeds. To learn more, visit chain.link, subscribe to the Chainlink newsletter, and follow @chainlink on Twitter.

Docs | Discord | Reddit | YouTube | Telegram | Events | GitHub | Price Feeds | DeFi | VRF

About Tiingo

Tiingo is an award-winning financial analytics and data platform that powers thousands of asset managers, technology firms, and individuals across the globe. Unique in its position as both a consumer of its data and distributer, Tiingo is trusted by firms across the industry for its clean and unique datasets, which are engineered for the discovery of new alpha sources. With a mission deeply rooted in democratizing access to financial analytics and data, Tiingo is also a leader in financial education for future generations, having partnered with research departments at universities across the world to advocate for financial markets literacy. 

Formed in 2014, Tiingo holds that belief that love is the ideal way to conduct business. We are a team made up of artists, engineers, and algorithmic hedge fund traders. Some of us have been professional photographers, and others have created trading algos managing hundreds of millions of dollars. We are united with the same goal: to make everyone’s life easier in the ways we know how. 

To learn more about Tiingo’s APIs visit https://api.tiingo.com and to learn more about the Tiingo analytics engine, visit https://www.tiingo.com.


Facebooktwitterredditpinterestlinkedinmail
Announcing An Upgraded Tiingo.com

Announcing An Upgraded Tiingo.com

For the past seven months, we’ve been rebuilding Tiingo.com. As a result, we’ve upgraded Tiingo.com – including the entire front-end engine, as well as much of the back-end. Every line of code was reconstructed with a focus on performance, while also incorporating your feedback, and knocking things off our wishlist that will let us develop features faster for you.

Check out the below for a thorough explanation of what we did – or visit Tiingo.com to experience the changes right away.

Enjoy!


Announcing Tiingo Version 2

Our goal for the below will be to show the visual result as well as share some of the reasoning behind those decisions.

It makes me happy and excited to see the new features and layout, and I hope the below will show you how much care we took to make this new version consistent with our values.

Color Scheme and Organization

Our UI was rebuilt to help focus the eyes onto relevant pieces of information you may be looking for. Additionally, the colors and format were rebuilt to make consistency a priority. This will allow you to match functionality with colors.

Here is a zoomed out picture:

 

You will now see each segment of information contains a header, and the body of the segment has a separate background. These are a few visual techniques to keep the information clean and separated.

The most obvious example of this is on a stock’s overview page. The first image is the new UI (V2) and the second picture is the old UI.

None of the changes we’ve made are to keep you on the pages longer. In fact, we hope your eyes follow the information you’re looking for and therefore let you navigate through the data even faster.

 

See the example here: https://www.tiingo.com/aapl/overview

 

Another example is how we hide the dividend values for days where no dividend is paid. This has two benefits:

  1. It helps hide repetitive nonsignificant information.
  2. It means that when dividends are paid, they stand out.

See the example here: https://www.tiingo.com/aapl/prices

These are just two small examples of the considerations that went into the redesign. You will find many of these types of changes all over the new Tiingo.com


User Experience

We incorporated a number of features based on your suggestions that make your workflow easier.

For example, now when you look up the fundamentals for a particular stock, then change the stock in the top bar, we keep you on the same page. This means if you have gotten the fundamental data configured for a few particular dates, then you change the ticker, we keep your configuration options the same and pull data for those dates for the new ticker.

This makes comparing data across dates much quicker.

 

See the example here: https://www.tiingo.com/msft/fundamentals/balance-sheet

 

We learned that many of you keep multiple portfolios and run different analysis on each one. So we made Portfolio selection a much easier process. Now you can easily click between portfolios on the left-hand bar and compare stats across each one through a single click.

 


See the example here: https://www.tiingo.com/portfolio/statistics/beta

 

Throughout the entire platform you will notice a massive speed boost. We rebuilt our entire codebase from the ground up and also migrated from AngularJS to Angular 6

These are just a few changes we made that will make your experience better. As you use Tiingo, you will find more of these improvements.


New Features

While this UI update was primarily focused on migrating existing functionality, we added a couple new features throughout Tiingo. Here are two of them:

For ETFs and Mutual Funds we created a better way to see graphs of how fee expenses have changed over time. Our goal is to highlight when companies are doing something funny with their fees and also to spot trends over time.

See the example here: https://www.tiingo.com/xlk/funds/fees-and-expenses

 

We’ve made our billing process more transparent with an entirely new billing system.

With the new billing UI, you can view your past invoices and easily change your subscription plan to one that fits your needs.

 

See the example here: https://www.tiingo.com/account/billing/current-plan

 

We’ve added small tweaks and new features all over the site. For example, you can now view your API usage and token on Tiingo.com in addition to the API, and we also changed the way you graph fundamentals to make it easier to compare values. Visit Tiingo.com to see all of the changes.


Thank You

 

Thank you all for being such wonderful users. We look forward toward our continued growth into 2019 and we know this can only happen with a firm foundation: a kind and growing userbase, a firm technical footing, and a happy, loving team.

 

All the best,
The Tiingo TeamFacebooktwitterredditpinterestlinkedinmail

Making the World’s Best Screener for Our Users Pt. 2

Making the World’s Best Screener for Our Users Pt. 2

If you haven’t seen part one – read it here: Making the World’s Best Screener for Our Users

As we’ve improved our screener- we also couldn’t stand idly by not updating our custom metrics creator. Tiingo was the first major financial tech company to allow any user to create their own stock screening metric.

And as time passed – we realized we were going to make it so much better for you.

Announcing: The Sexy, Newly Revamped Custom Metrics Creator:

The New “IDE”

Programmers use “IDE”s to code – and we wanted to make that simple for everybody to use. We created our own version that makes it so simple – so if you know Excel, you know how to make a custom metric.

And the best part? Each line will give you the number calculated so you get feedback immediately.
IDE Example

We even added autocomplete:

IDE Autocomplete

The Shifting Distribution

One of the most impressive features we’ve ever coded on Tiingo is taking your custom metric, and then calculating analytics on it immediately. The horse power this took was incredible and it pushed our coding abilities. Coding the shifting distributions, especially with custom metrics, took us 80% of our time.

As you enter your metric, you will see the distribution of your metric across the entire Tiingo Universe:

altman-z-score

And now when you screen – just like the screener, the distribution of your metric will shift

custom-shifting-distribution-pe-market-cap-altman

The Docs

This blog post couldn’t cover all of the metric and functions (like calculating the mean EPS over the past two years), so we created comprehensive documentation that let’s you harness the full power of the new screener

The Docs

We know you’re going to love our new Custom Metrics: Tiingo Custom MetricsFacebooktwitterredditpinterestlinkedinmail

Making the World’s Best Screener for Our Users Pt. 1

Making the World’s Best Screener for Our Users Pt. 1

It is over a year ago Tiingo launched it’s first screener. We were attempting to move forward the power of screeners, and we had a grandiose ideas of how to do it. We were the first to:

  1. Allow users to create their own metrics
  2. Created a new UI that challenged existing assumptions of screeners

We’re never happy with the status quo, so we decided to challenge ourselves further. We were going to make the custom metrics more intuitive, the screener more informative, and the user experience so intuituve –  you would have no idea that you just screened through ten million datapoints because it took 200ms.

Announcing: The Sexy, Newly Revamped Screener:

Tiingo Screener

The New Notebook

We’ve consolidated the screener overview page into a notebook format. This allows for easy switching among screens and reduces clutter while saving you clicks. We strive for beautiful minimalism here at Tiingo:

Tiingo Screener Notebook format

Searchable Filters

While the old drag and drop was nice, we wanted to come up with a new way to add/remove filters. We’ve created a beautiful searchable table, organized by the type of metric.

Metric Selection Table

Shifting Distributions

We believe data visualization should be done with a level of minimalism. We don’t want charts for the sake of charts. And research has shown time, and a time again, less is more when conducting analysis with numbers.

So we started off with the concept that when somebody screens, they should have context.

Is a filter for a P/E Ratio between 10-25 too common?

PE Between 10 and 25 with Distribution

But that wasn’t enough.

If we’re looking at a PE Ratio of 10-25, what kind of companies are we choosing? Are they small-cap or large cap? The Market Cap distribution has shifted and we want to know that.

Announcing:

The Shifting Distribution

pe-10-25-market-cap

We can see that a P/E of 10-25 leans slightly toward larger companies.

How about a P/E ratio of -20-0.

PE -20 to 10 Market Cap

The distribution has switched largely to smaller Market Caps.

Suddenly, you now have context into all of your screening metrics. And the best part? It’s all done in a flash of a second. If you don’t believe us – check it out here (no registration required): Tiingo Screener

The Results

We wanted our users to be able to see the latest data – quickly. Now the results show you metrics seamlessly and beautifully:

Screen Results

And you can simply click to see more about a company:

Screen Results Expanded

We know you’re going to love this new screener: Tiingo ScreenerFacebooktwitterredditpinterestlinkedinmail

Presenting the Tiingo API

Presenting the Tiingo API

It’s here, it’s finally here.

The Official Tiingo API has launched after months and months of people requesting this, followed by months and months of dev time. The reason it took so long? We didn’t just do standard-API stuff, but we built infrastructure in exchange data centers to help significantly reduce to costs to everyday users to financial technology firms and Institutional players.

For example, EOD data is included in the Tiingo price, whereas for financial technology firms: real-time data is $500/month instead of $4200/month.

In summary: the entire API was built with the idea, “how much can we give and get away with it?” instead of, “how much can we charge and get away with it.”

And with that here’s the lowdown:

Link: https://api.tiingo.com/
Docs: https://api.tiingo.com/docs/general/overview
Our technological approach: https://api.tiingo.com/about/difference
The origin story: https://api.tiingo.com/about/origin

There exist a few limitations:

  1. Every user is entitled to 40GB of bandwidth a month. Yes we realize that’s insane – it’s why we did it.
  2. Every user gets 10k requests an hour and 100k requests a day. We plan to increase these as more datasets come online and as we phase out of beta. You can monitor your usage at: https://api.tiingo.com/account/usage
  3. In order for us to track these limitations, we will need you to create an account (hope that’s ok!)

We’ve worked hard to make the documentation super simple to use. You can view them here: https://api.tiingo.com/docs/general/overview

Here are our datasets:

Included in Tiingo.com

  • EOD Data 
    • End of Day price data for over 37,000 tickers including ADRs and Chinese stocks
  • Mutual Fund Data
    • Getting ready for launch
  • Technicals
    • Getting ready for launch

Additional (for Financial Technology)

  • IEX Price Data
    • Tiingo is the first Financial Technology company to bring IEX Real-time data to the mainstream public
    • IEX Real-time data for $500/month versus $4200+/month for other services
    • Websockets and REST implementation

Facebooktwitterredditpinterestlinkedinmail

How to set up Hosted Web Apps with Windows Live Tiles

How to set up Hosted Web Apps with Windows Live Tiles

For those of  you who have been keeping up with this blog, the Javascript container process is something I’ve been following closely for the past decade. Earlier in the year, Peter Kruger from Microsoft reached out asking if I could test their latest implementation, which we presented at //Build. It was an honor, and since then I’ve been advocating Microsoft and OpenFin’s implementation as my favorites.

In a nutshell: The Javascript container process let’s you take a JS website and make it feel native to the operating system – whether it’s iOS, Droid, or Windows. We’re going to cover the Windows Live Tile implementation here.

For those of you with Windows machines, tablets, or phones (okay Surface users and PCs) – you may see what Windows calls “Live tiles.” Windows 8 may have overdone it 😉 but Windows 10 nailed it. Tiles allow you to gain a snapshot of what the app is doing without having to open it. I always found this implemented on Android clumsy from a UI standpoint and the feature is mostly non-existent on iOS -with the exception of a Apple-apps like weather and the clock. I use an iPhone for the record.

But – Microsoft nailed it IMO with the perfect amount of structure and dynamic content. Whereas Android has widgets which are all sorts of shapes, Microsoft forces structure and lets you “snap” together tiles.

E.g.

Windows Live Tiles
Windows Live Tiles

Notice the Tiingo one? Yeah we like it it too 🙂

We’re going to cover how we got these going in our pure-Javascript implementation. It didn’t require any native coding which was nice. It turns out if you’re using Hosted Web Apps, which let you convert your Javascript web app into Windows app, Microsoft injects a Windows library that you can use to interact with Windows.

This GitHub page does a good overview, but we’re going to go a little more in-depth. Still a good read-through: https://microsoftedge.github.io/WebAppsDocs/en-US/win10/HWAfeatures.htm

 

Step 1 – Download the source code/generate the manifest

You need to generate source code, or a manifest file for this to work. If you don’t know what it is (like me initially), you can use App Studio which has a wizard and takes care of this for you. Visit here: http://appstudio.windows.com/en-us, make an account, and then created a “Hosted Web App” via this URL: http://appstudio.windows.com/projects/create

When you’re done with the wizard, click “Generate” and download the Source code.

Download Source Code

Once you the source code, you can open it up via Visual Studio. You can download the Community edition for $0 here: https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx

Step 2 – Choose a Template

Microsoft has pre-generated templates that you can “fill-in.” In reality, these are XML templates where you can change the content and then update it. So we’re going to choose a template, populate it with data, and then send the notification update to the Windows Notification library

Find a template that you like. We’re going to change the content in them to present the data that we want. You can see the catalog here:  https://msdn.microsoft.com/en-us/library/hh761491.aspx

For Tiingo, we went with tileWide310x150Text05 . Keep track of this “identifier” code as we will need it in our javascript code.

I like the idea of clean, text and for financial data images are not as necessary. Maybe later we will include them for news stories, but first I wanted to include text.

Once you choose the template, you can scroll down and see the XML. For tileWide310x150Text05  it looked like (taken from MSFT’s website):

<tile>
  <visual>
    <binding template="TileWideText05">
      <text id="1">Text Field 1</text>
      <text id="2">Text Field 2</text>
      <text id="3">Text Field 3</text>
      <text id="4">Text Field 4</text>
      <text id="5">Text Field 5</text>
    </binding>  
  </visual>
</tile>

<tile>
  <visual version="2">
    <binding template="TileWide310x150Text05" fallback="TileWideText05">
      <text id="1">Text Field 1</text>
      <text id="2">Text Field 2</text>
      <text id="3">Text Field 3</text>
      <text id="4">Text Field 4</text>
      <text id="5">Text Field 5</text>
    </binding>  
  </visual>
</tile>

Step 3 – Update the tile in your JS code

Next we have to tell Windows when to update the data and what to do.
We used this snippet, check the comments to see what each line means:

//See if the Windows namespace is available (injected by Windows for HWAs)
if (typeof Windows !== 'undefined' && typeof Windows.UI !== 'undefined' &&
typeof Windows.UI.Notifications !== 'undefined') { 
     
     //setting dummy market data
     var marketData = {spy : {returns : .05}, newsLinks: [{title: "Headline 1"}, {title: "Headline 2"} ]};
     //Get the Windows UI Notifications
     var windowsNotifications = Windows.UI.Notifications;
 
     //Load in the template, which will contain the XML we can modify
     var tileTemplate = windowsNotifications.TileTemplateType.tileWide310x150Text05;
     var tileXML = windowsNotifications.TileUpdateManager.getTemplateContent(tileTemplate);
 
     //We now get all the text elements and append text nodes
     var tileText = tileXML.getElementsByTagName('text');
     //First line will be a header
     tileText[0].appendChild(tileXML.createTextNode("Market Snapshot"));
 
     //Next we get the returns and append a "+" sign if the return is >0. For negative numbers, JS defaults to appending a "-"
     if(marketData.spy.returns > 0) 
          tileText[1].appendChild(tileXML.createTextNode("S&P 500 +" + (marketData.spy.returns * 100).toFixed(2).toString() + "%"));
     else
          tileText[1].appendChild(tileXML.createTextNode("S&P 500 " + (marketData.spy.returns * 100).toFixed(2).toString() + "%"));
 
     //Next we add the news headlines
     tileText[2].appendChild(tileXML.createTextNode(marketData.newsLinks[0].title));
     tileText[3].appendChild(tileXML.createTextNode(marketData.newsLinks[1].title));
 
     //Create the TileNotification, passing our modified XML template and then send the update command
     var tileNotification = new windowsNotifications.TileNotification(tileXML);
     var tileUpdater = windowsNotifications.TileUpdateManager.createTileUpdaterForApplication().update(tileNotification);
 }

Since we are using Angular, we wrapped the initial call in a $timeout() and then set an $interval to get the marketData JSON object from our back-end every 30 seconds.

 

Step 4 – Test the app by running it in Visual Studio, pin the app to your start menu, and voila!

Beautiful!

Our Example Tile
Our Example Tile
Facebooktwitterredditpinterestlinkedinmail

The Protagonists Fixing the Problem that Apps Created (Part 2)

The Protagonists Fixing the Problem that Apps Created (Part 2)

This is part 2 of the blog post: Apps Have Recreated the Problem the Web Was Trying to Fix

 

In this post we’re going to discuss the protagonists who are creating tools and frameworks to unify the “App” experience across desktop and mobile. If successful, this will mean we are getting closer to mobile and desktop cross-platform and cross-browser compatibility. Please read part 1 if you are curious as to what this problem has meant for firms and developers.

Google

All UX engineers will tell you that the mobile interface is fundamentally different than a desktop application. After all, we all know what the “three lines” mean, right?

The three-lines we came to know as the “Hamburger Menu”

It is universal code for, “There are more features that will show themselves if you click us. Do it. Click us.”

What Google is therefore doing is creating a design specification that makes a unified standard across both desktop and web applications. For a very comprehensive description of this, check out their website available here: Material Design Introduction. It’s a wonderful read of their philosophy and great information for those of you learning UX like myself.

One example of Material Design, for those of us familiar with Google’s Hangouts App, is this menu:

 

Here we can see Google is attempting to unify the experience of the “Hamburger Menu,” by creating both a mobile and desktop interface for it.

But Google isn’t the first to attempt this.

Note: The hamburger menu has it’s critics, but that is beyond the scope of this blog post.

Twitter (Bootstrap)

Twitter created a platform known as Bootstrap that’s become ubiquitous and set a new standard for a unified desktop/mobile experience, otherwise known as “responsive.” It set the foundation for many of the design frameworks you see today and almost all responsive web applications rely on this framework today.

It popularized the “grid layout” and always had the philosophy of “Mobile First.” It even helped set the mobile and web icons  you see today. For a full list of all the features please visit: http://getbootstrap.com/components/

If there was a museum of “web development,” I would argue Bootstrap would have its own exhibit. The impact it’s had is absolute awe-inspiring and all of the criticisms people have of it come with an implicit asterisk:

*We are not insulting bootstrap. It’s amazing. The whole reason we can critize them is because they set a new standard that got people thinking differently.

Please visit: http://getbootstrap.com/components/ as no matter what images I post, it will not due them justice.

Microsoft

Microsoft has been the platform I have been the most excited about. Close friends of mine have heard my rants on unified web experiences, so it felt like kismet when a senior product individual reached out to me asking to test out their Web App Studio.

I was impressed with the premise: they are allowing individuals to create their own apps meanwhile creating a container process to take HTML5 web apps and make them feel like native experiences. While they are not the first (as we will discuss below), they are the major web company actively supporting this process given the deprecated “Mobile Chrome Apps.”

The premise of the App studio is two fold (Fed Dual mandate anyone?…sorry)

  1. Allow users to create their own apps in a point-and-click manner
  2. Allow your HTML5 web application to feel like a native app

While this post won’t get into 1, it does help many small businesses who want an app alongside their product.

With respect to 2, I found the app submission process relatively easy, with the majority of my time spent typing out app descriptions, ratings, etc. The actual wrapping of the Tiingo took all of about 15 minutes.

Here is a screenshot of Tiingo running a native desktop application in Windows 10:

Tiingo Running in their Web App Studio Container
Tiingo Running in their Web App Studio Container

For those of you who’ve never published an App before in the Windows Store, use the videos in the middle of the page: Web App Studio. I find it difficult to sit still and watch videos, so I will be posting a graphical walk-through of how to do this.

Having been around web development and seen multiple container processes come and go, this has been the easiest experience to date. So far I have not found the same memory leaks that have plagued the fork’d Chrome projects with a similar premise in mind.

Also – a thank you to Microsoft with their Edge browser. Seriously -the company that brought you IE6, has launched a new browser that is challenging other browsers in benchmarks (include Google’s benchmarking tests) and recently they have open-sourced their javascript engine: https://github.com/Microsoft/ChakraCore. While it has a ways to go, especially with extensions and feature compatibility, initial results are more than promising – they’re exciting. And thankfully, this performant javascript engine is powering their Web App container.

Apache Cordova

The 500 lb gorilla in the room: Apache Cordova

I love what this platform is doing, but I detest that it’s had to exist because the major tech giants couldn’t get together to hammer out a standard (looking at you Apple….from my iPhone).

The goal of this platform is to take an HTML5 web application and wrap it so it can be pushed to the App Stores of Google, Apple, and Microsoft. This has benefits as this means a native feel and interaction with a phone’s hardware and interfaces such as cameras, GPS, and notifications.

The downside, and similar to the Java Virtual Machine, is that these programs run in Javascript and the performance noticeably slower since native code will always be faster than Javascript (although the gap doesn’t have to be this wide – something Java has closed decently well).

Compatibility Features with Native Applications
Compatibility Features with Native Applications

 

Conclusion

The open source and web-dev communities are doing wonderful things to address the problem of cross-platform/browser compatibility, but ultimately it is the platforms that have web stores that should be pushing forward with a solution. If Apple continues down this road, it will only be a matter of time before development becomes more inconvenient, and if market-share shifts, the iOS will become the second app we develop for instead of the first. Even more so, arguably the Safari browser is becoming more difficult to work with. As Microsoft can tell you, that’s a hard reputation to brush off.

Ultimately, projects like Apache Cordova are wonderful, but I hope go the direction of jQuery where they are no longer necessary or become components of high-level frameworks like Angular. The work jQuery did set a new standard and I hope Cordova goes the same way.

I applaud both Google and Microsoft from tackling this problem head-on with different solutions: support for Cordova, making a unified UX, and explicitly supporting Web App Containers to save developers time.

Well done –

 Facebooktwitterredditpinterestlinkedinmail

Why 13-F filings are Poor for Replicating Funds

Why 13-F filings are Poor for Replicating Funds

I’ve seen hedge fund and trader replication ETFs and strategies for some time now and I realized a lot of them are based on 13-F filings.I thought I would go into why these are poor for replication. I hope it’s helpful for some readers out there. And in case I miss something, please feel free to add some more points.

I originally made this post on Reddit, but decided to put it here as well for the readers of this blog. A few Redditors responded and that is below the “Edit” portion below.

1) They aggregate the positions of many different people

Typically the funds they replicate often have a Portfolio Manager structure. Just like with mutual funds you have many different types of funds, on the hedge fund side, you have something similar except you have a ton of different individuals. The 13-F filings are an aggregation of the entire fund so you are seeing the aggregated thesis of the entire fund. You may also be looking at the position of a portfolio manager who fundamentally looks at the world entirely different than you and understands the company in a context you may not. Some people may view this as “crowdsourcing” within hedge funds, but then I present a couple other points.

2) They are delayed

The filings are quarterly so you are getting lagging data. It’s not uncommon for a fund to change positions every month. If you are using 13-F filings, make sure the fund has very long holding periods to account for this. Even then, if there is market-moving news, you wont really know their position until the next report.

3) They show you an incomplete picture

A long/short equity fund will often have a short component. Traders often use pairs trades, or short trades to come up with a trade structure. 13-F filings though only represent the long position.

For example the 13-F filings may be long comcast, when the fund could also be short Timewarner against it. Both companies make up the trade thesis. So even if Comcast loses money, they may be making money on the entire trade as Timewarner was the other leg of the trade. It may appear they are “in it for the long haul” when really you can only see one side of the trade. It’s true long/short equity funds tend to make more money on the long side, but some of that is beta exposure.

What I have used 13-F filings for

1) Trade idea generation.

Sometimes smaller hedge funds will find stocks that I haven’t heard of. I will do my own research though and form my own thesis. It’s almost like a screener I suppose. If I know if a hedge fund is a value fund, a long position may be a value position.

2) To get a hf gig

In college I would look up 13-F filings for local small hedge funds, then research the companies, and cold E-mail hedge funds to discuss the idea. This tended to be received well.

Did I miss anything?

**EDIT:**

Here is what Reddit commenters added – please make sure to give them the karma they deserve

**sayitlikeyoumemeit**
>Yes, 13-F following works best for idea generation from funds with very concentrated portfolios and known for mostly long positions.
One metric that isn’t used much that I like to estimate is the % of overall shares of a particular company that the fund holds (not the % it represents of their own portfolio) . This may give you an even better sense of their conviction in the business. When they start owning close to 20% of a company (many don’t go over this limit because of poison pill arrangements and filing requirements), it implies a high level of conviction, even if it’s a relatively smaller portion of their overall portfolio.

**Mephiska**
(Expanding upon delayed releases)
>Not only that, they will often wait the full 45 day time limit after quarter end to file, so when you see that report you’re already looking 45 day old data.

**FloatsFlysOrFucks**
>Nice post
Could be long the CDS or puts and long the stock to tweak the risk. 13f makes look like the like the position.Facebooktwitterredditpinterestlinkedinmail

That’s Enough Machine Learning – thanks!

That’s Enough Machine Learning – thanks!

Alright – so I’m going to hammer on one specific topic that’s been bothering me in the tech scene and that’s just machine learning being thrown everywhere. “Need a t-shirt? Let’s use machine learning to find our different habits and predict our tastes.” Or, you know, you could go to a store and see what appeals to you. OK that’s an exaggeration and going to stores and checking merchandise doesn’t scale across variety the web offers you. But I like this analogy so I’m going to keep it.

The problem I see with machine learning, and why I think it’s overused in markets inappropriately, is that it cannot explain in the same way human consciousness can. What I mean by that is that traditional science tells us to form a hypothesis before conducting an experiment. The idea being that by forming an explanation before seeing the data, we are forced to take current observations and make a rational expectation. This of course leads to biases which is shown quantitatively by the inability to replicate research as well as the number of papers that seem to support their hypothesis. What “big data” (I throw up a little in my mouth when I use that phrase) presents us though is the ability to get instant iterative feedback and A/B testing lets us test our samples in the real-world and see if our models hold up.

This is how it “should” be done. What happens though is that machine learning instead of being used as an optimization method becomes used as a method of find explanations. Many of us are using it to find relationships and then we are are backfilling a hypothesis and shows to be the case. While the current method of science is far from perfect, this approach seems far far worse. I have seen some who can master this, but they often have very strict processes in place to ensure the models hold up. Some enforce it via risk management while others run statistical tests – usually a combination of the two.

But do we really need to use advanced machine learning to create explanatory relationships instead of being an optimization method? After speaking with many people using it this way and reading papers on it, it seems like many doing it drastically overfits and their live results/trading do not match their out-of-sample. A common response to this idea is that, “machine learning should work if we properly out-of-sample tests.” Well, something taught to me by Josh + Steve @ AlphaParity (on this list), was that many people inappropriately run out-of-sample tests. What people often do is they initially have an in-sample and out-of-sample but when out-of-sample doesn’t match the in-sample performance, they parameterize the in-sample until the out-of-sample matches what they want. This creates just one in-sample and no out-of-sample.

Using machine learning as an explanatory relationship finder often leads to complexity of models, which just further adds the probability of overfitting. A secondary problem with markets is that regime shifts can happen rapidly, making machine learning less effective on larger time periods where there become new macro drivers. While it absolutely can be done, I know only one who has pulled it off and I have no idea how they do it. The question is, that all of this complexity worth it? The largest hedge funds out there like AQR do not use it to find explanatory relationships but use it for what it was meant to be: an optimization algorithm that slightly boosts performance. The simplicity of models like this reduce the chances of overfitting and also allow us to know when a model will break – when there will a regime shift. This knowing-when-it-fails allow us to assign higher odds as to when to size down risk (or weighting in non-market cases), or use portfolio construction to provide correlation/diversification benefit.

So before we go crazy with machine learning trying to be predictive from the start, I think it’s worthwhile to test the relationships and run studies and then consider ML at a “tweaking” stage. When used properly, it can be an effective tool, I just don’t think as effective as the mass-adoption of this phrase implies for the vast majority of cases. I think a good example of those who properly used it were the winners behind the Netflix Prize, where their solution is public. Their initial papers explored biases and preferences people had when initially ranking movies. Their final solution contained different ML and statistical methods to push results over the edge. Reading Team BellKor’s Pragmatic Chaos’s papers in sequential order is good fun: Direct link to final paper. Ignoring the math, their logic and explanations are fantastic displays of the scientific method + optimization methods.Facebooktwitterredditpinterestlinkedinmail