Thanks for your reply.
You can debug your strategy using print statements. If you add a print statement to print the value of BarSinceEntry() inside the 2nd entry block you would see that it returns a value greater than 1 which is what your entry condition for the 2nd entry specifies.
Here is what we see in the output window with added print statements to your code:
11/28/2006 3:00:00 PM EnterLong - First
11/28/2006 3:00:00 PM EnterLong - Second BarsSinceentry = 16
11/28/2006 3:00:00 PM ExitLong LL
Strategy 'ChanKenXshares/-1': An Set() method to submit an exit order at '11/28/2006 3:00:00 PM' has been ignored. Please search on the term 'Internal Order Handling Rules' in the Help Guide for detailed explanation.
When you have the first entry on the same bar at the same time as the second entry, the object that updates BarsSinceEntry() has not instantaneously updated it as fast as your code requires, this means that BarsSinceEntry would be using a prior bars entry and not the current bars entry.
What you can do is to add further logic to ensure that 2nd entry does not occur in the same bar by saving the current bar number in your first entry and then checking to see if the current bar is not equal to that saved bar number in your second entry.
Comment