So what I ended up doing was tracking the lot for all transactions:

2018-03-22 * "Buy ETH"
Assets:Coinbase:ETH 2.13226701 ETH {443.62 GBP}
Assets:Crypto:Fees 14.09 GBP
Equity:Opening-Balances

2018-03-22 * "Send ETH to Kraken"
Assets:Kraken:ETH 2.13197651 ETH {443.62 GBP}
Assets:Coinbase:ETH -2.13197651 ETH {443.62 GBP,2018-03-22}
Equity:Opening-Balances

2018-03-22 * "Convert ETH to EOS"
Assets:Kraken:EOS 90 EOS {0.0122067222 ETH}
Assets:Kraken:ETH -1.098605 ETH {443.62 GBP,2018-03-22}
Equity:Opening-Balances

2018-03-22 * "Send ETH to Binance"
Assets:Binance:ETH 1.02551 ETH {443.62 GBP}
Assets:Crypto:Fees 0.005 ETH
Assets:Kraken:ETH -1.02551 ETH {443.62 GBP,2018-03-22}
Equity:Opening-Balances

2018-03-22 * "Send EOS to Binance"
Assets:Binance:EOS 89.5 EOS {0.0122067222 ETH}
Assets:Crypto:Fees 0.5 EOS
Assets:Kraken:EOS -89.5 EOS {0.0122067222 ETH,2018-03-22}
Equity:Opening-Balances

2018-03-22 * "Convert ETH to XLM"
Assets:Binance:XLM 2324 XLM {0.0004411652 ETH}
Assets:Binance:ETH -1.025268 ETH {443.62 GBP,2018-03-22}
Equity:Opening-Balances

There's always a rest that I must put on Opening-Balances.
Whenever I transfer or convert a crypto I try to track which lot I'm 
talking about.

The problem I have now is that I have lots of different types of EOS 
holding for example. Each one with a different 'Cost Currency'.
So what I'm trying to do is to convert all Cost Currencies to GBP (by 
simulating a sell and a buy from GBP).

Eg:
Assets:Coinbase:EOS -89.1 EOS {0.0122067222 ETH,2018-03-31}
Assets:Coinbase:EOS 89.1 EOS {4.65 GBP}
Assets:Coinbase:EOS -151.784400 EOS {0.0150213065 ETH,2020-01-06}
Assets:Coinbase:EOS 151.784400 EOS {5 GBP}
Assets:Coinbase:EOS -23.907400 EOS {0.0158946602 ETH,2020-01-06}
Assets:Coinbase:EOS 23.907400 EOS {5 GBP}

The only thing I think is being missed in the documentation is a big 
beancount file with lots of examples. I know that there are some sparse 
examples in the google docs, but having a big ledger file with every day 
examples and all well commented would be very useful to understand how 
people should do day to day transactions.

Maybe a new documentation section on the best patterns to deal with crypto?

Thanks


On Saturday, 28 March 2020 18:50:41 UTC, Martin Blais wrote:
>
> Be careful with NONE booking. "Works" means there will be no lot matching. 
> The only meaningful numbers you can get out of that are
> - Sum of units over all postings in that account, currency
> - Sum of cost bases over all postings in that account, currency
> If you're not getting an error that doesn't mean it's doing what you want 
> it to do.
> (What do you want it to do?)
>
>
>
> On Sat, Mar 28, 2020 at 2:43 PM Makdisse <[email protected] <javascript:>> 
> wrote:
>
>> Thanks for that Red!
>> It works fine with "NONE". And I think I understand how I must track the 
>> holding when converting from a currency to another.
>>
>>
>> On Saturday, 28 March 2020 07:46:27 UTC, Red S wrote:
>>>
>>> Makdisse,
>>> 1) Include this line in your earlier source:
>>> 2000-01-01 open Assets:Coinbase:ETH "NONE"
>>>
>>> and everything would work fine. However, you won't get strict lot 
>>> reduction, but rather, a mix of positive and negative lots. The point here 
>>> is to help you build your mental model of how beancount works. Read 
>>> Martin's response above and see if it makes better sense now. Hint: your 
>>> source makes beancount think you shorted ETH.
>>>
>>> 2)     Assets:Coinbase:ETH {443.62 GBP}    <-- ADDED PRICE
>>>
>>> That's not valid syntax. You'd have to specify the number you're 
>>> reducing the lot by.along with the price.
>>>
>>> 3) try bean-doctor context on the *prior* transaction, and it shows you 
>>> the state of things.
>>>
>>> On Friday, March 27, 2020 at 11:26:06 AM UTC-7, Makdisse wrote:
>>>>
>>>> I've tried adding the ETH price to make sure beancount knows against 
>>>> which account it should match:
>>>>
>>>> 2018-03-22 * "Buy ETH"
>>>> Assets:Coinbase:ETH 2.13226701 ETH {443.62 GBP}
>>>> Assets:Coinbase:Fees 14.09 GBP
>>>> Equity:Opening-Balances
>>>>
>>>> 2018-03-22 * "Convert ETH to XLM"
>>>> Assets:Binance:XLM 2324 XLM @@ 1.025268 ETH
>>>> Assets:Coinbase:ETH {443.62 GBP}    <-- ADDED PRICE
>>>>
>>>> 2018-03-22 * "Convert ETH to EOS"
>>>> Assets:Kraken:EOS 90 EOS @@ 1.098605 ETH
>>>> Assets:Coinbase:ETH {443.62 GBP}    <-- ADDED PRICE
>>>>
>>>> 2018-04-03 * "Buy ETH"
>>>> Assets:Coinbase:ETH 4.81321544 ETH {339.82 GBP}
>>>> Assets:Coinbase:Fees 24.37 GBP
>>>> Equity:Opening-Balances
>>>>
>>>> Now I get a different error: 'Transaction does not balance'. Which 
>>>> doesn't make sense to me because the math seems to be correct.
>>>>
>>>> I've read all documentation you wrote, can you see what mental model 
>>>> I'm missing about how beancount works?
>>>>
>>>> I've tried a lot of different variations to these 4 transactions and 
>>>> every time I get a different error.
>>>>
>>>>
>>>>
>>>> On Friday, 27 March 2020 12:36:55 UTC, Martin Blais wrote:
>>>>>
>>>>> Your balance has a mix of positive and negative values.
>>>>> See error message, it includes the balance it is trying to match 
>>>>> against.
>>>>> Its not showing the context because the transaction failed to match, 
>>>>> that's a catch-22 but that we need to fix, failing transactions aren't 
>>>>> properly handled by the context command.
>>>>>
>>>>> On Fri, Mar 27, 2020, 05:06 Makdisse <[email protected]> wrote:
>>>>>
>>>>>> Hi Martin,
>>>>>> Thanks for your answer. But I still can't find a solution.
>>>>>>
>>>>>> The ETH account balance is 2.13226701 ETH before the 2 convert 
>>>>>> transactions.
>>>>>>
>>>>>> I then deduct 1.025268+1.098605 == 2.12 from that account.
>>>>>>
>>>>>> And then on the erroring transaction I try to add more ETH to the 
>>>>>> account: Assets:Coinbase:ETH 4.81321544 ETH {339.82 GBP}
>>>>>>
>>>>>> When I run bean-doctor I get an empty transaction:
>>>>>> Hash:bde2c9df7c3195dfa5bd9e4b68ed2261
>>>>>> Location: /example.beancount:31
>>>>>>
>>>>>>
>>>>>> ------------ Balances before transaction
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> ------------ Transaction
>>>>>>
>>>>>>
>>>>>> 2018-04-03 * "Buy ETH"
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> ------------ Balances after transaction
>>>>>>
>>>>>>
>>>>>> And if I try to add {443.62 GBP} to the ETH deduction of both 
>>>>>> conversions (to specify that the conversion should deduct from the 
>>>>>> `Assets:Coinbase:ETH 2.13226701 ETH {443.62 GBP}` account) I get a 
>>>>>> 'Transaction does not balance' error.
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Friday, 27 March 2020 04:06:41 UTC, Martin Blais wrote:
>>>>>>>
>>>>>>> You probably have other transactions before this one that make the 
>>>>>>> balance of that account negative, and so it's trying to match that 
>>>>>>> positive 
>>>>>>> ETH posting against existing positions with a cost basis of 339.82.
>>>>>>>
>>>>>>> Run bean-doctor context with the filename and line number around 
>>>>>>> that transaction to see the inventory of the Assets:Coinbase:ETH 
>>>>>>> account 
>>>>>>> just before the transaction gets applied.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Mar 26, 2020 at 7:58 PM Makdisse <[email protected]> wrote:
>>>>>>>
>>>>>>>> Hi there,
>>>>>>>>
>>>>>>>> I'm moving from Pocketsmith to beancount and I've hit a wall.
>>>>>>>> I've attached a file with just 4 transactions where I'm getting the 
>>>>>>>> error:
>>>>>>>> >> bean-check example.beancount
>>>>>>>> example.beancount:32:      No position matches 
>>>>>>>> "Posting(account='Assets:Coinbase:ETH', 
>>>>>>>> units=4.81321544 ETH, cost=CostSpec(number_per=Decimal('339.82'), 
>>>>>>>> number_total=None, currency='GBP', date=None, label=None, 
>>>>>>>> merge=False), 
>>>>>>>> price=None, flag=None, meta={'filename': 'example.beancount', 
>>>>>>>> 'lineno': 
>>>>>>>> 33})" against balance (-2.123873000000000000000000000 ETH, 
>>>>>>>> 2.13226701 ETH {443.62 GBP, 2018-03-22})
>>>>>>>>
>>>>>>>>
>>>>>>>>    2018-04-03 * "Buy ETH"
>>>>>>>>      Assets:Coinbase:ETH      4.81321544 ETH {339.82 GBP}
>>>>>>>>      Assets:Coinbase:Fees          24.37 GBP
>>>>>>>>      Equity:Opening-Balances
>>>>>>>>
>>>>>>>> I have read all documents on 
>>>>>>>> https://docs.google.com/document/d/1RaondTJCS_IUPBHFNdT8oqFKJjVJDsfsn6JEjBG04eA/edit
>>>>>>>>  and 
>>>>>>>> I still can't understand what I'm doing wrong.
>>>>>>>>
>>>>>>>> I must be missing some major mental model.
>>>>>>>>
>>>>>>>> Can you guys please help understand what I'm doing wrong? 
>>>>>>>>
>>>>>>>> Thanks
>>>>>>>>
>>>>>>>> -- 
>>>>>>>> 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 view this discussion on the web visit 
>>>>>>>> https://groups.google.com/d/msgid/beancount/fdcd6381-f782-4a42-8f92-56050774086e%40googlegroups.com
>>>>>>>>  
>>>>>>>> <https://groups.google.com/d/msgid/beancount/fdcd6381-f782-4a42-8f92-56050774086e%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>>> .
>>>>>>>>
>>>>>>> -- 
>>>>>> 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 view this discussion on the web visit 
>>>>>> https://groups.google.com/d/msgid/beancount/f51ce28c-54c6-4097-b3df-69be98d90a09%40googlegroups.com
>>>>>>  
>>>>>> <https://groups.google.com/d/msgid/beancount/f51ce28c-54c6-4097-b3df-69be98d90a09%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>>
>>>>> -- 
>> 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 view this discussion on the web visit 
>> https://groups.google.com/d/msgid/beancount/854b691c-1c80-4cdf-a327-6374b65bf18b%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/beancount/854b691c-1c80-4cdf-a327-6374b65bf18b%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/beancount/41a5fece-c99b-4341-a95c-e350730f1661%40googlegroups.com.

Reply via email to