Скачать MetaTrader 5

Как вычислить начальный депозит счёта?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
RotVeller
227
RotVeller 2008.11.03 15:54 

Как вычислить чистый начальный депозит счёта ?


В истории он указан как Deposit

Rashid Umarov
Админ
11989
Rashid Umarov 2008.11.03 15:56  
Посмотрите скрипт Summary Report In Points
RotVeller
227
RotVeller 2008.11.03 16:13  
Rosh >>:
Посмотрите скрипт Summary Report In Points

Гм...

Спасибо большое, оно круто конечно...

Но в терминале же висит эта цифра в истории, неуж-то её никак попроще оттуда не снять?

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

Rustamzhan Salidzhanov
7687
Rustamzhan Salidzhanov 2008.11.03 16:48  
ну так посчитайте суммарный профит по всем закрытым ордерам, и отнимите его от баланса
Rashid Umarov
Админ
11989
Rashid Umarov 2008.11.03 16:51  
xrust >>:
ну так посчитайте суммарный профит по всем закрытым ордерам, и отнимите его от баланса

Именно шулай!

Alexander
2441
Alexander 2008.11.03 17:33  
Ну, а чего проще, взять да и прогнать всю историю по циклу. Тогда и увидишь, что самый первый депозит с номером 0.
RotVeller
227
RotVeller 2008.11.03 18:06  

Ну да, а завтра выйдет новая версия терминала и в ней будет функция типа DepositStartValue()

и сиди после этого (как всегда), и чеши репу, и думай (как всегда)- чё ради я старый олух корячился то?

Но в любом случае- спасибо за советы, иначе когда бы я ещё узнал про HistoryTotal()?

В следующем десятилетии... может быть...

RotVeller
227
RotVeller 2008.11.03 20:37  

Странно, чё я не так сделал?


Цикл показывает балланс 840 а терминал в отчётах 986.


int i,accTotal=OrdersHistoryTotal(),ProfitSumma=0;
for(i=0;i<accTotal;i++)
{
//---- check selection result
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("Ошибка при доступе к исторической базе (",GetLastError(),")");
break;
}
// работа с ордером ...
ProfitSumma=ProfitSumma+OrderProfit();
}

//----
MessageBox("Obsii Ballans="+ProfitSumma);

if(ProfitSumma>0) return(ProfitSumma);
return(0);

Александр
1081
Александр 2008.11.03 20:47  
надо еще суммировать СВОПЫ.
RotVeller
227
RotVeller 2008.11.03 20:53  
Talex >>:
надо еще суммировать СВОПЫ.

Так если б они были.

Отчёт то за день.

Rustamzhan Salidzhanov
7687
Rustamzhan Salidzhanov 2008.11.03 20:56  

не корячься

//+------------------------------------------------------------------+
//  Показывает сумму внесенных средств                               |
//-------------------------------------------------------------------+
double StartBalans(){double profit=0;
if(OrdersTotal()>0){return(0);}
for(int i=OrdersHistoryTotal()+1;i>=0;i--){
  if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)){
    if(OrderType()<2){
      profit=profit+OrderProfit()+OrderSwap()+OrderCommission(); 
    }
  }
}
return(AccountBalance()-profit);
}
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий