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, <jke...@gmail.com <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 beancount+...@googlegroups.com <javascript:>.
>> To post to this group, send email to bean...@googlegroups.com 
>> <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 beancount+unsubscr...@googlegroups.com.
To post to this group, send email to beancount@googlegroups.com.
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.

Reply via email to