Баланс аккаунта при открытии и закрытии ордера

 

Прошу помощи разобраться с несложным вопросом. 

На мой взгляд все должно работать, но оно не работает. Задача узнать баланс при открытии ордера и затем после закрытия.

Допусти так:

double Balance, NewBalance;

int start()

{

if (условия закрытия)

{

OrderClose(Ticket,Lot,Ask,2);

NewBalance = AccountBalance();

if (NewBalance < Balance)

{

Alert('мы проиграли = ', Balance - NewBalance );

}

else

{

Alert('мы выиграли = ', NewBalance - Balance);

}

if (условия открытия)

{

OrderSend(Symb,OP_BUY,Lts,Bid,2,0,0);

Balance = AccountBalance();

}

Хочется научится этому делу, объясните пожалуйста почему это не работает.

На выходе мы получаем Alert с просто новым балансом.

 
И что не работает?
 

А ордеров сколько открывает/закрывает? Если только один откроет, то будет просто баланс.

 

Заметил, что Ticket из OrderSend не принимается, остается неизвестным, да и переменной такой нет снаружи start. Заменил бы и слово start, зачем рисковать, используя зарезервированные слова.

 
double Balance;

int start()  {
if (условия закрытия)

{ OrderClose(Ticket,Lot,Ask,2);}


if (AccountBalance()< Balance)

{ Alert('мы проиграли = ', Balance - NewBalance ); }

if (AccountBalance()>Balance)
{ Alert('мы выиграли = ', NewBalance - Balance);} if (условия открытия) {Balance = AccountBalance(); OrderSend(Symb,OP_BUY,Lts,Bid,2,0,0);} }
Попробуйте так может получится
 

Подправлю

{
if(OrderSend(Symb,OP_BUY,Lts,Bid,2,0,0)>-1) Balance = AccountBalance();
} 
Причина обращения: