Dukascopy
 
 
Wiki JStore Search Login

Attention! Read the forum rules carefully before posting a topic.

    Try to find an answer in Wiki before asking a question.
    Submit programming questions in this forum only.
    Off topics are strictly forbidden.

Any topics which do not satisfy these rules will be deleted.

Wrong equity
 Post subject: Wrong equity Post rating: 0   New post Posted: Wed 21 Mar, 2012, 14:27 

User rating: 0
Joined: Tue 13 Mar, 2012, 14:53
Posts: 6
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


 
 Post subject: Re: Wrong equity Post rating: 0   New post Posted: Wed 21 Mar, 2012, 14:28 
User avatar

User rating:
Joined: Fri 31 Aug, 2007, 09:17
Posts: 6139
See:
https://www.dukascopy.com/client/javadoc/com/dukascopy/api/IAccount.html#getEquity()


 
 Post subject: Re: Wrong equity Post rating: 0   New post Posted: Thu 22 Mar, 2012, 16:36 

User rating: 0
Joined: Tue 13 Mar, 2012, 14:53
Posts: 6
Thanks a lot


 

Jump to:  

cron
  © 1998-2025 Dukascopy® Bank SA
On-line Currency forex trading with Swiss Forex Broker - ECN Forex Brokerage,
Managed Forex Accounts, introducing forex brokers, Currency Forex Data Feed and News
Currency Forex Trading Platform provided on-line by Dukascopy.com