Sure thing. Done: https://github.com/aamerabbas/beancount-coinmarketcap

On Thu, Mar 7, 2019 at 9:19 PM Martin Blais <[email protected]> wrote:

> Hi Aamer,
> Thanks for sharing your code.
> Perhaps the best way to share it would be to create a github repository.
> People can install code from there and keep track of updates you push as
> it evolves.
> It doesn't have to live in your beancount folder BTW, the path you specify
> merely has to be on your PYTHONPATH.
> Cheers,
>
>
>
> On Thu, Mar 7, 2019 at 11:37 AM Aamer <[email protected]> wrote:
>
>> Just hacked up my own price fetcher. Will attach it here in case anyone
>> finds it useful.
>>
>> Their API no longer gives historical prices for free, so this relies on
>> scraping (credit to this post:
>> https://medium.com/@danielcimring/downloading-historical-data-from-coinmarketcap-41a2b0111baf
>> ).
>>
>> In order to use:
>> 1.) Create folder "price_sources" in your beancount folder
>> 2.) Create an empty __init__.py file in this folder
>> 3.) Place my attached file price_sources/coinmarketcap.py
>> 4.) Add this as the source for your crypto commodity. For example, for
>> bitcoin, you'd add: "price: "USD:price_sources.coinmarketcap/bitcoin" as
>> the attribute. Note "bitcoin" corresponds to the coinmarketcap url (in this
>> case, the url is
>> https://coinmarketcap.com/currencies/bitcoin/historical-data/)
>> 5.) ???
>> 6.) Profit?!
>>
>> By the way, I am not a Python programmer, so this code probably sucks.
>>
>> Also, fair warning that Coinmarketcap blocks you if you send too many
>> requests; for this reason, I've cnofigured it to wait 1 second before
>> sending a request. Be a good internet citizen and don't abuse their
>> service, please!
>>
>>
>> On Monday, March 4, 2019 at 5:25:32 PM UTC+2, Aamer wrote:
>>>
>>> Somehow just saw this message. Thanks for sharing!
>>>
>>> On Friday, January 11, 2019 at 4:02:04 AM UTC+2, Vonpupp wrote:
>>>>
>>>> Sure @Aamer, it is on a github repo [1].
>>>>
>>>> I got it working when I was developing this but since then a lot of
>>>> things happened and now I don't remember how to setup the paths for it to
>>>> work, so you are on your own in this. If you manage to improve the README
>>>> or anything else for that matter I would be glad to receive PRs =)
>>>>
>>>> I hope it helps a little.
>>>>
>>>> [1]: https://github.com/vonpupp/beancount_cryptocompare
>>>>
>>>> On Wednesday, January 2, 2019 at 10:37:03 AM UTC-2, Aamer wrote:
>>>>>
>>>>> Vonpupp
>>>>>
>>>>> I'm looking for a price fetcher for coinmarketcap. Would you by any
>>>>> chance be willing to share your code? Would save me the hassle of having 
>>>>> to
>>>>> write one from scratch :-)
>>>>>
>>>>> On Monday, November 20, 2017 at 2:24:13 AM UTC+2, Vonpupp wrote:
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> Congratulations on beancount. I am new to it but I think it is an
>>>>>> amazing software, therefore I would like to take the most advantage of 
>>>>>> it.
>>>>>> This is actually my first message on the forum.
>>>>>>
>>>>>> I would like to use beancount with cryptocurrencies. I have may
>>>>>> doubts but I prefer to take one step at a time. What I would like to be
>>>>>> able to do first is to be able to see the my portfolio value at the 
>>>>>> present
>>>>>> time. For instance, let's assume the following file:
>>>>>>
>>>>>> ; -*- mode: org; mode: beancount; coding: utf-8; fill-column: 400; -*-
>>>>>> ;
>>>>>> ; Cheatsheet
>>>>>> ;
>>>>>> https://docs.google.com/document/d/1M4GwF6BkcXyVVvj4yXBJMX7YFXpxlxo95W6CpU3uWVc/edit
>>>>>>
>>>>>> option "title" "Crypto"
>>>>>> option "operating_currency" "ETH"
>>>>>> option "operating_currency" "GAS"
>>>>>> option "operating_currency" "LTC"
>>>>>> option "operating_currency" "NEO"
>>>>>>
>>>>>> plugin "beancount.plugins.book_conversions"
>>>>>> "Assets:Crypto:ETH,Income:Capital-gains"
>>>>>>
>>>>>> ;* Equity
>>>>>> ;2017-11-01 open Equity:Opening-Balances
>>>>>>
>>>>>> * Account declarations
>>>>>> ; Account1
>>>>>> 2017-08-18 open Assets:Crypto:ETH:Account1             ETH
>>>>>> 2017-08-18 open Assets:Crypto:LTC:Account1             LTC
>>>>>> ; Account2
>>>>>> 2017-08-18 open Assets:Crypto:ETH:Account2             ETH
>>>>>> ; Exchange
>>>>>> 2017-08-18 open Assets:Crypto:GAS:Exchange             GAS
>>>>>> 2017-08-18 open Assets:Crypto:NEO:Exchange             NEO
>>>>>>
>>>>>> 2017-08-18 open Expenses:Crypto:ETH:Balance            ETH
>>>>>> 2017-08-18 open Expenses:Crypto:GAS:Balance            GAS
>>>>>> 2017-08-18 open Expenses:Crypto:LTC:Balance            LTC
>>>>>> 2017-08-18 open Expenses:Crypto:NEO:Balance            NEO
>>>>>>
>>>>>> * Income
>>>>>> 2017-08-18 open Income:Capital-gains
>>>>>>
>>>>>> * Expenses
>>>>>> 2017-08-18 open Expenses:Financial:Commisions:USD
>>>>>>
>>>>>> * Transactions
>>>>>> 2017-11-19 * "Opening balance: Account1"
>>>>>>     Assets:Crypto:ETH:Account1                5.12561083 ETH
>>>>>>     Assets:Crypto:LTC:Account1                7.58990978 LTC
>>>>>>     Expenses:Crypto:ETH:Balance              -5.12561083 ETH
>>>>>>     Expenses:Crypto:LTC:Balance              -7.58990978 LTC
>>>>>>
>>>>>> 2017-11-19 * "Opening balance: Account2"
>>>>>>     Assets:Crypto:ETH:Account2                3.968560 ETH
>>>>>>     Expenses:Crypto:ETH:Balance              -3.968560 ETH
>>>>>>
>>>>>> 2017-11-19 * "Opening balance: Exchange"
>>>>>>     Assets:Crypto:NEO:Exchange                4 NEO
>>>>>>     Assets:Crypto:GAS:Exchange                0.18651499 GAS
>>>>>>     Expenses:Crypto:NEO:Balance              -4 NEO
>>>>>>     Expenses:Crypto:GAS:Balance              -0.18651499 GAS
>>>>>>
>>>>>> I am not experienced with accounting and english is not my primary
>>>>>> language, but I guess the file is in "accounting good shape" and it makes
>>>>>> sense somehow. If not please let me know.
>>>>>>
>>>>>> Now let's go to the point. Assuming that file I would like to be able
>>>>>> to issue a command on the command line and be able to see the portfolio 
>>>>>> in
>>>>>> USD or EUR at the present time value. I can query most of the coins 
>>>>>> using a
>>>>>> pip package, the question is, how I do that? I have read the "Prices in
>>>>>> Beancount" [1] google docs file, however there is no example and it would
>>>>>> be very useful to grasp a bit better how everything ties up. Is there any
>>>>>> example of fetcher module so I can build mine on top of it? Or if you are
>>>>>> aware of any module for prices that works with crypto that I could use 
>>>>>> out
>>>>>> of the box it would be even better.
>>>>>>
>>>>>> Please note that each coin might be on an exchange account or in a
>>>>>> wallet (account1 or account2). I would like to get the overview of this
>>>>>> sum, for instance when I refer to "ETH" I would like to see as it appears
>>>>>> on the balance, but at the current USD or EUR price, and so for the other
>>>>>> currencies.
>>>>>>
>>>>>> From what I understood about the prices document, the prices will be
>>>>>> fetched and saved on the beancount file automatically. I would like to do
>>>>>> this automatically on a weekly basis, so I guess cron is my friend here. 
>>>>>> I
>>>>>> guess it is wise to use a separated file and link them together somehow.
>>>>>>
>>>>>> I would also like (if possible) to have this on a web interface like
>>>>>> fava or similar if possible. I guess this might work automatically once 
>>>>>> the
>>>>>> prices are correctly fetched.
>>>>>>
>>>>>> Could you please point me into the right directions to get all these
>>>>>> things working properly?
>>>>>>
>>>>>> Thank you very much.
>>>>>>
>>>>>> [1]:
>>>>>> https://docs.google.com/document/d/1thYRAMell_QT1Da1F_laprSs6BlROZjyK_h3V8qHW9c/edit
>>>>>>
>>>>> --
>> You received this message because you are subscribed to the Google Groups
>> "Beancount" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/beancount/752a8ea4-cfde-4e0b-a161-99696cda9f79%40googlegroups.com
>> <https://groups.google.com/d/msgid/beancount/752a8ea4-cfde-4e0b-a161-99696cda9f79%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
> --
> You received this message because you are subscribed to the Google Groups
> "Beancount" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/beancount/CAK21%2BhPYvXDE-k6Ubo2dgOZqnZDTVA-4XjaV_-0T0SSCJ46K-g%40mail.gmail.com
> <https://groups.google.com/d/msgid/beancount/CAK21%2BhPYvXDE-k6Ubo2dgOZqnZDTVA-4XjaV_-0T0SSCJ46K-g%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Beancount" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beancount/CAOHSxbkZrNEh8NLF%2Bp68z6YM%3DOtm_j7nBCbL-WKEFiNjv0ANLg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to