Good Morning globalarbtrader, Thanks for the response. I mean trading systems like 1 trading system that trades the ES future market. That would be 1 trading system. Then you may have another that trade Crude Oil future market. Then you would have 2 systems all together.
I trade ~150 instruments, but I don't really trade them with seperate systems in the way you are describing. Rob
To try and give you a short answer that wouldn't require reading the entire thread: I create a forecast for each instrument using one or more trading rules. I have a maximum of 50 or so trading rule variations that I use. An example of a trading rule would be a given moving average crossover. I combine these to get forecasts for each instrument. I do this 150 times, once for each instrument I forecast the price of. I form the optimal portfolio that I can hold, given my capital and the integer constraint of futures positions. I then do trades to get me as close as possible to that portfolio, without incurring high trading costs. So on one view, I have 50X150 = 7500 systems (in reality more like 5000, since some trading rules are too expensive to trade for a given instrument) On another view, I have 50 On another view, I have 150 But really I only have 1 system, since it isn't possible to point to any one of these components and say "Yes, these are the trades that system X is doing" Rob
Good Morning globalarbtrader, Nice work and thank you for the response and contribution to the trading world.
Hi all, Any of you know if it's possible to set some kind of limits in IB in order to make sure automatic executions don't do much damage if something fails and you are away? I was thinking that it would be great to be able to set several limits like maximum number of daily orders, max daily position or total position per instrument. I was wondering if you could set something in IB directly or if I should implement it myself as an extra layer of my system. Anyway, any thought would be appreciated. Thanks, Luis
IB does not have those kind of features, as far as I know. You'll have to add your own layer of protection to your system.
There are some limits in the settings of the gateway api but they are not very flexible I use my own limits programmed into my code. Rob
Hey folks, I've been running with fairly primitive execution algo since early August, and decided to take a look at how that's going, so sharing here some insights. What I currently do for execution is just set a limit order on my side of the spread and hope for the best If it's not filled within _some_ hours, I move it manually to fill it. I've had 287 trades in this period, so sample size is not that big. All the charts show PnL using the mid of the spread at the time of posting as reference. First, the big picture: Obviously, this is quite negatively skewed, as expected. If I was not filled, it means price ran away from me and I have to pay a massive difference. I can't really blame the losses on one market either, tho seems like V2TX is a bit of a struggle. This one is interesting: So if I wasn't filled within 2.5 hours, there's a good chance I won't get filled at all and will have to move it. I have a bunch more stats, but these seem the most interesting. I've also determined that the order size doesn't really have much impact on the execution outcome. For now, I'll make a change to move the price automatically if I wasn't filled within 2 hours. The thinking is that the price will run away from me less in that case, though obviously I'd need intraday data to prove that, and I don't have that.
So I think what Rob's algo does in addition to crossing the spread after a time limit, is it also crosses it if the price(your side) moves against you even slightly. Don't know if it's easy in your system\data to plot something like " PnL vs 'has the price ever moved against me before the fill' "., to look at how effective that feature is..