Async Price Data Load with aiohttp and asyncpg

Поделиться
HTML-код
  • Опубликовано: 14 ноя 2024

Комментарии • 65

  • @parttimelarry
    @parttimelarry  3 года назад +3

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

  • @yourpersonaldatadealer2239
    @yourpersonaldatadealer2239 3 года назад +14

    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 8 месяцев назад

      Very valid tip

  • @TuranInsight
    @TuranInsight 3 года назад +2

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

  • @ballyoracle
    @ballyoracle 3 года назад +2

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

  • @michaelstreck0925
    @michaelstreck0925 3 года назад +2

    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
    @Rickynator13 3 года назад +2

    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!!

  • @CameronCrosby2468
    @CameronCrosby2468 3 года назад +2

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

  • @JalilAsghar
    @JalilAsghar 2 года назад +1

    Just awesome!

  • @bouzie8000
    @bouzie8000 8 месяцев назад

    Great lesson

  • @stephenambrose7224
    @stephenambrose7224 3 года назад

    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.

  • @binup28
    @binup28 3 года назад +2

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

  • @richinvest9067
    @richinvest9067 3 года назад +1

    Great, thanks Larry

  • @iamvazu2768
    @iamvazu2768 3 года назад +6

    Thanks for all the KT larry, this is gold 🥇

  • @degenviking6068
    @degenviking6068 3 года назад +1

    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
    @brianrowe1152 3 года назад +2

    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.

  • @AlexCarter881
    @AlexCarter881 3 года назад +1

    love this video - thanks :)

  • @grizthegriffdog9939
    @grizthegriffdog9939 3 года назад +1

    just amazing work

  • @thabangtsajoa716
    @thabangtsajoa716 3 года назад +1

    this is very infomative

  • @ballyoracle
    @ballyoracle 3 года назад +1

    this is awesome thank you bro

  • @AnikPatelIsABaws
    @AnikPatelIsABaws 3 года назад +1

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

  • @kylehammerberg3875
    @kylehammerberg3875 2 года назад +1

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

  • @mezseyoum5148
    @mezseyoum5148 3 года назад +1

    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 года назад +2

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

    • @mezseyoum5148
      @mezseyoum5148 3 года назад +1

      @@parttimelarry Perfect!! Thank you so much!

  • @skeletonmasterkiller
    @skeletonmasterkiller 3 года назад

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

    • @parttimelarry
      @parttimelarry  3 года назад +1

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

  • @samgeorgesullivan
    @samgeorgesullivan 3 года назад

    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

  • @colinmaharaj
    @colinmaharaj 3 года назад +1

    Looking to make my own gap scanner with IB

  • @shrimal
    @shrimal 4 месяца назад

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

    • @shrimal
      @shrimal 4 месяца назад

      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.

  • @milprodin81
    @milprodin81 3 года назад

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

  • @muhammadumair8126
    @muhammadumair8126 3 года назад

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

  • @DavidCVdev
    @DavidCVdev 3 года назад +1

    hi, the poligon api key requires payment any alternatives?

  • @adityawadnerkar8682
    @adityawadnerkar8682 3 года назад

    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 года назад +2

      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 :)

  • @eeropar3543
    @eeropar3543 3 года назад +1

    @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.

  • @Krisler12
    @Krisler12 3 года назад +2

    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!

  • @FinGeek4now
    @FinGeek4now 3 года назад

    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?

  • @HitAndMissLab
    @HitAndMissLab 3 года назад

    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?

  • @saranganrajendren2485
    @saranganrajendren2485 3 года назад +1

    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.

  • @ubaidulkhan
    @ubaidulkhan 3 года назад

    Does async leverage threads to achieve the parallelism?

  • @brijeshkhunt1857
    @brijeshkhunt1857 3 года назад +3

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

    • @parttimelarry
      @parttimelarry  3 года назад +2

      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 года назад +1

      @@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 года назад +1

      @@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
    @laminegaye9073 3 года назад

    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 года назад +1

      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.

  • @theodorelee4383
    @theodorelee4383 3 года назад

    How much memory does this take?

  • @alexandremondaini
    @alexandremondaini 3 года назад

    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

  • @retrofutur1st
    @retrofutur1st 3 года назад

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