@globalarbtrader How do you calculate portfolio turnover? Total number of traded contracts across all instruments/Total Quantity HELD yesterday Across All instruments ?
one instrument: traded contracts / average position (position with forecast of +10) multiple insturments: average or weighted average of turnover per instrument
Why for Strategy 4 in the book,turnover of jumbo portfolio 10 times the median instrument if portfolio turnover is average of turnovers of instruments in the portfolio?
Partly IDM, but I'd have to look into the code more deeply to give you a full answer (in practice it's pretty meaningless to look at portfolio level turnover)
So basically for all the strategies in the book, we run them on an individual instrument, get the turnover and then the portfolio turnover for that particular strategy is just a weighted average of instrument substrategy turnover
@globalarbtrader For Strategy 7, to dynamically estimate forecast scalar, we will create a dataframe indexed by dates and columns will be EWMA(64)-EWMA(256)/daily std.dev for all instruments, take absolute values of the entire dataframe. For day n-1, ignore all the instruments for which raw forecast is not there in day n-1 due to insufficient history(less than 256 days), take average of all the absolute values in day n-1 and then 10/average is the forecast scalar for day n ? Is this correct?
Very intriguing post https://qoppac.blogspot.com/2025/05/can-i-build-scalping-bot-blogpost-with.html But I've been thinking, instead of placing limit-orders ahead of time on both sides of the range (and then canceling and placing them again when one of them is hit and also pre-placing stop-orders, etc.), can we just use the price from the 'opposite side' of the bid-ask spread (instead of the last trade price) to generate our signal, and when it's strong enough (a large-enough deviation from the equilibrium + spread) just use the regular execution algo or even a market order? In other words, we will demand a stronger signal covering the spread to trade., E.g. if we're buying, we will be using the current Ask price to generate our signal, and Bid when we're selling. I.e. at every moment we will be generating not one signal based on the last trade-price, but 2 signals: one on the current best Bid and one on the current best Ask, and then we will use "the worst" of the 2 signals to make the trading decision based on whether we want to buy or sell. Wouldn't it essentially amount to the same thing cost-wise as pre-placing limit-orders but just a simpler implementation (we can reuse all the existing logic, just plug the right signal depending on whether we're buying or selling)?
Yes that would work, but what if you didn't get filled and then price moved to a level where you'd be better off using the other price to generate your signal. Eg if the range was 100 - 110, and the intial price was 108 you'd put in offers at 110 but then if the price goes down to 101; what do you do? Do you ignore it, and thus maybe miss out on a trading opportunity, or do you cancel your original order and then place one at 100, or you do you keep the original order thus ending up with a 100 to 110 bracket order which is what I would have started with? Rob