fixed some bugs with randomtrader and schedduler

This commit is contained in:
7u83 2017-04-12 19:07:09 +02:00
parent 4dcc9d8d56
commit 9653a789f1
3 changed files with 51 additions and 20 deletions

View File

@ -1,4 +1,4 @@
#Tue, 11 Apr 2017 07:53:43 +0200
#Tue, 11 Apr 2017 19:27:26 +0200
annotation.processing.enabled=true
annotation.processing.enabled.in.editor=false
annotation.processing.processors.list=

View File

@ -29,6 +29,7 @@ import java.awt.Dialog;
import java.awt.Frame;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Window;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
@ -46,6 +47,7 @@ import java.util.logging.Logger;
import java.util.prefs.Preferences;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import static javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER;
import javax.swing.UIManager;
@ -69,7 +71,28 @@ public class SeSimApplication extends javax.swing.JFrame {
* Creates new form NewMDIApplication
*/
public SeSimApplication() {
initComponents();
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[] screens = ge.getScreenDevices();
Window w = screens[1].getFullScreenWindow();
JFrame dummy = new JFrame(screens[1].getDefaultConfiguration());
setLocationRelativeTo(dummy);
dummy.dispose();
for (GraphicsDevice gd:screens){
//Window w = gd.getFullScreenWindow();
}
setTitle("");
boolean init = Globals.prefs.getBoolean("initilized", false);
if (!init){
@ -77,7 +100,7 @@ public class SeSimApplication extends javax.swing.JFrame {
Globals.prefs.putBoolean("initilized", true);
}
this.chartSrollPane.setVerticalScrollBarPolicy(VERTICAL_SCROLLBAR_NEVER);
this.setLocationRelativeTo(null);
//this.setLocationRelativeTo(null);
}
AutoTraderInterface createTraderNew(Exchange se, long id, String name, double money, double shares, JSONObject cfg) {
@ -859,6 +882,7 @@ public class SeSimApplication extends javax.swing.JFrame {
System.out.printf("ID %s\n", d.getIDstring());
}
//System.exit(0);
//System.exit(0);
Globals.initGlobals();
@ -884,6 +908,7 @@ public class SeSimApplication extends javax.swing.JFrame {
.getPath()).toString(); //.getName();
System.out.printf("Creating Application\n");
new SeSimApplication().setVisible(true);
}
});

View File

@ -37,6 +37,7 @@ import sesim.Exchange;
import sesim.Exchange.Account;
import sesim.Exchange.AccountListener;
import sesim.Exchange.OrderStatus;
import sesim.Exchange.OrderType;
import sesim.Quote;
/**
@ -77,15 +78,20 @@ public class RandomTraderA extends AutoTraderBase implements AccountListener {
timerTask = se.timer.startTimerTask(this, delay);
}
boolean intask=false;
boolean intask = false;
@Override
public long timerTask() {
intask=true;
intask = true;
owait = null;
sesim.Exchange.Account a = se.getAccount(account_id);
long rc = this.doTrade();
setStatus("Sleeping for %d ms", rc);
intask =false;
setStatus("Return fromtask %d", rc);
intask = false;
setStatus("Return fromtask %d", rc);
if (owait != null)
return owait;
return rc;
}
@ -118,8 +124,8 @@ setStatus("Return fromtask %d", rc);
}
void setStatus(String format, Object... arguments) {
String s = String.format(format, arguments);
System.out.printf("%s: %s\n", this.getName(), s);
// String s = String.format(format, arguments);
// System.out.printf("%s: %s\n", this.getName(), s);
}
private Float[] to_float(JSONArray a) {
@ -141,6 +147,8 @@ setStatus("Return fromtask %d", rc);
}
Long owait = null;
@Override
public void putConfig(JSONObject cfg) {
if (cfg == null) {
@ -195,21 +203,19 @@ setStatus("Return fromtask %d", rc);
@Override
public void accountUpdated(Account a, Exchange.Order o) {
setStatus("Account update -%s ",o.getOrderStatus().toString());
setStatus("Account update -%s ", o.getOrderStatus().toString());
setStatus("In Task: %s", Boolean.toString(this.intask));
//System.out.printf("Order updated %s %d\n", o.getOrderStatus().toString(), Thread.currentThread().getId());
if (o.getOrderStatus() == OrderStatus.CLOSED) {
// System.out.printf("Enteter canel timer %d\n", Thread.currentThread().getId());
//System.out.printf("back from canel timer %d\n", System.identityHashCode(this));
//System.exit(0);
// setStatus("Order closed, %s", o.getType().toString());
Long w = waitAfterOrder();
if (!intask) {
Long w = waitAfterOrder();
setStatus("Reschedule %d", w);
se.timer.rescheduleTimerTask(timerTask, w);
} else {
owait = waitAfterOrder();
}
// System.out.printf("We have now to wait for %d\n", w);
// se.timer.cancelTimerTask(this);
// timerTask = se.timer.startTimerTask(this, w);
setStatus("Reschedule %d",w);
se.timer.rescheduleTimerTask(timerTask, w);
}
// System.out.printf("Updatetd Account\n", "");
@ -231,7 +237,7 @@ setStatus("Return fromtask %d", rc);
Action mode = Action.RANDOM;
Integer doTrade1(Action a) {
setStatus("doTrade1 with action %s",a.toString());
setStatus("doTrade1 with action %s", a.toString());
switch (a) {
case BUY: {
boolean rc = doBuy();