I am trying to have multiple sessions in TWS. Each session has its own strategy/algo/whatever trading in that session. Is this possible? I would imagine that if you set up 10 real accounts, you can have 10 paper accounts as well, and therefore have 10 different sessions/trader workstations/gateways open. The problem is that I would need 10 real tax ids or social security numbers and all the consequences of trading on behalf of someone (even if it's paper, I have access to those accounts). Is this just impossible and the forward testing in paper or live will just be bottle necked? There's also creating "sub accounts" tied to a new account but I don't know what the limitations are for that, such as having access to its own paper trading account for sub accounts. Right now testing looks like: Forward Test strategy A, then test strategy B, then test strategy C etc. in that order sequentially. I want to do: Forward Test strategy A, B, and C at the same time using the same set of symbols. This is 3 times as fast. Due to nuances in data and offline paper trading which has been done to death, forward testing (either live with small amounts of real money or paper money) has to be done in the client during live trading hours.
I didn't see a way of creating multiple paper accounts or sub-accounts, but I test many strategies at the same time in a single paper account. Just allocate specific $ amount to each strategy and track trades and account balance per strategy. Paper account would then only be used for estimating trade executions.
Yep, this seems the best way. You can tag orders through the API which I've never used but I presume can be used to segregate by strategy. Only problem I would see is if strategy A and B want to go long and short the same thing.
This is the problem. If you say, put in a bracket order for stock A order #1, and then another bracket order for stock A, order #2, then order #1 gets executed, it messes with order #2 even though it's still waiting around. And even if it didn't mess with it, and order #2's parent order got executed the child orders would mess with each other.
The problem isn't so much "putting real money" in but separating each strategy so their orders to interfere with the orders of the other strategies. In the OP, I mentioned the problem of cross orders getting repriced.
I'm placing crossing buy/sell orders on the same stocks at the same time, but they aren't closely related and seem to execute "properly" at different times. However, paper trade execution may still not be accurate, so if you worry about small nuances and interference then you may still be getting wrong picture of actual trading, possibly similar to an additional internal offline tests, but not realistic enough for live trading. Basically if you worry about small nuances and interferences then you may really want to consider live tests soon.
Though you mentioned bracket orders, which I don't use, so my experience may differ. I emulate bracket orders internally, and just send each part of the order separately to IB, when marketable. And my orders aren't very sensitive to small price fluctuations, just trying to get fills at limit.
So what you do is: 1. create a limit order 2. create 2 more conditional limit orders based on the limit order a. condition is that original limit order is executed and cancel if one or the other closing orders is executed This wouldn't work when you have multiple closing orders would it? Say I have two sell orders and they both have similar conditions but different numbers.