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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to