forhire / jbooktrader Goto Github PK
View Code? Open in Web Editor NEWAutomatically exported from code.google.com/p/jbooktrader
Automatically exported from code.google.com/p/jbooktrader
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
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, 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
Divide-and-conquer progress going over 100%
Original issue reported on code.google.com by [email protected]
on 7 Sep 2010 at 7:32
>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
Data recorded for the same instrument with different strategies is different.
Some lines are missing but most of the time the changes are minor.
Original issue reported on code.google.com by [email protected]
on 23 May 2008 at 4:53
>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
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
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
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
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
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:
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
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
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
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:
Add to the title bar if JBT is in forward test mode or trade mode
Original issue reported on code.google.com by [email protected]
on 23 May 2008 at 4:53
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
The first Time i run i get:
at
com.jbooktrader.platform.util.ui.MessageDialog.showException(MessageDialog.java:
25)
at com.jbooktrader.platform.startup.JBookTrader.main(JBookTrader.java:60)
am using eclipse on windows
Original issue reported on code.google.com by [email protected]
on 25 Oct 2013 at 7:50
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
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
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
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
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
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:
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
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
I'd like to be able to determine the number of contracts to be traded by a
strategy at run-time, rather than re-compiling the strategy.
Original issue reported on code.google.com by [email protected]
on 25 Aug 2009 at 9:51
Current, you can set any number of strategies forward testing or trading, but
you cannot stop one
of them without stopping all of them.
Original issue reported on code.google.com by [email protected]
on 9 Jul 2009 at 5:37
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.