Yes, this will work, too.

On Wed, Oct 8, 2014 at 1:54 AM, Ali Farahani <[email protected]> wrote:

> 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.
>

-- 
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.

Reply via email to