Async Price Data Load with aiohttp and asyncpg

I'm starting a new channel on AI at / @parttimeai , please subscribe!
In this video, I show you how to fetch 5 minute bar data for all holdings in the ARK ETFs. I demonstrate how to make hundreds of HTTP requests to the polygon.io endpoints concurrently with aiohttp and write the data to a PostgreSQL database with asyngpg.

Пікірлер: 65

  • @parttimelarry
    @parttimelarry3 жыл бұрын

    I'm starting a new channel on AI at youtube.com/@parttimeai, please subscribe! Source Code: github.com/hackingthemarkets/timescaledb-aiohttp-asyncpg

  • @yourpersonaldatadealer2239
    @yourpersonaldatadealer22393 жыл бұрын

    Async is hard to teach but you did a great job. For the newbies, one thing to remember that had me scratching my head a few years ago is: don't use synchronous code in an async function (e.g. don't use dataframe.to_csv(), instead use an async equivalent lib like aiofiles). If you don't do this then you end up going back to synchronous code running speeds.

  • @therishabhpatel

    @therishabhpatel

    2 жыл бұрын

    Thanks for the tip. I was dealing with a similar issue few months ago.

  • @bouzie8000

    @bouzie8000

    5 ай бұрын

    Very valid tip

  • @ballyoracle
    @ballyoracle3 жыл бұрын

    the diff concept is very well explained ... got every bit for it .. you are already explaining it very well Thank you Larry !!!

  • @emreturanexplomind
    @emreturanexplomind3 жыл бұрын

    The pieces of information you teach here are so valuable- thank you for doing this larry!

  • @michaelstreck0925
    @michaelstreck09253 жыл бұрын

    I can't believe this video slipped by me until today. I need to up my PTL stalking game! Thank you for all you do!

  • @Rickynator13
    @Rickynator133 жыл бұрын

    Hey Larry I want to start saying thank you for all the knowledge that you share man. I have been following this series and I have been learning a lot Have a great and safe rest of your weekend!!

  • @parttimelarry

    @parttimelarry

    3 жыл бұрын

    Thanks, glad you have enjoyed!

  • @CameronCrosby2468
    @CameronCrosby24683 жыл бұрын

    Hey Larry, great video! I see your subscriber count going up :) You deserve 100 times as many as you have now!

  • @stephenambrose7224
    @stephenambrose72243 жыл бұрын

    This is great Larry, thank you for sharing and pickin on the guitar (if that was you). I did something similar with multiprocessing and mysql.connector.pooling which took a dataframe broke it into chunks based on the number of cpu cores and processed the df in parallel. This will be very helpful to get a snapshot loaded to a table for quick analysis.

  • @iamvazu2768
    @iamvazu27683 жыл бұрын

    Thanks for all the KT larry, this is gold 🥇

  • @JalilAsghar
    @JalilAsghar Жыл бұрын

    Just awesome!

  • @bouzie8000
    @bouzie80005 ай бұрын

    Great lesson

  • @richinvest9067
    @richinvest90673 жыл бұрын

    Great, thanks Larry

  • @grizthegriffdog9939
    @grizthegriffdog99393 жыл бұрын

    just amazing work

  • @AlexCarter881
    @AlexCarter8813 жыл бұрын

    love this video - thanks :)

  • @thabangtsajoa716
    @thabangtsajoa7163 жыл бұрын

    this is very infomative

  • @ballyoracle
    @ballyoracle3 жыл бұрын

    this is awesome thank you bro

  • @binup28
    @binup282 жыл бұрын

    Hey Larry - Great stuff!! Thank you. Could you do one for alphavantage? Thanks in advance!

  • @degenviking6068
    @degenviking60683 жыл бұрын

    dude, is your site down? Was going to send you a should out for a whiskey for this video. Thanks for the awesome stuff man

  • @brianrowe1152
    @brianrowe11523 жыл бұрын

    This is great, except Alpaca discontinued polygon. I'm trying in postman to get the REST API to return something, but with their current documentation it is just not working and the message is just Not Found. Maybe the URL is wrong, but they have no examples on their site of how to get bars from the REST API its all the API. Maybe I just write an example, that use concurrent futures, but I'm not sure I'll know how to the async pg working with that. Also maybe I need to see the next video, because I really wanted to see how to keep the prices up to date, not do a 1 time load. Thanks again, these are great.

  • @kylehammerberg3875
    @kylehammerberg38752 жыл бұрын

    Sadly, as far as I know, this is no longer possible without paying for an API. Still a great video, though. Thanks, Larry.

  • @samgeorgesullivan
    @samgeorgesullivan3 жыл бұрын

    Hey, thanks for another great video! I have been trying to follow along using binance api instead and can't work out what the equivalent binance url would look like? Any help greatly appreciated

  • @AnikPatelIsABaws
    @AnikPatelIsABaws3 жыл бұрын

    Hey Larry, could you make a video on how to do this with the new Alpaca API and not a HTTP request?

  • @skeletonmasterkiller
    @skeletonmasterkiller3 жыл бұрын

    You can use httpx instead of aiohttp, it has requests like structure but async

  • @parttimelarry

    @parttimelarry

    3 жыл бұрын

    Thanks, I saw httpx mentioned in the FastAPI docs, been meaning to try it.

  • @FinGeek4now
    @FinGeek4now3 жыл бұрын

    Awesome video! Gives a few ideas for my ML algo-trader =) Any plans for a multithreading video with perhaps also using the async as well?

  • @mezseyoum5148
    @mezseyoum51483 жыл бұрын

    Hey I noticed that this is not added in the repository yet. I would love to see the code. I'm not using RESTful API I'm using the TWS API of interactive broker. so I'm making all the necessary adjustments. So far I've been following this series and everything has been working great for me but I'm having a hard time wrapping my head around the concept of "co-routine". I would love to have the code in front of me so I could get a better intuition. Thanks for the content.

  • @parttimelarry

    @parttimelarry

    3 жыл бұрын

    Just posted along with the SQL for the video after this one: github.com/hackingthemarkets/timescaledb-aiohttp-asyncpg

  • @mezseyoum5148

    @mezseyoum5148

    3 жыл бұрын

    @@parttimelarry Perfect!! Thank you so much!

  • @ubaidulkhan
    @ubaidulkhan3 жыл бұрын

    Does async leverage threads to achieve the parallelism?

  • @DavidCVdev
    @DavidCVdev3 жыл бұрын

    hi, the poligon api key requires payment any alternatives?

  • @milprodin81
    @milprodin813 жыл бұрын

    awesome vid, Larry! thx! will this method work equally well with alpaca_trade_api instead of straight up session.get(url)

  • @Krisler12
    @Krisler123 жыл бұрын

    Hi! Please post a video on how to detect and plot to chart patterns like butterfly, double bottom, head and shoulders etc. in python. Be aware that this harmonic patterns are not randomly they have pivot points in range of Fibonacci. Thank you so much in advance!

  • @saranganrajendren2485
    @saranganrajendren24853 жыл бұрын

    Hi Larry. Awesome work on this and your previous videos .Big Fan.Can you try to code swing low and swing high .Thank you in advance for your help.

  • @colinmaharaj
    @colinmaharaj3 жыл бұрын

    Looking to make my own gap scanner with IB

  • @muhammadumair8126
    @muhammadumair81263 жыл бұрын

    video is amazing but my only issue is API rate throttling. How can we implement rate throttling with aiohttp, asyncio?

  • @adityawadnerkar8682
    @adityawadnerkar86823 жыл бұрын

    Google has recently launched its AutoML Tables product for using it in time series forecasting.. can it be used to predict the stock prices? Can you share it in next video if possible... thanks

  • @parttimelarry

    @parttimelarry

    3 жыл бұрын

    Hadn't heard of this, will put it on my list. Definitely won't be the next video though, there are probably 100 other ones I need to make first :)

  • @HitAndMissLab
    @HitAndMissLab2 жыл бұрын

    yeah, but data provider is going to block your connection if you send too many requests. How do you work around that? can you use proxies?

  • @shrimal
    @shrimalАй бұрын

    Great video! Does "connection.copy_records_to_table" still work? I keep getting "" error on call to write_to_db.

  • @shrimal

    @shrimal

    Ай бұрын

    still works. looks like the TypeError was coming from incorrect datetime format for "dt". Those are tough with Z, no-Z and so many formats.

  • @eeropar3543
    @eeropar35433 жыл бұрын

    @Part Time Larry I'm new to algorithmic trading. I figured commenting here would be the best way to contact you. Since alpaca broker isn't available in Europe, Finland I don't know which broker I can use to set up a trading bot. Interactive Brokers is too complicated for EU use and setting up API. Can you help me, thanks in advance!

  • @parttimelarry

    @parttimelarry

    3 жыл бұрын

    I think IB is still probably your best option. I think ig.com may be an option as well, but I haven't explored it to have an informed opinion.

  • @theodorelee4383
    @theodorelee43833 жыл бұрын

    How much memory does this take?

  • @brijeshkhunt1857
    @brijeshkhunt18573 жыл бұрын

    but, i think polygon.io has api call rate limit.....

  • @parttimelarry

    @parttimelarry

    3 жыл бұрын

    Do you have a funded Alpaca brokerage account? You can substitute the url of your choice if you prefer another data provider. Code and concept will be 99 percent the same for other providers that provide a REST API

  • @eeropar3543

    @eeropar3543

    3 жыл бұрын

    @@parttimelarry I'm new to algorithmic trading. I figured commenting here would be the best way to contact you. Since alpaca broker isn't available in Europe, Finland I don't know which broker I can use to set up a trading bot. Interactive Brokers is too complicated for EU use and setting up API. Can you help me, thanks in advance!

  • @benheynderickx1729

    @benheynderickx1729

    3 жыл бұрын

    @@eeropar3543 hi yes it's possible to scribe and obtain access to the alpaca account , I just did this excercise this weekend and works fine (I'm from Belgium so it should also work from Finland) ..

  • @laminegaye9073
    @laminegaye90733 жыл бұрын

    Hi Larry! Thanks a lot AS USUAL!! Great stuff! Would it be possible to rewrite/demonstrate populate_prices for IB (ib_insync). I tried with ib.reqHistoricalDataAsync inside of the get_price function but I am not getting that much of a boost, at least with the fetching bit (the db writing bit seems just fine. Am probably missing something... Again thanks a million!!

  • @parttimelarry

    @parttimelarry

    3 жыл бұрын

    Yes but it could be a while. I have a lot of videos I still have in the works. I definitely want to do more with IB on here as I feel I have talked about Alpaca a bit too much at this point.

  • @retrofutur1st
    @retrofutur1st2 жыл бұрын

    I don't know what to do with half a million records :O

  • @alexandremondaini
    @alexandremondaini2 жыл бұрын

    Hey Larry could you wrap it up your video series about a topic on a series of sequential videos on youtube ? I jumped from populate_stocks to populate_prices but I can't find a video of you populating the etf table. cheers, mate

  • @JellyBean012
    @JellyBean012 Жыл бұрын

    It's a shame this video is no longer useful due to the fact that Alpaca discontinued polygon. Would be great if you could release another approach as this series is great, but sucks I realized this after going through the 7 previous videos

  • @parttimelarry

    @parttimelarry

    Жыл бұрын

    The video is still useful. The most important concept is that it shows how to use Async IO, aiohttp, and asyncpg. The API request is the most trivial part since it's just a different URL being requested.

  • @JellyBean012

    @JellyBean012

    Жыл бұрын

    ​@@parttimelarry Yea - not your fault both platforms now charge a fee for the new APIs. I guess its possible with pyfinance but would take a while to download for all the symbols