Fully automated futures trading

What are captive flows?
Thank you for asking the question @traider.
What is this, a vocabulary night? :D

A lot of institutions are forced to trade things - hedge, cover their positions, show lower risk for the books. All of these trades are done not because they love to sell futures specifically if it rains at 2pm, but because they have no choice. If you know that people like these are coming to trade, you can make a little cash for yourself.
Great food for thought, this is my weekend homework assignment. Thanks.
 
Are you with them just to track your performance all by yourself? Since no other person who does not have account with them is not be able to. And for that they should be at least traders themselves, right?

Yes I am in it just for the cool performance tracking. It's useful eg when lecturing to pull up my account curve and point stuff out. Only other traders and accredited investors can see it. In fact I had to remove the links to it from my blig as it violates their Ts&Cs

GAT
 
Kernfusion , Rob , Same Lazy Element and Hobby, thanks a lot for the replies re bonds and carry. The overall conclusion is that I was too anal about it :)
I'll stick to collecting EOD prices which are present (mostly :D) until I run a backtest around this to see what's the effect of removing carry rule. But for now, since I already have it implemented, I'll stick with it.
 
It does actually (assuming you haven't messed with the parameters to equalise pre-cost returns) and I even wrote at length about how it does it here

GAT
I tried to run optimisation with handcrafting, it worked when I simply defined rules, instruments and enabled estimations, but when I also added thresholding for all multiple instruments it errored-out with :
raise ValueError("The condensed distance matrix must contain only "
ValueError: The condensed distance matrix must contain only finite values.

I guess whether thresholding is enabled or not shouldn't affect weights?

attaching my config, everything else is out of the box, with the latest version.
 

Attachments

I tried to run optimisation with handcrafting, it worked when I simply defined rules, instruments and enabled estimations, but when I also added thresholding for all multiple instruments it errored-out with :
raise ValueError("The condensed distance matrix must contain only "
ValueError: The condensed distance matrix must contain only finite values.

I guess whether thresholding is enabled or not shouldn't affect weights?

attaching my config, everything else is out of the box, with the latest version.

Hmmm. My guess is that thresholding resulted in one or more position only being zero in certain periods therefore killing the correlation matrix of returns. An easy fix would be to make sure the p&l calculation for instrument weights looks at pre thresholded positions (which to be honest I thought it did).

I created an issue: https://github.com/robcarver17/pysystemtrade/issues/151
(You can do this yourselves by the way any time you find a problem)

I'll try and find time to look at this next week.



GAT
 
Something good seems to be happening with long-term bonds.. I can see in my paper system both US and German are making large profits. Unfortunately I don't have any in my prod system, only short-term (don't have as much real capital as paper-money :) ) so I'm seeng my paper system making new highs and the prod new lows right beside each other :)

Btw, it seems I fixed my issue with missing order fills, looks like my system couldnt keep up with the tick flow, it was taking too much time to process single tick so they were probably queuing up in the IB gateway and after a while it would disconnect my client. So I had to spend some quality time optimizing my code, managed to reduce tick processing time by a good factor because of lazily-written breakout signal code. Still diong everything in a single thread though. Now the cpu ussage droped and no more disconnects and so far no misding order-status notifications..
 
Last edited:
Hi All,
I run the system once a day and enter trades manually, based on its output. I also have been manually rolling contracts when I judge it to be necessary.

To make my life easier I am thinking of automating these two elements in the following way. First, I will automate my daily trades by having an autoit script place market orders around 10am each day for any position that needs to change. Second, I will add code to automatically roll my full position in a given instrument, by using market orders at around 10am. I will have the system roll a given instrument based on its historical roll schedule; so if instrument x rolled on 3.10.19 from the march contract to the june, I will have the system do the same on 3.10.20 (or the next nonholiday weekday). If I have 10 contracts on, the script will simply sell all 10 at market, then buy 10 of the next contract (plus or minus any change needed to that instrument's position as a result of the most recent forecast).

Does anyone see any issues with this plan? Thanks.
 
Hi All,
I run the system once a day and enter trades manually, based on its output. I also have been manually rolling contracts when I judge it to be necessary.

To make my life easier I am thinking of automating these two elements in the following way. First, I will automate my daily trades by having an autoit script place market orders around 10am each day for any position that needs to change. Second, I will add code to automatically roll my full position in a given instrument, by using market orders at around 10am. I will have the system roll a given instrument based on its historical roll schedule; so if instrument x rolled on 3.10.19 from the march contract to the june, I will have the system do the same on 3.10.20 (or the next nonholiday weekday). If I have 10 contracts on, the script will simply sell all 10 at market, then buy 10 of the next contract (plus or minus any change needed to that instrument's position as a result of the most recent forecast).

Does anyone see any issues with this plan? Thanks.
This automated trading can make your life a lot easier. But beware of using market orders. It might be better to use limit orders. To avoid unexpected, unpleasant, surprises.
 
Back
Top