Would you mind posting your KalmanTest.java and TensionKalman.java to the group so that we know that we are testing the same thing? Thanks.
On Wed, Dec 15, 2010 at 11:59 PM, Astor <[email protected]> wrote: > > I agree. That is why I am puzzled. > > I wanted to get a better feel for the way Kalman filter class was working. > > First, I took your KalmanTest.java and TensionKalman.java classes and, to > make things simple, removed one of the kalman filters. So, only > kalmanFastPrice is left. > > Then, I modified the* getPostState( )* method in TensionKalman, so it > would return a 2-element array double[] kalmanResult, where > kalmanResult[0] held the smoothed price and kalmanResult[1] held the error > covariance for this smoothed price. > > Then, in *calculate( )* method in TensionKalman, I added the following > line: *out.println(price + "," + kalmanResult[0]); * > > I ran a backtest on the strategy, just to get the values of the price and > smoothed price. Per your advice, I copied and pasted into Excel the values > of price and kalmanResult[0] (i.e. smoothed price). > > When I ran the backtest again, with different FAST_ERROR value, I noticed > that the price values were lagged relative to the first run. > > I tried with several more FAST_ERROR values and each time got a different > shift in the price time series. > > If you repeat those steps above, you should be able to reproduce the > problem. I ran the backtest on ES test file on a single date: Aug. 12, > 2009. > ------------------------------ > *From:* nonlinear5 <[email protected]> > *To:* [email protected] > *Sent:* Wed, December 15, 2010 10:10:46 PM > *Subject:* Re: [JBookTrader] Re: Status of Kalman filter? > > Please explain how to reproduce the problem. The price should *not *be > affected by indicator parameters. > > On Wednesday, December 15, 2010 10:10:18 PM UTC-5, Alexana wrote: >> >> >> I see a very puzzling behavior in JBT, which may be important. >> >> I have been looking at Kalman filter as a replacement for EMA. The >> parameter Measurement Noise serves the same function for Kalman filter as >> Period for EMA. So, I am optimizing the Measurement Noise to control the >> level of smoothing that the filter provides. >> >> As per Eugene's suggestion below, I have added the following line to the >> calculate( ) method: >> >> >> System. >> *out*.println(price + "," + kalmanResult[0]); >> >> >> >> I then copied the output and pasted it into Excel. The puzzling thing is >> that the values of *price *changed when the parameter value is changed >> from the backtest GUI in JBT. Of course I would expect that the value of >> kalmanResult[0] would change in response to changing parameter, but the >> values of price should remain constant. If the values of price are affected >> by changes in the value of the parameter, then the backtester may not be >> working properly. >> >> >> >> I used ES test file in my backtest and ran the backtest for one day only, >> Aug. 12, 2009. >> ------------------------------ >> *From:* nonlinear5 <[email protected]> >> *To:* JBookTrader <[email protected]> >> *Sent:* Mon, December 6, 2010 4:36:13 PM >> *Subject:* [JBookTrader] Re: Status of Kalman filter? >> >> > Eugene, I have added the process noise to your code and am trying to >> replicate >> > the graphs for Kalman and EMA that you have posted below. Is there a >> feature in >> > JBT to create those graphs or did you have to export the data to >> external >> > package? >> > >> >> No, there is no direct support for that in JBT. What I did was simply >> print a comma-separated list of indicator values from the >> onBookSnapshot method, and then copy and save the output in a file, >> which can then be imported to Excel. Example: >> double priceKalmanFast = priceKalmanFastInd.getValue(); >> double priceKalmanSlow = priceKalmanSlowInd.getValue(); >> double priceEMAFast = priceEMAFastInd.getValue(); >> double priceEMASlow = priceEMASlowInd.getValue(); >> double price = getMarketBook().getSnapshot(). getPrice(); >> System.out.println(price + "," + priceEMAFast + "," + >> priceEMASlow >> + "," + priceKalmanFast + "," + priceKalmanSlow); >> >> -- >> You received this message because you are subscribed to the Google Groups >> "JBookTrader" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to jbooktrader+unsub...@ >> googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/jbooktrader?hl=en. >> >> >> -- > You received this message because you are subscribed to the Google Groups > "JBookTrader" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<jbooktrader%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/jbooktrader?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "JBookTrader" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<jbooktrader%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/jbooktrader?hl=en. > -- You received this message because you are subscribed to the Google Groups "JBookTrader" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/jbooktrader?hl=en.
