Giter VIP home page Giter VIP logo

jbooktrader's People

Contributors

mwilliford avatar nonlinear5 avatar

Watchers

 avatar

jbooktrader's Issues

Avoid Multiple instance

Multiple JBT can be opened simultanteously. It makes my PC super slow.
Why not avoid open multiple instance like JST?

What version of the product are you using? On what operating system?

1.06

Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 6 Mar 2008 at 9:37

Bug in handling of isFilled field of com.jbooktrader.platform.position.OpenOrder class

What steps will reproduce the problem?
1. isFilled is not initialized to false in constructor
2. Note that once isFilled is set to true, it can never go to false

------------------------
What is the expected output? What do you see instead?

Found it by browsing code
------------------------
What version of the product are you using? On what operating system?

5.04, Windows
------------------------
Please provide any additional information below.


    public void add(Execution execution) {
        sharesFilled += execution.m_shares;
        avgFillPrice += execution.m_price * execution.m_shares;

        if (sharesFilled == order.m_totalQuantity) {
            avgFillPrice /= sharesFilled;
            date = strategy.getTime();
            isFilled = true;
        }
    }

Suppose that I have a position of 100 shares in Stock XYZ that has been
filled at an average price of $100.  Now, let's say that I decide to add to
that position by purchasing 1000 more shares at $100.  Before the 1000
shares purchase executes, isFilled is still true from the previous purchase
of the 100 shares, but this does not make sense.

Note that the isFilled field qualifies the avgFillPrice so that we know
when it is a meaningful quantity.


Original issue reported on code.google.com by [email protected] on 29 Aug 2008 at 8:00

Support for a deeper market depth

Support for a deeper market depth, the CME provides a 5+5 DOM but for
example EUREX has 20+20 

If support for a deeper DOM is added then it could be interesting to test a
kind of exponential market depth balance.

Original issue reported on code.google.com by [email protected] on 23 May 2008 at 4:56

DepthVelocity.java name change recommendation

>What steps will reproduce the problem?

DepthVelocity.java calculates change in position (Delta) not Velocity (rate
of change in position):

    public double calculate() {
        int indexNow = marketBook.size() - 1;
        int indexThen = indexNow - period;
        value = getDepthBalance(indexNow) - getDepthBalance(indexThen);
        return value;
    }


>What is the expected output? What do you see instead?

Velocity = "rate of change in position" should be calculated (Delta in
DepthBalance) divided by (Delta in Time).

E.g.:

    public double calculate() {
        int indexNow = marketBook.size() - 1;
        int indexThen = indexNow - period;
        int delta = getDepthBalance(indexNow) - getDepthBalance(indexThen);
        value = delta / period;
        return value;
    }


What version of the product are you using? On what operating system?
JBT 2.08


>Please provide any additional information below.
Time normalization is preferred. E.g. we should implement a function for
converting period to hours or seconds. It will be more easy to compare
different strategies and time frames when we speak in normalized units.


Kind regards,
Andrey Bogomolov.

Original issue reported on code.google.com by [email protected] on 11 Apr 2008 at 6:26

Measuring "motion" profile of market forces enhancement

>What steps will reproduce the problem?
No problem. New feature request.

>What is the expected output? What do you see instead?

I expect to address bookbalance FirstDerivative, SecondDerivative and
ThirdDerivative.

Under the application namespace it can be called:
Indicator.FirstDerivative(), Indicator.SecondDerivative(),
Indicator.ThirdDerivative();
or
Indicator.DepthBalanceVelocity(), Indicator.DepthBalanceAcceleration(),
Indicator.DepthBalanceJerk();


>What version of the product are you using? On what operating system?
JBT 2.08

>Please provide any additional information below.

1. Short theory.
I analyzed the application logic.
We try to measure "motion" profile of market forces.
The motion profile usually consists of up to 7 segments defined by the
following equations:
   1. acceleration build-up, with constant jerk = maxJerk
   2. move with constant acceleration, with jerk = 0
   3. approaching the desired maximum velocity, with jerk = -maxJerk
   4. move with constant speed, with jerk = 0 and acceleration = 0
   5. approaching the desired deceleration, with jerk = -maxJerk
   6. move with constant deceleration, with jerk = 0
   7. approaching the desired position, with jerk = maxJerk

2. What is to be calculated.
We are interested in:
a) finding points in time when motion is approaching the desired maximum
velocity if we want to be contrarians (take a position against market
forces looking for market correction).
b) finding points in time when motion is just started and is strong enough
to follow it. That case should correspond acceleration build-up stage, with
constant jerk = maxJerk.

3. What is to be implemented:
Indicator.FirstDerivative(), Indicator.SecondDerivative(),
Indicator.ThirdDerivative() and sample strategies using this indicators.

4. Future innovation and implementation.
Then we can calculate the best points for ENTRY and EXIT for strategy a and
strategy b for specific types of the market (e.g. ES or NQ futures) and
prove it statistically.


Kind regards,
Andrey Bogomolov.

Original issue reported on code.google.com by [email protected] on 11 Apr 2008 at 6:10

addIndicator() and optimization

What steps will reproduce the problem?
If a strategy doesn't have all its indicators in addIndicator() then
optimizing it does not work.

What is the expected output? What do you see instead?
The optimization windows keeps blank.

What version of the product are you using? On what operating system?
3.01
Linux

Original issue reported on code.google.com by [email protected] on 23 May 2008 at 4:51

No market data for FX after IB server restarts at midnight EST

What steps will reproduce the problem?
1. Create two strategies, one with EUR.USD, the other one with GBP.USD 
2. Start both strategies in forward test mode sometime before midnight EST
3. Shortly after IB server restarts (sometime after 00:01 EST), check JBT.
One of the strategies keeps receiving market data, and the other one does not.

More information (as reported by Javier):
http://groups.google.com/group/jbooktrader/browse_thread/thread/8c34c691da33a902

Original issue reported on code.google.com by [email protected] on 13 Jul 2009 at 4:57

java.lang.NumberFormatException when calculating oneSecondBalance

When I leave JBT running past trading hours my EventReport fills with these
messages:

java.lang.NumberFormatException: For input string: "�" at
sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224) at
java.lang.Double.valueOf(Double.java:475) at
com.jbooktrader.platform.marketdepth.MarketDepth.getMarketSnapshot(MarketDepth.j
ava:99)
at
com.jbooktrader.platform.marketbook.MarketBook.getNextMarketSnapshot(MarketBook.
java:58)
at
com.jbooktrader.platform.strategy.StrategyRunner$SnapshotHandler.run(StrategyRun
ner.java:28)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at
java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(
ScheduledThreadPoolExecutor.java:98)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic
(ScheduledThreadPoolExecutor.java:181)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Schedul
edThreadPoolExecutor.java:205)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:8
86)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619) 

I noticed this problem when I was collecting data from Eurex exchange, I'm
not sure if same thing happens with Globex but I will try to test it. 



Original issue reported on code.google.com by [email protected] on 20 Nov 2009 at 10:10

Forward test after 'Max number (3) of market depth requests has been reached'

I don't understand why it's not possible to run forward test after receiving
'Max number (3) of market depth requests has been reached' error.
For instance: when I click forward test and there is already 3 market depth
connections I will get previously mentioned error. When I close one of the
market depth connections and click forward test again on the same strategy
JBT informs me that strategy is already running when it isn't.
It would be much more convenient if user could hit forward test again and
start strategy after receiving max number of connections error without
necessity of restarting JBT.

Original issue reported on code.google.com by [email protected] on 3 Dec 2009 at 2:29

JBT does not use 2 processor while strategy optimizing

What steps will reproduce the problem?
Start any strategy optimization process. Brute force.

What is the expected output? What do you see instead?
I expect computing using all processors power.
Look at the screen shot attached.

What version of the product are you using? On what operating system?
Windows xp sp2, jbt 2.08


Original issue reported on code.google.com by [email protected] on 10 Apr 2008 at 2:14

Attachments:

Support for other brokers

Other brokers and/or data feed providers support would be great.

The first step would be to list the ones that have an API so that we can
write other com.ib.client.EWrapper interfaces.

The 1st one I propose : www.quickfixj.org

Original issue reported on code.google.com by [email protected] on 15 Sep 2008 at 5:16

A pause button on the optimizer

It would be a used feature if we could pause the optimizer when it's doing
a job.  If we need the computer during a long job, we could pause the
optimizer and resume the optimization after.

Original issue reported on code.google.com by [email protected] on 17 Sep 2008 at 6:36

Network issues in the middle of order submission may result in duplicate orders

What steps will reproduce the problem?

I have no idea.  First, start with a poor network connection...


What is the expected output? What do you see instead?

I expected/hoped that IB and JBT would sync up once the connection was
re-established, but apparently, they did not.


Please use labels and text to provide additional information.


Original issue reported on code.google.com by [email protected] on 20 Aug 2009 at 4:59

The NTPClock object is called recursively when starting a Trade or ForwardTest session.

What steps will reproduce the problem?
1. There appears to be a problem with the code to get the time from the 
timeserver. If getting the time fails, it recursively tries to execute the same 
code connecting to the time server.
2. I think to recreate this, you would need to have your firewall block the 
time server protocol, although I have not figured out the solution yet.
3.

What is the expected output? What do you see instead?
I expected the code to run the forward test or the trade operation.

What version of the product are you using? On what operating system?
Windows XP, just downloaded version 7.06


See attachment for recursive nature of the calls to get the time and the 
NTPCLock.

Original issue reported on code.google.com by [email protected] on 14 Jun 2010 at 9:08

Attachments:

Problem with chart representation of 'Net Profit' when scrolling

What steps will reproduce the problem?
1. Perform a backtest. Wait for completion.
2. Select the associated chart. Zoom in at a random location.
3. Scroll horizontally.

What is the expected output? What do you see instead?
y-Axis limits should always reflect the high and low values of the actual
'Net Profit' data in the currently chosen time range.
However, on the "Net Profit" chart, the high and low limits of the y-Axis
remain the same or move erratically. This often leads to not seeing the
plot at all, as the data is out of range. 

What version of the product are you using? On what operating system?
I can't see anymore what JBookTrader version I have, but this seems to be a
known problem. I'm running Windows Vista 64 Bit.



Original issue reported on code.google.com by [email protected] on 8 Jan 2010 at 6:41

Bug in Calculation of Commission Fees

What steps will reproduce the problem?
1. Bundled North American share price is $1 
2. Order Size 100 shares
-------------------------
What is the expected output? What do you see instead?

Fee should be $1, but output gives $0.50
-------------------------
What version of the product are you using? On what operating system?

Version 5.04, Windows 
-------------------------
Please provide any additional information below.

The problem occurs for cases where the "minimum" commission is greater than
the "maximumCommission" as the case above describes.  The default code is


    public double getCommission(int contracts, double price) {
        double commission = rate * contracts;
        commission = Math.max(commission, minimum);
        if (maximumPercent > 0) {
            double maximumCommission = contracts * price * maximumPercent;
            commission = Math.min(commission, maximumCommission);
        }

        return commission;
    }


To fix it, just swap some lines as follows


    public double getCommission(int contracts, double price) {
        double commission = rate * contracts;
        if (maximumPercent > 0) {
            double maximumCommission = contracts * price * maximumPercent;
            commission = Math.min(commission, maximumCommission);
        }
        commission = Math.max(commission, minimum); ////////**********
        return commission;
    }

Original issue reported on code.google.com by [email protected] on 29 Aug 2008 at 7:13

Enable catastrophic stop loss

There should be a way to set a stop loss order every time the position 
changes. It would serve as a protection against events such as loss of 
power, ISP failures, etc.

Original issue reported on code.google.com by [email protected] on 23 Feb 2008 at 5:31

Incorrect standard deviation calculation

In class MovingWindowStDev, the standard deviation calculation is incorrect.

For example the standard deviation of the array {0 , 2} is 1.
But:
MovingWindowStDev stdDev = new MovingWindowStDev(2);
stdDev.add(0.);
stdDev.add(2.);
System.out.println(stdDev.getStdev());

will display a result of 1.41[..] instead.
Here's a fix:

public double getStdev() {
    int capacity = getCapacity();
    double num = sumSquared - (sum * sum) / capacity;
    return Math.sqrt(num / capacity);
}

Original issue reported on code.google.com by [email protected] on 5 Feb 2011 at 3:44

Time & Sales feature

This data could be written to another file and the format could be : date -
time - price - volume

or by adding a line type flag in the current data file

The idea to add this data to another file is not to overload the data for
the people who don't need T&S.

Original issue reported on code.google.com by [email protected] on 23 May 2008 at 4:55

Strategy may not rollover to new contract if jbook stays running through the volume crossover date


This is hard to test specifically, but I base this on code review of the 
makeContract relationship to Strategy.  If I understand it correctly, Strategy 
is not constructed each day, so a new contract selection is never made.  So, 
rules about new contracts during crossover are only executed when the Strategy 
is first constructed.

The fix would be to check and replace the contract info each day.


Original issue reported on code.google.com by [email protected] on 9 Jan 2013 at 9:28

Correcting calculation of the Standard Deviation, and adding Iterable interface to MovingWindow.java

What steps will reproduce the problem?
1. I believe the StdDeviation is not being calculated correctly in the 
MovingWindow class.
2. I believe the Std Deviation of the following numbers should be 6.48, where 
the code produces a different result.
3. The input was 1,3,4,6,9,19

What is the expected output? What do you see instead?
the standard Deviation should be 6.48

What version of the product are you using? On what operating system?
6.07  Windows XP.

I have an updated version of the code I can upload which fixes the problem, and 
also adds an Iterable interface to the MovingWindow to allow calculations such 
as Stochastics by Indicators.

I am not sure how to commit the changes, as the commit operation did not work 
for me when I tried. I have attached the new MovingWindow class.

Original issue reported on code.google.com by [email protected] on 15 Jun 2010 at 3:06

Attachments:

404 in web console for strategy report

What steps will reproduce the problem?
1. Delete an existing strategy report
2. Start JBT in forward test mode and open a web console
3. When the number of trades is still zero, click on the strategy name to
see the report


What is the expected output? What do you see instead?
Expected: some sort of one liner explaining that strategy report is empty
Actual: 404 error.

Original issue reported on code.google.com by [email protected] on 20 Jul 2009 at 1:29

Password for data file ?

Could you provide me with the password for your ES data so that I can test
my strategies ?
Thx
Quentin

Original issue reported on code.google.com by [email protected] on 26 Oct 2008 at 1:14

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.