In our strategy I am loging bid and ask prices and every trade.
Using this code inside onTick
this.print("__EA_Trader: clientSocket sending tick to host."); this.print("__EA_Trader: bid : " + tick.getBid() + " ask : " + tick.getAsk()); this.print("__EA_Trader: Current equity: " + formatter.format(context.getAccount().getEquity()) + " " + this.currency); this.print("__EA_Trader: Current balance: " + formatter.format(context.getAccount().getBalance()) + " " + this.currency); this.outputStream.println(message); this.print("__EA_Trader: clientSocket waiting for host response.");
after our system response I am opening trades
if (opening_trade > 0) { engine.submitOrder(getLabel(Instrument.EURUSD), Instrument.EURUSD, OrderCommand.BUY, Math.abs(opening_trade) * 0.001); } else if (opening_trade < 0) { engine.submitOrder(getLabel(Instrument.EURUSD), Instrument.EURUSD, OrderCommand.SELL, Math.abs(opening_trade) * 0.001); }
Also I am logging inside onMessage console.getOut().println("__EA_Trader: onMessage called. " + message.toString()); if (message.getType() == IMessage.Type.ORDER_FILL_OK) { console.getOut().println("__EA_Trader: Merging orders. "); List<IOrder> orders = new ArrayList<IOrder>(); for (IOrder order : engine.getOrders()) { if (order.getState() == IOrder.State.FILLED) { console.getOut().println("__EA_Trader: Merging orders :" + order.getState().toString()); orders.add(engine.getOrder(order.getLabel())); } } engine.mergeOrders(getLabel(Instrument.EURUSD),orders.toArray(new IOrder[0])); } else if (message.getType() == IMessage.Type.ORDERS_MERGE_OK) { console.getOut().println("__EA_Trader: Current equity: " + formatter.format(context.getAccount().getEquity()) + " " + this.currency); console.getOut().println("__EA_Trader: Current balance: " + formatter.format(context.getAccount().getBalance()) + " " + this.currency); }
How it is possible, that in HistoryTester it makes such log:
2012.03.21 13:11:10,__EA_Trader: clientSocket sending tick to host. 2012.03.21 13:11:10,__EA_Trader: bid : 1.31912 ask : 1.3193 2012.03.21 13:11:10,__EA_Trader: Current equity: 50000.00 USD 2012.03.21 13:11:10,__EA_Trader: Current balance: 50000.00 USD 2012.03.21 13:11:10,__EA_Trader: clientSocket waiting for host response. 2012.03.21 13:11:11,__EA_Trader: clientSocket reading host response. 2012.03.21 13:11:11,__EA_Trader: Trade direction: SELL volume: 1 2012.03.21 13:11:11,__EA_Trader: this.new_trade = -1 2012.03.21 13:11:11,__EA_Trader: checking trade changes. 2012.03.21 13:11:11,__EA_Trader: opening trade : -1 2012.03.21 13:11:11,__EA_Trader: onMessage called. ORDER_SUBMIT_OK - Order submitted order: OPENED SELL 0.0010 @ 0.0 2012.03.21 13:11:11,__EA_Trader: onMessage called. ORDER_FILL_OK - Order filled order: FILLED SELL 0.0010 @ 1.31912 2012.03.21 13:11:11,__EA_Trader: Merging orders. 2012.03.21 13:11:11,__EA_Trader: Merging orders :FILLED 2012.03.21 13:11:11,__EA_Trader: clientSocket sending tick to host. 2012.03.21 13:11:11,__EA_Trader: bid : 1.31912 ask : 1.31929 2012.03.21 13:11:11,__EA_Trader: Current equity: 50000.00 USD 2012.03.21 13:11:11,__EA_Trader: Current balance: 50000.00 USD 2012.03.21 13:11:11,__EA_Trader: clientSocket waiting for host response. 2012.03.21 13:11:11,__EA_Trader: clientSocket reading host response. 2012.03.21 13:11:11,__EA_Trader: Trade direction: SELL volume: 1 2012.03.21 13:11:11,__EA_Trader: this.new_trade = -1 2012.03.21 13:11:11,__EA_Trader: checking trade changes. 2012.03.21 13:11:11,__EA_Trader: clientSocket sending tick to host. 2012.03.21 13:11:11,__EA_Trader: bid : 1.31912 ask : 1.31926 2012.03.21 13:11:11,__EA_Trader: Current equity: 50000.00 USD 2012.03.21 13:11:11,__EA_Trader: Current balance: 50000.00 USD 2012.03.21 13:11:11,__EA_Trader: clientSocket waiting for host response. 2012.03.21 13:11:11,__EA_Trader: clientSocket reading host response. 2012.03.21 13:11:11,__EA_Trader: Trade direction: SELL volume: 1 2012.03.21 13:11:11,__EA_Trader: this.new_trade = -1 2012.03.21 13:11:11,__EA_Trader: checking trade changes. 2012.03.21 13:11:11,__EA_Trader: clientSocket sending tick to host. 2012.03.21 13:11:11,__EA_Trader: bid : 1.31912 ask : 1.31924 2012.03.21 13:11:11,__EA_Trader: Current equity: 50000.00 USD 2012.03.21 13:11:11,__EA_Trader: Current balance: 50000.00 USD 2012.03.21 13:11:11,__EA_Trader: clientSocket waiting for host response. 2012.03.21 13:11:11,__EA_Trader: clientSocket reading host response. 2012.03.21 13:11:11,__EA_Trader: Trade direction: SELL volume: 1 2012.03.21 13:11:11,__EA_Trader: this.new_trade = -1 2012.03.21 13:11:11,__EA_Trader: checking trade changes. 2012.03.21 13:11:11,__EA_Trader: clientSocket sending tick to host. 2012.03.21 13:11:11,__EA_Trader: bid : 1.31913 ask : 1.31924 2012.03.21 13:11:11,__EA_Trader: Current equity: 49999.86 USD 2012.03.21 13:11:11,__EA_Trader: Current balance: 50000.00 USD
Why account equity is not (bid - ask) just after sucessfull trade opening? Why it is start to change 2 ticks after?
Thanks a lot
|