Sunday, March 8, 2020

"Anything thing can happen at any time" ... and today it did!

Coronavirus craziness abounds ... I was a bit shocked on Friday after oil sold off 9% but today after the market opened at 3pm PST, down another 31%:


Unfortunately I went LONG 1 oil futures contract around $45 and sold a call against it ... bad enough Friday afternoon, under water enough on this latest crash-y move that the brokerage closed it out when the price reached $33.19 ... latest is $28.70 (up from $28.15 a while ago) ..

Anyway, that's the end of my trading career for anybody else, and probably for myself as well ...

Future posts here will be on trying something else: an Amazon FBA business, selling various formulations of beeswax creams, some antiviral ... 



That's all for now ... I don't suppose anybody wants any trading advice from me, but at this point I'd suggest buying /CL futures if you can still get them below $30 by the time you read this ...


Friday, February 28, 2020

R.I.P Traderbot; Mistakes were made; A very wild week in the market

First, my efforts to try changing around the traderbot by tweaking parameters:


  • Waiting 1 or 2 minutes between changes of direction
  • except when the market was on the 'wrong side' and more than 2 points away from current price
None of this was enough to fix the problem; it went from 30+ trades to 17, still too many to handle and stay profitable.


This was bad enough, but then I made two key mistakes in this crazy week:

  • Taking too much risk for the size of the account
  • Not getting out while the getting was good
I have had previous success with SPX butterfly trades:

So just thought, I'll put on an /ES butterfly ... the SPAN margin was only a little over $2000, and I got $4000+ credit (for selling two at-the-money options and buying way-far-out .10 delta long options to cap the risk). Waiting until I got 1/4 of the credit is 50% on margin. Not bad!

But! I did this with the market right at record high ... where it had been for months the short strikes were at 3380. Then this happened, widely blamed on the Corona virus:

I could have gotten out the first day of the downturn just down 8.4% or so ... but I let it go and fortunately set an alert for an uptick the next day where I was able to get out for something like down 26% ... sheesh. And even then it could have been much, much worse ...

Belatedly I came back to the Tastytrade motto: "trade small, trade often." I realized that to get a spread of different trades on that I really can't do much more than $5 wide iron condors, meaning the risk is less than $500 per trade.

I put these small trades on:
  • Gold (crazy down move today but still will be closed for a profit if it calms down from this point)
  • Australian Dollar
  • Canadian Dollar
(One thing I'm having to adapt to is the different names Tastyworks and Interactive brokers give these underlyings. Tastyworks Australian Dollar and Canadian Dollar futures are /6A and /6C, respectively whereas IB calls them AUD and CAD...)

When the market was around its lows (2920 to 2905) I also put on some SPX long trades:
  • Short put spread
  • long debit call spreads
Since we got the bounce after Jerome Powell talked, these long trades look to be profitable too and I will probably take them all off on my next opportunity: Sunday afternoon when the futures market reopens.

Looking for volatility to calm down just a bit on Sunday & Monday ... here's to a calm weekend!



 

Friday, February 21, 2020

A beautiful theory struck down by annoying data



The million-dollar traderbot needs work:

ES,SLD,1,3364.75,11:51:57,20200218,GLOBEX,U354...,,
ES,BOT,1,3365.25,11:52:21,20200218,GLOBEX,U354...,,,
ES,SLD,1,3364.75,11:52:26,20200218,GLOBEX,U354...,,,
ES,BOT,1,3365.25,11:54:41,20200218,GLOBEX,U354...,,,
ES,SLD,1,3364.75,11:54:46,20200218,GLOBEX,U354...,,,
ES,BOT,1,3365.25,11:55:06,20200218,GLOBEX,U354...,,,
ES,SLD,1,3364.75,11:55:11,20200218,GLOBEX,U354...,,,
ES,BOT,1,3365.25,12:04:12,20200218,GLOBEX,U354...,,,
ES,SLD,1,3364.25,12:08:01,20200218,GLOBEX,U354...,,,
ES,BOT,1,3365.25,12:10:11,20200218,GLOBEX,U354...,,,
ES,SLD,1,3364.75,12:11:11,20200218,GLOBEX,U354...,,,

(just an excerpt)

I consider the opposite set of risks (gaps, blow-out moves) but not this one: grinding back and forth around the strike price.

I think there may still be a way to make this work but I need more data to test with. I'll report back when I have an answer on that.

In the meantime I put on two limited-risk trades:

/GC: short 1675 call, long 1680 call
         short 1555 put, long 1550 put

/ES: short 3380 call, short 3380 put
        long 3500 call, long 3095 put

Both of these should work; the /GC price has really spiked the past couple of days but still is 30 points below our short call.

And the /ES price is down to 3338.25, but that's still well within the space to turn this iron butterfly profitable as soon at the current volatility strike relaxes a bit.

Overall: down 9.9% for the week, about 7% on the traderbot problem and 2.9% on the temporary volatility spike. I'm expecting to be back close to breakeven by next Friday ...

Why this volatility all of a sudden? Maybe the centrist trauma over the election:


More next week!


Friday, February 14, 2020

Interactive Brokers *finally* unstuck; projecting up about 10% this coming week

I finally got my final problem resolved with Interactive Brokers,  a "known bug" that I reported and the phone support person said he would escalate it, which apparently happened. IB support called me reporting the problem fixed just after noon.

This was just after I spoke with T.D. Ameritrade:

Their API looks as if it does all I need and in an initial phone call today they told me that they would allow me to trade customer accounts with my NFA CTA credential. (I was trading various other accounts for some years but they shut this down about 2 years ago.)

But IB came through at the last minute, and in any event TD Ameritrade has agreed to be acquired by Schwab.

I am set up as a beta tester whenever Tastyworks gets their API ready for beta, but for the moment I am focusing on IB.

My plan for this coming week:

  • Dynamic Covered Strangle on /ES on  Sunday afternoon the 16th, expiration Wednesday 2/19
  • Dynamic Covered Strangle on /ES on Wednesday expiration Friday 2/21
This should return close to 10% on the $12500 account I'm trading.

As this account grows I'll add other underlyings: Gold (/GC), Oil (/CL), Natural Gas (/NG) and others ..

I'll have the report next Friday night and will send out an email report also to those of you who have signed up (and some who haven't!)

More then ...






Saturday, February 8, 2020

First live trade on Sunday; Volatility mostly collapsed again; Interactive Brokers challenges

My first client is going live with the Dynamic Covered Strangle on Sunday when the futures market opens ... unfortunately /ES volatility is down from what it was:


I'll have to take what I can get on Sunday ...

I misunderstood Interactive Brokers' client accounts with "master accounts" like the one I have. For other brokerages I've used (Thinkorswim and Tastyworks) you set up the client account separately then get it hooked into the master account with what's called a "limited trading authorization."

Interactive Brokers pretty much requires you to send an email from within their app, Trader Workstation. You theoretically can do the "hook in another account" but in our case it would have taken 2 weeks ... we goofed when creating his account and set up different trading permissions than on my account. So it would have taken over this current weekend to get that fixed, then over next weekend to get his account hooked into mine.

Not only that ... we were looking for a workaround for this slowdown and got bad information from the standard support line at IB! They told my client that there was a 3-day hold on wire transfers!

This didn't sound right and I called the "advisor line" and got the actual information: there is no hold for trading, but for 3 days you can't move the money out to any other brokerage or bank account.

Sheesh.

In general, Interactive Brokers is a 1980's firm that made it to 2020 without updating a bunch of their policies:

  • Inconsistent tech and administrative support, as in the example above
  • Rotten user interfaces
  • API support that doesn't work well enough
  • Linux support for their IB Gateway (yay), but only with an X interface (boo)
A user interface example ... Here's Tastyworks showing /ES options for the next several expirations:


Obvious, right? It makes sense to me ...

Here's IB:


First of all, this is the "classic" interface; there's also the "mosaic" interface that the support person I spoke with didn't understand well enough to tell me about. Without Tastyworks to refer to I don't know if I would have figured this out; I know the expirations but I'd never heard of [EW1, E2A, E2C ...] but you have to pick these esoteric symbols from a menu to get the expiration that you want.

Sheesh.

As for the API: hooray that IB has them available, but they work so poorly that there are a ton of third parties who have fixed versions running. Just a few:


Finally, the Linux support: what I want to do is set up a system on Amazon Web Services and/or some other cloud provider or providers to make sure it's up when there's a power or internet outage at my house. But apparently IB just assumed a local workstation (all you could get in 1992) ... with the user interface in X Windows hooked directly to that machine. But X Windows on an Internet cloud provider brings up lots of firewall problems and is generally a pain to deal with. 


So why deal with IB? There currently isn't anything else available with the range of capabilities they (sort of) support,  although Tastyworks is early in their development history and is supposedly working on the same structures that IB has. I can't wait!

Also, Tastyworks is giving away a Tesla to those with accounts as of April 2; get one!



Speaking of Tesla, what a week they had:


This looks like a Short Squeeze to some observers. Some people made millions this week; here's one that cashed out near the top:



Once again, results starting next week ... check back here then! 


Sunday, February 2, 2020

Going live with the Dynamic Covered Strangle plan this week, just in time for volatility's return!

Volatility in the S&P Futures market returned this week with a vengeance:

This means that the options on this futures product (/ES, the "e-mini" S&P futures) pay very much more than they did when the market was at record highs.

For example, selling a ".30 delta" (3190 put, 3275 call) expiring in 8 days returns $1875 ($1868 after commissions.) Assuming we have to do our "cover" even 3 times over the week, losing one tick ($12.50) plus commissions ($5.50) each time and we wait until we have all but the last 15% of the credit, that makes us:

$1868
- 3x $18
- 0.15 * $1868 =

$1520 the first week.

Then say volatility declines by 10% for the next week and stays flat the final 2 weeks. So we'd get

$1520 first week
$1368 2nd week
$1368 3rd week
$1368 4th week

Total $5624 ... starting on a $12500 account, which is the approximate value of the one we have going live next week, that's +44% for the month.

Unbelievable? No; I'll start proving it this coming week.

I'm collecting email addresses to send out real results ... send an email to info@intuitivecapitalmgmt.com and I'll add yours to my list.

More next week, and expect an email report too.




Friday, January 24, 2020

Straight up market finally pauses; Traderbot is in testing with a Python IB library that works! Minding the gap

Friday's market down move was blamed on the coronavirus now troubling China ...
But: who knows? The market has been going mostly up for almost 11 years, so any change would not be a surprise ...

However, with the Dynamic Covered Strangle, it doesn't make any difference what the market does (with one exception, discussed below).

Once again, we sell a futures put and call, not too far away from the money (.30 delta) and then set our traderbot to watch the two short strikes and buy or sell the underlying future as needed. Then we relax and let the options expire down to near their external value, close the trade and do it again, forever.



The main risk we face is a gap in the futures price, when an external event (especially during the shutdown in trading Friday to Sunday) happens, like this:


I don't have the data to detect the frequency of this sort of thing, but it seems to be rare enough to be not a risk to the overall strategy, especially if (as I plan) I'll be diversified over several different futures underlyings. Oil is vulnerable to this particular shock; soybeans more vulnerable to this one:


These shouldn't happen at the same time ... and my strategy for managing such a thing would be like this:


  • Move the "virtual short strike" to wherever we got the underlying futures price filled at, and run the traderbot as normal, trading back and forth around this value.
  • Wait for most time value of the option to expire ... if the underlying value is still way up beyond the gap, we have to take whatever loss is the value between the original short strike and the new "virtual one." But we also have a chance for the underlying price to snap back, as happened recently during one of the Iranian attacks on a Saudi oil facility; the price spiked over the weekend but came right back to the mid-50's where it started ... no harm done if managed as described above.
Keep calm and carry on, in this situation as in much of life!

Finally a piece of excellent news .. I am testing the traderbot with a Python library that works with Interactive Brokers! 

I should have this ready to deploy by next week ...

Watch this space!


Friday, January 17, 2020

The million-dollar traderbot

The trade I described last week is possible to manage "by hand" with the addition of contingent orders, alerts, and so forth. In fact I'm testing this right now on a paper trade account:

  • started with $25000 last week
  • currently $27000 or so (+ 8%) ... I can't tell exactly because option prices are wacky after the close on Friday; net liq says $28039 but I don't believe it.
But! Futures trading is 24 hours per day, 5+ days per week and it's not possible to watch all the time.

Even with contingent orders, on some platforms it costs margin/buying power to put all those orders on -- you really need every side of every trade.

It works much better with a software "traderbot" to watch it closely 24/7 and to put in the order only when the strike is actually breached!


The algorithm is very simple:

for each short put strike:
       if futures_position_is_on:
             if the underlying price > short put strike:
                  close_futures_position()
             else:
                  pass
       else:
           if the underlying price < short put strike:
                  open_futures_position()
           else:
                  pass

(similarly: loop through short call strikes and do the same checks)

Then sleep for 1 second, and do it over again!

So How Good Is This?

I'm just getting started doing this, but I think the setup keeps it from losing more than one in every 45-60 trades, if that. Let's say one per year ...

If we make 8% every two weeks (as the example above) then we can do that 26 times per year ... and that comes out to a 7.39X return on starting capital. So 7.39 x $25000 == $184750 ... and then let's say we lose one $4750 at the end of the year, leaving $180000. This is all perfectly scalable, so starting with $250,000 you come out with $1,800,000 ... and so forth.

This is all entirely speculative at this point, but I don't see why this can't be true ...

Another Promotion Starts Now

Anybody signing up as a new client now to January 31 gets 6 months free .... Take a look!

More next week ...






Friday, January 10, 2020

A "new" trade: Dynamic Covered Strangle

First, this isn't new; I thought of a version of this a couple of years ago and it may well be standard practice by organizations who aren't publishing their trade ideas.

But it looks good enough to me that it reminded me of this guy:

This is Pele, the Brazilian soccer star, who came out of retirement in 1974 to play for the New York Cosmos for an amount of money that he described as "The Sun, The Moon and The Stars."

Now for the trade ... it requires these brokerages attributes:

  • SPAN margining ... one could theoretically do it with equity options, but the margin requirements are so much greater it probably doesn't make sense in most cases
  • trading of futures and futures options
This makes it challenging to work inside IRAs in many brokerages; some don't allow futures trading or futures options trading, inside IRAs. Make sure you know your brokerage's rules before getting excited about doing with your IRA.

Step 1: sell N contracts of any futures options strangle, 30-50 DTE. So far I've backtested this only with /CL (West Texas Intermediate), the only dataset I have, but I don't see a reason that it shouldn't work with any futures product that supports options.

Step 2: set a contingent order with a tight stop to buy N of the underlying futures only when reaching the short call strike. (If your brokerage doesn't support contingent orders you'll have to do this with alerts.)

Step 3: set a similar contingent order and stop to sell N contracts when reaching the short put strike.

Wait and watch ... 80% of the time (on a one-standard-deviation strangle, with strikes at the 16 delta), nothing will happen and you can just close the trade for a profit of 50% or 80% or even 100% of the credit received.

Another advantage: you are not worried about a huge move in either direction! I'd be fine doing any /CL trade with this setup with the war drums beating last week ...



Backtesting results!

Setup details:

  • January 1 2016 to Dec 23 2019, /CL (West Texas Intermediate crude oil)
  • Futures options prices, including 'delta' and underlying price
  • End of day prices only
  • Tests were run with just a 1-lot strangle (i.e. selling 1 call and 1 put)
  • I used 30 to 50 days until expiration
  • I set to take 85% of the credit we got on opening of the trade
I varied the delta of the options I sold:

.16 delta            + $28577               13 whipsaws
.30 delta             +$52997               15 whipsaws
.40 delta             +$70907               28 whipsaws

The "whipsaw" count is the number of times that the underlying price went through the strike price once and then came back once ... Clearly making sure that these whipsaws are handled optimally is key, and they will be a small drag on earnings nonetheless ... but selling the options closer to the money (.40 delta) pays enough extra to compensate you for this extra attention.

Also, you need to watch the extrinsic value left in your options to decide when to get out ... if you're getting whipsawed around a strike early on you need to hang in there as the option price will still be too high for you to close for a profit. Later on with the extrinsic value down to 50% or less of the opening credit, you can certainly get out and move on if getting whipsawed at that point.

Note that the option price will collapse to the amount it's in the money; for example, if you sell the 65 /CL call and /CL closes at 67 at the time your option expires, you are down $2000 on that option ... But: (1) you got credit when opening the position and (2) you bought the the /CL option contract at 65 that covers your option loss ... so you are just left with that opening credit!

Note also: there's no reason this couldn't work with shorter timeframes like those available in /ES and /GC ...

I'd suggest to start:

  • Take 1/2 of your account's buying power and set up a variety of futures options trades as described above ... /CL, /GC, /NG are three you should definitely consider.
  • Try the .30 delta to start and make sure you stay on top of the strike breaches going back and forth
  • After you work with this for a couple of months, you can try the .40 delta ...
Have fun! More next week ...





Saturday, January 4, 2020

Surprising backtest results now available; geopolitics intervenes in the oil market

I got a response from iVolatility; their data includes futures options out through 2021, and I had missed that. Screening those out and just focusing on the current futures contract gave me the results I was expecting (i.e. all the same futures closing prices on the same day.)

I tried various parameters (delta of the short strikes, mainly) and was only able to show a small profit at best ($2200 over the 4 years 2016-2019) ... I did notice fairly extreme volatility especially in 2016 so decided to try adding a "swing trade" component.

Here's what I added:


  • buy 1 /CL futures contract when the price goes below $40;
  • sell 1 /CL futures contract when the price goes above $60;
  • in either case, close the trade when $10000 profit target is reached
Running this 2016 to 2019 gives these results:

  • $2270 profit on options trades
  • $31470 profit on futures swing trades
  • max drawdown was around $11000
I didn't exceptionally "curve fit" ... I could have shown better results and less of a drawdown choosing $35 or $30 as the point to go long ....

Now for the geopolitical component:

Iranian General killed by U.S. drone strike Friday
The /CL (West Texas Intermediate) went only to $63.04 on Friday ... the plan above would have it going short. I'd certainly have to watch it closely if I were to do this, or else wait and just use a limited-risk call spread until the situation is resolved. /CL is $1000 per point, so one can't let it get too far out without managing it!

I need one of these to be able to glance at overnight:

Ambient orb displays market data at a glance



More next week!