On Mon, Jan 4, 2021 at 10:40 AM Peter <tobias.h.pub...@gmail.com> wrote:
> To be frank, I think I don't fully understand your reply to the problem. > Just showing how to debug the issue. > > The context of the first transaction is just fine, yes. > The only USDT lot in the Assets:Crypto:USDT:Binance account is reduced by > the 0.134… USDT and expenses are correctly set. > These are the changes you're applying to that account: Assets:Crypto:USDT:Binance 134.40876000 USDT {0.83159490 EUR} @ 0.83159490 EUR Assets:Crypto:USDT:Binance -0.13440876 USDT {0.83159490 EUR} @ 0.83159490 EUR Assets:Crypto:USDT:Binance 436.86293686 USDT {0.83161458 EUR} @ 0.83161458 EUR Assets:Crypto:USDT:Binance -0.43686294 USDT {0.83161458 EUR} @ 0.83161458 EUR The problem is a subtle issue with self-reductions (reductions of a position added within the transaction itself). Reductions are applied on the inventories before the transaction, and not in order. It's a very long explanation why in the general case it's not trivial to just apply them within the transaction, but I think that's the problem, the 4th posting is attempting to reduce the inventory resulting from the first two, it doesn't see the 3rd one. I'd like to come up with a better (and still general) booking algorithm in v3, which handles this. > > But it's not just about bean-context/the context of the first txn. I > imported several transactions of this "type". > This "breaks" the whole file (I'm getting a "bazillion" errors of this > type) and thus a proper calculation of PnL and remaining lots, etc — or am > I mistaken? > Yes if you do the same everywhere you'll encounter the same issue > I don't understand why beancount isn't able to find the lot in the second > txn. I mean, it did find the right one in the first txn? > > Isn't there anything I could do? Except separating the txn into an "actual > txn" and fee txn? > Having to rewrite all of the txn to separate the actual transaction and > the fees would be cumbersome and I really dislike the idea to have > separated trade and fee expense transactions. > Not sure I have a great solution for you right now Wait for v3 Or split them > > > > ards > > bl...@furius.ca schrieb am Montag, 4. Januar 2021 um 15:15:37 UTC+1: > >> The context command will not work on the last txn because of the way >> errors are handled right now (will be fixed in v3 with parser changes), but >> you can get context on the prior transaction to see the remaining >> inventory's balances which are going to be the input to the last >> transaction to match against. >> >> >> bean-doctor context btc2.beancount 17 >> Hash:64d489e8797bf562fdc15f7a890fe5e5 >> Location: /home/blais/r/q/beancount-data/user/tobiash/btc2.beancount:10 >> >> ------------ Balances before transaction >> >> Assets:Crypto:BTC:Binance 0.1 BTC {16000 EUR, >> 2020-12-15} >> >> Assets:Cash:Binance >> >> Assets:Crypto:USDT:Binance >> >> Expenses:Commission:Binance >> >> Income:Day-trading >> >> >> ------------ Transaction >> >> >> 2020-12-17 * "Trade BTCUSDT: SELL BTC for USDT" >> orderId: "123456789-01" >> time: "08:50 " >> Assets:Cash:Binance 111.77364000 EUR >> ; 111.77364000 EUR >> Assets:Crypto:BTC:Binance -0.00600000 BTC {16000.00000000 EUR, >> 2020-12-15} @ 18628.94000000 EUR ; -96.00000000 EUR >> Assets:Crypto:USDT:Binance 134.40876000 USDT {0.83159490 EUR, >> 2020-12-17} @ 0.83159490 EUR ; 111.7736393313240000 EUR >> Assets:Cash:Binance -111.77364000 EUR >> ; -111.77364000 EUR >> Assets:Crypto:USDT:Binance -0.13440876 USDT {0.83159490 EUR, >> 2020-12-17} @ 0.83159490 EUR ; -0.1117736393313240 EUR >> Expenses:Commission:Binance 0.13440876 USDT @ 0.83159490 EUR >> ; 0.1117736393313240 EUR >> Income:Day-trading -15.77363933 EUR >> ; -15.77363933 EUR >> >> >> Residual: (0.0000000013240000 EUR) >> Tolerances: BTC=5E-9, EUR=5E-9, USDT=5E-9 >> Basis: (15.6618656919926760 EUR) >> >> ------------ Balances after transaction >> >> * Assets:Crypto:BTC:Binance 0.09400000 BTC {16000 EUR, >> 2020-12-15} >> >> Assets:Cash:Binance >> >> * Assets:Crypto:USDT:Binance 134.27435124 USDT {0.83159490 EUR, >> 2020-12-17} >> >> * Expenses:Commission:Binance >> 0.13440876 USDT >> >> * Income:Day-trading >> -15.77363933 EUR >> >> >> On Mon, Jan 4, 2021 at 8:56 AM Peter <tobias....@gmail.com> wrote: >> >>> Hi, >>> >>> having the following example file, I'm getting the error: >>> >>> Test.bean:21: No position matches >>> "Posting(account='Assets:Crypto:USDT:Binance', units=-0.43686294 USDT, >>> cost=CostSpec(number_per=Decimal('0.83161458'), number_total=None, >>> currency='EUR', date=None, label=None, merge=False), price=0.83161458 EUR, >>> flag=None, meta={'filename': >>> '/media/Daten/03-Finanzen/00-Beancount/Test.BTCUSDT2.bean', 'lineno': 28})" >>> against balance (134.27435124 USDT {0.83159490 EUR, 2020-12-17}) >>> >>> *File* >>> >>> option "booking_method" "FIFO" >>> option "operating_currency" "EUR" >>> plugin "beancount.plugins.auto_accounts" >>> >>> 2020-12-15 * "" "Trade BTCUSDT: SELL BTC for USDT" >>> Assets:Crypto:BTC:Binance 0.1 BTC {16000 EUR} @ 16000 >>> EUR >>> Equity:Opening -0.1 BTC {16000 EUR} @ 16000 >>> EUR >>> >>> 2020-12-17 * "" "Trade BTCUSDT: SELL BTC for USDT" >>> time: "08:50 " >>> orderId: "123456789-01" >>> Assets:Cash:Binance 111.77364000 EUR >>> Assets:Crypto:BTC:Binance -0.00600000 BTC {} @ 18628.94000000 >>> EUR >>> Assets:Crypto:USDT:Binance 134.40876000 USDT {0.83159490 EUR} @ >>> 0.83159490 EUR >>> Assets:Cash:Binance -111.77364000 EUR >>> Assets:Crypto:USDT:Binance -0.13440876 USDT {0.83159490 EUR} @ >>> 0.83159490 EUR >>> Expenses:Commission:Binance 0.13440876 USDT @ 0.83159490 EUR >>> Income:Day-trading >>> >>> >>> 2020-12-17 * "" "Trade BTCUSDT: SELL BTC for USDT" >>> time: "08:50 " >>> orderId: "123456789-02" >>> Assets:Cash:Binance 363.30158788 EUR >>> Assets:Crypto:BTC:Binance -0.01950200 BTC {} @ 18628.94000000 >>> EUR >>> Assets:Crypto:USDT:Binance 436.86293686 USDT {0.83161458 EUR} @ >>> 0.83161458 EUR >>> Assets:Cash:Binance -363.30158788 EUR >>> Assets:Crypto:USDT:Binance -0.43686294 USDT {0.83161458 EUR} @ >>> 0.83161458 EUR >>> Expenses:Commission:Binance 0.43686294 USDT @ 0.83161458 EUR >>> Income:Day-trading >>> >>> I can't figure out why I'm gettig the error because the transaction is >>> basically the same as the first one. And the first transaction parses >>> without error. >>> Furthermore, if I "split" the second transaction and move the commission >>> expenses into a seperate transaction, I'm getting no error: >>> >>> option "booking_method" "FIFO" >>> option "operating_currency" "EUR" >>> plugin "beancount.plugins.auto_accounts" >>> >>> 2020-12-15 * "" "Trade BTCUSDT: SELL BTC for USDT" >>> Assets:Crypto:BTC:Binance 0.1 BTC {16000 EUR} @ 16000 >>> EUR >>> Equity:Opening -0.1 BTC {16000 EUR} @ 16000 >>> EUR >>> >>> 2020-12-17 * "" "Trade BTCUSDT: SELL BTC for USDT" >>> time: "08:50 " >>> orderId: "123456789-01" >>> Assets:Cash:Binance 111.77364000 EUR >>> Assets:Crypto:BTC:Binance -0.00600000 BTC {} @ 18628.94000000 >>> EUR >>> Assets:Crypto:USDT:Binance 134.40876000 USDT {0.83159490 EUR} @ >>> 0.83159490 EUR >>> Assets:Cash:Binance -111.77364000 EUR >>> Assets:Crypto:USDT:Binance -0.13440876 USDT {0.83159490 EUR} @ >>> 0.83159490 EUR >>> Expenses:Commission:Binance 0.13440876 USDT @ 0.83159490 EUR >>> Income:Day-trading >>> >>> >>> 2020-12-17 * "" "Trade BTCUSDT: SELL BTC for USDT" >>> time: "08:50 " >>> orderId: "123456789-02" >>> Assets:Cash:Binance 363.30158788 EUR >>> Assets:Crypto:BTC:Binance -0.01950200 BTC {} @ 18628.94000000 >>> EUR >>> Assets:Crypto:USDT:Binance 436.86293686 USDT {0.83161458 EUR} @ >>> 0.83161458 EUR >>> Assets:Cash:Binance -363.30158788 EUR >>> ; Assets:Crypto:USDT:Binance -0.43686294 USDT >>> {0.83161458 EUR} @ 0.83161458 EUR >>> ; Expenses:Commission:Binance 0.43686294 USDT @ 0.83161458 EUR >>> Income:Day-trading >>> >>> 2020-12-17 * "" "Trade BTCUSDT: SELL BTC for USDT" >>> Assets:Crypto:USDT:Binance -0.43686294 USDT {0.83161458 EUR} @ >>> 0.83161458 EUR >>> Expenses:Commission:Binance 0.43686294 USDT @ 0.83161458 EUR >>> >>> What am I doing wrong in the second transaction that beancount can't >>> figure out the correspoding lot? >>> >>> Regards >>> >>> -- >>> 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. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/beancount/aa5b7b54-9bd1-4308-b872-7d3e52b1ef71n%40googlegroups.com >>> <https://groups.google.com/d/msgid/beancount/aa5b7b54-9bd1-4308-b872-7d3e52b1ef71n%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 beancount+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/beancount/67084077-9fca-4135-9edc-a13985fd36can%40googlegroups.com > <https://groups.google.com/d/msgid/beancount/67084077-9fca-4135-9edc-a13985fd36can%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 beancount+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/beancount/CAK21%2BhP6K1eDQ78detrAo93cPCD-w_d2RT57mbjx_kmy8jJEmg%40mail.gmail.com.