Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Опубликуй статью и заслужи признание тысячи трейдеров!
Nicon
17
Nicon 2015.11.23 03:20 

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

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

Допусти так:

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 с просто новым балансом.

Vasyl Nosal
18196
Vasyl Nosal 2015.11.23 17:56  
И что не работает?
Василий Пушкарев
128
Василий Пушкарев 2015.11.23 19:09  

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

Vladimir
198
Vladimir 2015.11.27 09:01  

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

sdf3733
95
sdf3733 2015.11.29 13:28  
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);} }
Попробуйте так может получится
Vasyl Nosal
18196
Vasyl Nosal 2015.11.29 15:22  

Подправлю

{
if(OrderSend(Symb,OP_BUY,Lts,Bid,2,0,0)>-1) Balance = AccountBalance();
} 
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий