jbms/beancount-import is what I use for those. The workflow is somewhat different than the bean-extract style.
On Sun, Feb 14, 2021, 07:46 Rahul Kuchhal <[email protected]> wrote: > Thank you! > > I see that adding new commodities is the recommended way then. > > Now on to finding Vanguard and Schwab importers or adopting your > Ameritrade importer for them. > > On Saturday, February 13, 2021 at 5:13:01 PM UTC-5 [email protected] wrote: > >> Good point about the price directive. I agree with your recommendation. >> Seems like the best way to handle it is to fix any reporting tooling that >> have problems with the flood of commodity symbols to aggregate or page >> their output. >> >> On Sat, Feb 13, 2021, 14:03 Martin Blais <[email protected]> wrote: >> >>> On Sat, Feb 13, 2021 at 1:34 PM Rahul Kuchhal <[email protected]> wrote: >>> >>>> I am also trying to figure out the best way to represent Sold options >>>> that open new positions. >>>> >>>> The suggested approach below works (kind of). >>>> >>>> 2020-12-28 * "Sell March 1 PUT 200 on HOOL" >>>> Assets:Brokerage:Taxable:HOOL:Options -1 HOOL_PUT_200_2021_03_01 >>>> {1000 USD} >>>> Assets:Brokerage:Taxable:Cash 1000 USD >>>> >>>> Seems like I would need to add a new currency to HOOL:Options account >>>> each time I open a new position. Overtime I suspect this may result in >>>> hundreds (or even thousands) of currencies attached to a single account. >>>> >>> >>> That's what I do. My importer creates them automatically from the TOS >>> log. >>> Here: >>> >>> https://github.com/blais/ameritrade/blob/master/examples/ameritrade2beancount.py >>> >>> I'm doing vertical and calendar spreads, collars, covered calls, and >>> more. It all works great with Beancount. >>> I can give a little demo of how to use bean-doctor to interactively >>> compute the P/L of an isolated sequence of trades if anyone cares. >>> >>> The importer above groups the trades by underlying, and typically these >>> are positions being rolled, but not always. I may initiate multiple >>> separate trades with distinct history in the same underlying (either >>> closing and reopening, or over different months). >>> >>> One of the issues is that "regular" activity - stock purchases and >>> sales, or short positions, as well as longer-term hedging on LEAPs, all >>> happen in the same account. I consider these logically distinct from the >>> premium / vol trading I do, so I want to separate them out. Here's how I do >>> this: when I import, I keep the active options traffic segregated to an >>> include file, one per week. I manually move the long term activity to my >>> main Beancount file, where it will remain forever. All the transactions are >>> tagged with TD's unique transaction ids, and when the importer runs it >>> automatically ignores anything that's been imported before, here: >>> >>> https://github.com/blais/ameritrade/blob/master/examples/ameritrade2beancount.py#L912 >>> >>> I have been keeping each week in a separate file, with custom scripts to >>> compute realized and unrealized P/L by week. >>> However, as I've increased my volume and am holding positions over a >>> longer time, I'm finding I need something more sophisticated. >>> So I've started slowly moving away from using Beancount for that >>> particular activity, and have been building code that can automatically >>> untangle each trade directly from the TOS log, following it through >>> multiple rolls over time, and compute the total P/L once all the related >>> legs are closed out. It's nice as I can do per-trade analysis on spreads >>> and all their history of managing them that follows over multiple weeks, as >>> a single "trade". >>> >>> As far as the main ledger goes, I think I'll probably end up summarizing >>> the impact of realized P/L on a weekly basis through a single transaction >>> in my main Ledger file. There's no reason I'd need to keep all that traffic >>> in my main file, even if I'd still use Beancount for it (which I'm not >>> entirely sure I will for that activity). >>> >>> >>> >>> 1) Is there any downside of attaching so many currencies to a single >>>> account? >>>> >>> >>> No. I do think that we may want to eventually add a regexp type of >>> commodity that can cover them all though. >>> You shouldn't have to insert them manually, have your importer do that. >>> So far it works well for me. >>> >>> >>> >>>> 2) Is there a way to represent these transactions using the same >>>> currency over and over (based on the cost basis and date of options) >>>> >>>> 2020-12-28 * "STO March 1 PUT 200 on HOOL" >>>> Assets:Brokerage:Taxable:HOOL:Options -1 Options {1000 USD} >>>> Assets:Brokerage:Taxable:Cash 1000 USD >>>> >>>> 2020-12-30 * "BTC March 1 PUT 200 on HOOL" >>>> Assets:Brokerage:Taxable:HOOL:Options 1 Options {1000 USD} @ 990 >>>> USD >>>> Assets:Brokerage:Taxable:Cash -990 USD >>>> Income:PnL >>>> >>>> >>> I wouldn't do that. Part of the point of using Beancount is to figure >>> out what your inventory is and different options have different prices over >>> time (I use the Price directive, works well). >>> Besides it would have to be OPTIONS. >>> >>> >>> On Tuesday, December 29, 2020 at 5:11:26 PM UTC-5 Rajath wrote: >>>> >>>>> Two good approaches. The one where each option symbol is commoditized >>>>> more inline with how stocks are managed. But the second approach is also >>>>> very interesting because it accounts for assignment risk. My brokerage >>>>> also >>>>> holds the collateral from available cash when I sell a put option, so >>>>> maybe >>>>> I can find a way to represent that too (which says exactly how much cash I >>>>> have on hand to trade). >>>>> >>>>> I will play around with this! >>>>> >>>>> On Tuesday, December 29, 2020 at 1:16:10 PM UTC-8 [email protected] >>>>> wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> I count only the money in my account and control the sum of possible >>>>>> assignments. I don't have an "entity" option. >>>>>> >>>>>> For the options, I sell puts of stocks I want to buy and I have the >>>>>> money for doing it. So if it's assigned, no problem ;-) >>>>>> >>>>>> On Tue, Dec 29, 2020 at 6:47 PM Martin Blais <[email protected]> wrote: >>>>>> >>>>>>> On Tue, Dec 29, 2020 at 11:24 AM Tuno Tunante <[email protected]> >>>>>>> wrote: >>>>>>> >>>>>>>> Hi, >>>>>>>> >>>>>>>> What I'm doing (I did the last yesterday) is like that: >>>>>>>> >>>>>>>> 2020-12-28 * "TD" "Sell Put MO 15 JAN 2021 Strike 40 @0.40" #Option >>>>>>>> #Put #MO #Sell >>>>>>>> Income:Options:TD -40.00 USD >>>>>>>> Expenses:Comission:TD 0.67 USD >>>>>>>> Assets:Account:TD 39.33 USD >>>>>>>> Assets:Options 4000.00 USD >>>>>>>> Liabilities:Opctions >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> Where's the option? >>>>>>> >>>>>>> >>>>>>> I do 6 or 7 per month. I use the Assets:Options and >>>>>>>> Liabilities:Options in order to have a complete view about the money I >>>>>>>> must >>>>>>>> reserve in case I'm assigned. >>>>>>>> >>>>>>> >>>>>>> Rule #1 of options trading: never get assigned! ;-) >>>>>>> >>>>>>> >>>>>>> >>>>>>>> Before each put, I check that Liabilities:Options is less that the >>>>>>>> money in Assets:account:TD >>>>>>>> >>>>>>>> Regards. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Tue, Dec 29, 2020 at 6:18 AM Rajath Agasthya < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> Yeah, I figured each option could be a new commodity. I don't do a >>>>>>>>> lot of option trades, so I'm okay with having more commodities until >>>>>>>>> something better turns up. >>>>>>>>> >>>>>>>>> The thing I'm not sure of is how to represent a trade where I'm >>>>>>>>> getting a credit (from selling a put or even a short sale of a >>>>>>>>> stock). I >>>>>>>>> can't quite seem to figure out the matching posting for this >>>>>>>>> transaction if >>>>>>>>> I represent receiving credit as a posting into a cash account such as >>>>>>>>> Assets:US:Schwab:Cash. Any thoughts on how to do this or an >>>>>>>>> example you can share? >>>>>>>>> >>>>>>>>> Thanks! >>>>>>>>> On Monday, December 28, 2020 at 5:04:37 PM UTC-8 [email protected] >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> On Mon, Dec 28, 2020 at 5:47 PM Rajath Agasthya < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> Hi all, >>>>>>>>>>> >>>>>>>>>>> First of all, thanks to all the contributors (especially Martin) >>>>>>>>>>> for this wonderful tool! I'm new to double entry accounting and >>>>>>>>>>> Beancount, >>>>>>>>>>> but I'm blown away at how simple yet powerful this tool is, >>>>>>>>>>> especially when >>>>>>>>>>> combined with Fava. >>>>>>>>>>> >>>>>>>>>>> I've been reading docs and I just started setting up my >>>>>>>>>>> beancount file. But as I setup my investment account, I'm a little >>>>>>>>>>> bit lost >>>>>>>>>>> as to how I should manage option trades. The trades where there is >>>>>>>>>>> a net >>>>>>>>>>> debit is straightforward (I think), but I'm not sure how to enter >>>>>>>>>>> trades >>>>>>>>>>> like selling a covered call or a put or a spread/multi-leg option >>>>>>>>>>> that >>>>>>>>>>> result in a credit. >>>>>>>>>>> >>>>>>>>>>> Are there some examples I can refer to on how to manage option >>>>>>>>>>> trades? The docs mention options trading as a future topic to be >>>>>>>>>>> tackled >>>>>>>>>>> and I unfortunately couldn't find anything in the mailing list >>>>>>>>>>> (perhaps I >>>>>>>>>>> didn't search properly). So if anyone can point me in the right >>>>>>>>>>> direction, >>>>>>>>>>> I would really appreciate it. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> I do options trading, but I only record simple options, never >>>>>>>>>> combos like this. >>>>>>>>>> - The option can be encoded in the symbol name. This makes a lot >>>>>>>>>> of new commodities to declare and put out of commissions. I haven't >>>>>>>>>> yet >>>>>>>>>> figured out what needs to be done to make this a bit nicer (e.g. >>>>>>>>>> allow user >>>>>>>>>> to define a commodity regex/pattern for these). >>>>>>>>>> - For stable asset types, I use leaf subaccounts; for options I >>>>>>>>>> don't (would be too many accounts, and it feels silly to create an >>>>>>>>>> account >>>>>>>>>> for a single position). >>>>>>>>>> - For options combinations/"strategies", if you have some way to >>>>>>>>>> trade all the legs instantly, you should be able to either (a) >>>>>>>>>> insert all >>>>>>>>>> the individual legs and their prices in a single transaction, or, if >>>>>>>>>> the >>>>>>>>>> product is already securitized by your broker, trade it like any >>>>>>>>>> other >>>>>>>>>> product (one leg with the derivative instrument). >>>>>>>>>> >>>>>>>>>> Hope this helps, you do have to get a bit creative if you trade >>>>>>>>>> options, but, well, you trade options, so you will be able to figure >>>>>>>>>> out >>>>>>>>>> something :-) >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Thanks, >>>>>>>>>>> Rajath >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> 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/51c57efc-8915-4edd-981a-cb997c1f143cn%40googlegroups.com >>>>>>>>>>> <https://groups.google.com/d/msgid/beancount/51c57efc-8915-4edd-981a-cb997c1f143cn%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/b12e5c7d-f2d7-4b9c-8131-3cac25b17810n%40googlegroups.com >>>>>>>>> <https://groups.google.com/d/msgid/beancount/b12e5c7d-f2d7-4b9c-8131-3cac25b17810n%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/CAM6BLCwOUD47fZz6o0WroYjvPHFhLcHYfSft6bdwiDW1sC%2B%2BSw%40mail.gmail.com >>>>>>>> <https://groups.google.com/d/msgid/beancount/CAM6BLCwOUD47fZz6o0WroYjvPHFhLcHYfSft6bdwiDW1sC%2B%2BSw%40mail.gmail.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/CAK21%2BhMp0mVafPWRtdPYgFiQ1GmPLfpZgfaY_fdJJ_oZW74gZA%40mail.gmail.com >>>>>>> <https://groups.google.com/d/msgid/beancount/CAK21%2BhMp0mVafPWRtdPYgFiQ1GmPLfpZgfaY_fdJJ_oZW74gZA%40mail.gmail.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/652e0445-c9a1-4b0b-9084-67672d3207cbn%40googlegroups.com >>>> <https://groups.google.com/d/msgid/beancount/652e0445-c9a1-4b0b-9084-67672d3207cbn%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/CAK21%2BhO_34Q_5k63ZfzP-8B%3DY%3DVg9CwYVQ4U8iL_ob_76jZabQ%40mail.gmail.com >>> <https://groups.google.com/d/msgid/beancount/CAK21%2BhO_34Q_5k63ZfzP-8B%3DY%3DVg9CwYVQ4U8iL_ob_76jZabQ%40mail.gmail.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/b1aaf15c-b4ba-4642-925b-acf958da0e36n%40googlegroups.com > <https://groups.google.com/d/msgid/beancount/b1aaf15c-b4ba-4642-925b-acf958da0e36n%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/CACGEkZvo4ez8xMjPQ_%2BoUkWmj_6SVvHtRou2ri9H0S6_kLh3cw%40mail.gmail.com.
