Importers:

https://github.com/redstreet/beancount_reds_importers

https://github.com/redstreet/beancount_reds_importers/tree/master/beancount_reds_importers/vanguard
 
(well tested against several hundred files)
https://github.com/redstreet/beancount_reds_importers/tree/master/beancount_reds_importers/schwab_csv
 
(newer, tested against ~5 files)




On Sunday, February 14, 2021 at 7:45:55 AM UTC-8 Rahul Kuchhal 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/79305cc0-e7ac-47e9-859e-1c8cd6d677b0n%40googlegroups.com.

Reply via email to