CL always-in

Discussion in 'Journals' started by dom993, Jun 4, 2013.

  1. dom993


    I have decided to have a journal dedicated to my system CL always-in.

    For starters, CL always-in is an automated trading system that is always in the market - long or short, never flat. It uses patterns identified through statistical analysis of 6 years of price-action for CL (2007-2012). The core of this system is a trend-change indicator of mine, which relies on classic price-action for trends, ie. an up-trend makes HHs & HLs, a down-trend makes LHs & LLs.

    I used to trade a specific reversal pattern (megaphone) for CL, but that pattern has become pretty rare (less than 10% of all trend-changes) - I decided to take a look at the other 90% of trend-changes, and initially found 2 tradable patterns, but their edge wasn't that great (a few ticks). A few more days of research and I settled on the principle of using those signals (plus the reversal one) to reverse the position of this system.

    I have grown the total number of patterns used by the system to 24. The majority of these is price-action based, the rest is based on DoW/ToD "bias".

    I report the result of this system in my live account on the RAPACapIntro website (MinorLeague section). I started trading it live on March-19, 2013.

    I did participate in the BattleFin Launch tournament #4 with it, and finished 2nd with about +21% in 2 months (despite a pretty severe drawdown right from the get-go).

    I will provide here a weekly recap of the system's performance, as well as comments when appropriate.

    On the technical side, this system runs in NinjaTrader, on a VPS in Chicago. It is 100% automated, including reloading price-history after a loss of datafeed, rollover of the open position, and includes a proprietary work-around to provide backadjusted data from 6pm to midnight on the rollover date (as Ninja cannot do that before midnight, and neither can IQfeed on their continuous backadjusted contract). I do not use any stop (nor target) for this system, however the system supports them, and would also roll them to the next expiry, and keep track of them through any reload/restart.
  2. dom993


    Here is some info regarding the backtested performance of the system, for 3 versions:

    - v15, mid-February 2013, using only 3 patterns
    - v23, mid-March 2013, using a total of 17 patterns
    - v35, end-May 2013, using a total of 24 patterns

    I provide data for a 1-contract position, as well as multiple contracts using each consecutive signal in the direction of the open trade to add 1 contract (upon reversal, the entry is always 1 contract). A nice surprise is that the multiple contracts version always outperforms the 1 contract version, clearly all signals in one direction have a decent edge, not only the 1st one.

    The period 2007-2012 is in-sample backtesting, meaning backtesting on the same data used for the statistical analysis which uncovered the patterns.

    2013 is my forward testing ground. The avg/trade so far is 50%+ of the in-sample period. Not exactly great, but I consider this as decent.
  3. dom993


    Here is the account situation as of May-31, 2013 :

    - Starting balance (March, 18, 2013) : 45,000
    - Realized P&L since March 19, 2013 : +8,780
    - Max Drawdown since March 19, 2013: - 8,610
    - Peak P&L since March 19, 2013 : +10,200

    These figures assume $5 comms / round-turn, for the simplicity of my trade log spreadsheet.

    The attached screenshot is the current performance report on the RAPACapIntro website. Note that on that report, the open-trade unrealized P&L is included.

    I did multiple updates to the software since the beginning of live trading, however for the most part the changes were operations related - from a trading decisions point of view, one can view that live performance as using v23.

    I upgraded the VPS to v35 last week-end. Unless unforeseen major performance improvements, I am not planning any performance tweak in the next 6 months. But I might fix/improve a couple of operations related aspects.
  4. dom993


    Results for the week ending June, 7th:

    - 4 wins / 4 losses / 1 BE ; net +1615. Unfortunately, the unrealized P&L on the open-trade is about -2200. I am quite frustrated about that trade, because its entry decision was based on one of the new patterns part of the v35 which I just turned live last week-end.

    Anyway, that account made a new P&L peak at +11,240 on Thursday, before giving back -845 then the current open-trade.

    I won't post screenshots from the RAPACapIntro performance page moving forward, it is easy enough to take a look at it directly on that website.

    As a side note, I do monitor actual fills vs Ninja backtesting fills (which are based on using a 1-sec timeframe for order handling, with 1-tick systematic slippage). On the 151 trades since I went live, the actual slippage is only 1/2 of the Ninja assumed 1-tick systematic slippage per side - all orders are MKT) ... this amounts to live result better than backtest result by +1490 so far.
  5. dom993


    Results for the week ending June, 14th:

    - 4 wins / 6 losses / 1 BE ; net -375.

    The unrealized P&L on the open-trade is about +2200, which on a NAV basis makes today a new P&L peak (I am trying hard to make it look good ... but in the end, what I pay attention to is the realized P&L, and on this basis, I am still -1220 from last P&L peak).

    Another "100% hands-off" week on the operations side of things. I am pretty proud of that, too :)

    The screenshot is from my VPS. Top TWS window is the account in which I trade this system live, middle TWS window is my sim account which I use to test the system with up to 10 contracts and stops.
  6. What are the patterns you(or your system) look at?
  7. dom993


    The system uses at its core a trend detection mechanism which provide trend-change signals. At each trend-change signal, the system makes a decision to go with that signal, or against it, based on 2 kind of patterns: price-patterns & time-of-day bias.

    Price-patterns are derived from prior trends relationships, or from the relationship from the reversal leg (leading to that trend change) to the last trend.

    Time-of-day bias are periods of the day, where a trend-change signal has a statistical tendency to either have follow-through or whipsaw.

    I have 4 tiers of patterns, in each tier patterns are orthogonal (no overlap), at a given trend-change signal the system tests each pattern of each tier until it finds one match, which is used for the trading decision.
  8. Those are not patterns per se,but rather random wave impulses.
  9. dom993


    I agree 100% that each trend as I call it, or wave if you prefer, is a random event.

    Furthermore, I contend that the outcome of any single trade is always a random event.

    What I call a pattern (or bias), is a defined set of circumstances of past price-action, with a statistical outcome better than random (eg, for a 1:1 reward:risk, a 55% or better win rate).

    For example, if the last (up) trend ends at the same level as the prior (up) trend (DT), and the statistical outcome of those circumstances is better than random, then I call it a pattern.

    Understand that even though the outcome of any single instance of a pattern is truly random, by systematically trading it the system makes money in the long run, even though it has no way to predict the outcome of any single instance of that pattern.
  10. Quiet1


    hi - thanks for sharing. this is quite interesting.

    if it's not giving too much away how do you achieve the orthogonality of your patterns on each tier?

    how do you handle conflicting patterns between tiers (ie if tier 1 says long, tier 2 says nothing, tier 3 says short and tier 4 says X). Smallest/shortest timeframe tier always wins but reverts to higher timeframe position when closed?

    #10     Jun 16, 2013