praparation of Account for multiple stokcs
This commit is contained in:
parent
f7731c2381
commit
afe26c0f9c
@ -1,4 +1,4 @@
|
|||||||
#Mon, 09 Oct 2017 17:19:53 +0200
|
#Mon, 09 Oct 2017 22:37:48 +0200
|
||||||
annotation.processing.enabled=true
|
annotation.processing.enabled=true
|
||||||
annotation.processing.enabled.in.editor=false
|
annotation.processing.enabled.in.editor=false
|
||||||
annotation.processing.processors.list=
|
annotation.processing.processors.list=
|
||||||
|
@ -40,7 +40,7 @@ import java.util.concurrent.ConcurrentHashMap;
|
|||||||
protected AutoTraderInterface owner;
|
protected AutoTraderInterface owner;
|
||||||
|
|
||||||
protected final ConcurrentHashMap<Long , Order> orders;
|
protected final ConcurrentHashMap<Long , Order> orders;
|
||||||
protected ConcurrentHashMap<String,Integer> sharesm;
|
protected ConcurrentHashMap<String,Double> sharesm;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int compareTo(Object a) {
|
public int compareTo(Object a) {
|
||||||
|
@ -23,7 +23,6 @@
|
|||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package sesim;
|
package sesim;
|
||||||
|
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
@ -39,13 +38,18 @@ import org.json.JSONObject;
|
|||||||
import sesim.Order.OrderStatus;
|
import sesim.Order.OrderStatus;
|
||||||
import sesim.Order.OrderType;
|
import sesim.Order.OrderType;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @desc Echchange class
|
* @desc Echchange class
|
||||||
* @author 7u83
|
* @author 7u83
|
||||||
*/
|
*/
|
||||||
public class Exchange {
|
public class Exchange {
|
||||||
|
|
||||||
|
HashMap<String, Stock> stocks;
|
||||||
|
|
||||||
|
Stock getStock(String symbol) {
|
||||||
|
return stocks.get(symbol);
|
||||||
|
}
|
||||||
|
|
||||||
ConcurrentLinkedQueue<Order> order_queue = new ConcurrentLinkedQueue();
|
ConcurrentLinkedQueue<Order> order_queue = new ConcurrentLinkedQueue();
|
||||||
|
|
||||||
private double money_df = 10000;
|
private double money_df = 10000;
|
||||||
@ -111,8 +115,6 @@ public class Exchange {
|
|||||||
return shares_formatter;
|
return shares_formatter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
IDGenerator account_id_generator = new IDGenerator();
|
IDGenerator account_id_generator = new IDGenerator();
|
||||||
//public static Timer timer = new Timer();
|
//public static Timer timer = new Timer();
|
||||||
|
|
||||||
@ -210,7 +212,6 @@ public class Exchange {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void createTraders(JSONArray traderdefs) {
|
public void createTraders(JSONArray traderdefs) {
|
||||||
for (int i = 0; i < traderdefs.length(); i++) {
|
for (int i = 0; i < traderdefs.length(); i++) {
|
||||||
JSONObject o = traderdefs.getJSONObject(i);
|
JSONObject o = traderdefs.getJSONObject(i);
|
||||||
@ -234,7 +235,6 @@ public class Exchange {
|
|||||||
return a.id;
|
return a.id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class OrderComparator implements Comparator<Order> {
|
class OrderComparator implements Comparator<Order> {
|
||||||
|
|
||||||
OrderType type;
|
OrderType type;
|
||||||
@ -287,7 +287,6 @@ public class Exchange {
|
|||||||
|
|
||||||
IDGenerator order_id_generator = new IDGenerator();
|
IDGenerator order_id_generator = new IDGenerator();
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Histrory of quotes
|
* Histrory of quotes
|
||||||
*/
|
*/
|
||||||
@ -353,7 +352,6 @@ public class Exchange {
|
|||||||
|
|
||||||
// long num_trades = 0;
|
// long num_trades = 0;
|
||||||
// long num_orders = 0;
|
// long num_orders = 0;
|
||||||
|
|
||||||
public Statistics getStatistics() {
|
public Statistics getStatistics() {
|
||||||
return statistics;
|
return statistics;
|
||||||
/* Statistics s = new Statistics();
|
/* Statistics s = new Statistics();
|
||||||
@ -684,7 +682,6 @@ public class Exchange {
|
|||||||
// long orderid = 1;
|
// long orderid = 1;
|
||||||
//double lastprice = 100.0;
|
//double lastprice = 100.0;
|
||||||
// long lastsvolume;
|
// long lastsvolume;
|
||||||
|
|
||||||
// private final Locker tradelock = new Locker();
|
// private final Locker tradelock = new Locker();
|
||||||
public ArrayList<Order> getOrderBook(OrderType type, int depth) {
|
public ArrayList<Order> getOrderBook(OrderType type, int depth) {
|
||||||
|
|
||||||
@ -858,20 +855,15 @@ public class Exchange {
|
|||||||
removeOrderIfExecuted(b);
|
removeOrderIfExecuted(b);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void addQuoteToHistory(Quote q) {
|
void addQuoteToHistory(Quote q) {
|
||||||
if (statistics.heigh == null) {
|
if (statistics.heigh == null) {
|
||||||
statistics.heigh = q.price;
|
statistics.heigh = q.price;
|
||||||
}
|
} else if (statistics.heigh < q.price) {
|
||||||
else if (statistics.heigh<q.price){
|
|
||||||
statistics.heigh = q.price;
|
statistics.heigh = q.price;
|
||||||
}
|
}
|
||||||
if (statistics.low == null) {
|
if (statistics.low == null) {
|
||||||
statistics.low = q.price;
|
statistics.low = q.price;
|
||||||
}
|
} else if (statistics.low > q.price) {
|
||||||
else if(statistics.low>q.price){
|
|
||||||
statistics.low = q.price;
|
statistics.low = q.price;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -880,7 +872,6 @@ public class Exchange {
|
|||||||
updateQuoteReceivers(q);
|
updateQuoteReceivers(q);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@ -977,13 +968,11 @@ public class Exchange {
|
|||||||
q.volume = volume_total;
|
q.volume = volume_total;
|
||||||
q.time = timer.currentTimeMillis();
|
q.time = timer.currentTimeMillis();
|
||||||
|
|
||||||
|
|
||||||
addQuoteToHistory(q);
|
addQuoteToHistory(q);
|
||||||
|
|
||||||
//this.quoteHistory.add(q);
|
//this.quoteHistory.add(q);
|
||||||
//this.updateOHLCData(q);
|
//this.updateOHLCData(q);
|
||||||
//this.updateQuoteReceivers(q);
|
//this.updateQuoteReceivers(q);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
long buy_orders = 0;
|
long buy_orders = 0;
|
||||||
@ -1008,14 +997,13 @@ public class Exchange {
|
|||||||
long buy_failed = 0;
|
long buy_failed = 0;
|
||||||
long sell_failed = 0;
|
long sell_failed = 0;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param account_id
|
* @param account_id
|
||||||
* @param type
|
* @param type
|
||||||
* @param volume
|
* @param volume
|
||||||
* @param limit
|
* @param limit
|
||||||
* @return
|
* @return order_id
|
||||||
*/
|
*/
|
||||||
public long createOrder(double account_id, OrderType type, double volume, double limit) {
|
public long createOrder(double account_id, OrderType type, double volume, double limit) {
|
||||||
|
|
||||||
@ -1025,8 +1013,6 @@ public class Exchange {
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Order o = new Order(order_id_generator.getNext(),
|
Order o = new Order(order_id_generator.getNext(),
|
||||||
timer.currentTimeMillis(),
|
timer.currentTimeMillis(),
|
||||||
a, type, roundShares(volume), roundMoney(limit));
|
a, type, roundShares(volume), roundMoney(limit));
|
||||||
@ -1044,7 +1030,6 @@ public class Exchange {
|
|||||||
}
|
}
|
||||||
// System.out.printf("Order ffailed %f %f \n",o.volume,o.limit);
|
// System.out.printf("Order ffailed %f %f \n",o.volume,o.limit);
|
||||||
|
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1067,7 +1052,7 @@ public class Exchange {
|
|||||||
// executor.notify();
|
// executor.notify();
|
||||||
}
|
}
|
||||||
// a.update(o);
|
// a.update(o);
|
||||||
return o.id;
|
return o.getID();
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getBestLimit(OrderType type) {
|
public double getBestLimit(OrderType type) {
|
||||||
@ -1090,24 +1075,6 @@ public class Exchange {
|
|||||||
return accounts.get(account_id);
|
return accounts.get(account_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*public AccountData getAccountData(double account_id_generator) {
|
/*public AccountData getAccountData(double account_id_generator) {
|
||||||
tradelock.lock();
|
tradelock.lock();
|
||||||
Account a = accounts.get(account_id_generator);
|
Account a = accounts.get(account_id_generator);
|
||||||
@ -1169,5 +1136,4 @@ public class Exchange {
|
|||||||
return al;
|
return al;
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user