Thanks for pointing me in the direction of the commands and document
resources I can use to debug my file. I'll re-read your trading
documentation, as well as the docs on beancount's many tools. I had no idea
the book_conversions plugin is ancient.
Regarding my Bitcoin use, my primary use is to buy it with USD in the US
(where I get paid) and sell it for EUR here in Europe (where I live and
work). Its significantly cheaper and faster than using traditional
international wires or a service like Transferwise. Plus by using bisq.io I
don't have to trust a third-party company with my money, other than my
banks---which I already have to trust. I also occasionally use it to buy
stuff our family needs on Amazon at a discount using purse.io. However, due
to a super-busy work and family period the past two years, I've neglected
keeping my journal file current, and that's created a ton of work for me
(and its forcing me to dig in to learn interesting things and revive my
programming skills).
About those Ethereum transactions - last year I did some trading between
Bitcoin and Ethereum, but then I stopped, due to the time-consuming nature
of accounting for those transactions... I've more important things to spend
my time on.
Thanks again for your response.
Le dimanche 13 août 2017 05:41:16 UTC+2, Martin Blais a écrit :
>
> Ouf... you're opening a number of cans of worms here.
>
>
> (1)
> The error you see happens because your 0.84429 reducing transaction has
> nothing to match against. You didn't add anything at a cost basis to reduce
> against. Check out the "bean-doctor context" command to help you debug
> what's going on, and "bean-query print".
>
> But mainly, you should not be using the book_conversions plugin. This is
> ancient and if I recall it was created to answer a question on the
> mailing-list (search for it for context) before FIFO support was
> implemented. Since then, Beancount has had proper support for FIFO, LIFO
> booking.
>
>
> (2)
> Now, the other can of worms you're opening is that you're using Bitcoin.
> Is Bitcoin to be used as a currency or as an investment? If it's to be used
> as a currency, you need not care about its cost basis and such. But more
> likely, if you're using Bitcoin like most of the other people - to
> speculate - surely you want to handle it like an investment, that is,
> tracking cost basis. Beancount can do this, though when you use your
> Bitcoins to buy things, you'll have to book reductions like sales. It's not
> difficult, but you'll have to use syntax that hints the expense is to be
> reduces with a cost basis (e.g., {}). There's no great intermediate
> solution here.
>
> So assuming you're happy doing that (that is, treating Bitcoins like
> investments) you'll have to be cognizant of writing appropriate syntax
> every time you add new bitcoins: supplying the cost basis when you add
> Bitcoins to an account, and making sure to let Beancount know reductions of
> Bitcoins from an account are to be carried out with the cost basis (using
> as little as {} should be possible, since FIFO should kick in).
>
> I would suggest you should become intimately familiar with this doc:
> http://furius.ca/beancount/doc/trading, and the FIFO and LIFO, etc.
> booking method bits of the language syntax documentation, and start
> treating all deposits and withdrawals of Bitcoins from accounts like you
> would shares of a company.
>
>
> (3)
> Thirdly, you're attempting to use both Bitcoin and Ethereum, both of which
> surely you'll be wanting to track cost basis for. It's not impossible, but
> you're making your life miserable if you're going to use this for any real
> world expenses. The analogy is like if you were going to buy shares of
> AAPL, and every time you go to the coffee shop you'll pay coffee with some
> fractions of shares of AAPL and always have to choose which lot to choose
> from every single time (yes, Beancount can figure out which lot to use, but
> still, you have to indicate as such). I don't think there's any system that
> is designed with that use case as the common case, neither Ledger,
> Beancount or any other, though Beancount comes the closest to having the
> features you need to do that.
>
> I think if you have the time you can probably come up with a clever system
> of accounts where you set aside some amount of Bitcoins to a separate
> account stripping away the cost basis and when you spend you always book
> against this account. This would segregate all the cost basis tracking and
> trading activities to another set of accounts. I think that would be a
> practical and probably nicely workable compromise. I haven't tried (and
> cannot afford to right now) but I think there's everything there to support
> that use case already.
>
>
>
>
>
> On Sat, Aug 12, 2017 at 5:02 PM, <[email protected] <javascript:>> wrote:
>
>> Hello,
>>
>> So, since I got the plugin for dealing with lots and capital gains
>> running, I'm attempting to import my balanced ledger journal files into
>> beancount so I can have the plugin deal with reducing my lots rather than
>> doing it manually. But I've a significant number of transactions that
>> beancount says aren't balanced, in spite of their balancing in ledger.
>> Here's one example (including my header incase I missed something there):
>>
>> ; -*- mode: org; mode: beancount; coding: utf-8; fill-column: 400; -*-
>>
>> option "title" "My Personal Ledger"
>> option "operating_currency" "BTC"
>> option "operating_currency" "ETH"
>>
>>
>> plugin "beancount.plugins.book_conversions"
>> "Assets:Crypto:Ethereum,Income:Capital-gains"
>>
>> * Equity
>> 2015-01-01 open Equity:Opening-Balances
>>
>> * Account declarations
>> 2015-01-01 open Assets:Crypto:Bitcoin BTC
>> 2015-01-01 open Assets:Crypto:Ethereum ETH
>> 2015-01-01 open Expenses:Crypto:NetworkFees BTC
>>
>> * Income
>> 2015-01-01 open Income:Capital-gains
>>
>> * Expenses
>> 2015-01-01 open Expenses
>>
>> * Transactions
>> 2015-01-01 * ""Opening Bank balance""
>> Assets:Crypto:Bitcoin 0.05000000 BTC
>> Assets:Crypto:Ethereum 1.00000000 ETH
>> Equity:Opening-Balances
>>
>> 2016-08-13 * "Ethereum sale "
>> Assets:Crypto:Ethereum -0.84429 ETH {0.02055 BTC, 2016-08-09} @
>> 0.01995 BTC
>> trades: "trade-570f1d77bece"
>> Income:Capital-gains
>> Assets:Crypto:Bitcoin 0.01684358 BTC
>>
>>
>> bean-check complains about a half a satoshi (which can't exist in the
>> real world, only in spreadsheets) not balancing:
>>
>> /home/joel/beancount/temp2.bc:1333: Transaction does not balance: (-
>> 0.0000000055 BTC)
>>
>> 2016-08-13 * "Ethereum sale "
>> Assets:Crypto:Ethereum -0.84429 ETH {0.02055 BTC, 2016-08-09} @
>> 0.01995 BTC
>> trades: "trade-570f1d77bece"
>> Income:Capital-gains 0.0005065740 BTC
>>
>> Assets:Crypto:Bitcoin 0.01684358 BTC
>>
>> However, all the transaction in that file were balancing in ledger,
>> before I converted them to beancount format. I checked this one by running
>> it through ledger after commenting out the "trades" line
>>
>> 2016-08-13 * "Ethereum sale "
>> Assets:Crypto:Ethereum -0.84429 ETH {0.02055 BTC, 2016-08-09} @
>> 0.01995 BTC
>> ;trades: "trade-570f1d77bece"
>> Income:Capital-gains
>> Assets:Crypto:Bitcoin 0.01684358 BTC
>>
>> and got the following result:
>>
>> joel@bregalad:~/beancount$ ledger -f temp3.dat bal
>> 0.01684358 BTC
>> -0.84429 ETH Assets:Crypto
>> 0.01684358 BTC Bitcoin
>> -0.84429 ETH Ethereum
>> 0.00050658 BTC Income:Capital-gains
>> --------------------
>> 0.01735016 BTC
>> -0.84429 ETH
>> joel@bregalad:~/beancount$ nano temp3.dat
>> joel@bregalad:~/beancount$ ledger -f temp3.dat bal
>> 0.01684358 BTC
>> -0.84429 ETH Assets:Crypto
>> 0.01684358 BTC Bitcoin
>> -0.84429 ETH Ethereum
>> 0.00050658 BTC Income:Capital-gains
>> --------------------
>> 0.01735016 BTC
>> -0.84429 ETH
>>
>> Any ideas what I'm missing in beancount? Or is there a way I can tell it
>> to force anything less than a satoshi(0.00000001 BTC) to balance?
>>
>> And another issue I don't understand:
>>
>> In the same file, I had four transactions that resulted in the following
>> output from bean-check:
>> Could not match position Posting(account='Assets:Crypto:Ethereum', units
>> =-44.08 ETH, cost=None, price=0.02439024 BTC, flag=None, meta={'filename'
>> : '/home/joel/beancount/temp2.bc', 'lineno': 99})
>>
>> The offending transaction here (same header as above, as its the in the
>> same beancount file) is:
>>
>> 2016-06-05 * "Sell ETH"
>> Assets:Crypto:Bitcoin 1.0751 BTC
>> Assets:Crypto:Ethereum -44.08 ETH @ 0.02439024 BTC
>> ; CSV: 06-05-2016,10:45:13 AM,Sell ETH via Bitsquare,a4453750,,,
>> 1.0751 BTC,0.02439024 BTC,44.08 ETH,Completed
>> ; Imported: 2017-07-15
>> ; Price per coin: 0.02439024 BTC
>> ; Time: 10:45:13 AM
>> ; Trade Status: Completed
>> ; UUID: 7d96c7ac8441d01fbfa81c64628b5b963180c3f7
>>
>> Here again the transaction balances when I ran it through ledger,
>> unchanged from above. I don't understand why it could not match the
>> position posting. Does that mean that there's not enough ETH in the lots
>> inventory and I'm missing a transaction?
>>
>> Thanks,
>>
>> Joel
>>
>> --
>> 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] <javascript:>.
>> To post to this group, send email to [email protected]
>> <javascript:>.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/beancount/23f40716-a471-4bac-8c24-d33a7ee8f6aa%40googlegroups.com
>>
>> <https://groups.google.com/d/msgid/beancount/23f40716-a471-4bac-8c24-d33a7ee8f6aa%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/231f64f9-a5c3-48c1-943c-131ef298b35e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.