Нужна помощь - Манипуляции с балансом

forextime

Активный участник
Как записать максимальное значение баланса на счете и сравнить его с текущим балансом
double MaxBalance;
double NewBalance;
if (NewBalance < MaxBalance) то действие
 

alexshell

Элитный участник
if(NewBalance>MaxBalance)MaxBalance=NewBalance;
И максбалансе должно быть обьявлено в глобальных переменных.
 

forextime

Активный участник
if(OrdersB==0||OrdersS==0) StartBalance=AccountBalance(); // в истории нет ордеров (записали баланс)
NewBalance=AccountBalance(); // текущий баланс (записали баланс)
if(StartBalance<NewBalance) MaxBalance=((NewBalance-StartBalance)+StartBalance); // максимальный баланс (записали баланс)
 
Последнее редактирование:

forextime

Активный участник
Всё, сделал !!
Вот так работает))


double MaxBalance=0, StartBalance, NewBalance;

if(OrdersB==0||OrdersS==0) StartBalance=AccountBalance();
NewBalance=AccountBalance();
if(StartBalance>MaxBalance) MaxBalance=StartBalance;
if(StartBalance<NewBalance) MaxBalance=((NewBalance-StartBalance)+StartBalance);

if(NewBalance<MaxBalance){
for(i=OrdersTotal()-1;i>=0;i--) if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==Symb && OrderMagicNumber()==Magic) {
if(OrderType()==0 && AccountEquity()>=MaxBalance) CloseOrder(OrderTicket());
}
}
if(NewBalance<MaxBalance){
for(i=OrdersTotal()-1;i>=0;i--) if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==Symb && OrderMagicNumber()==Magic) {
if(OrderType()==1 && AccountEquity()>=MaxBalance) CloseOrder(OrderTicket());
}
}

Теперь можно восстанавливать баланс после серии убыточных ордеров.
ТЕМА ЗАКРЫТА
 
Последнее редактирование:
Верх