Eugene, I am also trying another approach: I created the "monitoring" strategy with 9:30 to 16:00 trading schedule. I created my trading strategy by Extending the "monitoring" strategy and made its trading schedule from 10:05 to 15:25. Hopefully this makes sense and would work (without any unintended consequences).
Thanks. Ali On Tue, Oct 7, 2014 at 6:10 PM, Ali Farahani <[email protected]> wrote: > This makes sense. Thanks for all your help. > > Ali > > > On Tue, Oct 7, 2014 at 5:57 PM, Eugene Kononov <[email protected]> > wrote: > >> Yeah, now I think I understand what you want. There is no built-in >> mechanism for the functionality that you want. However, there is an easy >> work around. >> >> 1. Create a copy of your trading strategy. >> 2. Change the trading interval to "09:30", "15:25". >> 3. In the onBookSnapshot() method, leave everything as is, but remove (or >> comment out) the order placing code, which is the goLong(), goShort(), and >> goFlat() methods. >> >> As a result, this would be your "monitoring" strategy. It would >> calclulate the indicator values, but would never trade. >> >> On Tue, Oct 7, 2014 at 8:48 PM, Ali Farahani <[email protected]> wrote: >> >>> Eugene, >>> >>> The indicator values are calculated correctly by JBT as you have >>> described here (regardless of the trading schedule). Maybe my >>> misunderstanding is related to onBookSnapshot(). You had mentioned that >>> "... The only thing that trading schedule controls is the time interval >>> when the onBookSnapshot() method is invoked." I think I now understand the >>> disconnect. The logic I had expected to execute is currently inside >>> onBookSnapshot(); no wonder it only got executed after the start of the >>> trading schedule. I am simply trying to monitor the value of the force >>> before the start of the trading schedule. Any suggestions on which of the >>> Strategy methods I should override to have this code run (similar to how >>> onBookSnapshot() runs)? >>> >>> Thank you again for your time. >>> >>> Ali >>> >>> >>> On Tue, Oct 7, 2014 at 5:26 PM, Eugene Kononov <[email protected] >>> > wrote: >>> >>>> Yeah, this looks perfectly fine, Ali. Please post a chart so that we >>>> can see the original problem where the indicator values are not calculated >>>> until the start of the trading schedule. >>>> >>>> On Tue, Oct 7, 2014 at 7:59 PM, Ali Farahani <[email protected]> wrote: >>>> >>>>> Hello Eugene, >>>>> >>>>> The indicator I am using is a variation of Tension, as follows: >>>>> >>>>> public class Force extends Indicator { >>>>> private final double fastMultiplier, slowMultiplier; >>>>> private double fastBal, slowBal, fastPrice, slowPrice; >>>>> private final double scaleFactor; >>>>> >>>>> public Force(int fastPeriod, int slowPeriod, int scaleFactor) { >>>>> super(fastPeriod, slowPeriod, scaleFactor); >>>>> fastMultiplier = 2.0 / (fastPeriod + 1.0); >>>>> slowMultiplier = 2.0 / (slowPeriod + 1.0); >>>>> this.scaleFactor = scaleFactor; >>>>> } >>>>> >>>>> @Override >>>>> public void calculate() { >>>>> >>>>> MarketSnapshot snapshot = marketBook.getSnapshot(); >>>>> >>>>> // balance >>>>> double balance = snapshot.getBalance(); >>>>> fastBal += (balance - fastBal) * fastMultiplier; >>>>> slowBal += (balance - slowBal) * slowMultiplier; >>>>> double balanceVelocity = fastBal - slowBal; >>>>> >>>>> // price >>>>> double price = snapshot.getPrice(); >>>>> fastPrice += (price - fastPrice) * fastMultiplier; >>>>> slowPrice += (price - slowPrice) * slowMultiplier; >>>>> double priceVelocity = fastPrice - slowPrice; >>>>> >>>>> // force >>>>> value = balanceVelocity - scaleFactor * priceVelocity; >>>>> } >>>>> >>>>> Thanks again, >>>>> >>>>> Ali >>>>> >>>>> >>>>> On Tue, Oct 7, 2014 at 9:06 AM, Gmail <[email protected]> wrote: >>>>> >>>>>> Hi Eugene, >>>>>> >>>>>> Thanks for the clarification. I'm not by my PC right now, I'll send >>>>>> you the Force code later today. The code is a simple combination of >>>>>> BalanceVelocity and PriceVelocity. I combined them into a Force Indicator >>>>>> to be able to view the curve on the chart. >>>>>> >>>>>> Many thanks, >>>>>> >>>>>> Ali >>>>>> >>>>>> >>>>>> On Oct 7, 2014, at 6:08 AM, Eugene Kononov <[email protected]> >>>>>> wrote: >>>>>> >>>>>> Hi Ali, >>>>>> >>>>>> The indicators are calculated for the entire duration of the period >>>>>> in which market data is available, regardless of the trading schedule. >>>>>> The >>>>>> only thing that trading schedule controls is the time interval when the >>>>>> onBookSnapshot() method is invoked. If you don't see the indicator values >>>>>> before the trading schedule starts, the problem is in the indicator >>>>>> itself. >>>>>> The most likely explanation is that your indicator needs a history of >>>>>> market data which spans over the trading interval. For example, if you >>>>>> record from 9am, and the indicator needs 60 minutes of data to calculate >>>>>> its values, the first calculated indicator value would be at 10am. If you >>>>>> post your indicator code, perhaps I can spot a problem. >>>>>> >>>>>> E. >>>>>> >>>>>> >>>>>> On Tue, Oct 7, 2014 at 1:34 AM, Ali Farahani <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> Hello Eugene, >>>>>>> >>>>>>> I am using the Trading Schedule of: >>>>>>> >>>>>>> TradingSchedule tradingSchedule = new TradingSchedule("10:05", >>>>>>> "15:25", "America/New_York"); >>>>>>> >>>>>>> The indicator I am using (Force) only becomes available starting at >>>>>>> 10:05. I am trying to also monitor Force between 9:30 and 10:05, so I >>>>>>> changed the Trading Schedule (in StrategyES) and added the following >>>>>>> exclusion: >>>>>>> >>>>>>> TradingSchedule tradingSchedule = new TradingSchedule("09:30", >>>>>>> "15:25", "America/New_York"); >>>>>>> tradingSchedule.setExclusion("09:30", "10:05"); >>>>>>> >>>>>>> So I am getting the "Exclusion period must be within trading period >>>>>>> in trading schedule." message (from TradingSchedule). >>>>>>> >>>>>>> Other than modifying the TradingSchedule class OR using 9:31 instead >>>>>>> of 9:30 in the exclusion statement, is there a better way of >>>>>>> accomplishing >>>>>>> this objective? >>>>>>> >>>>>>> Kind regards, >>>>>>> >>>>>>> Ali >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "JBookTrader" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>> send an email to [email protected]. >>>>>>> To post to this group, send email to [email protected]. >>>>>>> Visit this group at http://groups.google.com/group/jbooktrader. >>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>> >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "JBookTrader" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to [email protected]. >>>>>> To post to this group, send email to [email protected]. >>>>>> Visit this group at http://groups.google.com/group/jbooktrader. >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "JBookTrader" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> To post to this group, send email to [email protected]. >>>>> Visit this group at http://groups.google.com/group/jbooktrader. >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "JBookTrader" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To post to this group, send email to [email protected]. >>>> Visit this group at http://groups.google.com/group/jbooktrader. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "JBookTrader" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To post to this group, send email to [email protected]. >>> Visit this group at http://groups.google.com/group/jbooktrader. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "JBookTrader" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To post to this group, send email to [email protected]. >> Visit this group at http://groups.google.com/group/jbooktrader. >> For more options, visit https://groups.google.com/d/optout. >> > > -- You received this message because you are subscribed to the Google Groups "JBookTrader" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/jbooktrader. For more options, visit https://groups.google.com/d/optout.
