Fully automated futures trading

Discussion in 'Journals' started by globalarbtrader, Feb 11, 2015.

  1. blink18

    blink18

    Regular vs. extended hours trading: is there any benefit running futures system in extended session or just between regular hours (tighter spreads and liquidity)? The only benefit i see is risk targeting or for instruments like bitcoin (24h trading). Any other opinion?
     
    #3141     Jan 6, 2022
  2. blink18

    blink18

    Hourly risk targeting and rebalance: today I had repeated trades, 1 MES was sold and then bought again one hour later (11% buffer). Is it better to have some limit on this, maybe rebalance once per day on close?
     
    #3142     Jan 6, 2022
  3. Kernfusion

    Kernfusion

    I personally (the system that is) trade continuously 24h\day Mon to Fr with 2 breaks several hours each in the morning and evening to do backups and other housekeeping. I do get these things sometimes too like the same contract was bought and then sold, but well, the market situation changed and the system reacted to the new situation according to it's rules, it just did it sooner compared to waiting for the EOD, which should be a good thing I think..
    I do have a buffer and a limit of 4 trades per day per instrument for increasing position and 8 trades limit for decreasing position, and also combined trading limits, but these limits are more of error-protection mechanism as I mostly try to set my buffer thresholds in such a way that the system doesn't trade more than it should..
     
    Last edited: Jan 6, 2022
    #3143     Jan 6, 2022
    blink18 likes this.
  4. Kernfusion

    Kernfusion

    So I implemented that new DO report, which should add a bit more clarity into why the system buys things, not sure if it's greatly useful, so if people have better ideas would be interesting to hear.
    The report looks like this (this is my actual PROD positions this morning):
    upload_2022-1-6_13-46-46.png
    it shows my current actual positions (by particular expiration contract-date), then unrounded ideal positions before DO, then for each case where the ideal is different from actual by more than 1 contract it prints 3 top most correlated instruments with that one.
    This should theoretically show me where the missing or extra positions are going to.

    So for example V2TX has unrounded-ideal position of -2.62 but actual position of only -1, therefore the report shows me 3 most-correlated with V2TX instruments with correlations: VIX 0.87;JPY 0.63;ZF 0.52, and now I can sort of see that JPY is probably taking risk over from V2TX because it's actually shorter then it's ideal position.
    The situation with 3KTB is less clear, it has larger positive position than should, and I could say that some of that extra risk was transferred from GBL(which has +0.14 unrounded but no actual position), but the other 2 top-correlated instruments FLKTB and ZF actually have unopened negative positions, which is opposite to what we'd expect.

    Of course smaller correlations from other instruments also affect positions, but this gets complicated and difficult to show I think..
     
    Last edited: Jan 6, 2022
    #3144     Jan 6, 2022
  5. KevinBB

    KevinBB

    I've gone the opposite way to @Kernfusion in that my system runs 8:30am to 3pm US Central time, and idles during the US overnight.

    The system originally ran 24x5, however, even with the 10% at F10 buffer, there were too many whipsaws, mainly because of the largish illiquid trading range (i) during the overnight session or (ii) during data releases just before the US open.

    If you're using daily bars, and updating them every so often (I do 30 minutes, others might do 1 hour), I don't really see a need for 24 x 5 trading. By updating every 30 minutes, all I am doing is getting a head start on the end-of-day bar, i.e. placing my trade during the current day instead of at the next day's open.

    Running the system this way has let me reduce the buffer size, too. I now used a fixed 10% buffer, with a maximum of 0.1 units (buffer size). It works differently to Rob's buffer, in that the system won't act until it has to adjust by 0.6 units (e.g. if current position is long 2, the third position won't be entered until target is 2.6). Yes, I still get the occasional whipsaw, but only rarely.

    Trading during liquid hours works for me.

    KH
     
    #3145     Jan 6, 2022
    blink18 and Kernfusion like this.
  6. In my case is each instrument reviewed once per day, shortly before the end of the regular trading day of that particular instrument. For example: it runs the daily review on the Korean instruments at 15:15 Korean time, and US instruments such as ES at 15:30 local US time. This avoids the risk which you mention that an instrument could trade multiple times on one day due to "noise" in intraday price movements.
     
    #3146     Jan 6, 2022
    blink18 likes this.
  7. As is well known I think, I run my system effectively daily - I get all the prices starting in the afternoon going into the evening, then generate optimimum positions, then generate required orders which are then executed the following day. For trading hours I rely on the hours defined by IB as liquid in the contract spec that comes back via the API, which often includes electronic hours and may not be that liquid in practice. I did toy with adding in my own logic to set liquid hours, but it seemed overly complex and because I try and trade passively I can often do better when the spread is wider.

    And I also have limits on the maximum number of contracts that could be traded in a given instrument per day (and also over 2 weeks, so I can leave it running whilst on holiday).

    The beauty of the dynamic optimisation is it does allow you to do some cool stuff, such as doing a partial price update several times a day, or optimising several times a day but only allowing trades in markets that are currently open perhaps using a 'tranched' approach where you run one optimisation per trading session to avoid multiple trades (which I have not implemented but is certainly possible).

    Incidentally I used to run my old system several times a day, and even though it had a (static) buffer it would occasionally generate reversing trades. But I decided to stick with a simpler once a day approach - it makes so much of the logic much easier, with the speed of trading there is no alpha benefit in going quicker, and ultimately that is what I've backtested.

    I will be developing intraday strategies at some point this year, but for my core system once a day is fine.

    While I am on the topic, one advantage of the DO I've used to some effect recently is that it makes changes to your system much cheaper. I just added another 35 or so markets to live trading and the process I follow is to pause trading, make the changes, rerun everything and see what trades are required. If there are too many trades I widen the buffer and then reun the order generation, until I'm happy that the trading required isn't excessive. Then I turn trading back on again. If I had to widen the buffer temporarily I gradually tighten it over the next few days.

    DO really has been a game changer for me; I can't belive I only have 15 positions on right now achieving 18% risk when there are now 146 instruments in my portfolio...

    Rob
     
    #3147     Jan 7, 2022
    Elder, blink18 and Kernfusion like this.
  8. Hey all,
    Does anyone know where you can get real-time bond YIELD data from? I am not looking for futures prices, but yields. I know you can get them from Reuters/Refinitiv and Bloomberg, possibly FactSet, but these are quite expensive for the mere retail trader...
     
    #3148     Jan 7, 2022
  9. #3149     Jan 8, 2022
  10. djames

    djames

    How is everyone getting on with the VIX explosion?
     
    #3150     Jan 10, 2022