All entry's are based on the previous bar close. So lets say the previous up bar close was 152'10, now the current market ask is 152'11, so a limit buy order will be placed at market ask 152'11. So as long as price didn't move higher i will get filled at 152'11. If the market jumps 5 ticks in one go, the order still will be at 152'11 and not 152'16.
In your simulated testing how are your fills being assumed on your limit orders? I wrote a system that performed beautifully in a simulated environment with a win rate in the mid 70% range, average winner 50% larger than average loser etc but the simulated environment gave me a fill when price touched my limit. Real world I missed a lot of entries and exits with real money and it threw the whole system off. What I have found for automated scalping is the system is only half the battle. Execution is the other half.
A large part of the results are live tested. Partial fills are no problem since the limit orders are placed at the current market bid/ask so i get filled immediately unless the market moved past my entry price.
I must add that it could happen that the current ask or bid is not large enough to completely fill my position but then the remaining contracts will be first in line to get filled at the new current bid/ask. If this doesn't happen the system adjusts its limit profit orders to the size that got filled. However this is unlikely to happen since ZB has quite some depth in the book, definitely with smaller contract sizes.
Right, thanks for explaining me what limit orders are... A) when you're not filled, you will lose P&L and you will always not be filled in winning trades and be filled on losing trades (as losing trades go through your price). B) if you're in the market and your take profit or stop loss is not hit, (or rather, it's hit but your limit order then never gets filled), you can end up losing much more than your simulation, so you need to have a hard market stop. At the end of the day, limit orders are not free, there is a cost in terms of trades missed and losses badly exited... you might not see that cost straight away as you might have been lucky on your fills so far.
Since N / sqrt(N) = sqrt(N). the above equation simplifies to this: Sharpe(annualized) = sqrt(251) * (average_daily_return) / (stdev(daily_returns))
You are welcome Of course a simulation or forward test can never factor in al these scenario's 100%. During the live testing however results where extremely close to the simulation, so how things will go from here, that is anyone's guess. At least results look very promising and that is what it is all about for me, nobody can tell what will happen in the future.
Yep, the profit per trade is razor thin, and is vulnerable to the slightest slippage and execution inefficiencies. The other thing that the OP did not disclose was the commission assumptions. With less than 1 tick profit per trade, this could easily be wiped out by round-turn commissions.
If you post the return figures for each of the 257 trades, we'll verify the Sharpe ratio. Actually, the daily returns for the last 10 months would be more convenient.