This morning, first thing I have rolled over NG to the "new" contract NGJ6. As explained before, I have closed the position with a player and reopened with a manual order, to preserve the trading information of the existing buy players: As explained, the reason why one may want to use a (sell) player (to reopen the position) is because this way, the contango (which is quite significant with stuff like NG, CL, and so on) can be eventually fully recovered in an automatic manner. It is important to be able to "roll back" these rollover orders, as the contango is one of the (three) most powerful long-term "forces" at work in the mkt, and if not managed can "erode" significantly our PNL. There are "side effects" of this recovery mechanism: 1. In time (if the instrument keeps "sliding down") the rollover order on the sell side can become quite large. This creates a local "spot of inefficiency" which is undesirable. In fact, we know that too large orders, at a given price level, can be quite harmful, and they are the very reason why the so called stop/reverse approach cannot work. We have already implemented a solution to this problem in a previous thread, and it consists in "transforming" the sell player (which represents the position "reopen" in the rollover) in a spaced sequence of sell players which overall have the same average of the original sell player. 2. The close of the sell player, can cause "overload" of the position on the buy side. So if one does not desire such effect, the manual buy (used to close the position at rollover) can be equally transformed into a buy player (after the lower sell position gets closed). With such mechanisms we are fully equipped to manage and recover the contango (or backwardation, for the instruments "sliding up", such as ES, YM, NQ, NKD, ...). In essence, we can fully maintain the trading information and avoid the $$$ losses associated with the "loss of trading information". In fact, conceptually a "loss" is consolidated not when we "realize" it (as, obviously, a position can be always "reopened") but when we lose the associated trading information (what most traders do when "stopping", or when are forcedly liquidated), or when our trading information (stored in the players) remains "confined" in a zone where the price does return anymore (e.g, drifting or decaying instruments), which, of course, is practically equivalent to throwing away the associated trading information.
The situation looks now better, with the DD returned at an insignificant level (we are just -2.82% "underwater"). I will feel better when I can discharge a bit the "manual" SCO position which was loaded too much and way too "early". Anyway, at least we know for a fact that with the current capital we can happily hold large swings of crude oil (say price as low as 20 or less) without too many worries. This move downward of the crude oil has probably created problems to under capitalized traders, while it represented a good opportunity for those with the resources to jump on the low price. Another aspect to note is that the mkt indices moved in an almost perfect positive correlation (or "codirection", as I like to call it) with crude oil. This "correlation lock", does not appear to be a random optical illusion, as there actually seem to be a sort of "mechanical lock", even at a microstructure level. I can only take notice of the "trading lockstep" as a fact, while I remain ignorant of the "causes". Anyway, I expect that sooner or later this "lock" should break and the two assets return to dynamics that are mostly inversely correlated: CL-ES "codirection" value, +.91 (where +1 is the theoretical maximum).
While SCO is momentarily shooting down (and hence CL rising), we have returned in the "green zone", but there is still long way to go: As a tip for the fund managers playing with my applications, one convenient way to close the orders which are result of "enqueued orders" or "manual" fills (in our case the SCO layer), can be to use one feature of the application, which converts all manual orders into players (see the context menu in "price history" window), and then use the layer settings to disable the creation of new players, and switch the layer in automatic mode. This will cause the layer to automatically and gradually close all the existing players (based on the rules of the selected game). This way we can fully automatize the close of the positions on the "semi automatic"layers.
Today looks even better than yesterday with our PNL returned to around +125K, current maint. margin is around 550K. There is still way to go to fully "unload" SCO and CL as we can see in the picture. It was a bit unfortunate we did not had enough resources to overload SCO and CL on the real "peak", but anyway we can't complain too much after all:
We end the week in "green" zone, with PNL around +143K (146,337.94 according to IB). Maint margin is just 548K. We still need to close most of our positions on the (decaying) ETFs. Anyway, even if crude oil should shoot down again, we know we can hold the move, and even make another profitable ride. Clearly, I'd prefer to be able to realize the "investment" on SCO first, as it was too early and "tight".
Let's take advantage of the weekend to recap and possibly refine our current algorithmic approach. In post #92 we have discussed some strategic points. Let's refine further here. First of all, we have said, that for several good reasons we only trade FUTs (futures contracts) in full automatic more. We may also "complement" with trading some ETFs featuring strong "drifts" of "decay", but we do that in a "semi-automatic" mode. Which means placing suitably spaced enqueued orders to be automatically filled, and then let them close automatically. The main reason why STKs alike (ETFs and STKs and CFDs, etc.) are in general excluded from our algorithmic treatment is that from experience we have learned that they are not a suitable choice for various reasons: - Excessive margin usage - Narrow trading window, with a too large "gapping" component. Mostly, they are "flats and gaps" and therefore not suitable, as we are obviously after price fluctuations. - Bothering overnight risk - Frequent limited shortability (especially when we need it) - Greater commission expenses - Bothering interests As to the algorithmic part, we work by scalping on suitably spaced price "corridors". On each price corridor we activate 3 scalping units (3 layers) with various long/short constraints (see post #92 for details), in order to scalp and hedge as much as possible. A rule for corridor spacing we have been using is: corridor distance % = Volatility% / K with K=4 in our case (clearly this is a subjective choice, that the fund manager can make.) For the "semi automated" part, it also useful to introduce a spacing recommendation, so that, for instance, we avoid the mistake we have done in this illustration with SCO. Here we can also define "enqueued orders" spaced similarly: fill distance % = Volatility% / K. It is actually quite important to at least try follow these "guidelines", as one might easily be fooled, especially if not very familiar with the instrument, by the huge volatility that these ETFs generally feature. Just to give an idea, note that in the period we have been trading (143 solar days), CL has moved in a range of 540 ticks (16.81%), while SCO has made 14.262 ticks (144.73%). So if one is not careful with the respective volatilities and capital allocation, it is quite easy to run out of resources and spoil the entire game, just because the available capital will not suffice to perform correctly the programmed game. In essence, we gradually occupy the entire price range with scalping units, gradually allocating small portions of capital over it, and continuously scalping/hedging and recovering most of the "hedging orders" (stop recover) as well as "rollover orders" (contango/backwardation recover), thanks to the player superposition mechanism, the player splitting mechanism, and the take into consideration of the possible instrument drifts (when they exist). Clearly, this kind of treatment is very suitable for funds, or large private investors, and not suitable for small capital, essentially due to the size of the price range of most instruments, on a sufficiently long period, and the minimal size tradable (1 contract).
Another week (was pretty busy, so I did not follow it closely) is gone, and we are back "underwater", mostly due to crude oil moving down. We have "discharged" some of the CL position, however SCO and ERY were loaded "too early" and "too close" through manually "enqueued orders" so they are causing significant PNL swings, as crude oil moves up and down (this is yet another reason why having too much $$$ allocated "at one price spot" is very inefficient). While is never pleasant going back "underwater", at least we are in a better position than previous drawdowns, as the load is now slightly smaller, we have already realized some profits (G-L is, in fact, up to 300K), and we know we can hold a possible move down to any realistic extent. So nothing to worry about. All the other instruments are fine, especially NKD. Not much happy with ZL and NG, actually as the microstructure and fluctuations seem less "suitable" than CL, ES, NKD. Anyway, we will see...
Another week gone and we are more or less at the same point as last time we checked. Crude oil (CL) has been swinging down and up causing some more drawdown. We are still paying our "mistakes" with SCO and we need to patiently wait for the opportunity to "unload" it. We have a good position on crude oil but also several short players, which should capture the contango component, that is particularly nasty when having a strong long position on this kind of instrument (the short players, along the SCO decay would make up for the contango). Silver (SI) and metals in general have been given rising a bit, and I would not be surprised of further rise. This has allowed me to "pause" SI (as all layers are now in profit), as I want to reserve some "resources" to deal with crude oil and mkt moves (so far they have moving in "lock step", which is a potentially dangerous situation for our folio, due to excessive simultaneous "load".)
Today we just returned in the green sector, ending the day with +108K. The recover is mostly due to the crude oil and mkt simultaneous moves. The "manual" layer of SCO has still way to go for a recovery: (In the meantime I have been doing some software changes, following the suggestions of some managers who have noted that the new releases of the gateway or tws have different process names. They will be shipped in the next update.)
This Monday is also ending in the green zone, after some PNL swing, CL has almost all layers positive at the moment, while SCO has still way to go (due to "excessive concentration" of position, relative to the instrument volatility). Natural Gas (NG) is still in a slow "load phase" and, if it goes further down, I will also start overloading with DGAZ, also to recover the huge contango. We are momentarily around +100K with a maint. margin of just 500K, so looking fine at the moment.